<snapdata remixID="15202546"><project name="Untitled" app="Snap! 12.0.6, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Untitled"><notes></notes><palette><category name="3D Vectors" color="60,198,111,1"/><category name="3D Beetle" color="92,181,255,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="vector x: %&apos;x&apos; y: %&apos;y&apos; z: %&apos;z&apos;" type="reporter" category="3D Vectors" reports="vec3"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>_type</l><l>vec3</l></list></block><block s="reportNewList"><list><l>x</l><block s="reportVariadicSum"><list><block var="x"/><l></l></list></block></list></block><block s="reportNewList"><list><l>y</l><block s="reportVariadicSum"><list><block var="y"/><l></l></list></block></list></block><block s="reportNewList"><list><l>z</l><block s="reportVariadicSum"><list><block var="z"/><l></l></list></block></list></block><block s="reportNewList"><list><l>_morph</l><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>js</l><l>txt</l></list></block><block s="doSetVar"><l>txt</l><block s="reportNewList"><list><block s="reportJoinWords"><list><l>𝙓: </l><block s="reportListItem"><l>x</l><block s="reportEnvironment"><l><option>object</option></l></block></block></list></block><block s="reportJoinWords"><list><l>𝙔: </l><block s="reportListItem"><l>y</l><block s="reportEnvironment"><l><option>object</option></l></block></block></list></block><block s="reportJoinWords"><list><l>𝙕: </l><block s="reportListItem"><l>z</l><block s="reportEnvironment"><l><option>object</option></l></block></block></list></block></list></block></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/beetle/beetle.js</l></list></block><block s="doWaitUntil"><block s="reportVariadicAnd"><list><block s="reportApplyExtension"><l>snap_extensionexists(prim)</l><list><l>bb_ready()</l></list></block><block s="reportApplyExtension"><l>bb_ready()</l><list></list></block></list></block></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportApplyExtension"><l>snap_extensionexists(prim)</l><list><l>bb_ready()</l></list></block><block s="reportApplyExtension"><l>bb_ready()</l><list></list></block></list></block><script><block s="doSetVar"><l>js</l><block s="evaluate"><block s="reportJSFunction"><list><l>xtxt</l><l>ytxt</l><l>ztxt</l><l>morph</l></list><l>let xdata=new TextMorph(xtxt,12)&#xD;xdata.color=new Color(150)&#xD;morph.add(xdata)&#xD;let ydata=new TextMorph(ytxt,12)&#xD;ydata.color=new Color(0,150)&#xD;morph.add(ydata)&#xD;ydata.bounds.origin.y+=12&#xD;ydata.bounds.corner.y+=12&#xD;let zdata=new TextMorph(ztxt,12)&#xD;zdata.color=new Color(0,0,150)&#xD;morph.add(zdata)&#xD;zdata.bounds.origin.y+=24&#xD;zdata.bounds.corner.y+=24&#xD;morph.bounds.corner.x=Math.max(&#xD;    morph.bounds.corner.x,&#xD;    xdata.maxLineWidth,&#xD;    xdata.maxLineWidth,&#xD;    xdata.maxLineWidth&#xD;)&#xD;return morph</l></block><list><block s="reportListItem"><l>1</l><block var="txt"/></block><block s="reportListItem"><l>2</l><block var="txt"/></block><block s="reportListItem"><l>3</l><block var="txt"/></block><block s="evaluate"><block s="reifyScript"><script><block s="doApplyExtension"><l>bb_clear()</l><list></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>90</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><l>circle</l></list></block><block s="doApplyExtension"><l>bb_setscale(scale, which)</l><list><l>.05</l><l>shape</l></list></block><block s="doApplyExtension"><l>bb_startextruding()</l><list></list></block><block s="setColor"><color>255,0,0,1</color></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>90</l><l>0</l><l>0</l></list></block><block s="setColor"><color>0,255,0,1</color></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="setColor"><color>0,0,255,1</color></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><block s="reportAtan2"><block s="reportListItem"><l>y</l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportListItem"><l>x</l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>2</l></block><block s="reportPower"><block s="reportListItem"><l>z</l><block s="reportEnvironment"><l><option>object</option></l></block></block><l>2</l></block></list></block></block></block><block s="reportAtan2"><block s="reportListItem"><l>x</l><block s="reportEnvironment"><l><option>object</option></l></block></block><block s="reportListItem"><l>z</l><block s="reportEnvironment"><l><option>object</option></l></block></block></block><l>0</l></list></block><block s="setColor"><color>41,41,41,1</color></block><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><l>circle</l></list></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_stopextruding()</l><list></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>340</l><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="getTimer"></block><l>4</l></block><l>90</l></list></block><l>0</l></list></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>-6</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>cst_morph(cst)</l><list><block s="reportApplyExtension"><l>bb_beetleView()</l><list></list></block></list></block></block></script><list></list></block><list></list></block></list></block></block></script><script><block s="doSetVar"><l>js</l><block s="evaluate"><block s="reportJSFunction"><list><l>xtxt</l><l>ytxt</l><l>ztxt</l></list><l>let xdata=new TextMorph(xtxt,12)&#xD;xdata.color=new Color(150)&#xD;let ydata=new TextMorph(ytxt,12)&#xD;ydata.color=new Color(0,150)&#xD;xdata.add(ydata)&#xD;ydata.bounds.origin.y+=12&#xD;ydata.bounds.corner.y+=12&#xD;let zdata=new TextMorph(ztxt,12)&#xD;zdata.color=new Color(0,0,150)&#xD;xdata.add(zdata)&#xD;zdata.bounds.origin.y+=24&#xD;zdata.bounds.corner.y+=24&#xD;return xdata</l></block><block var="txt"/></block></block></script></block><block s="doReport"><block var="js"/></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>js</l><block s="reportListAttribute"><l><option>lines</option></l><block var="txt"/></block></block></script><list></list></block><l></l></list></block><block s="doReport"><block var="js"/></block></script><list></list></block></list></block></list></block></block></script></block-definition><block-definition s="-- %&apos;n&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%anyUE" readonly="true"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>-1</l></block></script><list></list></block><list><block var="n"/></list></block><block s="doReport"><block s="evaluate"><block var="n"/><list></list></block></block></script></block-definition><block-definition s="animate setter %&apos;setter&apos; getter %&apos;getter&apos; delta %&apos;delta&apos; over %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="control"><header></header><code></code><translations>de:animiere Setter _ Getter _ Delta _ über _ Sek. beschleunigt _&#xD;ca:modifica setter _ i getter _ amb delta _ en _ segons de forma _&#xD;pt:anima com modificador _ e inspector _ de _ em _ s de forma _&#xD;pl:animuj setter _ getter _ delta _ przez _ s przyspieszając _&#xD;zh_CN:把 _ 所对应的值 _ 增加 _ 秒数 _ 变换方式 _&#xD;</translations><inputs><input type="%cmdRing"></input><input type="%repRing"></input><input type="%n">50</input><input type="%n">1</input><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>end time</l><l>destination</l></list></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>destination</l><block s="reportVariadicSum"><list><block s="evaluate"><block var="getter"/><list></list></block><block var="delta"/></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></list></block><script><block s="doRun"><block var="setter"/><list><block s="reportDifference"><block var="destination"/><block s="reportVariadicProduct"><list><block var="delta"/><block s="evaluate"><block var="easing"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></list></block></script></block><block s="doRun"><block var="setter"/><list><block var="destination"/></list></block></script></block-definition><block-definition s="PI" type="reporter" category="operators"><header></header><code></code><translations>zh_CN:圆周率&#xD;</translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="degrees %&apos;radians&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Grad _&#xD;ca:graus de _ radians&#xD;pt:_ radianos em graus&#xD;pl:stopnie _&#xD;zh_CN:弧度 _ 转角度&#xD;</translations><inputs><input type="%n">0.5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="radians"/><l>180</l></list></block><custom-block s="PI"></custom-block></block></block></script></block-definition><block-definition s="glide %&apos;steps&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:gleite _ in _ Sek. beschleunigt: _&#xD;ca:llisca _ en _ segons de forma _&#xD;fr:glisser _ en _ sec. accélérer _&#xD;pt:desliza _ em _ s de forma _&#xD;pl:leć _ przez _ s przyspieszając _&#xD;zh_CN:滑动 _ 步 秒数 _ 变换方式 _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">$_linear<options>$_linear&#xD;quadratic={&#xD;$_quadratic-in&#xD;$_quadratic-out&#xD;$_quadratic-in-out&#xD;}&#xD;cubic={&#xD;$_cubic-in&#xD;$_cubic-out&#xD;$_cubic-in-out&#xD;}&#xD;quart={&#xD;$_quart-in&#xD;$_quart-out&#xD;$_quart-in-out&#xD;}&#xD;sinusoidal={&#xD;$_sine-in&#xD;$_sine-out&#xD;$_sine-in-out&#xD;}&#xD;$_elastic</options></input></inputs><script><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reifyScript"><script><block s="doGotoObject"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPosition"></block></autolambda><list></list></block><block s="reportVariadicProduct"><list><block var="steps"/><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></list></block><block var="duration"/><custom-block s="easing %txt"><block var="easing"/></custom-block></custom-block></script></block-definition><block-definition s="animate %&apos;attribute&apos; by %&apos;delta&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:animiere _ um _ in _ Sek. beschleunigt: _&#xD;ca:modifica _ amb _ en _ segons de forma _&#xD;pt:anima _ de _ em _ s de forma _&#xD;pl:animuj _ o _ przez _ s przyspieszając _&#xD;zh_CN:把 _ 增加 _ 秒数 _ 变换方式 _&#xD;</translations><inputs><input type="%s" readonly="true">$_x position<options>$_steps&#xD;$_x position&#xD;$_y position&#xD;$_direction&#xD;$_size&#xD;$_ghost effect&#xD;$_color effect&#xD;$_saturation effect&#xD;$_brightness effect&#xD;$_fisheye effect&#xD;$_whirl effect&#xD;$_pixelate effect&#xD;$_mosaic effect&#xD;$_negative effect&#xD;$_tempo&#xD;$_volume&#xD;$_balance</options></input><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">$_linear<options>$_linear&#xD;quadratic={&#xD;$_quadratic-in&#xD;$_quadratic-out&#xD;$_quadratic-in-out&#xD;}&#xD;cubic={&#xD;$_cubic-in&#xD;$_cubic-out&#xD;$_cubic-in-out&#xD;}&#xD;quart={&#xD;$_quart-in&#xD;$_quart-out&#xD;$_quart-in-out&#xD;}&#xD;sinusoidal={&#xD;$_sine-in&#xD;$_sine-out&#xD;$_sine-in-out&#xD;}&#xD;$_elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>accessors</l><l>func</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>steps</l></list></block><script><block s="doSetVar"><l>accessors</l><block s="reportNewList"><list><block s="reifyScript"><script><block s="doGotoObject"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPosition"></block></autolambda><list></list></block></list></block></block><block s="doSetVar"><l>delta</l><block s="reportVariadicProduct"><list><block var="delta"/><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></list></block></block></script><script><block s="doSetVar"><l>accessors</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>x position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>y position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>direction</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>size</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>tempo</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>volume</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>balance</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></block></autolambda><list></list></block></list></block></block></block></block></block></block></block></block></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><custom-block s="easing %txt"><block var="easing"/></custom-block></block></script></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reportListItem"><l>1</l><block var="accessors"/></block><block s="reportListItem"><l>2</l><block var="accessors"/></block><block var="delta"/><block var="duration"/><block var="func"/></custom-block></script></block-definition><block-definition s="easing %&apos;choice&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Beschleunigung _&#xD;ca:de forma _&#xD;pt:a forma _&#xD;pl:przyspieszenie _&#xD;zh_CN:变换函数 _&#xD;</translations><inputs><input type="%txt" readonly="true">$_linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;sigmoid&#xD;elastic</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>linear</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>id</option></l><l></l></block></autolambda><list></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportDifference"><l>2</l><l></l></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>4</l><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block></block><l></l></list></block><l>1</l></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block var="t"/></list></block><block var="t"/></list></block><l>1</l></list></block></autolambda><list><l>t</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>4</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><l>1</l></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><l>1</l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block><list><l></l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicSum"><list><l>90</l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></list></block></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportVariadicProduct"><list><l></l><l>180</l></list></block></block></block><l>2</l></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sigmoid</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l>1</l><block s="reportVariadicSum"><list><l>1</l><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l></l><l>20</l></list></block><l>10</l></block></block></block></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>elastic</l></list></block><script><block s="doReport"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>p</l></list></block><block s="doSetVar"><l>p</l><l>0.3</l></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportPower"><l>2</l><block s="reportVariadicProduct"><list><l>-10</l><l></l></list></block></block><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><block s="reportQuotient"><block var="p"/><l>4</l></block></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><l>2</l><custom-block s="PI"></custom-block></list></block><block var="p"/></block></list></block></custom-block></block></list></block><l>1</l></list></block></block></script><list></list></block></block></script></list></block><custom-block s="error %s"><block s="reportJoinWords"><list><l>unknown easing function "</l><block var="choice"/><l>"</l></list></block></custom-block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>de:Fehler _&#xD;pt:assinala o erro _&#xD;pl:błąd _&#xD;zh_CN:报错 _&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; $nl in %&apos;time&apos; secs easing %&apos;easing&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _ in _ Sek. beschleunigt: _ _&#xD;ca:per _ = _ fins _ _ en _ segons de forma _ _&#xD;pt:para _ de _ a _ _ em _ s de forma _ _&#xD;pl:dla _ = _ do _ _ przez _ s przyspieszając _ _&#xD;zh_CN:获取每帧变换的值 _ 从 _ 变换到 _ _ 秒数 _ 变换方式 _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">0</input><input type="%n">100</input><input type="%n">1</input><input type="%txt" readonly="true">$_linear<options>$_linear&#xD;quadratic={&#xD;$_quadratic-in&#xD;$_quadratic-out&#xD;$_quadratic-in-out&#xD;}&#xD;cubic={&#xD;$_cubic-in&#xD;$_cubic-out&#xD;$_cubic-in-out&#xD;}&#xD;quart={&#xD;$_quart-in&#xD;$_quart-out&#xD;$_quart-in-out&#xD;}&#xD;sinusoidal={&#xD;$_sine-in&#xD;$_sine-out&#xD;$_sine-in-out&#xD;}&#xD;$_elastic</options></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>i</l><block var="start"/></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reifyScript"><script><block s="doSetVar"><l>i</l><l></l></block><block s="doRun"><block var="action"/><list></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block var="i"/></autolambda><list></list></block><block s="reportDifference"><block var="end"/><block var="start"/></block><block var="time"/><block s="reportIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><block var="easing"/><custom-block s="easing %txt"><block var="easing"/></custom-block></block></custom-block></script></block-definition><block-definition s="sphere r: %&apos;r&apos; φ: %&apos;φ&apos; θ: %&apos;θ&apos;" type="reporter" category="3D Vectors" reports="vec3"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0<options>§_directionDialMenu</options></input><input type="%n" initial="1">0<options>§_directionDialMenu</options></input></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>cos</option></l><block var="φ"/></block><block s="reportMonadic"><l><option>sin</option></l><block var="θ"/></block></list></block><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>sin</option></l><block var="φ"/></block></list></block><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>cos</option></l><block var="φ"/></block><block s="reportMonadic"><l><option>cos</option></l><block var="θ"/></block></list></block></custom-block></block></script></block-definition><block-definition s="x of vec3 %&apos;vector&apos;" type="reporter" category="3D Vectors" space="true"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><block s="reportListItem"><l>x</l><block var="vector"/></block></block></script></block-definition><block-definition s="y of vec3 %&apos;vector&apos;" type="reporter" category="3D Vectors"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><block s="reportListItem"><l>y</l><block var="vector"/></block></block></script></block-definition><block-definition s="z of vec3 %&apos;vector&apos;" type="reporter" category="3D Vectors"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><block s="reportListItem"><l>z</l><block var="vector"/></block></block></script></block-definition><block-definition s="vec3 %&apos;vector&apos; as list" type="reporter" category="3D Vectors"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>rank</option></l><block var="vector"/></block><l>2</l></list></block><block s="reportListItem"><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block><block var="vector"/></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="vec3 %adt as list"><l/></custom-block></autolambda><list></list></block><block var="vector"/></block></block></block></script></block-definition><block-definition s="vec3 %&apos;equ&apos;" type="reporter" category="3D Vectors" reports="vec3" space="true"><header></header><code></code><translations></translations><inputs><input type="%mult%adt" separator="+" collapse="sum" initial="2">vec3</input></inputs><script><block s="doReport"><custom-block s="list %l as vec2"><block s="reportVariadicSum"><custom-block s="vec3 %adt as list"><block var="equ"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="vec3 %&apos;vec3a&apos; − %&apos;vec3b&apos;" type="reporter" category="3D Vectors" reports="vec3"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="reportDifference"><custom-block s="x of vec3 %adt"><block var="vec3a"/></custom-block><custom-block s="x of vec3 %adt"><block var="vec3b"/></custom-block></block><block s="reportDifference"><custom-block s="y of vec3 %adt"><block var="vec3a"/></custom-block><custom-block s="y of vec3 %adt"><block var="vec3b"/></custom-block></block><block s="reportDifference"><custom-block s="z of vec3 %adt"><block var="vec3a"/></custom-block><custom-block s="z of vec3 %adt"><block var="vec3b"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="vec3 scalar %&apos;vec3&apos; × %&apos;scalar&apos;" type="reporter" category="3D Vectors" reports="vec3"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input><input type="%n" initial="1">1</input></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="reportVariadicProduct"><list><custom-block s="x of vec3 %adt"><block var="vec3"/></custom-block><block var="scalar"/></list></block><block s="reportVariadicProduct"><list><custom-block s="y of vec3 %adt"><block var="vec3"/></custom-block><block var="scalar"/></list></block><block s="reportVariadicProduct"><list><custom-block s="z of vec3 %adt"><block var="vec3"/></custom-block><block var="scalar"/></list></block></custom-block></block></script></block-definition><block-definition s="vec3 dot %&apos;vec3a&apos; × %&apos;vec3b&apos;" type="reporter" category="3D Vectors" space="true"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><block s="reportVariadicSum"><block s="reportVariadicProduct"><list><custom-block s="vec3 %adt as list"><block var="vec3a"/></custom-block><custom-block s="vec3 %adt as list"><block var="vec3b"/></custom-block></list></block></block></block></script></block-definition><block-definition s="go to vector %&apos;vec2&apos;" type="command" category="motion" space="true"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec2</input></inputs><script><block s="doGotoObject"><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block></block></script></block-definition><block-definition s="point towards vector %&apos;vec2&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec2</input></inputs><script><block s="doFaceTowards"><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block></block></script></block-definition><block-definition s="glide %&apos;secs&apos; secs to vector %&apos;vec2&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%adt" initial="1">vec2</input></inputs><script><block s="doGlide"><block var="secs"/><custom-block s="x of vec3 %adt"><block var="vec2"/></custom-block><custom-block s="y of vec3 %adt"><block var="vec2"/></custom-block></block></script></block-definition><block-definition s="position vector" type="reporter" category="motion" reports="vec2"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="xPosition"></block><block s="yPosition"></block><l></l></custom-block></block></script></block-definition><block-definition s="stretch %&apos;cst&apos; to vector %&apos;vec2&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_current<options>§_costumesMenu</options></input><input type="%adt" initial="1">vec2</input></inputs><script><block s="doReport"><block s="reportNewCostumeStretched"><block var="cst"/><custom-block s="x of vec3 %adt"><block var="vec2"/></custom-block><custom-block s="y of vec3 %adt"><block var="vec2"/></custom-block></block></block></script></block-definition><block-definition s="skew %&apos;cst&apos; to vector %&apos;vec2&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_current<options>§_costumesMenu</options></input><input type="%adt" initial="1">vec2</input></inputs><script><block s="doReport"><block s="reportNewCostumeSkewed"><block var="cst"/><custom-block s="%s of vec2 %adt"><l>angle</l><block var="vec2"/></custom-block><custom-block s="%s of vec2 %adt"><l>radius</l><block var="vec2"/></custom-block></block></block></script></block-definition><block-definition s="dimensions of costume %&apos;cst&apos;" type="reporter" category="looks" reports="vec2"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_current<options>§_costumesMenu</options></input></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><l></l></custom-block></block></script></block-definition><block-definition s="mouse position vector" type="reporter" category="sensing" reports="vec2"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="reportMouseX"></block><block s="reportMouseY"></block><l></l></custom-block></block></script></block-definition><block-definition s="reset" type="command" category="3D Beetle"><header></header><code></code><translations>ca:reinicia&#xD;zh_CN:重置&#xD;</translations><inputs></inputs><script><custom-block s="stop extruding"></custom-block><custom-block s="go home"></custom-block><custom-block s="clear scene"></custom-block><custom-block s="set shape offset to %l"><block s="reportNewList"><list><l>0</l><l>0</l></list></block></custom-block><custom-block s="set %s scale to %n"><l>shape</l><l>1</l></custom-block><custom-block s="set %s scale to %n"><l>movement</l><l>1</l></custom-block><block s="doIf"><block s="reportListContainsItem"><block s="reportApplyExtension"><l>var_names(scope)</l><list><l>global</l></list></block><l>bb_stack</l></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>bb_stack</l><block s="reportNewList"><list></list></block></list></block></script><list></list></block></script></block-definition><block-definition s="go home" type="command" category="3D Beetle"><header></header><code></code><translations>ca:torna a casa&#xD;zh_CN:移到中心&#xD;</translations><inputs></inputs><script><custom-block s="go to %l"><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></custom-block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block></script></block-definition><block-definition s="extension ready" type="predicate" category="3D Beetle" helper="true"><header></header><code></code><translations>zh_CN:已加载扩展？&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportApplyExtension"><l>snap_extensionexists(prim)</l><list><l>bb_ready()</l></list></block><block s="reportApplyExtension"><l>bb_ready()</l><list></list></block></list></block></block></script></block-definition><block-definition s="move %&apos;n&apos; steps" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:mou-te _ passos&#xD;zh_CN:移动 _ 步&#xD;</translations><inputs><input type="%n">1</input></inputs><script><custom-block s="change relative %s by %n"><l>z</l><block var="n"/></custom-block></script></block-definition><block-definition s="clear scene" type="command" category="3D Beetle" helper="true"><header></header><code></code><translations>zh_CN:清除画笔轨迹&#xD;</translations><inputs></inputs><script><block s="doApplyExtension"><l>bb_clear()</l><list></list></block></script></block-definition><block-definition s="go to %&apos;position&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:vés a _&#xD;zh_CN:移到 _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="position"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>position</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></block></script><list></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><block var="position"/></block></script></block-definition><block-definition s="set %&apos;which&apos; position to %&apos;what&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:fixa la coordenada _ a _&#xD;zh_CN:把 _ 坐标设定为 _&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">3</input></inputs><script><block s="doDeclareVariables"><list><l>mask</l></list></block><block s="doSetVar"><l>mask</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block></block><custom-block s="go to %l"><block s="reportVariadicSum"><list><block s="reportDifference"><custom-block s="%s position"><l></l></custom-block><block s="reportVariadicProduct"><list><block var="mask"/><custom-block s="%s position"><l></l></custom-block></list></block></block><block s="reportVariadicProduct"><list><block var="mask"/><block s="reportNewList"><list><block var="what"/><block var="what"/><block var="what"/></list></block></list></block></list></block></custom-block></script></block-definition><block-definition s="change absolute %&apos;which&apos; by %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:augmenta la coordenada _ en _&#xD;zh_CN:将 _ 相对增加 _&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">2</input></inputs><script><custom-block s="go to %l"><block s="reportVariadicSum"><list><custom-block s="%s position"><l></l></custom-block><block s="reportVariadicProduct"><list><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block><block s="reportNewList"><list><block var="n"/><block var="n"/><block var="n"/></list></block></list></block></list></block></custom-block></script></block-definition><block-definition s="change relative %&apos;which&apos; by %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:mou-te en la _ pròpia _ passos&#xD;zh_CN:将 _ 绝对增加 _&#xD;</translations><inputs><input type="%s" readonly="true">y<options>x&#xD;y&#xD;z</options></input><input type="%n">2</input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><block var="which"/><block var="n"/></list></block></script></block-definition><block-definition s="%&apos;which&apos; position" type="reporter" category="3D Beetle"><header></header><code></code><translations>ca:posició _&#xD;zh_CN:_ 坐标&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l></l></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>bb_position()</l><list></list></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="which"/><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block><block s="reportApplyExtension"><l>bb_position()</l><list></list></block></block></block></script></block></script></block-definition><block-definition s="rotate %&apos;which&apos; by %&apos;what&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:gira sobre _ propi en _ graus&#xD;zh_CN:绕 _ 轴旋转 _ 度&#xD;</translations><inputs><input type="%s" readonly="true">z<options>x&#xD;y&#xD;z</options></input><input type="%n">15</input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doDeclareVariables"><list><l>empty</l></list></block><block s="doSetVar"><l>empty</l><l></l></block><block s="doApplyExtension"><l>bb_rotate(x, y, z)</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block><block var="what"/><block var="empty"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block></block></script></block-definition><block-definition s="set %&apos;which&apos; rotation to %&apos;what&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:fixa l&apos;angle _ propi a _&#xD;zh_CN:设置 _ 轴的度数为 _&#xD;</translations><inputs><input type="%s" readonly="true">z<options>x&#xD;y&#xD;z</options></input><input type="%n">45</input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doDeclareVariables"><list><l>empty</l></list></block><block s="doSetVar"><l>empty</l><l></l></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block><block var="what"/><block var="empty"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block></block></script></block-definition><block-definition s="point to %&apos;point&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:apunta cap a _&#xD;zh_CN:面向 _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="point"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>point</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></block></script><list></list></block><block s="doApplyExtension"><l>bb_pointto(x, y, z)</l><block var="point"/></block></script></block-definition><block-definition s="%&apos;which&apos; rotation" type="reporter" category="3D Beetle"><header></header><code></code><translations>ca:angle _&#xD;zh_CN:_ 轴旋转角度&#xD;</translations><inputs><input type="%s" readonly="true">z<options>x&#xD;y&#xD;z</options></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l></l></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>bb_rotation()</l><list></list></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="which"/><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block><block s="reportApplyExtension"><l>bb_rotation()</l><list></list></block></block></block></script></block></script></block-definition><block-definition s="start extruding %&apos;base&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:comença a extrudir amb _ de base&#xD;zh_CN:在甲虫周围拉伸 _&#xD;</translations><inputs><input type="%s" readonly="true">$_circle<options>circle=$_circle&#xD;triangle=$_triangle&#xD;square=$_square&#xD;semicircle=$_semicircle&#xD;line=$_line&#xD;point=$_point&#xD;sprite positions=$_sprite positions</options></input></inputs><script><custom-block s="stop extruding"></custom-block><block s="doIfElse"><block s="reportIsA"><block var="base"/><l><option>list</option></l></block><script><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><block var="base"/></list></block></script><script><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="base"/></list></block></list></block></script></block><block s="doApplyExtension"><l>bb_startextruding()</l><list></list></block></script></block-definition><block-definition s="stop extruding" type="command" category="3D Beetle"><header></header><code></code><translations>ca:deixa d&apos;extrudir&#xD;zh_CN:清除拉伸图形&#xD;</translations><inputs></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doApplyExtension"><l>bb_stopextruding()</l><list></list></block></script></block-definition><block-definition s="log sprite positions in %&apos;script&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:enregistra les posicions de la tortuga _&#xD;zh_CN:导入画笔轨迹于 _&#xD;</translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doApplyExtension"><l>bb_logspritepositions(bool, currentPos)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="getPosition"></block></list></block><block s="doRun"><block var="script"/><list></list></block><block s="doApplyExtension"><l>bb_logspritepositions(bool, currentPos)</l><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></script></block-definition><block-definition s="stack" type="reporter" category="3D Beetle" helper="true"><header></header><code></code><translations>zh_CN:坐标栈&#xD;</translations><inputs></inputs><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportApplyExtension"><l>var_names(scope)</l><list><l>global</l></list></block><l>bb_stack</l></block></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>bb_stack</l></list></block><block s="doApplyExtension"><l>var_hide(name)</l><list><l>bb_stack</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>bb_stack</l><block s="reportNewList"><list></list></block></list></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><l>bb_stack</l></list></block></block></script></block-definition><block-definition s="shape points" type="reporter" category="3D Beetle" space="true"><header></header><code></code><translations>ca:punts de la base&#xD;zh_CN:拉伸图形控制点&#xD;</translations><inputs></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doReport"><block s="reportApplyExtension"><l>bb_extrusionbasepoints()</l><list></list></block></block></script></block-definition><block-definition s="set shape offset to %&apos;offset&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:fixa el desplaçament de la base a _&#xD;zh_CN:设置拉伸图形偏移量为 _&#xD;</translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doApplyExtension"><l>bb_setoffset(offset)</l><list><block var="offset"/></list></block></script></block-definition><block-definition s="set %&apos;which&apos; scale to %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:fixa l&apos;escala de _ a _&#xD;zh_CN:设置 _ 比例为 _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_shape<options>shape=$_shape&#xD;movement=$_movement</options></input><input type="%n">1</input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doApplyExtension"><l>bb_setscale(scale, which)</l><list><block var="n"/><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="which"/></list></block></list></block></script></block-definition><block-definition s="change %&apos;which&apos; scale by %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:augmenta l&apos;escala de _ en _&#xD;zh_CN:把 _ 比例增加 _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_shape<options>shape=$_shape&#xD;movement=$_movement</options></input><input type="%n">0.5</input></inputs><script><custom-block s="set %s scale to %n"><block var="which"/><block s="reportVariadicSum"><list><custom-block s="%s scale"><block var="which"/></custom-block><block var="n"/></list></block></custom-block></script></block-definition><block-definition s="%&apos;which&apos; scale" type="reporter" category="3D Beetle"><header></header><code></code><translations>ca:escala de _&#xD;zh_CN:_ 比例&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_shape<options>shape=$_shape&#xD;movement=$_movement</options></input></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doReport"><block s="reportApplyExtension"><l>bb_scale(which)</l><list><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="which"/></list></block></list></block></block></script></block-definition><block-definition s="push position" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:enregistra posició actual&#xD;zh_CN:存储当前坐标&#xD;</translations><inputs></inputs><script><block s="doAddToList"><block s="reportNewList"><list><custom-block s="%s position"><l></l></custom-block><custom-block s="%s rotation"><l></l></custom-block></list></block><custom-block s="stack"></custom-block></block></script></block-definition><block-definition s="pop position" type="command" category="3D Beetle"><header></header><code></code><translations>ca:torna a la posició enregistrada&#xD;zh_CN:撤销坐标&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><custom-block s="stack"></custom-block></block></block><script><block s="doDeclareVariables"><list><l>record</l></list></block><block s="doSetVar"><l>record</l><block s="reportListItem"><l><option>last</option></l><custom-block s="stack"></custom-block></block></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><block s="reportListItem"><l>1</l><block var="record"/></block></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><block s="reportListItem"><l>2</l><block var="record"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><custom-block s="stack"></custom-block></block></script><list></list></block></script></block></script></block-definition><block-definition s="init module" type="command" category="3D Beetle" helper="true"><header></header><code></code><translations>zh_CN:导入扩展函数(扩展)&#xD;</translations><inputs></inputs><script><block s="doSetVar"><l>__module__beetle__</l><l>libraries/beetle/init.js</l></block></script><scripts><script x="59.504132231404924" y="111.42809917355368"><block s="doSetVar"><l>__module__beetle__</l><l>libraries/beetle/init.js</l></block></script></scripts></block-definition><block-definition s="beetle view" type="reporter" category="3D Beetle" space="true"><header></header><code></code><translations>ca:vista de l&apos;escarbat&#xD;zh_CN:甲虫视图&#xD;</translations><inputs></inputs><script><block s="doWaitUntil"><custom-block s="extension ready"></custom-block></block><block s="doReport"><block s="reportApplyExtension"><l>bb_beetleView()</l><list></list></block></block></script></block-definition><block-definition s="vec3 cross %&apos;vec3a&apos; × %&apos;vec3b&apos;" type="reporter" category="3D Vectors" reports="vec3"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec3</input><input type="%adt" initial="1">vec3</input></inputs><script><block s="doReport"><custom-block s="vector x: %n y: %n z: %n"><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>y</l><block var="vec3a"/></block><block s="reportListItem"><l>z</l><block var="vec3b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>z</l><block var="vec3a"/></block><block s="reportListItem"><l>y</l><block var="vec3b"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>z</l><block var="vec3a"/></block><block s="reportListItem"><l>x</l><block var="vec3b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>x</l><block var="vec3a"/></block><block s="reportListItem"><l>z</l><block var="vec3b"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>x</l><block var="vec3a"/></block><block s="reportListItem"><l>y</l><block var="vec3b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>y</l><block var="vec3a"/></block><block s="reportListItem"><l>x</l><block var="vec3b"/></block></list></block></block></custom-block></block></script></block-definition><block-definition s="%&apos;func&apos; of vec2 %&apos;vec2&apos;" type="reporter" category="3D Vectors" space="true"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">radius<options>radius&#xD;pitch&#xD;yaw&#xD;normal&#xD;abs&#xD;&#126;&#xD;round&#xD;ceiling&#xD;floor</options></input><input type="%adt" initial="1">vec2</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>radius</l></list></block><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><block s="reportPower"><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block><l>2</l></block></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>pitch</l></list></block><block s="reportModulus"><block s="reportAtan2"><custom-block s="x of vec3 %adt"><block var="vec2"/></custom-block><custom-block s="z of vec3 %adt"><block var="vec2"/></custom-block></block><l>360</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>yaw</l></list></block><block s="reportModulus"><block s="reportAtan2"><custom-block s="y of vec3 %adt"><block var="vec2"/></custom-block><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><custom-block s="x of vec3 %adt"><block var="vec2"/></custom-block><l>2</l></block><block s="reportPower"><custom-block s="z of vec3 %adt"><block var="vec2"/></custom-block><l>2</l></block></list></block></block></block><l>360</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>normal</l></list></block><custom-block s="sphere r: %n φ: %n θ: %n"><l>1</l><custom-block s="%s of vec2 %adt"><l>pitch</l><block var="vec2"/></custom-block><custom-block s="%s of vec2 %adt"><l>yaw</l><block var="vec2"/></custom-block></custom-block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>abs</l></list></block><custom-block s="list %l as vec2"><block s="reportMonadic"><l><option>abs</option></l><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block></block></custom-block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>round</l></list></block><custom-block s="list %l as vec2"><block s="reportRound"><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block></block></custom-block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>ceiling</l></list></block><custom-block s="list %l as vec2"><block s="reportMonadic"><l><option>ceiling</option></l><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block></block></custom-block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="func"/><l>floor</l></list></block><custom-block s="list %l as vec2"><block s="reportMonadic"><l><option>floor</option></l><custom-block s="vec3 %adt as list"><block var="vec2"/></custom-block></block></custom-block><l></l></block></block></block></block></block></block></block></block></block></script></block-definition><block-definition s="rotate vec2 %&apos;vec2&apos; by %&apos;degrees&apos;" type="reporter" category="3D Vectors"><header></header><code></code><translations></translations><inputs><input type="%adt" initial="1">vec2</input><input type="%n" initial="1">90<options>§_directionDialMenu</options></input></inputs><script><block s="doReport"><custom-block s="sphere r: %n φ: %n θ: %n"><custom-block s="%s of vec2 %adt"><l>radius</l><block var="vec2"/></custom-block><block s="reportVariadicSum"><list><custom-block s="%s of vec2 %adt"><l>angle</l><block var="vec2"/></custom-block><block var="degrees"/></list></block><l></l></custom-block></block></script></block-definition><block-definition s="list %&apos;lst&apos; as vec2" type="reporter" category="3D Vectors" reports="vec2"><header></header><code></code><translations></translations><inputs><input type="%l" readonly="true" initial="1">$_mouse-pointer<options>random position=$_random position&#xD;mouse-pointer=$_mouse-pointer&#xD;center=$_center&#xD;&#126;&#xD;§_objectsMenuWithSelf</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="lst"/><l><option>list</option></l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>rank</option></l><block var="lst"/></block><l>1</l></list></block><custom-block s="vector x: %n y: %n z: %n"><block s="reportListItem"><l>1</l><block var="lst"/></block><block s="reportListItem"><l>2</l><block var="lst"/></block><l></l></custom-block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="list %l as vec2"><l/></custom-block></autolambda><list></list></block><block var="lst"/></block></block><custom-block s="vector x: %n y: %n z: %n"><l>0</l><l>0</l><l></l></custom-block></block></block></script></block-definition></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="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="2778"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2779"></list></costumes><sounds><list struct="atomic" id="2780"></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="41,41,41,1" pen="tip" id="2785"><costumes><list struct="atomic" id="2786"></list></costumes><sounds><list struct="atomic" id="2787"></list></sounds><blocks></blocks><variables></variables><scripts><script x="729.74150390625" y="168.9999999999999"><block s="reportJoinWords"><list><block s="reportColor"><color>107,171,255,1</color></block></list></block></script><script x="390.74150390625005" y="105.16666666666663"><custom-block s="go home"></custom-block></script><script x="152.74150390625005" y="10"><custom-block s="set %s position to %n"><l>x</l><l>3</l></custom-block></script><script x="316.74150390625005" y="556.6666666666664"><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="setColor"><color>223,32,32,1</color></block></script><list></list></block><l>rgba(0,255,0,1)</l></list></block></script><script x="343.74150390625005" y="727.4166666666665"><custom-block s="beetle view"></custom-block></script><script x="103.74150390625005" y="290.9166666666666"><block s="reportNewList"><list><l></l></list></block></script><script x="217.74150390625005" y="198.7499999999999"><block s="doSetVar"><l>vec</l><l>0</l></block></script><script x="180.74150390625005" y="353.08333333333326"><custom-block s="sphere r: %n φ: %n θ: %n"><l>0</l><l>90</l><l>90</l></custom-block></script><script x="25.741503906250045" y="485.2499999999999"><block s="reportAtan2"><l>1</l><l>0</l></block></script><script x="44.741503906250045" y="527.2499999999999"><block s="reportAtan2"><l>1</l><l></l></block></script><script x="166.03642578125005" y="651.0833333333333"><custom-block s="vector x: %n y: %n z: %n"><l>-1</l><l>0</l><l>-1</l></custom-block></script><script x="65.74150390625005" y="631.0833333333333"><custom-block s="vec3 %adt as list"><l/></custom-block></script><script x="78.74150390625005" y="795.2499999999999"><block s="reportMonadic"><l><option>acos</option></l><l>10</l></block></script><script x="10" y="714.3833333333331"><custom-block s="y of vec3 %adt"><l/></custom-block></script></scripts></sprite><watcher var="vec" style="normal" x="10" y="10" color="243,118,29" extX="128.5615234375" extY="103"/></sprites></stage><variables><variable name="__module__beetle__" hidden="true"><l>libraries/beetle/init.js</l></variable><variable name="vec"><list id="2844"><item><list struct="atomic" id="2845">_type,vec3</list></item><item><list struct="atomic" id="2846">x,0</list></item><item><list struct="atomic" id="2847">y,0</list></item><item><list struct="atomic" id="2848">z,0</list></item><item><list id="2849"><item><l>_morph</l></item><item><context id="2850"><inputs></inputs><variables></variables><script><block s="doDeclareVariables"><list><l>js</l><l>txt</l></list></block><block s="doSetVar"><l>txt</l><block s="reportNewList"><list><block s="reportJoinWords"><list><l>𝙓: </l><block s="reportListItem"><l>x</l><block s="reportEnvironment"><l><option>object</option></l></block></block></list></block><block s="reportJoinWords"><list><l>𝙔: </l><block s="reportListItem"><l>y</l><block s="reportEnvironment"><l><option>object</option></l></block></block></list></block><block s="reportJoinWords"><list><l>𝙕: </l><block s="reportListItem"><l>z</l><block s="reportEnvironment"><l><option>object</option></l></block></block></list></block></list></block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportApplyExtension"><l>snap_extensionexists(prim)</l><list><l>bb_ready()</l></list></block><block s="reportApplyExtension"><l>bb_ready()</l><list></list></block></list></block><script><block s="doSetVar"><l>js</l><block s="evaluate"><block s="reportJSFunction"><list><l>xtxt</l><l>ytxt</l><l>ztxt</l><l>morph</l></list><l>let xdata=new TextMorph(xtxt,12)&#xD;xdata.color=new Color(150)&#xD;morph.add(xdata)&#xD;let ydata=new TextMorph(ytxt,12)&#xD;ydata.color=new Color(0,150)&#xD;morph.add(ydata)&#xD;ydata.bounds.origin.y+=12&#xD;ydata.bounds.corner.y+=12&#xD;let zdata=new TextMorph(ztxt,12)&#xD;zdata.color=new Color(0,0,150)&#xD;morph.add(zdata)&#xD;zdata.bounds.origin.y+=24&#xD;zdata.bounds.corner.y+=24&#xD;return morph</l></block><list><block s="reportListItem"><l>1</l><block var="txt"/></block><block s="reportListItem"><l>2</l><block var="txt"/></block><block s="reportListItem"><l>3</l><block var="txt"/></block><block s="evaluate"><block s="reifyScript"><script><block s="doApplyExtension"><l>bb_clear()</l><list></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>90</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><l>circle</l></list></block><block s="doApplyExtension"><l>bb_setscale(scale, which)</l><list><l>.05</l><l>shape</l></list></block><block s="doApplyExtension"><l>bb_startextruding()</l><list></list></block><block s="setColor"><color>255,0,0,1</color></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>90</l><l>0</l><l>0</l></list></block><block s="setColor"><color>0,255,0,1</color></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="setColor"><color>0,0,255,1</color></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>45</l><l>0</l></list></block><block s="setColor"><color>41,41,41,1</color></block><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><l>circle</l></list></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>1</l></list></block><block s="doApplyExtension"><l>bb_stopextruding()</l><list></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>340</l><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="getTimer"></block><l>4</l></block><l>90</l></list></block><l>0</l></list></block><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><l>z</l><l>-6</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>cst_morph(cst)</l><list><block s="reportApplyExtension"><l>bb_beetleView()</l><list></list></block></list></block></block></script><list></list></block><list></list></block></list></block></block></script><script></script></block><block s="doReport"><block var="js"/></block></script><receiver><ref id="2785"></ref></receiver><origin><ref id="2785"></ref></origin><context id="3111"><inputs></inputs><variables><variable name="x"><l>0</l></variable><variable name="y"><l>0</l></variable><variable name="z"><l>0</l></variable></variables><receiver><ref id="2785"></ref></receiver><origin></origin></context></context></item></list></item></list></variable></variables></scene></scenes></project><media name="Untitled" app="Snap! 12.0.6, https://snap.berkeley.edu" version="2"></media></snapdata>