<snapdata remixID="12359112"><project name="Final TicTacToe" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Final TicTacToe"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></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="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></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="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l><comment w="78" collapsed="true">3.3.3 TIF B</comment></block><block s="setScale"><l>95</l><comment w="190" collapsed="true">Oops costumes are a bit too big.</comment></block><block s="doSetVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><l>3</l><script><block s="gotoXY"><block s="reportVariadicSum"><list><l>-100</l><block s="reportVariadicProduct"><list><l>50</l><block var="j"/></list></block></list></block><block s="reportDifference"><l>100</l><block s="reportVariadicProduct"><list><l>50</l><block var="i"/></list></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block></script></custom-block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="possible winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="triple"/></block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possible winning triples"></custom-block></block></block></script></block-definition><block-definition s="won? %&apos;who&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><block var="who"/><block var="who"/><block var="who"/></list></block></block></block></script></block-definition><block-definition s="tied?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block><l></l></list></block></block></script></block-definition><block-definition s="draw win line" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>8</l><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>O</l><l>O</l><l>O</l></list></block></list></block></list></block><script><block s="doSetVar"><l>line</l><block s="reportListItem"><block var="i"/><block var="win lines"/></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="line"/><comment w="137.33333333333334" collapsed="false">This is why each line in WIN LINES is a list of points, each of which is a list of x,y coordinates:  It allows us to use the endpoints, as points, in the GO TO block.</comment></block></block><block s="down"></block><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="up"></block></script></block></script></block></script><scripts><comment x="174" y="6.666666666666667" w="244" collapsed="false">I&apos;m kind of bummed that I didn&apos;t find a beautiful one-line solution using FIND FIRST, but it just gives the value it finds, not the position in the list, which is what we need to find the line endpoints in WIN LINES. So it&apos;s a plain old fashioned FOR loop.</comment></scripts></block-definition><block-definition s="move in this block" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><custom-block s="tied?"></custom-block></list></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block></script></block><block s="doDeclareVariables"><list><l>available squares</l></list></block><block s="doSetVar"><l>available squares</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block><block s="doSetVar"><l>message</l><block s="reportListItem"><l><option>random</option></l><block var="available squares"/></block></block><block s="doBroadcast"><block var="message"/><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="available squares"/></block><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="available squares"/></block><block var="board"/><l>X</l></block><block s="doIf"><block s="reportNot"><custom-block s="won? %s"><l>X</l></custom-block></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="565"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="566"></list></costumes><sounds><list struct="atomic" id="567"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="50" y="-50" heading="90" scale="0.95" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="572"><costumes><list id="573"><item><ref mediaID="Square_cst_Empty"></ref></item><item><ref mediaID="Square_cst_X"></ref></item><item><ref mediaID="Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="574"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="14.666666666666686" y="10"><block s="receiveGo"></block><block s="clear"></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="13.333333333333343" y="364.66666666666663"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>1</l></list></block></list></block><script><custom-block s="move in this block"></custom-block></script></block></script><script x="10" y="1648.3333333333346"><block s="doSetVar"><l>win lines</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>50</l></list></block><block s="reportNewList"><list><l>100</l><l>50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>0</l></list></block><block s="reportNewList"><list><l>100</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-50</l></list></block><block s="reportNewList"><list><l>100</l><l>-50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-50</l><l>100</l></list></block><block s="reportNewList"><list><l>-50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>100</l></list></block><block s="reportNewList"><list><l>0</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>50</l><l>100</l></list></block><block s="reportNewList"><list><l>50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-100</l></list></block><block s="reportNewList"><list><l>100</l><l>100</l></list></block></list></block></list></block></block></script><script x="16.000000999999997" y="1945.6666666666679"><custom-block s="draw win line"></custom-block></script><script x="15.33333433333334" y="2056.666666666666"><custom-block s="makeBoard"></custom-block></script><script x="15" y="312.33333333333314"><custom-block s="won? %s"><l></l></custom-block></script><script x="15" y="281.0000000000001"><custom-block s="status of all winning triples"></custom-block></script><script x="15.666666666666686" y="164.3333333333332"><custom-block s="possible winning triples"></custom-block></script><script x="18.666667666666683" y="242.66666666666674"><block s="reportVariadicEquals"><list><custom-block s="status of triple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></list></block></script><script x="18.333333333333343" y="217.99999999999966"><custom-block s="status of triple %l"><l/></custom-block></script><script x="21" y="338.33333333333314"><custom-block s="tied?"></custom-block></script><script x="16.666667666666683" y="187.3333333333332"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></block></script><script x="366.6666676666666" y="338.66666666666686"><block s="receiveMessage"><l><option>any message</option></l><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="message"/><block var="position number"/></list></block><script><custom-block s="move in this block"></custom-block></script></block></script><script x="125.33333333333326" y="512.4999999999999"><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><custom-block s="tied?"></custom-block></list></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block></script></block><block s="doDeclareVariables"><list><l>available squares</l></list></block><block s="doSetVar"><l>available squares</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="available squares"/></block><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="available squares"/></block><block var="board"/><l>X</l></block><block s="doIf"><block s="reportNot"><custom-block s="won? %s"><l>X</l></custom-block></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="100" y="100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="255,32,0,1" pen="tip" id="956"><costumes><list struct="atomic" id="957"></list></costumes><sounds><list struct="atomic" id="958"></list></sounds><blocks></blocks><variables></variables><scripts><script x="27" y="23.666666666666668"><block s="receiveGo"></block><block s="hide"></block><block s="setSize"><l>5</l></block><block s="setColor"><color>255,32,0,1</color></block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="10" y="298.500002" color="243,118,29" hidden="true"/><watcher var="playing" style="normal" x="10" y="325.499996" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="10" y="177.999998" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0" y="27" color="243,118,29" extX="80" extY="70"/><watcher var="message" style="normal" x="10" y="338.999998" color="243,118,29"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="974">O,O,X,O,X,X,X,X,O</list></variable><variable name="playing"><bool>false</bool></variable><variable name="win lines"><list id="975"><item><list id="976"><item><list struct="atomic" id="977">-100,50</list></item><item><list struct="atomic" id="978">100,50</list></item></list></item><item><list id="979"><item><list struct="atomic" id="980">-100,0</list></item><item><list struct="atomic" id="981">100,0</list></item></list></item><item><list id="982"><item><list struct="atomic" id="983">-100,-50</list></item><item><list struct="atomic" id="984">100,-50</list></item></list></item><item><list id="985"><item><list struct="atomic" id="986">-50,100</list></item><item><list struct="atomic" id="987">-50,-100</list></item></list></item><item><list id="988"><item><list struct="atomic" id="989">0,100</list></item><item><list struct="atomic" id="990">0,-100</list></item></list></item><item><list id="991"><item><list struct="atomic" id="992">50,100</list></item><item><list struct="atomic" id="993">50,-100</list></item></list></item><item><list id="994"><item><list struct="atomic" id="995">-100,100</list></item><item><list struct="atomic" id="996">100,-100</list></item></list></item><item><list id="997"><item><list struct="atomic" id="998">-100,-100</list></item><item><list struct="atomic" id="999">100,100</list></item></list></item></list></variable><variable name="message"><l></l></variable></variables></scene></scenes></project><media name="Final TicTacToe" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAAAShJREFUaEPtmyEOg0AQRT836A1ag24TBIakFWv2Fr0BFgc4LKdZs6ICgyCpx9AbcIRmG0LS0lbPbj4nmDf/v4xZIgAVgCOAE8L87tECeQZwCZMRt0/ISWuNNE0PPgP3fT8ZYxyC43iH1FpPbdsijmOvIcdxnPI8hzFmC1lVFcqy9DnEdfa6ruF4NkkS0rN8mSSd9KiyrCvryrrK2gCdpJOyGvl3GtaVdWVdZW2ATtJJWY3kCaGTdJJOytoAnaSTshrJO0kn6SSdlLUBOkknZTWSd5JO0kk6KWsDdJJOymok7ySdpJMhOKmUmpumQZIkO494NqMOwzAXRQFrrePYPM+elVLIssxryK7rZmutg/8K6XOAv2Z/JXldHqTvQyQE8HCQof4qsWb2BLkbqAIXp3YbAAAAAElFTkSuQmCC" mediaID="Square_cst_Empty"/><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA6CAYAAAAKjPErAAAAAXNSR0IArs4c6QAAA8NJREFUaEPd271P20AYBvCHVkIMlmDokA2GbgwJeyFBXegE/AWEjSEDqEu2wMYIAwsMwMYGY5cKBsaqAkG2DrBlqCqQGBBSpepxOcs57LN9H3ack1hiB/t373vvmTszguFsEwAeBG0EwCaAKoDakHjfAagAeAHwB8BPgawDaAwJUmZcyMgXz/PQarVGx8bGSmV+fn7G0dERer1eItI/oVar4fz8HBMTTO1ytOXlZZydnQU3Oz09/bvb7X4A8CaSwUllgq6urvpRFO3w8BD39/fY3GS5kZBLS0t9vVEGqAzsdDo+bmtrKxrJg5OTk+AXRRtkqAxcWVkJIqpEsicY+kGHqoAMUCKSJ0VBmeuMbNEtCZgaGQVltWXVLRKaBpgJ6ZemiwuwID0+PvoBLBIqZ1d4DMrZlSpdw1+6urpCo9EoFJoFmDmSAlskVAbW63U/w1QtcySLhMrAarXqA5OexrSRxOYZUV2gdrrmPUZNgFaQriNqCrSGdAXlcJifn8fDw/8/7NOOQeMpRFXFbI5RW0CrkbRZdWXg+Pi4X+Smpqa0niKNqmvcFU0iGgXkNGHy+OgEGTdG+VDPx0JV54THICNoCnSSrqrphccIbTabb5wuIigu4iyS4gJ3d3d+9K6vrwOYDOU5MzMzQRW1FcHckLwQpwA+1EdBeYwpykiy2QY6T9dwTkZB9/b2cHBw4BSYKzIuouGOOD09VRYmrfkj7fKH7i+P+h4jOjs7i9vb277DcQXJxrWdFx75Jomcm5vDzc3NcCLlIiN3gKto5hpJThOiihLIwrO/v6+cXkqVrlHL93woUE0vNoC5Vdc4oEC4hjpP17Rroy6hTpFpgaqIck+G2xUmzRkyK1AF5dhl5dVtTpC6wDB0fX0dx8fHgcsEah0p9gPF3amW75MiQ5gNqFVk1uX7JCSP24BaQ7oAik4whVpB2lgbTYqqCdQYmQfQNKJGyDyBJlBtZBFAXagWksuEXJcRTXf5Pmkcqo5nGaOZkTaX702QWaaXTEgZyPd8+FnSJqgpxjSiqZEuF39NO0FOXa7z8llXdH4q5CAD44pR+O2xRGQZgAK6s7ODjY2NIDEEdHd3N/7dusXFxb5NUBer26apKn8/6u2xhYUFbG9v89T+V0Hb7TZOTk7AfQq2MgAFWIZWKhXxgm8/0vO8v09PT+/LBoyDvn5+KV7P/gzgUzgN1tbWwN4oW2M9Cb/BzL0ngfwKwCsbKOX9/iCSu6PcCv4CYBTAJYBfKX/BIJ/28fXmvhMp/lWCH/Ln2yDfuc69/QO8JTdw9aXwqAAAAABJRU5ErkJggg==" mediaID="Square_cst_X"/><costume name="O" center-x="28" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAABF9JREFUaEPtmos1LEEQhnsiQARsBIgAEbARIAJEsLsRIAI2AkRgNwJEgAgQwdzzzbm1p7bNo7rnsWupc5z7MNPdf/1Vf1dXT+KcGzrn9tzq2jT5D3Kwuhjd6FeCHKVp+uNZTZJk5JwTHPNMpmm6MlGbJARpZt2BfHt7c+/v79msm5ubbmtrq1WHtg5yOp26+/t7N5lM3PPzcymYnZ0dt7+/746OjtzeXnMi3wpImBqNRhm4z8/PKJbW19czsIPBoDbTjYIE0PX1tRsO2W6LTYeoDt2iNxjv7OzMATzGGgN5e3vrLi4uvjEHIBiRMCxbpIQ1f0rOyvMAvLy8dCcnJ8E4GwEJuKurq7nJySkYAFyMkcO8T05rOz8/z8CGWC2QhOfp6WmWe2IwB2DYa8IYG2CaWca+ubkxh280SAAeHBzMKebx8XEGMDZ3ipzCXAAdj8ezR1Dix8dH01zRIGGQPBRDBasEpy6zjI9qi5GfMFplUSD9yZgoRhCqFpf3exyLg0OcGwySHOn3+7NJkHZfdGIWH/IOoctWJXZ3d1eqAcEge72eY2/DDg8P50QnZKF1n0V8Hh4esmEoC19fXwuHDAIJY2wX2NraWga2aZGxgkeMAPf19ZW9wrYCw3lmBsmgsChlWtmg1oXWfU47HWfDZp7TzSD1gOyFErJ1F1r3fdiUPbTI8WaQu7u7sz2xSzWtcoJWW6osKiXfTCAJ0Y2Njdm7Hx8fC8tFH4BlbSaQFm9VebzN31P9vLy8ZFPkRZkJJBu9lFTLIDi+w7ReUFrqSoxnTSA5SchpgHox9mTRFpvkIXU0lpeXfyDF84iO7I/LJDqyPi0+7JOsUZuJSfWQW9ZWZdka/0AK5Vqin56eHP9eJqPVSbGCbW9vf2t9mphcIXUdzl346NzTIKvObotgWJ9xo7cQ3QnI22wXAUzPqYuVvDaMCtdiJnXMVx1QFwFYb3F5mmHKSRbO/iMH1GUSH01A0RHQDFKHxDKFrGVdZpC6PoRZTuFtX7lVhT4Hd7oVYkV1tRkkA2mV5e8MukijKJdDctGB2XwKESC+5xa5nfj917LICmISsDoHECPY7LoCQmxgUQ4NVRoRDJKBCVU5iZOXqG1XrUm/a0gZR8iWzR8MEjbxJEBlSwm5fKmTw6QL3Xu5lqf3C8CqSIoCyUJ9tW07dP0QZQ3WLkU0SCbxkx+gcvVdhzH/Xe49/O54SFu0Fsi80OX/CB8aXnV7QUQL1xL6qxFriAZ3BqpYIVe4gBExkucBiRqzh1kLB8aiaUaU+I1iRIYTh3UsWUdtJmUgVI/WID8iSNo5sCtX7CxSFgoouXIAQN63PrBHuPITo+KNgdRg/avvqkgo+30TV/SNg9TVkXyyIveIVrDce8onMaGhmTdHayD1ZISy/uxMh6gOXfnsLCYkyxzYCUgrg209Z+oMtDV5V+P+Nia/fZ49SdM07puxrigyzJMkCbeyguN3foNu8NOPeyRrSf748Kxy+z+VzUmjGHSyOAAAAABJRU5ErkJggg==" mediaID="Square_cst_O"/></media></snapdata>