f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAACIFgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIG1haWw7CnBrZ3BhdGggbmV0L21haWw7CnByaW9yaXR5IDk7CmltcG9ydCBidWZpbyBidWZpbyAiYnVmaW8iOwppbXBvcnQgYnl0ZXMgYnl0ZXMgImJ5dGVzIjsKaW1wb3J0IGJhc2U2NCBlbmNvZGluZy9iYXNlNjQgImVuY29kaW5nL2Jhc2U2NCI7CmltcG9ydCBlcnJvcnMgZXJyb3JzICJlcnJvcnMiOwppbXBvcnQgZm10IGZtdCAiZm10IjsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCBpb3V0aWwgaW8vaW91dGlsICJpby9pb3V0aWwiOwppbXBvcnQgbG9nIGxvZyAibG9nIjsKaW1wb3J0IHRleHRwcm90byBuZXQvdGV4dHByb3RvICJuZXQvdGV4dHByb3RvIjsKaW1wb3J0IHN0cmNvbnYgc3RyY29udiAic3RyY29udiI7CmltcG9ydCBzdHJpbmdzIHN0cmluZ3MgInN0cmluZ3MiOwppbXBvcnQgdGltZSB0aW1lICJ0aW1lIjsKaW1wb3J0IHVuaWNvZGUgdW5pY29kZSAidW5pY29kZSI7CmluaXQgbWFpbCBuZXRfbWFpbC4uaW1wb3J0IDkgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHVuaWNvZGUgdW5pY29kZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByYW5kIG1hdGhfcmFuZC4uaW1wb3J0IDMgcmVmbGVjdCByZWZsZWN0Li5pbXBvcnQgMyBzeXNjYWxsIHN5c2NhbGwuLmltcG9ydCAzIGJ5dGVzIGJ5dGVzLi5pbXBvcnQgNCB0aW1lIHRpbWUuLmltcG9ydCA0IGJhc2U2NCBlbmNvZGluZ19iYXNlNjQuLmltcG9ydCA1IGJ1ZmlvIGJ1ZmlvLi5pbXBvcnQgNSBvcyBvcy4uaW1wb3J0IDUgZmlsZXBhdGggcGF0aF9maWxlcGF0aC4uaW1wb3J0IDYgZm10IGZtdC4uaW1wb3J0IDYgbmV0IG5ldC4uaW1wb3J0IDYgaW91dGlsIGlvX2lvdXRpbC4uaW1wb3J0IDcgbG9nIGxvZy4uaW1wb3J0IDcgdGV4dHByb3RvIG5ldF90ZXh0cHJvdG8uLmltcG9ydCA4Owp0eXBlIDx0eXBlIDEgIkFkZHJlc3MiIDx0eXBlIDIgc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyBBZGRyZXNzIDx0eXBlIC0xNj47IH0+CiBmdW5jIChhIDx0eXBlIDMgKjx0eXBlIDE+PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CnZhciBFcnJIZWFkZXJOb3RQcmVzZW50IDx0eXBlIC0xOT47CnR5cGUgPHR5cGUgNCAiSGVhZGVyIiA8dHlwZSA1IG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgNiBbXSA8dHlwZSAtMTY+Pj4KIGZ1bmMgKGggPHR5cGUgND4pIEdldCAoa2V5IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jIChoIDx0eXBlIDQ+KSBEYXRlICgpICg/IDx0eXBlIDcgInRpbWUuVGltZSIgPHR5cGUgOCBzdHJ1Y3QgeyAudGltZS5zZWMgPHR5cGUgLTQ+OyAudGltZS5uc2VjIDx0eXBlIC0zPjsgLnRpbWUubG9jIDx0eXBlIDkgKjx0eXBlIDEwICJ0aW1lLkxvY2F0aW9uIiA8dHlwZSAxMSBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLnpvbmUgPHR5cGUgMTIgW10gPHR5cGUgMTMgIi50aW1lLnpvbmUiIDx0eXBlIDE0IHN0cnVjdCB7IC50aW1lLm5hbWUgPHR5cGUgLTE2PjsgLnRpbWUub2Zmc2V0IDx0eXBlIC0xMT47IC50aW1lLmlzRFNUIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLnR4IDx0eXBlIDE1IFtdIDx0eXBlIDE2ICIudGltZS56b25lVHJhbnMiIDx0eXBlIDE3IHN0cnVjdCB7IC50aW1lLndoZW4gPHR5cGUgLTQ+OyAudGltZS5pbmRleCA8dHlwZSAtNT47IC50aW1lLmlzc3RkIDx0eXBlIC0xNT47IC50aW1lLmlzdXRjIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLmNhY2hlU3RhcnQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZUVuZCA8dHlwZSAtND47IC50aW1lLmNhY2hlWm9uZSA8dHlwZSAxOCAqPHR5cGUgMTM+PjsgfT4KIGZ1bmMgKGwgPHR5cGUgMTkgKjx0eXBlIDEwPj4pIC50aW1lLmZpcnN0Wm9uZVVzZWQgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGwgPHR5cGUgMTk+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAxOT4pIC50aW1lLmxvb2t1cCAoc2VjIDx0eXBlIC00PikgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIHN0YXJ0IDx0eXBlIC00PiwgZW5kIDx0eXBlIC00Pik7CiBmdW5jIChsIDx0eXBlIDE5PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChsIDx0eXBlIDE5PikgLnRpbWUubG9va3VwRmlyc3Rab25lICgpIDx0eXBlIC0xMT47CiBmdW5jIChsIDx0eXBlIDE5PikgLnRpbWUuZ2V0ICgpIDx0eXBlIDE5PjsKPj47IH0+CiBmdW5jICh0IDx0eXBlIDc+KSBBZnRlciAodSA8dHlwZSA3PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgNz4pIE1hcnNoYWxUZXh0ICgpICg/IDx0eXBlIDIwIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA3PikgRGF0ZSAoKSAoeWVhciA8dHlwZSAtMTE+LCBtb250aCA8dHlwZSAyMSAidGltZS5Nb250aCIgPHR5cGUgLTExPgogZnVuYyAobSA8dHlwZSAyMT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+LCBkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDc+KSAudGltZS5hYnMgKCkgPHR5cGUgLTg+OwogZnVuYyAodCA8dHlwZSA3PikgV2Vla2RheSAoKSA8dHlwZSAyMiAidGltZS5XZWVrZGF5IiA8dHlwZSAtMTE+CiBmdW5jIChkIDx0eXBlIDIyPikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CiBmdW5jICh0IDx0eXBlIDc+KSBOYW5vc2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDIzICo8dHlwZSA3Pj4pIEdvYkRlY29kZSAoZGF0YSA8dHlwZSAyNCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHQgPHR5cGUgNz4pIEluIChsb2MgPHR5cGUgOT4pIDx0eXBlIDc+OwogZnVuYyAodCA8dHlwZSA3PikgTG9jYWwgKCkgPHR5cGUgNz47CiBmdW5jICh0IDx0eXBlIDc+KSBNb250aCAoKSA8dHlwZSAyMT47CiBmdW5jICh0IDx0eXBlIDc+KSBIb3VyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDc+KSBNYXJzaGFsQmluYXJ5ICgpICg/IDx0eXBlIDI1IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA3PikgVW5peE5hbm8gKCkgPHR5cGUgLTQ+OwogZnVuYyAodCA8dHlwZSA3PikgRXF1YWwgKHUgPHR5cGUgNz4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDc+KSBGb3JtYXQgKGxheW91dCA8dHlwZSAtMTY+KSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSA3PikgQWRkRGF0ZSAoeWVhcnMgPHR5cGUgLTExPiwgbW9udGhzIDx0eXBlIC0xMT4sIGRheXMgPHR5cGUgLTExPikgPHR5cGUgNz47CiBmdW5jICh0IDx0eXBlIDc+KSBab25lICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgNz4pIERheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA3PikgQ2xvY2sgKCkgKGhvdXIgPHR5cGUgLTExPiwgbWluIDx0eXBlIC0xMT4sIHNlYyA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgNz4pIE1hcnNoYWxKU09OICgpICg/IDx0eXBlIDI2IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA3PikgVVRDICgpIDx0eXBlIDc+OwogZnVuYyAodCA8dHlwZSA3PikgLnRpbWUuZGF0ZSAoZnVsbCA8dHlwZSAtMTU+KSAoeWVhciA8dHlwZSAtMTE+LCBtb250aCA8dHlwZSAyMT4sIGRheSA8dHlwZSAtMTE+LCB5ZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA3PikgSXNaZXJvICgpIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDc+KSBCZWZvcmUgKHUgPHR5cGUgNz4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDc+KSBTZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgNz4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSA3PikgTWludXRlICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDc+KSBSb3VuZCAoZCA8dHlwZSAyNyAidGltZS5EdXJhdGlvbiIgPHR5cGUgLTQ+CiBmdW5jIChkIDx0eXBlIDI3PikgU2Vjb25kcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAyNz4pIE1pbnV0ZXMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMjc+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgMjc+KSBIb3VycyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAyNz4pIE5hbm9zZWNvbmRzICgpIDx0eXBlIC00PjsKPikgPHR5cGUgNz47CiBmdW5jICh0IDx0eXBlIDc+KSBTdWIgKHUgPHR5cGUgNz4pIDx0eXBlIDI3PjsKIGZ1bmMgKHQgPHR5cGUgMjM+KSBVbm1hcnNoYWxUZXh0IChkYXRhIDx0eXBlIDI4IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA3PikgVW5peCAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDc+KSBUcnVuY2F0ZSAoZCA8dHlwZSAyNz4pIDx0eXBlIDc+OwogZnVuYyAodCA8dHlwZSA3PikgQWRkIChkIDx0eXBlIDI3PikgPHR5cGUgNz47CiBmdW5jICh0IDx0eXBlIDc+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgMjkgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDc+KSBMb2NhdGlvbiAoKSA8dHlwZSA5PjsKIGZ1bmMgKHQgPHR5cGUgMjM+KSBVbm1hcnNoYWxCaW5hcnkgKGRhdGEgPHR5cGUgMzAgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDc+KSBJU09XZWVrICgpICh5ZWFyIDx0eXBlIC0xMT4sIHdlZWsgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDc+KSAudGltZS5sb2NhYnMgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGFicyA8dHlwZSAtOD4pOwogZnVuYyAodCA8dHlwZSA3PikgWWVhciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA3PikgWWVhckRheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyMz4pIFVubWFyc2hhbEpTT04gKGRhdGEgPHR5cGUgMzEgW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7Cj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChoIDx0eXBlIDQ+KSBBZGRyZXNzTGlzdCAoa2V5IDx0eXBlIC0xNj4pICg/IDx0eXBlIDMyIFtdIDx0eXBlIDMzICo8dHlwZSAxPj4+LCA/IDx0eXBlIC0xOT4pOwo+Owp0eXBlIDx0eXBlIDM0ICJNZXNzYWdlIiA8dHlwZSAzNSBzdHJ1Y3QgeyBIZWFkZXIgPHR5cGUgND47IEJvZHkgPHR5cGUgMzYgImlvLlJlYWRlciIgPHR5cGUgMzcgaW50ZXJmYWNlIHsgUmVhZCAocCA8dHlwZSAzOCBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47IH0+PjsKZnVuYyBQYXJzZUFkZHJlc3MgKGFkZHJlc3MgPHR5cGUgLTE2PikgKD8gPHR5cGUgMz4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgUGFyc2VBZGRyZXNzTGlzdCAobGlzdCA8dHlwZSAtMTY+KSAoPyA8dHlwZSAzOSBbXSA8dHlwZSAzPj4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgUmVhZE1lc3NhZ2UgKHIgPHR5cGUgMzY+KSAobXNnIDx0eXBlIDQwICo8dHlwZSAzND4+LCBlcnIgPHR5cGUgLTE5Pik7CmNoZWNrc3VtIDlFRjJCRUZDNzVDRkQ5OEM0MkFBMTJGQzAwM0ZDRUYxNEI4MjkwQjY7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAAAAAAAAAAADQAAAAIFgAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAAA8FgAAJgAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAZBYAACAAAAAEAAAAAgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAAIQWAAABAAAAAAAAAAAAAAABAAAAAAAAAA==