<snapdata remixID="8256251"><project name="Roots of Quadratic Equations" app="Snap! 4.2, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" tempo="60" threadsafe="false" lines="round" ternary="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list id="2"></list></costumes><sounds><list id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="-2.2737367544323206e-13" y="-0.19801980198010938" heading="90" scale="1" rotation="1" draggable="true" costume="1" color="80,80,80" pen="tip" id="8"><costumes><list id="9"><item><costume name="dog1 a" center-x="81.5" center-y="47" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNjMiIGhlaWdodD0iOTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDwhLS0gRXhwb3J0ZWQgYnkgU2NyYXRjaCAtIGh0dHA6Ly9zY3JhdGNoLm1pdC5lZHUvIC0tPgogIDxnIGlkPSJJRDAuNzQ4MDgzNjE5NDAwODU4OSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NDk5OTk5ODgwNzkwNzEsIDAsIDAsIDAuOTQ5OTk5OTg4MDc5MDcxLCAwLCAtMC42NSkiPgogICAgPGcgaWQ9IkJhY2tfTGVnXzJfMV8iPgogICAgICA8cGF0aCBpZD0iRmlsbCIgZmlsbD0iI0ZGRkZGRiIgZD0iTSAyNi4xNzAgMzEuNzY4IEMgMjQuNjY4IDMxLjIzMiAyMy42MzEgMzEuODc0IDIyLjAyMiAzMS45MTAgQyAxOS42NjIgMzEuOTgyIDE3Ljg3NSAzMS4zMzkgMTYuMDE2IDMyLjc2NyBDIDE0LjQ0MyAzMy45ODMgMTQuMDUwIDM2Ljg3OSAxNS44NzIgMzcuNzc0IEMgMTguNTkwIDM4Ljg4MiAyMC43MzUgMzkuMTY4IDIzLjQ1MSAzOC4wNTkgQyAyNC41MjQgMzcuNjMwIDI1LjUyNSAzNy45MTcgMjYuMzExIDM3LjA1NyBDIDI3LjcwNyAzNS41NTggMjguMTAwIDMyLjQ4MSAyNi4xNzAgMzEuNzY4IFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgICAgPHBhdGggaWQ9Ik91dGxpbmUiIGZpbGw9IiMyNzI1MjUiIGQ9Ik0gMjUuODk2IDM2LjQ3OSBDIDI0LjQ2MCAzNi44MzggMjMuMjg5IDM3LjYxNiAyMS45NDUgMzguMDQxIEMgMjEuNDQzIDM4LjIwMSAyMC43MzUgMzguMjQ2IDE5Ljk2NyAzOC4xODcgQyAyMS4yNTMgMzcuMTM5IDIyLjU5OCAzNS43NjggMjIuNTk4IDM1Ljc2OCBDIDIyLjEwNCAzNS43MjUgMTkuNTY2IDM2Ljg0NCAxOC4zMTMgMzcuOTEwIEMgMTcuMzg2IDM3LjY2NiAxNi41MjAgMzcuMjc3IDE1Ljk0MyAzNi43NTcgQyAxNy4xODUgMzYuNDEyIDE5LjI3MiAzNC45MDEgMTkuOTUzIDM0LjQyNSBDIDIwLjE2OSAzNC4wNDAgMTYuNDYxIDM0Ljg1NyAxNS4zMjIgMzUuODAxIEMgMTUuMDk5IDM0LjgzMiAxNi4xMTQgMzMuODQzIDE2LjgyMyAzMy4zNTYgQyAxOS4yMzIgMzEuNjk5IDIzLjU1OCAzMi43NDcgMjYuNDE3IDMxLjU3NiBMIDI2LjQxNyAzMS4yNzAgQyAyMi42MDIgMzEuMTg2IDE1LjgwMyAyOS45ODIgMTQuMDAxIDM0LjU2OSBDIDEzLjcyMSAzNS4yODIgMTQuMDU0IDM2Ljk1OCAxNC40MzUgMzcuNjA5IEMgMTcuMjkxIDQyLjQ2OSAyOS4zMTAgMzguMzgyIDI1Ljg5NiAzNi40NzkgWiAiIHRyYW5zZm9ybT0ibWF0cml4KDEuMjE1NTA2MTk2MDIyMDMzNywgMCwgMCwgMS4yMTU1MDYxOTYwMjIwMzM3LCAtMi44LCAtMC40KSIvPgogICAgPC9nPgogICAgPGcgaWQ9IkVhcl9CYWNrIj4KICAgICAgPHBhdGggaWQ9IkVhcl9PdXRsaW5lXzFfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDkwLjE2NSAxNC4zMTkgQyA4OC43NTYgNy44MDkgODEuMjI3IDExLjk2OSA3OC43ODMgNi4yNjAgQyA3Ny4xMjUgMi4zODUgNzMuNDc3IC0wLjM2NSA3MC4yODggMS43MTMgQyA2OS4yNTkgMi4zODQgNjguOTUyIDUuNTY4IDcwLjE2OCA3LjY3OSBDIDcyLjY4OSAxMi4wNTkgNzcuMjY2IDEzLjYzMiA4Mi4yMzggMTMuODA0IEMgODQuOTExIDE0LjEzNiA4Ny4zNzUgMTMuNjA0IDg5LjkzNSAxNi4xMTQgQyA5MC4xNjUgMTUuNjA2IDkwLjMxMiAxNC44MjIgOTAuMTY1IDE0LjMxOSBaIE0gNzguNzU5IDEyLjI0NiBDIDc0Ljc0MiAxMS40MzAgNzAuOTcwIDkuMTI3IDcwLjg3NyA0LjE4NiBDIDcwLjk0OCAzLjE3OCA3MS45MzMgMi44MzMgNzIuNzEwIDIuOTk3IEMgNzUuNjEzIDMuNjA3IDc2LjMxOCA3LjMzNiA3OC4zNzggOS4xNDIgQyA4MS41NDggMTEuOTIyIDg3LjU1MyA5LjMxMyA4OS4zMDUgMTQuNDk3IEMgODcuOTM4IDEyLjM4MSA4My4xODIgMTMuMTQ1IDc4Ljc1OSAxMi4yNDYgWiAiIHRyYW5zZm9ybT0ibWF0cml4KDEuMjE1NTA2MTk2MDIyMDMzNywgMCwgMCwgMS4yMTU1MDYxOTYwMjIwMzM3LCAtMi44LCAtMC40KSIvPgogICAgICA8cGF0aCBpZD0iRWFyX0ZpbGxfMV8iIGZpbGw9IiM0RDU4RTEiIGQ9Ik0gNzguMzc4IDkuMTQyIEMgNzYuMzE4IDcuMzM2IDc1LjYxMyAzLjYwNyA3Mi43MTAgMi45OTcgQyA3MS45MzMgMi44MzMgNzAuOTQ4IDMuMTc4IDcwLjg3NyA0LjE4NiBDIDcwLjk3MCA5LjEyNyA3NC43NDIgMTEuNDMwIDc4Ljc1OSAxMi4yNDYgQyA4My4xODIgMTMuMTQ1IDg3LjkzOCAxMi4zODEgODkuMzA1IDE0LjQ5NyBDIDg3LjU1MyA5LjMxMyA4MS41NDggMTEuOTIyIDc4LjM3OCA5LjE0MiBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iQm9keV8xXyI+CiAgICAgIDxwYXRoIGlkPSJXaGl0ZV9Cb2R5X0ZpbGxfMV8iIGZpbGw9IiNGRkZGRkYiIGQ9Ik0gMTI5LjMxMiAzNC44NDEgQyAxMjguMjU5IDMyLjU2OCAxMjUuNDAwIDMxLjEzMCAxMjIuNTExIDI5Ljk4OCBDIDExOC40OTkgMjkuMTY3IDExMi41MDMgMjguMjg4IDExMi40ODIgMjguMjk3IEMgMTA5LjU1MSAyNy41OTAgMTA1LjkzOSAyNy4zMjIgMTAzLjMzMyAyNS4xMjQgQyAxMDMuMjQxIDI1LjA0NiA5Mi4wMjkgMTcuMDExIDg5Ljc4MSAxNi4xMTIgQyA4Ny4yODIgMTUuMTEzIDg0LjIwNCAxNS40NzUgODIuOTkxIDE2LjExMiBDIDc3LjA4MSAyMC4zMzQgNzQuMjU0IDI3LjAxNSA2NS45NjggMjYuNTg5IEMgNTYuNDI0IDI2LjA5OSA0Ni41ODAgMjQuMTQyIDM3LjA0OCAyMy4wNjggQyAzMy40MDEgMjIuMDU0IDMwLjE5NiAyNC4zMzUgMjguMDYwIDI3LjMzOCBDIDI1LjY2NiAyOS4yNTEgMjYuNDczIDM3LjUzMSAyNy4yNTkgMzkuODY4IEMgMjcuMjg2IDM5Ljg1OSAyNy4zMTIgMzkuODUwIDI3LjMzNiAzOS44MzkgQyAyOC41NTcgNDQuNzA2IDM1LjY2MCA0Ny43ODMgNDAuNTE1IDQ3LjUyNCBDIDQ0LjYwMCA0Ny4zMDUgNDkuNjY1IDQ3LjUzMyA1My4wNzAgNTAuMTQ1IEMgNTcuMTE4IDUzLjI1MCA2NS42NzAgNTUuMTg0IDcwLjYyNSA1NC43OTcgQyA4MS40ODIgNTMuOTUwIDg1LjE0NSA0NS45NzkgODUuMzMzIDQ2LjA4NSBDIDg2LjI5NCA0Ni4xNzMgODkuMjc0IDQ3LjQ4NyA4OS41ODIgNDcuNDE2IEMgODkuOTY5IDQ3LjQxNCA5MS4xNjUgNDYuOTk2IDkxLjIwOCA0Ni43OTAgQyA5MS44OTMgNDYuMzc5IDkwLjkyOCA0NS4zNTYgOTAuNzkxIDQ1LjE0NiBDIDg4LjgzMyA0Mi4xNDUgODcuODY1IDQwLjQ1MiA4Ny45MTcgMzYuNTAyIEMgODcuOTE3IDM2LjUwMSA4OC4zNjggMzMuODQ1IDg4LjM2OCAzMy44NDUgQyA4OC4zNjggMzMuMTc4IDg5LjA0MyAzMy4zOTkgODkuMzA1IDMzLjkxOSBDIDg5LjcwNSAzNC40MzIgOTAuMTE5IDM0LjY4NyA5MC41MzYgMzUuNDg2IEMgOTcuMTQ1IDQ4LjE1NSAxMTIuNjQ4IDYwLjA2MiAxMjYuMjUwIDQ3Ljg5MyBDIDEyNy43NjAgNDYuMzgzIDEyOS4wMTYgNDQuNzgyIDEyOS43NzAgNDIuNTIwIEMgMTI5Ljc2OCA0MC4yNTMgMTMwLjUyMSAzNy4yMzUgMTI5LjMxMiAzNC44NDEgIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgICAgPHBhdGggaWQ9IkJsdWVfRmlsbF8xXyIgZmlsbD0iIzRENThFMSIgZD0iTSAzNiAyMy4xNjcgQyAzNiAyMy4xNjcgMzMuOTE3IDI4LjU4NCAzNC42NjcgMjkuNDE3IEMgMzUuNDE3IDMwLjI1MCAzNi43MTYgMzEuNDM3IDM5LjY1MCAzMS43MTggQyA0Mi41ODQgMzEuOTk5IDQzIDM1LjE2OCA0MyAzNS4xNjggQyA0MyAzNS4xNjggNDYuOTE3IDQ0IDU2LjkxNyAzOS4zMzMgQyA2Ni45MTcgMzQuNjY2IDY2LjU4NCAzNy4xNjYgNjcuOTE3IDM3LjgzMyBDIDY5LjI1MCAzOC41MDAgNzAuOTE3IDQxLjUwMCA3Ni4zMzQgMzcuNzUwIEMgODEuNzUxIDM0IDg1Ljk1MSAzNS43ODAgODYuMzM0IDM1LjMyOSBDIDg2LjcxNyAzNC44NzggODguMTQ0IDM1LjE2OCA4OC4xNDQgMzUuMTY4IEMgODguMTQ0IDM1LjE2OCA4OC4yMTEgMzEuNDI0IDkwLjI3MyAzNS4wNDUgQyA5MC4yNzMgMzUuMDQ1IDkzLjQyNCAzNS41MDcgOTUuMjUyIDMyLjUwMCBDIDk3LjA4MCAyOS40OTMgOTUuNjY5IDI1LjcwNyA5NS42NjkgMjUuNzA3IEMgOTUuNjY5IDI1LjcwNyA5MC4zMzMgMTYuOTgyIDg0LjUwMCAxNS40OTEgQyA4NC41MDAgMTUuNDkxIDc5LjUwMCAxNy43OTMgNzYuNjY3IDIyLjgxMyBDIDczLjgzNCAyNy44MzMgNjUuMzM0IDI1LjQ5NiA2NC44MzQgMjUuNzA2IEMgNjQuMzM0IDI1LjkxNiA0MC41ODMgMjIuNTAwIDM2IDIzLjE2NyBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJCbHVlX0V5ZV9TcG90XzFfIiBmaWxsPSIjNEQ1OEUxIiBkPSJNIDk0LjU4MyAxOC41ODMgQyA5NC41ODMgMTguNTgzIDEwMy43NjkgMjUuOTMxIDEwNi4yNTAgMjcuMDgzIEMgMTA2LjI1MCAyNy4wODMgMTA1LjIyOSAzMS45MDMgMTAyLjQxNyAzMS4wNjYgQyA5OS42MDUgMzAuMjI5IDk0LjY2NiAyMiA5NC41ODMgMTguNTgzIFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgICAgPGcgaWQ9IkJvZHlfT3V0bGluZV8xXyI+CiAgICAgICAgPHBhdGggaWQ9IklEMC41MzA3MjMyOTg0MzQxNjgxIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDM5LjE2NiA0OS4yMzAgQyAzOS41NjQgNDkuMjUyIDM5LjU3NyA0OS4yNTQgMzkuMzIwIDQ5LjIxMCBDIDM5LjI2OSA0OS4yMTEgMzkuMjE3IDQ5LjIxMCAzOS4xNjYgNDkuMjExIEwgMzkuMTY2IDQ5LjIzMCBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgICAgPHBhdGggaWQ9IklEMC42MTM2MDQwODQ1ODg1ODczIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDEzMC42MjUgMzcuMTI1IEMgMTI5LjYyNSAyOS43NTAgMTE5LjkzNSAyOC45MjYgMTE2LjYwMiAyOC4yMjcgQyAxMTYuMTk2IDI4LjAzNyAxMDkuNTQwIDI2LjgxOCAxMDYuMjcwIDI2LjI5NCBMIDEwNi4yNzAgMjYuMjk0IEMgMTA2LjI3MCAyNi4yOTQgOTYuMjc5IDE4LjkxMCA5Ni4wNTIgMTguNzAxIEMgOTUuNjk4IDE4LjM3MyA5NS4zNDMgMTguMDY5IDk1LjAyOCAxNy44MDkgQyA5MS42NDUgMTUuMDE3IDg1Ljg4MiAxMy4zODYgODEuODc2IDE1LjcyNSBDIDc3LjExMCAxOC41MDcgNzYuMDEyIDI0LjU1OCA2OS41MDQgMjQuNzk4IEMgNjQuMDc0IDI0Ljk5OCA1OS4wODcgMjQuMzAxIDUzLjc0NiAyMy40NTMgQyA1MC40MjggMjIuOTI2IDQwLjQ3MiAyMi4zMjMgMzYuNzQ5IDIyLjE1MiBDIDM2Ljc0OSAyMi4xNTIgMzEuODM0IDIxLjQyNyAyNy45MTcgMjUuOTY0IEMgMjUuNzU3IDI5LjIyNCAyNC4zNTkgMzQuOTM1IDI1Ljg2MSAzOC4yMTggTCAyNS44NTAgMzguMjE1IEMgMjYuOTM4IDQ3LjEwNSAzNy44MDcgNDkuMTAwIDM5LjMyMCA0OS4yMTAgQyA0NC4wNDAgNDkuNTUzIDQ4LjgwMiA0OS43NzggNTMuMzI3IDUxLjgzNSBDIDUzLjUyMSA1MS45MjggNTMuNzMzIDUyLjAyNCA1My45ODMgNTIuMTI2IEMgNTcuMzgxIDUzLjUwNSA2MC4xMjggNTYuMzQ1IDcyLjYyNiA1NS4yMzQgQyA4Mi43NTEgNTQuMzM0IDg0Ljg2MSA0Ny44OTIgODQuODYxIDQ3Ljg5MiBDIDg0Ljg2MSA0Ny44OTIgODYuNTY0IDQ2LjcwNyA4Ny4zMDAgNDcuMTEyIEMgODguNzI3IDQ3Ljg5NiA5Mi4xNzEgNDguNTY4IDkyLjc5OSA0Ni44NTcgQyA5MC44NzkgNDQuODkyIDg3Ljc4NyAzOS40MzUgODguODc3IDMzLjU5NiBDIDg5LjM2OCAzNC4zMzggODkuNTE3IDM0LjgzMSA5MC4zMzkgMzYuMjU4IEMgOTIuNzcwIDQwLjU1NSA5NS42MzUgNDQuOTg0IDk5LjcxNiA0Ny45MzYgQyAxMDQuMTg4IDUyLjQ5NCAxMTAuODUyIDUzLjU3NyAxMTYuOTA2IDUzLjE0NSBDIDEyMC42NzcgNTIuODc2IDEyNC4xOTEgNTAuODkyIDEyNi43NTcgNDcuODk2IEMgMTI2Ljc2MCA0Ny44OTUgMTI2Ljc3MCA0Ny44OTIgMTI2Ljc3MCA0Ny44OTIgQyAxMjYuNzcwIDQ3Ljg5MiAxMzEuNjI1IDQ0LjUwMCAxMzAuNjI1IDM3LjEyNSBaIE0gOTYuNjc3IDIxLjM2OSBDIDk2LjY4MiAyMS4zNzIgOTYuNjg4IDIxLjM3MSA5Ni42OTMgMjEuMzc0IEMgOTguMTYzIDIyLjg0NSAxMDEuMDg0IDI1LjM0NSAxMDUuMzIzIDI3LjA5MyBDIDEwNS4zNzAgMjcuMTE2IDEwNS40MTUgMjcuMTMzIDEwNS40NjMgMjcuMTU1IEMgMTA1LjQxNyAyNy44MDEgMTA1LjA0OSAyOC4zNjggMTA0LjgyOCAyOC42NTYgQyAxMDQuNDc1IDI5LjA4NyAxMDQuMTEyIDI5LjU4MyAxMDMuNjY2IDI5Ljc4OSBDIDEwMS44ODYgMzAuNjE0IDk5LjIyMiAyOC4zNTQgOTguNDU2IDI2Ljg4MiBDIDk3LjM0MyAyNC43MzEgOTYuNjY3IDIyLjEwMiA5NS4yMDcgMjAuMDMyIEMgOTUuNjUyIDIwLjQzNyA5Ni4yMTYgMjEuMDkyIDk2LjY3NyAyMS4zNjkgWiBNIDkwLjk2MCA0Ni4zMzggQyA4OS4xMDYgNDcuOTEzIDg2LjcwNSA0NS4wMjkgODUuNDM0IDQ0Ljg5OCBDIDg0Ljg5MCA0NS4xNDYgODQuMjI3IDQ1LjcxMyA4My43NjMgNDYuMzcyIEMgODMuOTI1IDQ2LjM2OSA4NC4zNjEgNDYuMzY1IDg0LjQxNCA0Ni4zNzEgTCA4My43NjMgNDYuMzcyIEMgODMuNzYzIDQ2LjM3MiA4MS40MzYgNTEuMjkxIDc0LjEyNSA1My4yMzEgQyA2Ni44MTQgNTUuMTcxIDU0LjMwMSA0OS43MDAgNTQuMzAxIDQ5LjcwMCBDIDUzLjU1NSA0OS4zMjYgNTIuNzkyIDQ4Ljk4MSA1Mi4wMDcgNDguNjczIEMgNDguMTEwIDQ3LjE0MyA0My42NjYgNDYuNjgyIDM5LjE2NiA0Ni44ODQgQyAzMC40MDYgNDYuMjgzIDI3Ljg5NSAzOC43NjEgMjcuODk1IDM4Ljc2MSBMIDI3Ljg5NCAzOC43NjEgQyAyNy42MjYgMzcuNDcwIDI3LjI0NyAzNi4yMjMgMjcuMzA4IDM0LjgyNCBDIDI3LjQzNiAzMS44NzYgMjguMDU0IDI5LjI2MiAyOS41MjkgMjYuODg0IEMgMjkuNTI5IDI2Ljg4NCAzMS4yMjAgMjQuNTM3IDM1LjMzNiAyNC4xNTYgQyAzNC44NjEgMjQuNzI5IDM0LjUzMyAyNS44NjUgMzQuMzgzIDI2LjI3MiBDIDMyLjk1MCAzMC4xODYgMzUuNDk2IDMzLjIzNyAzOS41MDYgMzMuMDQ1IEMgNDAuOTk2IDMyLjk3MyA0NC4wMzggMzkuMjc4IDQ3LjYyMyA0MC45NDcgQyA1MC40OTMgNDIuMjgwIDU0Ljk3NiA0Mi45MjcgNTcuNTIxIDQwLjU1NSBDIDU5LjU0NCAzOC42NzEgNjEuNDQ4IDM3Ljc4NyA2NC41MTAgMzguMTI0IEMgNjcuMTQ5IDM4LjQxNSA3MC4wNDQgMzkuOTI4IDcxLjIyOSA0MC4xMTkgQyA3NC4wOTcgNDAuNTgxIDc1Ljc0NiAzOS4wNDYgNzguNDY1IDM3Ljk5MSBDIDgxLjEwNyAzNi45NjYgODMuMDY5IDM2LjIwMSA4NS43MDQgMzYuMDQ0IEwgODcuMzI1IDM2LjIyOSBDIDg2Ljg1OCAzOS4wODggODcuNTMzIDQzLjI2OCA5MC45NjAgNDYuMzM4IFogTSA4OS42MDAgMzMuMjYyIEMgODkuMzk4IDMzLjAzMSA4OS4xOTUgMzIuOTY4IDg4Ljk4MCAzMy4wNDUgQyA4OC45ODEgMzMuMDQ0IDg4Ljk4MSAzMy4wNDMgODguOTgxIDMzLjA0MiBDIDg4Ljk3OCAzMy4wNDMgODguOTc1IDMzLjA0NiA4OC45NzEgMzMuMDQ4IEMgODguOTAyIDMzLjA3NCA4OC44MzAgMzMuMTE5IDg4Ljc1NyAzMy4xNzcgQyA4OC4zNjQgMzMuNDM0IDg4LjAxMCAzMy45NjkgODcuNzM0IDM0LjY3NyBMIDg2LjYxMSAzNC44NzkgQyA4My4zNDIgMzQuODgyIDgxLjE2NiAzNS4wMDYgNzguMDg4IDM2LjE5OSBDIDc1LjUyOCAzNy4xODIgNzQuMjc2IDM5LjQ2NCA3MS41ODAgMzkuMDI4IEMgNzAuNzMyIDM4Ljg5MiA2OC4xODUgMzUuNTg3IDYzLjU1NSAzNS42NTEgQyA1OS4wNzAgMzUuNzEzIDU2LjI3MSA0MC4wMjYgNTIuMDk1IDQwLjIxMCBDIDQ3LjMxMSA0MC40MTggNDQuNDkxIDM2LjYwMCA0Mi41MDAgMzIuODI5IEMgNDAuODk4IDI5Ljc5MiAzOC4xNDIgMzEuMTA2IDM2LjA3NiAyOS43MDQgQyAzNC4zODYgMjguNTU2IDM2LjMxMCAyNS4yMzkgMzYuMTQ3IDI0LjEwOCBDIDM2LjQxMCAyNC4xMDEgMzYuNjc4IDI0LjA5OCAzNi45NTkgMjQuMTA4IEMgNDYuNTA1IDI0LjMyMSA1NS42MjMgMjUuMTcxIDY1LjAzMiAyNy4xODcgQyA3Ni41NzEgMjkuNjU5IDc3LjQ0MCAyMC4yOTUgODMuNTM4IDE3LjQwMiBDIDg1LjY3OCAxNi45OTcgODYuMjQwIDE3LjIwNSA4Ni4zMDMgMTcuMjMzIEMgOTAuMTExIDE5LjAxNiA5Ny45MzMgMjUuNjI2IDk1LjQyMCAzMS4yNjUgQyA5NC44NTQgMzIuNTM4IDkzLjQ4MCAzMy4wNDggOTIuMzgzIDMzLjg0MSBMIDkyLjM4MCAzMy44NDAgTCA5MC43NTYgMzUuMDExIEMgOTAuMzYzIDM0LjQyMSA4OS45NzcgMzMuODM1IDg5LjYwMCAzMy4yNjIgWiBNIDEyNS45ODAgNDYuODA2IEMgMTI1LjM3NiA0Ny4yODAgMTI1LjA0NiA0Ny42MDUgMTI0Ljg5NCA0Ny44MzAgQyAxMTkuNDk5IDUyLjM5MyAxMTEuNjU3IDUxLjY0MyAxMDUuNDQ1IDQ5LjQxMCBDIDk5LjU4NSA0Ny4wNzMgOTUuMzAzIDQxLjY5OCA5MS43MzUgMzYuNDY3IEwgOTQuMDYxIDM1LjA3NyBDIDk0LjIyOSAzNC45OTcgOTQuMzkyIDM0LjkwMCA5NC41NTEgMzQuNzg1IEwgOTQuNjM1IDM0LjczNSBMIDk0LjYyNiAzNC43MzIgQyA5Ni4zNTMgMzMuNDEwIDk3LjUzMSAzMC4wOTYgOTYuOTgxIDI3LjE4NSBDIDk2LjE2OSAyMi45MDIgOTAuMzM1IDE4LjU5NCA4Ny41MTggMTYuNjEwIEMgODcuNDk2IDE2LjU5NCA4Ny40NjcgMTYuNTc3IDg3LjQ0MSAxNi41NjAgQyA4OS43MjEgMTYuNTQxIDkxLjU2OCAxNy4zMTUgOTMuMzk1IDE4LjYwMiBDIDkzLjc5OSAxOS43NTUgOTQuNzk5IDIxLjM5MyA5NS4yNDMgMjIuMTkzIEMgOTYuODM3IDI1LjA3MCA5Ny41NzkgMjguMjgwIDEwMC4wMTggMzAuNjYwIEMgMTAxLjkyMyAzMi41MTYgMTA0LjYwNCAzMS42MzYgMTA1LjczMCAzMC4yNzIgQyAxMDYuNjgxIDI5LjU3MyAxMDYuODUxIDI4LjQyMiAxMDYuODUyIDI3LjY4MSBDIDEwNy4zNjUgMjcuODQ4IDEwNy45OTYgMjguMDM1IDEwOC43MTUgMjguMjMyIEMgMTA4LjcyMCAyOC4yMzMgMTA4LjcyNSAyOC4yMzUgMTA4LjczMCAyOC4yMzYgTCAxMDguNzI5IDI4LjIzNiBDIDExMS44OTQgMjkuMDk4IDExNi41MDkgMzAuMDc2IDExNy44MTcgMjkuNzA0IEMgMTE3LjgxNyAyOS43MDQgMTI3LjAxNyAzMS4wMzQgMTI4LjQ5OSAzNS4wMTcgQyAxMjkuOTgxIDM5IDEyOS4wNjIgNDQuMzg3IDEyNS45ODAgNDYuODA2IFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9IkVhcl9Gcm9udCI+CiAgICAgIDxwYXRoIGlkPSJFYXJfT3V0bGluZSIgZmlsbD0iIzI3MjUyNSIgZD0iTSA4MS44NjUgMjAuNjg3IEMgODEuNjQ0IDIwLjI5NiA4MC44ODYgMTkuNzMyIDgwLjU2NCAxOS4zMjIgQyA3OC42ODkgMTYuOTI3IDc4LjI5MSAxNC44NTEgNzUuNTIxIDEzLjA2MyBDIDY3Ljc0NyA4LjA0MSA2MS40MzEgMTMuODY3IDU3LjYwOCAxMi4yMDIgQyA1Ni40ODUgMTEuNzEyIDU1LjQwMSAxMS4xMjUgNTQuMjgyIDEwLjYyMCBDIDQ5LjIxNiA4LjM0MCA0MS4xNTUgMTcuNjk0IDU0LjA4MCAyMi4yMjYgQyA2Mi43MzEgMjUuMjU5IDY4LjcyMCAxNS40MDcgNzMuOTYxIDE4LjU2OCBDIDc1Ljk1OSAxOS43NzIgNzkuMTIxIDIxLjc1NSA4MS41MjQgMjEuMTg1IEMgODEuNjgwIDIxLjE0OSA4MS45NjcgMjAuODcxIDgxLjg2NSAyMC42ODcgWiBNIDcwLjQ4MyAxNi4wNjIgQyA2NS43NDYgMTcuMjExIDYxLjc1OCAyMS42NDAgNTUuOTQyIDIwLjczNiBDIDUyLjg4NiAyMC4yNjAgNDkuNzk1IDE4LjQ0MiA0OS4xMzkgMTUuNTI4IEMgNDguOTU3IDE0LjcyNSA0OS4yMzcgMTMuMDk4IDUwLjQzMyAxMi4zOTQgQyA1Mi40ODQgMTEuMTg1IDU0LjgyNyAxMi41OTggNTYuMjM2IDEzLjgwNCBDIDU5LjU2MyAxNi42NDYgNjMuODc2IDE0LjA3NyA2Ny4yNTggMTMuMDA4IEMgNzIuMTU5IDEyLjAwMiA3Ni45NjcgMTYuNTEwIDc5LjQ3MyAxOS44NjIgQyA3Ni44NjMgMTguNjM1IDczLjcyNCAxNS43NjcgNzAuNDgzIDE2LjA2MiBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJFYXJfRmlsbCIgZmlsbD0iIzRENThFMSIgZD0iTSA2Ny4yNTggMTMuMDA4IEMgNjMuODc2IDE0LjA3NyA1OS41NjMgMTYuNjQ2IDU2LjIzNiAxMy44MDQgQyA1NC44MjcgMTIuNTk4IDUyLjQ4NCAxMS4xODUgNTAuNDMzIDEyLjM5NCBDIDQ5LjIzNyAxMy4wOTggNDguOTU3IDE0LjcyNSA0OS4xMzkgMTUuNTI4IEMgNDkuNzk1IDE4LjQ0MiA1Mi44ODYgMjAuMjYwIDU1Ljk0MiAyMC43MzYgQyA2MS43NTggMjEuNjQwIDY1Ljc0NiAxNy4yMTEgNzAuNDgzIDE2LjA2MiBDIDczLjcyNCAxNS43NjcgNzYuODYzIDE4LjYzNSA3OS40NzMgMTkuODYyIEMgNzYuOTY3IDE2LjUxMCA3Mi4xNTkgMTIuMDAyIDY3LjI1OCAxMy4wMDggWiAiIHRyYW5zZm9ybT0ibWF0cml4KDEuMjE1NTA2MTk2MDIyMDMzNywgMCwgMCwgMS4yMTU1MDYxOTYwMjIwMzM3LCAtMi44LCAtMC40KSIvPgogICAgPC9nPgogICAgPGcgaWQ9IlJfRXllXzFfIj4KICAgICAgPHBhdGggaWQ9Ik91dGxpbmVfMV8iIGZpbGw9IiMyNzI1MjUiIGQ9Ik0gOTguMzcwIDIyLjYyNiBDIDk2LjQwMiAyNi44MjIgMTAzLjQ2NyAzMC44OTcgMTAzLjg0NiAyNC4zMzEgQyAxMDQuMDM5IDIwLjk1OCA5OS44NTIgMTkuNDY0IDk4LjM3MCAyMi42MjYgWiAiIHRyYW5zZm9ybT0ibWF0cml4KDEuMjE1NTA2MTk2MDIyMDMzNywgMCwgMCwgMS4yMTU1MDYxOTYwMjIwMzM3LCAtMi44LCAtMC40KSIvPgogICAgICA8cGF0aCBpZD0iV2hpdGUiIGZpbGw9IiNGRkZGRkYiIGQ9Ik0gOTkuNTAwIDIyLjYyNiBDIDk3LjI3MCAyNC42MTIgMTAxLjAxOCAyOC4yMjkgMTAyLjUzNyAyNS40NDggQyAxMDMuMzYxIDIzLjk0MCAxMDEuNDk3IDIwLjg0OSA5OS41MDAgMjIuNjI2IFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgICAgPHBhdGggaWQ9IlB1cGlsIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDEwMS45NjIgMjMuNjE1IEMgMTAyLjIxOSAyMy42MTUgMTAyLjQ1MSAyMy43MTkgMTAyLjYxOSAyMy44ODggQyAxMDIuNzg4IDI0LjA1NiAxMDIuODkyIDI0LjI4OCAxMDIuODkyIDI0LjU0NSBDIDEwMi44OTIgMjQuODAyIDEwMi43ODggMjUuMDM0IDEwMi42MTkgMjUuMjAyIEMgMTAyLjQ1MSAyNS4zNzEgMTAyLjIxOSAyNS40NzUgMTAxLjk2MiAyNS40NzUgQyAxMDEuNzA1IDI1LjQ3NSAxMDEuNDczIDI1LjM3MSAxMDEuMzA1IDI1LjIwMiBDIDEwMS4xMzYgMjUuMDM0IDEwMS4wMzIgMjQuODAyIDEwMS4wMzIgMjQuNTQ1IEMgMTAxLjAzMiAyNC4yODggMTAxLjEzNiAyNC4wNTYgMTAxLjMwNSAyMy44ODggQyAxMDEuNDczIDIzLjcxOSAxMDEuNzA1IDIzLjYxNSAxMDEuOTYyIDIzLjYxNSBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTF9FeWVfMV8iPgogICAgICA8cGF0aCBpZD0iT3V0bGluZV8yXyIgZmlsbD0iIzI3MjUyNSIgZD0iTSA4NS43MzYgMjQuNDkzIEMgODIuMjQ2IDI5LjkxMSA5Mi42OTMgMzYuNzYzIDk0LjU5MiAyOS40ODYgQyA5Ni4wMjUgMjMuOTk4IDg5LjQwNCAxOC44MDEgODUuNzM2IDI0LjQ5MyBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJXaGl0ZV8xXyIgZmlsbD0iI0ZGRkZGRiIgZD0iTSA4Ni42MTQgMjUuNzYwIEMgODYuMzU1IDMwLjM4NSA5Mi42MDcgMzMuMjQxIDkzLjMzNSAyOC45NjQgQyA5My45NTIgMjUuMzMzIDkxLjcxNiAyMy40MzIgODkuNDc1IDIzLjMzMCBDIDg3LjkwMCAyMy4yNTggODYuNjg0IDI0LjQ3MyA4Ni42MTQgMjUuNzYwIFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgICAgPHBhdGggaWQ9IlB1cGlsXzFfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDkyLjEzMCAyNS44MzIgQyA5Mi42MTMgMjUuODMyIDkzLjA1MSAyNi4wMjggOTMuMzY5IDI2LjM0NSBDIDkzLjY4NiAyNi42NjMgOTMuODgyIDI3LjEwMSA5My44ODIgMjcuNTg0IEMgOTMuODgyIDI4LjA2NyA5My42ODYgMjguNTA1IDkzLjM2OSAyOC44MjMgQyA5My4wNTEgMjkuMTQwIDkyLjYxMyAyOS4zMzYgOTIuMTMwIDI5LjMzNiBDIDkxLjY0NyAyOS4zMzYgOTEuMjA5IDI5LjE0MCA5MC44OTEgMjguODIzIEMgOTAuNTc0IDI4LjUwNSA5MC4zNzggMjguMDY3IDkwLjM3OCAyNy41ODQgQyA5MC4zNzggMjcuMTAxIDkwLjU3NCAyNi42NjMgOTAuODkxIDI2LjM0NSBDIDkxLjIwOSAyNi4wMjggOTEuNjQ3IDI1LjgzMiA5Mi4xMzAgMjUuODMyIFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJUYWlsXzFfIj4KICAgICAgPHBhdGggaWQ9IlRhaWxfRmlsbF8xXyIgZmlsbD0iI0ZGRkZGRiIgZD0iTSAzNC4xNTAgMTEuOTMwIEMgMzcuMDQ2IDEwLjE0MSA0MC4zNzEgOS4yMTIgNDIuOTQ0IDguMTQwIEMgMzcuMTUzIDUuNzA0IDMyLjI1NSA1LjU2MyAyNy4yODYgOC4zNTEgQyAyMy42NDAgMTAuMzkwIDIyLjUzMSAxNC4xMDcgMjMuMTM5IDE4LjIxOSBDIDIzLjUzMyAyMC45NzEgMjQuMjgzIDIyLjU3OSAyNS45OTkgMjQuNzk2IEMgMjYuMjIxIDI1LjA5MiAyNi40OTggMjUuMzI0IDI2Ljc3OSAyNS41NDEgTCAyNi43NzkgMjUuNTQxIEMgMjYuNzc5IDI1LjU0MSAyOC4xOTUgMjcuOTYyIDI4LjYyMiAyOC4yMDMgQyAyOC42MjIgMjguMjAzIDMwLjI5MyAyOS4yMjcgMzEuNjY4IDI4LjQ3NyBDIDMzLjA0MyAyNy43MjcgMzQuMzYwIDI4LjEwMyAzMi42MTAgMjUuMTY1IEwgMzEuMzM1IDIyLjM1NiBDIDMxLjE3NCAyMS41NjIgMzEuMDg3IDIwLjcxNiAzMS4wMDQgMTkuOTM4IEMgMzAuNjExIDE2LjU3NyAzMS4yNTQgMTMuNzE3IDM0LjE1MCAxMS45MzAgWiAiIHRyYW5zZm9ybT0ibWF0cml4KDEuMjE1NTA2MTk2MDIyMDMzNywgMCwgMCwgMS4yMTU1MDYxOTYwMjIwMzM3LCAtMi44LCAtMC40KSIvPgogICAgICA8cGF0aCBpZD0iVGFpbF9PdXRsaW5lXzFfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDMyLjM5MiAxNC45MDcgQyAzNC4zMDIgMTEuNTMyIDQwLjExMCA5LjEzOSA0NC44NTEgOC4zNTEgQyAzOS44MTkgNS40MTAgMjYuOTUyIDEuOTg3IDIzLjAxNCAxMy4wMzggQyAyMS4zMzIgMTcuNzU5IDIzLjcwMCAyMi43OTYgMjcuMDc2IDI2LjgxNCBDIDI3LjQ4OCAyNy4zMDQgMjguMjczIDI4LjcwOSAyOS4wNDggMjguNDQzIEMgMjkuNzk2IDI4LjE4NyAyOC41MzAgMjYuNTkzIDI4LjUyNSAyNi41ODQgQyAyNy40MTIgMjQuNzAyIDI2LjcxMSAyMy40NjcgMjYuMjI3IDIyLjcyMCBDIDI0LjE5MSAxOS41NzIgMjMuNDExIDE0LjMzOCAyNS43MDYgMTEuMTczIEMgMjkuMTY0IDYuNDAzIDM2LjY0MCA2LjAzOSA0MS42MzggOC4yNjUgQyAzNi42NzcgOC40MjQgMzEuNzExIDExLjQyNyAzMC40ODEgMTQuOTA3IEMgMjkuNTc0IDE3LjQ3MSAyOS45OTQgMjIuMzg3IDMxLjY1NyAyNS4xMDEgQyAzMS42NTggMjUuMTAyIDMxLjY1OCAyNS4xMDQgMzEuNjU5IDI1LjEwNiBDIDMyLjM2MSAyNi41NTIgMzMuMDU0IDI2Ljg3NCAzMy42NTUgMjYuNDYxIEMgMzQuMjU2IDI2LjA0OCAzMi45MDMgMjQuMTExIDMyLjkwMyAyNC4xMTEgQyAzMS4yMDkgMjEuNTU5IDMwLjg4MiAxNy41NzYgMzIuMzkyIDE0LjkwNyBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iTm9zZV8xXyI+CiAgICAgIDxwYXRoIGlkPSJPdXRsaW5lXzNfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDEzNS43NDcgMzQuNjA3IEMgMTM0LjU0NCAyNC4zMzUgMTE1LjMxNiAyOC4wMTEgMTEzLjEzMCAzNi4wMzkgQyAxMTAuNDk5IDQ1LjY5OSAxMjUuMTQ1IDQ3LjMwMiAxMzAuOTczIDQzLjMzMyBDIDEzMy45ODYgNDEuMjc5IDEzNi4xOTEgMzguNDA4IDEzNS43NDcgMzQuNjA3IFogTSAxMzQuMDk4IDM2LjY5MCBDIDEzMy4wNTcgNDQuMDgzIDEyMS4zMzQgNDQuODEyIDExNi40NzMgNDAuOTQ1IEMgMTE1LjIxMyAzOS45NDMgMTE0LjM5OSAzOC40MDcgMTE0LjkxMSAzNi45MDkgQyAxMTcuNTU3IDI5LjE1MyAxMzUuMjkyIDI4LjE5NSAxMzQuMDk4IDM2LjY5MCBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJGaWxsXzFfIiBmaWxsPSIjOEI0Q0IxIiBkPSJNIDExNC45MTAgMzYuOTA5IEMgMTE0LjM5OCAzOC40MDcgMTE1LjIxMyAzOS45NDMgMTE2LjQ3MiA0MC45NDUgQyAxMjEuMzMzIDQ0LjgxMiAxMzMuMDU2IDQ0LjA4MyAxMzQuMDk3IDM2LjY5MCBDIDEzNS4yOTIgMjguMTk1IDExNy41NTcgMjkuMTUzIDExNC45MTAgMzYuOTA5IFogIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjIxNTUwNjE5NjAyMjAzMzcsIDAsIDAsIDEuMjE1NTA2MTk2MDIyMDMzNywgLTIuOCwgLTAuNCkiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJGcm9udF9MZWdfMl8xXyI+CiAgICAgIDxwYXRoIGlkPSJGaWxsXzJfIiBmaWxsPSIjRkZGRkZGIiBkPSJNIDg1LjM0MSA0OC40NDcgQyA4NC43NTQgNDguODEwIDc4Ljk3MiA0NS4wMDYgNzUuOTY2IDQ2LjE2NyBDIDcxLjUwMCA0Ny44OTIgNzUuNDY0IDUxLjE1MSA3NS41NTIgNTEuMTg4IEMgODUuODc4IDU1LjUyMCAxMDMuNzYzIDcwLjYxMiAxMTAuMzQ2IDU4Ljg2MiBDIDExNC40ODUgNTEuNDcyIDk0LjI5NSA1MS4wNjIgODUuMzQxIDQ4LjQ0NyBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJPdXRsaW5lXzRfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDk4LjUyNyA0OS42NDIgQyA5My45MDggNDguNzMxIDg5LjIyNCA0Ny44NjEgODQuNTYwIDQ3LjE2MSBMIDg0LjU3MiA0Ny4xNTUgTCA4My4yOTQgNDYuOTY3IEMgODMuMjk0IDQ2Ljk2NyA4Mi4yMjAgNDYuNDA5IDgxLjg4NyA0Ny4xMTggQyA4MS41NTQgNDcuODI3IDgyLjkwMSA0OC4wODIgODIuOTAxIDQ4LjA4MiBDIDg0LjM0MSA0OC42NzYgOTkuNDY0IDUxLjYxMSAxMDQuNzgwIDUzLjUwOSBDIDEwNS44MjggNTMuODgyIDEwNy4zNzEgNTQuNzYwIDEwOC40ODkgNTUuODcyIEMgMTA2LjM3NSA1NS4zNTMgMTAzLjIxNSA1NS4xMDYgMTAzLjIxNSA1NS4xMDYgQyAxMDMuNjM0IDU1LjcwNSAxMDcuOTQ0IDU3Ljc1MiAxMDkuNjU1IDU3LjUwMiBDIDExMC4wNDkgNTguNDMwIDEwOS45OTkgNTkuNDE5IDEwOS4xMjAgNjAuMzY1IEMgMTA4LjU1MCA2MC45ODAgMTA3Ljg1OCA2MS40MzMgMTA3LjA4OSA2MS43NjYgQyAxMDYuNTY0IDYwLjU5OSAxMDIuNjYyIDU5LjA5NyAxMDEuNTQ4IDU4LjY0NiBDIDEwMS4wNjUgNTguNjc2IDEwMy42NzMgNjEuMzAzIDEwNS40NzQgNjIuMjUyIEMgMTAwLjQxMyA2My4yNzMgOTMuMTUzIDYwLjQ1OCA4OS42NzQgNTguNDk4IEMgODUuNDc0IDU2LjEzMSA4MS4xNzAgNTMuODUyIDc3LjAzMyA1MS4zNzkgQyA3Ny4wMzMgNTEuMzc5IDc1LjYxMCA1MC40MjkgNzUuMTg4IDUwLjg0NyBDIDc0LjU3OSA1MS40NTEgNzUuNTE5IDUyLjIyMCA3NS41MzggNTIuMjM3IEMgNzguNDU5IDU0Ljg0MyA5My4wMjAgNjEuNzU1IDk3Ljg3OCA2My4zMTUgQyAxMDAuNDE1IDY0LjEzMCAxMDIuOTYzIDY0LjI1MyAxMDUuNjA1IDYzLjgzNiBDIDEwNy43MjQgNjMuNTAyIDExMC42NTIgNjEuNjgwIDExMS4zMzUgNTkuNTM5IEMgMTEzLjM5NiA1My4wODMgMTAyLjc3NyA1MC40NzkgOTguNTI3IDQ5LjY0MiBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iRnJvbnRfTGVnXzFfMV8iPgogICAgICA8cGF0aCBpZD0iRmlsbF8zXyIgZmlsbD0iI0ZGRkZGRiIgZD0iTSA5MS4zMjYgNjMuODk2IEMgODcuMDM3IDYwLjA4OCA3OC41NDMgNTYuODg0IDczLjkxNiA1NC40OTUgQyA3Mi4zNzMgNTMuNjk5IDcxLjE1NyA1Mi4zOTIgNzEuMzAxIDUyLjM2MSBDIDY4Ljk0NiA1MC44NzAgNjUuODMzIDQ3LjY2NiA2Mi44MzMgNDYuNzcwIEMgNjEuMTg3IDQ2LjI3OCA1NS4yNjcgNDYuODIzIDU1LjQ1MSA1MC42MTcgQyA1OC4xODYgNTIuMjg5IDYwLjMzMSA1NC4zNTYgNjMuNDQwIDU3LjEwMyBDIDcyLjAyMSA2NC43MTkgNzguMTcwIDc0LjU1MCA4Ni42ODAgNzUuNzY3IEMgOTAuMzcyIDc2LjI5NCA5My45MDEgNzYuMTIzIDk1LjkwMyA3Mi45NzggQyA5Ny45NDAgNjkuNzIzIDk0LjE5OSA2Ni40NDYgOTEuMzI2IDYzLjg5NiBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJPdXRsaW5lXzVfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDk1LjkyNiA2Ni45ODcgQyA5Mi44MjAgNjIuMjk2IDc5LjEyNSA1NS44NTUgNzQuMzI2IDUzLjM5NSBDIDczLjMyMSA1Mi44OTEgNzEuODYzIDUxLjk2OCA3MC40MDEgNTEuNjkwIEMgNzAuMTIwIDUxLjc4NiA2OS45MjkgNTEuODU2IDY5Ljg4MCA1MS44ODQgQyA2OS42MzUgNTIuMDIyIDY5LjI4OSA1Mi41NjkgNjkuNTc1IDUyLjgzOSBDIDY5LjkzMyA1My4xNzQgNzQuNjU2IDU1LjU5NCA3NS40NDYgNTUuOTk1IEMgODAuOTIzIDU4Ljc4NiA4Ny4zNTMgNjEuNTM2IDkxLjk3NiA2NS42NDQgQyA5My42MTEgNjcuMDk1IDk1LjMzMSA2OS4zNjUgOTQuNzk3IDcxLjY3NyBDIDk0LjcyNSA3MS45ODcgOTQuNTc1IDcyLjMzMCA5NC4zODQgNzIuNjY4IEMgOTMuNDAxIDcxLjA2NiA4OS41MzUgNjguMTA3IDg5LjUzNSA2OC4xMDcgQyA4OS41NTggNjguODQzIDkyLjEwOSA3Mi45ODQgOTMuNjc3IDczLjY0NSBDIDkzLjQwMCA3My45NDkgOTMuMDk4IDc0LjIwNyA5Mi43OTkgNzQuMzY4IEMgOTEuNzkyIDc0LjkxMCA5MC40MzIgNzUuMDk4IDg5LjA0MCA3NS4wNTggQyA4OC44MzkgNzMuNjAzIDg2LjcyOSA3MC42ODkgODYuMDk4IDY5Ljc4NyBDIDg1LjY3NyA2OS41NTEgODYuNDIyIDczLjEyOCA4Ny40MDggNzQuOTE4IEMgODYuMjM3IDc0LjczMyA4NS4xMzIgNzQuNDAxIDg0LjI5MiA3My45NzggQyA3Mi44OTMgNjguMjMyIDY1LjkwMyA1Ni4wNzAgNTUuNDg1IDQ5LjcwNSBMIDU1LjQ0NyA0OS42NjUgQyA1NS40NDcgNDkuNjY1IDUzLjQ3NyA0OC4yNzYgNTMuMjczIDQ5LjIwOSBDIDUzLjEyMiA0OS45MDIgNTQgNTEuMDgzIDU1LjI3MiA1MS45NzggQyA1NS4zMjMgNTIuMDE0IDYzLjI5MiA1Ny41NzMgNjYuMjMyIDYwLjczNyBDIDcxLjM1NiA2Ni4yNDcgNzkuNjIxIDc1LjYzMyA4Ny4yODYgNzcuMTAyIEMgOTAuMjcyIDc3LjY3NCA5NC41MDIgNzYuNjc4IDk2LjI3MyA3NC4wNjQgQyA5Ny42MzkgNzIuMDQ2IDk3LjIyNiA2OC45NDkgOTUuOTI2IDY2Ljk4NyBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICA8L2c+CiAgICA8ZyBpZD0iQmFja19MZWdfMV8xXyI+CiAgICAgIDxwYXRoIGlkPSJGaWxsXzRfIiBmaWxsPSIjRkZGRkZGIiBkPSJNIDM4LjA0MSA0My43MDQgQyAzNi4yODQgNDEuMDc3IDMzLjU5MCAzOS45MDkgMzAuNDI5IDQwLjQxOCBDIDMwLjI0MyA0MC40NDggMzAuMDgwIDQwLjQxOSAyOS45MzAgNDAuMzY3IEMgMjIuNjY4IDQwLjQxMiAxOS4yMDUgNDEuMjQ1IDExLjcyNyA0Mi4xNDkgQyA4LjExNyA0Mi41NzkgMi43ODkgNDQuNDczIDIuNzg5IDQ4LjA4NCBDIDIuNzg5IDUxLjczMCA3LjAwOCA1My4zNDAgMTAuNjU0IDUzLjIzMyBDIDE0LjQ0NCA1My4xMjUgMjYuMDk5IDQ5LjAxNCAzMC4xMDMgNDguMDg0IEMgMzMuMzk0IDQ3LjMyMyAzNi4zMTEgNDYuNzI5IDM5LjEyOSA0Ni40MzYgQyAzOC44NTEgNDUuMjk3IDM4LjM5NiA0NC4yMzcgMzguMDQxIDQzLjcwNCBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICAgIDxwYXRoIGlkPSJPdXRsaW5lXzZfIiBmaWxsPSIjMjcyNTI1IiBkPSJNIDQxLjA4MyA0Ni4xNjcgQyA0MC43NTAgNDUuMDg0IDM3Ljg3NyA0NS45MjEgMzcuMDI4IDQ2LjA0MiBDIDM3LjAxNSA0Ni4wNDQgMzcuMDAyIDQ2LjA1MiAzNi45ODggNDYuMDU0IEMgMzIuODg1IDQ2LjYxNiAyOC44NzYgNDcuNjExIDI1LjMzNyA0OC43NDggQyAyMC45ODggNTAuMTQ2IDE0Ljk3NCA1Mi44MTAgMTAuMDkxIDUyLjU4NCBDIDExLjg0NiA1MS4yOTcgMTQuMDYyIDQ5LjA0MCAxNC4wNjIgNDkuMDQwIEMgMTMuMzUzIDQ4Ljk3NyA5LjIyMiA1MC44NjEgOC4xNzMgNTIuMzE5IEMgNi44OTUgNTEuOTg2IDUuODU4IDUxLjI1NSA1LjIyOCA1MC4zMzUgQyA2LjUzMSA1MC40NTggOS44MzMgNDguMDY1IDEwLjgwNiA0Ny4zODcgQyAxMS4wOTkgNDYuODYyIDUuNTA3IDQ4LjE0MCA0Ljc3NCA0OS40NDIgQyA0LjIzMSA0Ny45NTQgNC42NjEgNDYuMjMzIDYuNTg0IDQ1LjAxNSBDIDExLjU1MiA0MS44NzAgMjYuMDA1IDQxLjk0OSAyOS45MzUgNDEuMDA0IEMgMjkuOTM1IDQxLjAwNCAyOS45MzggNDEuMDAzIDI5LjkzOCA0MS4wMDMgQyAyOS45OTAgNDAuOTkwIDMwLjA0NSA0MC45NzkgMzAuMDkzIDQwLjk2NSBDIDMwLjg3OCA0MC43NzAgMzQuMTc1IDM5Ljg4OCAyOS41ODIgMzkuOTAyIEMgMjguNDEwIDM5LjkwNSAyNy43NTcgMzkuOTEyIDI3LjQ0MSAzOS45MjAgQyAxOS4wODAgMzkuNzM4IDIuNjQyIDQxLjAxMCAyLjUwMSA0OC4zMTUgQyAyLjQ2NCA1MC4yNjMgNC4xNDEgNTIuNzc3IDUuODQ0IDUzLjY1MyBDIDExLjI3NiA1Ni40NTAgMjMuOTE5IDQ5LjgzMyAzNy40NjUgNDguMjQ3IEMgMzcuNDY2IDQ4LjI0NiA0MS40MTcgNDcuMjUwIDQxLjA4MyA0Ni4xNjcgWiBNIDI5LjI1MSAzOS45ODUgTCAyOS4yNTEgMzkuOTg1IEMgMjkuMjQ2IDM5Ljk4NSAyOS4yNDEgMzkuOTg1IDI5LjIzNiAzOS45ODUgQyAyOS4yNDYgMzkuOTg1IDI5LjI1MSAzOS45ODUgMjkuMjUxIDM5Ljk4NSBaICIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yMTU1MDYxOTYwMjIwMzM3LCAwLCAwLCAxLjIxNTUwNjE5NjAyMjAzMzcsIC0yLjgsIC0wLjQpIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4=" id="10"/></item></list></costumes><sounds><list id="11"></list></sounds><blocks></blocks><variables></variables><scripts><script x="197" y="10"><block s="receiveGo"></block><block s="doAsk"><l>a?</l></block><block s="doSetVar"><l>a</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>b?</l></block><block s="doSetVar"><l>b</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>c?</l></block><block s="doSetVar"><l>c</l><block s="getLastAnswer"></block></block><block s="doIfElse"><custom-block s="discriminant imaginary? %n %n %n"><block var="a"/><block var="b"/><block var="c"/></custom-block><script><block s="bubble"><custom-block s="solutions %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>complex</l></custom-block></block></script><script><block s="bubble"><custom-block s="solutions %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>real</l></custom-block></block></script></block></script></scripts></sprite><watcher var="a" style="normal" x="12.625" y="12.625" color="243,118,29" hidden="true"/><watcher var="b" style="normal" x="12.625" y="41.66250505000002" color="243,118,29" hidden="true"/><watcher var="c" style="normal" x="12.625" y="69.43750757500003" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="sum %&apos;nums&apos;" type="reporter" category="operators"><comment x="0" y="0" w="202" collapsed="false">Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of adding them all, so(SUM (4) (100) (8))reports 112.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="nums"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><l>0</l></block></script></block><block s="doReport"><block s="reportSum"><block s="reportListItem"><l>1</l><block var="nums"/></block><custom-block s="sum %mult%n"><block s="reportCDR"><block var="nums"/></block></custom-block></block></block></script></block-definition><block-definition s="product %&apos;nums&apos;" type="reporter" category="operators"><comment x="0" y="0" w="205" collapsed="false">Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of multiplying them all, so(PRODUCT (4) (100) (8))reports 3200.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="nums"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><l>1</l></block></script></block><block s="doReport"><block s="reportProduct"><block s="reportListItem"><l>1</l><block var="nums"/></block><custom-block s="product %mult%n"><block s="reportCDR"><block var="nums"/></block></custom-block></block></block></script></block-definition><block-definition s="all of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="248" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE only if all of the inputs are TRUE, otherwise FALSE.  Like AND but for multiple inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="preds"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportAnd"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="all of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="any of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="240" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE if at least one input is TRUE, otherwise FALSE.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="preds"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><block s="reportOr"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="any of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Returns the function f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations></translations><inputs><input type="%ca"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations></translations><inputs><input type="%ca"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Runs the script repeatedly, as long as the condition is true.  Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%ca"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  TryREPEAT (200)                MOVE (#) STEPS   RIGHT 92with the pen down.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&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">1</input><input type="%n">10</input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportLessThan"><block var="step"/><l>0</l></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><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="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Provides LOOP as a function of one input that runsthe body of the LET with A set to the function input,so the body can run itself recursively.See COPY block in Variables for an example of use.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="copy %&apos;value&apos; %&apos;n&apos; times" type="reporter" category="lists"><comment x="0" y="0" w="133.33333333333334" collapsed="false">copy VALUE N timesreports a list containing N (identical) copies of VALUE</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><custom-block s="let %upvar be %s in %upvar %ca"><l>result</l><block s="reportNewList"><list></list></block><l>loop</l></custom-block></script></block-definition><block-definition s="USE BIGNUMS %&apos;bool&apos;" type="command" category="operators"><comment x="0" y="0" w="303.3333333333333" collapsed="false">call with True to turn on the entire Scheme numeric tower, including infinite-precision integers, exact rationals, and complex numbers; call with False to restore native JavaScript arithmetic.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>isDone</l></list></block><block s="doSetVar"><l>isDone</l><block s="evaluate"><block s="reportJSFunction"><list><l>useBigNums</l></list><l>var done = false;function initialize (callback) {    var bigScript = document.createElement(&apos;script&apos;);    bigScript.src = &apos;//snap.berkeley.edu/snapsource/libraries/biginteger.js&apos;;    bigScript.onload = loadScheme;    document.head.appendChild(bigScript);    function loadScheme () {        var schemeScript = document.createElement(&apos;script&apos;);        schemeScript.src = &apos;//snap.berkeley.edu/snapsource/libraries/schemeNumber.js&apos;;        schemeScript.onload = finish;        document.head.appendChild(schemeScript);    }    function finish () {        makeGlobalObject();        callback();    }}function makeGlobalObject () {    window.bigNumbers = {        originalEvaluate: InputSlotMorph.prototype.evaluate,        originalChangeVar: VariableFrame.prototype.changeVar,        originalPrims: {            reportSum: Process.prototype.reportSum,            reportDifference: Process.prototype.reportDifference,            reportProduct: Process.prototype.reportProduct,            reportQuotient: Process.prototype.reportQuotient,            reportModulus: Process.prototype.reportModulus,            reportRandom: Process.prototype.reportRandom,            reportLessThan: Process.prototype.reportLessThan,            reportGreaterThan: Process.prototype.reportGreaterThan,            reportEquals: Process.prototype.reportEquals,            reportIsIdentical: Process.prototype.reportIsIdentical,            reportMonadic: Process.prototype.reportMonadic        }    };}function loadBlocks () {    var fn = SchemeNumber.fn;    var originalPrims = window.bigNumbers.originalPrims;    if (useBigNums) {        InputSlotMorph.prototype.evaluate = function () {            var contents = this.contents();            if (this.constant) {                return this.constant;            }            if (this.isNumeric) {                return parseNumber(contents.text || &apos;0&apos;);            }            return contents.text;        };        VariableFrame.prototype.changeVar = function (name, delta, sender) {            var frame = this.find(name),                value,                newValue;            if (frame) {                value = parseNumber(frame.vars[name].value);                newValue = value !== value ? delta : value + parseNumber(delta);                if (sender instanceof SpriteMorph &amp;&amp;                        (frame.owner instanceof SpriteMorph) &amp;&amp;                        (sender !== frame.owner)) {                    sender.shadowVar(name, newValue);                } else {                    frame.vars[name].value = newValue;                }            }        };        Object.assign(Process.prototype, {            reportSum: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;+&apos;](a, b);            },            reportDifference: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;-&apos;](a, b);            },            reportProduct: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;*&apos;](a, b);            },            reportQuotient: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (fn[&apos;=&apos;](b, &apos;0&apos;) &amp;&amp; !fn[&apos;=&apos;](a, &apos;0&apos;)) {                      return (fn[&apos;&lt;&apos;](a, &apos;0&apos;) ? SchemeNumber(&apos;-inf.0&apos;) : SchemeNumber(&apos;+inf.0&apos;))                };                if (a !== a || b !== b || fn[&apos;=&apos;](b, &apos;0&apos;)) return SchemeNumber(&apos;+nan.0&apos;);                return fn[&apos;/&apos;](a, b);            },            reportModulus: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                var result = fn.mod(a, b);                if (fn[&apos;&lt;&apos;](b, &apos;0&apos;) &amp;&amp; fn[&apos;&gt;&apos;](result, &apos;0&apos;)) {                    result = fn[&apos;+&apos;](result, b);                }                return result;            },            reportRandom: function (min, max) {                var floor = parseNumber(min),                    ceil = parseNumber(max);                if (floor !== floor || ceil !== ceil) return NaN;                if (!fn[&apos;=&apos;](fn.mod(floor, &apos;1&apos;), &apos;0&apos;) || !fn[&apos;=&apos;](fn.mod(ceil, &apos;1&apos;), &apos;0&apos;)) {                    // One of the numbers isn&apos;t whole. Include the decimal.                    return fn[&apos;+&apos;](                        fn[&apos;*&apos;](                            Math.random(),                            fn[&apos;-&apos;](ceil, floor)                        ),                        floor                    );                }                return fn.floor(                    fn[&apos;+&apos;](                        fn[&apos;*&apos;](                            Math.random(),                            fn[&apos;+&apos;](                                fn[&apos;-&apos;](ceil, floor),                                &apos;1&apos;                            )                        ),                        floor                    )                );            },            reportLessThan: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;&lt;&apos;](a, b);            },            reportGreaterThan: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;&gt;&apos;](a, b);            },            reportGreaterThan: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;&gt;&apos;](a, b);            },            reportEqual: function (a, b) {                x = parseNumber(a);                y = parseNumber(b);                if (x !== x || y !== y) return snapEquals(a, b);                return fn[&apos;=&apos;](x, y);            },            reportIsIdentical: function (a, b) {                x = parseNumber(a);                y = parseNumber(b);                if (x !== x || y !== y) return originalPrims.reportIsIdentical(a, b);                return fn[&apos;=&apos;](x, y);            },            reportMonadic: function (fname, n) {                n = parseNumber(n);                if (n !== n) return NaN;                switch (Process.prototype.inputOption(fname)) {                case &apos;abs&apos;:                    return fn.abs(n);                case &apos;ceiling&apos;:                    return fn.ceiling(n);                case &apos;floor&apos;:                    return fn.floor(n);                case &apos;sqrt&apos;:                    return sqrt(n);                case &apos;sin&apos;:                    return fn.sin(radians(n));                case &apos;cos&apos;:                    return fn.cos(radians(n));                case &apos;tan&apos;:                    return fn.tan(radians(n));                case &apos;asin&apos;:                    return degrees(fn.asin(n));                case &apos;acos&apos;:                    return degrees(fn.acos(n));                case &apos;atan&apos;:                    return degrees(fn.atan(n));                case &apos;ln&apos;:                    return fn.log(n);                case &apos;log&apos;:                    return fn.log(n, &apos;10&apos;);                case &apos;e^&apos;:                    return fn.exp(n);                case &apos;10^&apos;:                    return fn.expt(&apos;10&apos;, n);                default:                    return SchemeNumber(&apos;0&apos;);                }            }        });    } else {        InputSlotMorph.prototype.evaluate = window.bigNumbers.originalEvaluate;        VariableFrame.prototype.changeVar = window.bigNumbers.originalChangeVar;        Object.assign(Process.prototype, originalPrims);    }    done = true;}function parseNumber (n) {    var fn = SchemeNumber.fn;    if (!fn[&apos;number?&apos;](n)) {        n = &apos;&apos; + n;        try {            return parseENotation(n) || SchemeNumber(n);        } catch (err) {            return NaN;        }    }    return n;}function parseENotation (n) {    var fn = SchemeNumber.fn;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);    if (!numbers) return null;    var coefficient = numbers[1];    var exponent = numbers[2];    return fn[&apos;*&apos;](        coefficient,        fn.expt(&apos;10&apos;, exponent)    );}function sqrt (n) {    var fn = SchemeNumber.fn;    if (!fn[&apos;exact?&apos;](n) || !fn[&apos;rational?&apos;](n) || fn[&apos;&lt;&apos;](n,&apos;0&apos;)) return fn.sqrt(n);    var rootNumerator = fn[&apos;exact-integer-sqrt&apos;](fn.numerator(n));    if (!fn[&apos;=&apos;](rootNumerator[1], &apos;0&apos;)) return fn.sqrt(n);    var rootDenominator = fn[&apos;exact-integer-sqrt&apos;](fn.denominator(n));    if (!fn[&apos;=&apos;](rootDenominator[1], &apos;0&apos;)) return fn.sqrt(n);    return fn[&apos;/&apos;](rootNumerator[0], rootDenominator[0]);}function isDone () {    return done;}if (window.bigNumbers) {    loadBlocks();} else {    initialize(loadBlocks);}return isDone;</l></block><list><block var="bool"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="isDone"/><list></list></block></block></script></block-definition><block-definition s="%&apos;n&apos; !" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block var="n"/><l>0</l></block><l>1</l><block s="reportProduct"><block var="n"/><custom-block s="%n !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></block></custom-block></block></script></block-definition><block-definition s="Scheme number %&apos;function&apos; of %&apos;number&apos;" type="reporter" category="operators"><comment x="0" y="0" w="300" collapsed="true">Provides Scheme arithmetic functions not in JavaScript</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">&#xD;          &#xD;        <options>number?complex?real?rational?integer?exact?inexact?exactinexactfinite?infinite?nan?numeratordenominatorreal-partimag-partmagnitudeangle</options></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l><l>num</l></list><l>function parseNumber (n) {    var fn = SchemeNumber.fn;    if (!fn[&apos;number?&apos;](n)) {        n = &apos;&apos; + n;        try {            return parseENotation(n) || SchemeNumber(n);        } catch (err) {            return NaN;        }    }    return n;}function parseENotation (n) {    var fn = SchemeNumber.fn;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);    if (!numbers) return null;    var coefficient = numbers[1];    var exponent = numbers[2];    return fn[&apos;*&apos;](        coefficient,        fn.expt(&apos;10&apos;, exponent)    );}var fn=SchemeNumber.fn,      number=parseNumber(num);switch (which) {  case &apos;number?&apos;:  case &apos;complex?&apos;:    return (fn[&apos;number?&apos;](number));  case &apos;real?&apos;:    return (fn[&apos;real?&apos;](number) || fn[&apos;real-valued?&apos;](number));  case &apos;rational?&apos;:    return (fn[&apos;rational?&apos;](number) || (fn[&apos;=&apos;](number, fn.rationalize(number, parseNumber(&apos;1.0e-5&apos;)))));  case &apos;integer?&apos;:    return (fn[&apos;integer?&apos;](number) || fn[&apos;integer-valued?&apos;](number));  case &apos;exact?&apos;:  case &apos;inexact?&apos;:  case &apos;finite?&apos;:  case &apos;infinite?&apos;:  case &apos;nan?&apos;:  case &apos;real-part&apos;:  case &apos;imag-part&apos;:    return (fn[which](number));  case &apos;magnitude&apos;:    return (fn.magnitude(number));  case &apos;angle&apos;:    return (fn.angle(number));  case &apos;numerator&apos;:    return (fn.numerator(number));  case &apos;denominator&apos;:    return (fn.denominator(number));  case &apos;exact&apos;:    return (fn.exact(number));case &apos;inexact&apos;:    return (fn.inexact(number));}</l></block><list><block var="function"/><block var="number"/></list></block></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations>de:drucke _ in Größe _ca:etiqueta _ de mida _es:etiqueta _ de tamaño _fr:étiquette _ d&apos;une taille de _&#xD;</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><l>process</l></list><l>var stage = this.parentThatIsA(StageMorph);if (this == stage) {    throw new Error(     &apos;LABEL cannot be used from the stage because the stage does not have a postion.\n&apos;     + &apos;Use LABEL from a sprite to draw text.&apos;);}if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {    throw new Error(&apos;LABEL can only draw text or numbers, not a &apos; + process.reportTypeOf(text)); }var context = stage.penTrails().getContext(&apos;2d&apos;),    rotation = radians(this.direction() - 90),    trans = new Point(      this.center().x - stage.left(),      this.center().y - stage.top()    ),    isWarped = this.Warped,    len,    pos;if (isWarped) {endWarp(); }context.save();context.font = size + &apos;px monospace&apos;;context.textAlign = &apos;left&apos;;context.textBaseline = &apos;alphabetic&apos;;context.fillStyle = this.color.toString();len = context.measureText(text).width;trans = trans.multiplyBy(1 / stage.scale);context.translate(trans.x, trans.y);context.rotate(rotation);context.fillText(text, 0, 0);context.translate(-trans.x, -trans.y);context.restore();pos = new Point(  len * Math.sin(radians(this.direction())),  len * Math.cos(radians(this.direction())));pos = pos.add(new Point(this.xPosition(), this.yPosition()));this.gotoXY(pos.x, pos.y, false);this.changed();if (isWarped) {this.startWarp(); }stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?ca:_ buida?es:_ vacía?fr:_ vide?&#xD;</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>de:behalte Elemente, die _ aus _ca:manté els elements on _ de _es:mantener los elementos donde _ de _fr:garder les items tels que _ de _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><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-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _ca:combina amb _ els elements de _es:combinar con _ los elementos de _fr:combine avec _ les items de _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><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-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>de:wenn _ dann _ sonst _ca:si _ llavors _ si no _es:si _ entonces _ sino _fr:si _ alors _ sinon _&#xD;</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>de:für _ = _ bis _ _ca:per _ = _ fins _ _es:para _ = _ hasta _ _fr:pour _ allant de _ à _ _&#xD;</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>de:füge Wörter zusammen _ca:uneix les paraules _es:unir las palabras _fr:fusionne les mots _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><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="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-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-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _ca:llista $arrowRight frase _es:lista $arrowRight frase _fr:liste $arrowRight phrase _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _ca:frase $arrowRight llista _es:frase $arrowRight lista _fr:phrase $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _ca:agafa _ _es:atrapar _ _fr:attrape _ _&#xD;</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><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ca:llança _es:lanzar _fr:lance _&#xD;</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>de:fange _ _ca:agafa _ _es:atrapar _ _fr:attrape _ _&#xD;</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>de:wirf _ _ca:llança _ _es:lanzar _ _fr:lance _ _&#xD;</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>de:für jedes _ von _ _ca:per cada _ de _ _es:para cada _ de _ _fr:pour chaque _ de _ _&#xD;</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>de:falls _ dann _ und pause $pause-1-255-220-0ca:si _ fes _ i atura-ho tot $pause-1-255-220-0es:si _ haz _ y páralo todo $pause-1-255-220-0fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;</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>de:Wort $arrowRight Liste _ca:paraula $arrowRight llista _es:palabra $arrowRight lista _fr:mot $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _ca:ignora _es:ignorar _fr:ignore _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Wort _ca:llista $arrowRight paraula _es:lista $arrowRight palabra _fr:liste $arrowRight mot _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Zahlen von _ bis _ca:nombres des de _ a _es:números de _ a _fr:nombres de _ à _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportSum"><block var="from"/><l>1</l></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _ca:mapeja _ sobre _es:mapear _ sobre _fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="round %&apos;x&apos; to %&apos;y&apos; decimal place" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportProduct"><block var="x"/><block s="reportMonadic"><l><option>10^</option></l><block var="y"/></block></block></block><block s="reportMonadic"><l><option>10^</option></l><block var="y"/></block></block></block></script></block></script></block-definition><block-definition s="discriminant %&apos;a&apos; %&apos;b&apos; %&apos;c&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block s="reportProduct"><block var="b"/><block var="b"/></block><custom-block s="product %mult%n"><list><l>4</l><block var="a"/><block var="c"/></list></custom-block></block></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block s="reportProduct"><block var="b"/><block var="b"/></block><custom-block s="product %mult%n"><list><l>4</l><block var="a"/><block var="c"/></list></custom-block></block></block></block></script><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportProduct"><block var="b"/><block var="b"/></block><custom-block s="product %mult%n"><list><l>4</l><block var="a"/><block var="c"/></list></custom-block></block></block></block></block></script></block></script></block></script></block-definition><block-definition s="discriminant imaginary? %&apos;a&apos; %&apos;b&apos; %&apos;c&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block s="reportProduct"><block var="b"/><block var="b"/></block><custom-block s="product %mult%n"><list><l>4</l><block var="a"/><block var="c"/></list></custom-block></block></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block-definition><block-definition s="component %&apos;a&apos; %&apos;b&apos; %&apos;c&apos; %&apos;real/imaginary&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%s" readonly="true"><options>real&#xD;imaginary</options></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="real/imaginary"/><l>imaginary</l></block><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="round %n to %n decimal place"><block s="reportQuotient"><custom-block s="discriminant %n %n %n"><block var="a"/><block var="b"/><block var="c"/></custom-block><block s="reportProduct"><l>2</l><block var="a"/></block></block><l>2</l></custom-block><l>i</l></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="real/imaginary"/><l>real</l></block><script><block s="doReport"><custom-block s="round %n to %n decimal place"><block s="reportQuotient"><block s="reportProduct"><block var="b"/><l>-1</l></block><block s="reportProduct"><l>2</l><block var="a"/></block></block><l>2</l></custom-block></block></script></block></script></block></script></block-definition><block-definition s="quadratic numerator %&apos;a&apos; %&apos;b&apos; %&apos;c&apos; %&apos;+-&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="+-"/><l>+</l></block><script><block s="doReport"><block s="reportSum"><block s="reportProduct"><block var="b"/><l>-1</l></block><custom-block s="discriminant %n %n %n"><block var="a"/><block var="b"/><block var="c"/></custom-block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="+-"/><l>-</l></block><script><block s="doReport"><block s="reportDifference"><block s="reportProduct"><block var="b"/><l>-1</l></block><custom-block s="discriminant %n %n %n"><block var="a"/><block var="b"/><block var="c"/></custom-block></block></block></script></block></script></block></script></block-definition><block-definition s="solutions %&apos;a&apos; %&apos;b&apos; %&apos;c&apos; %&apos;real/complex&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%s" readonly="true"><options>real&#xD;complex</options></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="real/complex"/><l>complex</l></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportJoinWords"><list><custom-block s="component %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>real</l></custom-block><l> + </l><custom-block s="component %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>imaginary</l></custom-block></list></block><block s="reportJoinWords"><list><custom-block s="component %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>real</l></custom-block><l> - </l><custom-block s="component %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>imaginary</l></custom-block></list></block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="real/complex"/><l>real</l></block><script><block s="doReport"><block s="reportNewList"><list><custom-block s="round %n to %n decimal place"><block s="reportQuotient"><custom-block s="quadratic numerator %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>+</l></custom-block><block s="reportProduct"><l>2</l><block var="a"/></block></block><l>2</l></custom-block><custom-block s="round %n to %n decimal place"><block s="reportQuotient"><custom-block s="quadratic numerator %n %n %n %s"><block var="a"/><block var="b"/><block var="c"/><l>-</l></custom-block><block s="reportProduct"><l>2</l><block var="a"/></block></block><l>2</l></custom-block></list></block></block></script></block></script></block></script></block-definition></blocks><variables><variable name="a"><l>1</l></variable><variable name="b"><l>0</l></variable><variable name="c"><l>1</l></variable></variables></project><media name="Roots of Quadratic Equations" app="Snap! 4.2, http://snap.berkeley.edu" version="1"></media></snapdata>