<snapdata remixID="13796024"><project name="Lab10 Starter v2" app="Snap! 10, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAArtJREFUeF7t1zFqomEYRtEvlaVbcDcuIGUwnZVgndq1uJDU7sTeoIjiEIuBYUhKL8ixFh7++x788eV2u92GjwJRgRcAo/Jm7wUABCEtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYA8If82+12fH19jfl8PmazWXqkZx4H8Ifrnk6nsVwux+FwGPv9fry/v4/r9TpWq9Uze3j4swH4S/Ldbjc+Pj7GdDr951vH4/EOcjKZjNfX14cf7ZkGAfzlmp+fn2Oz2fwH8Hw+j8Vicf9FfHt7eyYPD38WAH95BX8ju1wuf1/B3/DW6/XDj/TMgwD6E5L6BjDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zG/wDWjh23ucecRwAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Lab10 Starter v2"><notes></notes><palette><category name="Lab 10: Recursive Reporters" color="0,116,143,1"/><category name="Autograder" color="9,0,179,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="numbers %&apos;input&apos;" type="reporter" category="Lab 10: Recursive Reporters"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="ends-e %&apos;input&apos;" type="reporter" category="Lab 10: Recursive Reporters"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="all of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="248" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE only if all of the inputs are TRUE, otherwise FALSE.  Like AND but for multiple inputs.</comment><header></header><code></code><translations>pt:todas as afirmações _ são verdadeiras&#xD;ca:tots _ ?&#xD;</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicAnd"><list><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="all of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></list></block></block></script></block-definition><block-definition s="run autograder" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>student</l></list></block><block s="doSetVar"><l>student</l><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="numbers %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="ends-e %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><custom-block s="subset sum %s %s"><l></l><l></l></custom-block></autolambda><list></list></block></list></block></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block s="reportNewList"><list><custom-block s="Test: numbers %s"><block s="reportListItem"><l>1</l><block var="student"/></block></custom-block><custom-block s="Test: ends-e %s"><block s="reportListItem"><l>2</l><block var="student"/></block></custom-block><custom-block s="Test: subset sum %s"><block s="reportListItem"><l>3</l><block var="student"/></block></custom-block></list></block></block></block></script></block-definition><block-definition s="%&apos;f&apos; equals %&apos;solution&apos; on %&apos;inputs&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>return output</l><l>return input</l><l>return solution</l></list></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="inputs"/></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block><l><option>list</option></l></block><block s="reportVariadicNotEquals"><list><block s="evaluate"><block var="f"/><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block></list></block><block s="reportListItem"><block var="i"/><block var="solution"/></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportJoinWords"><list><l>Test failed. | Input(s): </l><custom-block s="format inputs/outputs %s"><block s="reportListItem"><block var="i"/><block var="inputs"/></block></custom-block><l> | Expected: </l><custom-block s="format inputs/outputs %s"><block s="reportListItem"><block var="i"/><block var="solution"/></block></custom-block><l> | </l><l>Actual: </l><custom-block s="format inputs/outputs %s"><block s="evaluate"><block var="f"/><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block></list></block></custom-block><l> | Expected Data Type: </l><custom-block s="data type of %s"><block s="reportListItem"><block var="i"/><block var="solution"/></block></custom-block><l> | Actual Data Type: </l><custom-block s="data type of %s"><block s="evaluate"><block var="f"/><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block></list></block></custom-block></list></block></list></block></block></script><list><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="inputs"/></block></block><l><option>list</option></l></block></block><block s="reportVariadicNotEquals"><list><block s="evaluate"><block var="f"/><list><block s="reportListItem"><block var="i"/><block var="inputs"/></block></list></block><block s="reportListItem"><block var="i"/><block var="solution"/></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportJoinWords"><list><l>Test failed. | Input(s): </l><custom-block s="format inputs/outputs %s"><block s="reportListItem"><block var="i"/><block var="inputs"/></block></custom-block><l> | Expected: </l><custom-block s="format inputs/outputs %s"><block s="reportListItem"><block var="i"/><block var="solution"/></block></custom-block><l> | </l><l>Actual: </l><custom-block s="format inputs/outputs %s"><block s="evaluate"><block var="f"/><list><block s="reportListItem"><block var="i"/><block var="inputs"/></block></list></block></custom-block><l> | Expected Data Type: </l><custom-block s="data type of %s"><block s="reportListItem"><block var="i"/><block var="solution"/></block></custom-block><l> | Actual Data Type: </l><custom-block s="data type of %s"><block s="evaluate"><block var="f"/><list><block s="reportListItem"><block var="i"/><block var="inputs"/></block></list></block></custom-block></list></block></list></block></block></script></list></block></script></block><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block><l>Test passed!</l></list></block></block></script></block-definition><block-definition s="format inputs/outputs %&apos;input&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="input"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></list></block><script><block s="doReport"><block s="reportJoinWords"><list><l>[</l><block var="input"/><l>]</l></list></block></block></script><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><l>[</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block><script><block s="doSetVar"><l>output</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></list></block><block s="reportJoinWords"><list><block var="output"/><l>, </l><block s="reportListItem"><block var="i"/><block var="input"/></block><l>]</l></list></block><block s="reportJoinWords"><list><block var="output"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="i"/><l>1</l></list></block><l></l><l>, </l></block><block s="reportListItem"><block var="i"/><block var="input"/></block></list></block></block></block></script></block><block s="doReport"><block var="output"/></block></script></block></script><list></list></block><block s="doReport"><block var="input"/></block></script></block-definition><block-definition s="data type of %&apos;input&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>number</option></l></block><script><block s="doReport"><l>Number</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>text</option></l></block><script><block s="doReport"><l>Text</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>list</option></l></block><script><block s="doReport"><l>List</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>predicate</option></l></block><script><block s="doReport"><l>Predicate</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="input"/><l><option>reporter</option></l></block><script><block s="doReport"><l>Reporter Function</l></block></script><script><block s="doReport"><l>Error!</l></block></script></block></script></block></script></block></script></block></script></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="Test: numbers %&apos;block&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>all data</l><l>test inputs</l><l>solutions</l><l>run tests</l></list></block><block s="doSetVar"><l>all data</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block s="reportNewList"><list><l>sd</l><l>Sdf</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>123</l></list></block><block s="reportNewList"><list><l>1</l><l>Beauty</l><l>123</l><l>Joy</l><l>Computing</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>32</l></list></block><block s="reportNewList"><list><l>Beauty</l><l>Joy</l><l>Computing</l><l>32</l></list></block></list></block></list></block></block><block s="doSetVar"><l>test inputs</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="all data"/></block></block><block s="doSetVar"><l>solutions</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="all data"/></block></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>run tests</l><custom-block s="%repRing equals %s on %l"><block var="block"/><block var="solutions"/><block var="test inputs"/></custom-block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportListItem"><l>1</l><block var="run tests"/></block><custom-block s="constraints satisfied: recursive %s"><block var="block"/></custom-block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block><l>Test passed!</l></list></block></block></script><script><block s="doIfElse"><custom-block s="constraints satisfied: recursive %s"><block var="block"/></custom-block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportListItem"><l>2</l><block var="run tests"/></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><l>Forbidden block used. Solution must only have recursion.</l></list></block></block></script></block></script></block></script><l>error</l><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block var="error"/></list></block></block></script></custom-block></script></block-definition><block-definition s="Test: ends-e %&apos;block&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>all data</l><l>test inputs</l><l>solutions</l><l>run tests</l></list></block><block s="doSetVar"><l>all data</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block s="reportNewList"><list><l>sd</l><l>Sdf</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>e</l></list></block><block s="reportNewList"><list><l>e</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>the</l><l>Europe</l></list></block><block s="reportNewList"><list><l>the</l><l>rain</l><l>in</l><l>Spain</l><l>is</l><l>in</l><l>Europe</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>Spike</l></list></block><block s="reportNewList"><list><l>Beauty</l><l>Joy</l><l>Computing</l><l>Spike</l></list></block></list></block></list></block></block><block s="doSetVar"><l>test inputs</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="all data"/></block></block><block s="doSetVar"><l>solutions</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="all data"/></block></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>run tests</l><custom-block s="%repRing equals %s on %l"><block var="block"/><block var="solutions"/><block var="test inputs"/></custom-block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportListItem"><l>1</l><block var="run tests"/></block><custom-block s="constraints satisfied: recursive %s"><block var="block"/></custom-block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block><l>Test passed!</l></list></block></block></script><script><block s="doIfElse"><custom-block s="constraints satisfied: recursive %s"><block var="block"/></custom-block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportListItem"><l>2</l><block var="run tests"/></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><l>Forbidden block used. Solution must only have recursion.</l></list></block></block></script></block></script></block></script><l>error</l><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block var="error"/></list></block></block></script></custom-block></script></block-definition><block-definition s="constraints satisfied: recursive %&apos;student&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>ast</l><l>forbidden blocks</l></list></block><block s="doSetVar"><l>ast</l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="student"/></block><l><option>blocks</option></l></block></block><block s="doReport"><block s="reportVariadicGreaterThan"><list><custom-block s="count occurrences of %repRing in %l"><block var="student"/><block var="ast"/></custom-block><l>0</l></list></block></block></script></block-definition><block-definition s="count occurrences of %&apos;block&apos; in %&apos;ast&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><block var="value"/><l><option>list</option></l></block><custom-block s="count occurrences of %repRing in %l"><block var="block"/><block var="value"/></custom-block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="block"/><block var="value"/></list></block><l>1</l><l>0</l></block></block></autolambda><list><l>value</l></list></block><block var="ast"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="subset sum %&apos;lst&apos; %&apos;target&apos;" type="predicate" category="Lab 10: Recursive Reporters"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="Test: subset sum %&apos;block&apos;" type="reporter" category="Autograder"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>all data</l><l>test inputs</l><l>solutions</l><l>run tests</l></list></block><block s="doSetVar"><l>all data</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportNewList"><list><block s="reportNewList"><list><l>2</l><l>4</l><l>6</l><l>8</l></list></block><l>10</l></list></block></list></block><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>9</l><l>2</l></list></block><l>5</l></list></block></list></block><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>5</l></list></block><l>10</l></list></block></list></block><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportNewList"><list><block s="reportNewList"><list></list></block><l>5</l></list></block></list></block></list></block></block><block s="doSetVar"><l>test inputs</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="all data"/></block></block><block s="doSetVar"><l>solutions</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="all data"/></block></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>run tests</l><custom-block s="%repRing equals %s on %l"><block var="block"/><block var="solutions"/><block var="test inputs"/></custom-block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportListItem"><l>1</l><block var="run tests"/></block><custom-block s="constraints satisfied: recursive %s"><block var="block"/></custom-block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block><l>Test passed!</l></list></block></block></script><script><block s="doIfElse"><custom-block s="constraints satisfied: recursive %s"><block var="block"/></custom-block><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportListItem"><l>2</l><block var="run tests"/></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><l>Forbidden block used. Solution must only have recursion.</l></list></block></block></script></block></script></block></script><l>error</l><script><block s="doReport"><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block><block var="error"/></list></block></block></script></custom-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="1190"><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="1191"></list></costumes><sounds><list struct="atomic" id="1192"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="8.526512829121202e-14" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="1197"><costumes><list struct="atomic" id="1198"></list></costumes><sounds><list struct="atomic" id="1199"></list></sounds><blocks></blocks><variables><variable name="student"><list struct="atomic" id="1202"></list></variable></variables><scripts><script x="326" y="8.771929824561404"><block s="receiveInteraction"><l>clicked</l><comment w="191" collapsed="false">To check your score locally, run this script which has the same tests as the autograder on Gradescope.</comment></block><block s="doReport"><custom-block s="run autograder"></custom-block></block></script><script x="23" y="52.60526315789474"><custom-block s="numbers %s"><l></l><comment w="207" collapsed="false">FIX ME: Fill in the block so that it takes a list of mixed words and numbers as input, and reports a list of just the numbers from the input list. If the block is not recursive, it will not pass the tests.</comment></custom-block></script><script x="19.89473684210527" y="181.62280701754395"><custom-block s="ends-e %s"><l></l><comment w="222" collapsed="false">FIX ME: Fill in the block so that it takes a list of words as input, and reports a list of those words from the input whose last letter is e. If the block is not recursive, it will not pass the tests.</comment></custom-block></script><script x="11.140350877192974" y="306.69590643274853"><custom-block s="subset sum %s %s"><l></l><l></l><comment w="285.6140350877193" collapsed="false">Write a function subset_sum(lst, target) that takes a list lst of integers and a target integer. The function should return True if there exists a subset of lst that sums to exactly target, and False otherwise.</comment></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Lab10 Starter v2" app="Snap! 10, https://snap.berkeley.edu" version="2"></media></snapdata>