<snapdata remixID="11427653"><project name="Sp21 | Project 3 Skeleton" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Sp21 | Project 3 Skeleton"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="size of board %&apos;board&apos;" type="reporter" category="lists"><comment x="0" y="0" w="89.99999999999997" collapsed="false">This is a game board which is expected to be square.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="board"/></block></block></script></block-definition><block-definition s="new board of size %&apos;n&apos;" type="reporter" category="lists"><comment x="0" y="0" w="89.99999999999997" collapsed="false">This creates a new empty board of n by n tiles</comment><header></header><code></code><translations></translations><inputs><input type="%n">4</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>row</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="n"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="n"/><script><block s="doAddToList"><l>0</l><block var="row"/></block></script></custom-block><block s="doAddToList"><block var="row"/><block var="result"/></block></script></custom-block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="item %&apos;row&apos; , %&apos;col&apos; of %&apos;board&apos;" type="reporter" category="lists"><comment x="0" y="0" w="89.99999999999997" collapsed="false">This is just like the ITEM OF block, but for our game board. You don&apos;t need to know how it works.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="board"/></block></block></block></script></block-definition><block-definition s="set item %&apos;row&apos; , %&apos;col&apos; of %&apos;board&apos; to %&apos;value&apos;" type="command" category="lists"><comment x="0" y="0" w="89.99999999999997" collapsed="false">This is just like the REPLACE block, but for our game board. You don&apos;t need to know how it works.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReplaceInList"><block var="col"/><block s="reportListItem"><block var="row"/><block var="board"/></block><block var="value"/></block></script></block-definition><block-definition s="update display for %&apos;board&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doWarp"><script><custom-block s="tell %s %cs"><l>Game Code</l><script><block s="doDeclareVariables"><list><l>step</l><l>size of board</l></list></block><block s="doSetVar"><l>size of board</l><custom-block s="size of board %l"><block var="board"/></custom-block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><l>320</l><block var="size of board"/></block></block><block s="hide"></block><block s="setScale"><l>100</l></block><block s="clear"></block><block s="gotoXY"><l>-200</l><l>200</l></block><custom-block s="for %upvar = %n to %n %cs"><l>r</l><l>1</l><block var="size of board"/><script><custom-block s="for %upvar = %n to %n %cs"><l>c</l><l>1</l><block var="size of board"/><script><block s="gotoXY"><block s="reportVariadicSum"><list><l>-200</l><block s="reportVariadicProduct"><list><block var="c"/><block var="step"/></list></block></list></block><block s="reportDifference"><l>200</l><block s="reportVariadicProduct"><list><block var="r"/><block var="step"/></list></block></block></block><block s="doIf"><custom-block s="item %n , %n of %l"><block var="r"/><block var="c"/><block var="board"/></custom-block><script><block s="doSwitchToCostume"><block s="reportJoinWords"><list><custom-block s="item %n , %n of %l"><block var="r"/><block var="c"/><block var="board"/></custom-block></list></block></block><block s="doStamp"></block></script></block></script></custom-block></script></custom-block></script></custom-block></script></block></script></block-definition><block-definition s="merge up %&apos;board&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">For you to fill out!</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><block s="doFor"><l>i</l><l>1</l><block var="SIZE"/><script><block s="doSetVar"><l>result</l><custom-block s="merge column %n of %l up"><block var="i"/><block var="result"/></custom-block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="copy of %&apos;board&apos;" type="reporter" category="lists"><comment x="0" y="0" w="89.99999999999997" collapsed="false">This returns a new distinct copy of the input board which will help prevent you from accidentally reseting list items. </comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>size</l><l>copy</l><l>row</l></list></block><block s="doSetVar"><l>size</l><custom-block s="size of board %l"><block var="board"/></custom-block></block><block s="doSetVar"><l>copy</l><block s="reportNewList"><list></list></block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="size"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><block var="size"/><script><block s="doAddToList"><custom-block s="item %n , %n of %l"><block var="i"/><block var="j"/><block var="board"/></custom-block><block var="row"/></block></script></custom-block><block s="doAddToList"><block var="row"/><block var="copy"/></block></script></custom-block><block s="doReport"><block var="copy"/></block></script></block></script></block-definition><block-definition s="no moves left for %&apos;board&apos; ?" type="predicate" category="other"><comment w="90" collapsed="false">For you to fill out!</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>rotated</l></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><block s="doSetVar"><l>rotated</l><custom-block s="rotate %l clockwise"><block var="result"/></custom-block></block><block s="doIfElse"><block s="reportListContainsItem"><block var="result"/><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportAnd"><block s="reportEquals"><custom-block s="merge up %l"><block var="rotated"/></custom-block><block var="rotated"/></block><block s="reportEquals"><custom-block s="merge up %l"><block var="result"/></custom-block><block var="result"/></block></block></block></script></block></script></block-definition><block-definition s="rotated row for %&apos;row&apos; , %&apos;col&apos; for size %&apos;size&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block var="col"/></block></script></block-definition><block-definition s="rotated col for %&apos;row&apos; , %&apos;col&apos; for size %&apos;size&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportDifference"><block s="reportVariadicSum"><list><block var="size"/><l>1</l></list></block><block var="row"/></block></block></script></block-definition><block-definition s="score of %&apos;board&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><custom-block s="score of tile value %n"><l></l></custom-block></autolambda><list></list></block><list><l/></list><comment w="138" collapsed="false">Glad to see you&apos;re exploring! Here&apos;s a question: Why is using &quot;map&quot; here an abstraction violation?</comment></custom-block></custom-block></autolambda><list></list></block><list><block var="board"/></list></custom-block></custom-block></block></script></block-definition><block-definition s="score of tile value %&apos;value&apos;" type="reporter" category="operators"><comment w="181.66666666666666" collapsed="false">The block reports the score of an individual tile.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="value"/><block var="value"/></list></block></block></script></block-definition><block-definition s="empty positions of %&apos;board&apos;" type="reporter" category="lists"><comment x="0" y="0" w="89.99999999999997" collapsed="false">Returns a list of locations in board which are empty. The locations are length 2 lists as [row, col].</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>size</l><l>row</l><l>col</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>size</l><custom-block s="size of board %l"><block var="board"/></custom-block></block><custom-block s="for %upvar = %n to %n %cs"><l>r</l><l>1</l><block var="size"/><script><custom-block s="for %upvar = %n to %n %cs"><l>c</l><l>1</l><block var="size"/><script><block s="doIf"><block s="reportEquals"><custom-block s="item %n , %n of %l"><block var="r"/><block var="c"/><block var="board"/></custom-block><l>0</l></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="r"/><block var="c"/></list></block><block var="result"/></block></script></block></script></custom-block></script></custom-block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="add 2 or 4 to %&apos;board&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>addthis</l><l>tohere</l></list></block><block s="doSetVar"><l>addthis</l><block s="reportIfElse"><block s="reportEquals"><block s="reportRandom"><l>1</l><l>4</l></block><l>1</l></block><l>4</l><l>2</l></block></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><block s="doSetVar"><l>tohere</l><block s="reportListItem"><l><option>any</option></l><custom-block s="empty positions of %l"><block var="result"/></custom-block></block></block><block s="doReplaceInList"><block s="reportListItem"><l>2</l><block var="tohere"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="tohere"/></block><block var="result"/></block><block var="addthis"/></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="new board from matrix %&apos;board matrix&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>board</l><l>row</l></list></block><block s="doSetVar"><l>board</l><custom-block s="new board of size %n"><block s="reportListAttribute"><l><option>length</option></l><block var="board matrix"/></block></custom-block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="board matrix"/></block><script><block s="doSetVar"><l>row</l><block s="reportListItem"><block var="i"/><block var="board matrix"/></block></block><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="row"/></block><script><custom-block s="set item %n , %n of %l to %n"><block var="i"/><block var="j"/><block var="board"/><block s="reportListItem"><block var="j"/><block var="row"/></block></custom-block></script></custom-block></script></custom-block><block s="doReport"><block var="board"/></block></script></block-definition><block-definition s="new 4x4 board with values %&apos;A&apos; %&apos;B&apos; %&apos;C&apos; %&apos;D&apos; / %&apos;E&apos; %&apos;F&apos; %&apos;G&apos; %&apos;H&apos; / %&apos;M&apos; %&apos;N&apos; %&apos;O&apos; %&apos;P&apos; / %&apos;Q&apos; %&apos;R&apos; %&apos;S&apos; %&apos;T&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="new board from matrix %l"><block s="reportNewList"><list><block s="reportNewList"><list><block var="A"/><block var="B"/><block var="C"/><block var="D"/></list></block><block s="reportNewList"><list><block var="E"/><block var="F"/><block var="G"/><block var="H"/></list></block><block s="reportNewList"><list><block var="M"/><block var="N"/><block var="O"/><block var="P"/></list></block><block s="reportNewList"><list><block var="Q"/><block var="R"/><block var="S"/><block var="T"/></list></block></list></block></custom-block></block></script></block-definition><block-definition s="merge column %&apos;c&apos; of %&apos;board&apos; up" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>up</l><l>replace with</l><l>column</l></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><block s="doSetVar"><l>result</l><custom-block s="move up %n of %l"><block var="c"/><block var="result"/></custom-block></block><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block var="SIZE"/><l>1</l></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="c"/><block s="reportListItem"><block var="i"/><block var="result"/></block></block><block s="reportListItem"><block var="c"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block var="result"/></block></block></block><script><block s="doReplaceInList"><block var="c"/><block s="reportListItem"><block var="i"/><block var="result"/></block><block s="reportVariadicProduct"><list><l>2</l><block s="reportListItem"><block var="c"/><block s="reportListItem"><block var="i"/><block var="result"/></block></block></list></block></block><block s="doReplaceInList"><block var="c"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block var="result"/></block><l>0</l></block></script></block></script></block><block s="doSetVar"><l>result</l><custom-block s="move up %n of %l"><block var="c"/><block var="result"/></custom-block></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;commands&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="commands"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask for %&apos;reporter&apos; from %&apos;sprite&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%txt">Sprite</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="reporter"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="tell %&apos;sprite&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="rotate %&apos;board&apos; clockwise" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">For you to fill out!</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportListAttribute"><l><option>reverse</option></l><block var="result"/></block></block></block></script></block-definition><block-definition s="test %&apos;func&apos; w/ input(s) %&apos;input&apos; expecting output %&apos;output&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="evaluate"><block var="func"/><block var="input"/></block><block var="output"/></block></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="move up %&apos;c&apos; of %&apos;board&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>up</l><l>replace with</l><l>column</l></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><block s="doSetVar"><l>column</l><block s="reportListItem"><block var="c"/><block s="reportListAttribute"><l><option>columns</option></l><block var="result"/></block></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block var="SIZE"/><l>1</l></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><l>0</l></block></block></autolambda><list></list></block><block var="column"/></block><l></l></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="c"/><block s="reportListItem"><block var="i"/><block var="result"/></block></block><l>0</l></block><script><block s="doSetVar"><l>replace with</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><l></l><l>0</l></block></block></autolambda><list></list></block><block var="column"/></block></block><block s="doReplaceInList"><block var="c"/><block s="reportListItem"><block var="i"/><block var="result"/></block><block var="replace with"/></block><block s="doReplaceInList"><block var="c"/><block s="reportListItem"><block s="reportListIndex"><block var="replace with"/><block var="column"/></block><block var="result"/></block><l>0</l></block><block s="doReplaceInList"><block s="reportListIndex"><block var="replace with"/><block var="column"/></block><block var="column"/><l>0</l></block></script></block><block s="doReplaceInList"><block var="i"/><block var="column"/><l>0</l></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></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="false" sublistIDs="false" id="1361"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="1362"></list></costumes><sounds><list struct="atomic" id="1363"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="receiveInteraction"><l><option>clicked</option></l><comment w="172.49999999999997" collapsed="false">You do not need to modify or understand this script! This simply allows you to use regions of the stage to control the board movement. Connect the script below and try it on a mobile device!</comment></block><block s="doDeclareVariables"><list><l>x</l><l>y</l></list></block><block s="doSetVar"><l>x</l><block s="reportMouseX"></block></block><block s="doSetVar"><l>y</l><block s="reportMouseY"></block></block><block s="doIfElse"><block s="reportGreaterThan"><block var="x"/><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>4</l><l>3</l></block><block s="reportMonadic"><l><option>abs</option></l><block var="y"/></block></list></block></block><script><block s="doBroadcast"><l>right</l><list></list></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="x"/><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>-4</l><l>3</l></block><block s="reportMonadic"><l><option>abs</option></l><block var="y"/></block></list></block></block><script><block s="doBroadcast"><l>left</l><list></list></block></script><script><block s="doIfElse"><block s="reportGreaterThan"><block var="y"/><l>0</l></block><script><block s="doBroadcast"><l>up</l><list></list></block></script><script><block s="doBroadcast"><l>down</l><list></list></block></script></block></script></block></script></block></script><script x="20" y="485"><block s="receiveKey"><l><option>right arrow</option></l><list></list><comment w="175" collapsed="false">These are simple wrappers to share to with the touch controls above.</comment></block><block s="doBroadcast"><l>right</l><list></list></block></script><script x="20" y="559"><block s="receiveKey"><l><option>down arrow</option></l><list></list></block><block s="doBroadcast"><l>down</l><list></list></block></script><script x="20" y="633"><block s="receiveKey"><l><option>up arrow</option></l><list></list></block><block s="doBroadcast"><l>up</l><list></list></block></script><script x="20" y="707"><block s="receiveKey"><l><option>left arrow</option></l><list></list></block><block s="doBroadcast"><l>left</l><list></list></block></script></scripts><sprites select="2"><sprite name="Grid" idx="3" x="0" y="0" heading="90" scale="0.89" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="70.99199999999996,221.85,0,1" pen="tip" id="1480"><costumes><list id="1481"><item><ref mediaID="Grid_cst_grid"></ref></item></list></costumes><sounds><list struct="atomic" id="1482"></list></sounds><blocks></blocks><variables></variables><scripts><script x="18.333333333333343" y="18.333333333333343"><block s="receiveGo"><comment w="122.5" collapsed="false">This is simply a background. You don&apos;t need to do anything in this sprite.</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setScale"><l>89</l></block></script></scripts></sprite><sprite name="Game Code" idx="2" x="120" y="-120" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="12" color="80,80,80,1" pen="tip" id="1492"><costumes><list id="1493"><item><ref mediaID="Game Code_cst_2"></ref></item><item><ref mediaID="Game Code_cst_4"></ref></item><item><ref mediaID="Game Code_cst_8"></ref></item><item><ref mediaID="Game Code_cst_16"></ref></item><item><ref mediaID="Game Code_cst_32"></ref></item><item><ref mediaID="Game Code_cst_64"></ref></item><item><ref mediaID="Game Code_cst_128"></ref></item><item><ref mediaID="Game Code_cst_256"></ref></item><item><ref mediaID="Game Code_cst_512"></ref></item><item><ref mediaID="Game Code_cst_1024"></ref></item><item><ref mediaID="Game Code_cst_2048"></ref></item><item><ref mediaID="Game Code_cst_0"></ref></item></list></costumes><sounds><list struct="atomic" id="1494"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>start game</l><list></list><comment w="273.33333333333337" collapsed="false">You don&apos;t need to change ANYTHING in this sprite! If you correctly fill out the grey functions, the game will work.</comment></block><block s="doSetVar"><l>SIZE</l><l>4</l></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="new board of size %n"><block var="SIZE"/></custom-block></block><block s="doSetVar"><l>GAME OVER</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="add 2 or 4 to %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="add 2 or 4 to %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>SCORE</l><custom-block s="score of %l"><block var="GAME BOARD"/></custom-block></block><custom-block s="update display for %s"><block var="GAME BOARD"/></custom-block><block s="doShowVar"><l>SCORE</l></block></script><script x="20" y="267.16666666666674"><block s="receiveMessage"><l>finish move</l><list></list></block><block s="doWarp"><script><block s="doIf"><block s="reportAnd"><block s="reportNot"><block s="reportEquals"><block var="GAME BOARD"/><block var="LAST BOARD"/></block></block><block s="reportNot"><block var="GAME OVER"/></block></block><script><block s="doSetVar"><l>GAME BOARD</l><custom-block s="add 2 or 4 to %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>SCORE</l><custom-block s="score of %l"><block var="GAME BOARD"/></custom-block></block><custom-block s="update display for %s"><block var="GAME BOARD"/></custom-block></script></block><block s="doIf"><custom-block s="no moves left for %l ?"><block var="GAME BOARD"/><comment w="89.99999999999997" collapsed="false">extra credit: Add better visual confirmation here!</comment></custom-block><script><block s="doSetVar"><l>GAME OVER</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doShowVar"><l>GAME OVER</l></block></script></block></script></block></script><script x="20" y="556"><block s="receiveMessage"><l>up</l><list></list></block><block s="doWarp"><script><block s="doSetVar"><l>LAST BOARD</l><custom-block s="copy of %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="merge up %l"><block var="GAME BOARD"/></custom-block></block><block s="doBroadcast"><l>finish move</l><list></list></block></script></block></script><script x="20" y="708.5"><block s="receiveMessage"><l>right</l><list></list></block><block s="doWarp"><script><block s="doSetVar"><l>LAST BOARD</l><custom-block s="copy of %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="merge up %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doBroadcast"><l>finish move</l><list></list></block></script></block></script><script x="20" y="964.3333333333335"><block s="receiveMessage"><l>left</l><list></list></block><block s="doWarp"><script><block s="doSetVar"><l>LAST BOARD</l><custom-block s="copy of %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="merge up %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doBroadcast"><l>finish move</l><list></list></block></script></block></script><script x="20" y="1220.1666666666665"><block s="receiveMessage"><l>down</l><list></list></block><block s="doWarp"><script><block s="doSetVar"><l>LAST BOARD</l><custom-block s="copy of %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="merge up %l"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doSetVar"><l>GAME BOARD</l><custom-block s="rotate %l clockwise"><block var="GAME BOARD"/></custom-block></block><block s="doBroadcast"><l>finish move</l><list></list></block></script></block></script></scripts></sprite><sprite name="TESTER" idx="5" x="177.0314179707475" y="106.45984543014563" heading="168" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="140.25,0,16.830000000000016,1" pen="tip" id="1724"><costumes><list struct="atomic" id="1725"></list></costumes><sounds><list struct="atomic" id="1726"></list></sounds><blocks></blocks><variables></variables><scripts><script x="22.818791946308778" y="10"><block s="receiveGo"><comment w="215.83333333333334" collapsed="false">This is a tester sprite! You should expand the test cases here, by adding items to the input and output lists, and attaching comments to blocks explaining your ideas.</comment></block><block s="hide"></block></script><comment x="12.75167785234899" y="106.64429530201346" w="471.6666666666666" collapsed="false">==============================================&#xD;These are your graded test cases!&#xD;&#xD;For four out of five of the required blocks you must have 2 different sets of input and expected output.&#xD;Additionally, each function should have a brief comment explaining why your test cases&#xD;are good / useful.&#xD;&#xD;You are more than welcome to add as many tests as you like, for additional blocks, as long as you meet the requirements above.&#xD;&#xD;We strongly recommend that you write tests BEFORE each block!! If you&apos;re doing the testing extra credit, (see spec), your extra credit tests should go in this sprite.</comment></scripts></sprite><sprite name="2048" idx="1" x="-175.15991776932333" y="-18.431851320756607" heading="65" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="144.94199999999998,147.89999999999998,0,1" pen="tip" id="1732"><costumes><list struct="atomic" id="1733"></list></costumes><sounds><list struct="atomic" id="1734"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"><comment w="90" collapsed="false">There are four grey functions to fill out to make this game work.</comment></block><block s="doBroadcast"><l>start game</l><list></list></block><block s="hide"></block></script><script x="20" y="113"><custom-block s="add 2 or 4 to %l"><l/></custom-block></script><script x="20" y="183"><custom-block s="merge column %n of %l up"><l>1</l><block var="tester"/></custom-block></script><script x="20" y="216.83333333333337"><custom-block s="merge up %l"><l/></custom-block></script><script x="20" y="246.83333333333337"><custom-block s="rotate %l clockwise"><l/></custom-block></script><script x="20" y="276.83333333333337"><custom-block s="no moves left for %l ?"><block var="GAME BOARD"/></custom-block></script></scripts></sprite><sprite name="HW3 Lab" idx="4" x="4.840082230676217" y="-2.431851320756948" heading="210" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="4.284000000000003,214.2,0,1" pen="tip" id="1755"><costumes><list struct="atomic" id="1756"></list></costumes><sounds><list struct="atomic" id="1757"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="468.8478747203585"><block s="doDeclareVariables"><list><l>lab board</l></list><comment w="89.99999999999997" collapsed="false">This test ensures that the item of block correctly reports the items at locations (1, 4) and (1, 2)</comment></block><block s="show"></block><block s="doSetVar"><l>lab board</l><custom-block s="new board of size %n"><l>4</l></custom-block></block><custom-block s="set item %n , %n of %l to %n"><l>1</l><l>4</l><block var="lab board"/><l>2</l></custom-block><block s="doSayFor"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="item %n , %n of %l"><l></l><l></l><l/></custom-block></autolambda><list></list></block><list><l>1</l><l>4</l><block var="lab board"/></list><l>2</l></custom-block><l>2</l></block><block s="doWait"><l>0.5</l></block><block s="doSayFor"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="item %n , %n of %l"><l></l><l></l><l/></custom-block></autolambda><list></list></block><list><l>1</l><l>2</l><block var="lab board"/></list><l>0</l></custom-block><l>2</l></block><block s="hide"></block></script><comment x="54.161073825503365" y="10" w="408.1208053691275" collapsed="false">EXAMPLES:&#xD;&#xD;These tester blocks take in a reporter -- something that you want to test.&#xD;The inputs are what you would want to pass into the reporter as a test.&#xD;The output is what you expect the reporter to output when passed in the input(s).&#xD;&#xD;The block will report a Boolean based on whether your test passed.  &#xD;&#xD;&#xD;Note: You must leave the inputs to the block you are testing empty.</comment><script x="513.2214765100671" y="75.482103908277"><block s="receiveGo"></block><block s="hide"></block></script><script x="29.644295302013404" y="189.9999999999999"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><l>1</l><l>1</l></list><l>2</l><comment w="90" collapsed="false">For you to run!</comment></custom-block></script><script x="31.644295302013404" y="242"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><l>2</l><l>4</l></list><l>5</l><comment w="90" collapsed="false">For you to run! This test should fail, since 2 + 4 does not equal 5.</comment></custom-block></script><script x="27.644295302013404" y="396.9999999999999"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="size of board %l"><l/></custom-block></autolambda><list></list></block><list><custom-block s="new board of size %n"><l>10</l></custom-block></list><l>10</l><comment w="90" collapsed="false">This tests that new boards are created with the right size.</comment></custom-block></script><script x="33.644295302013404" y="322.9999999999999"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><list><l>5</l><l>2</l></list><l>3</l><comment w="90" collapsed="false">This tests whether 5 - 2 = 3, which should report true.</comment></custom-block></script><comment x="30.644295302013404" y="977.6778533489921" w="287" collapsed="false">From lab: fill in two of your own tests for the &quot;merge column up&quot; block. Refer to our tests of &quot;item of&quot; and &quot;+&quot; above to remember how to deal with &quot;merge column up&quot; needing multiple inputs.</comment><comment x="30.98657718120802" y="769.1263992102906" w="281" collapsed="false">From lab: Fill in what the output should be for the following test case for &quot;merge up&quot;. In HW3, you&apos;ll add more of your own &quot;merge up&quot; test cases.</comment><script x="27" y="841.6778533489919"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="merge up %l"><l/></custom-block></autolambda><list></list></block><list><custom-block s="new 4x4 board with values %s %s %s %s / %s %s %s %s / %s %s %s %s / %s %s %s %s"><l>4</l><l>0</l><l>0</l><l>8</l><l>2</l><l>0</l><l>0</l><l>0</l><l>2</l><l>0</l><l>32</l><l>0</l><l>4</l><l>0</l><l>0</l><l>16</l></custom-block></list><custom-block s="new 4x4 board with values %s %s %s %s / %s %s %s %s / %s %s %s %s / %s %s %s %s"><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l><l></l></custom-block></custom-block></script><script x="23" y="1052.677853348992"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="merge column %n of %l up"><l></l><l/></custom-block></autolambda><list></list></block><list><l></l></list><l></l></custom-block></script><script x="21" y="1092.677853348992"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="merge column %n of %l up"><l></l><l/></custom-block></autolambda><list></list></block><list><l></l></list><l></l></custom-block></script></scripts></sprite><watcher var="GAME BOARD" style="normal" x="-0.00003582740646379534" y="0.00004885555456723978" color="243,118,29" hidden="true"/><watcher var="SIZE" style="normal" x="0.00004885555426881183" y="0.00004885555456723978" color="243,118,29" hidden="true"/><watcher var="GAME OVER" style="normal" x="-0.00000162851802087971" y="0.00015145222890566856" color="243,118,29"/><watcher var="LAST MERGE ROW" style="normal" x="-0.0006078954158965644" y="0.00019542221826895911" color="243,118,29" hidden="true"/><watcher var="LAST BOARD" style="normal" x="-0.15353321325983416" y="0.395185614691826" color="243,118,29" hidden="true"/><watcher var="tester" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="SCORE" style="normal" x="1.0000977111089924" y="26.000097711109106" color="243,118,29"/></sprites></stage><variables><variable name="GAME BOARD"><list id="1968"><item><list struct="atomic" id="1969">0,0,0,2</list></item><item><list struct="atomic" id="1970">0,2,0,0</list></item><item><list struct="atomic" id="1971">0,0,0,0</list></item><item><list struct="atomic" id="1972">0,0,0,0</list></item></list></variable><variable name="SIZE"><l>4</l></variable><variable name="GAME OVER"><bool>false</bool></variable><variable name="LAST MERGE ROW"><l>-1</l></variable><variable name="SCORE"><l>8</l></variable><variable name="LAST BOARD"><list id="1973"><item><list struct="atomic" id="1974">0,0,4,4</list></item><item><list struct="atomic" id="1975">0,0,0,128</list></item><item><list struct="atomic" id="1976">2,0,4,1024</list></item><item><list struct="atomic" id="1977">4,2,32,4</list></item></list></variable><variable name="tester"><list id="1978"><item><list struct="atomic" id="1979">2,2,2,2</list></item><item><list struct="atomic" id="1980">2,2,4,2</list></item><item><list struct="atomic" id="1981">2,2,2,4</list></item><item><list struct="atomic" id="1982">4,4,2,2</list></item></list></variable></variables></scene></scenes></project><media name="Sp21 | Project 3 Skeleton" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="grid" center-x="240" center-y="180" image="data:image/png;base64,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" mediaID="Grid_cst_grid"/><costume name="2" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAlRJREFUeF7tm0soRGEUx8941mg8ipqSV1ESSlNTHkVWshBlM4qyIAtRlB0xK1lYyELUKBtLoqzkkaJkKCTFglBTlMdkylvf1Mg1c/VNw7l17//upjl37vn/v/Od35m+rqlqcC75Pip5Poqokgx0vROtJ73f1ZtKnKtrRhMfWGdhgsnmXP0w0MIHSYUBqABsAfQANEFQwMAOAIPAIDAIDAKDBoYAgQKgACgACoACoIBGDhSlmMn7/Epnj88aZUD8GBSim0szqdpmVYhecXtofveKNj1eVjNY54C63FQacBT+KnBy6YQm3VdsJrAZIFZ+utMuJcw5e0gLpzdSsZEGsRkwUpsfVPZqyV9c+6hhYjtSbVL3sxmw0ltBieaYr6SOzu+pZ3bf/3nUUUwFWUmKhGuGN+jm5U1KRCRBbAbs9Fcp8vxe5u22dGqvzVN83zXlZmmIbAbMddgpI83sF/nge6Vu1y4d3PooNTY6ZAU0jm6y4JHNALUyDdUbxPZomdmLpLKl79XUgJ7yLGqqzglKlqv8xYM1M0BtJtDtHPB9mdVmgsWtSxpaPpUu378IZK+A7IQ4cnXYFUgUQsQo3Ld0/BeawvoNVgPUOn5gJuDg/k93WA1Q6/hiINJCPGsTVOv4avXaOr7tnxP++2KpgHD+CAUEc6GQxYAyq4XG2mxhLabhDdDVFhBLL7aBJT5aqgq8T28s+5+1CUop1yCIpQdooEv6kTAAZ4M4G8TZIM4GpVumDgNBAVAAFAAFQAEdNndpSaAAKAAKgAKggHTL1GEgXp42+uvznz/1QKYAC4AdAAAAAElFTkSuQmCC" mediaID="Game Code_cst_2"/><costume name="4" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAfVJREFUeF5jdJg/X+CjOPuG//+Z7BlGEGBk/HeQ/+XPAEbDbcsOjDTPw+IZFAiMBltX/B9BEY/h1dEAGE0Bo1lgtAwYLQRHa4ERHAKj1eBoNThaDY5Wg6PV4AiuBBhGa4HRWmC0FhitBUZrgdFaYASHwIBXg7VqugxBKlooUdBz/hjD0ueP6RItAxoA6pxcDCscfTE8uuTGBYbeezeHfwAsNLVl0BOVGpkB4CwozNBj6YI1lkdECthm780gyc0zMgMgQ06JIV3HFGceH9YpQJCFlWGTow8DDyvbyAwA9Grvy+9fGIExbFOAKS8fwyxbT5SYB3k2RsMAQ2xYVoPo1d7zr18YvA5uZTjvFT78AyBARIKh3gx1DUbJ8T0Me9+/HRkBgK/aw1Ua0qNJTJemcLGSOkY+J6adS4/CkOYBQEy1hyswhkUAREvKMpQYWhET4QPSJ6BLCjDi5cMZAKq8/Bitwl2P7jDsevqA4dznTwzv//wmK/CI1UTzACDkEGydInokffhKsYEeFgeNCcyxcUdpDTaeOsiw4c0LQmFHFfkBTwFU8QUFhowGwEBnAQoijypaR1PAaAoYnRscnRscnRukSnE6RA0ZrQVGa4HRWmC0FhitBYZoAU4VZ4/WAqO1wGgtMFoLjNYCVClOh6gho5unR/r2eQD9QzzWPaONjgAAAABJRU5ErkJggg==" mediaID="Game Code_cst_4"/><costume name="8" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAnxJREFUeF5jTFhfIPCV++sGhr//7BlGEmBmOsj9lTuAMXRX6oER53lYRDMzHWQM3Z78fyRFPLpfRwNgNAWMZoHRMmC0EBytBUZwCIxWg6PV4Gg1OFoNjlaDI7gSYBitBUZrgdFaYLQWGK0FRmuBAQoBVS5psM23vz0dIBcw0L8a5GPmZAiWd2fwVPNB8fT2W1sY1j7cyfDp73e6BgZd2wEgz1ebFjIoCihh9eT9D/cYWk/30zUQ6BoAiUoBGDGPHhKglDD/3ga6pQK6BsB85wkM3Kw8BD0XtiOFoBpqKaBbAEizCzH0O3ahuLv6UD3Dy5/vGCY6tKMETOuxDoaLn+5Qy494zaFbAIDy/xzXyUQFAChg6FUz0C0AQD6fYtvCIMYtgTdGvv7+wpC4t4AusQ+yhK4B4CtlzxCrF4vXc2uvrWZY+Wjn8AsAfT4VhgLTHIKFICgFtB3vHn5ZgJjkD4t2UHug/EQbXVIBXbKAlZAuQ4FZPoqHQJ6cdH4Gw+c/37E2juhVENIlAMLl3BmCtUJRAgC5qgNlj2qrChT52edmMex+dYrmqYAuAYCt8CMUAPQqDOkSANhiGJYFQFGcZ5iB0T+gV2OILgEAagSht/bwpW1QTZB/oJIunSK6BADIs8S0AWCBsvjSYobNzw7SPP/TvSGUox7NYKfoiNdjh+7vZ5hycyldPE/3AABZCKoS/dV8MfI8qEzYeGszw7F3l+nm+QEJAGTfjcghMbpGLxGW0a0QJMItA6JkNABG5wZH5wZH5wZH5wYHpPgdJJaO1gKjtcBoLTBaC4zWAoOkQB4QZ4zWAqO1wGgtMFoLjNYCA1L8DhJLRzdPj/Tt8wCxXVKeMGsWewAAAABJRU5ErkJggg==" mediaID="Game Code_cst_8"/><costume name="16" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAtxJREFUeF7tm01oE1EQxyeJUdOgTW0bWhtammilCApFaEGpXsReRE+CN/FahXqoQi8qHkQ8eNaDevOqeGkrfmKhgrT4RSCalAbalNAYrbaxxkSZQ0Lf5m022+74WHZy3dm3M//5+L3NY133ng8F2oKFh8Vi8TA46Od2u1/OpT0nXeOfzr9wWvClPKMIrtEPg38dlPiKUFkArgBuAZ4BPASZAg5WgDHIGGQMMgYZgw6GADAFmAJMAaYAU4ApQKhAoC5SXj2X/wqr+WzVp23xNoDPu6Ns83N1Hv4UcmQekmAQgwg3DkB700HB8XxhBZ5FL+oGg2L1hi8I11PZKXg/d9c+Amzy+KC/6yp4PXVSp8c+ntMNpi8yDPW+DuH6m8Qt+LYSt48Asiyu9V5PgJbtB2B/+xkh0OTiBEQXHpAFjwtb3gLrEQCrpi9yCfybm8rBYrtMfLluODM2qo7lAmD/H9lzDTB79f5QRUnLKqCz8Rh0tR4XYomlHsNMZmyj8Rneb7kAa5/Y0zEIzdu6BSe0AshmBmb/Vewy6fQvOaVcgO6W0xW0QOdQhFR2GhKZUdI2UCqAf+tOOLRrpGqZohBTs7fJSKBUAFmLyNSgbAllAhjRQisEFRKVCSCb/O+S92Fh6S1ga/R2DgmbqeXfi/A6dsVwqps1UCaAtvy1AcoEehodtpwMygTY13YWWht6ygnTCrA7eALCwaNVEWo22zJ7ZQKEAv2wN3RKuvmRtcD33CxMxm9aEbOwhjIBSjvGWiNKpJ/A5/SjWs1rtlMmAHooK3OZ59gek/Eblvc/ycuQ2a2wdhZoBcDgp5N3YPnXfM1ZNWNIWgHa4PT6GPcE4eYB4b0BbTM/YjCTGSfJ/H95FzCTiZItzgajv83Ws67ePaQVYKWjVGuxAHw0xkdjfDTGR2NUE9YO6zIFmAJMAaYAU8AO05rKR6YAU4ApwBRgClBNWDusyxRw/MfTTv98/h/Ghr/wgUUS9AAAAABJRU5ErkJggg==" mediaID="Game Code_cst_16"/><costume name="32" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAA19JREFUeF7tW0toE1EUvZO0+dkktV1EayWoCFJQIxW7lKpLkdaFdFHcWDfiosWN6FoRXSgiIlp3LupKEdd+UETEYhUpYrG2KGoF0zZJ87GZRO7oDDPvzSQT89ImzM0uzHtv7jn3vHNeZoj0+V5fa2tk8X5Rdu0FB30kd+Hpwly4T5p/0fvEaeDVPiMJUvzZ/qKDGs9BJQJIAbQFyAPIBCkFHMwAxSDFIMUgxSDFoINDACgFKAUoBSgFKAUoBWrIgNsfBTkzW/EdcJ7kDirz8qn3Fc+3O6EmMehp2we+TUfB7e/U6sjNPYbszA0oLP+yrE1yBcATOQSBLUPcGDvz7YLWjxNOgHf9gCkAvGkxn4Dk2xFTRSD44I6L4G7ZVhJHcmJYqCKEEoCyDXXfLglATn2AxMRJbkxg61nwRnrLNhFJTIwfL6mksovoBgglwKz7WLDUFDLUxHbR1dwO4Z67XN1Ilpki0p9GIfd9rBKc1ttO5EmQ7SICldPTENx13eAH6Y9XIffzgVZUc7gHWrafMxS5NHkefscfgZmq8vHXkJw8XX8EoAI8a2NKYfJyEtJTf0GFYtcMnWQJMFPO/PMDGkB2ft0SwLYEu+ftHOT2dmL8mMEIUQG+Df3a9Hz2B2SmryjfMVHWdJ0xLI2JoJJbrQyEegBbjFlnM7NjkP0yaqtuJDC48zLnIer2sLVImUErTkCpKNTXisYY6r7FgRcpf7zfihOgngdKRZnVmQDJW3w1CMVCWkTzlTVqSgB20bOuHzztMS7Ost8eavucRWN2JrCrnEqZEUaAPgGwiKWpS9phBTsa3nPHIGerA5Fv4xD4owMcDtY4KwVqNV4YAcGuC9DUtlu7D2t27HXs6MLLw4a6zBxfIfPfmUAUaP06NSNAznyF1LtTigrM3Jw1M6tjdC3BC/UA/+Zh8HUc5JqEUnf5Ojg31x9nrRzfquMik0CYAuz8EFIBoTqSb05obm5FXkMRgMXaAWLm5qw/lNvrdakAtWhMA3/0CCd5vI7Rl525yeW4HeL0pNQ1AWqh+kdaRTn5X4/FyilBxHVhHiCimNVYgwgQ+UBkNTpY7T1JAaQAejlKL0fp5Wi1TtrI8ykFKAUoBSgFKAUa2cWrrZ1SgFKAUoBSwNkp4Pg/Tzv97/N/AMHVEJurmIc3AAAAAElFTkSuQmCC" mediaID="Game Code_cst_32"/><costume name="64" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAwdJREFUeF7tm01oE0EUx98m6Tbp9iMqerGi9FQERaSIFCVSPEQPWqqIIsUiHjy0N0HxIgXxouChHsSK0IMoUkv1FBC0vfSgxYOCeJCqmFNFuzaJ+Wg3kQnuNrM7uzMLCdlk397CvN157z/z3u9thpW+3h2MRpVfs5IUiIGPrlKpOK9mtgxKKw8Oz/kteH2diQiSOhkr+WjhLaGiALgDMAWwBmARRAr4WAHEIGIQMYgYRAz6GAKAFEAKIAWQAkgBpECNFJBawhDctMt4ejGzDMXMb1ezBaM7QJIV45715c+u7ucZ1wyDAWUzdAw9AmiNbgiw+h1Szy7wfDLGI3tPg3xglLIvvL0H2Q/Tws/gGdZMgLb+MWjZfYqaP//6BuSW5nk+lcfLAp6bsdg2hAChbb2gnLhPOa8lFyCduC4UPDFSBq5BqCfemAK0x29BsLufcj7z8jKI5i9LQP1hnt8BcncfROJ3qODXPj2HvwsTwqvfcWYKAp07mfaeF4DlfOrJkHD1j/QeA/nQVVuxPC2Ak/PrSwnIvX8MmvrDNjiCzc6zTylymI09K4CI8yQYJxJE+kZA3jeyEXNetYjhWQEszjtkfHp62LITWNgjwTZEH2DHbDsNtJ8fIf1ijBo2k6P4v2nqujTn/UYo3BOD1oFxZuUnqaEcvw3BrXuo8T8Pjxi/WdjTsWkWgBCl8OWVMFJ56KlKJ8hqWVen4lBay5XnZwlU2Rc4Yc8ugGrVgroLwBKPt2pk3FMCsLaw3vyQ+tB2dJyZAqLkYAniKQGIg13Ds478rgxCfy9wanl5u8BzArDynBlEXoXUzEWjMyQiOF3mlyq9CGor34wawxPLabwqNUCfgJvPeRWyb25CIbko7HNDYLAyGvIPTnj/eQhtP2ikBGG6llyE7LtJ16vWfnKCqh/ZxBVXAvKUruoOME9Gihy5dBzynKnHeE0FqEdAbudEAfBoDI/G8GgMj8bcVs5mskcKIAWQAkgBpEAzVXW3sSAFkAJIAaQAUsBt5Wwme6SA7z+e9vvn8/8AeTPlFBLgup0AAAAASUVORK5CYII=" mediaID="Game Code_cst_64"/><costume name="128" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAA5BJREFUeF7tm1tIFGEUx8+qtV6y1txVM30QMoJeisCH0i6QvURlPUiBSoUSVAZFNwitiIIuECgZZPSgQSESZUURQZkQ0QUDCQIDCzVdd7d1s2zXy26chZn2m/lm1p11p4U5vsl8l3P+5/L7vhnW1H2mzGL1u+4DBNaBof5Mnc6EzDJTf33JS+M5L0Ta1Gnqry8OGCrwEmdJAMoAKgHqAdQEiQIGVoAwSBgkDBIGCYMGhgAQBYgCRAGiAFGAKGBgBWYFg3PyChkJJwd6uZLiOHN2ASSmpIHPbYcp+zeYcg6Gld9kToYkW35wrs/eB0rrh12IMyAqAeat2gTpayogMbOAWXq4cSfjWEK6BTK3HQNz4VqZCb7eV+B+2qQoBO4xv/QgJKRkiHP9f9zgaq8H35ePWnxm5mgWIHn5arCWX+QaYG/eK0YJo7focBvjgHQSOjR8rQr8Y6PMI7U9cGDoPlqV0CzAguLtkF56JKwACzfvh9SiXWHt8/Y8Amc7K2juyQ5V4aZdfTDUUBV2bbUBMRdA6gQ66nlzDyzrd8tKYuB0iWgr9ovsmlvi/xP93eD7/ALSivcwogxeKIWAz6tZBM0CYF2nLi2CSc8I2CobGQOE1MQxuUcfMs8Eg3nPQlNaKsDvrmZwP2+BjI1VkFZSI64ZbRloFkCwQGpoaG1KncQojtw8FJyKzc2ytY4R5/uVLWIfSLIuhpzau0zjmxzoUc0aLWkQUwGUDOKJFiqOMC+rugHm5q9U9Gv87R348bhJi9/iHN0FwMhmVV+XNTdpKpuXrJCVFo8eQ1fL/08PmEkJSA1GJNoqL8miOtpxDn59ePYvKjNApzAYzxGO26c0Z4GuGWCrOC+rYV4a8/jvbDsB3k+vgYffaEigmwC88wCP/RhKqZPSKOed7WIi7mit1Xwq1EUAXkSx6Tlaj3PrVypA6IEnHD4jrYWYC8Dr+Ggkct3vHWPs/fnuSVAQ3hzMgomv78G8bIOsh8RtCWC0cg60qB5nQxUQSIDNMmffDdklixfduG6CStFXSlO1kyBvjtIlKpIyiEkJCNfhaARAJ3C+dUcdNxMw8q4Hl2U3yEicx7FRCyC8rBA2DnjHmbu99GWJmoEzfZEy7XHM2kuRqAWIVPF4G08C0Jch+jJEX4boy1C8dWY97SEKEAWIAkQBooCeXTfe9iIKEAWIAkQBokC8dWY97SEKEAWM/uNpo/98/i/fik0JmmzR+wAAAABJRU5ErkJggg==" mediaID="Game Code_cst_128"/><costume name="256" center-x="32" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAA+dJREFUeF7tm11IFFEUx8+6rh+ltn7WKpKGED0EPvQWZD1IX5T7kglGaYFsEhUZUSG0gkVU0gelS0RFJYhPRlBBD2kQREQYQVFIPpis7aq74mZ+rnEWZpm5c2d2ZnZ9WObM2zBn7r3nd849/3N3WMtwg9OeOvG3z2JJqQITXcvL4YHF/NVOy8i+6n6zOS/EGSFYfu/fuWyiwMtcJQCUAbQFqAZQESQVMDEBkkGSQZJBkkGSQROLAJAKkAqQCpAKkAqQCpiYQNwyaNu8AdI3bYwgXPT7YWlkFBaGvFykKdkZYC0rVsUdHp+EJW9Q1QbnFF8LX38ZDqFhALgIe0MTpFVUyib/9/4lTD19InMk98RRWFVdqw4gFARvfZ2iTVbtblhTf0ryfMxVFxOa0oCGANgqHFDQdhNSsuyKC50fGoQJtxvC07NRm4K2i5BeuS1mtEZrdilm0FrPY8m8M296IXD3YcwxEwqgsOMqN/LsJOzi4gXAZlA4FIQ/rgYJZL0kdGcA7mPHsz7JPOjozMcPkHPwsATMgncYfK7jUduS568l780NvpOtd8k/xo2o1WGHdZ4eif1U920I9b7S67PEXjcA3PtF7Z3RQcROss/QSJzOLAClVOd5xGYPC9coBf0AKhxQ1PEoOh8WvMlrdyL3vCInOMmLINYJvBaHf0YyaO7jN64fPLAIYPpFD8x//mK4AOJkugEokc7YsQXyT7fLtoZQoHhOsGMhzGDXfdmeVqs5WAcCD27A7NtPhpIgIQB4zuHCfGdd0ehoAYAeiDMK73lgeZ76WpvBSD8QNwAlSZy41SqJCs8RTGObo1zmj9gZrYpjtCbEBQAVId/tlkki67xabvIACtWdpzjC2DygvpZGxS40oX2AMBhP12M1JrgVrAV5kuxguzuUx/FLV4DdNlg0/S3no74UebokGaQHvDCI4QzgVXw151l7cbRyGg9AtvNY1DFhHDXJRWNHd4+kKxy/fEZRSRKaAUqFCVOXvYRGhdfFYfVOKyuXOI/vC5FUarpCA/2QVbVddq7wHnLq7gp1Z4DWai6AEPoA3Ovi/kEpImx7m3fuJGRu3RNT4oRtE9OQMdANgHcaU5tU3O1peZeVM8wC9gDEzhfPmUA3gMy9VZDXdEEzaLbdRQjZNUdkJ0mUscC961wtxy4y19XMPUli5AOeTsPdoG4AWn7UENPhNSfoUGppMdjK1kdM577/0NTE4DaylpZAamFhzB9ftEZINwCtAyeLHQGgL0P0ZYi+DNGXoWSp2CuxTlIBUgFSAVIBUoGVqK7JMiapAKkAqQCpAKlAslTslVgnqYDpVcD0f542+9/n/wNNGEknYtQj5gAAAABJRU5ErkJggg==" mediaID="Game Code_cst_256"/><costume name="512" center-x="32" center-y="32.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABBCAYAAABhNaJ7AAAAAXNSR0IArs4c6QAAA8xJREFUeF7tXG1IU1EYfufHUrOGoGlamuYqTUrLCsTKiixDsiAqikqjIogKoj/5RyQQ+hOESZ9gCglFooGgZZmUCImhRGmkGFmaqOjMOUvnjDPY5d6zs3vvvGsb3nf/du6578dz3vd5zt3ZpgEAKD7/IENjDMy1+FtWkPfz/aWdnWmfDjBXX7x7tlFz53Rp7syMT+l8T5qVn6+vJU9TkldmmLWATo0AaHxgTHP7VNmsGpO35YwAYAVgCyAHIAmiCqgYAZRBlEGUQZRBlEEViwCgCqAKoAqgCqAKoAqoGAHFMhiZEAnrM9eIQjg2bITmxy3cnKCQIEjelwS60GBurLdzAD6/7LCzszYzEfSp0RC1aon1Wt/XQRj8PgItlW1g/jOteOkUA7DjXDokpsVJBlKSW26dE7MhBrIvbbeb39P2E2pvNXDjfgH+cLggG0KWLmLanjROQV3JW+jv7Jf0LTZBMQBZl3dCXMoyySBsADiaTwMgB1gCwrOiWvjdPybp39EExQAcyN/LladYFM4AsDhSByeKcgTmRn+Ng2l80s5XY0Urs3XkIqIYgAuPTgp8PSmstfNtMkyAadRkHScVsGChFv5OTAkqh18BdJuQ5J8W1lh7nq4MunLkJu6ygxEagKobr6y2DQMGLmlWUITcMo6lcpf4idDX3j//CK1V7da5qQeTYUvOOuZ9ziZP5iuqAFap8oMgK1dT3MDsUTEAiN3lSVGcqR+f+qw2WP7a6r8IFMZZEBQBEBobBkcKsiR9kqqg2VoMAJZBIp1Hr++HwGCtXcsNfxuSjOG/kKBcAAhbl1+tFOi2MwAQScy+ssvlBKi4BciqxG4SfqfCODwBUQnhkLJbuDl68bAZupu6uYVwBgCWJCotfZeRoKPSSju+WQACHbBcAGjSI/7IbrC6qG7OZc+/UTEHhOvDIDohAkIidFBxrYqzHZ8eD3vOpDlkazkAsHaNJPmam69dsg1W3AL0rs62yqyepTcsUgCw+IXFJUrLQFEFsFaIBEkzNQmSbJD4bC0lg4fys5h26IQ9uhFyxM50kB3NPfDmfpNgWAwAOc8BNmMeBYAE4Uif+QHW33tn17NiAMh9wCI+PA4ACYJUwupteu65nbTBr65B6PrQK5A+fgmQ9kncupIb4n8eQAhUvzFaVnsP9Y5w22RZN1CTFHHAXBx62z0IAB6M4MEIHozgwYi3MbM740EVQBVAFUAVQBVwJ+t6my9UAVQBVAFUAVQBb2Nmd8aDKqB6FVD9b4dV/+txQjjk/wPMU34Z7iQfT/vy05obyf8H/ANtEEE/rJSJKwAAAABJRU5ErkJggg==" mediaID="Game Code_cst_512"/><costume name="1024" center-x="32" center-y="32.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABBCAYAAABhNaJ7AAAAAXNSR0IArs4c6QAAA/RJREFUeF7tXFtIFGEUPmOmLHgXFLyRWEQmBoFmFmIaoYiIYmVGuN1ECxSpsAsYGZhSYEaoZOH6kElIJBG+SC71kNpDIRaUSKQlWahrBtuquXEmZpj5Z2Z3JDXcPfM2/Oc/1++c758dZjkAgHxjU+pvm49xAeY34L2rX57AvVnn/etxp6nUzOUVthrti1yrqwetFh/nYT/K5R1stdg5zt8tE2C3z3C5BSa7OwYvxEwJIARQC9AMoCFILODGGSAaJBokGiQaJBp0YxIAYgFiAWIBYgFiAWIBN84A0eBSaDAs1BcM3ut5vFht8zA+MauKnUB/A4SH+EJkRCBMTv6ESYsVRkannOIM9W+LDePlxj5P83ustgVd+/T4pfpuQE8CMKDiYzthR2KkTEfeoTbZPcoV7t8O6ekbFbbGRi3QcvclDA1/U6wZvD2h7FSKQv+PGRs0Nr6AgcEvmknAvU0N+eDn7y3KsH45yqCuFsjcsxlOFicp9EgNYfVqrmTJHFEz3NX1Dto6XsmWTp/YpZo0Qaiqqls1cbheVJAAOTmxDguz4glQq4Ijo7canoO57yMvgqi513xAFEekjH+dlaGhf2AM6uqfKVTGRAXB9bpsh4Vx1j+6EBC3KYTv5+TkaNgaF6qAGlsFAbrDn6YgyN8AGfu2yCqM66XlnXx/s0EcL3kI0zNWWWVR3ljSoYilsiJN0TYotOwtIFhmDQqGTM0FIvTR2YrKLj4I6cXCvPZaD9/b2DpHChNEUaw0Iqq2OgsiowL+DsRRC5RXdsn0JcaHw/kLe1ULvKoJwABu38wTHWlvfw2dTwYVjrFQ15LDjVcvZciQ1nKnD7p734s62QSxxlY1ASyEWWelzj16UCTeavU1205vhyag5kaPjA6lQxkR12sekQ3C/5qAf0FAalI0lJWniElSaydEUn1djthymHC8pCy1qglA49LKas0AtrJSJkAdOGirqzNlwV+8/FRx2FKjPbVBwOrXYgNdLOBsCLJOCYcePMkFBhggNztewfOHjfdFWKudIc5VPlGcHrVoTy04R60olV+WBLCwdMa9UuecDTQpCzg7MEntrmoCBAifPZO25JOg1ilTbbJLn0Wk67uTY2RDENEzNWNVULFaYZYFAYJigdPZZwZcx9lgMvWLJ0Bhz1ISoIUsVseKDUG9T4MoFxHqB8HBPrzPH0a+az4NYguEhfo57BpHT564UarDmSxraEkIcNbba3GdEqDn94C1WFm9PhMCCAH0ZojeDNGbIb0T0xXliAWIBYgFiAWIBVxxuuuNiViAWIBYgFiAWEDvxHRFOWIBt/922O2/Hse+xv8P8JjzSnXFHteKadFrzoz/H/AHQMs9vlzB13UAAAAASUVORK5CYII=" mediaID="Game Code_cst_1024"/><costume name="2048" center-x="32" center-y="32.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABBCAYAAABhNaJ7AAAAAXNSR0IArs4c6QAABHJJREFUeF7tXFtIVFEU3dcsw6ImfARl2ZMIP4I0S5DSCizpZflRZqZoZJqUGqiQifXRRIlUaIaGZqUS1lSWYZhFBBUpFKEh2dOepjBKiYU1sSfucM6ZO3Nu9dXMvn/jOXefs9dee61zZ5xRAAAWrUqJUH4MJQ6DMg1fu/r1UxnxaKSH56X7VytuK/OjExM9LcOVrp60Vn7DimeSsmDFFrOiWMa7IwAWi9KvhK6Mt7hj8mrOBAAxgFqANIBEkFzAjREgGyQbJBskGyQbdGMTAHIBcgFyAXIBcgFyATdGgGxQjw36jBsLc6cHgr+vD3wdHISO56+gu6dXyps5UyeD3wSD9b72Z8+h19wPfQNfpPepE6b4+4L3aC/ry8Ghb5prenuNgikT/SBo9kzrGp1v3umOjxOlDIgKC4GsjCQwGMZxgU2Xm+FYVS0Mfvtut2DwnFmQlZEMs2YE2I3hfeW1F6RAIOiNdSe4+xdGb+FeI0DGfdncOq1t7WA8XqGrQFIAsILVZUaHiGIyxpOnufH0uA2QEL/OaRXM5gFI2V3gdJO527dCzNrlDgHAypcXFWqCjCCk5zveNxvUKQMO7kmDpUvDbPMx4cgloRwbojfusFUT2bI/f5cuCiIIMUmZmgxyBDzLAGRZaXGBba2WlnvcXhNSc3W1g1MAmmpKbMmWlJ2F6itNIC6sLoQVMVUWc+AgYKbrzdbeRw3Jz0njxtWYImIlB3IhJDjIDkgWgPXLFkNO9jbrHEw+70gpsAXbd+AoNN1rlRZDygA1Qn3DDWjr7IKENVGQnhpvC6wCIFZfqz2wr2vKDtlAQBZExaVzmwyfFwRFB3M1N84CILJEZEBsYqYuHZCKILsTcXNsAiIwbGuwMcR57EZFFmF8VnxZAHDuLdMpTaC6XryFzTvzpNWXiiAbARW3vqqYC5qWWWhlBV6iXoiKrd7IUhf/xvYqCw4mf67uCsc2Nqa4npht9dlLUFJzQQqCLgaI1MWo2XlGuPu43baAqP5/ygDR9rCHx3h72/ocF1IBEIuBql9b3wCbYldz2hEZk6wpsrpdACci1Q7vzeICa4mXqAFaFXCmAbKKqpvWAkYFW9QFPU4gZYDox46opdWTKITnTNegr38A5k6banc4UmPJzhtsxQ4VlUNPbx8nlKrii0X4ZwD0HGpYERP721kDYo/HpeZYzxB6q4/xEICHTzrs9AjbQLTOf26BB41npCIioqwHNPEkyJ752QWXhy/iTpW4Vvenz9a+Ft1E3CgCdfHmHen+nbbA3wCAKzp6fsAx9OvS6vO6PFpklGiDsVGRnEuo2epNXmqD2JuyS62I1jy8H5/S8MK+ffrytfQhiI2Doulr+P3/W46eBpE9/hMMEBgwCV6/fQ+vPnz8ozWkIigD4H8fJwD0vCHyv1fZ2f6JAcQA+mSIPhmiT4ZcWeVluZELkAuQC5ALkAvIlNKVx8kFyAXIBcgFyAVcWeVluZELuP13h93+2+PYI/j7AR4wHCHrF1ca/wmet/H3A34BK5tuqv0IWXoAAAAASUVORK5CYII=" mediaID="Game Code_cst_2048"/><costume name="0" center-x="240" center-y="180" image="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==" mediaID="Game Code_cst_0"/></media></snapdata>