<snapdata remixID="12262094"><project name="physics engine" app="Snap! 8.1, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAmRJREFUeF7t18GJg1AARdGfimzBFizNTqzCXqziD8xiyGaSnRfkZKvw8P6Dkteccw4/BaICLwCj8mZ/CwAIQloAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQDgP/nXdR37vo9lWdIDevo4gB9OeNu2v6vneY7rup7u4fbnA/BL8neE77cexzHmnLcf2NMGAQQwNQ2gTzCAaQF/QtL83oBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3/gPWVfyo0JVwGwAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="physics engine"><notes></notes><palette><category name="Vectors" color="149,144,255,1"/><category name="Physics" color="190,255,218,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="&lt; %&apos;x&apos; &gt;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="dot %&apos;x&apos; %&apos;y&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><block s="reportVariadicProduct"><list><block var="x"/><block var="y"/></list></block></block></block></script></block-definition><block-definition s="cross %&apos;x&apos; %&apos;y&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="x"/></block><l>2</l></block><script><block s="doReport"><custom-block s="dot %l %l"><block var="x"/><block s="reportListAttribute"><l><option>reverse</option></l><block var="y"/></block></custom-block></block></script></block><block s="doReport"><custom-block s="&lt; %mult%n &gt;"><list><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="x"/></block><block s="reportListItem"><l>3</l><block var="x"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="x"/></block><block s="reportListItem"><l>2</l><block var="x"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="x"/></block><block s="reportListItem"><l>1</l><block var="x"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="x"/></block><block s="reportListItem"><l>3</l><block var="x"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="x"/></block><block s="reportListItem"><l>2</l><block var="x"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="x"/></block><block s="reportListItem"><l>1</l><block var="x"/></block></list></block></block></list></custom-block></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="mag %&apos;x&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><custom-block s="sqMag %l"><block var="x"/></custom-block></block></block></script></block-definition><block-definition s="sqMag %&apos;x&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="dot %l %l"><block var="x"/><block var="x"/></custom-block></block></script></block-definition><block-definition s="norm %&apos;x&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block var="x"/><custom-block s="mag %l"><block var="x"/></custom-block></block></block></script></block-definition><block-definition s="%&apos;x&apos; change of i hat %&apos;i&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="&lt; %mult%n &gt;"><list><custom-block s="dot %l %l"><block var="x"/><block var="i"/></custom-block><custom-block s="dot %l %l"><block var="x"/><custom-block s="rot90 %l"><block var="i"/></custom-block></custom-block></list></custom-block></block></script></block-definition><block-definition s="rot90 %&apos;x&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="&lt; %mult%n &gt;"><list><block s="reportDifference"><l>0</l><block s="reportListItem"><l>2</l><block var="x"/></block></block><block s="reportListItem"><l>1</l><block var="x"/></block></list></custom-block></block></script></block-definition><block-definition s="%&apos;x&apos; . %&apos;y&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s" readonly="true"><options>x&#xD;y&#xD;z</options></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><block var="y"/><block s="reportNewList"><list><block s="reportNewList"><list><l>x</l><l>1</l></list></block><block s="reportNewList"><list><l>y</l><l>2</l></list></block><block s="reportNewList"><list><l>z</l><l>3</l></list></block></list></block></block><block var="x"/></block></block></script></block-definition><block-definition s="new physics object $nl pos %&apos;x&apos; $nl mass %&apos;y&apos;" type="reporter" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>pos</l><block var="x"/></list></block><block s="reportNewList"><list><l>vel</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block><block s="reportNewList"><list><l>mass</l><block var="y"/></list></block></list></block></block></script></block-definition><block-definition s="%&apos;x&apos; . %&apos;y&apos;" type="reporter" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="y"/><block var="x"/></block></block></script></block-definition><block-definition s="%&apos;x&apos; . %&apos;y&apos; = %&apos;z&apos;" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input><input type="%s"></input></inputs><script><block s="doReplaceInList"><block var="y"/><block var="x"/><block var="z"/></block></script></block-definition><block-definition s="update %&apos;x&apos;" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><custom-block s="%l . %txt = %s"><block var="x"/><l>pos</l><block s="reportVariadicSum"><list><custom-block s="%l . %txt"><block var="x"/><l>pos</l></custom-block><custom-block s="%l . %txt"><block var="x"/><l>vel</l></custom-block></list></block></custom-block></script></block-definition><block-definition s="framerate limit %&apos;x&apos;" type="command" category="Physics"><variables><list struct="atomic" id="327">t</list></variables><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doWaitUntil"><block s="reportGreaterThan"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="t"/></block><block s="reportQuotient"><l>1000</l><block var="x"/></block></block></block><block s="doSetVar"><l>t</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block></script></block-definition><block-definition s="apply force %&apos;x&apos; to %&apos;y&apos;" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="%l . %txt = %s"><block var="y"/><l>vel</l><block s="reportVariadicSum"><list><custom-block s="%l . %txt"><block var="y"/><l>vel</l></custom-block><block s="reportQuotient"><block var="x"/><custom-block s="%l . %txt"><block var="y"/><l>mass</l></custom-block></block></list></block></custom-block></script></block-definition><block-definition s="heading %&apos;x&apos;" type="reporter" category="Vectors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtan2"><custom-block s="%l . %s"><block var="x"/><l>x</l></custom-block><custom-block s="%l . %s"><block var="x"/><l>y</l></custom-block></block></block></script></block-definition><block-definition s="%&apos;z&apos; air %&apos;x&apos; friction %&apos;y&apos; density %&apos;w&apos; surface %&apos;f&apos;" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n"></input><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>v</l><l>a</l></list></block><block s="doSetVar"><l>v</l><block s="reportDifference"><custom-block s="%l . %txt"><block var="z"/><l>vel</l></custom-block><block var="x"/></block></block><block s="doSetVar"><l>a</l><custom-block s="dot %l %l"><block var="f"/><block var="v"/></custom-block></block><custom-block s="apply force %l to %l"><block s="reportVariadicProduct"><list><l>0.5</l><block var="a"/><block var="v"/><block var="w"/><block var="y"/></list></block><block var="z"/></custom-block></script></block-definition><block-definition s="%&apos;y&apos; newtonian gravity %&apos;x&apos; gravity %&apos;g&apos;" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>force</l></list></block><block s="doSetVar"><l>force</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="g"/><custom-block s="%l . %txt"><block var="y"/><l>mass</l></custom-block><custom-block s="%l . %txt"><block var="x"/><l>mass</l></custom-block></list></block><custom-block s="sqMag %l"><block s="reportDifference"><custom-block s="%l . %txt"><block var="y"/><l>pos</l></custom-block><custom-block s="%l . %txt"><block var="x"/><l>pos</l></custom-block></block></custom-block></block></block><custom-block s="apply force %l to %l"><block s="reportVariadicProduct"><list><block var="force"/><custom-block s="norm %l"><block s="reportDifference"><block var="y"/><block var="x"/></block></custom-block></list></block><block var="y"/></custom-block></script></block-definition><block-definition s="%&apos;x&apos; collide with line %&apos;y&apos; (2d only)" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="%l . %txt = %s"><block var="x"/><l>vel</l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><custom-block s="constrain %n %n %n"><block s="reportListItem"><l>1</l><l/></block><l>0</l><block s="reportQuotient"><l>1</l><l>0</l></block></custom-block><block s="reportListItem"><l>2</l><l/></block></list></block></autolambda><list></list></block><list><custom-block s="%l change of i hat %l"><custom-block s="%l . %txt"><block var="x"/><l>vel</l></custom-block><block var="y"/></custom-block></list></block></custom-block></script></block-definition><block-definition s="constrain %&apos;x&apos; %&apos;y&apos; %&apos;z&apos;" type="reporter" category="operators"><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="reportIfElse"><block s="reportLessThan"><block var="x"/><block var="y"/></block><block var="y"/><block s="reportIfElse"><block s="reportGreaterThan"><block var="x"/><block var="z"/></block><block var="z"/><block var="x"/></block></block></block></script></block-definition><block-definition s="%&apos;z&apos; air %&apos;x&apos; lift %&apos;y&apos; density %&apos;w&apos; surface %&apos;f&apos; (2d only)" type="command" category="Physics"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n"></input><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>v</l><l>a</l></list></block><block s="doSetVar"><l>v</l><block s="reportDifference"><custom-block s="%l . %txt"><block var="z"/><l>vel</l></custom-block><block var="x"/></block></block><block s="doSetVar"><l>a</l><custom-block s="dot %l %l"><custom-block s="rot90 %l"><block var="f"/></custom-block><block var="v"/></custom-block></block><custom-block s="apply force %l to %l"><block s="reportVariadicProduct"><list><l>0.5</l><block var="a"/><custom-block s="rot90 %l"><block var="v"/></custom-block><block var="w"/><block var="y"/></list></block><block var="z"/></custom-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="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="556"><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="557"></list></costumes><sounds><list struct="atomic" id="558"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="563"><costumes><list struct="atomic" id="564"></list></costumes><sounds><list struct="atomic" id="565"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="physics engine" app="Snap! 8.1, https://snap.berkeley.edu" version="2"></media></snapdata>