f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABoFwAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGZpbGVwYXRoOwpwa2dwYXRoIHBhdGgvZmlsZXBhdGg7CnByaW9yaXR5IDY7CmltcG9ydCBieXRlcyBieXRlcyAiYnl0ZXMiOwppbXBvcnQgZXJyb3JzIGVycm9ycyAiZXJyb3JzIjsKaW1wb3J0IG9zIG9zICJvcyI7CmltcG9ydCBydW50aW1lIHJ1bnRpbWUgInJ1bnRpbWUiOwppbXBvcnQgc29ydCBzb3J0ICJzb3J0IjsKaW1wb3J0IHN0cmluZ3Mgc3RyaW5ncyAic3RyaW5ncyI7CmltcG9ydCB1dGY4IHVuaWNvZGUvdXRmOCAidW5pY29kZS91dGY4IjsKaW5pdCBmaWxlcGF0aCBwYXRoX2ZpbGVwYXRoLi5pbXBvcnQgNiBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHVuaWNvZGUgdW5pY29kZS4uaW1wb3J0IDEgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgc3lzY2FsbCBzeXNjYWxsLi5pbXBvcnQgMyBieXRlcyBieXRlcy4uaW1wb3J0IDQgdGltZSB0aW1lLi5pbXBvcnQgNCBvcyBvcy4uaW1wb3J0IDU7CmZ1bmMgQWJzIChwYXRoIDx0eXBlIC0xNj4pICg/IDx0eXBlIC0xNj4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgQmFzZSAocGF0aCA8dHlwZSAtMTY+KSA8dHlwZSAtMTY+OwpmdW5jIENsZWFuIChwYXRoIDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CmZ1bmMgRGlyIChwYXRoIDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CnZhciBFcnJCYWRQYXR0ZXJuIDx0eXBlIC0xOT47CmZ1bmMgRXZhbFN5bWxpbmtzIChwYXRoIDx0eXBlIC0xNj4pICg/IDx0eXBlIC0xNj4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgRXh0IChwYXRoIDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CmZ1bmMgRnJvbVNsYXNoIChwYXRoIDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CmZ1bmMgR2xvYiAocGF0dGVybiA8dHlwZSAtMTY+KSAobWF0Y2hlcyA8dHlwZSAxIFtdIDx0eXBlIC0xNj4+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgSGFzUHJlZml4IChwIDx0eXBlIC0xNj4sIHByZWZpeCA8dHlwZSAtMTY+KSA8dHlwZSAtMTU+OwpmdW5jIElzQWJzIChwYXRoIDx0eXBlIC0xNj4pIDx0eXBlIC0xNT47CmZ1bmMgSm9pbiAoZWxlbSAuLi48dHlwZSAtMTY+KSA8dHlwZSAtMTY+Owpjb25zdCBMaXN0U2VwYXJhdG9yID0gNTgnIDsKZnVuYyBNYXRjaCAocGF0dGVybiA8dHlwZSAtMTY+LCBuYW1lIDx0eXBlIC0xNj4pIChtYXRjaGVkIDx0eXBlIC0xNT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBSZWwgKGJhc2VwYXRoIDx0eXBlIC0xNj4sIHRhcmdwYXRoIDx0eXBlIC0xNj4pICg/IDx0eXBlIC0xNj4sID8gPHR5cGUgLTE5Pik7CmNvbnN0IFNlcGFyYXRvciA9IDQ3JyA7CnZhciBTa2lwRGlyIDx0eXBlIC0xOT47CmZ1bmMgU3BsaXQgKHBhdGggPHR5cGUgLTE2PikgKGRpciA8dHlwZSAtMTY+LCBmaWxlIDx0eXBlIC0xNj4pOwpmdW5jIFNwbGl0TGlzdCAocGF0aCA8dHlwZSAtMTY+KSA8dHlwZSAyIFtdIDx0eXBlIC0xNj4+OwpmdW5jIFRvU2xhc2ggKHBhdGggPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKZnVuYyBWb2x1bWVOYW1lIChwYXRoIDx0eXBlIC0xNj4pICh2IDx0eXBlIC0xNj4pOwpmdW5jIFdhbGsgKHJvb3QgPHR5cGUgLTE2Piwgd2Fsa0ZuIDx0eXBlIDMgIldhbGtGdW5jIiA8dHlwZSA0IChwYXRoIDx0eXBlIC0xNj4sIGluZm8gPHR5cGUgNSAib3MuRmlsZUluZm8iIDx0eXBlIDYgaW50ZXJmYWNlIHsgTmFtZSAoKSA8dHlwZSAtMTY+OyBTaXplICgpIDx0eXBlIC00PjsgTW9kZSAoKSA8dHlwZSA3ICJvcy5GaWxlTW9kZSIgPHR5cGUgLTc+CiBmdW5jIChtIDx0eXBlIDc+KSBQZXJtICgpIDx0eXBlIDc+OwogZnVuYyAobSA8dHlwZSA3PikgSXNSZWd1bGFyICgpIDx0eXBlIC0xNT47CiBmdW5jIChtIDx0eXBlIDc+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKG0gPHR5cGUgNz4pIElzRGlyICgpIDx0eXBlIC0xNT47Cj47IE1vZFRpbWUgKCkgPHR5cGUgOCAidGltZS5UaW1lIiAidGltZSIgPHR5cGUgOSBzdHJ1Y3QgeyAudGltZS5zZWMgPHR5cGUgLTQ+OyAudGltZS5uc2VjIDx0eXBlIC0zPjsgLnRpbWUubG9jIDx0eXBlIDEwICo8dHlwZSAxMSAidGltZS5Mb2NhdGlvbiIgPHR5cGUgMTIgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS56b25lIDx0eXBlIDEzIFtdIDx0eXBlIDE0ICIudGltZS56b25lIiA8dHlwZSAxNSBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLm9mZnNldCA8dHlwZSAtMTE+OyAudGltZS5pc0RTVCA8dHlwZSAtMTU+OyB9Pj4+OyAudGltZS50eCA8dHlwZSAxNiBbXSA8dHlwZSAxNyAiLnRpbWUuem9uZVRyYW5zIiA8dHlwZSAxOCBzdHJ1Y3QgeyAudGltZS53aGVuIDx0eXBlIC00PjsgLnRpbWUuaW5kZXggPHR5cGUgLTU+OyAudGltZS5pc3N0ZCA8dHlwZSAtMTU+OyAudGltZS5pc3V0YyA8dHlwZSAtMTU+OyB9Pj4+OyAudGltZS5jYWNoZVN0YXJ0IDx0eXBlIC00PjsgLnRpbWUuY2FjaGVFbmQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZVpvbmUgPHR5cGUgMTkgKjx0eXBlIDE0Pj47IH0+CiBmdW5jIChsIDx0eXBlIDIwICo8dHlwZSAxMT4+KSAudGltZS5maXJzdFpvbmVVc2VkICgpIDx0eXBlIC0xNT47CiBmdW5jIChsIDx0eXBlIDIwPikgLnRpbWUubG9va3VwIChzZWMgPHR5cGUgLTQ+KSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPiwgaXNEU1QgPHR5cGUgLTE1Piwgc3RhcnQgPHR5cGUgLTQ+LCBlbmQgPHR5cGUgLTQ+KTsKIGZ1bmMgKGwgPHR5cGUgMjA+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAyMD4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAobCA8dHlwZSAyMD4pIC50aW1lLmdldCAoKSA8dHlwZSAyMD47CiBmdW5jIChsIDx0eXBlIDIwPikgLnRpbWUubG9va3VwRmlyc3Rab25lICgpIDx0eXBlIC0xMT47Cj4+OyB9PgogZnVuYyAodCA8dHlwZSA4PikgQWZ0ZXIgKHUgPHR5cGUgOD4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDg+KSBNYXJzaGFsVGV4dCAoKSAoPyA8dHlwZSAyMSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgOD4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMjIgInRpbWUuTW9udGgiIDx0eXBlIC0xMT4KIGZ1bmMgKG0gPHR5cGUgMjI+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPiwgZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA4PikgLnRpbWUuYWJzICgpIDx0eXBlIC04PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIFdlZWtkYXkgKCkgPHR5cGUgMjMgInRpbWUuV2Vla2RheSIgPHR5cGUgLTExPgogZnVuYyAoZCA8dHlwZSAyMz4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+OwogZnVuYyAodCA8dHlwZSA4PikgTmFub3NlY29uZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyNCAqPHR5cGUgOD4+KSBHb2JEZWNvZGUgKGRhdGEgPHR5cGUgMjUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDg+KSBJbiAobG9jIDx0eXBlIDEwPikgPHR5cGUgOD47CiBmdW5jICh0IDx0eXBlIDg+KSBMb2NhbCAoKSA8dHlwZSA4PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIE1vbnRoICgpIDx0eXBlIDIyPjsKIGZ1bmMgKHQgPHR5cGUgOD4pIEhvdXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgOD4pIE1hcnNoYWxCaW5hcnkgKCkgKD8gPHR5cGUgMjYgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDg+KSBVbml4TmFubyAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDg+KSBFcXVhbCAodSA8dHlwZSA4PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIEZvcm1hdCAobGF5b3V0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDg+KSBBZGREYXRlICh5ZWFycyA8dHlwZSAtMTE+LCBtb250aHMgPHR5cGUgLTExPiwgZGF5cyA8dHlwZSAtMTE+KSA8dHlwZSA4PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIFpvbmUgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA4PikgRGF5ICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDg+KSBDbG9jayAoKSAoaG91ciA8dHlwZSAtMTE+LCBtaW4gPHR5cGUgLTExPiwgc2VjIDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA4PikgTWFyc2hhbEpTT04gKCkgKD8gPHR5cGUgMjcgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDg+KSBVVEMgKCkgPHR5cGUgOD47CiBmdW5jICh0IDx0eXBlIDg+KSAudGltZS5kYXRlIChmdWxsIDx0eXBlIC0xNT4pICh5ZWFyIDx0eXBlIC0xMT4sIG1vbnRoIDx0eXBlIDIyPiwgZGF5IDx0eXBlIC0xMT4sIHlkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDg+KSBJc1plcm8gKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIEJlZm9yZSAodSA8dHlwZSA4PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSA4PikgU2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDg+KSBNaW51dGUgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgOD4pIFN1YiAodSA8dHlwZSA4PikgPHR5cGUgMjggInRpbWUuRHVyYXRpb24iIDx0eXBlIC00PgogZnVuYyAoZCA8dHlwZSAyOD4pIFNlY29uZHMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMjg+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgMjg+KSBNaW51dGVzICgpIDx0eXBlIC0xMD47CiBmdW5jIChkIDx0eXBlIDI4PikgSG91cnMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMjg+KSBOYW5vc2Vjb25kcyAoKSA8dHlwZSAtND47Cj47CiBmdW5jICh0IDx0eXBlIDg+KSBSb3VuZCAoZCA8dHlwZSAyOD4pIDx0eXBlIDg+OwogZnVuYyAodCA8dHlwZSA4PikgVW5peCAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDI0PikgVW5tYXJzaGFsVGV4dCAoZGF0YSA8dHlwZSAyOSBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgOD4pIEFkZCAoZCA8dHlwZSAyOD4pIDx0eXBlIDg+OwogZnVuYyAodCA8dHlwZSA4PikgVHJ1bmNhdGUgKGQgPHR5cGUgMjg+KSA8dHlwZSA4PjsKIGZ1bmMgKHQgPHR5cGUgOD4pIExvY2F0aW9uICgpIDx0eXBlIDEwPjsKIGZ1bmMgKHQgPHR5cGUgOD4pIEdvYkVuY29kZSAoKSAoPyA8dHlwZSAzMCBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMjQ+KSBVbm1hcnNoYWxCaW5hcnkgKGRhdGEgPHR5cGUgMzEgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDg+KSBJU09XZWVrICgpICh5ZWFyIDx0eXBlIC0xMT4sIHdlZWsgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDg+KSAudGltZS5sb2NhYnMgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGFicyA8dHlwZSAtOD4pOwogZnVuYyAodCA8dHlwZSA4PikgWWVhckRheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA4PikgWWVhciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyND4pIFVubWFyc2hhbEpTT04gKGRhdGEgPHR5cGUgMzIgW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7Cj47IElzRGlyICgpIDx0eXBlIC0xNT47IFN5cyAoKSA8dHlwZSAzMyBpbnRlcmZhY2UgeyB9PjsgfT4+LCBlcnIgPHR5cGUgLTE5PikgPHR5cGUgLTE5Pj4+KSA8dHlwZSAtMTk+Owp0eXBlIDx0eXBlIDM+OwpjaGVja3N1bSA4QUFEODYxOUIxNjFGMzgzOEZDMDU3N0IzRTgzMDAxMzI2NzRDODBCOwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAOcWAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAABsXAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAABEFwAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAZBcAAAEAAAAAAAAAAAAAAAEAAAAAAAAA