<div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Timothy,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">    send me a script to reproduce this and I'll take a look.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Nov 14, 2021 at 11:00 AM gettimothy via Squeak-dev <<a href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><u></u><div><div style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10pt"><div>Good afternoon.<br></div><div><br></div><div><br></div><div>I have ~700,000 objects in a SortedCollection and I am attempting to modify them.<br></div><div><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"><div>WikitextSAXTemplates templates do:[:t | t resetParameterDictionaries].<br></div></blockquote></div><div><br></div><div>"t" in this case invokes this:<br></div><div><br></div><div><br></div><div><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"><div>resetParameterDictionaries<br></div><div><br></div><div>parameters := SortedCollection sortBlock:[:a :b | a key < b key].<br></div><div>nestedparameters :=  SortedCollection sortBlock:[:a :b | a key < b key].<br></div><div>nestedparamaterizedtemplates := SortedCollection sortBlock:[:a :b | a key < b key].<br></div><div>nestedsimpletemplates :=  SortedCollection sortBlock:[:a :b | a key < b key].<br></div></blockquote><div><br></div></div><div><br></div><div>I get a segfault:<br></div><div><br></div><div><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"><div>stack page bytes 8192 available headroom 5576 minimum unused headroom 6032<br></div><div><br></div><div>Segmentation fault Sun Nov 14 13:53:18 2021<br></div><div><br></div><div><br></div><div>/usr/local/lib/squeak/5.0-202110010850-64bit/squeak<br></div><div>Squeak VM version: 5.0-202110010850  Fri Oct  1 13:13:17 EDT 2021 clang [Production Spur 64-bit VM]<br></div><div>Built from: CoInterpreter VMMaker.oscog-eem.3077 uuid: 8ad52133-62f2-4e1e-bf92-9b29ba104d62 Oct  1 2021<br></div><div>With: StackToRegisterMappingCogit VMMaker.oscog-eem.3077 uuid: 8ad52133-62f2-4e1e-bf92-9b29ba104d62 Oct  1 2021<br></div><div>Revision: VM: 202110010850 wm@tinker:usr/src/smalltalk/tmp/oscogvm<br></div><div>Date: Fri Oct 1 10:50:05 2021 CommitHash: 7ede113ff<br></div><div>Plugins: 202110010850 wm@tinker:usr/src/smalltalk/tmp/oscogvm<br></div><div>Build host: Linux tinker 4.4.14 #2 SMP Fri Jun 24 13:38:27 CDT 2016 x86_64 AMD Ryzen 7 2700 Eight-Core Processor AuthenticAMD GNU/Linux<br></div><div>plugin path: /usr/local/bin/../lib/squeak/5.0-202110010850-64bit [default: /usr/local/lib/squeak/5.0-202110010850-64bit/]<br></div><div><br></div><div><br></div><div>C stack backtrace & registers:<br></div><div>    rax     0x21889b20 rbx      0x1000010 rcx            0x1 rdx       0xffffe0<br></div><div>    rdi            0x1 rsi 0xffffffffffffff rbp      0x1000000 rsp 0x7ffd144dd5c0<br></div><div>    r8      0x49751cf0 r9           (nil) r10          (nil) r11          (nil)<br></div><div>    r12          (nil) r13 0xffffffffffffff r14     0xd6700008 r15     0xa5662d20<br></div><div>    rip       0x42b1e1<br></div><div>*/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak(remember+0x1b1)[0x42b1e1]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x41a703]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x41cbbe]<br></div><div>/lib64/libpthread.so.0(+0x113b0)[0x7f8a33d223b0]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak(remember+0x1b1)[0x42b1e1]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x47863b]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x4549af]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x4780aa]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x44b54c]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x454560]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x42ea3b]<br></div><div>/usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak(ceStackOverflow+0xaf)[0x43464f]<br></div><div>[0x155c52c]<br></div><div>[0x0]<br></div><div><br></div><div><br></div><div>Smalltalk stack dump:<br></div><div>0x7ffd144fb410 M SortedCollection class>sortBlock: 0x21c1b850: a(n) SortedCollection<br></div><div>0x7ffd144fb448 M WikitextSAXTemplate>resetParameterDictionaries 0x733597e0: a(n) WikitextSAXTemplate<br></div><div>0x7ffd144fb478 M [] in UndefinedObject>resetParameterDictionaries 0x218898e0: a(n) UndefinedObject<br></div><div>0x7ffd144fb4b8 M SortedCollection(OrderedCollection)>do: 0x2b4de230: a(n) SortedCollection<br></div><div>0x7ffd144fb4f0 M UndefinedObject>DoIt 0x218898e0: a(n) UndefinedObject<br></div><div>0x7ffd144fb548 I Compiler>evaluateCue:ifFail: 0x5a00b18: a(n) Compiler<br></div><div>0x7ffd144fb5a0 I Compiler>evaluateCue:ifFail:logged: 0x5a00b18: a(n) Compiler<br></div><div>0x7ffd144fb5f8 I Compiler>evaluate:in:to:environment:notifying:ifFail:logged: 0x5a00b18: a(n) Compiler<br></div><div>0x7ffd144fb670 M [] in SmalltalkEditor>evaluateSelectionAndDo: 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144fb6b0 M FullBlockClosure(BlockClosure)>on:do: 0x5a00e28: a(n) FullBlockClosure<br></div><div>0x7ffd144fb718 I SmalltalkEditor(TextEditor)>evaluateSelectionAndDo: 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144f91e8 I SmalltalkEditor(TextEditor)>evaluateSelection 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144f9228 I SmalltalkEditor(TextEditor)>doIt 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144f9268 I SmalltalkEditor(TextEditor)>doIt: 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144f92c0 I SmalltalkEditor(TextEditor)>dispatchOnKeyboardEvent: 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144f9308 I SmalltalkEditor(TextEditor)>keyStroke: 0x80f9d5e8: a(n) SmalltalkEditor<br></div><div>0x7ffd144f9348 M [] in TextMorphForEditView>keyStroke: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9398 M TextMorphForEditView(TextMorph)>handleInteraction:fromEvent: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f93d8 M TextMorphForEditView>handleInteraction:fromEvent: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9438 I [] in TextMorphForEditView>keyStroke: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9478 I StandardToolSet class>codeCompletionAround:textMorph:keyStroke: 0x21c2f3c8: a(n) StandardToolSet<br></div><div>0x7ffd144f94d0 I ToolSet class>codeCompletionAround:textMorph:keyStroke: 0x21c282d0: a(n) ToolSet<br></div><div>0x7ffd144f9528 I TextMorphForEditView(TextMorph)>keyStroke: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9578 I TextMorphForEditView>keyStroke: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f95c8 I TextMorphForEditView(Morph)>handleKeystroke: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9618 I TextMorphForEditView(TextMorph)>handleKeystroke: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9650 M KeyboardEvent>sentTo: 0x5a00598: a(n) KeyboardEvent<br></div><div>0x7ffd144f9690 M TextMorphForEditView(Morph)>handleEvent: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f96c8 M TextMorphForEditView(Morph)>handleFocusEvent: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f9710 M MorphicEventDispatcher>doHandlingForFocusEvent:with: 0x59ffd40: a(n) MorphicEventDispatcher<br></div><div>0x7ffd144f71e0 M MorphicEventDispatcher>dispatchFocusEvent:with: 0x59ffd40: a(n) MorphicEventDispatcher<br></div><div>0x7ffd144f7220 M TextMorphForEditView(Morph)>processFocusEvent:using: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f7260 M TextMorphForEditView(Morph)>processFocusEvent: 0x2b3f9640: a(n) TextMorphForEditView<br></div><div>0x7ffd144f72b0 M [] in HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144f72f8 M [] in ActiveEventVariable class>value:during: 0x22492740: a(n) ActiveEventVariable<br></div><div>0x7ffd144f7338 M FullBlockClosure(BlockClosure)>ensure: 0x59ffe50: a(n) FullBlockClosure<br></div><div>0x7ffd144f7388 M ActiveEventVariable class(DynamicVariable class)>value:during: 0x22492740: a(n) ActiveEventVariable<br></div><div>0x7ffd144f73d8 M [] in ActiveEventVariable class>value:during: 0x22492740: a(n) ActiveEventVariable<br></div><div>0x7ffd144f7418 M FullBlockClosure(BlockClosure)>ensure: 0x59fff98: a(n) FullBlockClosure<br></div><div>0x7ffd144f7458 M ActiveEventVariable class>value:during: 0x22492740: a(n) ActiveEventVariable<br></div><div>0x7ffd144f7498 M KeyboardEvent(MorphicEvent)>becomeActiveDuring: 0x17abd10: a(n) KeyboardEvent<br></div><div>0x7ffd144f74e8 M [] in HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144f7530 M [] in ActiveHandVariable class>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144f7570 M FullBlockClosure(BlockClosure)>ensure: 0x5a001b8: a(n) FullBlockClosure<br></div><div>0x7ffd144f75c0 M ActiveHandVariable class(DynamicVariable class)>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144f7610 M [] in ActiveHandVariable class>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144f7650 M FullBlockClosure(BlockClosure)>ensure: 0x5a00300: a(n) FullBlockClosure<br></div><div>0x7ffd144f7690 M ActiveHandVariable class>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144f76d0 M HandMorph>becomeActiveDuring: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144f7720 M [] in HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed040 M [] in ActiveWorldVariable class>value:during: 0x22492848: a(n) ActiveWorldVariable<br></div><div>0x7ffd144ed080 M FullBlockClosure(BlockClosure)>ensure: 0x59fecf0: a(n) FullBlockClosure<br></div><div>0x7ffd144ed0d0 M ActiveWorldVariable class(DynamicVariable class)>value:during: 0x22492848: a(n) ActiveWorldVariable<br></div><div>0x7ffd144ed120 M [] in ActiveWorldVariable class>value:during: 0x22492848: a(n) ActiveWorldVariable<br></div><div>0x7ffd144ed160 M FullBlockClosure(BlockClosure)>ensure: 0x59fee38: a(n) FullBlockClosure<br></div><div>0x7ffd144ed1a0 M ActiveWorldVariable class>value:during: 0x22492848: a(n) ActiveWorldVariable<br></div><div>0x7ffd144ed1e0 M PasteUpMorph>becomeActiveDuring: 0x224eece0: a(n) PasteUpMorph<br></div><div>0x7ffd144ed228 M HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed280 M HandMorph>sendEvent:focus:clear: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed2c8 M HandMorph>sendKeyboardEvent: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed308 M HandMorph>handleEvent: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed358 M HandMorph>processEvents 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed398 M [] in WorldState>doOneCycleNowFor: 0x224d3340: a(n) WorldState<br></div><div>0x7ffd144ed3e0 M [] in ActiveHandVariable class>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144ed420 M FullBlockClosure(BlockClosure)>ensure: 0x59ff1a8: a(n) FullBlockClosure<br></div><div>0x7ffd144ed470 M ActiveHandVariable class(DynamicVariable class)>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144ed4c0 M [] in ActiveHandVariable class>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144ed500 M FullBlockClosure(BlockClosure)>ensure: 0x59ff2f0: a(n) FullBlockClosure<br></div><div>0x7ffd144ed540 M ActiveHandVariable class>value:during: 0x224927e0: a(n) ActiveHandVariable<br></div><div>0x7ffd144ed580 M HandMorph>becomeActiveDuring: 0x22679bd8: a(n) HandMorph<br></div><div>0x7ffd144ed5c0 M [] in WorldState>doOneCycleNowFor: 0x224d3340: a(n) WorldState<br></div><div>0x7ffd144ed608 M Array(SequenceableCollection)>do: 0x218ae380: a(n) Array<br></div><div>0x7ffd144ed640 M WorldState>handsDo: 0x224d3340: a(n) WorldState<br></div><div>0x7ffd144ed680 M WorldState>doOneCycleNowFor: 0x224d3340: a(n) WorldState<br></div><div>0x7ffd144ed6b8 M WorldState>doOneCycleFor: 0x224d3340: a(n) WorldState<br></div><div>0x7ffd144ed6f0 M PasteUpMorph>doOneCycle 0x224eece0: a(n) PasteUpMorph<br></div><div>0x7ffd144ed720 M [] in MorphicProject>spawnNewProcess 0x21fbf2a8: a(n) MorphicProject<br></div><div>        0x774013c0 s [] in FullBlockClosure(BlockClosure)>newProcess<br></div><div><br></div><div>Most recent primitives<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:put:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>max:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>bitLengthAt:<br></div><div>bitLengthAt:<br></div><div>bitLengthAt:<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>maxCode<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>value:value:<br></div><div>at:<br></div><div>at:<br></div><div>value:value:<br></div><div>value:value:<br></div><div>at:<br></div><div>value:value:<br></div><div>value:value:<br></div><div>value:value:<br></div><div>value:value:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>at:<br></div><div>bitPosition<br></div><div>bitPosition<br></div><div>bitPosition<br></div><div>basicNew<br></div><div>size<br></div><div>on:from:to:<br></div><div>on:from:to:<br></div><div>privateSendBlock:with:with:with:<br></div><div>**PrimitiveFailure**<br></div><div>**PrimitiveFailure**<br></div><div>at:<br></div><div>nextBits:put:<br></div><div>bitOr:<br></div><div>bitOr:<br></div><div>byteAt:put:<br></div><div>byteAt:put:<br></div><div>codeAt:<br></div><div>nextBits:put:<br></div><div>next:putAll:startingAt:<br></div><div>next:putAll:startingAt:<br></div><div>bitXor:<br></div><div>commit<br></div><div>commit<br></div><div>commit<br></div><div>commit<br></div><div>commit<br></div><div>size<br></div><div>size<br></div><div>size<br></div><div>size<br></div><div>size<br></div><div>perform:<br></div><div>createMethod:class:header:<br></div><div>at:put:<br></div><div>at:put:<br></div><div>at:put:<br></div><div>at:put:<br></div><div>at:put:<br></div><div>shallowCopy<br></div><div>at:<br></div><div>at:put:<br></div><div>at:<br></div><div>at:put:<br></div><div>at:<br></div><div>at:put:<br></div><div>at:<br></div><div>at:put:<br></div><div>at:<br></div><div>at:put:<br></div><div>at:<br></div><div>at:put:<br></div><div>at:<br></div><div>at:put:<br></div><div>basicNew<br></div><div>withArgs:executeMethod:<br></div><div>value:<br></div><div>utcMicrosecondClock<br></div><div>suspend<br></div><div>resume<br></div><div>primSignal:atUTCMicroseconds:<br></div><div>wait<br></div><div>value<br></div><div>wait<br></div><div>signal<br></div><div>utcMicrosecondClock<br></div><div>primSignal:atUTCMicroseconds:<br></div><div>wait<br></div><div>signal<br></div><div>primSocketConnectionStatus:<br></div><div>**PrimitiveFailure**<br></div><div>**PrimitiveFailure**<br></div><div>value<br></div><div>primSocketConnectionStatus:<br></div><div>**PrimitiveFailure**<br></div><div>value<br></div><div>primSocketConnectionStatus:<br></div><div>**PrimitiveFailure**<br></div><div>valueWithArguments:<br></div><div>value<br></div><div>primitiveEnterCriticalSection<br></div><div>valueNoContextSwitch<br></div><div>identityHash<br></div><div>at:<br></div><div>primitiveExitCriticalSection<br></div><div>isValid<br></div><div>**PrimitiveFailure**<br></div><div>isValid<br></div><div>primSocketConnectionStatus:<br></div><div>**PrimitiveFailure**<br></div><div>wait<br></div><div>valueNoContextSwitch<br></div><div>specialObjectsArray<br></div><div>value:<br></div><div>identityHash<br></div><div>instVarsInclude:<br></div><div>instVarsInclude:<br></div><div>instVarsInclude:<br></div><div>signal<br></div><div>wait<br></div><div>value<br></div><div>identityHash<br></div><div>fixCollisionsFrom:<br></div><div>\\<br></div><div>\\<br></div><div>scanFor:<br></div><div>signal<br></div><div>basicNew<br></div><div>wait<br></div><div>signal<br></div><div>utcMicrosecondClock<br></div><div>primSignal:atUTCMicroseconds:<br></div><div>wait<br></div><div>signal<br></div><div>wait<br></div><div>**IncrementalGC**<br></div><div><br></div><div>stack page bytes 8192 available headroom 5576 minimum unused headroom 6032<br></div><div><br></div><div>(Segmentation fault)<br></div></blockquote><div><br></div><div>I checked the SortedCollection containing the objects for nil values with both:<br></div><div><br></div><div><br></div><div><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"><div>|s|<br></div><div>s := Set new.<br></div><div>self collect:[:each | s add:(each class name)].<br></div><div>s inspect.<br></div></blockquote><div>and:<br></div><div><br></div><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"><div>self select:[:each | each isNil].<br></div></blockquote></div></div><div>I only got one element in the Set and an empty collection in the isNil test.<br></div><div><br></div><div><br></div><div>I will be trying a different tac by fully initializing those objects as they are created and added to the SortedCollection that holds them.<br></div><div><br></div><div>cordially,<br></div><div><br></div><div>t</div></div><br></div><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" 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>