<snapdata remixID="9939826"><project name="´´Snap 7:Nesting" app="Snap! 6, https://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" color="255,255,255,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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="2" x="15.686274509804434" y="50" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Untitled" center-x="240" center-y="180" image="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" id="10"/></item></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="10" y="10" w="339" collapsed="true">Welcome to Snap! We have pre-loaded the Hummingbird blocks for you. Blocks that move servos, motors, and vibration motors are located in the Motion category. Blocks that control LEDs are in the Looks category. Blocks that read sensor data are in the Sensing category. All Hummingbird blocks are located at the end of the list of blocks in a given category, and they all start with “HB”. &#xD;&#xD;The rest of the blocks are regular Snap! blocks. You can right click on most regular Snap! blocks and select help… to find out how they work. Visit www.hummingbirdkit.com/learning/snap-programming/ to find out how the Hummingbird blocks work.&#xD;&#xD;You can try any block just by clicking on it. Try it! Hook up an LED to Hummingbird LED port 1 and see if you can get it to turn on!&#xD;&#xD;We love to blink LEDs at BirdBrain Tech! Once you&apos;ve plugged an LED into port 1, try running this program----------&gt;&#xD;&#xD;</comment><script x="46" y="56"><block s="receiveGo"></block><block s="doForever"><script><block s="setHeading"><l>90</l></block></script></block></script></scripts></sprite><watcher scope="Stage" s="getTimer" style="normal" x="0.15625" y="1.4687501249999997" color="4,148,220" hidden="true"/><watcher scope="Stage" s="getLastAnswer" style="normal" x="0.15625" y="1.7968751562500032" color="4,148,220" hidden="true"/><watcher scope="Sprite" s="getScale" style="normal" x="0.15625" y="2.1250001874999924" color="143,86,227" hidden="true"/><sprite name="Sprite(2)" idx="3" x="-37" y="-40" heading="63" scale="1.8" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="24"><costumes><list id="25"><item><costume name="costume1" center-x="62" center-y="71" image="data:image/png;base64,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" id="26"/></item></list></costumes><sounds><list struct="atomic" id="27"></list></sounds><blocks></blocks><variables></variables><scripts><script x="95" y="47"><block s="receiveGo"></block><block s="doForever"><script><block s="turn"><l>80</l></block></script></block></script><script x="145" y="172.50000000000003"><block s="changeScale"><l>10</l></block></script></scripts></sprite><sprite name="Sprite(3)" idx="1" x="-60.55666661101418" y="-185.1140360481288" heading="90" scale="0.9000000000000002" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="111.07799999999988,0,252.45,1" pen="tip" id="39"><nest anchor="Sprite(2)" synch="true"/><costumes><list id="40"><item><costume name="Untitled" center-x="33" center-y="55" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAABuCAYAAACTOsWlAAAB80lEQVR4Xu3cXXKDIBgFULKSdmndSZOddGnNTjpUcSQxhhnAxPH4HJFc7g98oKfQ7zqHED76NT+1fA0hxGdVXaequ9dvjp377th+avoCiAGKXQERO/vbkB2fM7btDohqHc+AnMsOECMwgADEEJcpkTACIzBiyg3SGKEABCDyaSlGYARGLC7VSIM0SIM01uo4PIJH8AgeUeoR0S9icabq2mpfo0kVSfH2fqylhtR4nBo8QvFW8Vbx9jY3pIbUsNZ4utYQn+JTfO4/Pn+q1sjLN3/NEmQ3y/AOOGTsAMQejhcm6vZkQ2q7Wno9K1RbANDsGYAYoYxAbHV4vNnodWjomoDY4vB4h/43a/ICiAHLOyBaHx5vNmQdGsoOtt8yovX+Q4f+N2syK+4AYkUaLV8naDZ8HRrCiKVyH2mQRv6qA0ZgBEakAJIaUiOfjGAERmDE4gSdNEiDNEhjbfXOI3gEj+ARPKKgxsksmSWzZJbMklkWIMAsc5DimZC0vXm2rzGAc2ggMGJUCCAA8XhmySNSlB45NXgEj+ART1efzJJZDp+KtdYYQUiH8UmDNEhjSpB5Of/Q0gCEmaVSnZll6b7Goc3SzJJZMktmuWaWPKLEI6q/w1C+B/sWv5w+z+Ld8Ad7n28xTC/oxP+EastPoLzgP5Y98g9EOnO/MPUu2wAAAABJRU5ErkJggg==" id="41"/></item></list></costumes><sounds><list struct="atomic" id="42"></list></sounds><blocks></blocks><variables></variables><scripts><script x="86" y="45.50000000000003"><block s="receiveGo"></block><block s="doForever"><script><block s="setHeading"><l>90</l></block></script></block></script><script x="332" y="127.50000000000003"><block s="changeScale"><l>-10</l></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Hummingbird LED %&apos;port&apos; %&apos;intensity&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">50</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>portnum,intensitynum</l></list><l>var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var realPort = portnum-1;&#xD;&#xD;&#xD;&#xD;var portString = realPort.toString();&#xD;&#xD;&#xD;&#xD;var realIntensity = Math.floor(intensitynum*2.55);&#xD;&#xD;&#xD;    realIntensity = Math.max(Math.min(realIntensity,255.0),0.0);&#xD;&#xD;var report = {  message:"L".charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                port:portString.charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                intensity:realIntensity&#xD;&#xD;&#xD;&#xD;             };&#xD;&#xD;&#xD;&#xD;chrome.runtime.sendMessage(hummingbirdAppID, report, function(){});</l></block><list><block var="port"/><block var="intensity"/></list></block></script></block-definition><block-definition s="Hummingbird TRI-LED %&apos;port&apos; R %&apos;redLED&apos; G %&apos;greenLED&apos; B %&apos;blueLED&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input><input type="%n">100</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>rednum</l><l>greennum</l><l>bluenum</l></list><l>var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var realPort = portnum-1; //convert from zero-indexed&#xD;&#xD;&#xD;&#xD;var portString = realPort.toString(); //convert to string&#xD;&#xD;&#xD;&#xD;var realRed = Math.floor(rednum*2.55);&#xD;&#xD;&#xD;    realRed = Math.max(Math.min(realRed,255.0),0.0);&#xD;var realGreen = Math.floor(greennum*2.55);&#xD;&#xD;&#xD;    realGreen = Math.max(Math.min(realGreen,255.0),0.0);&#xD;var realBlue = Math.floor(bluenum*2.55);&#xD;&#xD;&#xD;    realBlue = Math.max(Math.min(realBlue,255.0),0.0);&#xD;var report = {  message:"O".charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                port: portString.charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                red: realRed,&#xD;&#xD;&#xD;&#xD;                green: realGreen,&#xD;&#xD;&#xD;&#xD;                blue: realBlue&#xD;&#xD;&#xD;&#xD;             };&#xD;chrome.runtime.sendMessage(hummingbirdAppID,report,function(){});</l></block><list><block var="port"/><block var="redLED"/><block var="greenLED"/><block var="blueLED"/></list></block></script></block-definition><block-definition s="Hummingbird Servo %&apos;port&apos; %&apos;position&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>ang</l></list><l>var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var realPort = portnum-1; //convert to zero-indexed number&#xD;&#xD;&#xD;&#xD;var portString = realPort.toString(); //convert to string&#xD;&#xD;&#xD;&#xD;var realAngle = Math.floor(ang*1.25);&#xD;&#xD;&#xD;    realAngle = Math.max(Math.min(realAngle,225.0),0.0);&#xD;&#xD;var report = { message:"S".charCodeAt(0),&#xD;&#xD;&#xD;&#xD;               port:portString.charCodeAt(0),&#xD;&#xD;&#xD;&#xD;               angle: realAngle&#xD;&#xD;&#xD;&#xD;             };&#xD;chrome.runtime.sendMessage(hummingbirdAppID, report, function(){});</l></block><list><block var="port"/><block var="position"/></list></block></script></block-definition><block-definition s="Hummingbird Motor %&apos;port&apos; %&apos;speed&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>velocity</l></list><l>var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var realPort = portnum-1; //convert from zero-indexed&#xD;&#xD;&#xD;&#xD;        var portString = realPort.toString(); //convert to string&#xD;&#xD;&#xD;&#xD;        var direction;&#xD;&#xD;&#xD;&#xD;        if(velocity &lt; 0){&#xD;&#xD;&#xD;&#xD;            direction = "1".charCodeAt(0);&#xD;&#xD;&#xD;&#xD;            velocity = Math.floor(velocity * -2.55);&#xD;&#xD;&#xD;&#xD;        }&#xD;&#xD;&#xD;&#xD;        else{&#xD;&#xD;&#xD;&#xD;            direction = "0".charCodeAt(0);&#xD;&#xD;&#xD;&#xD;            velocity = Math.floor(velocity*2.55);&#xD;&#xD;&#xD;&#xD;        }&#xD;&#xD;&#xD;        velocity = Math.max(Math.min(velocity,255.0),0.0);&#xD;        var report = {  message:"M".charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                    port: portString.charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                    dir: direction, //direction&#xD;&#xD;&#xD;&#xD;                    vel:velocity //speed&#xD;&#xD;&#xD;&#xD;                 };&#xD;chrome.runtime.sendMessage(hummingbirdAppID, report, function(){});</l></block><list><block var="port"/><block var="speed"/></list></block></script></block-definition><block-definition s="Hummingbird Vibration %&apos;port&apos; %&apos;intensity&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>intensitynum</l></list><l>var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var realPort = portnum-1; //convert to zero-indexed number&#xD;&#xD;&#xD;&#xD;        var portString = realPort.toString(); //convert to string&#xD;&#xD;&#xD;&#xD;        var realIntensity = Math.floor(intensitynum*2.55);&#xD;&#xD;&#xD;        realIntensity = Math.max(Math.min(realIntensity,255.0),0.0);&#xD;        var report = { message: "V".charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                   port: portString.charCodeAt(0),&#xD;&#xD;&#xD;&#xD;                   intensity:realIntensity&#xD;&#xD;&#xD;&#xD;        };&#xD;chrome.runtime.sendMessage(hummingbirdAppID, report, function(){});</l></block><list><block var="port"/><block var="intensity"/></list></block></script></block-definition><block-definition s="Say This %&apos;speech&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%txt">I am known by many names, but you may call me...Tim.</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>phrase</l></list><l>var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var report = { message: "SPEAK", val: phrase};&#xD;chrome.runtime.sendMessage(hummingbirdAppID, report, function(){});</l></block><list><block var="speech"/></list></block></script></block-definition><block-definition s="Hummingbird Light %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>port</l></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;&#xD;&#xD;var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;&#xD;&#xD;&#xD;var realport = port - 1;&#xD;&#xD;&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;&#xD;&#xD;        if (realport === 0)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port1;&#xD;&#xD;&#xD;&#xD;        else if (realport === 1)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port2;&#xD;&#xD;&#xD;&#xD;        else if (realport === 2)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port3;&#xD;&#xD;&#xD;&#xD;        else if (realport === 3)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port4;&#xD;&#xD;&#xD;&#xD;        callback(sensorvalue);&#xD;&#xD;&#xD;&#xD;    };&#xD;&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;&#xD;&#xD;    chrome.runtime.sendMessage(hummingbirdAppID, {&#xD;&#xD;&#xD;&#xD;        message: "POLL"&#xD;&#xD;&#xD;&#xD;    }, getValue);&#xD;&#xD;&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;&#xD;&#xD;    sensorvalue = sensorvalue / 2.55;&#xD;&#xD;&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;&#xD;&#xD;    if (port === 1)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy1 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 2)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy2 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 3)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy3 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 4)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy4 = sensorvalue&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>if (port === 1)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy1&#xD;&#xD;&#xD;&#xD;else if (port === 2)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy2&#xD;&#xD;&#xD;&#xD;else if (port === 3)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy3&#xD;&#xD;&#xD;&#xD;else if (port === 4)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy4</l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="HB Temperature C %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>port</l></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;&#xD;&#xD;var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;&#xD;&#xD;&#xD;var realport = port - 1;&#xD;&#xD;&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;&#xD;&#xD;        if (realport === 0)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port1;&#xD;&#xD;&#xD;&#xD;        else if (realport === 1)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port2;&#xD;&#xD;&#xD;&#xD;        else if (realport === 2)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port3;&#xD;&#xD;&#xD;&#xD;        else if (realport === 3)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port4;&#xD;&#xD;&#xD;&#xD;        callback(sensorvalue);&#xD;&#xD;&#xD;&#xD;    };&#xD;&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;&#xD;&#xD;    chrome.runtime.sendMessage(hummingbirdAppID, {&#xD;&#xD;&#xD;&#xD;        message: "POLL"&#xD;&#xD;&#xD;&#xD;    }, getValue);&#xD;&#xD;&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;&#xD;&#xD;    sensorvalue = Math.floor(((sensorvalue-127)/2.4+25)*100/100);;&#xD;&#xD;&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;&#xD;&#xD;    if (port === 1)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy1 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 2)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy2 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 3)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy3 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 4)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy4 = sensorvalue&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>if (port === 1)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy1&#xD;&#xD;&#xD;&#xD;else if (port === 2)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy2&#xD;&#xD;&#xD;&#xD;else if (port === 3)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy3&#xD;&#xD;&#xD;&#xD;else if (port === 4)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy4</l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="HB Temperature F %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doReport"><block s="reportRound"><block s="reportSum"><l>32</l><block s="reportProduct"><l>1.80</l><custom-block s="HB Temperature C %n"><block var="port"/></custom-block></block></block></block></block></script></block-definition><block-definition s="HB Distance CM %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>port</l></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;&#xD;&#xD;var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;&#xD;&#xD;&#xD;var realport = port - 1;&#xD;&#xD;&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;&#xD;&#xD;        if (realport === 0)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port1;&#xD;&#xD;&#xD;&#xD;        else if (realport === 1)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port2;&#xD;&#xD;&#xD;&#xD;        else if (realport === 2)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port3;&#xD;&#xD;&#xD;&#xD;        else if (realport === 3)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port4;&#xD;&#xD;&#xD;&#xD;        callback(sensorvalue);&#xD;&#xD;&#xD;&#xD;    };&#xD;&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;&#xD;&#xD;    chrome.runtime.sendMessage(hummingbirdAppID, {&#xD;&#xD;&#xD;&#xD;        message: "POLL"&#xD;&#xD;&#xD;&#xD;    }, getValue);&#xD;&#xD;&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;&#xD;&#xD;    var reading = sensorvalue*4;&#xD;&#xD;    if(reading &lt; 130){&#xD;        sensorvalue =  100;&#xD;    }&#xD;    else { //formula based on mathematical regression&#xD;            reading = reading - 120;&#xD;            var distance;&#xD;            if (reading &gt; 680)&#xD;                distance = 5.0;&#xD;            else{&#xD;                var sensor_val_square = reading*reading;&#xD;                distance = sensor_val_square*sensor_val_square*reading*-0.000000000004789&#xD;				               + sensor_val_square*sensor_val_square*0.000000010057143&#xD;				               - sensor_val_square*reading*0.000008279033021 &#xD;				               + sensor_val_square*0.003416264518201 &#xD;				               - reading*0.756893112198934 &#xD;				               + 90.707167605683000;&#xD;            }&#xD;            sensorvalue =  parseInt(distance);&#xD;        }&#xD;&#xD;&#xD;&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;&#xD;&#xD;    if (port === 1)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy1 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 2)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy2 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 3)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy3 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 4)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy4 = sensorvalue&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>if (port === 1)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy1&#xD;&#xD;&#xD;&#xD;else if (port === 2)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy2&#xD;&#xD;&#xD;&#xD;else if (port === 3)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy3&#xD;&#xD;&#xD;&#xD;else if (port === 4)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy4</l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="HB Distance Inch %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportQuotient"><custom-block s="HB Distance CM %n"><block var="port"/></custom-block><l>0.254</l></block></block><l>10</l></block></block></script></block-definition><block-definition s="Hummingbird Raw Sensor %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>port</l></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;&#xD;&#xD;var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;&#xD;&#xD;&#xD;var realport = port - 1;&#xD;&#xD;&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;&#xD;&#xD;        if (realport === 0)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port1;&#xD;&#xD;&#xD;&#xD;        else if (realport === 1)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port2;&#xD;&#xD;&#xD;&#xD;        else if (realport === 2)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port3;&#xD;&#xD;&#xD;&#xD;        else if (realport === 3)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port4;&#xD;&#xD;&#xD;&#xD;        callback(sensorvalue);&#xD;&#xD;&#xD;&#xD;    };&#xD;&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;&#xD;&#xD;    chrome.runtime.sendMessage(hummingbirdAppID, {&#xD;&#xD;&#xD;&#xD;        message: "POLL"&#xD;&#xD;&#xD;&#xD;    }, getValue);&#xD;&#xD;&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;&#xD;&#xD;    sensorvalue = sensorvalue / 2.55;&#xD;&#xD;&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;&#xD;&#xD;    if (port === 1)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy1 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 2)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy2 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 3)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy3 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 4)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy4 = sensorvalue&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>if (port === 1)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy1&#xD;&#xD;&#xD;&#xD;else if (port === 2)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy2&#xD;&#xD;&#xD;&#xD;else if (port === 3)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy3&#xD;&#xD;&#xD;&#xD;else if (port === 4)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy4&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="Hummingbird Knob %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>port</l></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;&#xD;&#xD;var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;&#xD;&#xD;&#xD;var realport = port - 1;&#xD;&#xD;&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;&#xD;&#xD;        if (realport === 0)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port1;&#xD;&#xD;&#xD;&#xD;        else if (realport === 1)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port2;&#xD;&#xD;&#xD;&#xD;        else if (realport === 2)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port3;&#xD;&#xD;&#xD;&#xD;        else if (realport === 3)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port4;&#xD;&#xD;&#xD;&#xD;        callback(sensorvalue);&#xD;&#xD;&#xD;&#xD;    };&#xD;&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;&#xD;&#xD;    chrome.runtime.sendMessage(hummingbirdAppID, {&#xD;&#xD;&#xD;&#xD;        message: "POLL"&#xD;&#xD;&#xD;&#xD;    }, getValue);&#xD;&#xD;&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;&#xD;&#xD;    sensorvalue = sensorvalue / 2.55;&#xD;&#xD;&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;&#xD;&#xD;    if (port === 1)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy1 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 2)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy2 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 3)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy3 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 4)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy4 = sensorvalue&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>if (port === 1)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy1&#xD;&#xD;&#xD;&#xD;else if (port === 2)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy2&#xD;&#xD;&#xD;&#xD;else if (port === 3)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy3&#xD;&#xD;&#xD;&#xD;else if (port === 4)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy4</l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="Hummingbird Sound %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>port</l></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;&#xD;&#xD;var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;&#xD;&#xD;&#xD;var realport = port - 1;&#xD;&#xD;&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;&#xD;&#xD;        if (realport === 0)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port1;&#xD;&#xD;&#xD;&#xD;        else if (realport === 1)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port2;&#xD;&#xD;&#xD;&#xD;        else if (realport === 2)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port3;&#xD;&#xD;&#xD;&#xD;        else if (realport === 3)&#xD;&#xD;&#xD;&#xD;            sensorvalue = response.port4;&#xD;&#xD;&#xD;&#xD;        callback(sensorvalue);&#xD;&#xD;&#xD;&#xD;    };&#xD;&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;&#xD;&#xD;    chrome.runtime.sendMessage(hummingbirdAppID, {&#xD;&#xD;&#xD;&#xD;        message: "POLL"&#xD;&#xD;&#xD;&#xD;    }, getValue);&#xD;&#xD;&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;&#xD;&#xD;    if (port === 1)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy1 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 2)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy2 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 3)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy3 = sensorvalue&#xD;&#xD;&#xD;&#xD;    else if (port === 4)&#xD;&#xD;&#xD;&#xD;      myself.hummingbirdDummy4 = sensorvalue&#xD;};&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;&#xD;&#xD;</l></block><list><block var="port"/></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>if (port === 1)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy1&#xD;&#xD;&#xD;&#xD;else if (port === 2)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy2&#xD;&#xD;&#xD;&#xD;else if (port === 3)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy3&#xD;&#xD;&#xD;&#xD;else if (port === 4)&#xD;&#xD;&#xD;&#xD;  return this.hummingbirdDummy4</l></block><list><block var="port"/></list></block></block></script></block-definition></blocks><variables></variables></project><media name="´´Snap 7:Nesting" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>