<snapdata remixID="14393900"><project name="U1-Optional-Pong-Starter" app="Snap! 10.7.2, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U1-Optional-Pong-Starter" palette="single" buttons="false"><notes></notes><hidden> turn turnLeft doFaceTowards doGotoObject doGlide setXPosition setYPosition getPosition doSwitchToCostume doWearNextCostume getCostumeIdx doSayFor bubble doThinkFor doThink reportGetImageAttribute reportNewCostumeStretched reportNewCostumeSkewed reportNewCostume changeEffect setEffect clearEffects getEffect changeScale setScale getScale show hide reportShown goToLayer goBack playSound doPlaySoundUntilDone doStopAllSounds doPlaySoundAtRate reportGetSoundAttribute reportNewSoundFromSamples doRest doPlayNote doSetInstrument doChangeTempo doSetTempo getTempo changeVolume setVolume getVolume changePan setPan getPan playFreq stopFreq clear down up getPenDown setColor changePenColorDimension setPenColorDimension getPenAttribute changeSize setSize doStamp floodFill write reportPenTrailsAsCostume doPasteOn doCutFrom receiveInteraction receiveConditionEvent receiveMessage doBroadcast doBroadcastAndWait doWarp doWait doWaitUntil doRepeat doUntil doFor reportIfElse doReport doStopThis doRun fork evaluate reportPipe doTellTo reportAskFor receiveOnClone createClone newClone removeClone doPauseAll doSwitchToScene receiveUserEdit doDefineBlock doDeleteBlock doSetBlockAttribute reportBlockAttribute reportEnvironment receiveSlotEvent doSetSlot reportColorIsTouchingColor doAsk getLastAnswer reportMousePosition reportMouseX reportMouseY reportMouseDown reportKeyPressed reportRelationTo reportAspect doResetTimer getTimer reportDate reportObject reportURL reportAudio reportVideo doSetVideoTransparency reportGlobalFlag doSetGlobalFlag reifyScript reifyReporter reifyPredicate reportPower reportModulus reportVariadicMin reportVariadicMax reportRound reportMonadic reportAtan2 reportVariadicEquals reportVariadicAnd reportVariadicOr reportNot reportBoolean reportJoinWords reportTextSplit reportLetter reportTextAttribute reportUnicode reportUnicodeAsLetter reportIsA reportVariadicIsIdentical doShowVar doHideVar doDeclareVariables reportNewList reportNumbers reportCONS reportListItem reportCDR reportListAttribute reportListIndex reportListContainsItem reportListIsEmpty reportMap reportKeep reportFindFirst reportCombine doForEach doAddToList doDeleteFromList doInsertInList doReplaceInList reportConcatenatedLists reportReshape reportCrossproduct setBackgroundColor changeBackgroundColorDimension setBackgroundColorDimension</hidden><headers></headers><code></code><blocks></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="6"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="7"></list></costumes><sounds><list struct="atomic" id="8"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="3"><watcher var="score" style="normal" x="10" y="10" color="243,118,29"/><watcher scope="Ball" s="xPosition" style="normal" x="10" y="33.40000199999999" color="74,108,212" hidden="true"/><sprite name="Paddle Puzzle" idx="1" x="220" y="3.25" heading="270" scale="1" volume="100" pan="0" rotation="0" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="15"><solution><sprite name="Paddle" idx="0" x="220" y="3.25" heading="270" scale="1" volume="100" pan="0" rotation="0" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="16"><costumes><list id="17"><item><ref mediaID="U1-Optional-Pong-Starter_Paddle_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="18"></list></sounds><blocks></blocks><variables></variables><scripts><script x="42" y="402.40000000000003"><block s="receiveKey"><l><option>down arrow</option></l><list></list><comment w="90" collapsed="true">1.OP.3.3</comment></block><block s="bounceOffEdge"><comment w="90" collapsed="false">paddle cannot go past the edge, that&apos;s why &quot;if on edge, bounce&quot; block used.</comment></block><block s="changeYPosition"><l>-35</l></block></script><script x="44" y="291"><block s="receiveKey"><l><option>up arrow</option></l><list></list><comment w="90" collapsed="true">1.OP.3.3</comment></block><block s="bounceOffEdge"></block><block s="changeYPosition"><l>35</l></block></script><script x="52" y="185"><block s="receiveGo"><comment w="90" collapsed="true">1.OP.3.3</comment></block><block s="gotoXY"><l>220</l><l>0</l></block></script><comment x="48.00000000000003" y="49.666666666666686" w="241.8333333333333" collapsed="true">Start reading these solutions in the Ball sprite.</comment></scripts></sprite></solution><costumes><list struct="atomic" id="40"></list></costumes><sounds><list struct="atomic" id="41"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite><sprite name="Ball Puzzle" idx="2" x="-128.93433365276996" y="-90.34755509004833" heading="291" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="45"><solution><sprite name="Ball" idx="0" x="-128.93433365276996" y="-90.34755509004833" heading="291" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="46"><costumes><list id="47"><item><ref mediaID="U1-Optional-Pong-Starter_Ball_cst_costume1"></ref></item></list></costumes><sounds><list struct="atomic" id="48"></list></sounds><blocks></blocks><variables></variables><scripts><script x="67" y="397.33333333333337"><block s="receiveGo"><comment w="90" collapsed="true">1.OP.3.4</comment></block><block s="doSetVar"><l>score</l><l>0</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><block s="reportRandom"><l>45</l><l>90</l></block></block><block s="doForever"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="xPosition"></block><l>225</l></list></block><script><block s="doChangeVar"><l>score</l><l>-1</l></block></script><list></list><comment w="302.009765625" collapsed="false">1.OP.3.A (Take It Further)&#xD;We check X POSITION rather than TOUCHING EDGE because it&apos;s only the /right/ edge that loses a point.</comment></block><block s="bounceOffEdge"></block><block s="doIf"><block s="reportTouchingObject"><l>Paddle</l></block><script><block s="doChangeVar"><l>score</l><l>1</l><comment w="90" collapsed="true">1.OP.3.A (TIF)</comment></block><block s="setHeading"><block s="reportVariadicProduct"><list><l>-1</l><block s="direction"></block></list><comment w="90" collapsed="false">Hardest thing in this lab  is to realize that the ball&apos;s bounce direction is the negative of its incoming direction.</comment></block></block><block s="forward"><l>10</l></block></script><list></list></block><block s="forward"><l>5</l></block></script></block></script><comment x="55" y="10" w="417" collapsed="false">1.OP.3.1:  The mathematics of reflection.&#xD;&#xD;Ideally, we&apos;d like students to understand that the formula&#xD;   new direction = - old direction&#xD;isn&apos;t a special case for a paddle on the right, with the ball approaching from the left.  The same formula applies if the paddle is on the left.  (And that will be important if they do the Take It Further adding a second paddle.)  But it /is/ a special case for a /vertical/ paddle.  If the paddle were horizontal, at the top or bottom of the stage (as in a Breakout game), the formula would be&#xD;    new direction = 180 - old direction.&#xD;&#xD;It matters that our direction measurement is clockwise from north.  That means that a vertical paddle points toward direction 0 degrees.  If we measured directions with 0 degrees = East, as mathematicians do, then it would be the horizontal paddle that simply negates the direction.&#xD;&#xD;For students who&apos;ve studied trig, they should be able to figure out a formula for bouncing off a diagonal paddle of any slope!</comment><comment x="55" y="270.55555555555554" w="403.33333333333337" collapsed="true">Now go back to the Paddle sprite for 1.OP.3.3, then back here for 1.OP.3.4.</comment></scripts></sprite></solution><costumes><list struct="atomic" id="106"></list></costumes><sounds><list struct="atomic" id="107"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite><sprite name="Paddl2 Puzzle" idx="3" x="-220" y="0" heading="270" scale="1" volume="100" pan="0" rotation="0" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="111"><solution><sprite name="Paddl2" idx="0" x="-220" y="0" heading="270" scale="1" volume="100" pan="0" rotation="0" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="112"><costumes><list id="113"><item><ref mediaID="U1-Optional-Pong-Starter_Paddl2_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="114"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="48" y="49.666666666666686" w="80" collapsed="true">TIF B</comment><script x="50" y="105"><block s="receiveGo"></block><block s="gotoXY"><l>-220</l><l>0</l><comment w="160" collapsed="true">-220 instead of 220.</comment></block></script><script x="52" y="219"><block s="receiveKey"><l><option>q</option></l><list></list><comment w="196" collapsed="false">Q and A keys instead of&#xD;up arrow and down arrow.</comment></block><block s="bounceOffEdge"></block><block s="changeYPosition"><l>35</l></block></script><script x="54" y="336.40000000000003"><block s="receiveKey"><l><option>a</option></l><list></list></block><block s="bounceOffEdge"></block><block s="changeYPosition"><l>-35</l></block></script><comment x="63" y="480.66666666666663" w="190" collapsed="false">TIF C&#xD;Replace the three scripts above&#xD;with this one:</comment><script x="70" y="568.9999999999999"><block s="receiveGo"><comment w="261" collapsed="false">Put the green flag hat block on top of the FOREVER block to enable TIF C.</comment></block></script><script x="66" y="626.9999999999999"><block s="doForever"><script><block s="gotoXY"><l>-220</l><block s="reportAttributeOf"><l><option>y position</option></l><l>Ball</l></block><comment w="221" collapsed="false">Note: When using the OF block, you have to set the second input before you can set the first input.  This is because the possibilities for the first input depend on what kind of object is in the second input (sprite? stage? costume?).</comment></block></script></block></script></scripts></sprite></solution><costumes><list struct="atomic" id="146"></list></costumes><sounds><list struct="atomic" id="147"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables><variable name="score"><l>204</l></variable></variables></scene></scenes></project><media name="U1-Optional-Pong-Starter" app="Snap! 10.7.2, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="9" center-y="36.75" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAABMCAYAAABgSufQAAAAAXNSR0IArs4c6QAAAIxJREFUWEftlcENgCAMRT+buJluom6CmzGKYjiQKBZDSDg8Em5t8/vop07Skq4ajndX8iZpbSgSU/duhQ5Jc6U6nyHpp6hSzCMMRTY5GMFo7P/Ifp/3CCbbJgcjGOH+zxnAIlgEi2AR2wUwglGJAFvEng0YwYhN+2+LBEmTPTZ3RB47qNdiK7XtlLoOJwTbdc1OvWqfAAAAAElFTkSuQmCC" mediaID="U1-Optional-Pong-Starter_Paddle_cst_Untitled"/><costume name="costume1" center-x="15" center-y="13.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAdCAYAAAC9pNwMAAAAAXNSR0IArs4c6QAAArFJREFUSEu9lz2MTFEYhp8JxehWR0eFitJWqNDp0PiLsJuVrGQTNlGgkCDZ2EnILhGWigodFSrboUK1yu1MOQVhn5vzTc6OuXOH3ZmT3Jy5d865z/ne8/O9t0Z/ZQ+wA7DeAtRTbe9loJXqT8BX4HPVa2sVDQTtA/YDO9PVq4tQr3fpKh1AL/AR4GSCjgRtkrGu4Abz+fNmAi8Ar7p16AZWRoESjNjSmmTM51xkvCt4lrnieYN5ZS/aAkrviJ6k6Wj37QYWeDXm0Ag3sqF1gXPxsp6zc5cHrZ/8qmcKuAauAffzjp1g5b0DbLOR0LIIqxaPCmTw71BI9Tr65WBhL0LetUDj5R3wReA44CDIwcqhxGuKtFOJDvj1JHsb7N78EBIvVW/DKqVX/b+d3XFvtKPu+Yj4FPB4vaMtkfz0SoALAXbSD9pwvaMNeBa1rMMB/gGMrMeCKpuDbK49XDYL9lQSPLBou0S9SbCn08chg3cJNgG8HTJ4VLAHx9KQwVtjcf0e1FYq2VK1AH+JXDuE7WS+LubYchO4PEi5s318ayVFTgd4b1pg9UHs5WwPm6sPAIsBNte+jNNriom+82/VoW1+nuFe5PI3K+bA1NvKs9OhlBZt1LrCVPMsJ0we/10e8nT5BjMeUL7TE8u0WOTkHOyfzvX51HD5EpP1cc60/da/jGCOR83bNJTWwVs3Ukr09yqw9zaaBY4mSHOKiXq/ticGluQVEIPWc00nC1w06+a5PEJd4c5FIbtGrx/flfmtMHzWzwBXstuoXcrsrR5a06fbjFG3naa9w4uFu/RZh8PU5D1PChZ2px9wyH4sM/Sr5jr8dYeftl94alewO8UB/FWqviTsoPQmkvwTxueFEw3zln3CfEtmXk9dWvoBR2cHoEUKk++njeV9qgX55dATGC/7A0dDwJ5lk6oKAAAAAElFTkSuQmCC" mediaID="U1-Optional-Pong-Starter_Ball_cst_costume1"/><costume name="Untitled" center-x="9" center-y="36.75" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAABMCAYAAABgSufQAAAAAXNSR0IArs4c6QAAAIxJREFUWEftlcENgCAMRT+buJluom6CmzGKYjiQKBZDSDg8Em5t8/vop07Skq4ajndX8iZpbSgSU/duhQ5Jc6U6nyHpp6hSzCMMRTY5GMFo7P/Ifp/3CCbbJgcjGOH+zxnAIlgEi2AR2wUwglGJAFvEng0YwYhN+2+LBEmTPTZ3RB47qNdiK7XtlLoOJwTbdc1OvWqfAAAAAElFTkSuQmCC" mediaID="U1-Optional-Pong-Starter_Paddl2_cst_Untitled"/></media></snapdata>