<snapdata remixID="9073239"><project name="XML generation" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes>This is a toolkit designed for use by advanced Alonzos (Snap! mascot btw)&#xD;&#xD;With it, you can create the XML for custom blocks with special types and other information which would&apos;nt normally be possible.&#xD;</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAC0UlEQVR4Xu3XMWoiYQCG4d9KbJI+jQcI6RKC1wiCtp7Fi3gFL5HCwgOFiEsCWXaXXbCQfYs8Uw98M+88MPyT8/l8Hi4FogITAKPyZj8LAAhCWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jcOIANpAQDT/MYBZCAtAGCa3ziADKQFAEzzGweQgbQAgGl+4wAykBYAMM1vHEAG0gIApvmNA8hAWgDANL9xABlICwCY5jd+FYCHw2G8vr6Om5ubsdlsxmQyUVaBiwpcBeDH0vF4HNvt9nP0/f19rNfrMZ1Ox3K5vOhB3PQ9C1wN4Ee+3W439vv9byXf3t7G3d3dWCwW4+npaTw8PHzP0t76rwX+C8D5fD4eHx/H8/PzuL+/9ykU+FngagB//QWfTqexWq3GbDYbLy8vcivwzwJXAfh1CLm9vf08hLgUuLTAVQBeOuY+Bf4sACATaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICPwBxWA63MHo7nQAAAABJRU5ErkJggg==</thumbnail><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" codify="true" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="-157" y="-87" heading="90" scale="1" volume="100" pan="0" rotation="1" instrument="6"  draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="wfgeg" center-x="127" center-y="63" image="data:image/png;base64,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" id="10"/></item></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables></variables><scripts><script x="21" y="10"><block s="receiveGo"></block><custom-block s="log %mult%mlt to console"><list><custom-block s="compile XML %l"><custom-block s="new custom block %br $- type: %mlt %br $- category: %mlt %br $- spec: %mult%txt"><l>command</l><l>control</l><list><l>testing</l></list></custom-block></custom-block></list><comment w="115" collapsed="false">This information will be available in the Developer Console</comment></custom-block></script><script x="23.000002999999992" y="248"><custom-block s="new custom block %br $- type: %mlt %br $- category: %mlt %br $- spec: %mult%txt"><l>reporter</l><l>lists</l><list><l>colors</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>colors</l><custom-block s="multiple %mlt"><custom-block s="type %mlt"><l>%clr</l></custom-block></custom-block><l></l><l></l><l><bool>false</bool></l></custom-block></list><comment w="90" collapsed="false">Example blockList of colors</comment></custom-block></script><script x="23.000002999999992" y="394"><custom-block s="new custom block %br $- type: %mlt %br $- category: %mlt %br $- spec: %mult%txt"><l>command</l><l>motion</l><list><l>point towards</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>destination</l><custom-block s="type %mlt"><l>%dst</l></custom-block><l>center</l><l></l><l><bool>true</bool></l></custom-block><l>with offset</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>offset</l><custom-block s="type %mlt"><l>%dir</l></custom-block><l>0</l><l></l><l><bool>false</bool></l></custom-block></list><comment w="90" collapsed="false">Example block&#xD;Point towards with offset</comment></custom-block></script><script x="567.000003" y="250"><custom-block s="new custom block %br $- type: %mlt %br $- category: %mlt %br $- spec: %mult%txt"><l>reporter</l><l>sound</l><list><l>note1</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>note1</l><custom-block s="type %mlt"><l>%note</l></custom-block><l>60</l><l></l><l><bool>false</bool></l></custom-block><l>$nl</l><l>note2</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>note2</l><custom-block s="type %mlt"><l>%n</l></custom-block><l>60</l><custom-block s="menu %mlt"><l>§_pianoKeyboardMenu</l></custom-block><l><bool>false</bool></l></custom-block></list><comment w="180" collapsed="false">Example block&#xD;Two ways of making note parameters</comment></custom-block></script><script x="24" y="545"><custom-block s="new custom block %br $- type: %mlt %br $- category: %mlt %br $- spec: %mult%txt"><l>command</l><l>sound</l><list><l>play</l><l>notes</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>notes</l><custom-block s="multiple %mlt"><custom-block s="type %mlt"><l>%note</l></custom-block></custom-block><l>60</l><l></l><l><bool>false</bool></l></custom-block><l>for</l><custom-block s="variable parameter %br $- name: %txt %br $- type: %mlt %br $- default: %mlt %br $- options: %mlt %br $- readonly: %b"><l>beats</l><custom-block s="type %mlt"><l>%n</l></custom-block><l>0.5</l><l></l><l><bool>false</bool></l></custom-block><l>beats</l></list><comment w="100" collapsed="false">Example block&#xD;Play multiple notes</comment></custom-block></script><script x="22.000002999999992" y="201"><custom-block s="block spec %cmdRing"><block s="reifyReporter"><script><block s="doFaceTowards"><l></l></block></script><list></list></block><comment w="234" collapsed="false">Getting what list this uses</comment></custom-block></script><comment x="515" y="47" w="202" collapsed="false">How do I open the Developer Console?&#xD;&#xD;Press one of these binds:&#xD;&#xD;Ctrl + Shift + I&#xD;F12&#xD;&#xD;or use the settings menu on firefox / chrome&#xD;&#xD;Copy the data from the console after running and save the result in an xml file to be able to import it into other projects</comment></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="block spec %&apos;block&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="139" collapsed="false">Returns the spec of a block</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>while (a.expression)    a = a.expression;return a.blockSpec</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="do %&apos;b&apos;" type="command" category="control"><comment x="0" y="0" w="134" collapsed="false">Executes a set of tasks</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doForEach"><l>item</l><block var="b"/><script><block s="doRun"><block var="item"/><list></list></block></script></block></script></block-definition><block-definition s="type %&apos;type&apos;" type="reporter" category="other"><comment w="214" collapsed="false">Menu for selecting parameter types</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">%s<options>Upvar=%upvar&#xD;Object=%obj&#xD;Number=%n&#xD;Command (inline)=%cmdRing&#xD;Command (C-shape)=%cs&#xD;Command (C-shape loop)=%ca&#xD;Text=%txt&#xD;Any type=%s&#xD;Reporter=%repRing&#xD;Any (unevaluated)=%anyUE&#xD;List=%l&#xD;Boolean (T/F)=%b&#xD;Predicate=%predRing&#xD;Boolean (unevaluated)=%boolUE&#xD;Special={&#xD;Multi-line=%mlt&#xD;Code=%code&#xD;}&#xD;Menu={&#xD;Messages=%msg&#xD;Objects=%spr&#xD;Costumes=%cst&#xD;Sounds=%snd&#xD;Variables=%var&#xD;Piano keyboard=%note&#xD;360° dial=%dir&#xD;}&#xD;Hidden={&#xD;Attribute=%att&#xD;Boolean=%bool&#xD;Clones=%cln&#xD;Color picker=%clr&#xD;Command=%cl&#xD;Command loop=%cla&#xD;Command (inside)=%cmd&#xD;Destination=%dst &#xD;Expansion=%exp&#xD;Get attribute=%get&#xD;Inheritables=%shd&#xD;Input name=%inputName&#xD;Image source=%imgsource&#xD;Location=%lo&#xD;Objects (includes self)=%self&#xD;Ring parameters=%ringparms&#xD;Script variables=%scriptVars&#xD;Touching=%col&#xD;With inputs=%inputs&#xD;Words=%words&#xD;}&#xD;Lists={&#xD;Audio properties (volume, ..., resolution)=%audio&#xD;Codification list maps (list, item, delimiter)=%codeListPart&#xD;Codification section maps (code, header)=%codeKind&#xD;Codification type maps (String, ..., false)=%mapValue&#xD;Date options (year, ..., time in milliseconds)=%dates&#xD;Delimiters (letter, ..., json)=%delim&#xD;Dimensions (current)=%dim&#xD;Effect (color, ..., negative)=%eff&#xD;Event (clicked, ..., stopped)=%interaction&#xD;Functions (abs, ..., 2^)=%fun&#xD;HSVA (hue, ..., transparency)=%hsva&#xD;Indices (1, last, random)=%idx&#xD;Indices (1, last, all)=%ida&#xD;Instrument ((1) sine, ... (4) triangle)=%inst&#xD;Image properties (name, ..., pixels)=%img&#xD;Keys (0, ..., z)=%key&#xD;Layer depth (front, back)=%layer&#xD;Month (January, ..., December)=%month&#xD;Pen values (size, ..., transparency)=%pen&#xD;Relation (distance, direction)=%rel&#xD;Sample rates (22.05 kHz, ..., 96 kHz)=%rate&#xD;Settings (turbo mode, ..., mirror video)=%setting&#xD;Sound properties (name, ..., samples)=%aa &#xD;Stop choices (all, ..., other scripts in sprite)=%stopChoices&#xD;Text functions (encode URI, ..., hex sha512 hash)=%txtfun&#xD;Types (number, ..., predicate)=%typ&#xD;Value at location (hue, ..., sprites)=%asp&#xD;Video options (snap, motion, direction)=%vid&#xD;}&#xD;Bugged={&#xD;3 lists=%lst&#xD;Code mapping=%codeKind&#xD;Command=%c&#xD;Command loop=%loop&#xD;Command ring=%rc&#xD;Function=%f&#xD;Key (for hat)=%keyHat&#xD;Message (for hat)=%msgHat&#xD;Predicate ring=%rp&#xD;Reporter ring=%rr&#xD;Reporter slot=%r&#xD;Reporter slot (?)=%p&#xD;Template=%t&#xD;}&#xD;Images and labels={&#xD;Break=%br&#xD;Green start flag=%greenflag&#xD;Clockwise arrow=%clockwise&#xD;Counter-clockwise arrow=%counterclockwise&#xD;Lightning=%blitz&#xD;Loop arrow=%loopArrow&#xD;Pause icon=%pause&#xD;Stop sign=%stop&#xD;Turtle=%turtle&#xD;Turtle outline=%turtleOutline&#xD;}</options></input></inputs><script><block s="doReport"><block var="type"/></block></script></block-definition><block-definition s="multiple %&apos;type&apos;" type="reporter" category="other"><comment x="0" y="0" w="241" collapsed="false">Allows for multiples of the specified type</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true"><options>use the provided type block=</options></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>%mult</l><block var="type"/></list></block></block></script></block-definition><block-definition s="throw %&apos;error&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Throws an error</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>err</l></list><l>throw new Error(err)</l></block><list><block var="error"/></list></block></script></block-definition><block-definition s="xml tag %&apos;name&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="149" collapsed="false">Creates a new XML tag</comment><header></header><code></code><translations></translations><inputs><input type="%txt">name</input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>XML</l><block var="name"/><block s="reportNewList"><list></list></block><l></l></list></block></block></script></block-definition><block-definition s="compile XML %&apos;xmldata&apos;" type="reporter" category="sensing"><comment w="230" collapsed="false">Compiles an XML tag into its plain-text version</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l>tag</l></custom-block></block></block><block s="doForEach"><l>item</l><custom-block s="sub %l from %n to %n"><block var="xmldata"/><l>5</l><l></l></custom-block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> </l><custom-block s="%mlt in pair %l"><l>first</l><block var="item"/></custom-block><l>="</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="%mlt in pair %l"><l>second</l><block var="item"/></custom-block></block><l>"</l></list></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><l>&lt;</l><block var="result"/><l>&gt;</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l>contents</l></custom-block></block></list></block></block><block s="doForEach"><l>item</l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l></l></custom-block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="compile XML %l"><block var="item"/></custom-block></list></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>&lt;/</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l>tag</l></custom-block></block><l>&gt;</l></list></block></block></script></block-definition><block-definition s="pair %&apos;first&apos; %&apos;second&apos;" type="reporter" category="variables"><comment x="0" y="0" w="146" collapsed="false">Makes a pair from two values</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>pair</l><block var="first"/><block var="second"/></list></block></block></script></block-definition><block-definition s="%&apos;which&apos; in pair %&apos;pair&apos;" type="reporter" category="variables"><comment w="112" collapsed="false">Getter for pair values</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">first<options>first&#xD;second&#xD;&#126;&#xD;random</options></input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="which"/><l>first</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="pair"/></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="which"/><l>second</l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="pair"/></block></block></script><script><block s="doIf"><block s="reportEquals"><block var="which"/><l>random</l></block><script><block s="doReport"><block s="reportListItem"><block s="reportRandom"><l>2</l><l>3</l></block><block var="pair"/></block></block></script></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="set %&apos;which&apos; of pair %&apos;pair&apos; to %&apos;value&apos;" type="command" category="variables"><comment w="103" collapsed="false">Setter for pair values</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">first<options>first&#xD;second&#xD;&#126;&#xD;random</options></input><input type="%l"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="which"/><l>first</l></block><script><block s="doReplaceInList"><l>2</l><block var="pair"/><block var="value"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="which"/><l>second</l></block><script><block s="doReplaceInList"><l>3</l><block var="pair"/><block var="value"/></block></script><script><block s="doIf"><block s="reportEquals"><block var="which"/><l>random</l></block><script><block s="doReplaceInList"><block s="reportRandom"><l>2</l><l>3</l></block><block var="pair"/><block var="value"/></block></script></block></script></block></script></block></script></block-definition><block-definition s="is %&apos;item&apos; a $pair ?" type="predicate" category="variables"><comment x="0" y="0" w="168" collapsed="false">Whether or not the object is a pair</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportAnd"><block s="reportEquals"><block s="reportListLength"><block var="item"/></block><l>3</l></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><l>pair</l></block></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="is %&apos;item&apos; $xml ?" type="predicate" category="sensing"><comment x="0" y="0" w="182" collapsed="false">Whether or not a value is an XML tag</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><l>XML</l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="item"/></block><l><option>text</option></l></block></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="item"/></block><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="XML attribute %&apos;xml&apos; %&apos;name&apos;" type="reporter" category="sensing"><comment w="169" collapsed="false">Get an attribute from an XML tag&#xD;empty -&gt; children&#xD;tag -&gt; tag name&#xD;contents -&gt; contents of tag</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"><options>tag&#xD;contents</options></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l><option>word</option></l></block></block><l></l></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="xml"/></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="name"/><l>tag</l></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="xml"/></block></block></script><script><block s="doIf"><block s="reportEquals"><block var="name"/><l>contents</l></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="xml"/></block></block></script></block></script></block></script></block><block s="doDeclareVariables"><list><l>find</l></list></block><block s="doSetVar"><l>find</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="%mlt in pair %l"><l>first</l><l/></custom-block><block var="name"/></block></autolambda><list></list></block><custom-block s="sub %l from %n to %n"><block var="xml"/><l>5</l><l></l></custom-block></block></block><block s="doIf"><block var="find"/><script><block s="doReport"><custom-block s="%mlt in pair %l"><l>second</l><block var="find"/></custom-block></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="set XML attribute %&apos;xml&apos; %&apos;name&apos; %&apos;value&apos;" type="command" category="sensing"><comment x="0" y="0" w="196" collapsed="false">Set the value of an XML tag&apos;s attributestag -&gt; tag namecontents -&gt; contents of tag</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="name"/><l>tag</l></block><script><block s="doReplaceInList"><l>2</l><block var="xml"/><block var="value"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="name"/><l>contents</l></block><script><block s="doReplaceInList"><l>4</l><block var="xml"/><block var="value"/></block></script><script><block s="doDeclareVariables"><list><l>find</l></list></block><block s="doSetVar"><l>find</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="%mlt in pair %l"><l>first</l><l/></custom-block><block var="name"/></block></autolambda><list></list></block><custom-block s="sub %l from %n to %n"><block var="xml"/><l>5</l><l></l></custom-block></block></block><block s="doIfElse"><block var="find"/><script><block s="doIfElse"><block s="reportEquals"><block var="value"/><l></l></block><script><block s="doDeleteFromList"><custom-block s="index of %s in %l"><block var="find"/><block var="xml"/></custom-block><block var="xml"/></block></script><script><custom-block s="set %mlt of pair %l to %s"><l>second</l><block var="find"/><block var="value"/></custom-block></script></block></script><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="value"/><l></l></block></block><script><block s="doAddToList"><custom-block s="pair %s %s"><block var="name"/><block var="value"/></custom-block><block var="xml"/></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="join %&apos;words&apos; by %&apos;delim&apos;" type="reporter" category="operators"><comment x="0" y="0" w="147" collapsed="false">Joins a group of words with a delimeter to separate them</comment><header></header><code></code><translations></translations><inputs><input type="%mult%mlt"></input><input type="%mlt">, </input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportListItem"><l>1</l><block var="words"/></block></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListLength"><block var="words"/></block><l>1</l></block><script><block s="doFor"><l>i</l><l>2</l><block s="reportListLength"><block var="words"/></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block var="delim"/><block s="reportListItem"><block var="i"/><block var="words"/></block></list></block></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="block spec list %&apos;blocks&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="283" collapsed="false">Returns a matrix with the block and its spec paired together</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cmdRing"></input></inputs><script><block s="doReport"><custom-block s="list from %anyUE for %n"><block s="reportNewList"><list><block s="reportListItem"><l></l><block var="blocks"/></block><custom-block s="block spec %cmdRing"><block s="reportListItem"><l></l><block var="blocks"/></block></custom-block></list></block><block s="reportListLength"><block var="blocks"/></block></custom-block></block></script></block-definition><block-definition s="list from %&apos;value&apos; for %&apos;count&apos;" type="reporter" category="lists"><comment x="0" y="0" w="189" collapsed="false">Creates a new list with a given length, mapping each value with the function</comment><header></header><code></code><translations></translations><inputs><input type="%anyUE">0</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>new</l></list></block><block s="doSetVar"><l>new</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="count"/><script><block s="doAddToList"><block s="evaluate"><block var="value"/><list><block var="i"/></list></block><block var="new"/></block></script></block><block s="doReport"><block var="new"/></block></script></block-definition><block-definition s="index of %&apos;item&apos; in %&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="124" collapsed="false">Finds the index of an item within an array</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doFor"><l>i</l><l>1</l><block s="reportListLength"><block var="list"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="item"/></block><script><block s="doReport"><block var="i"/></block></script></block></script></block><block s="doReport"><l>0</l></block></script></block-definition><block-definition s="join %&apos;a&apos; and %&apos;b&apos; with %&apos;c&apos;" type="reporter" category="operators"><comment w="90" collapsed="false">Wraps a set of words between two others</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%mlt"></input><input type="%mult%mlt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><block s="reportJoinWords"><block var="c"/></block><block var="b"/></list></block></block></script></block-definition><block-definition s="sub %&apos;list&apos; from %&apos;indexStart&apos; to %&apos;indexEnd&apos;" type="reporter" category="lists"><comment x="0" y="0" w="170" collapsed="false">Creates a new list from the range specified by the parameters&#xD;start empty -&gt; 1&#xD;end empty -&gt; #list</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportEquals"><block var="indexStart"/><l>0</l></block><script><block s="doSetVar"><l>indexStart</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="indexEnd"/><l>0</l></block><script><block s="doSetVar"><l>indexEnd</l><block s="reportListLength"><block var="list"/></block></block></script></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportNot"><block s="reportGreaterThan"><block var="indexStart"/><block var="indexEnd"/></block></block><script><block s="doFor"><l>i</l><block var="indexStart"/><block var="indexEnd"/><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="result"/></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="add XML child %&apos;xml&apos; %&apos;child&apos;" type="command" category="sensing"><comment x="0" y="0" w="136" collapsed="false">Adds a child to an XML tag</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doAddToList"><block var="child"/><block s="reportListItem"><l>3</l><block var="xml"/></block></block></script></block-definition><block-definition s="ez set XML attribute $nl $- %&apos;xml&apos; $nl $- %&apos;name&apos; %&apos;value&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="243" collapsed="false">See [set XML attribute]Messy form, designed for quick setting of attributes</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set XML attribute %l %txt %txt"><block var="xml"/><block var="name"/><block var="value"/></custom-block></script><list></list></block><list></list></block><block s="doReport"><block var="xml"/></block></script></block-definition><block-definition s="ez add XML children $nl $- %&apos;xml&apos; $nl $- %&apos;child&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="191" collapsed="false">See [add XML child]Messy form, for quickly adding children</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%mult%l"></input></inputs><script><block s="doForEach"><l>item</l><block var="child"/><script><block s="doRun"><block s="reifyScript"><script><custom-block s="add XML child %l %l"><block var="xml"/><block var="item"/></custom-block></script><list></list></block><list></list></block></script></block><block s="doReport"><block var="xml"/></block></script></block-definition><block-definition s="new custom block $nl $- type: %&apos;type&apos; $nl $- category: %&apos;category&apos; $nl $- spec: %&apos;blockSpec&apos;" type="reporter" category="variables"><comment w="332" collapsed="false">Generates the XML for a new custom block given the parameters&#xD;The spec represents the label or title for the block &#xD;To add custom variables, use the [variable parameter] object within the spec parameter</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">command<options>command&#xD;reporter&#xD;predicate</options></input><input type="%mlt" readonly="true">control<options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;lists&#xD;control&#xD;sensing&#xD;operators&#xD;variables&#xD;other</options></input><input type="%mult%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>inputs</l><l>spec</l></list></block><block s="doSetVar"><l>spec</l><l></l></block><block s="doSetVar"><l>inputs</l><custom-block s="xml tag %txt"><l>inputs</l></custom-block></block><block s="doForEach"><l>param</l><block var="blockSpec"/><script><block s="doIfElse"><block s="reportIsA"><block var="param"/><l><option>list</option></l></block><script><custom-block s="add XML child %l %l"><block var="inputs"/><custom-block s="mapParam %l"><block var="param"/></custom-block></custom-block><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><l>%&apos;</l><block s="reportListItem"><l>1</l><block var="param"/></block><l>&apos;</l><l> </l></list></block></block></script><script><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><block var="param"/><l> </l></list></block></block></script></block></script></block><block s="doReport"><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>blocks</l></custom-block><l>app</l><l>Snap! 5.4, http://snap.berkeley.edu</l></custom-block><l>version</l><l>1</l></custom-block><list><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>block-definition</l></custom-block><l>s</l><custom-block s="substr %mlt from %n to %n"><block var="spec"/><l></l><l>-1</l></custom-block></custom-block><l>type</l><block var="type"/></custom-block><l>category</l><block var="category"/></custom-block><list><custom-block s="xml tag %txt"><l>header</l></custom-block><custom-block s="xml tag %txt"><l>code</l></custom-block><custom-block s="xml tag %txt"><l>translations</l></custom-block><block var="inputs"/></list></custom-block></list></custom-block></block></script></block-definition><block-definition s="mapParam %&apos;paramData&apos;" type="reporter" category="sensing"><comment w="204" collapsed="false">Used in [new custom block]&#xD;Converts  [variable parameter] to XML tags</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>input</l></custom-block><l>type</l><block s="reportListItem"><l>2</l><block var="paramData"/></block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="paramData"/></block><l></l></block></block><script><custom-block s="set XML attribute %l %txt %txt"><block var="result"/><l>contents</l><block s="reportListItem"><l>3</l><block var="paramData"/></block></custom-block></script></block><block s="doIf"><block s="reportListItem"><l>5</l><block var="paramData"/></block><script><custom-block s="set XML attribute %l %txt %txt"><block var="result"/><l>readonly</l><l>true</l></custom-block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="paramData"/></block><l></l></block></block><script><custom-block s="add XML child %l %l"><block var="result"/><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>options</l></custom-block><l>contents</l><block s="reportListItem"><l>4</l><block var="paramData"/></block></custom-block></custom-block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="menu %&apos;type&apos;" type="reporter" category="other"><comment w="375" collapsed="false">Menu for choosing interfaces or selections that appear when changing a value&#xD;These will go in the [options] section of [variable parameter]s</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">§_messagesMenu<options>Messages=§_messagesMenu&#xD;Objects=§_objectsMenu&#xD;Costumes=§_costumesMenu&#xD;Sounds=§_soundsMenu&#xD;Variables=§_getVarNamesDict&#xD;Piano keyboard=§_pianoKeyboardMenu&#xD;360° dial=§_directionDialMenu</options></input></inputs><script><block s="doReport"><block var="type"/></block></script></block-definition><block-definition s="substr %&apos;string&apos; from %&apos;s&apos; to %&apos;e&apos;" type="reporter" category="operators"><comment w="253" collapsed="false">Gets a section of a string based on its parameters&#xD;Negative values are offsets from the end of the string&#xD;start empty -&gt; 1&#xD;last empty -&gt; #string</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportEquals"><block var="s"/><l>0</l></block><script><block s="doSetVar"><l>s</l><l>1</l></block></script></block><block s="doIf"><block s="reportLessThan"><block var="s"/><l>0</l></block><script><block s="doSetVar"><l>s</l><block s="reportSum"><block s="reportStringSize"><block var="string"/></block><block var="s"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="e"/><l>0</l></block><script><block s="doSetVar"><l>e</l><block s="reportStringSize"><block var="string"/></block></block></script></block><block s="doIf"><block s="reportLessThan"><block var="e"/><l>0</l></block><script><block s="doSetVar"><l>e</l><block s="reportSum"><block s="reportStringSize"><block var="string"/></block><block var="e"/></block></block></script></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><l></l></block><block s="doIf"><block s="reportNot"><block s="reportGreaterThan"><block var="s"/><block var="e"/></block></block><script><block s="doFor"><l>i</l><block var="s"/><block var="e"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="WIP DO NOT USE, new custom block $nl $- type: %&apos;type&apos; $nl $- category: %&apos;category&apos; $nl $- spec: %&apos;blockSpec&apos; $nl $- %&apos;variables&apos; %&apos;definition&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">command&#xD;        <options>commandreporterpredicate</options></input><input type="%mlt" readonly="true">control&#xD;        <options>motionlookssoundpenlistscontrolsensingoperatorsvariablesother</options></input><input type="%mult%txt"></input><input type="%scriptVars"></input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>inputs</l><l>spec</l></list></block><block s="doSetVar"><l>spec</l><l></l></block><block s="doSetVar"><l>inputs</l><custom-block s="xml tag %txt"><l>inputs</l></custom-block></block><block s="doForEach"><l>param</l><block var="blockSpec"/><script><block s="doIfElse"><block s="reportIsA"><block var="param"/><l><option>list</option></l></block><script><custom-block s="add XML child %l %l"><block var="inputs"/><custom-block s="mapParam %l"><block var="param"/></custom-block></custom-block><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><l>world</l><l></l></list></block></block></script><script><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><block var="param"/><l></l></list></block></block></script></block></script></block><block s="doIf"><block s="reportAnd"><custom-block s="is ring %s"><block var="definition"/></custom-block><block s="reportNot"><custom-block s="empty ring %s"><block var="definition"/></custom-block></block></block><script><block s="doSayFor"><block var="definition"/><l>2</l></block><block s="doSayFor"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>const ide = this.parentThatIsA(IDE_Morph);return ide.serializer.serialize(a);</l></block><list><block var="definition"/></list></block><l>10</l></block></script></block><block s="doReport"><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>blocks</l></custom-block><l>app</l><l>Snap! 5.1, http://snap.berkeley.edu</l></custom-block><l>version</l><l>1</l></custom-block><list><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>block-definition</l></custom-block><l>s</l><custom-block s="substr %mlt from %n to %n"><block var="spec"/><l></l><l>-1</l></custom-block></custom-block><l>type</l><block var="type"/></custom-block><l>category</l><block var="category"/></custom-block><list><custom-block s="xml tag %txt"><l>header</l></custom-block><custom-block s="xml tag %txt"><l>code</l></custom-block><custom-block s="xml tag %txt"><l>translations</l></custom-block><block var="inputs"/></list></custom-block></list></custom-block></block></script></block-definition><block-definition s="variable parameter $nl $- name: %&apos;name&apos; $nl $- type: %&apos;kind&apos; $nl $- default: %&apos;default&apos; $nl $- options: %&apos;s&apos; $nl $- readonly: %&apos;readonly&apos;" type="reporter" category="other"><comment x="0" y="0" w="389" collapsed="false">Creates a new variable parameter to be used when making a [new custom block]&#xD;Types can also be images, for making special labels&#xD;The parameters are much like the regular and right-click menu for input type selection when making a custom block &#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mlt" readonly="true"><options>pass in multiple or type block=</options></input><input type="%mlt"></input><input type="%mlt"></input><input type="%b">false</input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="name"/><block var="kind"/><block var="default"/><block var="s"/><block var="readonly"/></list></block></block></script></block-definition><block-definition s="empty ring %&apos;value&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175" collapsed="false">Returns if the value is an empty ring without using JS</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>value</l><block s="reportJoinWords"><list><block var="value"/></list></block></block><block s="doReport"><block s="reportOr"><block s="reportOr"><block s="reportEquals"><block var="value"/><block s="reportJoinWords"><list><block s="reifyScript"><script></script><list></list></block></list></block></block><block s="reportEquals"><block var="value"/><block s="reportJoinWords"><list><block s="reifyReporter"><script></script><list></list></block></list></block></block></block><block s="reportEquals"><block var="value"/><block s="reportJoinWords"><list><block s="reifyPredicate"><script></script><list></list></block></list></block></block></block></block></script></block-definition><block-definition s="is ring %&apos;item&apos;" type="reporter" category="operators"><comment x="0" y="0" w="242" collapsed="false">Returns if the item is wrapped in some sort of ring</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportOr"><block s="reportIsA"><block var="item"/><l><option>command</option></l></block><block s="reportIsA"><block var="item"/><l><option>reporter</option></l></block></block><block s="reportIsA"><block var="item"/><l><option>predicate</option></l></block></block></block></script></block-definition><block-definition s="Obsolete!" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="errorObsolete"></block></autolambda><list></list></block></block></script></block-definition><block-definition s="play notes %&apos;notes&apos; for %&apos;beats&apos; beats" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%mult%note">60</input><input type="%n">0.5</input></inputs></block-definition><block-definition s="log %&apos;stuff&apos; to console" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%mult%mlt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>items</l></list><l>console.log(items.contents.join(&apos;\n&apos;));</l></block><list><block var="stuff"/></list></block></script></block-definition><block-definition s="strdump %&apos;tbl&apos; %&apos;level&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>tab</l><l>str</l><l>item</l></list></block><block s="doSetVar"><l>str</l><l></l></block><block s="doSetVar"><l>tab</l><custom-block s="repeat %mlt %n times"><l>    </l><block var="level"/></custom-block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListLength"><block var="tbl"/></block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block var="tbl"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><script><block s="doSetVar"><l>str</l><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="str"/><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="i"/><custom-block s="strdump %l %n"><block var="item"/><block s="reportSum"><block var="level"/><l>1</l></block></custom-block><list><l>:&#xD;</l></list></custom-block><list><block var="tab"/></list></custom-block></block></script><script><block s="doSetVar"><l>str</l><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="str"/><l>&#xD;</l><list><block var="tab"/><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="i"/><block var="item"/><list><l>:   </l></list></custom-block></list></custom-block></block></script></block></script></block><block s="doReport"><block var="str"/></block></script><scripts><script x="297.23144631250034" y="287.200002"><custom-block s="strdump %l %n"><block var="item"/><block s="reportSum"><block var="level"/><l>1</l></block></custom-block></script></scripts></block-definition><block-definition s="repeat %&apos;word&apos; %&apos;d&apos; times" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>out</l></list></block><block s="doSetVar"><l>out</l><l></l></block><block s="doIf"><block s="reportNot"><block s="reportLessThan"><block var="d"/><l>1</l></block></block><script><block s="doFor"><l>i</l><l>1</l><block var="d"/><script><block s="doSetVar"><l>out</l><block s="reportJoinWords"><list><block var="out"/><block var="word"/></list></block></block></script></block></script></block><block s="doReport"><block var="out"/></block></script></block-definition></blocks><variables></variables></project><media name="XML generation" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>