<snapdata remixID="9504415"><project name="2021 CSP Reference Sheet Snap!" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes>Snap! version of the AP CSP Reference Sheet (July 2020 eduction).&#xD;&#xD;Enjoy using it to prepare for the CSP exam!&#xD;&#xD;BJC (Beauty and Joy of Computing) team&#xD;&#xD;Updated 6/16/2020 Tim Matthies</notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="480" costume="1" color="255,253,240,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAATU0lEQVR4Xu3VwQkAAAjEMN1/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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHKPqAeGd6qK0AAAAAElFTkSuQmCC</pentrails><costumes><list id="2"><item><costume name="Untitled" center-x="240" center-y="239.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHfCAYAAACI+AvtAAATT0lEQVR4Xu3VwQkAMAzEsGb/oVPoEPVHWSAgDjy7u8cRIECAAAECXwVGgL96e0aAAAECBJ6AABsCAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQEOED3kgABAgQICLANECBAgACBQECAA3QvCRAgQICAANsAAQIECBAIBAQ4QPeSAAECBAgIsA0QIECAAIFAQIADdC8JECBAgIAA2wABAgQIEAgEBDhA95IAAQIECAiwDRAgQIAAgUBAgAN0LwkQIECAgADbAAECBAgQCAQuIM92zTQdAVsAAAAASUVORK5CYII=" id="3"/></item></list></costumes><sounds><list struct="atomic" id="4"></list></sounds><variables></variables><blocks></blocks><scripts><script x="116" y="262"><block s="changeEffect"><l><option>ghost</option></l><l>25</l></block></script><script x="177" y="213"><block s="clearEffects"></block></script></scripts><sprites><sprite name="Sprite" idx="1" x="-103.0322580645161" y="-16.16774193548372" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="145,26,68,1" pen="tip" id="13"><costumes><list struct="atomic" id="14"></list></costumes><sounds><list id="15"><item><sound name="Meow" sound="http://snap.berkeley.edu/snapsource/Sounds/Meow.wav" id="16"/></item></list></sounds><blocks></blocks><variables></variables><scripts><comment x="18.181818181818187" y="18.181818181817903" w="666.2294921875" collapsed="false">Snap! Translation of the AP CSP Reference Sheet (June 2020 edition).&#xD;https://apcentral.collegeboard.org/pdf/ap-csp-student-task-directions.pdf?course=ap-computer-science-principles&#xD;Version 2020-08-05 Updated by Tim Matthies&#xD;&#xD;Original: https://snap.berkeley.edu/snapsource/snap.html#present:Username=dan%20garcia&amp;ProjectName=CSPrinciplesReferenceSheetSnap!</comment><comment x="18.181818181818187" y="118.81818181818218" w="577.5" collapsed="true">Assignment, Display, and Input</comment><comment x="18.181818181818187" y="149.4545454545448" w="347" collapsed="false">Text: a ← expression&#xD;&#xD;Evaluates expression and then assigns a copy of the result to the variable a.</comment><script x="18.181818181818187" y="226.0909090909078"><block s="doSetVar"><l>a</l><l>5</l></block></script><comment x="18.181818181818187" y="264.6363636363619" w="339" collapsed="false">Text: DISPLAY(expression)&#xD;&#xD;Displays the value of expression, followed by a space.</comment><script x="18.181818181818187" y="341.27272727272657"><block s="doSetVar"><l>a</l><l>5</l></block><block s="doReport"><block var="a"/></block></script><comment x="18.181818181818187" y="401.5757575757558" w="342" collapsed="false">Text: INPUT()&#xD;&#xD;Accepts a value from the user and returns the input value.</comment><script x="18.181818181818187" y="478.21212121212045"><block s="doAsk"><l>What&apos;s your name?</l></block><block s="doReport"><block s="getLastAnswer"></block></block></script><script x="18.181818181818187" y="537.6060606060595"><custom-block s="INPUT"><comment w="119" collapsed="true">Input() in a block</comment></custom-block></script><comment x="18.181818181818187" y="571.242424242424" w="588" collapsed="true">Arithmetic Operators and Numeric Procedures</comment><script x="18.181818181818187" y="601.8787878787866"><block s="doSetVar"><l>a</l><l>17</l></block><block s="doSetVar"><l>b</l><l>5</l></block></script><comment x="18.181818181818187" y="662.3333333333321" w="341" collapsed="false">Text and Block: a+b, a-b,  a*b,  a/b &#xD;&#xD;The arithmetic operators +, -, *, and / are used to perform arithmetic on a and b.&#xD;&#xD;For example, 17 / 5 evaluates to 3.4.&#xD;&#xD;The order of operations used in mathematics applies when evaluating expressions.</comment><script x="18.181818181818187" y="810.9696969696957"><block s="reportSum"><block var="a"/><block var="b"/></block></script><script x="18.181818181818187" y="843.363636363635"><block s="reportDifference"><block var="a"/><block var="b"/></block></script><script x="18.181818181818187" y="875.7575757575743"><custom-block s="%n * %n"><block var="a"/><block var="b"/></custom-block></script><script x="18.181818181818187" y="908.1515151515135"><block s="reportQuotient"><block var="a"/><block var="b"/></block></script><comment x="18.181818181818187" y="940.5454545454528" w="341" collapsed="false">Text: a MOD b&#xD;&#xD;Evaluates to the remainder when a is divided by b. Assume that a is an integer greater than or equal to 0 and b is an integer greater than 0.&#xD;&#xD;For example, 17 MOD 5 evaluates to 2.&#xD;&#xD;The MOD operator has the same precedence as the * and / operators.</comment><script x="18.181818181818187" y="1077.1818181818167"><custom-block s="%n MOD %n"><block var="a"/><block var="b"/></custom-block></script><comment x="18.181818181818187" y="1109.575757575756" w="341" collapsed="false">Text: RANDOM(a,b)&#xD;&#xD;Generates and returns a random integer from a to b, including a and b. Each result is equally likely to occur.&#xD;&#xD;For example, RANDOM(1, 3) could return 1, 2, or 3.</comment><script x="18.181818181818187" y="1222.21212121212"><block s="doSetVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>b</l><l>3</l></block></script><script x="18.181818181818187" y="1282.6666666666656"><block s="reportRandom"><block var="a"/><block var="b"/></block></script><script x="18.181818181818187" y="1315.0606060606049"><custom-block s="RANDOM %n , %n"><block var="a"/><block var="b"/><comment w="143" collapsed="true">Random built into a block</comment></custom-block></script><comment x="18.181818181818187" y="1348.6969696969686" w="589" collapsed="true">Relational and Boolean Operators</comment><script x="18.181818181818187" y="1379.3333333333328"><block s="doSetVar"><l>a</l><l>17</l></block><block s="doSetVar"><l>b</l><l>5</l></block></script><comment x="18.181818181818187" y="1439.7878787878783" w="341" collapsed="false">Text and Block: a=b ,a≠b, a&gt;b, a&lt;b, a≥b, a≤b&#xD;&#xD;The relational operators = , ≠, &gt;, &lt;, ≥, and ≤ are used to test the relationship between two variables, expressions, or values. A comparison using relational operators evaluates to a Boolean value.&#xD;&#xD;For example, a = b evaluates to true if a and b are equal; otherwise it evaluates to false.</comment><script x="18.181818181818187" y="1576.4242424242411"><block s="reportEquals"><block var="a"/><block var="b"/></block></script><script x="18.181818181818187" y="1608.8181818181804"><custom-block s="%s ≠ %s"><block var="a"/><block var="b"/></custom-block></script><script x="18.181818181818187" y="1641.2121212121206"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block></script><script x="18.181818181818187" y="1673.6060606060607"><block s="reportLessThan"><block var="a"/><block var="b"/></block></script><script x="18.181818181818187" y="1706"><custom-block s="%s ≥ %s"><block var="a"/><block var="b"/></custom-block></script><script x="18.181818181818187" y="1738.3939393939393"><custom-block s="%s ≤ %s"><block var="a"/><block var="b"/></custom-block></script><comment x="18.181818181818187" y="1770.7878787878794" w="341" collapsed="false">Text: NOT condition&#xD;&#xD;Evaluates to true if condition is false; otherwise evaluates to false.</comment><script x="18.181818181818187" y="1847.4242424242432"><custom-block s="NOT %b"><block s="reportEquals"><block var="a"/><block var="b"/></block></custom-block></script><comment x="18.181818181818187" y="1883.818181818182" w="341" collapsed="false">Text:&#xD;condition1 AND condition2&#xD;&#xD;Evaluates to true if both condition1 and condition2 are true; otherwise evaluates to false.</comment><script x="18.181818181818187" y="1984.4545454545462"><custom-block s="%b AND %b"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><block s="reportEquals"><block var="a"/><block var="b"/></block></custom-block></script><comment x="18.181818181818187" y="2020.8484848484852" w="341" collapsed="false">Text: condition1 OR condition2 &#xD;&#xD;Evaluates to true if condition1 is true or if condition2 is true or if both condition1 and condition2 are true; otherwise evaluates to false.</comment><script x="18.181818181818187" y="2109.484848484849"><custom-block s="%b OR %b"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><block s="reportEquals"><block var="a"/><block var="b"/></block></custom-block></script><comment x="18.181818181818187" y="2145.8787878787875" w="590.5" collapsed="true">Selection</comment><comment x="18.181818181818187" y="2176.515151515152" w="341" collapsed="false">Text: &#xD;IF(condition)&#xD;{&#xD;     &lt;block of statements&gt;&#xD;}&#xD;&#xD;The code in block of statements is executed if the Boolean expression condition evaluates to true; no action is taken if condition evaluates to false.</comment><script x="18.181818181818187" y="2313.151515151515"><block s="doSetVar"><l>a</l><l>17</l></block><block s="doSetVar"><l>b</l><l>5</l></block></script><script x="18.181818181818187" y="2373.6060606060605"><custom-block s="IF %b %cs"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><script><block s="doSayFor"><l>Hello!</l><l>10</l></block></script></custom-block></script><comment x="18.181818181818187" y="2445.9999999999995" w="341" collapsed="false">Text:&#xD;IF(condition)&#xD;{&#xD;     &lt;first block of statements&gt;&#xD;}&#xD;ELSE&#xD;{&#xD;     &lt;second block of statements&gt;&#xD;}&#xD;&#xD;The code in first block of statements is executed if the Boolean expression condition evaluates to true; otherwise the code in second block of statements is executed.</comment><script x="18.181818181818187" y="2642.6363636363644"><block s="doSetVar"><l>a</l><l>17</l></block><block s="doSetVar"><l>b</l><l>5</l></block></script><script x="18.181818181818187" y="2703.09090909091"><custom-block s="IF %b %cs ELSE %cs"><block s="reportGreaterThan"><block var="b"/><block var="a"/></block><script><block s="doSayFor"><l>Hello!</l><l>10</l></block></script><script><block s="doSayFor"><l>Goodbye!</l><l>10</l></block></script></custom-block></script><comment x="18.181818181818187" y="2813.2424242424245" w="593" collapsed="true">Iteration</comment><comment x="18.181818181818187" y="2843.878787878788" w="341" collapsed="false">Text:&#xD;REPEAT n TIMES&#xD;{&#xD;&lt;block of statements&gt;&#xD;}&#xD;&#xD;The code in block of statements is executed n times.</comment><script x="18.181818181818187" y="2968.515151515151"><block s="doSetVar"><l>n</l><l>5</l></block><custom-block s="REPEAT %n TIMES %cs"><block var="n"/><script><block s="doSayFor"><l>Hello!</l><l>1</l></block><block s="changeYPosition"><l>-10</l></block><block s="doSayFor"><l>Goodbye!</l><l>1</l></block><block s="changeYPosition"><l>10</l></block></script></custom-block></script><comment x="18.181818181818187" y="3121.818181818182" w="341" collapsed="false">Text:&#xD;REPEAT UNTIL(condition)&#xD;{&#xD;     &lt;block of statements&gt;&#xD;}&#xD;&#xD;The code in block of statements is repeated until the Boolean expression condition evaluates to true.</comment><script x="18.181818181818187" y="3258.454545454546"><block s="doSetVar"><l>n</l><l>1</l></block><custom-block s="REPEAT UNTIL %boolUE %cs"><block s="reportGreaterThan"><block var="n"/><l>5</l></block><script><block s="doSayFor"><l>Hello!</l><l>1</l></block><block s="changeYPosition"><l>-10</l></block><block s="doSayFor"><l>Goodbye!</l><l>1</l></block><block s="changeYPosition"><l>10</l></block><block s="doSetVar"><l>n</l><block s="reportSum"><block var="n"/><l>1</l></block></block></script></custom-block></script><comment x="18.181818181818187" y="3441.5151515151515" w="591.5" collapsed="true">List Operations</comment><comment x="18.181818181818187" y="3472.151515151515" w="341" collapsed="false">Text: aList ← [value1, value2, value3, ...]&#xD;&#xD;Creates a new list that contains the values value1, value2, value3, and ... at indices 1, 2, 3, and ... respectively and assigns it to aList.</comment><script x="18.181818181818187" y="3560.7878787878785"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>value1</l><l>value2</l><l>valeu3</l></list></block></block></script><comment x="18.181818181818187" y="3602.424242424242" w="341" collapsed="false">Text: aList ← []&#xD;&#xD;Creates an empty list and assigns it to aList.</comment><script x="18.181818181818187" y="3679.0606060606065"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list></list></block></block></script><comment x="18.181818181818187" y="3717.606060606061" w="341" collapsed="false">Text: aList ← bList&#xD;&#xD;Assigns a copy of the list bList to the list aList.&#xD;&#xD;For example, if bList contains [20, 40, 60], then aList will also contain [20, 40, 60] after the assignment.&#xD;</comment><script x="18.181818181818187" y="3842.2424242424245"><block s="doSetVar"><l>bList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block></script><script x="18.181818181818187" y="3883.8787878787875"><block s="doSetVar"><l>aList</l><block var="bList"/></block></script><comment x="18.181818181818187" y="3922.4242424242416" w="341" collapsed="false">Text: aList[i]&#xD;&#xD;Accesses the element of aList at index i. The first element of aList is at index 1 and is accessed using the notation&#xD;aList[1].&#xD;</comment><script x="18.181818181818187" y="4035.0606060606046"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block></script><script x="18.181818181818187" y="4098.606060606059"><block s="reportListItem"><block var="i"/><block var="aList"/></block></script><comment x="18.181818181818187" y="4130.999999999998" w="341" collapsed="false">Text: x ← aList[i] &#xD;&#xD;Assigns the value of aList[i] to the variable x.</comment><script x="18.181818181818187" y="4207.636363636363"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block></script><script x="18.181818181818187" y="4271.181818181817"><block s="doSetVar"><l>x</l><block s="reportListItem"><block var="i"/><block var="aList"/></block></block></script><comment x="18.181818181818187" y="4313.575757575756" w="341" collapsed="false">Text: aList[i] ← x &#xD;&#xD;Assigns the value of x to aList[i]</comment><script x="18.181818181818187" y="4390.212121212119"><block s="doSetVar"><l>i</l><l>2</l></block><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><block var="i"/><block var="aList"/></block></block></script><comment x="18.181818181818187" y="4479.515151515152" w="341" collapsed="false">Text: aList[i] ← aList[j] &#xD;&#xD;Assigns the value of aList[j] to aList[i].</comment><script x="18.181818181818187" y="4556.151515151516"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doSetVar"><l>j</l><l>3</l></block><block s="doReplaceInList"><block var="i"/><block var="aList"/><block s="reportListItem"><block var="j"/><block var="aList"/></block></block></script><comment x="18.181818181818187" y="4667.363636363637" w="341" collapsed="false">Text: INSERT(aList, i, value)&#xD;&#xD;Any values in aList at indices greater than or equal to i are shifted one position to the right. The length of the list is increased by 1, and value is placed at index i in aList..</comment><script x="18.181818181818187" y="4768"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block><comment w="90" collapsed="true">IDK?</comment></block><block s="doSetVar"><l>i</l><custom-block s="LENGTH %l"><block var="aList"/></custom-block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block var="i"/><block var="aList"/></block></block><custom-block s="INSERT %l %n %s"><block var="aList"/><block var="i"/><block var="value"/></custom-block></script><comment x="18.181818181818187" y="4882.909090909091" w="341" collapsed="false">Text:APPEND aList, value &#xD;&#xD;The length of aList is increased by 1, and value is placed at the end of aList.</comment><script x="18.181818181818187" y="4959.545454545456"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block><block s="doAddToList"><l>70</l><block var="aList"/></block></script><script x="18.181818181818187" y="5022.939393939396"><custom-block s="APPEND %l %s"><block var="aList"/><l>70</l></custom-block></script><comment x="18.181818181818187" y="5061.333333333335" w="341" collapsed="false">Text: REMOVE(aList, i)  &#xD;&#xD;Removes the item at index i in aList and shifts to the left any values at indices greater than i, The length of aList is decreased by 1.</comment><script x="18.181818181818187" y="5149.969696969699"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>20</l><l>40</l><l>60</l></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block></script><script x="18.181818181818187" y="5213.515151515153"><block s="doDeleteFromList"><block var="i"/><block var="aList"/></block></script><script x="18.181818181818187" y="5251.909090909093"><custom-block s="REMOVE %l %n"><block var="aList"/><block var="i"/></custom-block></script><comment x="18.181818181818187" y="5290.303030303032" w="341" collapsed="false">Text: LENGTH(aList)&#xD;&#xD;Evaluates to the number of elements in aList.</comment><script x="18.181818181818187" y="5366.939393939395"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>Cyan</l><l>Magenta</l><l>Yellow</l><l>Black</l></list></block></block></script><script x="18.181818181818187" y="5408.57575757576"><block s="reportListLength"><block var="aList"/></block></script><script x="18.181818181818187" y="5440.969696969699"><custom-block s="LENGTH %l"><block var="aList"/></custom-block></script><comment x="18.181818181818187" y="5473.363636363638" w="341" collapsed="false">Text:&#xD;FOR EACH item IN aList&#xD;{&#xD;     &lt;block of statements&gt;&#xD;}&#xD;&#xD;The variable item is assigned the value of each element of aList sequentially, in order, from the first element to the last element. The code in block of statements is executed once for each assignment of item.</comment><script x="18.181818181818187" y="5622.000000000002"><block s="doSetVar"><l>aList</l><block s="reportNewList"><list><l>Cyan</l><l>Magenta</l><l>Yellow</l><l>Black</l></list></block></block></script><script x="18.181818181818187" y="5663.636363636365"><custom-block s="FOR EACH %upvar IN %l %cs"><l>item</l><block var="aList"/><script><block s="doSayFor"><block var="item"/><l>2</l></block></script></custom-block></script><comment x="18.181818181818187" y="5736.606060606062" w="590.5" collapsed="true">Procedures and Procedure Calls</comment><comment x="18.181818181818187" y="5767.242424242426" w="598.5" collapsed="false">Procedures are defined with the &quot;make a block...&quot; context menu. Right-click (on Macs control-click) on the Scripts background to get to it. There&apos;s also a &quot;Make a block&quot; button in the Variables tab. Procedures that return values should be a &quot;Reporter&quot; (or &quot;Predicate&quot;).&#xD;Procedures that don&apos;t return values should be a &quot;Command&quot;.</comment><comment x="18.181818181818187" y="5843.878787878789" w="341" collapsed="false">Text:&#xD;PROCEDURE procName(parameter1, parameter2, ...)&#xD;{&#xD;     &lt;block of statements&gt;&#xD;}&#xD;&#xD;Defines procName as a procedure that takes zero or more arguments. The procedure contains block of statements.&#xD;&#xD;The procedure procName can be called using the following notation, where arg1 is assigned to parameter1, arg2 is assigned to parameter2, etc.: procName(arg1, arg2, ...)&#xD;</comment><script x="18.181818181818187" y="6040.515151515154"><block s="clear"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="down"></block><block s="setColor"><color>145,26,68,1</color></block><custom-block s="procName1 sides: %s length: %s"><l>5</l><l>100</l><comment w="248" collapsed="true">Right Click to Edit... &amp; view block of statements</comment></custom-block></script><comment x="18.181818181818187" y="6155.666666666668" w="341" collapsed="false">Text:&#xD;PROCEDURE procName(parameter1, parameter2, ...)&#xD;{&#xD;&lt;block of statements&gt;&#xD;RETURN(expression)&#xD;}&#xD;&#xD;Defines procName as a procedure that takes zero or more arguments. The procedure contains block of statements and returns the value of expression. The RETURN statement may appear at any point inside the procedure and causes an immediate return from the procedure back to the calling statement.&#xD;&#xD;The value returned by the procedure procName can be assigned to the variable result using the following notation: result ← procName(arg1, arg2, ...)&#xD;</comment><script x="18.181818181818187" y="6400.303030303032"><custom-block s="procName2 %s %s"><l>5</l><l>5</l><comment w="248" collapsed="true">Right Click to Edit... &amp; view block of statements</comment></custom-block></script><comment x="18.181818181818187" y="6433.939393939396" w="341" collapsed="false">Text: RETURN(expression)&#xD;&#xD;Returns the flow of control to the point where the procedure was called and returns the value of expression.</comment><script x="18.181818181818187" y="6522.575757575759"><custom-block s="RETURN %s"><l>expression</l></custom-block></script><comment x="18.181818181818187" y="6554.212121212123" w="591.5" collapsed="true">Robot </comment><comment x="18.181818181818187" y="6584.848484848487" w="590.5" collapsed="false">If the robot attempts to move to a square that is not open or is beyond the edge of the grid, the robot will stay in its current location and the program will terminate.</comment><script x="18.181818181818187" y="6649.484848484851"><custom-block s="MOVE_FORWARD"><comment w="404" collapsed="false">Text:&#xD;MOVE_FORWARD() &#xD;&#xD;The robot moves one square forward in the direction it is facing.</comment></custom-block></script><script x="18.181818181818187" y="6741.121212121214"><custom-block s="ROTATE_LEFT"><comment w="424" collapsed="false">Text:&#xD;ROTATE_LEFT()  &#xD;&#xD;The robot rotates in place 90 degrees counterclockwise (i.e., makes an in-place left turn).</comment></custom-block></script><script x="18.181818181818187" y="6832.757575757578"><custom-block s="ROTATE_RIGHT"><comment w="416" collapsed="false">Text:&#xD;ROTATE_RIGHT() &#xD;&#xD;The robot rotates in place 90 degrees clockwise (i.e., makes an in-place right turn).</comment></custom-block></script><script x="18.181818181818187" y="6924.39393939394"><custom-block s="CAN_MOVE %s"><l>forward</l><comment w="382" collapsed="false">Text:&#xD;CAN_MOVE(direction) &#xD;&#xD;Evaluates to true if there is an open square one square in the direction relative to where the robot is facing; otherwise evaluates to false. The value of direction can be left, right, forward, or backward..</comment></custom-block></script><comment x="18.181818181818187" y="7040.030303030304" w="587.5" collapsed="true">END OF SNAP! CODE TO MIRROR THE REFERENCE SHEET...</comment></scripts></sprite><watcher scope="Sprite" s="getScale" style="normal" x="4.705517139091171" y="4.70551713909046" color="143,86,227" hidden="true"/><watcher scope="Sprite" s="xPosition" style="normal" x="4.705517139091171" y="22.586483208737477" color="74,108,212" hidden="true"/><watcher scope="Sprite" s="yPosition" style="normal" x="4.705517139091171" y="40.46744927838455" color="74,108,212" hidden="true"/><watcher scope="Sprite" s="getCostumeIdx" style="normal" x="4.705517139091171" y="58.34841534803152" color="143,86,227" hidden="true"/><watcher s="xPosition" style="normal" x="4.5445638365472405" y="4.544563836546146" color="74,108,212" hidden="true"/><watcher s="yPosition" style="normal" x="4.5445638365472405" y="21.813907324334046" color="74,108,212" hidden="true"/><watcher scope="Sprite" s="direction" style="normal" x="6.071635018181496" y="6.071635018181141" color="74,108,212" hidden="true"/><watcher s="getScale" style="normal" x="8.159543105555258" y="8.159543105556018" color="143,86,227" hidden="true"/><watcher var="a" style="normal" x="6.799738170482442" y="6.79973817048252" color="243,118,29"/><watcher var="arg1" style="normal" x="8.216145833333712" y="263.9791666666668" color="243,118,29"/><watcher var="arg2" style="normal" x="99.66015625" y="268.1067717213541" color="243,118,29"/><watcher var="value" style="normal" x="4.66015625" y="225.92578124999994" color="243,118,29"/><watcher var="x" style="normal" x="104.57044813368088" y="229.68633355034717" color="243,118,29"/><watcher var="item" style="normal" x="84.96628146701437" y="93.73323394308272" color="243,118,29"/><watcher var="aList" style="normal" x="188.34293861106607" y="138.192909726273" color="243,118,29" extX="88" extY="118"/><watcher var="bList" style="normal" x="190.67509299949347" y="8.524929865614013" color="243,118,29" extX="88" extY="77"/><watcher var="b" style="normal" x="84.79973817048244" y="5.079189688443336" color="243,118,29"/><watcher var="i" style="normal" x="7.91015625" y="50.68880208333326" color="243,118,29"/><watcher var="j" style="normal" x="92.66015625" y="53.06510505468751" color="243,118,29"/><watcher var="n" style="normal" x="4.131769420482669" y="93.2232245397376" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="%&apos;variable&apos; $arrowLeft %&apos;value&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>variable</l><block var="value"/></block></script></block-definition><block-definition s="RANDOM %&apos;a&apos; , %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportRandom"><block var="a"/><block var="b"/></block></block></script></block-definition><block-definition s="%&apos;A&apos; ≠ %&apos;B&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="A"/><block var="B"/></block></block></block></script></block-definition><block-definition s="%&apos;A&apos; ≥ %&apos;B&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportGreaterThan"><block var="A"/><block var="B"/></block><block s="reportEquals"><block var="A"/><block var="B"/></block></block></block></script></block-definition><block-definition s="%&apos;A&apos; ≤ %&apos;B&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportLessThan"><block var="A"/><block var="B"/></block><block s="reportEquals"><block var="A"/><block var="B"/></block></block></block></script></block-definition><block-definition s="INPUT" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>What&apos;s your name?</l></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="REPEAT %&apos;N&apos; TIMES %&apos;BLOCK&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%cs"></input></inputs><script><block s="doRepeat"><block var="N"/><script><block s="doRun"><block var="BLOCK"/><list></list></block></script></block></script></block-definition><block-definition s="%&apos;data&apos; %&apos;index&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="index"/><block var="data"/></block></block></script></block-definition><block-definition s="%&apos;datain&apos; %&apos;indexin&apos; $arrowLeft %&apos;dataout&apos; %&apos;indexout&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReplaceInList"><block var="indexin"/><block var="datain"/><custom-block s="%l %n"><block var="dataout"/><block var="indexout"/></custom-block></block></script></block-definition><block-definition s="%&apos;data&apos; $arrowLeft %&apos;arg&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%mult%s"></input></inputs><script><block s="doSetVar"><l>data</l><block var="arg"/></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="FOR EACH %&apos;item&apos; IN %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="INSERT %&apos;data&apos; %&apos;i&apos; %&apos;value&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input><input type="%s"></input></inputs><script><block s="doInsertInList"><block var="value"/><block var="i"/><block var="data"/></block></script></block-definition><block-definition s="APPEND %&apos;data&apos; %&apos;value&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doAddToList"><block var="value"/><block var="data"/></block></script></block-definition><block-definition s="REMOVE %&apos;data&apos; %&apos;i&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doDeleteFromList"><block var="i"/><block var="data"/></block></script></block-definition><block-definition s="LENGTH %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListLength"><block var="data"/></block></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    ide = this.parentThatIsA(IDE_Morph),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="newline" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="gotoXY"><l>-220</l><block s="reportDifference"><block s="yPosition"></block><l>36</l></block></block></script></block-definition><block-definition s="$stage draw grid" type="command" category="pen"><comment x="0" y="0" w="156.5" collapsed="false">Draw a grid on the stage. This is an extra block, NOT on the reference sheet.</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>SLOT</l><l>X</l><l>Y</l></list></block><block s="doSetVar"><l>SLOT</l><l>32</l></block><block s="doSetVar"><l>X</l><l>-240</l></block><block s="doSetVar"><l>Y</l><block s="reportSum"><l>-240</l><block var="SLOT"/></block></block><block s="setHeading"><l>90</l></block><block s="doRepeat"><l>14</l><script><block s="gotoXY"><block var="X"/><block var="Y"/></block><block s="down"></block><block s="forward"><l>480</l></block><block s="up"></block><block s="doChangeVar"><l>Y</l><block var="SLOT"/></block></script></block><block s="setHeading"><l>0</l></block><block s="doSetVar"><l>X</l><block s="reportSum"><l>-240</l><block var="SLOT"/></block></block><block s="doSetVar"><l>Y</l><l>-240</l></block><block s="doRepeat"><l>14</l><script><block s="gotoXY"><block var="X"/><block var="Y"/></block><block s="down"></block><block s="forward"><l>480</l></block><block s="up"></block><block s="doChangeVar"><l>X</l><block var="SLOT"/></block></script></block></script></block><block s="removeClone"></block></script></custom-block></script></block-definition><block-definition s="MOVE_FORWARD" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="forward"><l>10</l></block></script></block-definition><block-definition s="$robot reset" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="tell %s to %cs"><l>Displayer</l><script><block s="hide"></block></script></custom-block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>0</l></block><block s="doSwitchToCostume"><l>Arrow</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="show"></block></script></block-definition><block-definition s="ROTATE_RIGHT" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="turn"><l>90</l></block></script></block-definition><block-definition s="ROTATE_LEFT" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="turnLeft"><l>90</l></block></script></block-definition><block-definition s="CAN_MOVE %&apos;direction&apos;" type="predicate" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">forward<options>left&#xD;right&#xD;forward&#xD;backward</options></input></inputs><script><block s="doDeclareVariables"><list><l>can move?</l></list></block><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="direction"/><l>right</l></block><script><custom-block s="ROTATE_RIGHT"></custom-block></script></block><block s="doIf"><block s="reportEquals"><block var="direction"/><l>left</l></block><script><custom-block s="ROTATE_LEFT"></custom-block></script></block><block s="doIf"><block s="reportEquals"><block var="direction"/><l>backward</l></block><script><custom-block s="ROTATE_LEFT"></custom-block><custom-block s="ROTATE_LEFT"></custom-block></script></block><custom-block s="MOVE_FORWARD"></custom-block><block s="setScale"><l>10</l></block><block s="doSetVar"><l>can move?</l><block s="reportNot"><block s="reportTouchingColor"><color>0,0,0,1</color></block></block></block></script></block><block s="removeClone"></block></script></custom-block><block s="doReport"><block var="can move?"/></block></script></block-definition><block-definition s="toggle cell state" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>X</l><l>Y</l><l>state</l></list></block><block s="doWarp"><script><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="doSetVar"><l>X</l><block s="xPosition"></block></block><block s="doSetVar"><l>Y</l><block s="yPosition"></block></block><block s="gotoXY"><block s="reportProduct"><l>32</l><block s="reportRound"><block s="reportQuotient"><block s="reportMouseX"></block><l>32</l></block></block></block><block s="reportProduct"><l>32</l><block s="reportRound"><block s="reportQuotient"><block s="reportMouseY"></block><l>32</l></block></block></block></block><block s="doSetVar"><l>state</l><custom-block s="Cell State"></custom-block></block><block s="doIfElse"><block s="reportEquals"><block var="state"/><l>White</l></block><script><block s="doSwitchToCostume"><l>Black</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="state"/><l>Black</l></block><script><block s="doSwitchToCostume"><l>Grey</l></block></script><script><block s="doIf"><block s="reportEquals"><block var="state"/><l>Grey</l></block><script><block s="doSwitchToCostume"><l>White</l></block></script></block></script></block></script></block><block s="doStamp"></block><block s="gotoXY"><block var="X"/><block var="Y"/></block><block s="removeClone"></block></script></custom-block></script></block></script></block-definition><block-definition s="Cell State" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>state</l><l>size</l></list></block><block s="doSetVar"><l>size</l><block s="getScale"></block></block><block s="setScale"><l>50</l></block><block s="doIfElse"><block s="reportTouchingColor"><color>127,127,127,1</color></block><script><block s="doSetVar"><l>state</l><l>Grey</l></block></script><script><block s="doIfElse"><block s="reportTouchingColor"><color>0,0,0,1</color></block><script><block s="doSetVar"><l>state</l><l>Black</l></block></script><script><block s="doSetVar"><l>state</l><l>White</l></block></script></block></script></block><block s="setScale"><block var="size"/></block></script></block><block s="doReport"><block var="state"/></block></script><scripts><script x="240.5" y="13.500000000000007"><block s="doDeclareVariables"><list><l>state</l><l>size</l></list></block><block s="doWarp"><script><block s="hide"></block><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="doSetVar"><l>size</l><block s="getScale"></block></block><block s="setScale"><l>50</l></block><block s="doIfElse"><block s="reportTouchingColor"><color>127,127,127,1</color></block><script><block s="doSetVar"><l>state</l><l>Grey</l></block></script><script><block s="doIfElse"><block s="reportTouchingColor"><color>0,0,0,1</color></block><script><block s="doSetVar"><l>state</l><l>Black</l></block></script><script><block s="doSetVar"><l>state</l><l>White</l></block></script></block></script></block><block s="removeClone"></block></script></custom-block><block s="show"></block></script></block><block s="doReport"><block var="state"/></block></script></scripts></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><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><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bf</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bf</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportGreaterThan"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doSetVar"><l>bf</l><block s="reportJoinWords"><list><block var="bf"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="bf"/></block></script></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><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><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="212" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bl</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bl</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><l>1</l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportLessThan"><block var="index"/><l>1</l></block><script><block s="doSetVar"><l>bl</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="bl"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doReport"><block var="bl"/></block></script></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>first</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>first</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block></script></block><block s="doReport"><block var="first"/></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportLetter"><block s="reportStringSize"><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>last</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>last</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block></script></block><block s="doReport"><block var="last"/></block></script></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></script></block-definition><block-definition s="Load Maze %&apos;maze&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>X</l><l>Y</l><l>slot</l><l>row</l><l>cursor</l></list></block><block s="doSwitchToCostume"><l>Arrow</l></block><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="doWarp"><script><block s="clear"></block><custom-block s="$stage draw grid"></custom-block><block s="setHeading"><l>90</l></block><block s="doSetVar"><l>row</l><l>7</l></block><custom-block s="for each %upvar of %l %cs"><l>line</l><block s="reportTextSplit"><block var="maze"/><l><option>line</option></l></block><script><block s="gotoXY"><block s="reportProduct"><l>32</l><l>-7</l></block><block s="reportProduct"><l>32</l><block var="row"/></block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>15</l><script><block s="doSetVar"><l>slot</l><block s="reportLetter"><block var="i"/><block var="line"/></block></block><block s="doIfElse"><block s="reportEquals"><block var="slot"/><l>*</l></block><script><block s="doSwitchToCostume"><l>Black</l></block><block s="doStamp"></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="slot"/><l>G</l></block><script><block s="doSwitchToCostume"><l>Grey</l></block><block s="doStamp"></block></script><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>^</l><l>v</l><l>&lt;</l><l>&gt;</l></list></block><block var="slot"/></block><script><block s="doSetVar"><l>X</l><block s="xPosition"></block></block><block s="doSetVar"><l>Y</l><block s="yPosition"></block></block><block s="doSetVar"><l>cursor</l><block var="slot"/></block></script></block></script></block></script></block><custom-block s="MOVE_FORWARD"></custom-block></script></custom-block><block s="doChangeVar"><l>row</l><l>-1</l></block></script></custom-block></script></block><block s="removeClone"></block></script></custom-block><block s="gotoXY"><block var="X"/><block var="Y"/></block><block s="setHeading"><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="cursor"/><l>^</l></block><l>0</l><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="cursor"/><l>&gt;</l></block><l>90</l><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="cursor"/><l>V</l></block><l>180</l><l>-90</l></custom-block></custom-block></custom-block></block><block s="show"></block></script></block-definition><block-definition s="$robot at goal?" type="predicate" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="hide"></block><block s="doDeclareVariables"><list><l>at goal</l></list></block><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="setScale"><l>10</l></block><block s="doSetVar"><l>at goal</l><block s="reportTouchingColor"><color>127,127,127,1</color></block></block><block s="removeClone"></block></script></custom-block><block s="show"></block></script></block><block s="doReport"><block var="at goal"/></block></script></block-definition><block-definition s="$robot follow left wall until goal" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doUntil"><custom-block s="$robot at goal?"></custom-block><script><block s="doIfElse"><custom-block s="CAN_MOVE %s"><l>left</l></custom-block><script><custom-block s="ROTATE_LEFT"></custom-block><custom-block s="MOVE_FORWARD"><comment w="154" collapsed="false">With maze searching using the &quot;follow a wall&quot; approach, it&apos;s critical you rotate AND move when one of the sides is free. </comment></custom-block></script><script><block s="doIfElse"><custom-block s="CAN_MOVE %s"><l>forward</l></custom-block><script><custom-block s="MOVE_FORWARD"></custom-block></script><script><block s="doIfElse"><custom-block s="CAN_MOVE %s"><l>right</l></custom-block><script><custom-block s="ROTATE_RIGHT"></custom-block><custom-block s="MOVE_FORWARD"><comment w="40" collapsed="false">Ditto</comment></custom-block></script><script><custom-block s="ROTATE_LEFT"></custom-block><custom-block s="ROTATE_LEFT"></custom-block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="JS Substring %&apos;sentence&apos; from %&apos;start&apos; through %&apos;end&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>start</l><l>end</l></list><l>return string.substring(start-1,end);</l></block><list><block var="sentence"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="Get Maze" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>original X</l><l>original Y</l><l>mazestring</l><l>state</l></list></block><block s="doSetVar"><l>mazestring</l><l></l></block><block s="doSetVar"><l>original X</l><block s="reportRound"><block s="reportQuotient"><block s="xPosition"></block><l>32</l></block></block></block><block s="doSetVar"><l>original Y</l><block s="reportRound"><block s="reportQuotient"><block s="yPosition"></block><l>32</l></block></block></block><custom-block s="tell %s to %cs"><custom-block s="clone"></custom-block><script><block s="doWarp"><script><block s="setHeading"><l>90</l></block><custom-block s="for %upvar = %n to %n %cs"><l>Y</l><l>7</l><l>-7</l><script><custom-block s="for %upvar = %n to %n %cs"><l>X</l><l>-7</l><l>7</l><script><block s="gotoXY"><block s="reportProduct"><l>32</l><block var="X"/></block><block s="reportProduct"><l>32</l><block var="Y"/></block></block><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block var="X"/><block var="original X"/></block><block s="reportEquals"><block var="Y"/><block var="original Y"/></block></block><script><block s="doSetVar"><l>state</l><block s="reportModulus"><block s="reportAttributeOf"><l><option>direction</option></l><l>Robot</l></block><l>360</l></block></block><block s="doSetVar"><l>mazestring</l><block s="reportJoinWords"><list><block var="mazestring"/><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="state"/><l>90</l></block><l>&gt;</l><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="state"/><l>0</l></block><l>^</l><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="state"/><l>180</l></block><l>v</l><l>&lt;</l></custom-block></custom-block></custom-block></list></block></block></script><script><block s="doSetVar"><l>state</l><custom-block s="Cell State"></custom-block></block><block s="doSetVar"><l>mazestring</l><block s="reportJoinWords"><list><block var="mazestring"/><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="state"/><l>Black</l></block><l>*</l><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="state"/><l>Grey</l></block><l>G</l><l> </l></custom-block></custom-block></list></block></block></script></block></script></custom-block><block s="doSetVar"><l>mazestring</l><block s="reportJoinWords"><list><block var="mazestring"/><block s="reportUnicodeAsLetter"><l>10</l></block></list></block></block></script></custom-block></script></block><block s="removeClone"></block></script></custom-block><block s="doReport"><block var="mazestring"/></block></script></block-definition><block-definition s="%&apos;x&apos; MOD %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportModulus"><block var="x"/><block var="y"/></block></block></script></block-definition><block-definition s="IF %&apos;test&apos; %&apos;then&apos; ELSE %&apos;else&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input><input type="%cs"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="then"/><list></list></block></script><script><block s="doRun"><block var="else"/><list></list></block></script></block></script></block-definition><block-definition s="%&apos;x&apos; * %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportProduct"><block var="x"/><block var="y"/></block></block></script></block-definition><block-definition s="NOT %&apos;boolean&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doReport"><block s="reportNot"><block var="boolean"/></block></block></script></block-definition><block-definition s="%&apos;x&apos; AND %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportAnd"><block var="x"/><block var="y"/></block></block></script></block-definition><block-definition s="%&apos;x&apos; OR %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportOr"><block var="x"/><block var="y"/></block></block></script></block-definition><block-definition s="IF %&apos;test&apos; %&apos;then&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doIf"><block var="test"/><script><block s="doRun"><block var="then"/><list></list></block></script></block></script></block-definition><block-definition s="REPEAT UNTIL %&apos;test&apos; %&apos;code&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="code"/><list></list></block></script></block></script></block-definition><block-definition s="clone" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="createClone"><l><option>myself</option></l></block><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block></script></block-definition><block-definition s="%&apos;var&apos; $arrowLeftOutline %&apos;value&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block var="value"/></block></script><list></list></block><list><block var="var"/></list></block></script></block-definition><block-definition s="MoveAndTurn %&apos;numMoves&apos; %&apos;numTurns&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><custom-block s="REPEAT %n TIMES %cs"><block var="numMoves"/><script><custom-block s="MOVE_FORWARD"></custom-block></script></custom-block><custom-block s="REPEAT %n TIMES %cs"><block var="numTurns"/><script><custom-block s="ROTATE_RIGHT"></custom-block></script></custom-block></script></block-definition><block-definition s="procName1 sides: %&apos;parameter1&apos; length: %&apos;parameter2&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>arg1</l><block var="parameter1"/></block><block s="doSetVar"><l>arg2</l><block var="parameter2"/></block><block s="doRepeat"><block var="arg1"/><script><block s="forward"><block var="arg2"/></block><block s="turn"><block s="reportQuotient"><l>360</l><block var="arg1"/></block></block></script></block></script></block-definition><block-definition s="procName2 %&apos;parameter1&apos; %&apos;parameter2&apos;" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>arg1</l><block var="parameter1"/></block><block s="doSetVar"><l>arg2</l><block var="parameter2"/></block><block s="doReport"><block s="reportProduct"><block var="arg2"/><block var="arg1"/></block></block></script></block-definition><block-definition s="RETURN %&apos;parameter1&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="parameter1"/></block></script></block-definition></blocks><variables><variable name="a"><l>17</l></variable><variable name="b"><l>5</l></variable><variable name="n"><l>6</l></variable><variable name="aList"><list struct="atomic" id="2731">20,40,60,60</list></variable><variable name="bList"><list struct="atomic" id="2732">20,40,60</list></variable><variable name="x"><l>40</l></variable><variable name="item"><l>0</l></variable><variable name="i"><l>3</l></variable><variable name="j"><l>3</l></variable><variable name="value"><l>60</l></variable><variable name="arg1"><l>5</l></variable><variable name="arg2"><l>5</l></variable></variables></project><media name="2021 CSP Reference Sheet Snap!" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>