YjBWSU0gNy4zAAAAABAAAJCJu1HJCQoAvVoAAGFkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUZXN0U3RhdGlvbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfmFkbWluL1Rlc3RPTi90ZXN0cy9Pbm9zU2FuaXR5NG5vZGVzL09ub3NTYW5pdHk0bm9kZXMucHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1dGYtOA1VMzIxMAAAAAAjIiEgExJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwBQB/AAAAAgAAAAAAAAApAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAEAAAAAAAAADAAAAAAAAAAKgAAAAAAAAABAAAAAAAAAAMAAAAAAAAAIAAAAAAAAABXAAAAAAAAAAEAAAAAAAAABQAAAAAAAAA4AAAAAAAAAHkAAAAAAAAAAQAAAAAAAAAGAAAAAAAAABwAAAAAAAAAvAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhZAAAXQYAAB0HAAAAEAAAKQAAAAAAAAD/DwAA5g8AAOUPAADMDwAAsg8AALEPAABYDwAARA8AAAkPAADXDgAAsA4AADoOAAAIDgAA4Q0AAGsNAAA+DQAAHQ0AAP0MAAC6DAAAnAwAAIIMAABjDAAASAwAACMMAADwCwAAzwsAALELAAA0CwAAJwsAANoKAACmCgAAcgoAACYKAAD8CQAAcAkAADQJAAAXCQAAAQkAAOsIAABnCAAAHQcAABEJAAD4CAAA1AgAAL4IAACkCAAAkggAAHsIAABiCAAADgcAANkGAADXBgAAvAYAAKgGAAB2BgAAPgYAABgGAAACBgAA4wUAAK8FAACLBQAAbwUAAF0FAAAfBQAA+wQAANoEAAC/BAAAnQQAAHAEAAA+BAAAHAQAALQDAAB+AwAAWQMAAEMDAAAxAwAADQMAAPcCAADZAgAAgQIAAA4CAAD2AQAAyAEAAMcBAACsAQAAhwEAAH4BAAAAAAAAAAAAAAAAACAgICAgICAgICAgICAgICBtYWluLmNhc2UoIlRlc3RpbmcgcGluZy4uLiIpACAgICBkZWYgQ0FTRTQoc2VsZixtYWluKSA6AAAgICAgICAgICNkYXRhID0gbWFpbi5PTk9TMS5nZXRfZmxvdygiYWxsIikgICAAICAgICAgICAjdGltZS5zbGVlcCgxMCkAICAgICAgICB1dGlsaXRpZXMuYXNzZXJ0X2VxdWFscyhleHBlY3Q9bWFpbi5UUlVFLGFjdHVhbD1zdWNjZXNzLG9ucGFzcz0iRmxvdyBjaGVjayBQQVNTIixvbmZhaWw9IkZsb3cgY2hlY2sgRkFJTCIpACAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cdFx0XHRcdFRpbWUgdG8gYWRkIGZsb3dzOiAiK3N0cihlbmRUaW1lLXN0cnRUaW1lKSsiIHNlY29uZHMiKQAgICAgICAgIGVuZFRpbWUgPSB0aW1lLnRpbWUoKQAgICAgICAgICAgICAgICAgYnJlYWsAICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBtYWluLlRSVUUAICAgICAgICAgICAgZWxzZToAICAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgICBzdWNjZXNzID0gbWFpbi5GQUxTRQAgICAgICAgICAgICBlbGlmIHJlc3VsdCA9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA9PSA2OgAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiRmxvdyBmYWlsZWQsIHdhaXRpbmcgMTAgc2Vjb25kcyB0aGVuIG1ha2luZyBhdHRlbXB0IG51bWJlciAiK3N0cihjb3VudCkpACAgICAgICAgICAgICAgICBjb3VudCA9IGNvdW50ICsgMQAgICAgICAgICAgICBpZiByZXN1bHQ9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA8IDY6ACAgICAgICAgICAgIHJlc3VsdCA9IG1haW4uT05PUzEuY2hlY2tfZmxvdygpACAgICAgICAgICAgIG1haW4uc3RlcCgiQ2hlY2tpbmciKQAgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQAgICAgICAgICAgICBtYWluLnN0ZXAoIldhaXRpbmciKQAgICAgICAgIHdoaWxlIHJlc3VsdCA9PSBtYWluLkZBTFNFOgAgICAgICAgIG1haW4ubG9nLmluZm8oIldhaXQgZm9yIGZsb3dzIHRvIHNldHRsZSwgdGhlbiBjaGVjayIpACAgICAgICAgY291bnQgPSAxACAgICAgICAgcmVzdWx0ID0gbWFpbi5GQUxTRQAgICAgICAgIG1haW4uY2FzZSgiQ2hlY2tpbmcgZmxvd3MiKQAgICAgICAgIG1haW4uT05PUzEuYWRkX2Zsb3cobWFpbi5wYXJhbXNbJ0ZMT1dERUYnXSkAICAgICAgICBzdHJ0VGltZSA9IHRpbWUudGltZSgpACAgICAgICAgdGltZS5zbGVlcCg1KQAgICAgICAgIG1haW4uT05PUzEuZGVsZXRlX2Zsb3coImFsbCIpACAgICAgICAgbWFpbi5zdGVwKCJDbGVhbmluZyBvdXQgYW55IGxlZnRvdmVyIGZsb3dzLi4uIikAICAgICAgICBtYWluLmNhc2UoIlRha2luZyBjYXJlIG9mIHRoZXNlIGZsb3dzISIpIAAgICAgICAgIGltcG9ydCB0aW1lbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDEnXSxwb3J0MT1tYWluLnBhcmFtc1sgICAgICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDEnXSxwb3J0MT1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MSddLGlwMj1tYWluLnBhcmFtc1snQ1RSTCddWydpcDInXSxwb3J0Mj1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MiddLGlwMz1tYWluLnBhcmFtc1snQ1RSTCddWydpcDMnXSxwb3J0Mz1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MyddLGlwND1tYWluLnBhcmFtc1snQ1RSTCddWydpcDQnXSxwb3J0ND1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0NCddKQAgICAgICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDEnXSxwb3J0MT1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MSddKQAgICAgICAgICAgICAgICAgaj1pKzEAICAgICAgICAgICAgaWYgaSA8IDM6ACAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMjUpOiAAICAgICAgICBtYWluLnN0ZXAoImFzc2lnbmluZyBPTk9TIGNvbnRyb2xsZXJzIHRvIHN3aXRjaGVzIikAICAgICAgICB1dGlsaXRpZXMuYXNzZXJ0X2VxdWFscyhleHBlY3Q9bWFpbi5UUlVFLGFjdHVhbD1yZXN1bHQsb25wYXNzPSJIb3N0IElQIGFkZHJlc3MgY29uZmlndXJlZCIsb25mYWlsPSJIb3N0IElQIGFkZHJlc3Mgbm90IGNvbmZpZ3VyZWQiKQAgICAgICAgIG1haW4uc3RlcCgiVmVyaWZ5aW5nIHRoZSByZXN1bHQiKQAgICAgICAgIHJlc3VsdCA9IG1haW4uTWluaW5ldDEuY2hlY2tJUChtYWluLnBhcmFtc1snQ0FTRTEnXVsnZGVzdGluYXRpb24nXSkAICAgICAgICBtYWluLnN0ZXAoIkhvc3QgSVAgQ2hlY2tpbmcgdXNpbmcgY2hlY2tJUCIpACAgICAgICAgbWFpbi5jYXNlKCJDaGVja2luZyBpZiBvbmUgTU4gaG9zdCBleGlzdHMiKQAgICAgZGVmIENBU0UyKHNlbGYsbWFpbikgOiAjQ2hlY2sgaWYgbWluaW5ldCBleGlzdHMsIHRoZW4gYXNzaWduIGNvbnRyb2xsZXJzACAgICAgICAgICAgIAAgICAgICAgIHV0aWxpdGllcy5hc3NlcnRfZXF1YWxzKGV4cGVjdD1tYWluLlRSVUUsYWN0dWFsPWRhdGEsb25wYXNzPSJPTk9TIGlzIHVwIGFuZCBydW5uaW5nISIsb25mYWlsPSJPTk9TIGRpZG4ndCBzdGFydC4uLiIpACAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cbiIpACAgICAgICAgbWFpbi5PTk9TMS5nZXRfdmVyc2lvbigpACAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cblx0XHRcdFx0IE9OT1MgVkVSU0lPTiIpACAgICAgICAgICAgIGRhdGEgPSBtYWluLk9OT1MxLmlzdXAoKQAgICAgICAgICAgICB0aW1lLnNsZWVwKDUpIAAgICAgICAgICAgICBtYWluLk9OT1MxLnN0YXJ0KCkAICAgICAgICAgICAgdGltZS5zbGVlcCgzKQAgICAgICAgICAgICBtYWluLk9OT1MxLnN0b3AoKQAgICAgICAgICAgICBtYWluLmxvZy5pbmZvKCJTb21ldGhpbmcgaXMgZnVubnkuLi4gcmVzdGFydGluZyBPTk9TIikAICAgICAgICBpZiBkYXRhID09IG1haW4uRkFMU0U6IAAgICAgICAgIGRhdGEgPSBtYWluLk9OT1MxLmlzdXAoKQAgICAgICAgIG1haW4uc3RlcCgiVGVzdGluZyBzdGFydHVwIE9OT1MiKSAgIAAgICAgICAgIHV0aWxpdGllcy5hc3NlcnRfZXF1YWxzKGV4cGVjdD1tYWluLlRSVUUsYWN0dWFsPWRhdGEsb25wYXNzPSJDYXNzYW5kcmEgaXMgdXAhIixvbmZhaWw9IkNhc3NhbmRyYSBpcyBkb3duLi4uIikAICAgICAgICBkYXRhID0gIG1haW4uQ2Fzc2FuZHJhMS5pc3VwKCkAICAgICAgICBtYWluLnN0ZXAoIlRlc3Rpbmcgc3RhcnR1cCBDYXNzYW5kcmEiKSAgIAAgICAgICAgIHV0aWxpdGllcy5hc3NlcnRfZXF1YWxzKGV4cGVjdD1tYWluLlRSVUUsYWN0dWFsPWRhdGEsb25wYXNzPSJab29rZWVwZXIgaXMgdXAhIixvbmZhaWw9Ilpvb2tlZXBlciBpcyBkb3duLi4uIikAICAgICAgICBkYXRhID0gIG1haW4uWm9va2VlcGVyMS5pc3VwKCkAICAgICAgICBtYWluLnN0ZXAoIlRlc3Rpbmcgc3RhcnR1cCBab29rZWVwZXIiKSAgIAAgICAgICAgIG1haW4uY2FzZSgiQ2hlY2tpbmcgaWYgdGhlIHN0YXJ0dXAgd2FzIGNsZWFuLi4uIikgACAgICAgICAgaW1wb3J0IHRpbWUAICAgIGRlZiBDQVNFMShzZWxmLG1haW4pIDogICAjQ2hlY2sgaWYgWkssIENhc3NhbmRyYSwgYW5kIE9OT1MgaGF2ZSBhbGwgc3RhcnRlZCBwcm9wZXJseQAAICAgICAgICBzZWxmLmRlZmF1bHQgPSAnJwAgICAgZGVmIF9faW5pdF9fKHNlbGYpIDoAAGNsYXNzIE9ub3NTYW5pdHk0bm9kZXMgOgAAYWQAAGoIAAAGCQAAABAAACAAAAAAAAAAiQ8AAOwOAADrDgAAug4AAKYOAAB6DgAABQ4AAI8NAABwDQAAVQ0AADsNAAApDQAAGA0AAPQMAAClDAAAUgwAAB0MAAD3CwAAkgsAAG8LAABVCwAAHgsAAOcKAADCCgAAqAoAAIAKAABbCgAAOQoAABMKAAD+CQAAnQkAAAYJAAAFCQAApwkAAIsJAAB5CQAAOwkAABcJAAD2CAAA2wgAALkIAACMCAAAWggAADgIAADQBwAAmgcAAHUHAABfBwAATQcAACkHAAATBwAAoAYAAJwGAAA6BgAADQYAAPkFAADaBQAAvwUAAKUFAACTBQAAggUAAF4FAAAPBQAAvAQAAIcEAABhBAAA/AMAANkDAAC/AwAAiAMAAFEDAAAsAwAAEgMAAOoCAADFAgAAowIAAH0CAABoAgAABwIAAHABAABvAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAgICAgIHV0aWxpdGllcy5hc3NlcnRfZXF1YWxzKGV4cGVjdD1tYWluLlRSVUUsYWN0dWFsPXJlc3VsdCxvbnBhc3M9Ik5PIFBBQ0tFVCBMT1NTLCBIT1NUIElTIFJFQUNIQUJMRSIsb25mYWlsPSJQQUNLRVQgTE9TVCwgSE9TVCBJUyBOT1QgUkVBQ0hBQkxFIikAICAgICAgICBtYWluLmxvZy5pbmZvKCJcblx0XHRcdFx0VGltZSB0byBjb21wbGV0ZSBwaW5nIHRlc3Q6ICIrc3RyKGVuZFRpbWUtc3RydFRpbWUpKyIgc2Vjb25kcyIpACAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgIGVuZFRpbWUgPSB0aW1lLnRpbWUoKSAAICAgICAgICAgICAgaWYgZXhpdCA9PSBtYWluLlRSVUU6ACAgICAgICAgICAgICAgICAgICAgZXhpdCA9IG1haW4uVFJVRQAgICAgICAgICAgICAgICAgZWxpZiBwaW5nID09IG1haW4uVFJVRToAICAgICAgICAgICAgICAgICAgICBicmVhawAgICAgICAgICAgICAgICAgICAgIGV4aXQgPSBtYWluLlRSVUUAICAgICAgICAgICAgICAgICAgICBtYWluLmxvZy5lcnJvcigiUGluZyB0ZXN0IGZhaWxlZCIpACAgICAgICAgICAgICAgICBlbGlmIHBpbmcgPT0gbWFpbi5GQUxTRSBhbmQgY291bnQgPT02OgAgICAgICAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkAICAgICAgICAgICAgICAgICAgICBtYWluLmxvZy5pbmZvKCJQaW5nIGZhaWxlZCwgbWFraW5nIGF0dGVtcHQgbnVtYmVyICIrc3RyKGNvdW50KSsiIGluIDEwIHNlY29uZHMiKQAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gY291bnQgKyAxACAgICAgICAgICAgICAgICBpZiBwaW5nID09IG1haW4uRkFMU0UgYW5kIGNvdW50IDwgNjoAICAgICAgICAgICAgICAgIHBpbmcgPSBtYWluLk1pbmluZXQxLnBpbmdIb3N0KHNyYz0iaCIrc3RyKGkpLHRhcmdldD0iaCIrc3RyKGkrMjUpKQAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cdFx0XHRcdGgiK3N0cihpKSsiIElTIFBJTkdJTkcgaCIrc3RyKGkrMjUpICkAICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNiwgMTYpIDoAICAgICAgICB3aGlsZSAxOgAgICAgICAgIGNvdW50ID0gMQAgICAgICAgIGV4aXQgPSBtYWluLkZBTFNFACAgICAgICAgcmVzdWx0ID0gbWFpbi5UUlVFACAgICAgICAgc3RydFRpbWUgPSB0aW1lLnRpbWUoKQAgICAgICAgIGltcG9ydCB0aW1lACAgICAgICAgbWFpbi5jYXNlKCJQaW5naW5nIEVWRVJZVEhJTkdHRyEhISIpACAgICBkZWYgQ0FTRTcoc2VsZixtYWluKSA6ICNQaW5nIGFjY3Jvc3MgdG9wb2xvZ3ksIGdpdmUgdGltZSBmb3IgdGVzdCB0byBjb21wbGV0ZSBzdGFydCB0byBmaW5pc2gAICAgACAgICAgICAgdXRpbGl0aWVzLmFzc2VydF9lcXVhbHMoZXhwZWN0PW1haW4uVFJVRSxhY3R1YWw9c3VjY2VzcyxvbnBhc3M9IkZsb3cgY2hlY2sgUEFTUyIsb25mYWlsPSJGbG93IGNoZWNrIEZBSUwiKQAgICAgICAgICAgICAgICAgYnJlYWsAICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBtYWluLlRSVUUAICAgICAgICAgICAgZWxzZToAICAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgICBzdWNjZXNzID0gbWFpbi5GQUxTRQAgICAgICAgICAgICBlbGlmIHJlc3VsdCA9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA9PSA2OgAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiRmxvdyBmYWlsZWQsIHdhaXRpbmcgMTAgc2Vjb25kcyB0aGVuIG1ha2luZyBhdHRlbXB0IG51bWJlciAiK3N0cihjb3VudCkpACAgICAgICAgICAgICAgICBjb3VudCA9IGNvdW50ICsgMQAgICAgICAgICAgICBpZiByZXN1bHQ9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA8IDY6ACAgICAgICAgICAgIHJlc3VsdCA9IG1haW4uT05PUzEuY2hlY2tfZmxvdygpACAgICAgICAgICAgIG1haW4uc3RlcCgiQ2hlY2tpbmciKQAgICAgICAgICAgICB0aW1lLnNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsaXRpZXMuYXNzZXJ0X2VxdWFscyhleHBlY3Q9bWFpbi5UUlVFLGFjdHVhbD1yZXN1bHQsb25wYXNzPSJOTyBQQUNLRVQgTE9TUywgSE9TVCBJUyBSRUFDSEFCTEUiLG9uZmFpbD0iUEFDS0VUIExPU1QsIEhPU1QgSVMgTk9UIFJFQUNIQUJMRSIpACAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cdFx0XHRcdFRpbWUgdG8gY29tcGxldGUgcGluZyB0ZXN0OiAiK3N0cihlbmRUaW1lLXN0cnRUaW1lKSsiIHNlY29uZHMiKQAgICAgICAgICAgICAgICBicmVhawAgICAgICAgICAgICAgICBlbmRUaW1lID0gdGltZS50aW1lKCkgACAgICAgICAgICAgIGlmIGV4aXQgPT0gbWFpbi5UUlVFOgAgICAgICAgICAgICAgICAgICAgIGV4aXQgPSBtYWluLlRSVUUAICAgICAgICAgICAgICAgIGVsaWYgcGluZyA9PSBtYWluLlRSVUU6ACAgICAgICAgICAgICAgICAgICAgYnJlYWsAICAgICAgICAgICAgICAgICAgICBleGl0ID0gbWFpbi5UUlVFACAgICAgICAgICAgICAgICAgICAgbWFpbi5sb2cuZXJyb3IoIlBpbmcgdGVzdCBmYWlsZWQiKQAgICAgICAgICAgICAgICAgZWxpZiBwaW5nID09IG1haW4uRkFMU0UgYW5kIGNvdW50ID09NjoAICAgICAgICAgICAgICAgICAgICBicmVhawAgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMTApACAgICAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiUGluZyBmYWlsZWQsIG1ha2luZyBhdHRlbXB0IG51bWJlciAiK3N0cihjb3VudCkrIiBpbiAxMCBzZWNvbmRzIikAICAgICAgICAgICAgICAgICAgICBjb3VudCA9IGNvdW50ICsgMQAgICAgICAgICAgICAgICAgaWYgcGluZyA9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA8IDY6ACAgICAgICAgICAgICAgICBwaW5nID0gbWFpbi5NaW5pbmV0MS5waW5nSG9zdChzcmM9ImgiK3N0cihpKSx0YXJnZXQ9ImgiK3N0cihpKzI1KSkAICAgICAgICAgICAgICAgIG1haW4ubG9nLmluZm8oIlxuXHRcdFx0XHRoIitzdHIoaSkrIiBJUyBQSU5HSU5HIGgiK3N0cihpKzI1KSApACAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDYsIDE2KSA6ACAgICAgICAgd2hpbGUgMToAICAgICAgICBjb3VudCA9IDEAICAgICAgICBleGl0ID0gbWFpbi5GQUxTRQAgICAgICAgIHJlc3VsdCA9IG1haW4uVFJVRQAgICAgICAgIHN0cnRUaW1lID0gdGltZS50aW1lKCkAICAgICAgICB1dGlsaXRpZXMuYXNzZXJ0X2VxdWFscyhleHBlY3Q9bWFpbi5UUlVFLGFjdHVhbD1yZXN1bHQsb25wYXNzPSJMaW5rIERPV04hIixvbmZhaWw9Ikxpbmsgbm90IGJyb3VnaHQgZG93bi4uLiIpACAgICAgICAgcmVzdWx0ID0gbWFpbi5NaW5pbmV0MS5saW5rKEVORDE9bWFpbi5wYXJhbXNbJ0xJTksnXVsnYmVnaW4nXSxFTkQyPW1haW4ucGFyYW1zWydMSU5LJ11bJ2VuZCddLE9QVElPTj0iZG93biIpACAgICAgICAgbWFpbi5jYXNlKCJCcmluZ2luZyBMaW5rIGRvd24uLi4gIikAICAgICAgICBpbXBvcnQgdGltZQAgICAgZGVmIENBU0U1KHNlbGYsbWFpbikgOiAjTGluayBkb3duLCB0aGVuIHBpbmcAACAgICAgICAgdXRpbGl0aWVzLmFzc2VydF9lcXVhbHMoZXhwZWN0PW1haW4uVFJVRSxhY3R1YWw9cGluZ19yZXN1bHQsb25wYXNzPSJOTyBQQUNLRVQgTE9TUywg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d2FpdGluZyAxMCBzZWNvbmRzIHRoZW4gbWFraW5nIGF0dGVtcHQgbnVtYmVyICIrc3RyKGNvdW50KSkAICAgICAgICAgICAgICAgIGNvdW50ID0gY291bnQgKyAxACAgICAgICAgICAgIGlmIHJlc3VsdD09IG1haW4uRkFMU0UgYW5kIGNvdW50IDwgNjoAICAgICAgICAgICAgcmVzdWx0ID0gbWFpbi5PTk9TMS5jaGVja19mbG93KCkAICAgICAgICAgICAgbWFpbi5zdGVwKCJDaGVja2luZyIpACAgICAgICAgICAgIHRpbWUuc2xlZXAoMTApACAgICAgICAgICAgIG1haW4uc3RlcCgiV2FpdGluZyIpACAgICAgICAgd2hpbGUgcmVzdWx0ID09IG1haW4uRkFMU0U6ACAgICAgICAgbWFpbi5sb2cuaW5mbygiV2FpdCBmb3IgZmxvd3MgdG8gc2V0dGxlLCB0aGVuIGNoZWNrIikAICAgICAgICBjb3VudCA9IDEAICAgICAgICByZXN1bHQgPSBtYWluLkZBTFNFACAgICAgICAgbWFpbi5jYXNlKCJDaGVja2luZyBmbG93cyIpACAgICAgICAgbWFpbi5PTk9TMS5hZGRfZmxvdyhtYWluLnBhcmFtc1snRkxPV0RFRiddKQAgICAgICAgIHN0cnRUaW1lID0gdGltZS50aW1lKCkAICAgICAgICB0aW1lLnNsZWVwKDUpACAgICAgICAgbWFpbi5PTk9TMS5kZWxldGVfZmxvdygiYWxsIikAICAgICAgICBtYWluLnN0ZXAoIkNsZWFuaW5nIG91dCBhbnkgbGVmdG92ZXIgZmxvd3MuLi4iKQAgICAgICAgIG1haW4uY2FzZSgiVGFraW5nIGNhcmUgb2YgdGhlc2UgZmxvd3MhIikgACAgICAgICAgaW1wb3J0IHRpbWUAICAgIGRlZiBDQVNFMyhzZWxmLG1haW4pIDogI2RlbGV0ZSBhbnkgZmxvd3Mgc3RpbGwgaW4gc3lzdGVtLCBhZGQgZmxvd3MsIGFuZCBjaGVjayB3aGVuIHRoZXkgaGF2ZSBhbGwgaW5zdGFsbGVkLiBHaXZlcyB0aW1lIGZyb20gQWRkIHRvIENvbXBsZXRlIENoZWNrACAAICAgICAgICBtYWluLk1pbmluZXQxLmdldF9zd19jb250cm9sbGVyKCJzMSIpICAgICAgIAAgICAgICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDEnXSxwb3J0MT1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MSddLGlwMj1tYWluLnBhcmFtc1snQ1RSTCddWydpcDInXSxwb3J0Mj1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MiddLGlwMz1tYWluLnBhcmFtc1snQ1RSTCddWydpcDMnXSxwb3J0Mz1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MyddLGlwND1tYWluLnBhcmFtc1snQ1RSTCddWydpcDQnXSxwb3J0ND1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0NCddKQAgICAgICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDQnXSxwb3J0MT1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0NCddKQAgICAgICAgICAgICAgICAgaj1pKzE2ACAgICAgICAgICAgIGVsc2U6ACAgICAgICAgICAgICAgICBtYWluLk1pbmluZXQxLmFzc2lnbl9zd19jb250cm9sbGVyKHN3PSJzIitzdHIoaiksaXAxPW1haW4ucGFyYW1zWydDVFJMJ11bJ2lwMSddLHBvcnQxPW1haW4ucGFyYW1zWydDVFJMJ11bJ3BvcnQxJ10saXAyPW1haW4ucGFyYW1zWydDVFJMJ11bJ2lwMiddLHBvcnQyPW1haW4ucGFyYW1zWydDVFJMJ11bJ3BvcnQyJ10saXAzPW1haW4ucGFyYW1zWydDVFJMJ11bJ2lwMyddLHBvcnQzPW1haW4ucGFyYW1zWydDVFJMJ11bJ3BvcnQzJ10saXA0PW1haW4ucGFyYW1zWydDVFJMJ11bJ2lwNCddLHBvcnQ0PW1haW4ucGFyYW1zWydDVFJMJ11bJ3BvcnQ0J10pACAgICAgICAgICAgICAgICBtYWluLk1pbmluZXQx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ICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDMnXSxwb3J0MT1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MyddKQAgICAgICAgICAgICAgICAgaj1qKzEAICAgICAgICAgICAgZWxpZiBpID49IDUgYW5kIGkgPCAxNToAICAgICAgICAgICAgICAgIG1haW4uTWluaW5ldDEuYXNzaWduX3N3X2NvbnRyb2xsZXIoc3c9InMiK3N0cihqKSxpcDE9bWFpbi5wYXJhbXNbJ0NUUkwnXVsnaXAxJ10scG9ydDE9bWFpbi5wYXJhbXNbJ0NUUkwnXVsncG9ydDEnXSxpcDI9bWFpbi4gICAgICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ24gICAgICAgICAgICAgICAgbWFpbi5NICAgICAgICAgICAgICAgIG1haW4uTWluaW5ldDEuYXNzaWduX3N3X2NvbnRyb2xsZXIoc3c9InMiK3N0cihqKSxpcDE9bWFpbi5wYXJhbXNbJ0NUUkwnXVsnaXAzJ10scG9ydDE9bWFpbi5wYXJhbXNbJ0NUUkwnXVsncG9ydDMnXSkAICAgICAgICAgICAgICAgIG1haW4uTWluaW5ldDEuYXNzaWduX3N3X2NvbnRyb2xsZXIoc3c9InMiK3N0cihqKSxpcDE9bWFpbi5wYXJhbXNbJ0NUUkwnXVsnaXAxJ10scG9ydDE9bWFpbi5wYXJhbXNbJ0NUUkwnXVsncG9ydDEnXSkAICAgICAgICAgICAgICAgIGo9aSsxACAgICAgICAgICAgIGlmIGkgPCAxNToAICAgICAgICBmb3IgaSBpbiByYW5nZSgyNSk6IAAgICAgZGVmIENBU0U4KHNlbGYsbWFpbikgOiAjQnJpbmcgZG93biBPTk9TIDIsMyxhbmQgNCwgdGhlbiBwaW5nAAAgICAgICAgIHV0aWxpdGllcy5hc3NlcnRfZXF1YWxzKGV4cGVjdD1tYWluLlRSVUUsYWN0dWFsPXJlc3VsdCxvbnBhc3M9Ik5PIFBBQ0tFVCBMT1NTLCBIT1NUIElTIFJFQUNIQUJMRSIsb25mYWlsPSJQQUNLRVQgTE9TVCwgSE9TVCBJUyBOT1QgUkVBQ0hBQkxFIikAICAgICAgICBtYWluLmxvZy5pbmZvKCJcblx0XHRcdFx0VGltZSB0byBjb21wbGV0ZSBwaW5nIHRlc3Q6ICIrc3RyKGVuZFRpbWUtc3RydFRpbWUpKyIgc2Vjb25kcyIpACAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgIGVuZFRpbWUgPSB0aW1lLnRpbWUoKSAAICAgICAgICAgICAgaWYgZXhpdCA9PSBtYWluLlRSVUU6ACAgICAgICAgICAgICAgICAgICAgZXhpdCA9IG1haW4uVFJVRQAgICAgICAgICAgICAgICAgZWxpZiBwaW5nID09IG1haW4uVFJVRToAICAgICAgICAgICAgICAgICAgICBicmVhawAgICAgICAgICAgICAgICAgICAgIGV4aXQgPSBtYWluLlRSVUUAICAgICAgICAgICAgICAgICAgICBtYWluLmxvZy5lcnJvcigiUGluZyB0ZXN0IGZhaWxlZCIpACAgICAgICAgICAgICAgICBlbGlmIHBpbmcgPT0gbWFpbi5GQUxTRSBhbmQgY291bnQgPT02OgAgICAgICAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkAICAgICAgICAgICAgICAgICAgICBtYWluLmxvZy5pbmZvKCJQaW5nIGZhaWxlZCwgbWFraW5nIGF0dGVtcHQgbnVtYmVyICIrc3RyKGNvdW50KSsiIGluIDEwIHNlY29uZHMiKQAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gY291bnQgKyAxACAgICAgICAgICAgICAgICBpZiBwaW5nID09IG1haW4uRkFMU0UgYW5kIGNvdW50IDwgNjoAICAgICAgICAgICAgICAgIHBpbmcgPSBtYWluLk1pbmluZXQxLnBpbmdIb3N0KHNyYz0iaCIrc3RyKGkpLHRhcmdldD0iaCIrc3RyKGkrMjUpKQAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cdFx0XHRcdGgiK3N0cihpKSsiIElTIFBJTkdJTkcgaCIrc3RyKGkrMjUpICkAICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNiwgMTYpIDoAICAgICAgICB3aGlsZSAxOgAgICAgICAgIGNvdW50ID0gMQAgICAgICAgIGV4aXQgPSBtYWluLkZBTFNFACAgICAgICAgcmVzdWx0ID0gbWFpbi5UUlVFACAgICAgICAgc3RydFRpbWUgPSB0aW1lLnRpbWUoKQAgICAgICAgIGltcG9ydCB0aW1lACAgICAgICAgbWFpbi5jYXNlKCJQaW5naW5nIEVWRVJZVEhJTkdHRyEhISIpACAgICBkZWYgQ0FTRTcoc2VsZixtYWluKSA6ICNQaW5nIGFjY3Jvc3MgdG9wb2xvZ3ksIGdpdmUgdGltZSBmb3IgdGVzdCB0byBjb21wbGV0ZSBzdGFydCB0byBmaW5pc2gAICAgACAgICAgICAgdXRpbGl0aWVzLmFzc2VydF9lcXVhbHMoZXhwZWN0PW1haW4uVFJVRSxhY3R1YWw9c3VjY2VzcyxvbnBhc3M9IkZsb3cgY2hlY2sgUEFTUyIsb25mYWlsPSJGbG93IGNoZWNrIEZBSUwiKQAgICAgICAgICAgICAgICAgYnJlYWsAICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBtYWluLlRSVUUAICAgICAgICAgICAgZWxzZToAICAgICAgICAgICAgICAgIGJyZWFrACAgICAgICAgICAgICAgICBzdWNjZXNzID0gbWFpbi5GQUxTRQAgICAgICAgICAgICBlbGlmIHJlc3VsdCA9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA9PSA2OgAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiRmxvdyBmYWlsZWQsIHdhaXRpbmcgMTAgc2Vjb25kcyB0aGVuIG1ha2luZyBhdHRlbXB0IG51bWJlciAiK3N0cihjb3VudCkpACAgICAgICAgICAgICAgICBjb3VudCA9IGNvdW50ICsgMQAgICAgICAgICAgICBpZiByZXN1bHQ9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA8IDY6ACAgICAgICAgICAgIHJlc3VsdCA9IG1haW4uT05PUzEuY2hlY2tfZmxvdygpACAgICAgICAgICAgIG1haW4uc3RlcCgiQ2hlY2tpbmciKQAgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQAgICAgICAgICAgICBtYWluLnN0ZXAoIldhaXRpbmciKQAgICAgICAgIHdoaWxlIHJlc3VsdCA9PSBtYWluLkZBTFNFOgAgICAgICAgIG1haW4ubG9nLmluZm8oIldhaXQgZm9yIGZsb3dzIHRvIHNldHRsZSwgdGhlbiBjaGVjayIpACAgICAgICAgY291bnQgPSAxACAgICAgICAgcmVzdWx0ID0gbWFpbi5GQUxTRQAgICAgICAgIG1haW4uY2FzZSgiQ2hlY2tpbmcgZmxvd3MiKQAgICAgICAgIGltcG9ydCB0aW1lACAgICBkZWYgQ0FTRTYoc2VsZixtYWluKSA6IAAAYWQAACoKAAC2CgAAABAAABwAAAAAAAAA7g8AANcPAABTDwAAPw8AACAPAAAFDwAA6w4AANkOAADIDgAApA4AAFUOAAACDgAAzQ0AAKcNAABCDQAAHw0AAAUNAADODAAAlwwAAHIMAABYDAAAMAwAAAsMAADpCwAAwwsAAK4LAABNCwAAtgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAgICB1dGlsaXRpZXMuYXNzZXJ0X2VxdWFscyhleHBlY3Q9bWFpbi5UUlVFLGFjdHVhbD1yZXN1bHQsb25wYXNzPSJOTyBQQUNLRVQgTE9TUywgSE9TVCBJUyBSRUFDSEFCTEUiLG9uZmFpbD0iUEFDS0VUIExPU1QsIEhPU1QgSVMgTk9UIFJFQUNIQUJMRSIpACAgICAgICAgbWFpbi5sb2cuaW5mbygiXG5cdFx0XHRcdFRpbWUgdG8gY29tcGxldGUgcGluZyB0ZXN0OiAiK3N0cihlbmRUaW1lLXN0cnRUaW1lKSsiIHNlY29uZHMiKQAgICAgICAgICAgICAgICBicmVhawAgICAgICAgICAgICAgICBlbmRUaW1lID0gdGltZS50aW1lKCkgACAgICAgICAgICAgIGlmIGV4aXQgPT0gbWFpbi5UUlVFOgAgICAgICAgICAgICAgICAgICAgIGV4aXQgPSBtYWluLlRSVUUAICAgICAgICAgICAgICAgIGVsaWYgcGluZyA9PSBtYWluLlRSVUU6ACAgICAgICAgICAgICAgICAgICAgYnJlYWsAICAgICAgICAgICAgICAgICAgICBleGl0ID0gbWFpbi5UUlVFACAgICAgICAgICAgICAgICAgICAgbWFpbi5sb2cuZXJyb3IoIlBpbmcgdGVzdCBmYWlsZWQiKQAgICAgICAgICAgICAgICAgZWxpZiBwaW5nID09IG1haW4uRkFMU0UgYW5kIGNvdW50ID09NjoAICAgICAgICAgICAgICAgICAgICBicmVhawAgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMTApACAgICAgICAgICAgICAgICAgICAgbWFpbi5sb2cuaW5mbygiUGluZyBmYWlsZWQsIG1ha2luZyBhdHRlbXB0IG51bWJlciAiK3N0cihjb3VudCkrIiBpbiAxMCBzZWNvbmRzIikAICAgICAgICAgICAgICAgICAgICBjb3VudCA9IGNvdW50ICsgMQAgICAgICAgICAgICAgICAgaWYgcGluZyA9PSBtYWluLkZBTFNFIGFuZCBjb3VudCA8IDY6ACAgICAgICAgICAgICAgICBwaW5nID0gbWFpbi5NaW5pbmV0MS5waW5nSG9zdChzcmM9ImgiK3N0cihpKSx0YXJnZXQ9ImgiK3N0cihpKzI1KSkAICAgICAgICAgICAgICAgIG1haW4ubG9nLmluZm8oIlxuXHRcdFx0XHRoIitzdHIoaSkrIiBJUyBQSU5HSU5HIGgiK3N0cihpKzI1KSApACAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDYsIDE2KSA6ACAgICAgICAgd2hpbGUgMToAICAgICAgICBjb3VudCA9IDEAICAgICAgICBleGl0ID0gbWFpbi5GQUxTRQAgICAgICAgIHJlc3VsdCA9IG1haW4uVFJVRQAgICAgICAgIHN0cnRUaW1lID0gdGltZS50aW1lKCkAICAgICAgICBpbXBvcnQgdGltZQAgICAgICAgICAgICAgICAgbWFpbi5NaW5pbmV0MS5hc3NpZ25fc3dfY29udHJvbGxlcihzdz0icyIrc3RyKGopLGlwMT1tYWluLnBhcmFtc1snQ1RSTCddWydpcDEnXSxwb3J0MT1tYWluLnBhcmFtc1snQ1RSTCddWydwb3J0MSddKQAgICAgICAgICAgICAgICAgaj1pKzE2ACAgICAgICAgICAgIGVsc2U6AA==