<snapdata remixID="10828313"><project name="ContactListChallenge" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Add Contact" idx="1" x="95.37291127614048" y="103.32012961561183" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="add" center-x="53" center-y="15" image="data:image/png;base64,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" id="10"/></item></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="30"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doDeclareVariables"><list><l>name</l><l>address</l><l>phone number</l></list></block><block s="doAsk"><l>Name?</l></block><block s="doSetVar"><l>name</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>Address?</l></block><block s="doSetVar"><l>address</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>Phone number?</l></block><block s="doSetVar"><l>phone number</l><block s="getLastAnswer"></block></block><block s="doAddToList"><custom-block s="contact with name: %s address: %s phone number: %s"><block var="name"/><block var="address"/><block var="phone number"/></custom-block><block var="GlobalContactList"/></block></script><script x="30" y="292.33333333333337"><custom-block s="name from contact %l"><block s="reportListItem"><l><option>any</option></l><block var="GlobalContactList"/></block></custom-block></script><script x="30" y="330.16666666666663"><block s="reportListItem"><l>3</l><block s="reportNewList"><list><l>Robbie Rotton</l><l>123 Lazytown St</l><l>123-456-7890</l></list></block></block></script><script x="30" y="367.16666666666663"><custom-block s="name from contact %l"><block s="reportNewList"><list><l>Robbie Rotton</l><l>123 Lazytown St</l><l>123-456-7890</l></list></block></custom-block></script><script x="30" y="404.16666666666663"><custom-block s="address from contact: %l"><block s="reportNewList"><list><l>Robbie Rotton</l><l>123 Lazytown St</l><l>123-456-7890</l></list></block></custom-block></script><script x="30" y="441.16666666666663"><custom-block s="phone number from contact: %l"><block s="reportNewList"><list><l>Robbie Rotton</l><l>123 Lazytown St</l><l>123-456-7890</l></list></block></custom-block></script><script x="30" y="478.16666666666663"><block s="doAddToList"><l>thing</l><block var="GlobalContactList"/></block></script><script x="30" y="517.9999999999999"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doAddToList"><custom-block s="contact with name: %s address: %s phone number: %s"><custom-block s="ask name"></custom-block><custom-block s="ask address"></custom-block><custom-block s="ask phone number"></custom-block></custom-block><block var="GlobalContactList"/></block></script><script x="30" y="636.3333333333333"><custom-block s="answer to prompt %txt"><l>What&apos;s your address?</l></custom-block></script><script x="30" y="669.3333333333333"><block s="doSetVar"><l>GlobalContactList</l><block s="reportNewList"><list></list></block></block></script></scripts></sprite><sprite name="Clear List" idx="2" x="95" y="52.99999999999997" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="109"><costumes><list id="110"><item><costume name="clear" center-x="53" center-y="15" image="data:image/png;base64,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" id="111"/></item></list></costumes><sounds><list struct="atomic" id="112"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doAsk"><l>Are you sure you would like to delete your list?Reply Yes or No</l></block><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>yes</l></block><script><block s="doSetVar"><l>GlobalContactList</l><block s="reportNewList"><list></list></block></block></script></block></script><script x="20" y="149.8333333333334"><block s="doSetVar"><l></l><l>0</l></block></script><script x="20" y="189.8333333333334"><block var="GlobalContactList"/></script></scripts></sprite><watcher var="GlobalContactList" style="normal" x="11.16842421641718" y="18.02449771412992" color="243,118,29" extX="80" extY="70"/><sprite name="Delete Contact" idx="4" x="101.91666666666652" y="-52.083333333333314" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="211.64999999999998,0,165.08700000000005,1" pen="tip" id="138"><costumes><list id="139"><item><costume name="delete" center-x="53" center-y="15" image="data:image/png;base64,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" id="140"/></item></list></costumes><sounds><list struct="atomic" id="141"></list></sounds><blocks></blocks><variables></variables><scripts><script x="63" y="60.00000000000014"><block s="receiveGo"></block><block s="gotoXY"><l>109</l><l>-60</l></block></script><script x="65" y="149.00000000000003"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doShowVar"><l>GlobalContactList</l></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doAsk"><l>What is the name of the contact you are searching for?</l></block><block s="doSetVar"><l>result</l><custom-block s="find contact with name: %s"><block s="getLastAnswer"></block></custom-block></block><block s="doIfElse"><block s="reportListIsEmpty"><block var="result"/></block><script><block s="doSayFor"><l>This name is not found in the Contact list</l><l>2</l></block></script><script><block s="doForEach"><l>item</l><block var="result"/><script><block s="doSayFor"><block var="item"/><l>2</l></block></script></block><block s="doAsk"><block s="reportJoinWords"><list><l>Type d if you want to delete this contact</l><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l> contact, otherwise press any other key</l></list></block></block><block s="doIfElse"><block s="reportEquals"><block s="getLastAnswer"></block><l>d</l></block><script><block s="doSetVar"><l>GlobalContactList</l><custom-block s="remove Contact %l"><block var="result"/></custom-block></block></script><script><block s="doSayFor"><l>Cancelled! No contacts were removed</l><l>2</l></block></script></block></script></block><block s="doHideVar"><l>GlobalContactList</l></block></script></scripts></sprite><sprite name="Find Contact" idx="3" x="97" y="0.9999999999999716" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="73.94999999999999,0,147.89999999999998,1" pen="tip" id="215"><costumes><list id="216"><item><costume name="find" center-x="53" center-y="15" image="data:image/png;base64,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" id="217"/></item></list></costumes><sounds><list struct="atomic" id="218"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="145.00000000000003"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doShowVar"><l>GlobalContactList</l></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doAsk"><l>What is the name of the contact you are searching for?</l></block><block s="doSetVar"><l>result</l><custom-block s="find contact with name: %s"><block s="getLastAnswer"></block></custom-block></block><block s="doIfElse"><block s="reportListIsEmpty"><block var="result"/></block><script><block s="doSayFor"><l>This name is not found in the Contact list</l><l>2</l></block></script><script><block s="doForEach"><l>item</l><block var="result"/><script><block s="doSayFor"><block var="item"/><l>2</l></block></script></block></script></block><block s="doHideVar"><l>GlobalContactList</l></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="contact wiht name %name address% address phone number %number" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="contact with name: %&apos;name&apos; address: %&apos;address&apos; phone number: %&apos;number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="name"/><block var="address"/><block var="number"/></list></block></block></script></block-definition><block-definition s="name from contact %&apos;Contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="Contact"/></block></block></script></block-definition><block-definition s="address from contact: %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="contact"/></block></block></script></block-definition><block-definition s="phone number from contact: %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="contact"/></block></block></script></block-definition><block-definition s="ask name" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>What&apos;s your name?</l></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="ask address" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>What&apos;s your address?</l></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="ask phone number" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>What&apos;s yourphone number?</l></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="answer to prompt %&apos;prompt question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doAsk"><block var="prompt question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="find contact with name%name" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="find contact with name: %&apos;name&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>newList</l></list></block><block s="doSetVar"><l>newList</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="GlobalContactList"/><script><block s="doIf"><custom-block s="text %txt contains %txt"><custom-block s="name from contact %l"><block var="item"/></custom-block><block var="name"/></custom-block><script><block s="doAddToList"><block var="item"/><block var="newList"/></block></script></block></script></block><block s="doReport"><block var="newList"/></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o texto multilinha _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());&#xD;    if (index&lt;0) {return string};&#xD;    return string.slice(0,index);&#xD;} else {&#xD;    var index=string.indexOf(marker);&#xD;    if (index&lt;0) {return string};&#xD;    return string.slice(0,index);&#xD;}</l></block><list><block var="string"/><block var="marker"/></list></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l><l>markerlength</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());&#xD;    if (index&lt;0) {return ""};&#xD;    return string.slice(index+markerlength);&#xD;} else {&#xD;    var index=string.indexOf(marker);&#xD;    if (index&lt;0) {return ""};&#xD;    return string.slice(index+markerlength);&#xD;}</l></block><list><block var="string"/><block var="marker"/><block s="reportStringSize"><block var="marker"/></block></list></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sub</l><l>sup</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    return 1+sup.toLocaleLowerCase().indexOf(sub.toLocaleLowerCase());&#xD;} else {&#xD;    return 1+sup.indexOf(sub);&#xD;}</l></block><list><block var="small"/><block var="large"/></list></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.&#xD;If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>flag</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;world[&apos;stringLibCaseIndependentComparison&apos;] = flag;</l></block><list><block var="tf"/></list></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l><l>start</l><l>end</l></list><l>if (end != "") {&#xD;    return str.slice(start-1,end);&#xD;} else {&#xD;    return str.slice(start-1);&#xD;}</l></block><list><block var="str"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());&#xD;    return !(index&lt;0);&#xD;} else {&#xD;    var index=string.indexOf(marker);&#xD;    return !(index&lt;0);&#xD;}</l></block><list><block var="string"/><block var="marker"/></list></block></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return text.toLocaleLowerCase();</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="USE BIGNUMS %&apos;bool&apos;" type="command" category="operators"><comment x="0" y="0" w="303.3333333333333" collapsed="false">call with True to turn on the entire Scheme numeric tower, including infinite-precision integers, exact rationals, and complex numbers; call with False to restore native JavaScript arithmetic.</comment><header></header><code></code><translations>pt:altera utilização de aritmética do Scheme para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>isDone</l></list></block><block s="doSetVar"><l>isDone</l><block s="reportJSFunction"><list><l>useBigNums</l></list><l>var done = false;&#xD;&#xD;function initialize (callback) {&#xD;    var bigScript = document.createElement(&apos;script&apos;);&#xD;    bigScript.src = &apos;//snap.berkeley.edu/snap/libraries/biginteger.js&apos;;&#xD;    bigScript.onload = loadScheme;&#xD;    document.head.appendChild(bigScript);&#xD;&#xD;    function loadScheme () {&#xD;        var schemeScript = document.createElement(&apos;script&apos;);&#xD;        schemeScript.src = &apos;//snap.berkeley.edu/snap/libraries/schemeNumber.js&apos;;&#xD;        schemeScript.onload = finish;&#xD;        document.head.appendChild(schemeScript);&#xD;    }&#xD;&#xD;    function finish () {&#xD;        makeGlobalObject();&#xD;        callback();&#xD;    }&#xD;}&#xD;&#xD;function makeGlobalObject () {&#xD;    window.bigNumbers = {&#xD;        originalEvaluate: InputSlotMorph.prototype.evaluate,&#xD;        originalChangeVar: VariableFrame.prototype.changeVar,&#xD;        originalPrims: {&#xD;            reportBasicSum: Process.prototype.reportBasicSum,&#xD;            reportBasicDifference: Process.prototype.reportBasicDifference,&#xD;            reportBasicProduct: Process.prototype.reportBasicProduct,&#xD;            reportBasicQuotient: Process.prototype.reportBasicQuotient,&#xD;            reportBasicPower: Process.prototype.reportBasicPower,&#xD;            reportBasicModulus: Process.prototype.reportBasicModulus,&#xD;            reportBasicAtan2: Process.prototype.reportBasicAtan2,&#xD;            reportRound: Process.prototype.reportRound,&#xD;            reportBasicMin: Process.prototype.reportBasicMin,&#xD;            reportBasicMax: Process.prototype.reportBasicMax,&#xD;            reportBasicRandom: Process.prototype.reportBasicRandom,&#xD;            reportBasicLessThan: Process.prototype.reportBasicLessThan,&#xD;            reportBasicGreaterThan: Process.prototype.reportBasicGreaterThan,&#xD;            reportEquals: Process.prototype.reportEquals,&#xD;            reportIsIdentical: Process.prototype.reportIsIdentical,&#xD;            reportMonadic: Process.prototype.reportMonadic&#xD;        }&#xD;    };&#xD;}&#xD;&#xD;function loadBlocks () {&#xD;    var fn = SchemeNumber.fn;&#xD;    var originalPrims = window.bigNumbers.originalPrims;&#xD;    if (useBigNums) {&#xD;        InputSlotMorph.prototype.evaluate = function () {&#xD;            var contents = this.contents();&#xD;&#xD;            if (this.selectedBlock) {&#xD;                    return this.selectedBlock;&#xD;            }&#xD;&#xD;            if (this.constant) {&#xD;                return this.constant;&#xD;            }&#xD;            if (this.isNumeric) {&#xD;                return parseNumber(contents.text || &apos;0&apos;);&#xD;            }&#xD;            return contents.text;&#xD;        };&#xD;        VariableFrame.prototype.changeVar = function (name, delta, sender) {&#xD;            var frame = this.find(name),&#xD;                value,&#xD;                newValue;&#xD;            if (frame) {&#xD;                value = parseNumber(frame.vars[name].value);&#xD;                newValue = Number.isNaN(value) ? delta : fn[&apos;+&apos;](value, parseNumber(delta));&#xD;                if (sender instanceof SpriteMorph &amp;&amp;&#xD;                        (frame.owner instanceof SpriteMorph) &amp;&amp;&#xD;                        (sender !== frame.owner)) {&#xD;                    sender.shadowVar(name, newValue);&#xD;                } else {&#xD;                    frame.vars[name].value = newValue;&#xD;                }&#xD;&#xD;            }&#xD;        };&#xD;        Object.assign(Process.prototype, {&#xD;            reportBasicSum: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;+&apos;](a, b);&#xD;            },&#xD;            reportBasicDifference: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;-&apos;](a, b);&#xD;            },&#xD;            reportBasicProduct: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;*&apos;](a, b);&#xD;            },&#xD;            reportBasicQuotient: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (fn[&apos;=&apos;](b, &apos;0&apos;) &amp;&amp; !fn[&apos;=&apos;](a, &apos;0&apos;)) {&#xD;                      return (fn[&apos;&lt;&apos;](a, &apos;0&apos;) ? SchemeNumber(&apos;-inf.0&apos;) : SchemeNumber(&apos;+inf.0&apos;))&#xD;                };&#xD;                if (Number.isNaN(a) || Number.isNaN(b) || fn[&apos;=&apos;](b, &apos;0&apos;)) return NaN;&#xD;                return fn[&apos;/&apos;](a, b);&#xD;            },&#xD;            reportBasicPower: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;expt&apos;](a, b);&#xD;            },&#xD;            reportBasicModulus: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                var result = fn.mod(a, b);&#xD;                if (fn[&apos;&lt;&apos;](b, &apos;0&apos;) &amp;&amp; fn[&apos;&gt;&apos;](result, &apos;0&apos;)) {&#xD;                    result = fn[&apos;+&apos;](result, b);&#xD;                }&#xD;                return result;&#xD;            },&#xD;           reportBasicAtan2: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return degrees(fn.atan2(a, b));&#xD;          },&#xD;          reportRound: function (n) {&#xD;             if (this.enableHyperOps) {&#xD;                 if (n instanceof List) {&#xD;                     return n.map(each =&gt; this.reportRound(each));&#xD;                 }&#xD;               }&#xD;           n = parseNumber(n);&#xD;           if (Number.isNaN(n)) return NaN;&#xD;           x = fn.round(n);&#xD;           if (fn["integer?"](x)) return fn["exact"](x);&#xD;           return x;&#xD;           },  &#xD;           reportBasicMin: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) {&#xD;                  return a&lt;b ? a : b;&#xD;                }&#xD;                return fn[&apos;&lt;&apos;](x, y) ? x : y;&#xD;            },&#xD;           reportBasicMax: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) {&#xD;                  return a&gt;b ? a : b;&#xD;                }&#xD;                return fn[&apos;&gt;&apos;](x, y) ? x : y;&#xD;            },&#xD;            reportBasicRandom: function (min, max) {&#xD;                var floor = parseNumber(min),&#xD;                    ceil = parseNumber(max);&#xD;                if (Number.isNaN(floor) || Number.isNaN(ceil)) return NaN;&#xD;                if (!fn[&apos;=&apos;](fn.mod(floor, &apos;1&apos;), &apos;0&apos;) || !fn[&apos;=&apos;](fn.mod(ceil, &apos;1&apos;), &apos;0&apos;)) {&#xD;                    // One of the numbers isn&apos;t whole. Include the decimal.&#xD;                    return fn[&apos;+&apos;](&#xD;                        fn[&apos;*&apos;](&#xD;                            Math.random(),&#xD;                            fn[&apos;-&apos;](ceil, floor)&#xD;                        ),&#xD;                        floor&#xD;                    );&#xD;                }&#xD;                var size = Math.ceil(max.toString(10).length/14);&#xD;                const array = new Uint32Array(size);&#xD;                window.crypto.getRandomValues(array);&#xD;                var digits="";&#xD;                for (i=0;i&lt;size;i++) {&#xD;                    digits = digits + array[i].toString();&#xD;               } &#xD;               return fn.floor(&#xD;                    fn[&apos;+&apos;](&#xD;                        // fn[&apos;*&apos;](&#xD;                         //   Math.random(),&#xD;                            fn.mod(parseNumber(digits),&#xD;                                 fn[&apos;+&apos;](&#xD;                                     fn[&apos;-&apos;](ceil, floor),&#xD;                                     &apos;1&apos;&#xD;                                 )&#xD;                             ),&#xD;                        floor&#xD;                    )&#xD;                );&#xD;            },&#xD;            reportBasicLessThan: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return a&lt;b;&#xD;                return fn[&apos;&lt;&apos;](x, y);&#xD;            },&#xD;            reportBasicGreaterThan: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return a&gt;b;&#xD;                return fn[&apos;&gt;&apos;](x, y);&#xD;            },&#xD;            reportEquals: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return snapEquals(a, b);&#xD;                return fn[&apos;=&apos;](x, y);&#xD;            },&#xD;            reportIsIdentical: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return originalPrims.reportIsIdentical(a, b);&#xD;                return fn[&apos;=&apos;](x, y);&#xD;            },&#xD;            reportMonadic: function (fname, n) {&#xD;                if (this.enableHyperOps) {&#xD;                    if (n instanceof List) {&#xD;                        return n.map(each =&gt; this.reportMonadic(fname, each));&#xD;                    }&#xD;                }&#xD;&#xD;                n = parseNumber(n);&#xD;                if (Number.isNaN(n)) return NaN;&#xD;&#xD;                switch (Process.prototype.inputOption(fname)) {&#xD;                case &apos;abs&apos;:&#xD;                    return fn.abs(n);&#xD;                case &apos;neg&apos;:&#xD;                    return fn[&apos;-&apos;](n);&#xD;                case &apos;sign&apos;:&#xD;                     if (fn[&apos;=&apos;](n,SchemeNumber(&apos;0&apos;))) return SchemeNumber(&apos;0&apos;);&#xD;                     return fn[&apos;/&apos;](n, fn.abs(n));&#xD;                case &apos;ceiling&apos;:&#xD;                    return fn.ceiling(n);&#xD;                case &apos;floor&apos;:&#xD;                    return fn.floor(n);&#xD;                case &apos;sqrt&apos;:&#xD;                    return sqrt(n);&#xD;                case &apos;sin&apos;:&#xD;                    return fn.sin(radians(n));&#xD;                case &apos;cos&apos;:&#xD;                    return fn.cos(radians(n));&#xD;                case &apos;tan&apos;:&#xD;                    return fn.tan(radians(n));&#xD;                case &apos;asin&apos;:&#xD;                    return degrees(fn.asin(n));&#xD;                case &apos;acos&apos;:&#xD;                    return degrees(fn.acos(n));&#xD;                case &apos;atan&apos;:&#xD;                    return degrees(fn.atan(n));&#xD;                case &apos;ln&apos;:&#xD;                    return fn.log(n);&#xD;                case &apos;log&apos;:&#xD;                    return fn.log(n, &apos;10&apos;);&#xD;                case &apos;lg&apos;:&#xD;                    return fn.log(n, &apos;2&apos;);&#xD;                case &apos;e^&apos;:&#xD;                    return fn.exp(n);&#xD;                case &apos;10^&apos;:&#xD;                    return fn.expt(&apos;10&apos;, n);&#xD;                case &apos;2^&apos;:&#xD;                    return fn.expt(&apos;2&apos;, n);&#xD;                case &apos;id&apos;:&#xD;                    return n;&#xD;                default:&#xD;                    return SchemeNumber(&apos;0&apos;);&#xD;                }&#xD;            }&#xD;        });&#xD;    } else {&#xD;        InputSlotMorph.prototype.evaluate = window.bigNumbers.originalEvaluate;&#xD;        VariableFrame.prototype.changeVar = window.bigNumbers.originalChangeVar;&#xD;        Object.assign(Process.prototype, originalPrims);&#xD;    }&#xD;    done = true;&#xD;}&#xD;&#xD;function parseNumber (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;    if (!fn[&apos;number?&apos;](n)) {&#xD;        n = &apos;&apos; + n;&#xD;        try {&#xD;            return parseENotation(n) || SchemeNumber(n);&#xD;        } catch (err) {&#xD;            return NaN;&#xD;        }&#xD;    }&#xD;    return n;&#xD;}&#xD;&#xD;function parseENotation (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);&#xD;    if (!numbers) return null;&#xD;&#xD;    var coefficient = numbers[1];&#xD;    var exponent = numbers[2];&#xD;    return fn[&apos;*&apos;](&#xD;        coefficient,&#xD;        fn.expt(&apos;10&apos;, exponent)&#xD;    );&#xD;}&#xD;&#xD;function sqrt (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    if (!fn[&apos;exact?&apos;](n) || !fn[&apos;rational?&apos;](n) || fn[&apos;&lt;&apos;](n,&apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    var rootNumerator = fn[&apos;exact-integer-sqrt&apos;](fn.numerator(n));&#xD;    if (!fn[&apos;=&apos;](rootNumerator[1], &apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    var rootDenominator = fn[&apos;exact-integer-sqrt&apos;](fn.denominator(n));&#xD;    if (!fn[&apos;=&apos;](rootDenominator[1], &apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    return fn[&apos;/&apos;](rootNumerator[0], rootDenominator[0]);&#xD;}&#xD;&#xD;&#xD;function isDone () {&#xD;    return done;&#xD;}&#xD;&#xD;if (window.bigNumbers) {&#xD;    loadBlocks();&#xD;} else {&#xD;    initialize(loadBlocks);&#xD;}&#xD;&#xD;return isDone;</l></block></block><block s="doWaitUntil"><block s="evaluate"><block var="isDone"/><list><block var="bool"/></list></block></block></script></block-definition><block-definition s="%&apos;n&apos; !" type="reporter" category="operators"><comment x="0" y="0" w="190.66666666666666" collapsed="false">The factorial function, to make very large numbers, to demo bignums.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="n"/><l>0</l></block><l>1</l><block s="reportProduct"><block var="n"/><custom-block s="%n !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></block></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="operators"><comment x="0" y="0" w="234.66666666666666" collapsed="false">The identity function: reports its input.&#xD;It&apos;s useful to get things like 3/4 or 5-2i into&#xD;numeric input slots.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="Scheme number %&apos;function&apos; of %&apos;number&apos;" type="reporter" category="operators"><comment x="0" y="0" w="300" collapsed="true">Provides Scheme arithmetic functions not in JavaScript</comment><header></header><code></code><translations>pt:_ de _&#xD;</translations><inputs><input type="%s" readonly="true"><options>number?&#xD;complex?&#xD;real?&#xD;rational?&#xD;integer?&#xD;exact?&#xD;inexact?&#xD;exact&#xD;inexact&#xD;finite?&#xD;infinite?&#xD;nan?&#xD;numerator&#xD;denominator&#xD;real-part&#xD;imag-part&#xD;magnitude&#xD;angle</options></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l><l>num</l></list><l>function parseNumber (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;    if (!fn[&apos;number?&apos;](n)) {&#xD;        n = &apos;&apos; + n;&#xD;        try {&#xD;            return parseENotation(n) || SchemeNumber(n);&#xD;        } catch (err) {&#xD;            return NaN;&#xD;        }&#xD;    }&#xD;    return n;&#xD;}&#xD;&#xD;function parseENotation (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);&#xD;    if (!numbers) return null;&#xD;&#xD;    var coefficient = numbers[1];&#xD;    var exponent = numbers[2];&#xD;    return fn[&apos;*&apos;](&#xD;        coefficient,&#xD;        fn.expt(&apos;10&apos;, exponent)&#xD;    );&#xD;}&#xD;var fn=SchemeNumber.fn,&#xD;      number=parseNumber(num);&#xD;&#xD;switch (which) {&#xD;  case &apos;number?&apos;:&#xD;  case &apos;complex?&apos;:&#xD;    return (fn[&apos;number?&apos;](number));&#xD;  case &apos;real?&apos;:&#xD;    return (fn[&apos;real?&apos;](number) || fn[&apos;real-valued?&apos;](number));&#xD;  case &apos;rational?&apos;:&#xD;    return (fn[&apos;rational?&apos;](number) || (fn[&apos;=&apos;](number, fn.rationalize(number, parseNumber(&apos;1.0e-5&apos;)))));&#xD;  case &apos;integer?&apos;:&#xD;    return (fn[&apos;integer?&apos;](number) || fn[&apos;integer-valued?&apos;](number));&#xD;  case &apos;exact?&apos;:&#xD;  case &apos;inexact?&apos;:&#xD;  case &apos;finite?&apos;:&#xD;  case &apos;infinite?&apos;:&#xD;  case &apos;nan?&apos;:&#xD;  case &apos;real-part&apos;:&#xD;  case &apos;imag-part&apos;:&#xD;    return (fn[which](number));&#xD;  case &apos;magnitude&apos;:&#xD;    return (fn.magnitude(number));&#xD;  case &apos;angle&apos;:&#xD;    return (fn.angle(number));&#xD;  case &apos;numerator&apos;:&#xD;    return (fn.numerator(number));&#xD;  case &apos;denominator&apos;:&#xD;    return (fn.denominator(number));&#xD;  case &apos;exact&apos;:&#xD;    return (fn.exact(number));&#xD;case &apos;inexact&apos;:&#xD;    return (fn.inexact(number));&#xD;}</l></block><list><block var="function"/><block var="number"/></list></block></block></script></block-definition><block-definition s="remove Contact %&apos;list&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>newList</l></list></block><block s="doSetVar"><l>newList</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doForEach"><l>contactItem</l><block var="GlobalContactList"/><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="contactItem"/><custom-block s="name from contact %l"><block var="item"/></custom-block></block></block><script><block s="doAddToList"><block var="contactItem"/><block var="newList"/></block></script></block></script></block></script></block><block s="doReport"><block var="newList"/></block></script></block-definition></blocks><variables><variable name="GlobalContactList"><list struct="atomic" id="573"></list></variable></variables></project><media name="ContactListChallenge" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>