<snapdata remixID="12357949"><project name="Codification" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><notes>This project features a FizzBuzz script and a recursive factorial block that you can run and debug inside Snap! and also compile into various text-based programming languages:&#xD;&#xD;   * JavaScript&#xD;   * Smalltalk&#xD;   * Python&#xD;   * C&#xD;&#xD;Enjoy!&#xD;-Jens</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Codification" palette="single"><notes>This project features a FizzBuzz script and a recursive factorial block that you can run and debug inside Snap! and also compile into various text-based programming languages:&#xD;&#xD;   * JavaScript&#xD;   * Smalltalk&#xD;   * Python&#xD;   * C&#xD;&#xD;Enjoy!&#xD;-Jens</notes><hidden> forward turn turnLeft setHeading doFaceTowards gotoXY doGotoObject doGlide changeXPosition setXPosition changeYPosition setYPosition bounceOffEdge xPosition yPosition direction doSwitchToCostume doWearNextCostume getCostumeIdx doThinkFor doThink changeEffect setEffect clearEffects changeScale setScale getScale show hide goToLayer goBack playSound doPlaySoundUntilDone doStopAllSounds doRest doPlayNote doChangeTempo doSetTempo getTempo clear down up setColor changePenColorDimension setPenColorDimension changeSize setSize doStamp reportTouchingObject reportTouchingColor reportColorIsTouchingColor colorFiltered reportStackSize reportFrameCount doAsk reportLastAnswer getLastAnswer reportMouseX reportMouseY reportMouseDown reportKeyPressed reportRelationTo doResetTimer reportTimer getTimer reportAttributeOf reportURL reportGlobalFlag doSetGlobalFlag reportCONS reportCDR reportListContainsItem doDeleteFromList doInsertInList doReplaceInList reifyReporter reifyPredicate reportRound reportMonadic reportRandom reportLetter reportUnicode reportIsA reportVariadicIsIdentical receiveGo receiveKey receiveInteraction receiveMessage doBroadcast doBroadcastAndWait getLastMessage doWarp doWait doWaitUntil doForever doRepeat doUntil doStopThis fork evaluate doCallCC reportCallCC receiveOnClone createClone removeClone getPosition reportGetImageAttribute reportNewCostumeStretched reportNewCostume getEffect reportShown doPlaySoundAtRate reportGetSoundAttribute reportNewSoundFromSamples doSetInstrument changeVolume setVolume getVolume changePan setPan getPan playFreq stopFreq getPenDown getPenAttribute floodFill write reportPenTrailsAsCostume doPasteOn doCutFrom receiveCondition reportIfElse doTellTo reportAskFor newClone doPauseAll doSwitchToScene doDefineBlock doDeleteBlock doSetBlockAttribute reportBlockAttribute reportThisContext reportMousePosition reportAspect reportDate reportGet reportObject reportAudio reportVideo doSetVideoTransparency reportVariadicSum reportVariadicProduct reportPower reportTextSplit reportUnicodeAsLetter doDeleteAttr reportNumbers reportListIndex reportListIsEmpty reportMap reportKeep reportFindFirst reportCombine doForEach reportConcatenatedLists reportReshape reportCrossproduct doMapCodeOrHeader doMapValueCode doMapListCode reportMappedCode doRun reportPipe doHideVar reifyScript reportJoinWords receiveUserEdit reportJSFunction</hidden><headers></headers><code><string>&apos;&lt;#1&gt;&apos;</string><tempvars_delim>,</tempvars_delim><delim>,</delim><doSayFor>console.log(&lt;#1&gt;);</doSayFor><bubble>console.log(&lt;#1&gt;);</bubble><doIf>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</doIf><doIfElse>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;} else {&#xD;    &lt;#3&gt;&#xD;}</doIfElse><reportSum>(&lt;#1&gt; + &lt;#2&gt;)</reportSum><reportDifference>(&lt;#1&gt; - &lt;#2&gt;)</reportDifference><reportProduct>(&lt;#1&gt; * &lt;#2&gt;)</reportProduct><reportQuotient>(&lt;#1&gt; / &lt;#2&gt;)</reportQuotient><reportModulus>(&lt;#1&gt; % &lt;#2&gt;)</reportModulus><reportLessThan>(&lt;#1&gt; &lt; &lt;#2&gt;)</reportLessThan><reportEquals>(&lt;#1&gt; === &lt;#2&gt;)</reportEquals><reportGreaterThan>(&lt;#1&gt; &gt; &lt;#2&gt;)</reportGreaterThan><reportAnd>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</reportAnd><reportOr>(&lt;#1&gt; || &lt;#2&gt;)</reportOr><reportNot>(!&lt;#1&gt;)</reportNot><reportTrue>True</reportTrue><reportFalse>False</reportFalse><reportJoinWords>(&lt;#1&gt;, &lt;#2&gt;)</reportJoinWords><reportStringSize>(&lt;#1&gt;.length)</reportStringSize><doSetVar>&lt;#1&gt; = &lt;#2&gt;;</doSetVar><doChangeVar>&lt;#1&gt; += 1;</doChangeVar><doShowVar>console.log(&lt;#1&gt;);</doShowVar><doDeclareVariables>var &lt;#1&gt;;</doDeclareVariables><reportNewList>[&lt;#1&gt;]</reportNewList><reportListLength>len(&lt;#1&gt;)</reportListLength><reportListItem>&lt;#2&gt;[&lt;#1&gt; - 1]</reportListItem><doAddToList>&lt;#2&gt;.push(&lt;#1&gt;);</doAddToList><doReport>return &lt;#1&gt;;</doReport><reportVariadicSum>(&lt;#1&gt; + &lt;#2&gt;)</reportVariadicSum><reportVariadicProduct>(&lt;#1&gt; * &lt;#2&gt;)</reportVariadicProduct><reportBoolean>&lt;#1&gt;</reportBoolean><reportListAttribute>(&lt;#1&gt;.length)</reportListAttribute><doFor>for (var &lt;#1&gt; = &lt;#2&gt;; &lt;#1&gt; &lt;= &lt;#3&gt;; &lt;#1&gt; += 1) {&#xD;    &lt;#4&gt;&#xD;}</doFor></code><blocks><block-definition s="while %&apos;test&apos; %&apos;action&apos;" type="command" category="control"><header></header><code>while (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</code><translations></translations><inputs><input type="%boolUE"></input><input type="%ca"></input></inputs><script><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><custom-block s="while %boolUE %ca"><block s="evaluate"><block var="test"/><list></list></block><block var="action"/></custom-block></script></block></script></block-definition><block-definition s="new List" type="reporter" category="lists"><header></header><code>[]</code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="is %&apos;thing&apos; a Number?" type="predicate" category="operators"><header></header><code>(typeof &lt;#1&gt; === &apos;number&apos;)</code><translations></translations><inputs><input type="%s">5</input></inputs><script><block s="doReport"><block s="reportIsA"><block var="thing"/><l><option>number</option></l></block></block></script></block-definition><block-definition s="main %&apos;script&apos;" type="command" category="control"><header></header><code>&lt;#1&gt;</code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="script"/><list></list></block></script></block-definition><block-definition s="%&apos;num&apos; as text" type="reporter" category="operators"><header></header><code>(&lt;#1&gt;.toString())</code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doReport"><block var="num"/></block></script></block-definition><block-definition s="map to JavaScript" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>&apos;&lt;#1&gt;&apos;</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script></block></script><list></list></block><l><option>code</option></l><l>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;} else {&#xD;    &lt;#3&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>while (&lt;#1&gt;) {&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>for (var &lt;#1&gt; = &lt;#2&gt;; &lt;#1&gt; &lt;= &lt;#3&gt;; &lt;#1&gt; += 1) {&#xD;    &lt;#4&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; % &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; === &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; || &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportStringSize"><l>world</l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(typeof &lt;#1&gt; === &apos;number&apos;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.toString())</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>function fact(n) {&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>function fib(n) {&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; += 1;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>console.log(&lt;#1&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>var &lt;#1&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="new List"></custom-block></autolambda><list></list></block><l><option>code</option></l><l>[]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#2&gt;[&lt;#1&gt; - 1]</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt;.push(&lt;#1&gt;);</l></block></script></block-definition><block-definition s="map to Smalltalk" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>&apos;&lt;#1&gt;&apos;</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l> </l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l> </l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>Transcript&#xD;    show: &lt;#1&gt;;&#xD;    cr.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>Transcript&#xD;    show: &lt;#1&gt;;&#xD;    cr.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; ifTrue: [&#xD;    &lt;#2&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;&#xD;    ifTrue: [&#xD;        &lt;#2&gt;]&#xD;    ifFalse: [&#xD;        &lt;#3&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;] whileTrue: [&#xD;    &lt;#2&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>(&lt;#2&gt; to: &lt;#3&gt;) do: [:&lt;#1&gt; |&#xD;    &lt;#4&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; \\ &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; = &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; and: [&lt;#2&gt;])</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; or: [&lt;#2&gt;])</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; not)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;, &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportStringSize"><l>world</l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; size)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; isNumber)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; printString)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>| fact |&#xD;fact := [:n| &lt;body&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(fact value: &lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>| fib |&#xD;fib := [:n | &lt;body&gt;].</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(fib value: &lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; := &lt;#2&gt;.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; := &lt;#1&gt; + 1.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>Transcript&#xD;    show: &lt;#1&gt;;&#xD;    cr.</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>| &lt;#1&gt; |</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>#(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="new List"></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(OrderedCollection new)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; size)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#2&gt; at: &lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt; add: &lt;#1&gt;.</l></block></script></block-definition><block-definition s="map to Python" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>"&lt;#1&gt;"</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>print &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>print &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;:&#xD;    &lt;#2&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;:&#xD;    &lt;#2&gt;&#xD;else: &#xD;    &lt;#3&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>while &lt;#1&gt;:&#xD;    &lt;#2&gt;&#xD;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>for &lt;#1&gt; in range(&lt;#2&gt;, &lt;#3&gt;):&#xD;    &lt;#4&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; % &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; == &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; | &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="join %txt %txt"><l>hello</l><l>World</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportStringSize"><l>world</l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt;.length)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><custom-block s="is %s a Number?"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>isinstance(&lt;#1&gt;, (int, long, float, complex))</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>str(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>def fact(n):&#xD;    &lt;body&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>def fib(n):&#xD;    &lt;body&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; += 1</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><l><option>code</option></l><l>print &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><l><option>code</option></l><l></l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>#variables &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l><option>code</option></l><l>[&lt;#1&gt;]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="new List"></custom-block></autolambda><list></list></block><l><option>code</option></l><l>[]</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>len(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><l><option>code</option></l><l>&lt;#2&gt;[&lt;#1&gt; - 1]</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doAddToList"><l>thing</l><l/></block></script><list></list></block><l><option>code</option></l><l>&lt;#2&gt;.append(&lt;#1&gt;)</l></block></script></block-definition><block-definition s="map to C" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapValueCode"><l><option>String</option></l><l>"&lt;#1&gt;"</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>,</l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>,</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSayFor"><l>Hello!</l><l>2</l></block></script><list></list></block><l><option>code</option></l><l>printf(&lt;#1&gt;);&#xD;printf("\n");</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="bubble"><l>Hello!</l></block></script><list></list></block><l><option>code</option></l><l>printf(&lt;#1&gt;);&#xD;printf("\n");</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="main %cs"><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>#include &lt;stdio.h&gt;&#xD;int main()&#xD;{&#xD;    &lt;#1&gt;&#xD;    return(0);&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIf"><l/><script></script></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;&#xD;{&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><l><option>code</option></l><l>if &lt;#1&gt;&#xD;{&#xD;    &lt;#2&gt;&#xD;}&#xD;else &#xD;{&#xD;    &lt;#3&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><l><option>code</option></l><l>return &lt;#1&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="while %boolUE %ca"><l/><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>while &lt;#1&gt;&#xD;{&#xD;    &lt;#2&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script></script></block></script><list></list></block><l><option>code</option></l><l>int &lt;#1&gt;; for (&lt;#1&gt; = &lt;#2&gt;; &lt;#1&gt; &lt;= &lt;#3&gt;; &lt;#1&gt;++)&#xD;{&#xD;    &lt;#4&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n + %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; + &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; - &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n x %n"><l></l><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; * &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; / &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><block s="reportModulus"><l></l><l></l></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; % &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &lt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; == &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &gt; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; &amp;&amp; &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l><option>code</option></l><l>(&lt;#1&gt; || &lt;#2&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><l><option>code</option></l><l>(!&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="%n as text"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>"%d", &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>int fact(int n)&#xD;{&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="! %n"><l>5</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fact(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>header</option></l><l>int fib(int n)&#xD;{&#xD;    &lt;body&gt;&#xD;}</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="fib %n"><l>7</l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>fib(&lt;#1&gt;)</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doSetVar"><l></l><l>0</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; = &lt;#2&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>1</l></block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;++;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block><l><option>code</option></l><l>int &lt;#1&gt;;</l></block></script></block-definition><block-definition s="join %&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; + &lt;#2&gt;)</code><translations></translations><inputs><input type="%txt">hello</input><input type="%txt">World</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="! %&apos;n&apos;" type="reporter" category="operators"><header>function fact(n) {&#xD;    &lt;body&gt;&#xD;}</header><code>fact(&lt;#1&gt;)</code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><l>1</l></block></script><script><block s="doReport"><custom-block s="%n x %n"><block var="n"/><custom-block s="! %n"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="fib %&apos;n&apos;" type="reporter" category="operators"><header>function fib(n) {&#xD;    &lt;body&gt;&#xD;}</header><code>fib(&lt;#1&gt;)</code><translations></translations><inputs><input type="%n">7</input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="n"/><l>2</l></list></block><script><block s="doReport"><block var="n"/></block></script><script><block s="doReport"><custom-block s="%n + %n"><custom-block s="fib %n"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block><custom-block s="fib %n"><block s="reportDifference"><block var="n"/><l>2</l></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; + %&apos;b&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; + &lt;#2&gt;)</code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; x %&apos;b&apos;" type="reporter" category="operators"><header></header><code>(&lt;#1&gt; * &lt;#2&gt;)</code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition></blocks><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="true" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1875"><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="1876"></list></costumes><sounds><list struct="atomic" id="1877"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Alonzo" idx="1" x="-7.6852226720648105" y="-28.234817813765233" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="1882"><costumes><list id="1883"><item><ref mediaID="Alonzo_cst_alonzo (vector)"></ref></item></list></costumes><sounds><list struct="atomic" id="1884"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="20" y="20" w="408" collapsed="false">drag any example script into this ring:</comment><script x="20" y="74"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><comment x="20" y="115" w="408" collapsed="false">FizzBuzz scripts for any language mapping:</comment><script x="20" y="169"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><script x="20" y="210"><custom-block s="main %cs"><script><block s="doFor"><l>i</l><l>1</l><l>20</l><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>5</l></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>3</l></block><l>0</l></list></block></list></block><script><block s="doSayFor"><l>FizzBuzz</l><l>0.5</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>3</l></block><l>0</l></list></block><script><block s="doSayFor"><l>Fizz</l><l>0.5</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>5</l></block><l>0</l></list></block><script><block s="doSayFor"><l>Buzz</l><l>0.5</l></block></script><script><block s="doSayFor"><custom-block s="%n as text"><block var="i"/></custom-block><l>0.5</l></block></script></block></script></block></script></block></script></block></script><comment w="80" collapsed="false">a FizzBuzz version that compiles to any mappings in this project: JavaScript, Python, Smalltalk and C</comment></custom-block></script><script x="20" y="549.5"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><script x="20" y="590.5"><custom-block s="main %cs"><script><block s="doDeclareVariables"><list><l>i</l></list></block><block s="doSetVar"><l>i</l><l>1</l></block><custom-block s="while %boolUE %ca"><block s="reportVariadicLessThan"><list><block var="i"/><l>100</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>3</l></block><l>0</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>5</l></block><l>0</l></list></block><script><block s="doSayFor"><l>FizzBuzz</l><l>0.5</l></block></script><script><block s="doSayFor"><l>Fizz</l><l>0.5</l></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>5</l></block><l>0</l></list></block><script><block s="doSayFor"><l>Buzz</l><l>0.5</l></block></script><script><block s="doSayFor"><custom-block s="%n as text"><block var="i"/></custom-block><l>0.5</l></block></script></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></custom-block></script><comment w="80" collapsed="false">another, slightly different variant of FizzBuzz, which also compiles to any language mapping in this project</comment></custom-block></script><comment x="20" y="995.8333333333333" w="408" collapsed="false">recursive factorial script with function header for any language mapping:</comment><script x="20" y="1049.833333333333"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><script x="20" y="1090.833333333333"><custom-block s="main %cs"><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script><block s="doSayFor"><custom-block s="%n as text"><custom-block s="! %n"><block var="i"/></custom-block></custom-block><l>0.5</l></block></script></block></script></custom-block></script><script x="20" y="1200.333333333333"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><script x="20" y="1241.333333333333"><custom-block s="main %cs"><script><block s="doFor"><l>i</l><l>1</l><l>20</l><script><block s="doSayFor"><custom-block s="%n as text"><custom-block s="fib %n"><block var="i"/></custom-block></custom-block><l>0.5</l></block></script></block></script></custom-block></script><comment x="20" y="1350.833333333333" w="408" collapsed="false">other example scripts for any language except C:</comment><script x="20" y="1404.833333333333"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><script x="20" y="1445.833333333333"><block s="doDeclareVariables"><list><l>data</l><l>i</l><l>result</l></list><comment w="80" collapsed="false">filter a list for numbers. Try this example in any language mapping except C</comment></block><block s="doSetVar"><l>data</l><block s="reportNewList"><list><l>1</l><l>2</l><l>foo</l><l>4</l><l>bar</l><l>6</l><l>7</l><block s="reportNewList"><list><l>garply</l><block s="reportBoolean"><l><bool>false</bool></l></block><l>42</l></list></block><l>qux</l><l>10</l></list></block></block><block s="doSetVar"><l>result</l><custom-block s="new List"></custom-block></block><block s="doSetVar"><l>i</l><l>0</l></block><custom-block s="while %boolUE %ca"><block s="reportVariadicLessThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block><script><block s="doChangeVar"><l>i</l><l>1</l></block><block s="doIf"><custom-block s="is %s a Number?"><block s="reportListItem"><block var="i"/><block var="data"/></block></custom-block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="data"/></block><block var="result"/></block></script></block></script></custom-block><block s="bubble"><custom-block s="%n as text"><block var="result"/></custom-block></block></script><script x="20" y="1734.1666666666665"><block s="doSetVar"><l>script</l><block s="reifyScript"><script></script><list></list></block></block></script><script x="20" y="1775.1666666666665"><block s="doFor"><l>i</l><l>1</l><l>5</l><script><block s="doFor"><l>k</l><l>1</l><l>5</l><script><block s="doSayFor"><custom-block s="join %txt %txt"><custom-block s="%n as text"><block var="i"/></custom-block><custom-block s="%n as text"><block var="k"/></custom-block></custom-block><l>0.5</l></block></script></block></script><comment w="80" collapsed="false">nested FOR block example. Try this one for any language mapping except C</comment></block></script><comment x="20" y="1892.6666666666663" w="408" collapsed="false">try the current script by executing it:</comment><script x="20" y="1946.666666666666"><block s="doHideVar"><l>code</l></block><block s="doHideVar"><l>script</l></block><block s="doRun"><block var="script"/><list></list></block></script><comment x="20" y="2030.499999999999" w="408" collapsed="false">convert to various textual languages. Use the watcher&apos;s context menu to export:</comment><script x="20" y="2084.5"><block s="doHideVar"><l>code</l><comment w="90" collapsed="true">Snap!</comment></block><block s="doShowVar"><l>script</l></block></script><script x="20" y="2146.5"><block s="receiveMessage"><l>JavaScript</l><list></list></block><custom-block s="map to JavaScript"><comment w="80" collapsed="true">JavaScript</comment></custom-block><block s="doHideVar"><l>script</l></block><block s="doShowVar"><l>code</l></block><block s="doSetVar"><l>code</l><block s="reportMappedCode"><block var="script"/></block></block></script><script x="20" y="2286.1666666666665"><block s="receiveMessage"><l>Smalltalk</l><list></list></block><custom-block s="map to Smalltalk"><comment w="90" collapsed="true">Smalltalk</comment></custom-block><block s="doHideVar"><l>script</l></block><block s="doShowVar"><l>code</l></block><block s="doSetVar"><l>code</l><block s="reportMappedCode"><block var="script"/></block></block></script><script x="20" y="2425.8333333333326"><block s="receiveMessage"><l>Python</l><list></list></block><custom-block s="map to Python"><comment w="90" collapsed="true">Python</comment></custom-block><block s="doHideVar"><l>script</l></block><block s="doShowVar"><l>code</l></block><block s="doSetVar"><l>code</l><block s="reportMappedCode"><block var="script"/></block></block></script><script x="20" y="2565.4999999999986"><block s="receiveMessage"><l>C</l><list></list></block><custom-block s="map to C"><comment w="90" collapsed="true">C</comment></custom-block><block s="doHideVar"><l>script</l></block><block s="doShowVar"><l>code</l></block><block s="doSetVar"><l>code</l><block s="reportMappedCode"><block var="script"/></block></block></script></scripts></sprite><watcher var="code" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="script" style="normal" x="6.5" y="6" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="code" hidden="true"><l>for (var i = 1; i &lt;= 20; i += 1) {&#xD;    if ((((i % 5) === 0) &amp;&amp; ((i % 3) === 0))) {&#xD;        console.log(&apos;FizzBuzz&apos;);&#xD;    } else {&#xD;        if (((i % 3) === 0)) {&#xD;            console.log(&apos;Fizz&apos;);&#xD;        } else {&#xD;            if (((i % 5) === 0)) {&#xD;                console.log(&apos;Buzz&apos;);&#xD;            } else {&#xD;                console.log((i.toString()));&#xD;            }&#xD;        }&#xD;    }&#xD;}</l></variable><variable name="script" hidden="true"><context id="2289"><inputs></inputs><variables></variables><script><custom-block s="main %cs"><script><block s="doFor"><l>i</l><l>1</l><l>20</l><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>5</l></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>3</l></block><l>0</l></list></block></list></block><script><block s="doSayFor"><l>FizzBuzz</l><l>0.5</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>3</l></block><l>0</l></list></block><script><block s="doSayFor"><l>Fizz</l><l>0.5</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="i"/><l>5</l></block><l>0</l></list></block><script><block s="doSayFor"><l>Buzz</l><l>0.5</l></block></script><script><block s="doSayFor"><custom-block s="%n as text"><block var="i"/></custom-block><l>0.5</l></block></script></block></script></block></script></block></script></block></script><comment w="80" collapsed="false">a FizzBuzz version that compiles to any mappings in this project: JavaScript, Python, Smalltalk and C</comment></custom-block></script><receiver><ref id="1882"></ref></receiver><origin><ref id="1882"></ref></origin><context id="2370"><inputs></inputs><variables></variables><receiver><ref id="1882"></ref></receiver><origin><ref id="1882"></ref></origin></context></context></variable></variables></scene></scenes></project><media name="Codification" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><costume name="alonzo (vector)" center-x="47.5" center-y="61.5" image="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOTVweCIgaGVpZ2h0PSIxMjNweCIgdmlld0JveD0iMCAwIDk1IDEyMyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOTUgMTIzIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnIGlkPSJJRDAuODMyMzgyOTczNzQ5MTkwNiIgdHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMykiPg0KCTxwYXRoIGlkPSJSX0xlZyIgZmlsbD0iI0ZGQzkzRSIgc3Ryb2tlPSIjNjAzODEzIiBzdHJva2Utd2lkdGg9IjMiIGQ9Ik00Ny4zMTYsMTA0LjI1MWMwLTEuMjc2LDAuMzU4LTMuMTA5LDIuMzM4LTMuNTIzDQoJCWMyLjg1Ny0wLjU5OSw2LjEyNiwyLjI5Myw3LjAxNCwzLjE0NmMtMC4wNjUsMC4zMzgsMS4wNDcsNy4xNzMsMS4wNDcsNy43NjVjMCwyLjAwNC0wLjUzNSwyLjA4My0wLjc0MywyLjExNg0KCQljLTEuOTU2LDAuMjg0LTcuMTY5LTUuMTk3LTkuNTYyLTguMzg3QzQ3LjM3NiwxMDUuMTkzLDQ3LjMxNiwxMDQuODA5LDQ3LjMxNiwxMDQuMjUxTDQ3LjMxNiwxMDQuMjUxTDQ3LjMxNiwxMDQuMjUxeiIvPg0KCTxwYXRoIGlkPSJDZW50ZXJfTGVnIiBmaWxsPSIjRkZDOTNFIiBzdHJva2U9IiM2MDM4MTMiIHN0cm9rZS13aWR0aD0iNCIgZD0iTTM5LjM5NCwxMTMuODI3Yy0xLjQxOC0xLjUzOC0xLjYyMS01LjcwNy0xLjYyMS03LjQ4Mg0KCQljMC0wLjc1MiwwLjAzOS0xLjI1MywwLjA0MS0xLjI2OGwwLjAwMi0wLjAzOWMwLDAtMC4wMDQtMC4xNi0wLjAwNC0wLjIxOWMwLTMuMzQxLDMuMDc1LTQuNTAxLDMuNTk3LTQuNjc1DQoJCWMxLjc4MSwwLjAyMSw0Ljg1OCwwLjg2NCw1LjU5MywyLjEzNmMwLjA3NSwwLjEyOCwwLjE0NCwwLjI4OSwwLjE0NCwwLjQ5NWMwLDAuMTgxLTAuMDU0LDAuNC0wLjIwOCwwLjY2Ng0KCQljLTAuMDcxLDAuMTIxLTEuMzM1LDMuMTA5LTIuNDA1LDUuNGwtMC43NjUsMi4xMTljLTAuNTcyLDEuODUxLTEuNDczLDMuNzAzLTIuNDUyLDMuNzAzDQoJCUM0MC41NDIsMTE0LjY2NiwzOS45MTQsMTE0LjM5MiwzOS4zOTQsMTEzLjgyN0wzOS4zOTQsMTEzLjgyN0wzOS4zOTQsMTEzLjgyN3oiLz4NCgk8cGF0aCBpZD0iUl9Bcm0iIGZpbGw9IiNGRkM5M0UiIHN0cm9rZT0iIzYwMzgxMyIgc3Ryb2tlLXdpZHRoPSIzIiBkPSJNNzkuNTA1LDg5LjYxMWwtMS4zODMtMi40NA0KCQljLTEuNTE2LTIuNjM3LTMuMjY1LTUuMDUyLTQuODA3LTcuMTc3Yy0xLjk4My0yLjczOC0zLjcxLTUuNTcxLTQuMjgxLTcuNTcyYy0wLjIwNy0wLjcyMS0wLjEwNy0xLjQxLDAuMTg5LTEuNzkNCgkJYzAuMDI4LTAuMTAyLDAuMzI3LTAuMjY1LDAuNTM5LTAuMzA5YzIuNTQxLTAuNTUsMTMuMDYsNS40OTEsMTUuNjg1LDguNzE5YzMuODQ1LDQuNzI3LDUuMzgyLDExLjM1OCw0LjUyNCwxNC42OTkNCgkJYy0wLjM1MiwxLjM2NC0xLjEzOSwyLjMzMi0yLjI3OCwyLjc5M0M4NC43ODIsOTcuNzEsODIuODY3LDk1LjU4Niw3OS41MDUsODkuNjExTDc5LjUwNSw4OS42MTFMNzkuNTA1LDg5LjYxMXoiLz4NCgk8cGF0aCBpZD0iQm9keSIgZmlsbD0iI0ZGQzkzRSIgc3Ryb2tlPSIjNjAzODEzIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iDQoJCU0zOC4wOTcsNDMuMDA3YzAsMC0zLjExLTkuNjI5LTYuMDExLTEzLjU5OGMtMS43Mi0yLjc5LTQuMi02LjI2Ny03LjQ3Ny02LjA0OWMtNC4wNjcsMC4xMDYtNi4yODMsNC45ODQtMTAuMjk5LDYuNTQ1DQoJCWMtMi42MDIsMS4wMDMtOS40NjEsMi4zMTQtOC40MDYsMGMyLjgxMy01LjgxNCwxNC4wNC05LjA3OSwxNi44NDQtMTYuMzc5YzEuMjYzLTMuMzA1LTQuMjcyLTcuMjUyLTcuOTQxLTcuOTQyDQoJCWMtMi43NDUtMC41MDEtNC4wMzksNC4yMTctNi41NDUsNS42MTVjLTEuMTUxLDAuNjQzLTQuMzM5LDEuMzA1LTMuNzUzLDBDNi42MjksNi44MzYsOS4wNTIsMS4xNzIsMTMuODQ1LTAuNDk1DQoJCWMzLjYxNy0xLjI1NCw3LjU2MiwyLjQ3MywxMC4yOTksNS4xMTljOC40NjQsOC4xODUsMTUuNjE3LDE3LjkzOCwyMy4yNCwyNi42NWw0LjUxMSw1LjEzOWMwLDAsMy4yMjUsMy45NTYsNS42OTIsNi41NjYNCgkJYzAuMDQ0LDAuMDQ1LDIuMzc4LTAuMzE3LDMuOTg5LTEuNjU3YzEuMzE0LTEuMDk2LDEuMTQxLTIuMzIzLDEuNTU5LTQuOTAyYzAuMzg0LTIuMzcxLDAuODAyLTYuNjU5LDIuMDcyLTYuNjgxDQoJCWMxLjkxNi0wLjAyOSwzLjE3Niw3Ljg2OCwzLjY2NiwxMC43OTNsMC4yNzIsMS41NjVjMC42NDMsMy40NzksMy45OTksMTMuOTQsNC4xNDQsMTQuMzg0YzAuMDQ2LDAuMTA4LDAuMTIxLDAuMjQ5LDAuMTIxLDAuMjQ5DQoJCWwwLjAyNywwLjA1NmwwLjAzOCwwLjA0N2M1LjE4NSw2LjQyOSw5LjAzOCwxNC4yMjMsOS4wMzgsMjEuNTI0YzAsMTUuNDY0LTEzLjU1NSwyNi4zNDktMzEuNjk3LDI2LjM0OQ0KCQljLTMuMzY1LDAtNi42NTctMC40NzMtOS43ODMtMS4zOThsLTAuMTY4LTAuMDQ5YzAsMC00LjkwOC0wLjQxMi0xMS4xODYsNy44NGMtMS4yNiwxLjY1Ny0xLjE0NywzLjIwMS0yLjkyMiwyLjcyNg0KCQljLTAuNTkyLTAuMTU4LTEuMDI2LTAuNTkzLTEuMzgyLTEuMzgzYy0wLjg0OC0xLjg4NC0wLjIyMi02LjM0NywwLjgxNi05LjE5N2wwLjE2My0wLjQ0OGwtMC4zNzUtMC4yOTcNCgkJYy0wLjA5Mi0wLjA3My0xMC4yNzQtNy40OTMtMTEuMzAzLTE4LjEyNWMtMC44OTYtOS4yNjgsMy43ODUtMTQuNTQ1LDUuNzI4LTE3LjQ0NGwxLjExNy0xLjg1OA0KCQljMS40MDktMy40MjgtMS4yNDMtOC4xOTUtMy41ODMtMTIuNDAxYy0xLjM5Ny0yLjUxMS0zLjY1Mi02LjE3Ni0zLjE0My03LjAzOGMwLjU2NS0wLjk1NCwyLjU4NSwwLjA2Miw0LjYyNSwxLjAzNA0KCQljMS42NTQsMC43OTEsMy4yNDUsMS45MDgsNC4zNSwxLjE3MWMxLjE0OS0wLjc2NSwwLjM5Ni0yLjY4Ni0wLjY0OS01LjM0NmMtMC45ODItMi40OTgtMi44NDEtNi40NDMtMi4xMjctOC4wNzINCgkJYzAuMTk3LTAuNDQ3LDAuNTQyLTAuNzYyLDEuMDU1LTAuOTYxYzEuODk3LTAuNzM0LDQuNjA5LDIuNDYxLDYuODA1LDQuOTYxQzMxLjUzMiw0MS40NjksMzQuNTcsNDQuOTI3LDM4LjA5Nyw0My4wMDcNCgkJTDM4LjA5Nyw0My4wMDdMMzguMDk3LDQzLjAwN3oiLz4NCgk8ZyBpZD0iTF9FeWUiPg0KCQk8cGF0aCBpZD0iV2hpdGVfMV8iIGZpbGw9IiNGRkZGRkYiIGQ9Ik00MS4yMjgsNzkuNDg5YzAsMi43ODksMi4yNjMsNS4wNSw1LjA1NCw1LjA1YzIuNzkxLDAsNS4wNTEtMi4yNjEsNS4wNTEtNS4wNQ0KCQkJYzAtMi43OTEtMi4yNjEtNS4wNTYtNS4wNTEtNS4wNTZDNDMuNDksNzQuNDM2LDQxLjIyOCw3Ni42OTgsNDEuMjI4LDc5LjQ4OUw0MS4yMjgsNzkuNDg5TDQxLjIyOCw3OS40ODl6Ii8+DQoJCTxwYXRoIGlkPSJQdXBpbF8xXyIgZmlsbD0iIzYwMzgxMyIgZD0iTTQ2Ljk2MSw3NS43OTZjMC45ODEsMCwxLjg3LDAuMzk4LDIuNTEzLDEuMDQzYzAuNjQ1LDAuNjQzLDEuMDQyLDEuNTMyLDEuMDQyLDIuNTEzDQoJCQljMCwwLjk4MS0wLjM5NywxLjg3LTEuMDQyLDIuNTE0Yy0wLjY0NCwwLjY0NC0xLjUzMiwxLjA0Mi0yLjUxMywxLjA0MnMtMS44Ny0wLjM5OC0yLjUxMy0xLjA0Mg0KCQkJYy0wLjY0NS0wLjY0NC0xLjA0Mi0xLjUzMi0xLjA0Mi0yLjUxNGMwLTAuOTgsMC4zOTgtMS44NywxLjA0Mi0yLjUxM0M0NS4wOTIsNzYuMTk0LDQ1Ljk4LDc1Ljc5Niw0Ni45NjEsNzUuNzk2TDQ2Ljk2MSw3NS43OTZ6Ig0KCQkJLz4NCgk8L2c+DQoJPGcgaWQ9IlJfRXllIj4NCgkJPHBhdGggaWQ9IldoaXRlIiBmaWxsPSIjRkZGRkZGIiBkPSJNNjUuNTY4LDc5LjQ4OWMwLDIuNzg5LDIuMjYyLDUuMDUsNS4wNTQsNS4wNWMyLjc4OCwwLDUuMDUyLTIuMjYxLDUuMDUyLTUuMDUNCgkJCWMwLTIuNzkxLTIuMjYyLTUuMDU2LTUuMDUyLTUuMDU2QzY3LjgzLDc0LjQzNiw2NS41NjgsNzYuNjk4LDY1LjU2OCw3OS40ODlMNjUuNTY4LDc5LjQ4OUw2NS41NjgsNzkuNDg5eiIvPg0KCQk8cGF0aCBpZD0iUHVwaWwiIGZpbGw9IiM2MDM4MTMiIGQ9Ik02Ny43NDUsNzkuMzUyYzAsMS45NjQsMS41OSwzLjU1NSwzLjU1NiwzLjU1NWMxLjk2MywwLDMuNTU2LTEuNTksMy41NTYtMy41NTUNCgkJCWMwLTEuOTYyLTEuNTkzLTMuNTU2LTMuNTU2LTMuNTU2QzY5LjMzNSw3NS43OTYsNjcuNzQ1LDc3LjM4OSw2Ny43NDUsNzkuMzUyTDY3Ljc0NSw3OS4zNTJMNjcuNzQ1LDc5LjM1MnoiLz4NCgk8L2c+DQoJPHBhdGggaWQ9IkxfQXJtIiBmaWxsPSIjRkZDOTNFIiBzdHJva2U9IiM2MDM4MTMiIHN0cm9rZS13aWR0aD0iMyIgZD0iTTYuMzQxLDk4Ljk5NGMtMS4wMzYtMC42NjEtMS42MzMtMS43NTMtMS43MjktMy4xNjENCgkJYy0wLjIzNC0zLjQ0NSwyLjQ5Mi05LjY4Miw3LjEzNC0xMy42MjZjMy4xNy0yLjY5NCwxNC42MTctNi43MDcsMTcuMDE0LTUuNzAzYzAuMTk4LDAuMDgzLDAuNDYzLDAuMjk3LDAuNDcyLDAuNDA0DQoJCWMwLjIyNCwwLjQyNywwLjE5NCwxLjExOS0wLjE0LDEuNzkxYy0wLjkyNywxLjg2NC0zLjE0Miw0LjMzNS01LjU5NCw2LjY2Yy0xLjkwNiwxLjgxNC00LjA2NSwzLjg2My02LjAzNSw2LjE4MWwtMS44MDcsMi4xNDENCgkJQzExLjI1OSw5OC45NDMsOC45ODYsMTAwLjY4NSw2LjM0MSw5OC45OTRMNi4zNDEsOTguOTk0TDYuMzQxLDk4Ljk5NHoiLz4NCgk8cGF0aCBpZD0iTW91dGgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzYwMzgxMyIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik02My4xNDgsOTUuMzkxDQoJCWMwLDAtNC41OTksMC4wMDQtNy44MTktMi43NTYiLz4NCjwvZz4NCjwvc3ZnPg0K" mediaID="Alonzo_cst_alonzo (vector)"/></media></snapdata>