<snapdata remixID="10747929"><project name="Fa21 | Project 3 Skeleton" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></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="reportProduct"><block s="reportQuotient"><l>4</l><l>3</l></block><block s="reportMonadic"><l><option>abs</option></l><block var="y"/></block></block></block><script><block s="doBroadcast"><l>right</l></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="x"/><block s="reportProduct"><block s="reportQuotient"><l>-4</l><l>3</l></block><block s="reportMonadic"><l><option>abs</option></l><block var="y"/></block></block></block><script><block s="doBroadcast"><l>left</l></block></script><script><block s="doIfElse"><block s="reportGreaterThan"><block var="y"/><l>0</l></block><script><block s="doBroadcast"><l>up</l></block></script><script><block s="doBroadcast"><l>down</l></block></script></block></script></block></script></block></script><script x="20" y="485"><block s="receiveKey"><l><option>right arrow</option></l><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></block></script><script x="20" y="559"><block s="receiveKey"><l><option>down arrow</option></l></block><block s="doBroadcast"><l>down</l></block></script><script x="20" y="633"><block s="receiveKey"><l><option>up arrow</option></l></block><block s="doBroadcast"><l>up</l></block></script><script x="20" y="707"><block s="receiveKey"><l><option>left arrow</option></l></block><block s="doBroadcast"><l>left</l></block></script></scripts><sprites><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="92"><costumes><list id="93"><item><costume name="grid" center-x="240" center-y="180" image="data:image/png;base64,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" id="94"/></item></list></costumes><sounds><list struct="atomic" id="95"></list></sounds><blocks></blocks><variables></variables><scripts><script x="18.333333333333343" y="18.333333333333343"><block s="receiveGo"><comment w="122.49999999999997" 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="13" color="80,80,80,1" pen="tip" id="105"><costumes><list id="106"><item><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" id="107"/></item><item><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==" id="108"/></item><item><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==" id="109"/></item><item><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==" id="110"/></item><item><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" id="111"/></item><item><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=" id="112"/></item><item><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==" id="113"/></item><item><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==" id="114"/></item><item><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==" id="115"/></item><item><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=" id="116"/></item><item><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=" id="117"/></item><item><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==" id="118"/></item><item><costume name="you lost" center-x="130" center-y="102.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQQAAADNCAYAAABemA7CAAAAAXNSR0IArs4c6QAAFPdJREFUeF7tnWvIbkUZhm//9KuDFnQwQ0XSCMFDRlGa+kNQ09RKg8rUDCEqDxBFEahEUEGoWZEkHjCLLPBUShZuNbKjadlRChVMKyoVI4p+FPfeM+1nz7fe912HOa1Z98BG9/7Wmnnmep51f3Oe3TDfdBGAXwH4+nyrsN3y0wHsB+APAK6beV1k/swJ7DZT+ykGFzrbPw3gwzOtx3EAbjO2Hw/g9pnWRWY3QGCugnAqgBsM/4MA/GKG/mAdWBefDgNw3wzrIZMbITBXQSD+OwAc4/xwI4A3z8wnoRic1kD3Z2YukLkhgTkLAsWAouDTu2bUBw/F4GIA7AYpiUBRAnMWBIK7HMD7HcFfA3gDgL8VJbq5cInBZkZ6ohCBuQvCywB8HwD/y3QpgAsKsexT7CUAzjcPqmXQh5qeyUZg7oJAUGwhsKXg0ykAbspGsH9BJwC4VWLQH5iezE+gBUEgNQ4qnuzwPQDgaABP5ce5tsT7ARzsnqBgUbiURKAqAq0IAj+0bQB2r7DrcCCALwA4wtlGoaJgUbiURKAqAq0IAqGyb84+ek1dh7cBuBLAs41dHOPgWIeSCFRHoCVBqK3r8HEAHws8/j7XWqguEGSQCJBAa4JQS9fBjmmQ8z8AvBHAPQo7EaiZQGuCUEPX4WsAuOrQp++5Ac+/1xwIsk0EWmwheK+WmnU4F8BlJrQ4Hcp/UxKBWRBosYVA8GHXIceOyGODnYqfN6soZxEMMlIEWhWErq7D4W5VYwqvHxrsUvwWAC5EUhKBWRFoWRDoCLsj8hYAJyXwzl4AvgvgAJf3gwDYWng8QVnKUgSSEmhdEMIdkWcDuCoi0WcBuNkJALN92s0mcH+FkgjMjkDrgkCH2B2RvwPArsNfI3nqSwDeY/J6B4CvRMpb2YhAdgJLEIRwR+Q1AM6KQPpDAD5l8vkIgE9GyFdZiEAxAksQBMINd0R+omMV4RAncCMVpzZ90ozCEHp6tloCSxEEOuBzALh02Kd3Arh+hGde4QYRX+re5aGoPBxVSQRmT2BJgkBn8YRjnnTs0wsADF1BeKfbrejzeBGAv8w+ElQBEWhwL8Mmp74QwJ/NQ08A2HPTS+7n4TZm/jPXH/CcAyURaILA0loIdNohAH5mvMdTjN60wZtd25i5JNme1NREQKgSyyawREGgxz8A4LPG9VcDePeKUOjaxvxeAF9cduio9i0SWKog0JdXADjHOLXrgNZwGzMffz2Ae1sMBtVJBJYsCPQ+px8/asLAHtBqr4vjI7xH8rXubANFjgg0SWDpgkCnrtoqzXEGjjcwfdldytpkEKhSIuAJSBC2bpXmbdJsOdhDULna8TGFjQi0TkCCsMPD4QGt3wDwVuf8u4J1B63HhOq3YAIShJ3OD8cM/E+474H7H5REoHkCEoRdXRyKgq5aa/4TUAUtAQnC1ng4CgD/sKvAP0oisBgCEoStrj7d/dN1i4kCVVQEHAEJwq6hwI1P3ADFxB2M3MmoJAKLISBBWD2GoPGDxXwGqqgnIEFoRxA4IPo8ALw7UkkERhGQILQhCHZ2RJfJjvoU9BIJSBDaEIQzAXDHJhNXWPol14pyERhEQILQhiDsDuBJUxW2GJ4CcK3776Cg0MNZCdB3ZwDgf4v7TILQhiCwFjd1XESjVZZZv+1RhdnWHTMo6jMJQjuCEJ4EzZrZ7dyjolUvJSfAczjOM6UUnd2SILQjCOEGLTY/GWx9UvGmah8jG3yG3YSHXXfBV0+CUJGj7Wh9UceMYLJqc1bfrLyAsN4tJN83Z11qHUsJWwe0tWjcqYXQTgthqiB4ErFutiotKrZvXrRfvgIE98ts6/iZBKF05JjyW2kh8DfiIwO4MjiPNM+3IAo1+5KtFx7fv48EYUCUFni05iDahGOq7eFo99wXOE3lsYn3lJ9b23hjOGeIOPWoLsMUqgnerTmINlU3hu22T1u06bqpsj1+HoNHj2IGPxIOJFJ4+W8XShAGs0z+Qq1B1KfiMWyPkUcfW3M8U2tdrF2Pum5DNbZqULHNQcWxv92rCcwIilFjXcLWgR/srMZWCYIEwRKoJjAbFYSu1gGrWg13CYIEQYIQQX16ZMEZBc4ssJXAZKdCJQg9AJZ4pBrHjKh8DNs1qDgCfM9XOJXrZxLudud2+ldj+K6nGesfUwtBLQRPYFX/NkqgFcikmo/Mffx2EdLRwQG+1dgqQZAgdP2W8qPfBb7jaEVW85G5FYlc/MXERWNc81FlV02CUKljRnwWUz6A1loHxDeFxwj8K1+xC764COngjlWktdiqE5NqVeoRETklqFaNfo8wo5pXpvCIVYlwifKq6eAabN1eZ7UQ1EJosXVQSwshFFq2DrirNEwShFgSHDmfahwzol5jbW+xdVCDIKybZpQgjAjwEq9cCeBsV/C5AC4vYcTIMscIQqutgxoEYd00Y+hiO85wMwCeflUkqcuwK/Z7ABzh/mluNzeNEQQbtC3MLFhvjuER6yMMzzoIpxnDctia4MlJTOxS7BHLkKH5SBB2JfYEgBe7f3o5gN8PBVrw+aEfgBUDmt3a+YtDecR0HdccrJtm7CqL51fs7X7AY/R5nH72JEHYify5ADgt5NPc2Az5AMLzF2s8UWjqxzCEx9Sy7Pt9phm7yrMCXewsirkFfUzHhXkdBuAn7h/ZMmALYU5pyAdgj2y/DAAForU0hEesuvedZuwqr4rLdiQIO13zdgDXu7/y1meOIcwp2Q+AHzx/64dTXAzYS4KVcq11FbzPSghC32nGrrgKL9vZd+AxeFFiVYKwE6N1JmcXOMswp2Ttp91sgtpzFRlw/C3kd9vxmRa7CqUEwQ4MjmVrW278/7tynxgtQdj5yd8C4ET31w8C+Myc1MBNVd04wOaWxYAYcrcQ7EBiuJuxr1vCcy3HCkvf8rY8J0HYieSPAPZ0f900TTQaeOIXuwIqLJLByo+Fv31aTjkFIbw1a8osgZ1toH/Gnn41yrcShB3YXgLgcUOQMw7PjCJa/iUuj121sIXN0CLTWQWw5BKEcCBx6iBt2PWTIBQInhMA3OrKfQjAAQVsUJFxCeQSBHuoDKetOZbQtV+hb+0kCH1JJXzOOuGrADjjoDRvAjkEIVyRGGNcRoJQQdzNfUCxAoTVmZBaEMKuwtiBxBBcOB6RdVpYYwg73NHCgGJ1X2Rhg1ILwtVmPceqg0/GIvDjQNnHfCQIbQ0ojg3AFt9LKQhWDMguRlehCh9IEAANKFYRitGNSCUIzYoBPSBB2HUBiwYUo3+XxTKMLQhdy76baRl4L0kQ8q9oK/aFLKzgcG8HB+fGJs4msGVgr29vTgzUQtgRHrx1l8HDlHURyNjo1Hu9CISj9dzbwW3FQ9YI+FuZw92gTYqBBGFHXN0A4FQJQq+PbG4PhUu5KQYUhj6i0LUZjLMJzJOj/02mpXcZKAQUBJ/muoehyeCMVKk++zv6FMWzDplXHzHpk1+VzyxdEOxKM3UXqgzRKEbRz+wWHjkit6VsBtuOZumCQAb7uyDhHgaltgms2/jVVfPsC4NK45cglPaAyheBighIECpyhkwRgdIEJAilPaDyRaAiAhKEipwhU0SgNAEJQmkPqHwRqIiABKEiZ8gUEShNQIJQ2gMqXwQqIiBBqMgZMkUEShOQIJT2gMoXgYoISBAqcoZMEYHSBCQIpT2g8kWgIgIShIqcIVNEoDQBCUJpD6h8EaiIgAShImfIFBEoTUCCUNoDKl8EKiIgQajIGTJFBEoTkCCU9oDKF4GKCEgQKnKGTBGB0gQkCKU9oPJFoCICEoSKnCFTRKA0AQlCaQ+ofBGoiIAEoSJnyBQRKE1AglDaAypfBCoiIEGoyBkyRQRKE5AglPaAyheBighIECpyhkwRgdIEJAilPaDyRaAiAhKEipwhU0SgNAEJQmkPqHwRqIiABKEiZ8gUEShNQIJQ2gMqXwQqIiBBqMgZMkUE1hDYHcAZ7ufXAngqBS0JQgqqylME4hM4E8DVLtuzAFwTvwhAgpCCqvIUgfgELgJwocv2YgD8e/QkQYiOVBmKQBICEoQkWJWpCMyTgARhnn6T1SKQhIAEIQlWZSoC8yQgQZin32S1CCQhIEFIglWZisA8CUgQ5uk3WS0CSQhIEJJgVaYiME8CDwPYx5muhUnz9KGsFoEoBI4CsM3l9DQALmNOkrQwKQlWZSoCUQlwmbLfx3AZgPOj5m4ykyCkIqt8RSAOAbYGnjRZ7QvgkThZb81FgpCKrPIVgTgE7GDi3QDYfUiWJAjJ0CpjEZhMgK0DDib6MYNkg4neUgnCZJ8pAxFIRsC2Dh41swzJCrSCcLor5bpkpSljERCBvgSytw5omBeE4wDc5iw9HsDtfa3WcyIgAkkIZG8dWEHIsgoqCTZlKgLtESjSOpAgtBdIqlEbBLjO4BJXlSxjB+GgoloIbQSSatEGgfsBHOyqknxmwSLzYwgShDYCSbWYPwEKAQWBicuUuX8hyQnLXagkCPMPINWgLQKXAjjPVYnHrfO05WxJgpANtQoSgV4E7K7GUwDc1OutSA9JECKBVDYiEIHAyQBudPlkHUz0tksQInhRWYhAJALZdjWusleCEMmTykYEJhII1x4cAuCBiXkOfl2CMBiZXhCBJATsVW0/N9OOSQpTCyErVhUmAoMJcPDwJPfWBQA425A9qYWQHbkKFIEtBLjWgLMLPiU9BGUdfwmColMEyhOwS5VvBsDZhiJJglAEuwoVgV0I2O5C1qXKoR8kCIpMEShPgGcm+lORinUXiEGCUD4YZMGyCdi9C0UWI1n8EoRlB6NqX56AHT/IvndBXYbyASALRMASKLbVucsNaiEoOEWgHIFwunGPnFudJQjlHK+SRaCLQDXTjd44tRAUqCJQjoDdzFRsdaIGFcsFgEoWAUvgLgBHun84GgD/XjSphVAUvwpfOIH/mvqXHD/gEYpMF0kQFh6Rqn4xAnZAMekV7xtqeA6AK9wzF0sQisWDCl44AV7aus0xSH6J6xrWPwXwKvfz4yUIC49KVb8YAXvS+WUAOOOQMr0SwGkdBVzo/o23tUkQUnpAeYvAGgKpzz/YC8CrARwE4BgAr9vgjYs1hqB4FYFyBOzpykNnGLj/gV0OvyHK1oItgUMB7DewaocBuE9dhoHU9LgIRCDAD5k7HH2yt7B3Ze8FgFOUq4Rgk1nPAPgmgIc6HuR05/YpTwnCJoz6uQjEJ2AHFMPzE5/jBvk40Hf4SAH4F4AHAfwSwI8B/LbvGofWBYFKfMaKptUqN/PaLA7yLC2NZcUdetmuGmvEKXZA8dsAvmNEYP8edfwNgHsBPNbx7B3utOZ/9shnyyMtCwIDnCOoY0ZvOeDDJtSShMGe+jskloqe8DPE0AqefQ2A4wC8BcCBPe3hb3t+/D9w/+X/JxPglgVhbIBbP3GtOQN+Ccn+1hpS3+zXjQ0xrvCzz3cCQBHgH/59U+J26PsAcH0Am/v+4tdN70X5ecuCEAY4m7aPbKDGVoW/aNM/un06JgrtujOxvLhQps+6eraksl8mUhnG01eM6B8LgC2CTYn8rnICQBH4z6YXUv68NUFg9+B5rknFs+n8xz1k4QdHdJkPxx6Y2DxjXsmaaSkdPCBvKwhLEcEBeDof5W/92wZk8kM3XsBpRg4YMlWxy9HXoRVB4AfMKRl7fDWPs/YXX4xp1rI1sXeNThsQgEMetdeQSxD6keNMAH+rr0p/ci0ttrY42OfvXpiyBqGfZSOfakEQ7J5yi4Ei4LsIY5q1S/qNGd4rqIHC/h8UpxD5J0w/AnAngH8HPxi6BqG/JRGenLsg2BNnPA52DygSY0TAIl2SIFiOxU/+jRDXNWexbg1CcbvnLgjhQBgDe6oQeKcsSRCWVNfSH51lXfyU5RBGS4IQu9+7pI9kSXUtLQjV3NLUBUKCsDo8lvSRLKmupQWhmluaJAjDQmFJH8mS6josCuI+neqWJr/snNZOWkquFoJaCCQgQYj74a/KLcUtTeES/UkzRBIECYIEIY8YpOIcLtGfNJYmQZAgpArUfJ/ZfEqK3RLzm/fsQSljFuH9n6AEYXUwLWnlXuxAnc8nmtfSmJy7NqNNEgOikCB0B8TSVu7FDNS8n9i8Sot1U1MYn9yMRh/22ZC2lpgEoRuP/UCWsHJPgpBHWGLd1HQ1AI4dMEWNTwnC1kBYWutAYwh5xIClxLipyYoB85zcTbDVlyBsDQbbrIuqvvnibnBJue8IGGxgAy/EuKkpFINJU4xdTOcuCHbKhXsYDpkYOHYgMbr6TrQt5euW41LOf0jJsyvvqTc1hYOI0cWghUHFcCspDzLZdCrSqkCwDuMzVR1ckSF67fkPk+ayM9g6xyKmtMLCbmyy2Jx7C4GBYTeLjA1kAufZdWzWMZW8a69UsKuVkJb8lIHbbIPcLQhCjEC2wHkTL9ecj21ppA2rtLkv7ZSotDR3zX2sIGQd5G5BEIjdBvLQk5KzNcdyRt/IsmKPyYw0o8nXxgpCsinGFgcVfZ14luKNpoJDRGGJswqrvriYYzJNftUTKjVGEMJ9ClGnGFsWBNYthOePCF93E1N4HmNy4BMCKterdkxmiLDmsm+u5QwVBHZbt5lbx7KcrsQuQ3iU9NiBuRoctepylq77AwjcntKcZBqnBigDbZjS2hpY1KIet4LAeOQvn3UtNYoBY5SJ9z9yFiz5VQAUhHC6bejV1LV5dcyNTRKDXb0YMkw2zVVb8CS0JxTadUzDQW5+o7HOCl1bRT+oyPPlTwRwq7tGKiGXLFn73/5dNzGFBkgMul1iD/OIsegri+MrL8QufONve3bJOCBu7xAtOsi96V76yvn2Mi/sGtiXdBXZ+mYrz//zacqir16OWsBDYWvcV9nGoY3X7EvnlyAIC4izZFW0A4zqNsTBTFFgl4A3jW1K2Qe5JQibXFLm59EOzZxovtYlTAS45nW2BMg3vFzYv1KkKytBSOfwKTnbD7FIYDjjtS5hihf7vdvVpS3WlZUg9HNa7qeGzlmntE/dhpR0K8tbglCZQ5w5NQlCTbbU6a2GrJIg1OnMIYtYUtdAgpCacEX5SxAqcoYxJVzEUqxP6Rau+evO57yKtU5PV2aVBKEyhxhzxqy4TF0bCUJqwoXzlyAUdsCG4msThezz4nW7pz3rJAj1+3TdSsuc1pfstuSs56LL+h91M57TRhzJTgAAAABJRU5ErkJggg==" id="119"/></item><item><costume name="you win" center-x="132.5" center-y="104.5" image="data:image/png;base64,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" id="120"/></item></list></costumes><sounds><list struct="atomic" id="121"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="10"><block s="receiveMessage"><l>start game</l><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="10" y="498.00000000000034"><block s="receiveMessage"><l>up</l></block><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></block></script><script x="10" y="624.0000000000006"><block s="receiveMessage"><l>right</l></block><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></block></script><script x="10" y="854.0000000000006"><block s="receiveMessage"><l>left</l></block><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></block></script><script x="10" y="1083.9999999999993"><block s="receiveMessage"><l>down</l></block><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></block></script><script x="11" y="248.00000000000003"><block s="receiveMessage"><l>finish move</l></block><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><block s="doSwitchToCostume"><l>you lost</l></block><block s="changeScale"><l>50</l></block></script></block></script></scripts></sprite><sprite name="TESTER" idx="5" x="178.02726859315453" y="105.71295746334069" 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="320"><costumes><list struct="atomic" id="321"></list></costumes><sounds><list struct="atomic" id="322"></list></sounds><blocks></blocks><variables></variables><scripts><script x="99.66666666666664" 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="99.66666666666664" y="101.3928571428572" w="471.66666666666663" collapsed="true">==============================================&#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. This means you should have a total of 8 tests below, 2 for each block you test. &#xD;Additionally, each function should have a brief comment explaining why each test case&#xD;is 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><script x="91.66666666666664" y="103.80952380952382"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="rotate %l clockwise"><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>2</l><l>4</l><l>8</l><l>16</l><l>256</l><l>2</l><l>4</l><l>2</l><l>2</l><l>32</l><l>4</l><l>4</l><l>128</l><l>2</l><l>4</l><l>512</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>128</l><l>2</l><l>256</l><l>2</l><l>2</l><l>32</l><l>2</l><l>4</l><l>4</l><l>4</l><l>4</l><l>8</l><l>512</l><l>4</l><l>2</l><l>16</l></custom-block><comment w="90" collapsed="true">This test makes sure that the board is correctly rotated clockwise, with the axis of rotation at the middle of the board. (ex. so 1,4 should become 4,4, 2,2 to 2,3, 4,1 to 1,1)</comment></custom-block></script><script x="624.6666666666667" y="127.64285714285731"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="rotate %l clockwise"><l/></custom-block></autolambda><list></list></block><list><block s="reportNewList"><list><block s="reportNewList"><list><l>4</l><l>2</l><l>4</l></list></block><block s="reportNewList"><list><l>8</l><l>128</l><l>64</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>2</l></list></block></list></block></list><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>8</l><l>4</l></list></block><block s="reportNewList"><list><l>0</l><l>128</l><l>2</l></list></block><block s="reportNewList"><list><l>2</l><l>64</l><l>4</l></list></block></list></block><comment w="90" collapsed="false">This test makes sure that the board is correctly rotated clockwise for both even and odd numbered size boards.</comment></custom-block></script><script x="63.66666666666664" y="236.9761904761905"><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>3</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>2</l><l>4</l><l>0</l><l>4</l><l>4</l><l>2</l><l>0</l><l>2</l><l>2</l><l>4</l><l>16</l><l>4</l><l>4</l><l>2</l><l>16</l><l>2</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>2</l><l>4</l><l>32</l><l>4</l><l>4</l><l>2</l><l>0</l><l>2</l><l>2</l><l>4</l><l>0</l><l>4</l><l>4</l><l>2</l><l>0</l><l>2</l></custom-block><comment w="90" collapsed="true">This test makes sure that the correct column correctly deals with 0s in the column (remove them while merging and adding them back in at the end of the column.)</comment></custom-block></script><script x="36.66666666666664" y="437.6428571428571"><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>8</l><l>4</l><l>2</l><l>4</l><l>0</l><l>8</l><l>0</l><l>4</l><l>8</l><l>2</l><l>0</l><l>4</l><l>4</l><l>4</l><l>2</l><l>4</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>16</l><l>4</l><l>4</l><l>8</l><l>4</l><l>8</l><l>0</l><l>8</l><l>0</l><l>2</l><l>0</l><l>0</l><l>0</l><l>4</l><l>0</l><l>0</l></custom-block><comment w="90" collapsed="false">This test ensures that for each different condition in merge column up block, the merge up block is able to accomodate each of those.</comment></custom-block></script><script x="89.66666666666664" y="333.9761904761908"><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>3</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>2</l><l>4</l><l>4</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>4</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</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>2</l><l>4</l><l>8</l><l>4</l><l>4</l><l>2</l><l>8</l><l>2</l><l>2</l><l>4</l><l>0</l><l>4</l><l>4</l><l>2</l><l>0</l><l>2</l></custom-block><comment w="90" collapsed="false">This test makes sure that the correct column merges up for only once(4444 to 8800, not 16 0 0 0).</comment></custom-block></script><script x="605.8095238095237" y="446.3095238095235"><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>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</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>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l></custom-block><comment w="90" collapsed="false">This test ensures that when there is nothing to merge up, the program does not accidentally merge up any numbers. </comment></custom-block></script><script x="599.7890159970239" y="295.97619047619037"><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>3</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>2</l><l>4</l><l>4</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>2</l><l>2</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>2</l><l>4</l><l>8</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>0</l><l>4</l><l>4</l><l>2</l><l>0</l><l>2</l></custom-block><comment w="90" collapsed="false">This test makes sure that the correct column is comeletely merge up(all numbers that can be merged up are merged up).</comment></custom-block></script><script x="39.66666666666653" y="572.6666666666666"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="no moves left for %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>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>2</l><l>4</l><l>8</l><l>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l></custom-block></list><block s="reportBoolean"><l><bool>false</bool></l></block><comment w="90" collapsed="false">This test makes sure that even if there is no empty space on the board, the predicate will return false if anything in the board can be merged up from any direction. </comment></custom-block></script><script x="607.6666666666666" y="571.6666666666664"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><custom-block s="no moves left for %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>2</l><l>8</l><l>2</l><l>8</l><l>8</l><l>2</l><l>8</l><l>2</l><l>2</l><l>8</l><l>2</l><l>8</l><l>8</l><l>2</l><l>8</l><l>2</l></custom-block></list><block s="reportBoolean"><l><bool>true</bool></l></block><comment w="90" collapsed="false">This test tests whether the predicate correctly identifies if there are still moves left.  If merging up is not feasible from all 4 directions of the board, then it reports true. </comment></custom-block></script></scripts></sprite><sprite name="2048" idx="1" x="-174.16406714691743" y="-19.17873928756157" 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="738"><costumes><list struct="atomic" id="739"></list></costumes><sounds><list struct="atomic" id="740"></list></sounds><blocks></blocks><variables></variables><scripts><script x="112" y="10"><block s="receiveGo"><comment w="90" collapsed="false">There are five grey functions to fill out to make this game work.</comment></block><block s="doBroadcast"><l>start game</l></block><block s="hide"></block></script><script x="829.9462890625" y="255.33333333333385"><block var="GAME BOARD"/></script><script x="126" y="342.8333333333336"><custom-block s="no moves left for %l ?"><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>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l></custom-block></custom-block></script><script x="137" y="416"><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>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l><l>2</l><l>4</l><l>2</l><l>4</l><l>4</l><l>2</l><l>4</l><l>2</l></custom-block></script><script x="110" y="459.83333333333337"><custom-block s="test %repRing w/inputs %mult%l expecting output %mult%s"><block s="reifyReporter"><autolambda><custom-block s="no moves left for %l ?"><l/></custom-block></autolambda><list></list></block><list><block s="reportNewList"><list><block s="reportNewList"><list><l>2</l><l>2</l><l>4</l></list></block><block s="reportNewList"><list><l>2</l><l>2</l><l>4</l></list></block></list></block></list><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block></script><script x="189" y="134.99999999999997"><custom-block s="add 2 or 4 to %l"><l/></custom-block></script></scripts></sprite><sprite name="2048 Lab" idx="4" x="5.835932853082568" y="-3.1787392875619105" 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="820"><costumes><list struct="atomic" id="821"></list></costumes><sounds><list struct="atomic" id="822"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="468.8478747203584"><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.99999999999991"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></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.00000000000003"><custom-block s="test %repRing w/ input(s) %mult%s expecting output %s"><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></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.6778533489925" 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><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.6778533489917"><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><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 Proj3, you&apos;ll add more of your own &quot;merge up&quot; test cases.</comment></scripts></sprite><watcher var="SIZE" style="normal" x="0.000024529559595976025" y="0.00002452955968834658" color="243,118,29" hidden="true"/><watcher var="GAME OVER" style="normal" x="-8.176514256774681e-7" y="0.0000760416399288033" color="243,118,29"/><watcher var="LAST MERGE ROW" style="normal" x="-0.00030521415715156763" y="0.00009811823876049175" color="243,118,29" hidden="true"/><watcher var="LAST BOARD" style="normal" x="-0.07708646749119907" y="0.1984161107098572" color="243,118,29" hidden="true"/><watcher var="GAME BOARD" style="normal" x="-22" y="38.15210786289293" color="243,118,29" extX="200" extY="86" hidden="true"/><watcher var="SCORE" style="normal" x="1.506299059119101" y="24.070882392452695" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="merge up %&apos;board&apos;" type="reporter" category="other"><comment w="90" collapsed="false">For you to fill out! The following is simply starter code.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>one column</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>column</l><l>1</l><custom-block s="size of board %l"><block var="board"/></custom-block><script><block s="doSetVar"><l>one column</l><custom-block s="merge column %n of %l up"><block var="column"/><block var="board"/></custom-block></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="one column"/><script><custom-block s="set item %n , %n of %l to %n"><block s="reportListIndex"><block var="item"/><block var="one column"/></block><block var="column"/><block var="result"/><block s="reportListItem"><block var="column"/><block var="item"/></block></custom-block></script></custom-block></script></block><block s="doReport"><block var="result"/></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! The following is simply starter code.</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="doIf"><block s="reportEquals"><custom-block s="empty positions of %l"><block var="result"/></custom-block><block s="reportNewList"><list></list></block></block><script><block s="doIf"><block s="reportEquals"><block var="result"/><custom-block s="merge up %l"><block var="result"/></custom-block></block><script><block s="doRepeat"><l>3</l><script><block s="doSetVar"><l>result</l><custom-block s="rotate %l clockwise"><custom-block s="copy of %l"><block var="board"/></custom-block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="result"/><custom-block s="merge up %l"><block var="result"/></custom-block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="add 2 or 4 to %&apos;board&apos;" type="reporter" category="other"><comment w="90" collapsed="true">For you to fill out! The following is simply starter code.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>row</l><l>column</l><l>position</l></list></block><block s="doSetVar"><l>position</l><block s="reportListItem"><l><option>any</option></l><custom-block s="empty positions of %l"><block var="GAME BOARD"/></custom-block></block></block><block s="doSetVar"><l>row</l><block s="reportListItem"><l>1</l><block var="position"/></block></block><block s="doSetVar"><l>column</l><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="doSetVar"><l>result</l><custom-block s="copy of %l"><block var="board"/></custom-block></block><custom-block s="set item %n , %n of %l to %n"><block var="row"/><block var="column"/><block var="result"/><custom-block s="pick 2 or 4"></custom-block></custom-block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="merge column %&apos;c&apos; of %&apos;board&apos; up" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">For you to fill out! The following is simply starter code.</comment><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>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><custom-block s="keep non zeros %l"><custom-block s="join up %l"><custom-block s="multimap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="c"/><l/></block></autolambda><list></list></block><list><block var="board"/></list></custom-block></custom-block></custom-block></block><block s="doUntil"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="column"/></block><custom-block s="size of board %l"><block var="board"/></custom-block></block><script><block s="doAddToList"><l>0</l><block var="column"/></block></script></block><block s="doFor"><l>row</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="column"/></block><script><custom-block s="set item %n , %n of %l to %n"><block var="row"/><block var="c"/><block var="result"/><block s="reportListItem"><block var="row"/><block var="column"/></block></custom-block></script></block><block s="doReport"><block var="result"/></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! The following is simply starter code.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>column</l><l>row</l></list></block><block s="doSetVar"><l>result</l><custom-block s="new board of size %n"><custom-block s="size of board %l"><block var="board"/></custom-block></custom-block></block><block s="doFor"><l>column</l><l>1</l><custom-block s="size of board %l"><block var="board"/></custom-block><script><block s="doFor"><l>row</l><l>1</l><custom-block s="size of board %l"><block var="board"/></custom-block><script><custom-block s="set item %n , %n of %l to %n"><block var="column"/><block var="row"/><block var="result"/><custom-block s="item %n , %n of %l"><custom-block s="rotated col for %n , %n for size %n"><block var="row"/><block var="column"/><custom-block s="size of board %l"><block var="board"/></custom-block></custom-block><custom-block s="rotated row for %n , %n for size %n"><block var="row"/><block var="column"/><custom-block s="size of board %l"><block var="board"/></custom-block></custom-block><block var="board"/></custom-block></custom-block></script></block></script></block><block s="doReport"><block var="result"/></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="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="reportSum"><l>-200</l><block s="reportProduct"><block var="c"/><block var="step"/></block></block><block s="reportDifference"><l>200</l><block s="reportProduct"><block var="r"/><block var="step"/></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="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="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="reportSum"><block var="size"/><l>1</l></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="reportSum"><l></l><l></l></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="reportSum"><l></l><l></l></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 x="0" y="0" 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="reportProduct"><block var="value"/><block var="value"/></block></block></script></block-definition><block-definition s="test %&apos;function&apos; w/inputs %&apos;inp&apos; expecting output %&apos;outs&apos;" type="reporter" category="lists"><comment x="0" y="0" w="155.83333333333334" collapsed="false">This block takes in a function and two &quot;sets&quot; of items.&#xD;&#xD;The first are the INPUTS to the function. These must be a list whos length is equal to the number of inputs in the function. &#xD;&#xD;The OUTPUTS should be the same type as the output of the function.&#xD;&#xD;There must be the same number of inputs and outputs.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="inp"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="outs"/></block></block></block><script><block s="doReport"><l>ERROR: The number of tests must be the same for inputs and outputs.</l></block></script></block><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="evaluate"><block var="function"/><block var="in"/></block><block var="out"/></block></autolambda><list><l>in</l><l>out</l></list></block><list><block var="inp"/><block var="outs"/></list></custom-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="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="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="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="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations>de:drucke _ in Größe _&#xD;ca:etiqueta _ de mida _&#xD;es:etiqueta _ de tamaño _&#xD;fr:étiquette _ d&apos;une taille de _&#xD;</translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;ca:_ buida?&#xD;es:_ vacía?&#xD;fr:_ vide?&#xD;</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>de:behalte Elemente, die _ aus _&#xD;ca:manté els elements on _ de _&#xD;es:mantener los elementos donde _ de _&#xD;fr:garder les items tels que _ de _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><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-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _&#xD;ca:combina amb _ els elements de _&#xD;es:combinar con _ los elementos de _&#xD;fr:combine avec _ les items de _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><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-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><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="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-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-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></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>de:für jedes _ von _ _&#xD;ca:per cada _ de _ _&#xD;es:para cada _ de _ _&#xD;fr:pour chaque _ de _ _&#xD;</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="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Zahlen von _ bis _&#xD;ca:nombres des de _ a _&#xD;es:números de _ a _&#xD;fr:nombres de _ à _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportSum"><block var="from"/><l>1</l></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _&#xD;ca:mapeja _ sobre _&#xD;es:mapear _ sobre _&#xD;fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></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>de:für _ = _ bis _ _&#xD;ca:per _ = _ fins _ _&#xD;es:para _ = _ hasta _ _&#xD;fr:pour _ allant de _ à _ _&#xD;</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="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations>de:wenn _ dann _ sonst _&#xD;ca:si _ llavors _ si no _&#xD;es:si _ entonces _ sino _&#xD;fr:si _ alors _ sinon _&#xD;</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="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="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="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</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><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;</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>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</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>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;</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="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>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;</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="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="pick 2 or 4" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>chance</l></list></block><block s="doSetVar"><l>chance</l><block s="reportRandom"><l>1</l><l>4</l></block></block><block s="doIfElse"><block s="reportEquals"><block var="chance"/><l>4</l></block><script><block s="doReport"><l>4</l></block></script><script><block s="doReport"><l>2</l></block></script></block></script></block-definition><block-definition s="join up %&apos;column&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>column</l><custom-block s="keep non zeros %l"><block var="column"/></custom-block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="column"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="column"/></block><block s="reportListItem"><block s="reportSum"><block var="i"/><l>1</l></block><block var="column"/></block></block><script><block s="doReplaceInList"><block s="reportSum"><block var="i"/><l>1</l></block><block var="column"/><l>0</l></block><block s="doReplaceInList"><block var="i"/><block var="column"/><block s="reportProduct"><l>2</l><block s="reportListItem"><block var="i"/><block var="column"/></block></block></block></script></block></script></block><block s="doReport"><block var="column"/></block></script></block-definition><block-definition s="keep non zeros %&apos;column&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportKeep"><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></script></block-definition><block-definition s="$flash remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the first one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="data"/></block></block></script><scripts><script x="14" y="164.2222222222222"><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="$flash remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="$flash remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></scripts></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="function"/></list></block></block></script><scripts><script x="12" y="147.55555555555557"><block s="doDeclareVariables"><list><l>even items</l><l>odd items</l><l>merge</l><l>split</l><l>copy of data</l><l>id</l></list></block><block s="doSetVar"><l>id</l><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block></block><block s="doSetVar"><l>copy of data</l><block s="reportMap"><block var="id"/><block var="data"/></block></block><block s="doSetVar"><l>split</l><block s="reifyScript"><script><block s="doSetVar"><l>even items</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>odd items</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportListIsEmpty"><block var="copy of data"/></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="copy of data"/></block><block var="odd items"/></block><block s="doDeleteFromList"><l>1</l><block var="copy of data"/></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="copy of data"/></block></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="copy of data"/></block><block var="even items"/></block><block s="doDeleteFromList"><l>1</l><block var="copy of data"/></block></script></block></script></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="#1"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#2"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="#2"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#1"/></block></script></block><block s="doIfElse"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="reportListItem"><l>1</l><block var="#2"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="evaluate"><block var="merge"/><list><block s="reportCDR"><block var="#1"/></block><block var="#2"/></list></block></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#2"/></block><block s="evaluate"><block var="merge"/><list><block var="#1"/><block s="reportCDR"><block var="#2"/></block></list></block></block></block></script></block></script><list><l>#1</l><l>#2</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doRun"><block var="split"/><list></list></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="$flash sort %l ordering with %predRing"><block var="odd items"/><block var="function"/></custom-block><custom-block s="$flash sort %l ordering with %predRing"><block var="even items"/><block var="function"/></custom-block></list></block></block></script></scripts></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block var="key"/><block s="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block><block var="a-list"/></block></block></script><scripts><script x="19.333333333333332" y="108.22222222222221"><block s="doIf"><block s="reportEquals"><block var="a-list"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="key"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></script></block><block s="doReport"><custom-block s="$flash assoc %s %l"><block var="key"/><block s="reportCDR"><block var="a-list"/></block></custom-block></block></script></scripts></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doIfElse"><custom-block s="☠︎ linked? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>#</l><l>1</l></block><block s="doUntil"><block s="reportListIsEmpty"><block var="data"/></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></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script><script><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="data"/></block></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><script><block s="doSetVar"><l>#</l><block var="i"/></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script></block></script></block-definition><block-definition s="☠︎ linked? %&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="evaluate"><block s="reportJSFunction"><list><l>data</l></list><l>return data.isLinked;</l></block><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></script></block-definition><block-definition s="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportAtomicCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="$flash zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="192" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="lists"/></block><custom-block s="$flash zip %mult%l"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="lists"/></block></custom-block></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333333" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><custom-block s="$flash zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportStringSize"><l></l></block><l>0</l></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></block></script></block-definition><block-definition s="merge column %&apos;column&apos; of %&apos;board&apos; up" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</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><custom-block s="keep non zeros %l"><custom-block s="join up %l"><custom-block s="multimap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="c"/><l/></block></autolambda><list></list></block><list><block var="GAME BOARD"/></list></custom-block></custom-block></custom-block></block><block s="doUntil"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="column"/></block><custom-block s="size of board %l"><block var="board"/></custom-block></block><script><block s="doAddToList"><l>0</l><block var="column"/></block></script></block><block s="doFor"><l>row</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="column"/></block><script><custom-block s="set item %n , %n of %l to %n"><block var="row"/><block var="c"/><block var="result"/><block s="reportListItem"><block var="row"/><block var="column"/></block></custom-block></script></block><block s="doReport"><block var="result"/></block></script></block-definition></blocks><variables><variable name="GAME BOARD"><list id="3164"><item><list struct="atomic" id="3165">0,0,2,2</list></item><item><list struct="atomic" id="3166">0,0,0,0</list></item><item><list struct="atomic" id="3167">0,0,0,0</list></item><item><list struct="atomic" id="3168">2,0,0,2</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>16</l></variable><variable name="LAST BOARD"><list id="3169"><item><list struct="atomic" id="3170">0,0,0,2</list></item><item><list struct="atomic" id="3171">0,0,0,0</list></item><item><list struct="atomic" id="3172">0,0,0,0</list></item><item><list struct="atomic" id="3173">2,0,0,0</list></item></list></variable></variables></project><media name="Fa21 | Project 3 Skeleton" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>