<snapdata remixID="15075202"><project name="utilities 2" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAD9ElEQVR4AeyUzW0qMRhFTcpIUkZ+NtlmD4gW2NACndACQiCxoAHW9MCeEpDeU5CQBpJhNGN7fO3vRIog47H93XOP8vSPHwgkJPDk+IFAQgIImBA+VzuHgFiQlAACJsXP5QiIA0kJ2BUwKXYuvxJAwCsJPpMQQMAk2Ln0SgABryT4TEIAAZNg59IrAQS8kuAzCQEETII96aVSlyOgVB32hkFAe51LJUZAqTrsDYOA9jqXSoyAUnXYGwYB7XUulbhXAaWSM4wEAQSUqMHuEAhot3uJ5AgoUYPdIRDQbvcSyRFQoga7QyBgL91zSR0BBKwjw/NeCCBgL5i5pI4AAtaR4XkvBBCwF8xcUkcAAevI8LwXAgjYC2a7lzQlR8AmQqxHJYCAUfFyeBMBBGwixHpUAggYFS+HNxFAwCZCrEclgIBR8XJ4E4FyBWxKzroEAQSUqMHuEAhot3uJ5AgoUYPdIRDQbvcSyRFQoga7QyBged1nlQgBs6qrvGERsLxOs0qEgFnVVd6wCFhep1klQsCs6ipvWAQsr9OsEgUVMKvkDCtBAAElarA7BALa7V4iOQJK1GB3CAS0271EcgSUqMHuEAgYpHsO6UoAAbuSY18QAggYBCOHdCWAgF3JsS8IAQQMgpFDuhJAwK7k2BeEAAIGwWj3EN/kCOhLkP1eBBDQCx+bfQkgoC9B9nsRQEAvfGz2JYCAvgTZ70UAAb3wsdmXQL4C+iZnvwQBBJSowe4QCGi3e4nkCChRg90hENBu9xLJEVCiBrtDIGB+3Rc1MQIWVWd+YRAwv86KmhgBi6ozvzAImF9nRU2MgEXVmV8YBMyvs6ImbiVgUcn/CDMcDt37+7vb7XZ/rPIoBgEErFDdbDbu9fXVLRYLNxqNLr+fn5/udDpV3uJrSAIIeEdzvV7fPHl+fnbT6fQi42QycV9fXzfr/OFHAAHv+H18fNw9ce54PLrZbOaWy6Xb7/e/1nnQnQACVtiNx2P38vLizueze3t7cz//DX9+D4eD+/7+doPBoPI2X0MQQMAKxdVqdZFuu926+XxeWeFrLAIIWCE7GNT9h6u8xNegBBAwKE4Oa0sAAdsS4/2gBBAwKE4Oa0sAAdsS4/2gBBAwKE4Oa0sAAdsSM/Z+7LgIGJsw5z8kgIAP8bAYmwACxibM+Q8JIOBDPCzGJoCAsQlz/kMCCPgQD4uxCegKGDs550sQQECJGuwOgYB2u5dIjoASNdgdAgHtdi+RHAElarA7BALqdW9qIgQ0VbdeWATU68TURAhoqm69sAio14mpiRDQVN16YRFQrxNTE90IaCo5YSUIIKBEDXaHQEC73UskR0CJGuwOgYB2u5dI/h8AAP//rRkmiAAAAAZJREFUAwCHKK6PvTH9YgAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="utilities 2"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="is %&apos;n&apos; %&apos;sub&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">2</input><input type="%s" readonly="true" initial="1">odd<options>even&#xD;odd</options></input></inputs><script><block s="doReport"><custom-block s="switch %s %br %group%s%s %br %br default %s"><block var="sub"/><list><l>odd</l><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="n"/><l>2</l></block><l>1</l></list></block><l>even</l><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="n"/><l>2</l></block><l>0</l></list></block></list><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></script></block-definition><block-definition s="switch %&apos;val&apos; $nl %&apos;cases&apos; $nl default %&apos;default&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%group%s%cs" irreplaceable="true" expand="case&#xD;do" initial="2"></input><input type="%cs" irreplaceable="true" initial="1"></input></inputs><script><block s="doForEach"><l>case</l><block var="cases"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block var="break"/></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="case"/></block><block var="val"/></list></block></list></block><script><block s="doRun"><block s="reportListItem"><l>2</l><block var="case"/></block><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block></script></block><block s="doRun"><block var="default"/><list></list></block></script></block-definition><block-definition s="switch %&apos;val&apos; $nl %&apos;cases&apos; $nl $nl default %&apos;default&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%group%s%s" irreplaceable="true" expand="case&#xD;return" initial="2"></input><input type="%s" initial="1"></input></inputs><script><block s="doForEach"><l>case</l><block var="cases"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="case"/></block><block var="val"/></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="case"/></block></block></script><list></list></block></script></block><block s="doReport"><block var="default"/></block></script></block-definition><block-definition s="mean of %&apos;data&apos;" type="reporter" category="operators" space="true"><header></header><code></code><translations></translations><inputs><input type="%mult%n" initial="3">4&#xD;2&#xD;5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><block var="data"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></script></block-definition><block-definition s="median of %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%n" initial="3">4&#xD;2&#xD;5</input></inputs><script><block s="doSetVar"><l>data</l><block s="reportListAttribute"><l><option>sorted</option></l><block var="data"/></block></block><block s="doReport"><block s="reportIfElse"><custom-block s="is %n %s ?"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>odd</l></custom-block><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block></block><block var="data"/></block><custom-block s="mean of %mult%n"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block><block s="reportNewList"><list><l>0</l><l>1</l></list></block></list></block><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="$arrowLeft add %&apos;item&apos; to %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="list"/><block s="reportNewList"><list><block var="item"/></list></block></list></block></block></script></block-definition><block-definition s="$arrowLeft delete %&apos;index&apos; of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">1<options>1=1&#xD;last=$_last&#xD;&#126;&#xD;all=$_all&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>copy</l></list></block><block s="doSetVar"><l>copy</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doDeleteFromList"><block var="index"/><block var="copy"/></block><block s="doReport"><block var="copy"/></block></script></block-definition><block-definition s="$arrowLeft insert %&apos;item&apos; at %&apos;index&apos; of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%txt" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>copy</l></list></block><block s="doSetVar"><l>copy</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doInsertInList"><block var="item"/><block var="index"/><block var="copy"/></block><block s="doReport"><block var="copy"/></block></script></block-definition><block-definition s="$arrowLeft replace item %&apos;index&apos; of %&apos;list&apos; with %&apos;item&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input><input type="%s" initial="1">thing</input></inputs><script><block s="doDeclareVariables"><list><l>copy</l></list></block><block s="doSetVar"><l>copy</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doReplaceInList"><block var="index"/><block var="copy"/><block var="item"/></block><block s="doReport"><block var="copy"/></block></script></block-definition><block-definition s="$turnForward %&apos;item&apos; in front of %&apos;list&apos;" type="command" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doInsertInList"><block var="item"/><l>1</l><block var="list"/></block></script></block-definition><block-definition s="$turnForward all but first of %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doDeleteFromList"><l>1</l><block var="list"/></block></script></block-definition><block-definition s="$turnForward map %&apos;ring&apos; of %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing" irreplaceable="true" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="list"/></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportMap"><block var="ring"/><block var="data"/></block><script><block s="doAddToList"><block var="item"/><block var="list"/></block></script></block></script></block></script></block-definition><block-definition s="$turnForward keep items %&apos;ring&apos; from %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing" irreplaceable="true" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="list"/></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportKeep"><block var="ring"/><block var="data"/></block><script><block s="doAddToList"><block var="item"/><block var="list"/></block></script></block></script></block></script></block-definition><block-definition s="$turnForward %&apos;option&apos; of %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">$_flatten<options>flatten=$_flatten&#xD;columns=$_columns&#xD;uniques=$_uniques&#xD;distribution=$_distributions&#xD;sorted=$_sorted&#xD;shuffled=$_shuffled&#xD;reverse=$_reverse</options></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="list"/></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l></l><l/></block></autolambda><list></list></block><list><block var="option"/><block var="data"/></list></block><script><block s="doAddToList"><block var="item"/><block var="list"/></block></script></block></script></block></script></block-definition><block-definition s="mad of %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%n" initial="3">4&#xD;2&#xD;5</input></inputs><script><block s="doReport"><custom-block s="mean of %mult%n"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><custom-block s="mean of %mult%n"><block var="data"/></custom-block><block var="data"/></block></block></custom-block></block></script></block-definition><block-definition s="quartile %&apos;q&apos; of %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">1<options>0&#xD;1&#xD;2&#xD;3&#xD;4</options></input><input type="%mult%n" initial="3">4&#xD;2&#xD;5</input></inputs><script><block s="doSetVar"><l>data</l><block s="reportListAttribute"><l><option>sorted</option></l><block var="data"/></block></block><block s="doReport"><custom-block s="switch %s %br %group%s%s %br %br default %s"><block var="q"/><list><l>0</l><block s="reportVariadicMin"><block var="data"/></block><l>1</l><custom-block s="median of %mult%n"><block s="reportIfElse"><custom-block s="is %n %s ?"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>even</l></custom-block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block></block><block var="data"/></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block></block></block><block var="data"/></block></block></custom-block><l>2</l><custom-block s="median of %mult%n"><block var="data"/></custom-block><l>3</l><custom-block s="median of %mult%n"><block s="reportIfElse"><custom-block s="is %n %s ?"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>even</l></custom-block><block s="reportListItem"><block s="reportNumbers"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block var="data"/></block><block s="reportListItem"><block s="reportNumbers"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></block></block><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block var="data"/></block></block></custom-block><l>4</l><block s="reportVariadicMax"><block var="data"/></block></list><l>0</l></custom-block></block></script></block-definition><block-definition s="%&apos;rad&apos; rad to °" type="reporter" category="operators" space="true"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">3.14159265358979</input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="rad"/><block s="reportQuotient"><l>180</l><l>3.141592653589793238462643</l></block></list></block></block></script></block-definition><block-definition s="%&apos;deg&apos; ° to rad" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">180</input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="deg"/><block s="reportQuotient"><l>3.141592653589793238462643</l><l>180</l></block></list></block></block></script></block-definition><block-definition s="%&apos;prop&apos; of %&apos;num&apos;" type="reporter" category="operators" space="true"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">$_cbrt<options>csc=$_csc&#xD;sec=$_sec&#xD;cot=$_cot&#xD;acsc=$_acsc&#xD;asec=$_asec&#xD;acot=$_acot&#xD;cbrt=$_cbrt</options></input><input type="%n" initial="1">27</input></inputs><script><block s="doReport"><custom-block s="switch %s %br %group%s%s %br %br default %s"><block var="prop"/><list><l>csc</l><block s="reportQuotient"><l>1</l><block s="reportMonadic"><l><option>sin</option></l><block var="num"/></block></block><l>sec</l><block s="reportQuotient"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block var="num"/></block></block><l>cot</l><block s="reportQuotient"><l>1</l><block s="reportMonadic"><l><option>tan</option></l><block var="num"/></block></block><l>acsc</l><block s="reportMonadic"><l><option>asin</option></l><block s="reportQuotient"><l>1</l><block var="num"/></block></block><l>asec</l><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><l>1</l><block var="num"/></block></block><l>acot</l><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><l>1</l><block var="num"/></block></block><l>cbrt</l><custom-block s="%n √ %n"><l>3</l><block var="num"/></custom-block></list><l>0</l></custom-block></block></script></block-definition><block-definition s="log( %&apos;a&apos; ) %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">4</input><input type="%n" initial="1">64</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>ln</option></l><block var="b"/></block><block s="reportMonadic"><l><option>ln</option></l><block var="a"/></block></block></block></script></block-definition><block-definition s="%&apos;a&apos; √ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">4</input><input type="%n" initial="1">81</input></inputs><script><block s="doReport"><block s="reportPower"><block var="b"/><block s="reportQuotient"><l>1</l><block var="a"/></block></block></block></script></block-definition><block-definition s="count %&apos;item&apos; in %&apos;list&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block var="item"/><block var="list"/></block></block></block></script></block-definition><block-definition s="indices of %&apos;ring&apos; in %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="ring"/><block s="reifyPredicate"><script></script><list></list></block></list></block><block s="reportListIsEmpty"><block var="list"/></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>result</l><l>implicit?</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>implicit?</l><block s="reportListIsEmpty"><block s="reportAttributeOf"><l><option>input names</option></l><block var="ring"/></block></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doIf"><block s="evaluate"><block var="ring"/><block s="reportIfElse"><block var="implicit?"/><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="list"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="i"/><block var="list"/></list></block></block></block><script><block s="doAddToList"><block var="i"/><block var="result"/></block></script><list></list></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="$arrowLeft keep items %&apos;check&apos; and map %&apos;map&apos; over %&apos;list&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%repRing" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportMap"><block var="map"/><block s="reportKeep"><block var="check"/><block var="list"/></block></block></block></script></block-definition><block-definition s="$turnForward keep items %&apos;check&apos; and map %&apos;map&apos; over %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%repRing" initial="1"></input><input type="%l" initial="1"></input></inputs><script><custom-block s="$turnForward keep items %predRing from %l"><block var="check"/><block var="list"/></custom-block><custom-block s="$turnForward map %repRing of %l"><block var="map"/><block var="list"/></custom-block></script></block-definition><block-definition s="for each %&apos;item&apos; %&apos;idx&apos; in %&apos;list&apos; %&apos;per&apos;" type="command" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">item</input><input type="%upvar" initial="1">index</input><input type="%l" initial="1"></input><input type="%ca" irreplaceable="true" initial="1"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>item</l><block var="value"/></block><block s="doSetVar"><l>idx</l><block var="index"/></block><block s="doRun"><block var="per"/><list></list></block><block s="doReport"><l>0</l></block></script><list><l>value</l><l>index</l></list></block><block var="list"/></block></block></script></block-definition><block-definition s="$arrowLeft swap %&apos;index1&apos; &amp; %&apos;index2&apos; in %&apos;list&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%txt" initial="1">$_last<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doSetVar"><l>index1</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index1"/><l>random</l></list></block><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="index1"/></block></block><block s="doSetVar"><l>index2</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index2"/><l>random</l></list></block><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="index2"/></block></block><block s="doDeclareVariables"><list><l>save</l></list></block><block s="doSetVar"><l>save</l><block s="reportListItem"><block var="index1"/><block var="list"/></block></block><block s="doSetVar"><l>list</l><custom-block s="$arrowLeft replace item %txt of %l with %s"><block var="index1"/><block var="list"/><block s="reportListItem"><block var="index2"/><block var="list"/></block></custom-block></block><block s="doReport"><custom-block s="$arrowLeft replace item %txt of %l with %s"><block var="index2"/><block var="list"/><block var="save"/></custom-block></block></script></block-definition><block-definition s="$turnForward swap %&apos;index1&apos; &amp; %&apos;index2&apos; in %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%txt" initial="1">$_last<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doSetVar"><l>index1</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index1"/><l>random</l></list></block><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="index1"/></block></block><block s="doSetVar"><l>index2</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index2"/><l>random</l></list></block><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="index2"/></block></block><block s="doDeclareVariables"><list><l>save</l></list></block><block s="doSetVar"><l>save</l><block s="reportListItem"><block var="index1"/><block var="list"/></block></block><block s="doReplaceInList"><block var="index1"/><block var="list"/><block s="reportListItem"><block var="index2"/><block var="list"/></block></block><block s="doReplaceInList"><block var="index2"/><block var="list"/><block var="save"/></block></script></block-definition><block-definition s="find first index %&apos;ring&apos; in %&apos;list&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="ring"/><block s="reifyPredicate"><script></script><list></list></block></list></block><block s="reportListIsEmpty"><block var="list"/></block></list></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doDeclareVariables"><list><l>implicit?</l></list></block><block s="doSetVar"><l>implicit?</l><block s="reportListIsEmpty"><block s="reportAttributeOf"><l><option>input names</option></l><block var="ring"/></block></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doIf"><block s="evaluate"><block var="ring"/><block s="reportIfElse"><block var="implicit?"/><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="list"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="i"/><block var="list"/></list></block></block></block><script><block s="doReport"><block var="i"/></block></script><list></list></block></script></block></script></block><block s="doReport"><l>0</l></block></script></block-definition><block-definition s="$turnForward remove items %&apos;ring&apos; from %&apos;list&apos;" type="command" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%predRing" irreplaceable="true" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="list"/></block><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="$arrowLeft remove items %predRing from %l"><block var="ring"/><block var="data"/></custom-block><script><block s="doAddToList"><block var="item"/><block var="list"/></block></script></block></script></block></script></block-definition><block-definition s="$arrowLeft remove items %&apos;ring&apos; from %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="ring"/><block s="reifyPredicate"><script></script><list></list></block></list></block><block s="reportListIsEmpty"><block var="list"/></block></list></block><script><block s="doReport"><block var="list"/></block></script><list></list></block><block s="doDeclareVariables"><list><l>result</l><l>implicit?</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>implicit?</l><block s="reportListIsEmpty"><block s="reportAttributeOf"><l><option>input names</option></l><block var="ring"/></block></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doIf"><block s="reportNot"><block s="evaluate"><block var="ring"/><block s="reportIfElse"><block var="implicit?"/><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="list"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="i"/><block var="list"/></list></block></block></block></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="result"/></block></script><list></list></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="clamp %&apos;n&apos; mix %&apos;low&apos; max %&apos;high&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">15</input><input type="%n" initial="1">1</input><input type="%n" initial="1">10</input></inputs><script><block s="doReport"><block s="reportVariadicMin"><list><block var="high"/><block s="reportVariadicMax"><list><block var="n"/><block var="low"/></list></block></list></block></block></script></block-definition><block-definition s="%&apos;n&apos; between %&apos;low&apos; and %&apos;high&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">5</input><input type="%n" initial="1">1</input><input type="%n" initial="1">10</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="n"/><custom-block s="clamp %n mix %n max %n"><block var="n"/><block var="low"/><block var="high"/></custom-block></list></block></block></script></block-definition><block-definition s="letters %&apos;first&apos; to %&apos;second&apos; in %&apos;string&apos;" type="reporter" category="operators" space="true"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">5</input><input type="%s" initial="1">hello world</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block var="first"/><block var="second"/></block><block var="string"/></block></block></block></script></block-definition></blocks><primitives></primitives><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" id="1125"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="1126"></list></costumes><sounds><list struct="atomic" id="1127"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-10.000000000001137" y="-77.00000000000017" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="1132"><costumes><list struct="atomic" id="1133"></list></costumes><sounds><list struct="atomic" id="1134"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="utilities 2" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>