cmdaddrrawpulses038callbackFalse39100WHILETRUEA1key0xA1A2key0xA2A3key0xA3A4key0xA4callbackcmdaddrtensixteen1010rawpulsesEQraw0xA111EQraw0xA210{}aW1wb3J0IGlycmVtb3RlCmltcG9ydCBtaXhnb19jZQppbXBvcnQgbWF0aApmcm9tIG1peGdvX2NlIGltcG9ydCBvbmJvYXJkX2xlZAoKZGVmIGNhbGxiYWNrKGNtZCwgYWRkciwgcmF3LCBwdWxzZXMpOgogICAgcHJpbnQoY21kLCBhZGRyLCBoZXgoaW50KHN0cihyYXcpLCAxMCkpLCBwdWxzZXMpCiAgICBpZiByYXcgPT0gMHhBMToKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDEpCiAgICBpZiByYXcgPT0gMHhBMjoKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDApCiAgICBpZiByYXcgPT0gMHhBMzoKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDEpCiAgICBpZiByYXcgPT0gMHhBNDoKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDApCgoKCmlyX3J4ID0gaXJyZW1vdGUuTkVDX1JYKDM4LDAsY2FsbGJhY2spCmlyX3R4ID0gaXJyZW1vdGUuTkVDX1RYKDM5LEZhbHNlLDEwMCkKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX2NlLkExa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgaXJfdHgudHJhbnNtaXQocmF3PTB4QTEpCiAgICBpZiBtaXhnb19jZS5BMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIGlyX3R4LnRyYW5zbWl0KHJhdz0weEEyKQogICAgaWYgbWl4Z29fY2UuQTNrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBpcl90eC50cmFuc21pdChyYXc9MHhBMykKICAgIGlmIG1peGdvX2NlLkE0a2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgaXJfdHgudHJhbnNtaXQocmF3PTB4QTQpCg==