Name: series-workfloww8ml4 Phase: Failed StartedAt: 2026-08-05 06:10:47 +0000 UTC FinishedAt: 2026-08-05 07:03:03 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8ml4[0] Phase: Succeeded StartedAt: 2026-08-05 06:10:47 +0000 UTC FinishedAt: 2026-08-05 07:02:53 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8ml4[0].run-triage Phase: Succeeded StartedAt: 2026-08-05 06:10:47 +0000 UTC FinishedAt: 2026-08-05 07:02:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA3OjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlciYjMzk7cyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwNzowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRkMzFjYTRhZDA0YWMwZDRhZjdiOWJjZDQxMDExYTQzZDM4OWNhMTFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyA1IDA3OjAyOjMzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlXG5pbmRleCBmODhkZDRlZjhkMjY0Li4zOTEwMWFmNWQ4NGExIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuQEAgLTI1LDYgJiM0MzsyNSw3IEBAIFRFU1RfUFJPR1MgOj0gXFxcbiBcdG5mdF9hdWRpdC5zaCBcXFxuIFx0bmZ0X2NvbmNhdF9yYW5nZS5zaCBcXFxuIFx0bmZ0X2Nvbm50cmFja19oZWxwZXIuc2ggXFxcbiYjNDM7XHRuZnRfY3RfdGltZW91dC5zaCBcXFxuIFx0bmZ0X2ZpYi5zaCBcXFxuIFx0bmZ0X2ZpYl9uZXh0aG9wLnNoIFxcXG4gXHRuZnRfZmxvd3RhYmxlLnNoIFxcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2hcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5hNDFkYWQyMzI5Y2M2XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoXG5AQCAtMCwwICYjNDM7MSwyMTcgQEBcbiYjNDM7IyEvYmluL2Jhc2hcbiYjNDM7IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MzsjXG4mIzQzOyMgRnVuY3Rpb25hbCB0ZXN0IGZvciBuZnRhYmxlcyBjdCB0aW1lb3V0IG9iamVjdHMuXG4mIzQzOyNcbiYjNDM7IyBWZXJpZmllcyB0aGF0IGEgY3QgdGltZW91dCBwb2xpY3kgYWN0dWFsbHkgY2hhbmdlcyB0aGUgY29ubnRyYWNrXG4mIzQzOyMgc3RhdGUtbWFjaGluZSB0aW1lb3V0IG9mIHRoZSBjb25uZWN0aW9ucyBpdCBpcyBhdHRhY2hlZCB0bzpcbiYjNDM7I1xuJiM0MzsjICAxLiB0ZXN0X3BvbGljeV9hcHBsaWVkICAgIC0gYSBjb25uZWN0aW9uIG1hdGNoaW5nIGEgXCYjMzQ7Y3QgdGltZW91dCBzZXRcJiMzNDsgcnVsZVxuJiM0MzsjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cyB0aGUgcGVyLXN0YXRlIHRpbWVvdXQgZnJvbSB0aGUgbmFtZWRcbiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSwgaS5lLiBcdTAwM2M9IFBPTElDWV9FU1RBQl9TRUNTLlxuJiM0MzsjXG4mIzQzOyMgIDIuIHRlc3RfZGVmYXVsdF9wcmVzZXJ2ZWQgLSBhIGNvbm5lY3Rpb24gbm90IG1hdGNoaW5nIGFueSBjdCB0aW1lb3V0IHJ1bGVcbiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBzIHRoZSBrZXJuZWwgZGVmYXVsdCBFU1RBQkxJU0hFRCB0aW1lb3V0LlxuJiM0MzsjXG4mIzQzOyMgIDMuIHRlc3RfcG9saWN5X3JlbG9hZCAgICAgLSBhZnRlciB0aGUgdGFibGUgaXMgZGVsZXRlZCBhbmQgcmVsb2FkZWQsIGEgbmV3XG4mIzQzOyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uIHRocm91Z2ggdGhlIHJ1bGUgc3RpbGwgcmVjZWl2ZXMgdGhlXG4mIzQzOyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3kgdGltZW91dCByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdC5cbiYjNDM7I1xuJiM0MzsjIFRoZSByZW1haW5pbmcgbGlmZXRpbWUgb2YgYSBmbG93IGlzIHRoZSB0aGlyZCBmaWVsZCBvZiBhIFwmIzM0O2Nvbm50cmFjayAtTFwmIzM0O1xuJiM0MzsjIGxpbmU6XG4mIzQzOyNcbiYjNDM7IyAgIHRjcCAgNiAgMTE3ICBFU1RBQkxJU0hFRCAgc3JjPTEwLjAuMS4xIGRzdD0xMC4wLjEuMiBzcG9ydD0uLi4gZHBvcnQ9Li4uXG4mIzQzOyMgICAgICAgICAgIF5eXlxuJiM0MzsjXG4mIzQzOyMgVG9wb2xvZ3k6IHR3byBuZXRucyBjb25uZWN0ZWQgYnkgYSB2ZXRoIHBhaXIuXG4mIzQzOyMgICBuczEgKDEwLjAuMS4xLzI0KSAtLXZldGgtLSBuczIgKDEwLjAuMS4yLzI0KVxuJiM0MzsjIFRoZSBydWxlc2V0IGlzIGxvYWRlZCBpbiBuczEsIHNvIG5zMSYjMzk7cyBjb25udHJhY2sgdGFibGUgaXMgdXNlZCB0aHJvdWdob3V0LlxuJiM0MztcbiYjNDM7c291cmNlIGxpYi5zaFxuJiM0MztcbiYjNDM7Y2hlY2t0b29sIFwmIzM0O25mdCAtLXZlcnNpb25cJiMzNDsgXCYjMzQ7cnVuIHRlc3Qgd2l0aG91dCBuZnRcJiMzNDtcbiYjNDM7Y2hlY2t0b29sIFwmIzM0O2Nvbm50cmFjayAtLXZlcnNpb25cJiMzNDsgXCYjMzQ7cnVuIHRlc3Qgd2l0aG91dCBjb25udHJhY2tcJiMzNDtcbiYjNDM7Y2hlY2t0b29sIFwmIzM0O3NvY2F0IC1oXCYjMzQ7IFwmIzM0O3J1biB0ZXN0IHdpdGhvdXQgc29jYXRcJiMzNDtcbiYjNDM7XG4mIzQzOyMgVENQIHBvcnQgY292ZXJlZCBieSB0aGUgY3QgdGltZW91dCBwb2xpY3kuXG4mIzQzO1BPUlRfUE9MSUNZPTEyMzQ1XG4mIzQzOyMgVENQIHBvcnQgbm90IGNvdmVyZWQgYnkgYW55IHJ1bGU7IHVzZXMgdGhlIGtlcm5lbCBkZWZhdWx0IHRpbWVvdXRzLlxuJiM0MztQT1JUX0RFRkFVTFQ9MTIzNDZcbiYjNDM7XG4mIzQzOyMgRVNUQUJMSVNIRUQgdGltZW91dCBjYXJyaWVkIGJ5IHRoZSBwb2xpY3ksIGluIHNlY29uZHMuIE11c3QgYmUgd2VsbCBiZWxvd1xuJiM0MzsjIHRoZSBrZXJuZWwgZGVmYXVsdCAoNSBkYXlzKSBzbyB0aGUgdHdvIGNhc2VzIGNhbm5vdCBiZSBjb25mdXNlZC5cbiYjNDM7UE9MSUNZX0VTVEFCX1NFQ1M9MTIwXG4mIzQzO1xuJiM0MztyZXQ9MFxuJiM0MztcbiYjNDM7Y2xlYW51cCgpXG4mIzQzO3tcbiYjNDM7XHRpcCBuZXRucyBwaWRzIFwmIzM0OyRuczFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGxcbiYjNDM7XHRpcCBuZXRucyBwaWRzIFwmIzM0OyRuczJcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGxcbiYjNDM7XHRjbGVhbnVwX2FsbF9uc1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztsb2FkX3J1bGVzZXQoKVxuJiM0Mzt7XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBcJiMzNDskbnMxXCYjMzQ7IG5mdCAtZiAtIFx1MDAzY1x1MDAzY0VPRlxuJiM0Mzt0YWJsZSBpcCBjdF90aW1lb3V0X3Rlc3Qge1xuJiM0MztcdGN0IHRpbWVvdXQgdGNwX3BvbGljeSB7XG4mIzQzO1x0XHRwcm90b2NvbCB0Y3A7XG4mIzQzO1x0XHRwb2xpY3kgPSB7IGVzdGFibGlzaGVkOiAke1BPTElDWV9FU1RBQl9TRUNTfXMgfTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGNoYWluIG91dHB1dCB7XG4mIzQzO1x0XHR0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7XG4mIzQzO1x0XHRpcCBkYWRkciAxMC4wLjEuMiB0Y3AgZHBvcnQgJFBPUlRfUE9MSUNZIGN0IHRpbWVvdXQgc2V0IFwmIzM0O3RjcF9wb2xpY3lcJiMzNDtcbiYjNDM7XHR9XG4mIzQzO31cbiYjNDM7RU9GXG4mIzQzO31cbiYjNDM7XG4mIzQzO2xpc3RlbmVyX3JlYWR5KClcbiYjNDM7e1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMlwmIzM0OyBzcyAtbG50IC1vIFwmIzM0O3Nwb3J0ID0gOiQxXCYjMzQ7IHwgZ3JlcCAtcSBcJiMzNDskMVwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztjb25uX2VzdGFibGlzaGVkKClcbiYjNDM7e1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMVwmIzM0OyBjb25udHJhY2sgLUwgLXAgdGNwIC0tZHBvcnQgXCYjMzQ7JDFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCB8XG4mIzQzO1x0XHRncmVwIC1xIEVTVEFCTElTSEVEXG4mIzQzO31cbiYjNDM7XG4mIzQzOyMgUHJpbnRzIHRoZSByZW1haW5pbmcgbGlmZXRpbWUsIGluIHNlY29uZHMsIG9mIHRoZSBmaXJzdCBFU1RBQkxJU0hFRCBUQ1BcbiYjNDM7IyBmbG93IGluIG5zMSBtYXRjaGluZyB0aGUgZ2l2ZW4gZGVzdGluYXRpb24gcG9ydC5cbiYjNDM7ZXN0YWJsaXNoZWRfdGltZW91dCgpXG4mIzQzO3tcbiYjNDM7XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuczFcJiMzNDsgY29ubnRyYWNrIC1MIC1wIHRjcCAtLWRwb3J0IFwmIzM0OyQxXCYjMzQ7IDJcdTAwM2UvZGV2L251bGwgfFxuJiM0MztcdFx0YXdrICYjMzk7L0VTVEFCTElTSEVELyB7IHByaW50ICQzOyBleGl0IH0mIzM5O1xuJiM0Mzt9XG4mIzQzO1xuJiM0MzsjIE9wZW5zIGEgVENQIGNvbm5lY3Rpb24gZnJvbSBuczEgYW5kIGhvbGRzIGl0IG9wZW4gaW4gdGhlIGJhY2tncm91bmQuXG4mIzQzOyMgUHJpbnRzIHRoZSBwaWQgb2YgdGhlIGhvbGRlciBzbyB0aGUgY2FsbGVyIGNhbiB0ZWFyIGl0IGRvd24uXG4mIzQzO29wZW5fY29ubmVjdGlvbigpXG4mIzQzO3tcbiYjNDM7XHQjIHN0ZG91dC9zdGRlcnIgbXVzdCBiZSByZWRpcmVjdGVkLCBlbHNlIHRoZSBiYWNrZ3JvdW5kIGpvYiBrZWVwcyB0aGVcbiYjNDM7XHQjIGNvbW1hbmQgc3Vic3RpdHV0aW9uIHRoYXQgY2FsbHMgdGhpcyBmdW5jdGlvbiBibG9ja2VkIHVudGlsIGl0IGV4aXRzLlxuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMVwmIzM0OyBiYXNoIC1jIFwmIzM0O1xuJiM0MztcdFx0ZXhlYyAzXHUwMDNjXHUwMDNlL2Rldi90Y3AvMTAuMC4xLjIvJDEgfHwgZXhpdCAxXG4mIzQzO1x0XHRzbGVlcCA2MFxuJiM0MztcdFwmIzM0OyBcdTAwM2UvZGV2L251bGwgMlx1MDAzZVx1MDAyNjEgXHUwMDI2XG4mIzQzO1x0ZWNobyAkIVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztjbG9zZV9jb25uZWN0aW9uKClcbiYjNDM7e1xuJiM0MztcdGtpbGwgXCYjMzQ7JDFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcdHdhaXQgXCYjMzQ7JDFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0Mzt9XG4mIzQzO1xuJiM0MzsjIEFzc2VydHMgdGhhdCB0aGUgZmxvdyBvbiAkMSBoYXMgYSB0aW1lb3V0IG1hdGNoaW5nIGV4cGVjdGF0aW9uICQyIChcJiMzNDtwb2xpY3lcJiMzNDtcbiYjNDM7IyBvciBcJiMzNDtkZWZhdWx0XCYjMzQ7KSwgdXNpbmcgJDMgYXMgdGhlIHRlc3QgbmFtZS5cbiYjNDM7Y2hlY2tfdGltZW91dCgpXG4mIzQzO3tcbiYjNDM7XHRsb2NhbCBkcG9ydD0kMSBleHBlY3Q9JDIgbmFtZT0kM1xuJiM0MztcdGxvY2FsIHR2YWxcbiYjNDM7XG4mIzQzO1x0aWYgISBidXN5d2FpdCBcJiMzNDskQlVTWVdBSVRfVElNRU9VVFwmIzM0OyBjb25uX2VzdGFibGlzaGVkIFwmIzM0OyRkcG9ydFwmIzM0OzsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtGQUlMOiAkbmFtZTogY29ubmVjdGlvbiBkaWQgbm90IHJlYWNoIEVTVEFCTElTSEVEXCYjMzQ7XG4mIzQzO1x0XHRyZXQ9MVxuJiM0MztcdFx0cmV0dXJuXG4mIzQzO1x0ZmlcbiYjNDM7XG4mIzQzO1x0dHZhbD0kKGVzdGFibGlzaGVkX3RpbWVvdXQgXCYjMzQ7JGRwb3J0XCYjMzQ7KVxuJiM0MztcdGlmIFsgLXogXCYjMzQ7JHR2YWxcJiMzNDsgXTsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtGQUlMOiAkbmFtZTogY291bGQgbm90IHJlYWQgY29ubnRyYWNrIHRpbWVvdXRcJiMzNDtcbiYjNDM7XHRcdHJldD0xXG4mIzQzO1x0XHRyZXR1cm5cbiYjNDM7XHRmaVxuJiM0MztcbiYjNDM7XHRpZiBbIFwmIzM0OyRleHBlY3RcJiMzNDsgPSBcJiMzNDtwb2xpY3lcJiMzNDsgXTsgdGhlblxuJiM0MztcdFx0aWYgWyBcJiMzNDskdHZhbFwmIzM0OyAtbGUgXCYjMzQ7JFBPTElDWV9FU1RBQl9TRUNTXCYjMzQ7IF07IHRoZW5cbiYjNDM7XHRcdFx0ZWNobyBcJiMzNDtQQVNTOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBcdTAwM2M9IHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXNcJiMzNDtcbiYjNDM7XHRcdGVsc2VcbiYjNDM7XHRcdFx0ZWNobyBcJiMzNDtGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBleGNlZWRzIHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXNcJiMzNDtcbiYjNDM7XHRcdFx0cmV0PTFcbiYjNDM7XHRcdGZpXG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0aWYgWyBcJiMzNDskdHZhbFwmIzM0OyAtZ3QgXCYjMzQ7JFBPTElDWV9FU1RBQl9TRUNTXCYjMzQ7IF0gXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICBbIFwmIzM0OyR0dmFsXCYjMzQ7IC1sZSBcJiMzNDskZGVmYXVsdF9lc3RhYlwmIzM0OyBdOyB0aGVuXG4mIzQzO1x0XHRcdGVjaG8gXCYjMzQ7UEFTUzogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgbWF0Y2hlcyBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXCYjMzQ7XG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdGVjaG8gXCYjMzQ7RkFJTDogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgaXMgbm90IHRoZSBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXCYjMzQ7XG4mIzQzO1x0XHRcdHJldD0xXG4mIzQzO1x0XHRmaVxuJiM0MztcdGZpXG4mIzQzO31cbiYjNDM7XG4mIzQzO3RyYXAgY2xlYW51cCBFWElUXG4mIzQzO1xuJiM0MztzZXR1cF9ucyBuczEgbnMyXG4mIzQzO1xuJiM0MztpZiAhIGlwIGxpbmsgYWRkIHZldGgwIG5ldG5zIFwmIzM0OyRuczFcJiMzNDsgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2ZXRoMCBuZXRucyBcJiMzNDskbnMyXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdTAwM2UvZGV2L251bGwgMlx1MDAzZVx1MDAyNjE7IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O1NLSVA6IE5vIHZpcnR1YWwgZXRoZXJuZXQgcGFpciBkZXZpY2Ugc3VwcG9ydCBpbiBrZXJuZWxcJiMzNDtcbiYjNDM7XHRleGl0ICRrc2Z0X3NraXBcbiYjNDM7ZmlcbiYjNDM7XG4mIzQzO2lwIC1uZXQgXCYjMzQ7JG5zMVwmIzM0OyBsaW5rIHNldCB2ZXRoMCB1cFxuJiM0MztpcCAtbmV0IFwmIzM0OyRuczJcJiMzNDsgbGluayBzZXQgdmV0aDAgdXBcbiYjNDM7aXAgLW5ldCBcJiMzNDskbnMxXCYjMzQ7IGFkZHIgYWRkIDEwLjAuMS4xLzI0IGRldiB2ZXRoMFxuJiM0MztpcCAtbmV0IFwmIzM0OyRuczJcJiMzNDsgYWRkciBhZGQgMTAuMC4xLjIvMjQgZGV2IHZldGgwXG4mIzQzO1xuJiM0MzsjIFNZU1RFTTpcJiMzNDtjYXRcJiMzNDsga2VlcHMgZWFjaCBhY2NlcHRlZCBjb25uZWN0aW9uIG9wZW46IGNhdCBibG9ja3MgcmVhZGluZyB0aGVcbiYjNDM7IyBzb2NrZXQsIHNvIHRoZSBmbG93IHN0YXlzIEVTVEFCTElTSEVEIHVudGlsIHRoZSBjbGllbnQgZ29lcyBhd2F5LiBTaW5raW5nXG4mIzQzOyMgdG8gL2Rldi9udWxsIGluc3RlYWQgd291bGQgY2xvc2UgaXQgaW1tZWRpYXRlbHkgYW5kIGxhbmQgaW4gQ0xPU0VfV0FJVC5cbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskbnMyXCYjMzQ7IHNvY2F0IFRDUC1MSVNURU46JFBPUlRfUE9MSUNZLHJldXNlYWRkcixmb3JrIFNZU1RFTTpcJiMzNDtjYXRcJiMzNDsgXHUwMDI2XHUwMDNlL2Rldi9udWxsIFx1MDAyNlxuJiM0MztpcCBuZXRucyBleGVjIFwmIzM0OyRuczJcJiMzNDsgc29jYXQgVENQLUxJU1RFTjokUE9SVF9ERUZBVUxULHJldXNlYWRkcixmb3JrIFNZU1RFTTpcJiMzNDtjYXRcJiMzNDsgXHUwMDI2XHUwMDNlL2Rldi9udWxsIFx1MDAyNlxuJiM0MztcbiYjNDM7YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgbGlzdGVuZXJfcmVhZHkgXCYjMzQ7JFBPUlRfUE9MSUNZXCYjMzQ7XG4mIzQzO2J1c3l3YWl0IFwmIzM0OyRCVVNZV0FJVF9USU1FT1VUXCYjMzQ7IGxpc3RlbmVyX3JlYWR5IFwmIzM0OyRQT1JUX0RFRkFVTFRcJiMzNDtcbiYjNDM7XG4mIzQzOyMgTG9hZGluZyB0aGUgcnVsZXNldCBwdWxscyBpbiBjb25udHJhY2ssIHNvIHRoZSBzeXNjdGxzIGJlbG93IGV4aXN0IG9ubHlcbiYjNDM7IyBhZnRlciB0aGlzIHBvaW50LlxuJiM0MztpZiAhIGxvYWRfcnVsZXNldDsgdGhlblxuJiM0MztcdGVjaG8gXCYjMzQ7U0tJUDogQ291bGQgbm90IGxvYWQgY3QgdGltZW91dCBydWxlc2V0XCYjMzQ7XG4mIzQzO1x0ZXhpdCAka3NmdF9za2lwXG4mIzQzO2ZpXG4mIzQzO1xuJiM0MzsjIFJlYWQgdGhlIGRlZmF1bHQgcmF0aGVyIHRoYW4gaGFyZGNvZGluZyBpdDogYSBob3N0IHRoYXQgbG93ZXJlZFxuJiM0MzsjIG5mX2Nvbm50cmFja190Y3BfdGltZW91dF9lc3RhYmxpc2hlZCBtdXN0IG5vdCBmYWlsIHRlc3QgMiBzcHVyaW91c2x5LlxuJiM0MztkZWZhdWx0X2VzdGFiPSQoaXAgbmV0bnMgZXhlYyBcJiMzNDskbnMxXCYjMzQ7IFxcXG4mIzQzO1x0Y2F0IC9wcm9jL3N5cy9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja190Y3BfdGltZW91dF9lc3RhYmxpc2hlZCBcXFxuJiM0MztcdDJcdTAwM2UvZGV2L251bGwpXG4mIzQzO1xuJiM0MztpZiBbIC16IFwmIzM0OyRkZWZhdWx0X2VzdGFiXCYjMzQ7IF07IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O1NLSVA6IGNvbm50cmFjayB0Y3AgdGltZW91dCBzeXNjdGwgbm90IGF2YWlsYWJsZVwmIzM0O1xuJiM0MztcdGV4aXQgJGtzZnRfc2tpcFxuJiM0MztmaVxuJiM0MztcbiYjNDM7aWYgWyBcJiMzNDskZGVmYXVsdF9lc3RhYlwmIzM0OyAtbGUgXCYjMzQ7JFBPTElDWV9FU1RBQl9TRUNTXCYjMzQ7IF07IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O1NLSVA6IGRlZmF1bHQgRVNUQUJMSVNIRUQgdGltZW91dCAke2RlZmF1bHRfZXN0YWJ9cyBpcyBub3QgYWJvdmUgdGhlIHBvbGljeSB2YWx1ZVwmIzM0O1xuJiM0MztcdGV4aXQgJGtzZnRfc2tpcFxuJiM0MztmaVxuJiM0MztcbiYjNDM7IyBUZXN0IDE6IGEgZmxvdyBtYXRjaGVkIGJ5IHRoZSBydWxlIGdldHMgdGhlIHBvbGljeSB0aW1lb3V0LlxuJiM0Mztjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiBcJiMzNDskUE9SVF9QT0xJQ1lcJiMzNDspXG4mIzQzO2NoZWNrX3RpbWVvdXQgXCYjMzQ7JFBPUlRfUE9MSUNZXCYjMzQ7IHBvbGljeSB0ZXN0X3BvbGljeV9hcHBsaWVkXG4mIzQzO2Nsb3NlX2Nvbm5lY3Rpb24gXCYjMzQ7JGNvbm5fcGlkXCYjMzQ7XG4mIzQzO1xuJiM0MzsjIFRlc3QgMjogYSBmbG93IG5vdCBtYXRjaGVkIGJ5IGFueSBydWxlIGtlZXBzIHRoZSBrZXJuZWwgZGVmYXVsdC5cbiYjNDM7Y29ubl9waWQ9JChvcGVuX2Nvbm5lY3Rpb24gXCYjMzQ7JFBPUlRfREVGQVVMVFwmIzM0OylcbiYjNDM7Y2hlY2tfdGltZW91dCBcJiMzNDskUE9SVF9ERUZBVUxUXCYjMzQ7IGRlZmF1bHQgdGVzdF9kZWZhdWx0X3ByZXNlcnZlZFxuJiM0MztjbG9zZV9jb25uZWN0aW9uIFwmIzM0OyRjb25uX3BpZFwmIzM0O1xuJiM0MztcbiYjNDM7IyBUZXN0IDM6IHRoZSBwb2xpY3kgc3Vydml2ZXMgYSBkZWxldGUvcmVsb2FkIGN5Y2xlIG9mIHRoZSB3aG9sZSB0YWJsZS5cbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskbnMxXCYjMzQ7IGNvbm50cmFjayAtRiAyXHUwMDNlL2Rldi9udWxsXG4mIzQzO2lwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMVwmIzM0OyBuZnQgZGVsZXRlIHRhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdFxuJiM0MztcbiYjNDM7aWYgISBsb2FkX3J1bGVzZXQ7IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O0ZBSUw6IHRlc3RfcG9saWN5X3JlbG9hZDogY291bGQgbm90IHJlbG9hZCBjdCB0aW1lb3V0IHJ1bGVzZXRcJiMzNDtcbiYjNDM7XHRleGl0ICRrc2Z0X2ZhaWxcbiYjNDM7ZmlcbiYjNDM7XG4mIzQzO2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFwmIzM0OyRQT1JUX1BPTElDWVwmIzM0OylcbiYjNDM7Y2hlY2tfdGltZW91dCBcJiMzNDskUE9SVF9QT0xJQ1lcJiMzNDsgcG9saWN5IHRlc3RfcG9saWN5X3JlbG9hZFxuJiM0MztjbG9zZV9jb25uZWN0aW9uIFwmIzM0OyRjb25uX3BpZFwmIzM0O1xuJiM0MztcbiYjNDM7ZXhpdCAkcmV0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDc6MDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlciYjMzk7cyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRkMzFjYTRhZDA0YWMwZDRhZjdiOWJjZDQxMDExYTQzZDM4OWNhMTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyA1IDA3OjAyOjMzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUKaW5kZXggZjg4ZGQ0ZWY4ZDI2NC4uMzkxMDFhZjVkODRhMSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZQomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlCkBAIC0yNSw2ICYjNDM7MjUsNyBAQCBURVNUX1BST0dTIDo9IFwKIAluZnRfYXVkaXQuc2ggXAogCW5mdF9jb25jYXRfcmFuZ2Uuc2ggXAogCW5mdF9jb25udHJhY2tfaGVscGVyLnNoIFwKJiM0MzsJbmZ0X2N0X3RpbWVvdXQuc2ggXAogCW5mdF9maWIuc2ggXAogCW5mdF9maWJfbmV4dGhvcC5zaCBcCiAJbmZ0X2Zsb3d0YWJsZS5zaCBcCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwLi5hNDFkYWQyMzI5Y2M2Ci0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaApAQCAtMCwwICYjNDM7MSwyMTcgQEAKJiM0MzsjIS9iaW4vYmFzaAomIzQzOyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKJiM0MzsjCiYjNDM7IyBGdW5jdGlvbmFsIHRlc3QgZm9yIG5mdGFibGVzIGN0IHRpbWVvdXQgb2JqZWN0cy4KJiM0MzsjCiYjNDM7IyBWZXJpZmllcyB0aGF0IGEgY3QgdGltZW91dCBwb2xpY3kgYWN0dWFsbHkgY2hhbmdlcyB0aGUgY29ubnRyYWNrCiYjNDM7IyBzdGF0ZS1tYWNoaW5lIHRpbWVvdXQgb2YgdGhlIGNvbm5lY3Rpb25zIGl0IGlzIGF0dGFjaGVkIHRvOgomIzQzOyMKJiM0MzsjICAxLiB0ZXN0X3BvbGljeV9hcHBsaWVkICAgIC0gYSBjb25uZWN0aW9uIG1hdGNoaW5nIGEgJiMzNDtjdCB0aW1lb3V0IHNldCYjMzQ7IHJ1bGUKJiM0MzsjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cyB0aGUgcGVyLXN0YXRlIHRpbWVvdXQgZnJvbSB0aGUgbmFtZWQKJiM0MzsjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LCBpLmUuICZsdDs9IFBPTElDWV9FU1RBQl9TRUNTLgomIzQzOyMKJiM0MzsjICAyLiB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkIC0gYSBjb25uZWN0aW9uIG5vdCBtYXRjaGluZyBhbnkgY3QgdGltZW91dCBydWxlCiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBzIHRoZSBrZXJuZWwgZGVmYXVsdCBFU1RBQkxJU0hFRCB0aW1lb3V0LgomIzQzOyMKJiM0MzsjICAzLiB0ZXN0X3BvbGljeV9yZWxvYWQgICAgIC0gYWZ0ZXIgdGhlIHRhYmxlIGlzIGRlbGV0ZWQgYW5kIHJlbG9hZGVkLCBhIG5ldwomIzQzOyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uIHRocm91Z2ggdGhlIHJ1bGUgc3RpbGwgcmVjZWl2ZXMgdGhlCiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSB0aW1lb3V0IHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0LgomIzQzOyMKJiM0MzsjIFRoZSByZW1haW5pbmcgbGlmZXRpbWUgb2YgYSBmbG93IGlzIHRoZSB0aGlyZCBmaWVsZCBvZiBhICYjMzQ7Y29ubnRyYWNrIC1MJiMzNDsKJiM0MzsjIGxpbmU6CiYjNDM7IwomIzQzOyMgICB0Y3AgIDYgIDExNyAgRVNUQUJMSVNIRUQgIHNyYz0xMC4wLjEuMSBkc3Q9MTAuMC4xLjIgc3BvcnQ9Li4uIGRwb3J0PS4uLgomIzQzOyMgICAgICAgICAgIF5eXgomIzQzOyMKJiM0MzsjIFRvcG9sb2d5OiB0d28gbmV0bnMgY29ubmVjdGVkIGJ5IGEgdmV0aCBwYWlyLgomIzQzOyMgICBuczEgKDEwLjAuMS4xLzI0KSAtLXZldGgtLSBuczIgKDEwLjAuMS4yLzI0KQomIzQzOyMgVGhlIHJ1bGVzZXQgaXMgbG9hZGVkIGluIG5zMSwgc28gbnMxJiMzOTtzIGNvbm50cmFjayB0YWJsZSBpcyB1c2VkIHRocm91Z2hvdXQuCiYjNDM7CiYjNDM7c291cmNlIGxpYi5zaAomIzQzOwomIzQzO2NoZWNrdG9vbCAmIzM0O25mdCAtLXZlcnNpb24mIzM0OyAmIzM0O3J1biB0ZXN0IHdpdGhvdXQgbmZ0JiMzNDsKJiM0MztjaGVja3Rvb2wgJiMzNDtjb25udHJhY2sgLS12ZXJzaW9uJiMzNDsgJiMzNDtydW4gdGVzdCB3aXRob3V0IGNvbm50cmFjayYjMzQ7CiYjNDM7Y2hlY2t0b29sICYjMzQ7c29jYXQgLWgmIzM0OyAmIzM0O3J1biB0ZXN0IHdpdGhvdXQgc29jYXQmIzM0OwomIzQzOwomIzQzOyMgVENQIHBvcnQgY292ZXJlZCBieSB0aGUgY3QgdGltZW91dCBwb2xpY3kuCiYjNDM7UE9SVF9QT0xJQ1k9MTIzNDUKJiM0MzsjIFRDUCBwb3J0IG5vdCBjb3ZlcmVkIGJ5IGFueSBydWxlOyB1c2VzIHRoZSBrZXJuZWwgZGVmYXVsdCB0aW1lb3V0cy4KJiM0MztQT1JUX0RFRkFVTFQ9MTIzNDYKJiM0MzsKJiM0MzsjIEVTVEFCTElTSEVEIHRpbWVvdXQgY2FycmllZCBieSB0aGUgcG9saWN5LCBpbiBzZWNvbmRzLiBNdXN0IGJlIHdlbGwgYmVsb3cKJiM0MzsjIHRoZSBrZXJuZWwgZGVmYXVsdCAoNSBkYXlzKSBzbyB0aGUgdHdvIGNhc2VzIGNhbm5vdCBiZSBjb25mdXNlZC4KJiM0MztQT0xJQ1lfRVNUQUJfU0VDUz0xMjAKJiM0MzsKJiM0MztyZXQ9MAomIzQzOwomIzQzO2NsZWFudXAoKQomIzQzO3sKJiM0MzsJaXAgbmV0bnMgcGlkcyAmIzM0OyRuczEmIzM0OyAyJmd0Oy9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGwKJiM0MzsJaXAgbmV0bnMgcGlkcyAmIzM0OyRuczImIzM0OyAyJmd0Oy9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGwKJiM0MzsJY2xlYW51cF9hbGxfbnMKJiM0Mzt9CiYjNDM7CiYjNDM7bG9hZF9ydWxlc2V0KCkKJiM0Mzt7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgbmZ0IC1mIC0gJmx0OyZsdDtFT0YKJiM0Mzt0YWJsZSBpcCBjdF90aW1lb3V0X3Rlc3QgewomIzQzOwljdCB0aW1lb3V0IHRjcF9wb2xpY3kgewomIzQzOwkJcHJvdG9jb2wgdGNwOwomIzQzOwkJcG9saWN5ID0geyBlc3RhYmxpc2hlZDogJHtQT0xJQ1lfRVNUQUJfU0VDU31zIH07CiYjNDM7CX0KJiM0MzsKJiM0MzsJY2hhaW4gb3V0cHV0IHsKJiM0MzsJCXR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDsKJiM0MzsJCWlwIGRhZGRyIDEwLjAuMS4yIHRjcCBkcG9ydCAkUE9SVF9QT0xJQ1kgY3QgdGltZW91dCBzZXQgJiMzNDt0Y3BfcG9saWN5JiMzNDsKJiM0MzsJfQomIzQzO30KJiM0MztFT0YKJiM0Mzt9CiYjNDM7CiYjNDM7bGlzdGVuZXJfcmVhZHkoKQomIzQzO3sKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyRuczImIzM0OyBzcyAtbG50IC1vICYjMzQ7c3BvcnQgPSA6JDEmIzM0OyB8IGdyZXAgLXEgJiMzNDskMSYjMzQ7CiYjNDM7fQomIzQzOwomIzQzO2Nvbm5fZXN0YWJsaXNoZWQoKQomIzQzO3sKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyRuczEmIzM0OyBjb25udHJhY2sgLUwgLXAgdGNwIC0tZHBvcnQgJiMzNDskMSYjMzQ7IDImZ3Q7L2Rldi9udWxsIHwKJiM0MzsJCWdyZXAgLXEgRVNUQUJMSVNIRUQKJiM0Mzt9CiYjNDM7CiYjNDM7IyBQcmludHMgdGhlIHJlbWFpbmluZyBsaWZldGltZSwgaW4gc2Vjb25kcywgb2YgdGhlIGZpcnN0IEVTVEFCTElTSEVEIFRDUAomIzQzOyMgZmxvdyBpbiBuczEgbWF0Y2hpbmcgdGhlIGdpdmVuIGRlc3RpbmF0aW9uIHBvcnQuCiYjNDM7ZXN0YWJsaXNoZWRfdGltZW91dCgpCiYjNDM7ewomIzQzOwlpcCBuZXRucyBleGVjICYjMzQ7JG5zMSYjMzQ7IGNvbm50cmFjayAtTCAtcCB0Y3AgLS1kcG9ydCAmIzM0OyQxJiMzNDsgMiZndDsvZGV2L251bGwgfAomIzQzOwkJYXdrICYjMzk7L0VTVEFCTElTSEVELyB7IHByaW50ICQzOyBleGl0IH0mIzM5OwomIzQzO30KJiM0MzsKJiM0MzsjIE9wZW5zIGEgVENQIGNvbm5lY3Rpb24gZnJvbSBuczEgYW5kIGhvbGRzIGl0IG9wZW4gaW4gdGhlIGJhY2tncm91bmQuCiYjNDM7IyBQcmludHMgdGhlIHBpZCBvZiB0aGUgaG9sZGVyIHNvIHRoZSBjYWxsZXIgY2FuIHRlYXIgaXQgZG93bi4KJiM0MztvcGVuX2Nvbm5lY3Rpb24oKQomIzQzO3sKJiM0MzsJIyBzdGRvdXQvc3RkZXJyIG11c3QgYmUgcmVkaXJlY3RlZCwgZWxzZSB0aGUgYmFja2dyb3VuZCBqb2Iga2VlcHMgdGhlCiYjNDM7CSMgY29tbWFuZCBzdWJzdGl0dXRpb24gdGhhdCBjYWxscyB0aGlzIGZ1bmN0aW9uIGJsb2NrZWQgdW50aWwgaXQgZXhpdHMuCiYjNDM7CWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgYmFzaCAtYyAmIzM0OwomIzQzOwkJZXhlYyAzJmx0OyZndDsvZGV2L3RjcC8xMC4wLjEuMi8kMSB8fCBleGl0IDEKJiM0MzsJCXNsZWVwIDYwCiYjNDM7CSYjMzQ7ICZndDsvZGV2L251bGwgMiZndDsmYW1wOzEgJmFtcDsKJiM0MzsJZWNobyAkIQomIzQzO30KJiM0MzsKJiM0MztjbG9zZV9jb25uZWN0aW9uKCkKJiM0Mzt7CiYjNDM7CWtpbGwgJiMzNDskMSYjMzQ7IDImZ3Q7L2Rldi9udWxsCiYjNDM7CXdhaXQgJiMzNDskMSYjMzQ7IDImZ3Q7L2Rldi9udWxsCiYjNDM7fQomIzQzOwomIzQzOyMgQXNzZXJ0cyB0aGF0IHRoZSBmbG93IG9uICQxIGhhcyBhIHRpbWVvdXQgbWF0Y2hpbmcgZXhwZWN0YXRpb24gJDIgKCYjMzQ7cG9saWN5JiMzNDsKJiM0MzsjIG9yICYjMzQ7ZGVmYXVsdCYjMzQ7KSwgdXNpbmcgJDMgYXMgdGhlIHRlc3QgbmFtZS4KJiM0MztjaGVja190aW1lb3V0KCkKJiM0Mzt7CiYjNDM7CWxvY2FsIGRwb3J0PSQxIGV4cGVjdD0kMiBuYW1lPSQzCiYjNDM7CWxvY2FsIHR2YWwKJiM0MzsKJiM0MzsJaWYgISBidXN5d2FpdCAmIzM0OyRCVVNZV0FJVF9USU1FT1VUJiMzNDsgY29ubl9lc3RhYmxpc2hlZCAmIzM0OyRkcG9ydCYjMzQ7OyB0aGVuCiYjNDM7CQllY2hvICYjMzQ7RkFJTDogJG5hbWU6IGNvbm5lY3Rpb24gZGlkIG5vdCByZWFjaCBFU1RBQkxJU0hFRCYjMzQ7CiYjNDM7CQlyZXQ9MQomIzQzOwkJcmV0dXJuCiYjNDM7CWZpCiYjNDM7CiYjNDM7CXR2YWw9JChlc3RhYmxpc2hlZF90aW1lb3V0ICYjMzQ7JGRwb3J0JiMzNDspCiYjNDM7CWlmIFsgLXogJiMzNDskdHZhbCYjMzQ7IF07IHRoZW4KJiM0MzsJCWVjaG8gJiMzNDtGQUlMOiAkbmFtZTogY291bGQgbm90IHJlYWQgY29ubnRyYWNrIHRpbWVvdXQmIzM0OwomIzQzOwkJcmV0PTEKJiM0MzsJCXJldHVybgomIzQzOwlmaQomIzQzOwomIzQzOwlpZiBbICYjMzQ7JGV4cGVjdCYjMzQ7ID0gJiMzNDtwb2xpY3kmIzM0OyBdOyB0aGVuCiYjNDM7CQlpZiBbICYjMzQ7JHR2YWwmIzM0OyAtbGUgJiMzNDskUE9MSUNZX0VTVEFCX1NFQ1MmIzM0OyBdOyB0aGVuCiYjNDM7CQkJZWNobyAmIzM0O1BBU1M6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zICZsdDs9IHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXMmIzM0OwomIzQzOwkJZWxzZQomIzQzOwkJCWVjaG8gJiMzNDtGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBleGNlZWRzIHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXMmIzM0OwomIzQzOwkJCXJldD0xCiYjNDM7CQlmaQomIzQzOwllbHNlCiYjNDM7CQlpZiBbICYjMzQ7JHR2YWwmIzM0OyAtZ3QgJiMzNDskUE9MSUNZX0VTVEFCX1NFQ1MmIzM0OyBdICZhbXA7JmFtcDsKJiM0MzsJCSAgIFsgJiMzNDskdHZhbCYjMzQ7IC1sZSAmIzM0OyRkZWZhdWx0X2VzdGFiJiMzNDsgXTsgdGhlbgomIzQzOwkJCWVjaG8gJiMzNDtQQVNTOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBtYXRjaGVzIGRlZmF1bHQgJHtkZWZhdWx0X2VzdGFifXMmIzM0OwomIzQzOwkJZWxzZQomIzQzOwkJCWVjaG8gJiMzNDtGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBpcyBub3QgdGhlIGRlZmF1bHQgJHtkZWZhdWx0X2VzdGFifXMmIzM0OwomIzQzOwkJCXJldD0xCiYjNDM7CQlmaQomIzQzOwlmaQomIzQzO30KJiM0MzsKJiM0Mzt0cmFwIGNsZWFudXAgRVhJVAomIzQzOwomIzQzO3NldHVwX25zIG5zMSBuczIKJiM0MzsKJiM0MztpZiAhIGlwIGxpbmsgYWRkIHZldGgwIG5ldG5zICYjMzQ7JG5zMSYjMzQ7IHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDAgbmV0bnMgJiMzNDskbnMyJiMzNDsgXAomIzQzOwkJJmd0Oy9kZXYvbnVsbCAyJmd0OyZhbXA7MTsgdGhlbgomIzQzOwllY2hvICYjMzQ7U0tJUDogTm8gdmlydHVhbCBldGhlcm5ldCBwYWlyIGRldmljZSBzdXBwb3J0IGluIGtlcm5lbCYjMzQ7CiYjNDM7CWV4aXQgJGtzZnRfc2tpcAomIzQzO2ZpCiYjNDM7CiYjNDM7aXAgLW5ldCAmIzM0OyRuczEmIzM0OyBsaW5rIHNldCB2ZXRoMCB1cAomIzQzO2lwIC1uZXQgJiMzNDskbnMyJiMzNDsgbGluayBzZXQgdmV0aDAgdXAKJiM0MztpcCAtbmV0ICYjMzQ7JG5zMSYjMzQ7IGFkZHIgYWRkIDEwLjAuMS4xLzI0IGRldiB2ZXRoMAomIzQzO2lwIC1uZXQgJiMzNDskbnMyJiMzNDsgYWRkciBhZGQgMTAuMC4xLjIvMjQgZGV2IHZldGgwCiYjNDM7CiYjNDM7IyBTWVNURU06JiMzNDtjYXQmIzM0OyBrZWVwcyBlYWNoIGFjY2VwdGVkIGNvbm5lY3Rpb24gb3BlbjogY2F0IGJsb2NrcyByZWFkaW5nIHRoZQomIzQzOyMgc29ja2V0LCBzbyB0aGUgZmxvdyBzdGF5cyBFU1RBQkxJU0hFRCB1bnRpbCB0aGUgY2xpZW50IGdvZXMgYXdheS4gU2lua2luZwomIzQzOyMgdG8gL2Rldi9udWxsIGluc3RlYWQgd291bGQgY2xvc2UgaXQgaW1tZWRpYXRlbHkgYW5kIGxhbmQgaW4gQ0xPU0VfV0FJVC4KJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JG5zMiYjMzQ7IHNvY2F0IFRDUC1MSVNURU46JFBPUlRfUE9MSUNZLHJldXNlYWRkcixmb3JrIFNZU1RFTTomIzM0O2NhdCYjMzQ7ICZhbXA7Jmd0Oy9kZXYvbnVsbCAmYW1wOwomIzQzO2lwIG5ldG5zIGV4ZWMgJiMzNDskbnMyJiMzNDsgc29jYXQgVENQLUxJU1RFTjokUE9SVF9ERUZBVUxULHJldXNlYWRkcixmb3JrIFNZU1RFTTomIzM0O2NhdCYjMzQ7ICZhbXA7Jmd0Oy9kZXYvbnVsbCAmYW1wOwomIzQzOwomIzQzO2J1c3l3YWl0ICYjMzQ7JEJVU1lXQUlUX1RJTUVPVVQmIzM0OyBsaXN0ZW5lcl9yZWFkeSAmIzM0OyRQT1JUX1BPTElDWSYjMzQ7CiYjNDM7YnVzeXdhaXQgJiMzNDskQlVTWVdBSVRfVElNRU9VVCYjMzQ7IGxpc3RlbmVyX3JlYWR5ICYjMzQ7JFBPUlRfREVGQVVMVCYjMzQ7CiYjNDM7CiYjNDM7IyBMb2FkaW5nIHRoZSBydWxlc2V0IHB1bGxzIGluIGNvbm50cmFjaywgc28gdGhlIHN5c2N0bHMgYmVsb3cgZXhpc3Qgb25seQomIzQzOyMgYWZ0ZXIgdGhpcyBwb2ludC4KJiM0MztpZiAhIGxvYWRfcnVsZXNldDsgdGhlbgomIzQzOwllY2hvICYjMzQ7U0tJUDogQ291bGQgbm90IGxvYWQgY3QgdGltZW91dCBydWxlc2V0JiMzNDsKJiM0MzsJZXhpdCAka3NmdF9za2lwCiYjNDM7ZmkKJiM0MzsKJiM0MzsjIFJlYWQgdGhlIGRlZmF1bHQgcmF0aGVyIHRoYW4gaGFyZGNvZGluZyBpdDogYSBob3N0IHRoYXQgbG93ZXJlZAomIzQzOyMgbmZfY29ubnRyYWNrX3RjcF90aW1lb3V0X2VzdGFibGlzaGVkIG11c3Qgbm90IGZhaWwgdGVzdCAyIHNwdXJpb3VzbHkuCiYjNDM7ZGVmYXVsdF9lc3RhYj0kKGlwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgXAomIzQzOwljYXQgL3Byb2Mvc3lzL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3RjcF90aW1lb3V0X2VzdGFibGlzaGVkIFwKJiM0MzsJMiZndDsvZGV2L251bGwpCiYjNDM7CiYjNDM7aWYgWyAteiAmIzM0OyRkZWZhdWx0X2VzdGFiJiMzNDsgXTsgdGhlbgomIzQzOwllY2hvICYjMzQ7U0tJUDogY29ubnRyYWNrIHRjcCB0aW1lb3V0IHN5c2N0bCBub3QgYXZhaWxhYmxlJiMzNDsKJiM0MzsJZXhpdCAka3NmdF9za2lwCiYjNDM7ZmkKJiM0MzsKJiM0MztpZiBbICYjMzQ7JGRlZmF1bHRfZXN0YWImIzM0OyAtbGUgJiMzNDskUE9MSUNZX0VTVEFCX1NFQ1MmIzM0OyBdOyB0aGVuCiYjNDM7CWVjaG8gJiMzNDtTS0lQOiBkZWZhdWx0IEVTVEFCTElTSEVEIHRpbWVvdXQgJHtkZWZhdWx0X2VzdGFifXMgaXMgbm90IGFib3ZlIHRoZSBwb2xpY3kgdmFsdWUmIzM0OwomIzQzOwlleGl0ICRrc2Z0X3NraXAKJiM0MztmaQomIzQzOwomIzQzOyMgVGVzdCAxOiBhIGZsb3cgbWF0Y2hlZCBieSB0aGUgcnVsZSBnZXRzIHRoZSBwb2xpY3kgdGltZW91dC4KJiM0Mztjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiAmIzM0OyRQT1JUX1BPTElDWSYjMzQ7KQomIzQzO2NoZWNrX3RpbWVvdXQgJiMzNDskUE9SVF9QT0xJQ1kmIzM0OyBwb2xpY3kgdGVzdF9wb2xpY3lfYXBwbGllZAomIzQzO2Nsb3NlX2Nvbm5lY3Rpb24gJiMzNDskY29ubl9waWQmIzM0OwomIzQzOwomIzQzOyMgVGVzdCAyOiBhIGZsb3cgbm90IG1hdGNoZWQgYnkgYW55IHJ1bGUga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0LgomIzQzO2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uICYjMzQ7JFBPUlRfREVGQVVMVCYjMzQ7KQomIzQzO2NoZWNrX3RpbWVvdXQgJiMzNDskUE9SVF9ERUZBVUxUJiMzNDsgZGVmYXVsdCB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkCiYjNDM7Y2xvc2VfY29ubmVjdGlvbiAmIzM0OyRjb25uX3BpZCYjMzQ7CiYjNDM7CiYjNDM7IyBUZXN0IDM6IHRoZSBwb2xpY3kgc3Vydml2ZXMgYSBkZWxldGUvcmVsb2FkIGN5Y2xlIG9mIHRoZSB3aG9sZSB0YWJsZS4KJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JG5zMSYjMzQ7IGNvbm50cmFjayAtRiAyJmd0Oy9kZXYvbnVsbAomIzQzO2lwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgbmZ0IGRlbGV0ZSB0YWJsZSBpcCBjdF90aW1lb3V0X3Rlc3QKJiM0MzsKJiM0MztpZiAhIGxvYWRfcnVsZXNldDsgdGhlbgomIzQzOwllY2hvICYjMzQ7RkFJTDogdGVzdF9wb2xpY3lfcmVsb2FkOiBjb3VsZCBub3QgcmVsb2FkIGN0IHRpbWVvdXQgcnVsZXNldCYjMzQ7CiYjNDM7CWV4aXQgJGtzZnRfZmFpbAomIzQzO2ZpCiYjNDM7CiYjNDM7Y29ubl9waWQ9JChvcGVuX2Nvbm5lY3Rpb24gJiMzNDskUE9SVF9QT0xJQ1kmIzM0OykKJiM0MztjaGVja190aW1lb3V0ICYjMzQ7JFBPUlRfUE9MSUNZJiMzNDsgcG9saWN5IHRlc3RfcG9saWN5X3JlbG9hZAomIzQzO2Nsb3NlX2Nvbm5lY3Rpb24gJiMzNDskY29ubl9waWQmIzM0OwomIzQzOwomIzQzO2V4aXQgJHJldAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwNzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTI3CgkJCQkJCQlvdXRwdXQ6IDY5CgkJCQkJCQl0aG91Z2h0czogMTkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIENUIFRpbWVvdXQgU2VsZnRlc3QgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBwcmVzZW50ZWQgd2l0aCBhIHBhdGNoIGFkZGluZyBhIG5ldyBzZWxmdGVzdCBmb3IgbmV0ZmlsdGVyJiMzOTtzIGBjdCB0aW1lb3V0YCBvYmplY3RzLiBJdCYjMzk7cyBsb2NhdGVkIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoYCwgYW5kIHRoZSBhc3NvY2lhdGVkIGBNYWtlZmlsZWAgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGhhcyBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgaXQuIEludGVyZXN0aW5nLgoKTm93LCB0aGUgaW1wb3J0YW50IHBhcnQ6IHRoZXJlJiMzOTtzIGFic29sdXRlbHkgbm8gbW9kaWZpY2F0aW9uIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUgaXRzZWxmLiBObyBDIGZpbGVzLCBubyBLY29uZmlnIGNoYW5nZXMsIG5vIGhlYWRlciBmaWxlIGFsdGVyYXRpb25zLiBUaGlzIGlzIHB1cmVseSBhbiBhZGRpdGlvbiB0byB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZSwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEkgZXhwZWN0ZWQuCgpUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggZG9lcyAqbm90KiBpbnRyb2R1Y2UgY2hhbmdlcyB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZyB0aGUga2VybmVsLiBJdCYjMzk7cyBhIHNlbGYtdGVzdDsgaXQgdmVyaWZpZXMgdGhlIGJlaGF2aW9yIG9mIGV4aXN0aW5nIGNvZGUsIG5vdCBpbnRyb2R1Y2VzIG5ldyBmdW5jdGlvbmFsaXR5IHRoYXQgY291bGQgYmUgYSB2ZWN0b3IgZm9yIGJ1Z3MuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGRpZmYgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLi4uIFllcywgY29uZmlybWVkLiBUaGUgcGF0Y2ggb25seSB0b3VjaGVzIHRoZSBgTWFrZWZpbGVgIGFuZCBhZGRzIHRoZSBuZXcgc2hlbGwgc2NyaXB0LiBObyBrZXJuZWwgY29kZSBpcyBtb2RpZmllZC4KCkFscmlnaHQsIEkmIzM5O20gY29uZmlkZW50LiBJJiMzOTtsbCBnbyBhaGVhZCBhbmQgY2FsbCBgc2V0LXJlc3VsdHNgIHdpdGggYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgY2FzZTsgdGVzdCBhZGRpdGlvbnMgZG8gbm90IHdhcnJhbnQgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwNzowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlciYjMzk7cyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IHNlbGZ0ZXN0IHNjcmlwdCBmb3IgbmV0ZmlsdGVyJiMzOTtzIGN0IHRpbWVvdXQgb2JqZWN0cyBhbmQgdXBkYXRlcyB0aGUgTWFrZWZpbGUgdG8gaW5jbHVkZSBpdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDc6MDI6MzUuMzUzNzg1NzQ4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjI0OTEwOTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IHNlbGZ0ZXN0IHNjcmlwdCBmb3IgbmV0ZmlsdGVyJ3MgY3QgdGltZW91dCBvYmplY3RzIGFuZCB1cGRhdGVzIHRoZSBNYWtlZmlsZSB0byBpbmNsdWRlIGl0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBzb3VyY2UgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA3OjAyOjM1LjM1MzgxMTAxOFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1MzI4NzU4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRkMzFjYTRhZDA0YWMwZDRhZjdiOWJjZDQxMDExYTQzZDM4OWNhMTFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgNSAwNzowMjozMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxcbmluZGV4IGY4OGRkNGVmOGQyNjQuLjM5MTAxYWY1ZDg0YTEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGVcXG5AQCAtMjUsNiArMjUsNyBAQCBURVNUX1BST0dTIDo9IFxcXFxcXG4gXFx0bmZ0X2F1ZGl0LnNoIFxcXFxcXG4gXFx0bmZ0X2NvbmNhdF9yYW5nZS5zaCBcXFxcXFxuIFxcdG5mdF9jb25udHJhY2tfaGVscGVyLnNoIFxcXFxcXG4rXFx0bmZ0X2N0X3RpbWVvdXQuc2ggXFxcXFxcbiBcXHRuZnRfZmliLnNoIFxcXFxcXG4gXFx0bmZ0X2ZpYl9uZXh0aG9wLnNoIFxcXFxcXG4gXFx0bmZ0X2Zsb3d0YWJsZS5zaCBcXFxcXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoXFxubmV3IGZpbGUgbW9kZSAxMDA3NTVcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5hNDFkYWQyMzI5Y2M2XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2hcXG5AQCAtMCwwICsxLDIxNyBAQFxcbisjIS9iaW4vYmFzaFxcbisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuKyNcXG4rIyBGdW5jdGlvbmFsIHRlc3QgZm9yIG5mdGFibGVzIGN0IHRpbWVvdXQgb2JqZWN0cy5cXG4rI1xcbisjIFZlcmlmaWVzIHRoYXQgYSBjdCB0aW1lb3V0IHBvbGljeSBhY3R1YWxseSBjaGFuZ2VzIHRoZSBjb25udHJhY2tcXG4rIyBzdGF0ZS1tYWNoaW5lIHRpbWVvdXQgb2YgdGhlIGNvbm5lY3Rpb25zIGl0IGlzIGF0dGFjaGVkIHRvOlxcbisjXFxuKyMgIDEuIHRlc3RfcG9saWN5X2FwcGxpZWQgICAgLSBhIGNvbm5lY3Rpb24gbWF0Y2hpbmcgYSBcXFwiY3QgdGltZW91dCBzZXRcXFwiIHJ1bGVcXG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldHMgdGhlIHBlci1zdGF0ZSB0aW1lb3V0IGZyb20gdGhlIG5hbWVkXFxuKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3ksIGkuZS4gXFx1MDAzYz0gUE9MSUNZX0VTVEFCX1NFQ1MuXFxuKyNcXG4rIyAgMi4gdGVzdF9kZWZhdWx0X3ByZXNlcnZlZCAtIGEgY29ubmVjdGlvbiBub3QgbWF0Y2hpbmcgYW55IGN0IHRpbWVvdXQgcnVsZVxcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0IEVTVEFCTElTSEVEIHRpbWVvdXQuXFxuKyNcXG4rIyAgMy4gdGVzdF9wb2xpY3lfcmVsb2FkICAgICAtIGFmdGVyIHRoZSB0YWJsZSBpcyBkZWxldGVkIGFuZCByZWxvYWRlZCwgYSBuZXdcXG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gdGhyb3VnaCB0aGUgcnVsZSBzdGlsbCByZWNlaXZlcyB0aGVcXG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSB0aW1lb3V0IHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0LlxcbisjXFxuKyMgVGhlIHJlbWFpbmluZyBsaWZldGltZSBvZiBhIGZsb3cgaXMgdGhlIHRoaXJkIGZpZWxkIG9mIGEgXFxcImNvbm50cmFjayAtTFxcXCJcXG4rIyBsaW5lOlxcbisjXFxuKyMgICB0Y3AgIDYgIDExNyAgRVNUQUJMSVNIRUQgIHNyYz0xMC4wLjEuMSBkc3Q9MTAuMC4xLjIgc3BvcnQ9Li4uIGRwb3J0PS4uLlxcbisjICAgICAgICAgICBeXl5cXG4rI1xcbisjIFRvcG9sb2d5OiB0d28gbmV0bnMgY29ubmVjdGVkIGJ5IGEgdmV0aCBwYWlyLlxcbisjICAgbnMxICgxMC4wLjEuMS8yNCkgLS12ZXRoLS0gbnMyICgxMC4wLjEuMi8yNClcXG4rIyBUaGUgcnVsZXNldCBpcyBsb2FkZWQgaW4gbnMxLCBzbyBuczEncyBjb25udHJhY2sgdGFibGUgaXMgdXNlZCB0aHJvdWdob3V0LlxcbitcXG4rc291cmNlIGxpYi5zaFxcbitcXG4rY2hlY2t0b29sIFxcXCJuZnQgLS12ZXJzaW9uXFxcIiBcXFwicnVuIHRlc3Qgd2l0aG91dCBuZnRcXFwiXFxuK2NoZWNrdG9vbCBcXFwiY29ubnRyYWNrIC0tdmVyc2lvblxcXCIgXFxcInJ1biB0ZXN0IHdpdGhvdXQgY29ubnRyYWNrXFxcIlxcbitjaGVja3Rvb2wgXFxcInNvY2F0IC1oXFxcIiBcXFwicnVuIHRlc3Qgd2l0aG91dCBzb2NhdFxcXCJcXG4rXFxuKyMgVENQIHBvcnQgY292ZXJlZCBieSB0aGUgY3QgdGltZW91dCBwb2xpY3kuXFxuK1BPUlRfUE9MSUNZPTEyMzQ1XFxuKyMgVENQIHBvcnQgbm90IGNvdmVyZWQgYnkgYW55IHJ1bGU7IHVzZXMgdGhlIGtlcm5lbCBkZWZhdWx0IHRpbWVvdXRzLlxcbitQT1JUX0RFRkFVTFQ9MTIzNDZcXG4rXFxuKyMgRVNUQUJMSVNIRUQgdGltZW91dCBjYXJyaWVkIGJ5IHRoZSBwb2xpY3ksIGluIHNlY29uZHMuIE11c3QgYmUgd2VsbCBiZWxvd1xcbisjIHRoZSBrZXJuZWwgZGVmYXVsdCAoNSBkYXlzKSBzbyB0aGUgdHdvIGNhc2VzIGNhbm5vdCBiZSBjb25mdXNlZC5cXG4rUE9MSUNZX0VTVEFCX1NFQ1M9MTIwXFxuK1xcbityZXQ9MFxcbitcXG4rY2xlYW51cCgpXFxuK3tcXG4rXFx0aXAgbmV0bnMgcGlkcyBcXFwiJG5zMVxcXCIgMlxcdTAwM2UvZGV2L251bGwgfCB4YXJncyAtciBraWxsXFxuK1xcdGlwIG5ldG5zIHBpZHMgXFxcIiRuczJcXFwiIDJcXHUwMDNlL2Rldi9udWxsIHwgeGFyZ3MgLXIga2lsbFxcbitcXHRjbGVhbnVwX2FsbF9uc1xcbit9XFxuK1xcbitsb2FkX3J1bGVzZXQoKVxcbit7XFxuK1xcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIG5mdCAtZiAtIFxcdTAwM2NcXHUwMDNjRU9GXFxuK3RhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdCB7XFxuK1xcdGN0IHRpbWVvdXQgdGNwX3BvbGljeSB7XFxuK1xcdFxcdHByb3RvY29sIHRjcDtcXG4rXFx0XFx0cG9saWN5ID0geyBlc3RhYmxpc2hlZDogJHtQT0xJQ1lfRVNUQUJfU0VDU31zIH07XFxuK1xcdH1cXG4rXFxuK1xcdGNoYWluIG91dHB1dCB7XFxuK1xcdFxcdHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDtcXG4rXFx0XFx0aXAgZGFkZHIgMTAuMC4xLjIgdGNwIGRwb3J0ICRQT1JUX1BPTElDWSBjdCB0aW1lb3V0IHNldCBcXFwidGNwX3BvbGljeVxcXCJcXG4rXFx0fVxcbit9XFxuK0VPRlxcbit9XFxuK1xcbitsaXN0ZW5lcl9yZWFkeSgpXFxuK3tcXG4rXFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zMlxcXCIgc3MgLWxudCAtbyBcXFwic3BvcnQgPSA6JDFcXFwiIHwgZ3JlcCAtcSBcXFwiJDFcXFwiXFxuK31cXG4rXFxuK2Nvbm5fZXN0YWJsaXNoZWQoKVxcbit7XFxuK1xcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIGNvbm50cmFjayAtTCAtcCB0Y3AgLS1kcG9ydCBcXFwiJDFcXFwiIDJcXHUwMDNlL2Rldi9udWxsIHxcXG4rXFx0XFx0Z3JlcCAtcSBFU1RBQkxJU0hFRFxcbit9XFxuK1xcbisjIFByaW50cyB0aGUgcmVtYWluaW5nIGxpZmV0aW1lLCBpbiBzZWNvbmRzLCBvZiB0aGUgZmlyc3QgRVNUQUJMSVNIRUQgVENQXFxuKyMgZmxvdyBpbiBuczEgbWF0Y2hpbmcgdGhlIGdpdmVuIGRlc3RpbmF0aW9uIHBvcnQuXFxuK2VzdGFibGlzaGVkX3RpbWVvdXQoKVxcbit7XFxuK1xcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIGNvbm50cmFjayAtTCAtcCB0Y3AgLS1kcG9ydCBcXFwiJDFcXFwiIDJcXHUwMDNlL2Rldi9udWxsIHxcXG4rXFx0XFx0YXdrICcvRVNUQUJMSVNIRUQvIHsgcHJpbnQgJDM7IGV4aXQgfSdcXG4rfVxcbitcXG4rIyBPcGVucyBhIFRDUCBjb25uZWN0aW9uIGZyb20gbnMxIGFuZCBob2xkcyBpdCBvcGVuIGluIHRoZSBiYWNrZ3JvdW5kLlxcbisjIFByaW50cyB0aGUgcGlkIG9mIHRoZSBob2xkZXIgc28gdGhlIGNhbGxlciBjYW4gdGVhciBpdCBkb3duLlxcbitvcGVuX2Nvbm5lY3Rpb24oKVxcbit7XFxuK1xcdCMgc3Rkb3V0L3N0ZGVyciBtdXN0IGJlIHJlZGlyZWN0ZWQsIGVsc2UgdGhlIGJhY2tncm91bmQgam9iIGtlZXBzIHRoZVxcbitcXHQjIGNvbW1hbmQgc3Vic3RpdHV0aW9uIHRoYXQgY2FsbHMgdGhpcyBmdW5jdGlvbiBibG9ja2VkIHVudGlsIGl0IGV4aXRzLlxcbitcXHRpcCBuZXRucyBleGVjIFxcXCIkbnMxXFxcIiBiYXNoIC1jIFxcXCJcXG4rXFx0XFx0ZXhlYyAzXFx1MDAzY1xcdTAwM2UvZGV2L3RjcC8xMC4wLjEuMi8kMSB8fCBleGl0IDFcXG4rXFx0XFx0c2xlZXAgNjBcXG4rXFx0XFxcIiBcXHUwMDNlL2Rldi9udWxsIDJcXHUwMDNlXFx1MDAyNjEgXFx1MDAyNlxcbitcXHRlY2hvICQhXFxuK31cXG4rXFxuK2Nsb3NlX2Nvbm5lY3Rpb24oKVxcbit7XFxuK1xcdGtpbGwgXFxcIiQxXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXHR3YWl0IFxcXCIkMVxcXCIgMlxcdTAwM2UvZGV2L251bGxcXG4rfVxcbitcXG4rIyBBc3NlcnRzIHRoYXQgdGhlIGZsb3cgb24gJDEgaGFzIGEgdGltZW91dCBtYXRjaGluZyBleHBlY3RhdGlvbiAkMiAoXFxcInBvbGljeVxcXCJcXG4rIyBvciBcXFwiZGVmYXVsdFxcXCIpLCB1c2luZyAkMyBhcyB0aGUgdGVzdCBuYW1lLlxcbitjaGVja190aW1lb3V0KClcXG4re1xcbitcXHRsb2NhbCBkcG9ydD0kMSBleHBlY3Q9JDIgbmFtZT0kM1xcbitcXHRsb2NhbCB0dmFsXFxuK1xcbitcXHRpZiAhIGJ1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgY29ubl9lc3RhYmxpc2hlZCBcXFwiJGRwb3J0XFxcIjsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJGQUlMOiAkbmFtZTogY29ubmVjdGlvbiBkaWQgbm90IHJlYWNoIEVTVEFCTElTSEVEXFxcIlxcbitcXHRcXHRyZXQ9MVxcbitcXHRcXHRyZXR1cm5cXG4rXFx0ZmlcXG4rXFxuK1xcdHR2YWw9JChlc3RhYmxpc2hlZF90aW1lb3V0IFxcXCIkZHBvcnRcXFwiKVxcbitcXHRpZiBbIC16IFxcXCIkdHZhbFxcXCIgXTsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJGQUlMOiAkbmFtZTogY291bGQgbm90IHJlYWQgY29ubnRyYWNrIHRpbWVvdXRcXFwiXFxuK1xcdFxcdHJldD0xXFxuK1xcdFxcdHJldHVyblxcbitcXHRmaVxcbitcXG4rXFx0aWYgWyBcXFwiJGV4cGVjdFxcXCIgPSBcXFwicG9saWN5XFxcIiBdOyB0aGVuXFxuK1xcdFxcdGlmIFsgXFxcIiR0dmFsXFxcIiAtbGUgXFxcIiRQT0xJQ1lfRVNUQUJfU0VDU1xcXCIgXTsgdGhlblxcbitcXHRcXHRcXHRlY2hvIFxcXCJQQVNTOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBcXHUwMDNjPSBwb2xpY3kgJHtQT0xJQ1lfRVNUQUJfU0VDU31zXFxcIlxcbitcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdGVjaG8gXFxcIkZBSUw6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zIGV4Y2VlZHMgcG9saWN5ICR7UE9MSUNZX0VTVEFCX1NFQ1N9c1xcXCJcXG4rXFx0XFx0XFx0cmV0PTFcXG4rXFx0XFx0ZmlcXG4rXFx0ZWxzZVxcbitcXHRcXHRpZiBbIFxcXCIkdHZhbFxcXCIgLWd0IFxcXCIkUE9MSUNZX0VTVEFCX1NFQ1NcXFwiIF0gXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0ICAgWyBcXFwiJHR2YWxcXFwiIC1sZSBcXFwiJGRlZmF1bHRfZXN0YWJcXFwiIF07IHRoZW5cXG4rXFx0XFx0XFx0ZWNobyBcXFwiUEFTUzogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgbWF0Y2hlcyBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXFxcIlxcbitcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdGVjaG8gXFxcIkZBSUw6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zIGlzIG5vdCB0aGUgZGVmYXVsdCAke2RlZmF1bHRfZXN0YWJ9c1xcXCJcXG4rXFx0XFx0XFx0cmV0PTFcXG4rXFx0XFx0ZmlcXG4rXFx0ZmlcXG4rfVxcbitcXG4rdHJhcCBjbGVhbnVwIEVYSVRcXG4rXFxuK3NldHVwX25zIG5zMSBuczJcXG4rXFxuK2lmICEgaXAgbGluayBhZGQgdmV0aDAgbmV0bnMgXFxcIiRuczFcXFwiIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDAgbmV0bnMgXFxcIiRuczJcXFwiIFxcXFxcXG4rXFx0XFx0XFx1MDAzZS9kZXYvbnVsbCAyXFx1MDAzZVxcdTAwMjYxOyB0aGVuXFxuK1xcdGVjaG8gXFxcIlNLSVA6IE5vIHZpcnR1YWwgZXRoZXJuZXQgcGFpciBkZXZpY2Ugc3VwcG9ydCBpbiBrZXJuZWxcXFwiXFxuK1xcdGV4aXQgJGtzZnRfc2tpcFxcbitmaVxcbitcXG4raXAgLW5ldCBcXFwiJG5zMVxcXCIgbGluayBzZXQgdmV0aDAgdXBcXG4raXAgLW5ldCBcXFwiJG5zMlxcXCIgbGluayBzZXQgdmV0aDAgdXBcXG4raXAgLW5ldCBcXFwiJG5zMVxcXCIgYWRkciBhZGQgMTAuMC4xLjEvMjQgZGV2IHZldGgwXFxuK2lwIC1uZXQgXFxcIiRuczJcXFwiIGFkZHIgYWRkIDEwLjAuMS4yLzI0IGRldiB2ZXRoMFxcbitcXG4rIyBTWVNURU06XFxcImNhdFxcXCIga2VlcHMgZWFjaCBhY2NlcHRlZCBjb25uZWN0aW9uIG9wZW46IGNhdCBibG9ja3MgcmVhZGluZyB0aGVcXG4rIyBzb2NrZXQsIHNvIHRoZSBmbG93IHN0YXlzIEVTVEFCTElTSEVEIHVudGlsIHRoZSBjbGllbnQgZ29lcyBhd2F5LiBTaW5raW5nXFxuKyMgdG8gL2Rldi9udWxsIGluc3RlYWQgd291bGQgY2xvc2UgaXQgaW1tZWRpYXRlbHkgYW5kIGxhbmQgaW4gQ0xPU0VfV0FJVC5cXG4raXAgbmV0bnMgZXhlYyBcXFwiJG5zMlxcXCIgc29jYXQgVENQLUxJU1RFTjokUE9SVF9QT0xJQ1kscmV1c2VhZGRyLGZvcmsgU1lTVEVNOlxcXCJjYXRcXFwiIFxcdTAwMjZcXHUwMDNlL2Rldi9udWxsIFxcdTAwMjZcXG4raXAgbmV0bnMgZXhlYyBcXFwiJG5zMlxcXCIgc29jYXQgVENQLUxJU1RFTjokUE9SVF9ERUZBVUxULHJldXNlYWRkcixmb3JrIFNZU1RFTTpcXFwiY2F0XFxcIiBcXHUwMDI2XFx1MDAzZS9kZXYvbnVsbCBcXHUwMDI2XFxuK1xcbitidXN5d2FpdCBcXFwiJEJVU1lXQUlUX1RJTUVPVVRcXFwiIGxpc3RlbmVyX3JlYWR5IFxcXCIkUE9SVF9QT0xJQ1lcXFwiXFxuK2J1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgbGlzdGVuZXJfcmVhZHkgXFxcIiRQT1JUX0RFRkFVTFRcXFwiXFxuK1xcbisjIExvYWRpbmcgdGhlIHJ1bGVzZXQgcHVsbHMgaW4gY29ubnRyYWNrLCBzbyB0aGUgc3lzY3RscyBiZWxvdyBleGlzdCBvbmx5XFxuKyMgYWZ0ZXIgdGhpcyBwb2ludC5cXG4raWYgISBsb2FkX3J1bGVzZXQ7IHRoZW5cXG4rXFx0ZWNobyBcXFwiU0tJUDogQ291bGQgbm90IGxvYWQgY3QgdGltZW91dCBydWxlc2V0XFxcIlxcbitcXHRleGl0ICRrc2Z0X3NraXBcXG4rZmlcXG4rXFxuKyMgUmVhZCB0aGUgZGVmYXVsdCByYXRoZXIgdGhhbiBoYXJkY29kaW5nIGl0OiBhIGhvc3QgdGhhdCBsb3dlcmVkXFxuKyMgbmZfY29ubnRyYWNrX3RjcF90aW1lb3V0X2VzdGFibGlzaGVkIG11c3Qgbm90IGZhaWwgdGVzdCAyIHNwdXJpb3VzbHkuXFxuK2RlZmF1bHRfZXN0YWI9JChpcCBuZXRucyBleGVjIFxcXCIkbnMxXFxcIiBcXFxcXFxuK1xcdGNhdCAvcHJvYy9zeXMvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfdGNwX3RpbWVvdXRfZXN0YWJsaXNoZWQgXFxcXFxcbitcXHQyXFx1MDAzZS9kZXYvbnVsbClcXG4rXFxuK2lmIFsgLXogXFxcIiRkZWZhdWx0X2VzdGFiXFxcIiBdOyB0aGVuXFxuK1xcdGVjaG8gXFxcIlNLSVA6IGNvbm50cmFjayB0Y3AgdGltZW91dCBzeXNjdGwgbm90IGF2YWlsYWJsZVxcXCJcXG4rXFx0ZXhpdCAka3NmdF9za2lwXFxuK2ZpXFxuK1xcbitpZiBbIFxcXCIkZGVmYXVsdF9lc3RhYlxcXCIgLWxlIFxcXCIkUE9MSUNZX0VTVEFCX1NFQ1NcXFwiIF07IHRoZW5cXG4rXFx0ZWNobyBcXFwiU0tJUDogZGVmYXVsdCBFU1RBQkxJU0hFRCB0aW1lb3V0ICR7ZGVmYXVsdF9lc3RhYn1zIGlzIG5vdCBhYm92ZSB0aGUgcG9saWN5IHZhbHVlXFxcIlxcbitcXHRleGl0ICRrc2Z0X3NraXBcXG4rZmlcXG4rXFxuKyMgVGVzdCAxOiBhIGZsb3cgbWF0Y2hlZCBieSB0aGUgcnVsZSBnZXRzIHRoZSBwb2xpY3kgdGltZW91dC5cXG4rY29ubl9waWQ9JChvcGVuX2Nvbm5lY3Rpb24gXFxcIiRQT1JUX1BPTElDWVxcXCIpXFxuK2NoZWNrX3RpbWVvdXQgXFxcIiRQT1JUX1BPTElDWVxcXCIgcG9saWN5IHRlc3RfcG9saWN5X2FwcGxpZWRcXG4rY2xvc2VfY29ubmVjdGlvbiBcXFwiJGNvbm5fcGlkXFxcIlxcbitcXG4rIyBUZXN0IDI6IGEgZmxvdyBub3QgbWF0Y2hlZCBieSBhbnkgcnVsZSBrZWVwcyB0aGUga2VybmVsIGRlZmF1bHQuXFxuK2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFxcXCIkUE9SVF9ERUZBVUxUXFxcIilcXG4rY2hlY2tfdGltZW91dCBcXFwiJFBPUlRfREVGQVVMVFxcXCIgZGVmYXVsdCB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkXFxuK2Nsb3NlX2Nvbm5lY3Rpb24gXFxcIiRjb25uX3BpZFxcXCJcXG4rXFxuKyMgVGVzdCAzOiB0aGUgcG9saWN5IHN1cnZpdmVzIGEgZGVsZXRlL3JlbG9hZCBjeWNsZSBvZiB0aGUgd2hvbGUgdGFibGUuXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIGNvbm50cmFjayAtRiAyXFx1MDAzZS9kZXYvbnVsbFxcbitpcCBuZXRucyBleGVjIFxcXCIkbnMxXFxcIiBuZnQgZGVsZXRlIHRhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdFxcbitcXG4raWYgISBsb2FkX3J1bGVzZXQ7IHRoZW5cXG4rXFx0ZWNobyBcXFwiRkFJTDogdGVzdF9wb2xpY3lfcmVsb2FkOiBjb3VsZCBub3QgcmVsb2FkIGN0IHRpbWVvdXQgcnVsZXNldFxcXCJcXG4rXFx0ZXhpdCAka3NmdF9mYWlsXFxuK2ZpXFxuK1xcbitjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiBcXFwiJFBPUlRfUE9MSUNZXFxcIilcXG4rY2hlY2tfdGltZW91dCBcXFwiJFBPUlRfUE9MSUNZXFxcIiBwb2xpY3kgdGVzdF9wb2xpY3lfcmVsb2FkXFxuK2Nsb3NlX2Nvbm5lY3Rpb24gXFxcIiRjb25uX3BpZFxcXCJcXG4rXFxuK2V4aXQgJHJldFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwNzowMjozNi42MDc3MzEyOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjQ5OTUxNDc3NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlcidzIGN0IHRpbWVvdXQgb2JqZWN0cyBhbmQgdXBkYXRlcyB0aGUgTWFrZWZpbGUgdG8gaW5jbHVkZSBpdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkZDMxY2E0YWQwNGFjMGQ0YWY3YjliY2Q0MTAxMWE0M2QzODljYTExXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwNzowMjozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlXG5pbmRleCBmODhkZDRlZjhkMjY0Li4zOTEwMWFmNWQ4NGExIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuQEAgLTI1LDYgKzI1LDcgQEAgVEVTVF9QUk9HUyA6PSBcXFxuIFx0bmZ0X2F1ZGl0LnNoIFxcXG4gXHRuZnRfY29uY2F0X3JhbmdlLnNoIFxcXG4gXHRuZnRfY29ubnRyYWNrX2hlbHBlci5zaCBcXFxuK1x0bmZ0X2N0X3RpbWVvdXQuc2ggXFxcbiBcdG5mdF9maWIuc2ggXFxcbiBcdG5mdF9maWJfbmV4dGhvcC5zaCBcXFxuIFx0bmZ0X2Zsb3d0YWJsZS5zaCBcXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYTQxZGFkMjMyOWNjNlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaFxuQEAgLTAsMCArMSwyMTcgQEBcbisjIS9iaW4vYmFzaFxuKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbisjXG4rIyBGdW5jdGlvbmFsIHRlc3QgZm9yIG5mdGFibGVzIGN0IHRpbWVvdXQgb2JqZWN0cy5cbisjXG4rIyBWZXJpZmllcyB0aGF0IGEgY3QgdGltZW91dCBwb2xpY3kgYWN0dWFsbHkgY2hhbmdlcyB0aGUgY29ubnRyYWNrXG4rIyBzdGF0ZS1tYWNoaW5lIHRpbWVvdXQgb2YgdGhlIGNvbm5lY3Rpb25zIGl0IGlzIGF0dGFjaGVkIHRvOlxuKyNcbisjICAxLiB0ZXN0X3BvbGljeV9hcHBsaWVkICAgIC0gYSBjb25uZWN0aW9uIG1hdGNoaW5nIGEgXCJjdCB0aW1lb3V0IHNldFwiIHJ1bGVcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cyB0aGUgcGVyLXN0YXRlIHRpbWVvdXQgZnJvbSB0aGUgbmFtZWRcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LCBpLmUuIFx1MDAzYz0gUE9MSUNZX0VTVEFCX1NFQ1MuXG4rI1xuKyMgIDIuIHRlc3RfZGVmYXVsdF9wcmVzZXJ2ZWQgLSBhIGNvbm5lY3Rpb24gbm90IG1hdGNoaW5nIGFueSBjdCB0aW1lb3V0IHJ1bGVcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0IEVTVEFCTElTSEVEIHRpbWVvdXQuXG4rI1xuKyMgIDMuIHRlc3RfcG9saWN5X3JlbG9hZCAgICAgLSBhZnRlciB0aGUgdGFibGUgaXMgZGVsZXRlZCBhbmQgcmVsb2FkZWQsIGEgbmV3XG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gdGhyb3VnaCB0aGUgcnVsZSBzdGlsbCByZWNlaXZlcyB0aGVcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5IHRpbWVvdXQgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQuXG4rI1xuKyMgVGhlIHJlbWFpbmluZyBsaWZldGltZSBvZiBhIGZsb3cgaXMgdGhlIHRoaXJkIGZpZWxkIG9mIGEgXCJjb25udHJhY2sgLUxcIlxuKyMgbGluZTpcbisjXG4rIyAgIHRjcCAgNiAgMTE3ICBFU1RBQkxJU0hFRCAgc3JjPTEwLjAuMS4xIGRzdD0xMC4wLjEuMiBzcG9ydD0uLi4gZHBvcnQ9Li4uXG4rIyAgICAgICAgICAgXl5eXG4rI1xuKyMgVG9wb2xvZ3k6IHR3byBuZXRucyBjb25uZWN0ZWQgYnkgYSB2ZXRoIHBhaXIuXG4rIyAgIG5zMSAoMTAuMC4xLjEvMjQpIC0tdmV0aC0tIG5zMiAoMTAuMC4xLjIvMjQpXG4rIyBUaGUgcnVsZXNldCBpcyBsb2FkZWQgaW4gbnMxLCBzbyBuczEncyBjb25udHJhY2sgdGFibGUgaXMgdXNlZCB0aHJvdWdob3V0LlxuK1xuK3NvdXJjZSBsaWIuc2hcbitcbitjaGVja3Rvb2wgXCJuZnQgLS12ZXJzaW9uXCIgXCJydW4gdGVzdCB3aXRob3V0IG5mdFwiXG4rY2hlY2t0b29sIFwiY29ubnRyYWNrIC0tdmVyc2lvblwiIFwicnVuIHRlc3Qgd2l0aG91dCBjb25udHJhY2tcIlxuK2NoZWNrdG9vbCBcInNvY2F0IC1oXCIgXCJydW4gdGVzdCB3aXRob3V0IHNvY2F0XCJcbitcbisjIFRDUCBwb3J0IGNvdmVyZWQgYnkgdGhlIGN0IHRpbWVvdXQgcG9saWN5LlxuK1BPUlRfUE9MSUNZPTEyMzQ1XG4rIyBUQ1AgcG9ydCBub3QgY292ZXJlZCBieSBhbnkgcnVsZTsgdXNlcyB0aGUga2VybmVsIGRlZmF1bHQgdGltZW91dHMuXG4rUE9SVF9ERUZBVUxUPTEyMzQ2XG4rXG4rIyBFU1RBQkxJU0hFRCB0aW1lb3V0IGNhcnJpZWQgYnkgdGhlIHBvbGljeSwgaW4gc2Vjb25kcy4gTXVzdCBiZSB3ZWxsIGJlbG93XG4rIyB0aGUga2VybmVsIGRlZmF1bHQgKDUgZGF5cykgc28gdGhlIHR3byBjYXNlcyBjYW5ub3QgYmUgY29uZnVzZWQuXG4rUE9MSUNZX0VTVEFCX1NFQ1M9MTIwXG4rXG4rcmV0PTBcbitcbitjbGVhbnVwKClcbit7XG4rXHRpcCBuZXRucyBwaWRzIFwiJG5zMVwiIDJcdTAwM2UvZGV2L251bGwgfCB4YXJncyAtciBraWxsXG4rXHRpcCBuZXRucyBwaWRzIFwiJG5zMlwiIDJcdTAwM2UvZGV2L251bGwgfCB4YXJncyAtciBraWxsXG4rXHRjbGVhbnVwX2FsbF9uc1xuK31cbitcbitsb2FkX3J1bGVzZXQoKVxuK3tcbitcdGlwIG5ldG5zIGV4ZWMgXCIkbnMxXCIgbmZ0IC1mIC0gXHUwMDNjXHUwMDNjRU9GXG4rdGFibGUgaXAgY3RfdGltZW91dF90ZXN0IHtcbitcdGN0IHRpbWVvdXQgdGNwX3BvbGljeSB7XG4rXHRcdHByb3RvY29sIHRjcDtcbitcdFx0cG9saWN5ID0geyBlc3RhYmxpc2hlZDogJHtQT0xJQ1lfRVNUQUJfU0VDU31zIH07XG4rXHR9XG4rXG4rXHRjaGFpbiBvdXRwdXQge1xuK1x0XHR0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7XG4rXHRcdGlwIGRhZGRyIDEwLjAuMS4yIHRjcCBkcG9ydCAkUE9SVF9QT0xJQ1kgY3QgdGltZW91dCBzZXQgXCJ0Y3BfcG9saWN5XCJcbitcdH1cbit9XG4rRU9GXG4rfVxuK1xuK2xpc3RlbmVyX3JlYWR5KClcbit7XG4rXHRpcCBuZXRucyBleGVjIFwiJG5zMlwiIHNzIC1sbnQgLW8gXCJzcG9ydCA9IDokMVwiIHwgZ3JlcCAtcSBcIiQxXCJcbit9XG4rXG4rY29ubl9lc3RhYmxpc2hlZCgpXG4re1xuK1x0aXAgbmV0bnMgZXhlYyBcIiRuczFcIiBjb25udHJhY2sgLUwgLXAgdGNwIC0tZHBvcnQgXCIkMVwiIDJcdTAwM2UvZGV2L251bGwgfFxuK1x0XHRncmVwIC1xIEVTVEFCTElTSEVEXG4rfVxuK1xuKyMgUHJpbnRzIHRoZSByZW1haW5pbmcgbGlmZXRpbWUsIGluIHNlY29uZHMsIG9mIHRoZSBmaXJzdCBFU1RBQkxJU0hFRCBUQ1BcbisjIGZsb3cgaW4gbnMxIG1hdGNoaW5nIHRoZSBnaXZlbiBkZXN0aW5hdGlvbiBwb3J0LlxuK2VzdGFibGlzaGVkX3RpbWVvdXQoKVxuK3tcbitcdGlwIG5ldG5zIGV4ZWMgXCIkbnMxXCIgY29ubnRyYWNrIC1MIC1wIHRjcCAtLWRwb3J0IFwiJDFcIiAyXHUwMDNlL2Rldi9udWxsIHxcbitcdFx0YXdrICcvRVNUQUJMSVNIRUQvIHsgcHJpbnQgJDM7IGV4aXQgfSdcbit9XG4rXG4rIyBPcGVucyBhIFRDUCBjb25uZWN0aW9uIGZyb20gbnMxIGFuZCBob2xkcyBpdCBvcGVuIGluIHRoZSBiYWNrZ3JvdW5kLlxuKyMgUHJpbnRzIHRoZSBwaWQgb2YgdGhlIGhvbGRlciBzbyB0aGUgY2FsbGVyIGNhbiB0ZWFyIGl0IGRvd24uXG4rb3Blbl9jb25uZWN0aW9uKClcbit7XG4rXHQjIHN0ZG91dC9zdGRlcnIgbXVzdCBiZSByZWRpcmVjdGVkLCBlbHNlIHRoZSBiYWNrZ3JvdW5kIGpvYiBrZWVwcyB0aGVcbitcdCMgY29tbWFuZCBzdWJzdGl0dXRpb24gdGhhdCBjYWxscyB0aGlzIGZ1bmN0aW9uIGJsb2NrZWQgdW50aWwgaXQgZXhpdHMuXG4rXHRpcCBuZXRucyBleGVjIFwiJG5zMVwiIGJhc2ggLWMgXCJcbitcdFx0ZXhlYyAzXHUwMDNjXHUwMDNlL2Rldi90Y3AvMTAuMC4xLjIvJDEgfHwgZXhpdCAxXG4rXHRcdHNsZWVwIDYwXG4rXHRcIiBcdTAwM2UvZGV2L251bGwgMlx1MDAzZVx1MDAyNjEgXHUwMDI2XG4rXHRlY2hvICQhXG4rfVxuK1xuK2Nsb3NlX2Nvbm5lY3Rpb24oKVxuK3tcbitcdGtpbGwgXCIkMVwiIDJcdTAwM2UvZGV2L251bGxcbitcdHdhaXQgXCIkMVwiIDJcdTAwM2UvZGV2L251bGxcbit9XG4rXG4rIyBBc3NlcnRzIHRoYXQgdGhlIGZsb3cgb24gJDEgaGFzIGEgdGltZW91dCBtYXRjaGluZyBleHBlY3RhdGlvbiAkMiAoXCJwb2xpY3lcIlxuKyMgb3IgXCJkZWZhdWx0XCIpLCB1c2luZyAkMyBhcyB0aGUgdGVzdCBuYW1lLlxuK2NoZWNrX3RpbWVvdXQoKVxuK3tcbitcdGxvY2FsIGRwb3J0PSQxIGV4cGVjdD0kMiBuYW1lPSQzXG4rXHRsb2NhbCB0dmFsXG4rXG4rXHRpZiAhIGJ1c3l3YWl0IFwiJEJVU1lXQUlUX1RJTUVPVVRcIiBjb25uX2VzdGFibGlzaGVkIFwiJGRwb3J0XCI7IHRoZW5cbitcdFx0ZWNobyBcIkZBSUw6ICRuYW1lOiBjb25uZWN0aW9uIGRpZCBub3QgcmVhY2ggRVNUQUJMSVNIRURcIlxuK1x0XHRyZXQ9MVxuK1x0XHRyZXR1cm5cbitcdGZpXG4rXG4rXHR0dmFsPSQoZXN0YWJsaXNoZWRfdGltZW91dCBcIiRkcG9ydFwiKVxuK1x0aWYgWyAteiBcIiR0dmFsXCIgXTsgdGhlblxuK1x0XHRlY2hvIFwiRkFJTDogJG5hbWU6IGNvdWxkIG5vdCByZWFkIGNvbm50cmFjayB0aW1lb3V0XCJcbitcdFx0cmV0PTFcbitcdFx0cmV0dXJuXG4rXHRmaVxuK1xuK1x0aWYgWyBcIiRleHBlY3RcIiA9IFwicG9saWN5XCIgXTsgdGhlblxuK1x0XHRpZiBbIFwiJHR2YWxcIiAtbGUgXCIkUE9MSUNZX0VTVEFCX1NFQ1NcIiBdOyB0aGVuXG4rXHRcdFx0ZWNobyBcIlBBU1M6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zIFx1MDAzYz0gcG9saWN5ICR7UE9MSUNZX0VTVEFCX1NFQ1N9c1wiXG4rXHRcdGVsc2VcbitcdFx0XHRlY2hvIFwiRkFJTDogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgZXhjZWVkcyBwb2xpY3kgJHtQT0xJQ1lfRVNUQUJfU0VDU31zXCJcbitcdFx0XHRyZXQ9MVxuK1x0XHRmaVxuK1x0ZWxzZVxuK1x0XHRpZiBbIFwiJHR2YWxcIiAtZ3QgXCIkUE9MSUNZX0VTVEFCX1NFQ1NcIiBdIFx1MDAyNlx1MDAyNlxuK1x0XHQgICBbIFwiJHR2YWxcIiAtbGUgXCIkZGVmYXVsdF9lc3RhYlwiIF07IHRoZW5cbitcdFx0XHRlY2hvIFwiUEFTUzogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgbWF0Y2hlcyBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXCJcbitcdFx0ZWxzZVxuK1x0XHRcdGVjaG8gXCJGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBpcyBub3QgdGhlIGRlZmF1bHQgJHtkZWZhdWx0X2VzdGFifXNcIlxuK1x0XHRcdHJldD0xXG4rXHRcdGZpXG4rXHRmaVxuK31cbitcbit0cmFwIGNsZWFudXAgRVhJVFxuK1xuK3NldHVwX25zIG5zMSBuczJcbitcbitpZiAhIGlwIGxpbmsgYWRkIHZldGgwIG5ldG5zIFwiJG5zMVwiIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDAgbmV0bnMgXCIkbnMyXCIgXFxcbitcdFx0XHUwMDNlL2Rldi9udWxsIDJcdTAwM2VcdTAwMjYxOyB0aGVuXG4rXHRlY2hvIFwiU0tJUDogTm8gdmlydHVhbCBldGhlcm5ldCBwYWlyIGRldmljZSBzdXBwb3J0IGluIGtlcm5lbFwiXG4rXHRleGl0ICRrc2Z0X3NraXBcbitmaVxuK1xuK2lwIC1uZXQgXCIkbnMxXCIgbGluayBzZXQgdmV0aDAgdXBcbitpcCAtbmV0IFwiJG5zMlwiIGxpbmsgc2V0IHZldGgwIHVwXG4raXAgLW5ldCBcIiRuczFcIiBhZGRyIGFkZCAxMC4wLjEuMS8yNCBkZXYgdmV0aDBcbitpcCAtbmV0IFwiJG5zMlwiIGFkZHIgYWRkIDEwLjAuMS4yLzI0IGRldiB2ZXRoMFxuK1xuKyMgU1lTVEVNOlwiY2F0XCIga2VlcHMgZWFjaCBhY2NlcHRlZCBjb25uZWN0aW9uIG9wZW46IGNhdCBibG9ja3MgcmVhZGluZyB0aGVcbisjIHNvY2tldCwgc28gdGhlIGZsb3cgc3RheXMgRVNUQUJMSVNIRUQgdW50aWwgdGhlIGNsaWVudCBnb2VzIGF3YXkuIFNpbmtpbmdcbisjIHRvIC9kZXYvbnVsbCBpbnN0ZWFkIHdvdWxkIGNsb3NlIGl0IGltbWVkaWF0ZWx5IGFuZCBsYW5kIGluIENMT1NFX1dBSVQuXG4raXAgbmV0bnMgZXhlYyBcIiRuczJcIiBzb2NhdCBUQ1AtTElTVEVOOiRQT1JUX1BPTElDWSxyZXVzZWFkZHIsZm9yayBTWVNURU06XCJjYXRcIiBcdTAwMjZcdTAwM2UvZGV2L251bGwgXHUwMDI2XG4raXAgbmV0bnMgZXhlYyBcIiRuczJcIiBzb2NhdCBUQ1AtTElTVEVOOiRQT1JUX0RFRkFVTFQscmV1c2VhZGRyLGZvcmsgU1lTVEVNOlwiY2F0XCIgXHUwMDI2XHUwMDNlL2Rldi9udWxsIFx1MDAyNlxuK1xuK2J1c3l3YWl0IFwiJEJVU1lXQUlUX1RJTUVPVVRcIiBsaXN0ZW5lcl9yZWFkeSBcIiRQT1JUX1BPTElDWVwiXG4rYnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIGxpc3RlbmVyX3JlYWR5IFwiJFBPUlRfREVGQVVMVFwiXG4rXG4rIyBMb2FkaW5nIHRoZSBydWxlc2V0IHB1bGxzIGluIGNvbm50cmFjaywgc28gdGhlIHN5c2N0bHMgYmVsb3cgZXhpc3Qgb25seVxuKyMgYWZ0ZXIgdGhpcyBwb2ludC5cbitpZiAhIGxvYWRfcnVsZXNldDsgdGhlblxuK1x0ZWNobyBcIlNLSVA6IENvdWxkIG5vdCBsb2FkIGN0IHRpbWVvdXQgcnVsZXNldFwiXG4rXHRleGl0ICRrc2Z0X3NraXBcbitmaVxuK1xuKyMgUmVhZCB0aGUgZGVmYXVsdCByYXRoZXIgdGhhbiBoYXJkY29kaW5nIGl0OiBhIGhvc3QgdGhhdCBsb3dlcmVkXG4rIyBuZl9jb25udHJhY2tfdGNwX3RpbWVvdXRfZXN0YWJsaXNoZWQgbXVzdCBub3QgZmFpbCB0ZXN0IDIgc3B1cmlvdXNseS5cbitkZWZhdWx0X2VzdGFiPSQoaXAgbmV0bnMgZXhlYyBcIiRuczFcIiBcXFxuK1x0Y2F0IC9wcm9jL3N5cy9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja190Y3BfdGltZW91dF9lc3RhYmxpc2hlZCBcXFxuK1x0Mlx1MDAzZS9kZXYvbnVsbClcbitcbitpZiBbIC16IFwiJGRlZmF1bHRfZXN0YWJcIiBdOyB0aGVuXG4rXHRlY2hvIFwiU0tJUDogY29ubnRyYWNrIHRjcCB0aW1lb3V0IHN5c2N0bCBub3QgYXZhaWxhYmxlXCJcbitcdGV4aXQgJGtzZnRfc2tpcFxuK2ZpXG4rXG4raWYgWyBcIiRkZWZhdWx0X2VzdGFiXCIgLWxlIFwiJFBPTElDWV9FU1RBQl9TRUNTXCIgXTsgdGhlblxuK1x0ZWNobyBcIlNLSVA6IGRlZmF1bHQgRVNUQUJMSVNIRUQgdGltZW91dCAke2RlZmF1bHRfZXN0YWJ9cyBpcyBub3QgYWJvdmUgdGhlIHBvbGljeSB2YWx1ZVwiXG4rXHRleGl0ICRrc2Z0X3NraXBcbitmaVxuK1xuKyMgVGVzdCAxOiBhIGZsb3cgbWF0Y2hlZCBieSB0aGUgcnVsZSBnZXRzIHRoZSBwb2xpY3kgdGltZW91dC5cbitjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiBcIiRQT1JUX1BPTElDWVwiKVxuK2NoZWNrX3RpbWVvdXQgXCIkUE9SVF9QT0xJQ1lcIiBwb2xpY3kgdGVzdF9wb2xpY3lfYXBwbGllZFxuK2Nsb3NlX2Nvbm5lY3Rpb24gXCIkY29ubl9waWRcIlxuK1xuKyMgVGVzdCAyOiBhIGZsb3cgbm90IG1hdGNoZWQgYnkgYW55IHJ1bGUga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0LlxuK2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFwiJFBPUlRfREVGQVVMVFwiKVxuK2NoZWNrX3RpbWVvdXQgXCIkUE9SVF9ERUZBVUxUXCIgZGVmYXVsdCB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkXG4rY2xvc2VfY29ubmVjdGlvbiBcIiRjb25uX3BpZFwiXG4rXG4rIyBUZXN0IDM6IHRoZSBwb2xpY3kgc3Vydml2ZXMgYSBkZWxldGUvcmVsb2FkIGN5Y2xlIG9mIHRoZSB3aG9sZSB0YWJsZS5cbitpcCBuZXRucyBleGVjIFwiJG5zMVwiIGNvbm50cmFjayAtRiAyXHUwMDNlL2Rldi9udWxsXG4raXAgbmV0bnMgZXhlYyBcIiRuczFcIiBuZnQgZGVsZXRlIHRhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdFxuK1xuK2lmICEgbG9hZF9ydWxlc2V0OyB0aGVuXG4rXHRlY2hvIFwiRkFJTDogdGVzdF9wb2xpY3lfcmVsb2FkOiBjb3VsZCBub3QgcmVsb2FkIGN0IHRpbWVvdXQgcnVsZXNldFwiXG4rXHRleGl0ICRrc2Z0X2ZhaWxcbitmaVxuK1xuK2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFwiJFBPUlRfUE9MSUNZXCIpXG4rY2hlY2tfdGltZW91dCBcIiRQT1JUX1BPTElDWVwiIHBvbGljeSB0ZXN0X3BvbGljeV9yZWxvYWRcbitjbG9zZV9jb25uZWN0aW9uIFwiJGNvbm5fcGlkXCJcbitcbitleGl0ICRyZXRcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA3OjAyOjM2LjYwNzczMjk2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk5NTA5MTcyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldGZpbHRlciBDVCBUaW1lb3V0IFNlbGZ0ZXN0IFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIHByZXNlbnRlZCB3aXRoIGEgcGF0Y2ggYWRkaW5nIGEgbmV3IHNlbGZ0ZXN0IGZvciBuZXRmaWx0ZXIncyBgY3QgdGltZW91dGAgb2JqZWN0cy4gSXQncyBsb2NhdGVkIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoYCwgYW5kIHRoZSBhc3NvY2lhdGVkIGBNYWtlZmlsZWAgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGhhcyBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgaXQuIEludGVyZXN0aW5nLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcGFydDogdGhlcmUncyBhYnNvbHV0ZWx5IG5vIG1vZGlmaWNhdGlvbiB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlIGl0c2VsZi4gTm8gQyBmaWxlcywgbm8gS2NvbmZpZyBjaGFuZ2VzLCBubyBoZWFkZXIgZmlsZSBhbHRlcmF0aW9ucy4gVGhpcyBpcyBwdXJlbHkgYW4gYWRkaXRpb24gdG8gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJIGV4cGVjdGVkLlxuXG5UaGVyZWZvcmUsIHRoaXMgcGF0Y2ggZG9lcyAqbm90KiBpbnRyb2R1Y2UgY2hhbmdlcyB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZyB0aGUga2VybmVsLiBJdCdzIGEgc2VsZi10ZXN0OyBpdCB2ZXJpZmllcyB0aGUgYmVoYXZpb3Igb2YgZXhpc3RpbmcgY29kZSwgbm90IGludHJvZHVjZXMgbmV3IGZ1bmN0aW9uYWxpdHkgdGhhdCBjb3VsZCBiZSBhIHZlY3RvciBmb3IgYnVncy5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBkaWZmIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4uLiBZZXMsIGNvbmZpcm1lZC4gVGhlIHBhdGNoIG9ubHkgdG91Y2hlcyB0aGUgYE1ha2VmaWxlYCBhbmQgYWRkcyB0aGUgbmV3IHNoZWxsIHNjcmlwdC4gTm8ga2VybmVsIGNvZGUgaXMgbW9kaWZpZWQuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQuIEknbGwgZ28gYWhlYWQgYW5kIGNhbGwgYHNldC1yZXN1bHRzYCB3aXRoIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGNhc2U7IHRlc3QgYWRkaXRpb25zIGRvIG5vdCB3YXJyYW50IGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MjcsIk91dHB1dFRva2VucyI6NjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwNzowMjo0MS42MDI4NDk2MzhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlcidzIGN0IHRpbWVvdXQgb2JqZWN0cyBhbmQgdXBkYXRlcyB0aGUgTWFrZWZpbGUgdG8gaW5jbHVkZSBpdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSBuZXcgc2VsZnRlc3Qgc2NyaXB0IGZvciBuZXRmaWx0ZXIncyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8ml4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-05 06:10:47 +0000 UTC FinishedAt: 2026-08-05 07:02:43 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDA3OjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlciYjMzk7cyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwNzowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRkMzFjYTRhZDA0YWMwZDRhZjdiOWJjZDQxMDExYTQzZDM4OWNhMTFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyA1IDA3OjAyOjMzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlXG5pbmRleCBmODhkZDRlZjhkMjY0Li4zOTEwMWFmNWQ4NGExIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuQEAgLTI1LDYgJiM0MzsyNSw3IEBAIFRFU1RfUFJPR1MgOj0gXFxcbiBcdG5mdF9hdWRpdC5zaCBcXFxuIFx0bmZ0X2NvbmNhdF9yYW5nZS5zaCBcXFxuIFx0bmZ0X2Nvbm50cmFja19oZWxwZXIuc2ggXFxcbiYjNDM7XHRuZnRfY3RfdGltZW91dC5zaCBcXFxuIFx0bmZ0X2ZpYi5zaCBcXFxuIFx0bmZ0X2ZpYl9uZXh0aG9wLnNoIFxcXG4gXHRuZnRfZmxvd3RhYmxlLnNoIFxcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2hcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5hNDFkYWQyMzI5Y2M2XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoXG5AQCAtMCwwICYjNDM7MSwyMTcgQEBcbiYjNDM7IyEvYmluL2Jhc2hcbiYjNDM7IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MzsjXG4mIzQzOyMgRnVuY3Rpb25hbCB0ZXN0IGZvciBuZnRhYmxlcyBjdCB0aW1lb3V0IG9iamVjdHMuXG4mIzQzOyNcbiYjNDM7IyBWZXJpZmllcyB0aGF0IGEgY3QgdGltZW91dCBwb2xpY3kgYWN0dWFsbHkgY2hhbmdlcyB0aGUgY29ubnRyYWNrXG4mIzQzOyMgc3RhdGUtbWFjaGluZSB0aW1lb3V0IG9mIHRoZSBjb25uZWN0aW9ucyBpdCBpcyBhdHRhY2hlZCB0bzpcbiYjNDM7I1xuJiM0MzsjICAxLiB0ZXN0X3BvbGljeV9hcHBsaWVkICAgIC0gYSBjb25uZWN0aW9uIG1hdGNoaW5nIGEgXCYjMzQ7Y3QgdGltZW91dCBzZXRcJiMzNDsgcnVsZVxuJiM0MzsjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cyB0aGUgcGVyLXN0YXRlIHRpbWVvdXQgZnJvbSB0aGUgbmFtZWRcbiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSwgaS5lLiBcdTAwM2M9IFBPTElDWV9FU1RBQl9TRUNTLlxuJiM0MzsjXG4mIzQzOyMgIDIuIHRlc3RfZGVmYXVsdF9wcmVzZXJ2ZWQgLSBhIGNvbm5lY3Rpb24gbm90IG1hdGNoaW5nIGFueSBjdCB0aW1lb3V0IHJ1bGVcbiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBzIHRoZSBrZXJuZWwgZGVmYXVsdCBFU1RBQkxJU0hFRCB0aW1lb3V0LlxuJiM0MzsjXG4mIzQzOyMgIDMuIHRlc3RfcG9saWN5X3JlbG9hZCAgICAgLSBhZnRlciB0aGUgdGFibGUgaXMgZGVsZXRlZCBhbmQgcmVsb2FkZWQsIGEgbmV3XG4mIzQzOyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uIHRocm91Z2ggdGhlIHJ1bGUgc3RpbGwgcmVjZWl2ZXMgdGhlXG4mIzQzOyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3kgdGltZW91dCByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdC5cbiYjNDM7I1xuJiM0MzsjIFRoZSByZW1haW5pbmcgbGlmZXRpbWUgb2YgYSBmbG93IGlzIHRoZSB0aGlyZCBmaWVsZCBvZiBhIFwmIzM0O2Nvbm50cmFjayAtTFwmIzM0O1xuJiM0MzsjIGxpbmU6XG4mIzQzOyNcbiYjNDM7IyAgIHRjcCAgNiAgMTE3ICBFU1RBQkxJU0hFRCAgc3JjPTEwLjAuMS4xIGRzdD0xMC4wLjEuMiBzcG9ydD0uLi4gZHBvcnQ9Li4uXG4mIzQzOyMgICAgICAgICAgIF5eXlxuJiM0MzsjXG4mIzQzOyMgVG9wb2xvZ3k6IHR3byBuZXRucyBjb25uZWN0ZWQgYnkgYSB2ZXRoIHBhaXIuXG4mIzQzOyMgICBuczEgKDEwLjAuMS4xLzI0KSAtLXZldGgtLSBuczIgKDEwLjAuMS4yLzI0KVxuJiM0MzsjIFRoZSBydWxlc2V0IGlzIGxvYWRlZCBpbiBuczEsIHNvIG5zMSYjMzk7cyBjb25udHJhY2sgdGFibGUgaXMgdXNlZCB0aHJvdWdob3V0LlxuJiM0MztcbiYjNDM7c291cmNlIGxpYi5zaFxuJiM0MztcbiYjNDM7Y2hlY2t0b29sIFwmIzM0O25mdCAtLXZlcnNpb25cJiMzNDsgXCYjMzQ7cnVuIHRlc3Qgd2l0aG91dCBuZnRcJiMzNDtcbiYjNDM7Y2hlY2t0b29sIFwmIzM0O2Nvbm50cmFjayAtLXZlcnNpb25cJiMzNDsgXCYjMzQ7cnVuIHRlc3Qgd2l0aG91dCBjb25udHJhY2tcJiMzNDtcbiYjNDM7Y2hlY2t0b29sIFwmIzM0O3NvY2F0IC1oXCYjMzQ7IFwmIzM0O3J1biB0ZXN0IHdpdGhvdXQgc29jYXRcJiMzNDtcbiYjNDM7XG4mIzQzOyMgVENQIHBvcnQgY292ZXJlZCBieSB0aGUgY3QgdGltZW91dCBwb2xpY3kuXG4mIzQzO1BPUlRfUE9MSUNZPTEyMzQ1XG4mIzQzOyMgVENQIHBvcnQgbm90IGNvdmVyZWQgYnkgYW55IHJ1bGU7IHVzZXMgdGhlIGtlcm5lbCBkZWZhdWx0IHRpbWVvdXRzLlxuJiM0MztQT1JUX0RFRkFVTFQ9MTIzNDZcbiYjNDM7XG4mIzQzOyMgRVNUQUJMSVNIRUQgdGltZW91dCBjYXJyaWVkIGJ5IHRoZSBwb2xpY3ksIGluIHNlY29uZHMuIE11c3QgYmUgd2VsbCBiZWxvd1xuJiM0MzsjIHRoZSBrZXJuZWwgZGVmYXVsdCAoNSBkYXlzKSBzbyB0aGUgdHdvIGNhc2VzIGNhbm5vdCBiZSBjb25mdXNlZC5cbiYjNDM7UE9MSUNZX0VTVEFCX1NFQ1M9MTIwXG4mIzQzO1xuJiM0MztyZXQ9MFxuJiM0MztcbiYjNDM7Y2xlYW51cCgpXG4mIzQzO3tcbiYjNDM7XHRpcCBuZXRucyBwaWRzIFwmIzM0OyRuczFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGxcbiYjNDM7XHRpcCBuZXRucyBwaWRzIFwmIzM0OyRuczJcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGxcbiYjNDM7XHRjbGVhbnVwX2FsbF9uc1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztsb2FkX3J1bGVzZXQoKVxuJiM0Mzt7XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBcJiMzNDskbnMxXCYjMzQ7IG5mdCAtZiAtIFx1MDAzY1x1MDAzY0VPRlxuJiM0Mzt0YWJsZSBpcCBjdF90aW1lb3V0X3Rlc3Qge1xuJiM0MztcdGN0IHRpbWVvdXQgdGNwX3BvbGljeSB7XG4mIzQzO1x0XHRwcm90b2NvbCB0Y3A7XG4mIzQzO1x0XHRwb2xpY3kgPSB7IGVzdGFibGlzaGVkOiAke1BPTElDWV9FU1RBQl9TRUNTfXMgfTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGNoYWluIG91dHB1dCB7XG4mIzQzO1x0XHR0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7XG4mIzQzO1x0XHRpcCBkYWRkciAxMC4wLjEuMiB0Y3AgZHBvcnQgJFBPUlRfUE9MSUNZIGN0IHRpbWVvdXQgc2V0IFwmIzM0O3RjcF9wb2xpY3lcJiMzNDtcbiYjNDM7XHR9XG4mIzQzO31cbiYjNDM7RU9GXG4mIzQzO31cbiYjNDM7XG4mIzQzO2xpc3RlbmVyX3JlYWR5KClcbiYjNDM7e1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMlwmIzM0OyBzcyAtbG50IC1vIFwmIzM0O3Nwb3J0ID0gOiQxXCYjMzQ7IHwgZ3JlcCAtcSBcJiMzNDskMVwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztjb25uX2VzdGFibGlzaGVkKClcbiYjNDM7e1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMVwmIzM0OyBjb25udHJhY2sgLUwgLXAgdGNwIC0tZHBvcnQgXCYjMzQ7JDFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCB8XG4mIzQzO1x0XHRncmVwIC1xIEVTVEFCTElTSEVEXG4mIzQzO31cbiYjNDM7XG4mIzQzOyMgUHJpbnRzIHRoZSByZW1haW5pbmcgbGlmZXRpbWUsIGluIHNlY29uZHMsIG9mIHRoZSBmaXJzdCBFU1RBQkxJU0hFRCBUQ1BcbiYjNDM7IyBmbG93IGluIG5zMSBtYXRjaGluZyB0aGUgZ2l2ZW4gZGVzdGluYXRpb24gcG9ydC5cbiYjNDM7ZXN0YWJsaXNoZWRfdGltZW91dCgpXG4mIzQzO3tcbiYjNDM7XHRpcCBuZXRucyBleGVjIFwmIzM0OyRuczFcJiMzNDsgY29ubnRyYWNrIC1MIC1wIHRjcCAtLWRwb3J0IFwmIzM0OyQxXCYjMzQ7IDJcdTAwM2UvZGV2L251bGwgfFxuJiM0MztcdFx0YXdrICYjMzk7L0VTVEFCTElTSEVELyB7IHByaW50ICQzOyBleGl0IH0mIzM5O1xuJiM0Mzt9XG4mIzQzO1xuJiM0MzsjIE9wZW5zIGEgVENQIGNvbm5lY3Rpb24gZnJvbSBuczEgYW5kIGhvbGRzIGl0IG9wZW4gaW4gdGhlIGJhY2tncm91bmQuXG4mIzQzOyMgUHJpbnRzIHRoZSBwaWQgb2YgdGhlIGhvbGRlciBzbyB0aGUgY2FsbGVyIGNhbiB0ZWFyIGl0IGRvd24uXG4mIzQzO29wZW5fY29ubmVjdGlvbigpXG4mIzQzO3tcbiYjNDM7XHQjIHN0ZG91dC9zdGRlcnIgbXVzdCBiZSByZWRpcmVjdGVkLCBlbHNlIHRoZSBiYWNrZ3JvdW5kIGpvYiBrZWVwcyB0aGVcbiYjNDM7XHQjIGNvbW1hbmQgc3Vic3RpdHV0aW9uIHRoYXQgY2FsbHMgdGhpcyBmdW5jdGlvbiBibG9ja2VkIHVudGlsIGl0IGV4aXRzLlxuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMVwmIzM0OyBiYXNoIC1jIFwmIzM0O1xuJiM0MztcdFx0ZXhlYyAzXHUwMDNjXHUwMDNlL2Rldi90Y3AvMTAuMC4xLjIvJDEgfHwgZXhpdCAxXG4mIzQzO1x0XHRzbGVlcCA2MFxuJiM0MztcdFwmIzM0OyBcdTAwM2UvZGV2L251bGwgMlx1MDAzZVx1MDAyNjEgXHUwMDI2XG4mIzQzO1x0ZWNobyAkIVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztjbG9zZV9jb25uZWN0aW9uKClcbiYjNDM7e1xuJiM0MztcdGtpbGwgXCYjMzQ7JDFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcdHdhaXQgXCYjMzQ7JDFcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0Mzt9XG4mIzQzO1xuJiM0MzsjIEFzc2VydHMgdGhhdCB0aGUgZmxvdyBvbiAkMSBoYXMgYSB0aW1lb3V0IG1hdGNoaW5nIGV4cGVjdGF0aW9uICQyIChcJiMzNDtwb2xpY3lcJiMzNDtcbiYjNDM7IyBvciBcJiMzNDtkZWZhdWx0XCYjMzQ7KSwgdXNpbmcgJDMgYXMgdGhlIHRlc3QgbmFtZS5cbiYjNDM7Y2hlY2tfdGltZW91dCgpXG4mIzQzO3tcbiYjNDM7XHRsb2NhbCBkcG9ydD0kMSBleHBlY3Q9JDIgbmFtZT0kM1xuJiM0MztcdGxvY2FsIHR2YWxcbiYjNDM7XG4mIzQzO1x0aWYgISBidXN5d2FpdCBcJiMzNDskQlVTWVdBSVRfVElNRU9VVFwmIzM0OyBjb25uX2VzdGFibGlzaGVkIFwmIzM0OyRkcG9ydFwmIzM0OzsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtGQUlMOiAkbmFtZTogY29ubmVjdGlvbiBkaWQgbm90IHJlYWNoIEVTVEFCTElTSEVEXCYjMzQ7XG4mIzQzO1x0XHRyZXQ9MVxuJiM0MztcdFx0cmV0dXJuXG4mIzQzO1x0ZmlcbiYjNDM7XG4mIzQzO1x0dHZhbD0kKGVzdGFibGlzaGVkX3RpbWVvdXQgXCYjMzQ7JGRwb3J0XCYjMzQ7KVxuJiM0MztcdGlmIFsgLXogXCYjMzQ7JHR2YWxcJiMzNDsgXTsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtGQUlMOiAkbmFtZTogY291bGQgbm90IHJlYWQgY29ubnRyYWNrIHRpbWVvdXRcJiMzNDtcbiYjNDM7XHRcdHJldD0xXG4mIzQzO1x0XHRyZXR1cm5cbiYjNDM7XHRmaVxuJiM0MztcbiYjNDM7XHRpZiBbIFwmIzM0OyRleHBlY3RcJiMzNDsgPSBcJiMzNDtwb2xpY3lcJiMzNDsgXTsgdGhlblxuJiM0MztcdFx0aWYgWyBcJiMzNDskdHZhbFwmIzM0OyAtbGUgXCYjMzQ7JFBPTElDWV9FU1RBQl9TRUNTXCYjMzQ7IF07IHRoZW5cbiYjNDM7XHRcdFx0ZWNobyBcJiMzNDtQQVNTOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBcdTAwM2M9IHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXNcJiMzNDtcbiYjNDM7XHRcdGVsc2VcbiYjNDM7XHRcdFx0ZWNobyBcJiMzNDtGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBleGNlZWRzIHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXNcJiMzNDtcbiYjNDM7XHRcdFx0cmV0PTFcbiYjNDM7XHRcdGZpXG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0aWYgWyBcJiMzNDskdHZhbFwmIzM0OyAtZ3QgXCYjMzQ7JFBPTElDWV9FU1RBQl9TRUNTXCYjMzQ7IF0gXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICBbIFwmIzM0OyR0dmFsXCYjMzQ7IC1sZSBcJiMzNDskZGVmYXVsdF9lc3RhYlwmIzM0OyBdOyB0aGVuXG4mIzQzO1x0XHRcdGVjaG8gXCYjMzQ7UEFTUzogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgbWF0Y2hlcyBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXCYjMzQ7XG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdGVjaG8gXCYjMzQ7RkFJTDogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgaXMgbm90IHRoZSBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXCYjMzQ7XG4mIzQzO1x0XHRcdHJldD0xXG4mIzQzO1x0XHRmaVxuJiM0MztcdGZpXG4mIzQzO31cbiYjNDM7XG4mIzQzO3RyYXAgY2xlYW51cCBFWElUXG4mIzQzO1xuJiM0MztzZXR1cF9ucyBuczEgbnMyXG4mIzQzO1xuJiM0MztpZiAhIGlwIGxpbmsgYWRkIHZldGgwIG5ldG5zIFwmIzM0OyRuczFcJiMzNDsgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2ZXRoMCBuZXRucyBcJiMzNDskbnMyXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdTAwM2UvZGV2L251bGwgMlx1MDAzZVx1MDAyNjE7IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O1NLSVA6IE5vIHZpcnR1YWwgZXRoZXJuZXQgcGFpciBkZXZpY2Ugc3VwcG9ydCBpbiBrZXJuZWxcJiMzNDtcbiYjNDM7XHRleGl0ICRrc2Z0X3NraXBcbiYjNDM7ZmlcbiYjNDM7XG4mIzQzO2lwIC1uZXQgXCYjMzQ7JG5zMVwmIzM0OyBsaW5rIHNldCB2ZXRoMCB1cFxuJiM0MztpcCAtbmV0IFwmIzM0OyRuczJcJiMzNDsgbGluayBzZXQgdmV0aDAgdXBcbiYjNDM7aXAgLW5ldCBcJiMzNDskbnMxXCYjMzQ7IGFkZHIgYWRkIDEwLjAuMS4xLzI0IGRldiB2ZXRoMFxuJiM0MztpcCAtbmV0IFwmIzM0OyRuczJcJiMzNDsgYWRkciBhZGQgMTAuMC4xLjIvMjQgZGV2IHZldGgwXG4mIzQzO1xuJiM0MzsjIFNZU1RFTTpcJiMzNDtjYXRcJiMzNDsga2VlcHMgZWFjaCBhY2NlcHRlZCBjb25uZWN0aW9uIG9wZW46IGNhdCBibG9ja3MgcmVhZGluZyB0aGVcbiYjNDM7IyBzb2NrZXQsIHNvIHRoZSBmbG93IHN0YXlzIEVTVEFCTElTSEVEIHVudGlsIHRoZSBjbGllbnQgZ29lcyBhd2F5LiBTaW5raW5nXG4mIzQzOyMgdG8gL2Rldi9udWxsIGluc3RlYWQgd291bGQgY2xvc2UgaXQgaW1tZWRpYXRlbHkgYW5kIGxhbmQgaW4gQ0xPU0VfV0FJVC5cbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskbnMyXCYjMzQ7IHNvY2F0IFRDUC1MSVNURU46JFBPUlRfUE9MSUNZLHJldXNlYWRkcixmb3JrIFNZU1RFTTpcJiMzNDtjYXRcJiMzNDsgXHUwMDI2XHUwMDNlL2Rldi9udWxsIFx1MDAyNlxuJiM0MztpcCBuZXRucyBleGVjIFwmIzM0OyRuczJcJiMzNDsgc29jYXQgVENQLUxJU1RFTjokUE9SVF9ERUZBVUxULHJldXNlYWRkcixmb3JrIFNZU1RFTTpcJiMzNDtjYXRcJiMzNDsgXHUwMDI2XHUwMDNlL2Rldi9udWxsIFx1MDAyNlxuJiM0MztcbiYjNDM7YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgbGlzdGVuZXJfcmVhZHkgXCYjMzQ7JFBPUlRfUE9MSUNZXCYjMzQ7XG4mIzQzO2J1c3l3YWl0IFwmIzM0OyRCVVNZV0FJVF9USU1FT1VUXCYjMzQ7IGxpc3RlbmVyX3JlYWR5IFwmIzM0OyRQT1JUX0RFRkFVTFRcJiMzNDtcbiYjNDM7XG4mIzQzOyMgTG9hZGluZyB0aGUgcnVsZXNldCBwdWxscyBpbiBjb25udHJhY2ssIHNvIHRoZSBzeXNjdGxzIGJlbG93IGV4aXN0IG9ubHlcbiYjNDM7IyBhZnRlciB0aGlzIHBvaW50LlxuJiM0MztpZiAhIGxvYWRfcnVsZXNldDsgdGhlblxuJiM0MztcdGVjaG8gXCYjMzQ7U0tJUDogQ291bGQgbm90IGxvYWQgY3QgdGltZW91dCBydWxlc2V0XCYjMzQ7XG4mIzQzO1x0ZXhpdCAka3NmdF9za2lwXG4mIzQzO2ZpXG4mIzQzO1xuJiM0MzsjIFJlYWQgdGhlIGRlZmF1bHQgcmF0aGVyIHRoYW4gaGFyZGNvZGluZyBpdDogYSBob3N0IHRoYXQgbG93ZXJlZFxuJiM0MzsjIG5mX2Nvbm50cmFja190Y3BfdGltZW91dF9lc3RhYmxpc2hlZCBtdXN0IG5vdCBmYWlsIHRlc3QgMiBzcHVyaW91c2x5LlxuJiM0MztkZWZhdWx0X2VzdGFiPSQoaXAgbmV0bnMgZXhlYyBcJiMzNDskbnMxXCYjMzQ7IFxcXG4mIzQzO1x0Y2F0IC9wcm9jL3N5cy9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja190Y3BfdGltZW91dF9lc3RhYmxpc2hlZCBcXFxuJiM0MztcdDJcdTAwM2UvZGV2L251bGwpXG4mIzQzO1xuJiM0MztpZiBbIC16IFwmIzM0OyRkZWZhdWx0X2VzdGFiXCYjMzQ7IF07IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O1NLSVA6IGNvbm50cmFjayB0Y3AgdGltZW91dCBzeXNjdGwgbm90IGF2YWlsYWJsZVwmIzM0O1xuJiM0MztcdGV4aXQgJGtzZnRfc2tpcFxuJiM0MztmaVxuJiM0MztcbiYjNDM7aWYgWyBcJiMzNDskZGVmYXVsdF9lc3RhYlwmIzM0OyAtbGUgXCYjMzQ7JFBPTElDWV9FU1RBQl9TRUNTXCYjMzQ7IF07IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O1NLSVA6IGRlZmF1bHQgRVNUQUJMSVNIRUQgdGltZW91dCAke2RlZmF1bHRfZXN0YWJ9cyBpcyBub3QgYWJvdmUgdGhlIHBvbGljeSB2YWx1ZVwmIzM0O1xuJiM0MztcdGV4aXQgJGtzZnRfc2tpcFxuJiM0MztmaVxuJiM0MztcbiYjNDM7IyBUZXN0IDE6IGEgZmxvdyBtYXRjaGVkIGJ5IHRoZSBydWxlIGdldHMgdGhlIHBvbGljeSB0aW1lb3V0LlxuJiM0Mztjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiBcJiMzNDskUE9SVF9QT0xJQ1lcJiMzNDspXG4mIzQzO2NoZWNrX3RpbWVvdXQgXCYjMzQ7JFBPUlRfUE9MSUNZXCYjMzQ7IHBvbGljeSB0ZXN0X3BvbGljeV9hcHBsaWVkXG4mIzQzO2Nsb3NlX2Nvbm5lY3Rpb24gXCYjMzQ7JGNvbm5fcGlkXCYjMzQ7XG4mIzQzO1xuJiM0MzsjIFRlc3QgMjogYSBmbG93IG5vdCBtYXRjaGVkIGJ5IGFueSBydWxlIGtlZXBzIHRoZSBrZXJuZWwgZGVmYXVsdC5cbiYjNDM7Y29ubl9waWQ9JChvcGVuX2Nvbm5lY3Rpb24gXCYjMzQ7JFBPUlRfREVGQVVMVFwmIzM0OylcbiYjNDM7Y2hlY2tfdGltZW91dCBcJiMzNDskUE9SVF9ERUZBVUxUXCYjMzQ7IGRlZmF1bHQgdGVzdF9kZWZhdWx0X3ByZXNlcnZlZFxuJiM0MztjbG9zZV9jb25uZWN0aW9uIFwmIzM0OyRjb25uX3BpZFwmIzM0O1xuJiM0MztcbiYjNDM7IyBUZXN0IDM6IHRoZSBwb2xpY3kgc3Vydml2ZXMgYSBkZWxldGUvcmVsb2FkIGN5Y2xlIG9mIHRoZSB3aG9sZSB0YWJsZS5cbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskbnMxXCYjMzQ7IGNvbm50cmFjayAtRiAyXHUwMDNlL2Rldi9udWxsXG4mIzQzO2lwIG5ldG5zIGV4ZWMgXCYjMzQ7JG5zMVwmIzM0OyBuZnQgZGVsZXRlIHRhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdFxuJiM0MztcbiYjNDM7aWYgISBsb2FkX3J1bGVzZXQ7IHRoZW5cbiYjNDM7XHRlY2hvIFwmIzM0O0ZBSUw6IHRlc3RfcG9saWN5X3JlbG9hZDogY291bGQgbm90IHJlbG9hZCBjdCB0aW1lb3V0IHJ1bGVzZXRcJiMzNDtcbiYjNDM7XHRleGl0ICRrc2Z0X2ZhaWxcbiYjNDM7ZmlcbiYjNDM7XG4mIzQzO2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFwmIzM0OyRQT1JUX1BPTElDWVwmIzM0OylcbiYjNDM7Y2hlY2tfdGltZW91dCBcJiMzNDskUE9SVF9QT0xJQ1lcJiMzNDsgcG9saWN5IHRlc3RfcG9saWN5X3JlbG9hZFxuJiM0MztjbG9zZV9jb25uZWN0aW9uIFwmIzM0OyRjb25uX3BpZFwmIzM0O1xuJiM0MztcbiYjNDM7ZXhpdCAkcmV0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDc6MDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlciYjMzk7cyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRkMzFjYTRhZDA0YWMwZDRhZjdiOWJjZDQxMDExYTQzZDM4OWNhMTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyA1IDA3OjAyOjMzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUKaW5kZXggZjg4ZGQ0ZWY4ZDI2NC4uMzkxMDFhZjVkODRhMSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZQomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlCkBAIC0yNSw2ICYjNDM7MjUsNyBAQCBURVNUX1BST0dTIDo9IFwKIAluZnRfYXVkaXQuc2ggXAogCW5mdF9jb25jYXRfcmFuZ2Uuc2ggXAogCW5mdF9jb25udHJhY2tfaGVscGVyLnNoIFwKJiM0MzsJbmZ0X2N0X3RpbWVvdXQuc2ggXAogCW5mdF9maWIuc2ggXAogCW5mdF9maWJfbmV4dGhvcC5zaCBcCiAJbmZ0X2Zsb3d0YWJsZS5zaCBcCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwLi5hNDFkYWQyMzI5Y2M2Ci0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaApAQCAtMCwwICYjNDM7MSwyMTcgQEAKJiM0MzsjIS9iaW4vYmFzaAomIzQzOyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKJiM0MzsjCiYjNDM7IyBGdW5jdGlvbmFsIHRlc3QgZm9yIG5mdGFibGVzIGN0IHRpbWVvdXQgb2JqZWN0cy4KJiM0MzsjCiYjNDM7IyBWZXJpZmllcyB0aGF0IGEgY3QgdGltZW91dCBwb2xpY3kgYWN0dWFsbHkgY2hhbmdlcyB0aGUgY29ubnRyYWNrCiYjNDM7IyBzdGF0ZS1tYWNoaW5lIHRpbWVvdXQgb2YgdGhlIGNvbm5lY3Rpb25zIGl0IGlzIGF0dGFjaGVkIHRvOgomIzQzOyMKJiM0MzsjICAxLiB0ZXN0X3BvbGljeV9hcHBsaWVkICAgIC0gYSBjb25uZWN0aW9uIG1hdGNoaW5nIGEgJiMzNDtjdCB0aW1lb3V0IHNldCYjMzQ7IHJ1bGUKJiM0MzsjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cyB0aGUgcGVyLXN0YXRlIHRpbWVvdXQgZnJvbSB0aGUgbmFtZWQKJiM0MzsjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LCBpLmUuICZsdDs9IFBPTElDWV9FU1RBQl9TRUNTLgomIzQzOyMKJiM0MzsjICAyLiB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkIC0gYSBjb25uZWN0aW9uIG5vdCBtYXRjaGluZyBhbnkgY3QgdGltZW91dCBydWxlCiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBzIHRoZSBrZXJuZWwgZGVmYXVsdCBFU1RBQkxJU0hFRCB0aW1lb3V0LgomIzQzOyMKJiM0MzsjICAzLiB0ZXN0X3BvbGljeV9yZWxvYWQgICAgIC0gYWZ0ZXIgdGhlIHRhYmxlIGlzIGRlbGV0ZWQgYW5kIHJlbG9hZGVkLCBhIG5ldwomIzQzOyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uIHRocm91Z2ggdGhlIHJ1bGUgc3RpbGwgcmVjZWl2ZXMgdGhlCiYjNDM7IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSB0aW1lb3V0IHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0LgomIzQzOyMKJiM0MzsjIFRoZSByZW1haW5pbmcgbGlmZXRpbWUgb2YgYSBmbG93IGlzIHRoZSB0aGlyZCBmaWVsZCBvZiBhICYjMzQ7Y29ubnRyYWNrIC1MJiMzNDsKJiM0MzsjIGxpbmU6CiYjNDM7IwomIzQzOyMgICB0Y3AgIDYgIDExNyAgRVNUQUJMSVNIRUQgIHNyYz0xMC4wLjEuMSBkc3Q9MTAuMC4xLjIgc3BvcnQ9Li4uIGRwb3J0PS4uLgomIzQzOyMgICAgICAgICAgIF5eXgomIzQzOyMKJiM0MzsjIFRvcG9sb2d5OiB0d28gbmV0bnMgY29ubmVjdGVkIGJ5IGEgdmV0aCBwYWlyLgomIzQzOyMgICBuczEgKDEwLjAuMS4xLzI0KSAtLXZldGgtLSBuczIgKDEwLjAuMS4yLzI0KQomIzQzOyMgVGhlIHJ1bGVzZXQgaXMgbG9hZGVkIGluIG5zMSwgc28gbnMxJiMzOTtzIGNvbm50cmFjayB0YWJsZSBpcyB1c2VkIHRocm91Z2hvdXQuCiYjNDM7CiYjNDM7c291cmNlIGxpYi5zaAomIzQzOwomIzQzO2NoZWNrdG9vbCAmIzM0O25mdCAtLXZlcnNpb24mIzM0OyAmIzM0O3J1biB0ZXN0IHdpdGhvdXQgbmZ0JiMzNDsKJiM0MztjaGVja3Rvb2wgJiMzNDtjb25udHJhY2sgLS12ZXJzaW9uJiMzNDsgJiMzNDtydW4gdGVzdCB3aXRob3V0IGNvbm50cmFjayYjMzQ7CiYjNDM7Y2hlY2t0b29sICYjMzQ7c29jYXQgLWgmIzM0OyAmIzM0O3J1biB0ZXN0IHdpdGhvdXQgc29jYXQmIzM0OwomIzQzOwomIzQzOyMgVENQIHBvcnQgY292ZXJlZCBieSB0aGUgY3QgdGltZW91dCBwb2xpY3kuCiYjNDM7UE9SVF9QT0xJQ1k9MTIzNDUKJiM0MzsjIFRDUCBwb3J0IG5vdCBjb3ZlcmVkIGJ5IGFueSBydWxlOyB1c2VzIHRoZSBrZXJuZWwgZGVmYXVsdCB0aW1lb3V0cy4KJiM0MztQT1JUX0RFRkFVTFQ9MTIzNDYKJiM0MzsKJiM0MzsjIEVTVEFCTElTSEVEIHRpbWVvdXQgY2FycmllZCBieSB0aGUgcG9saWN5LCBpbiBzZWNvbmRzLiBNdXN0IGJlIHdlbGwgYmVsb3cKJiM0MzsjIHRoZSBrZXJuZWwgZGVmYXVsdCAoNSBkYXlzKSBzbyB0aGUgdHdvIGNhc2VzIGNhbm5vdCBiZSBjb25mdXNlZC4KJiM0MztQT0xJQ1lfRVNUQUJfU0VDUz0xMjAKJiM0MzsKJiM0MztyZXQ9MAomIzQzOwomIzQzO2NsZWFudXAoKQomIzQzO3sKJiM0MzsJaXAgbmV0bnMgcGlkcyAmIzM0OyRuczEmIzM0OyAyJmd0Oy9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGwKJiM0MzsJaXAgbmV0bnMgcGlkcyAmIzM0OyRuczImIzM0OyAyJmd0Oy9kZXYvbnVsbCB8IHhhcmdzIC1yIGtpbGwKJiM0MzsJY2xlYW51cF9hbGxfbnMKJiM0Mzt9CiYjNDM7CiYjNDM7bG9hZF9ydWxlc2V0KCkKJiM0Mzt7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgbmZ0IC1mIC0gJmx0OyZsdDtFT0YKJiM0Mzt0YWJsZSBpcCBjdF90aW1lb3V0X3Rlc3QgewomIzQzOwljdCB0aW1lb3V0IHRjcF9wb2xpY3kgewomIzQzOwkJcHJvdG9jb2wgdGNwOwomIzQzOwkJcG9saWN5ID0geyBlc3RhYmxpc2hlZDogJHtQT0xJQ1lfRVNUQUJfU0VDU31zIH07CiYjNDM7CX0KJiM0MzsKJiM0MzsJY2hhaW4gb3V0cHV0IHsKJiM0MzsJCXR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDsKJiM0MzsJCWlwIGRhZGRyIDEwLjAuMS4yIHRjcCBkcG9ydCAkUE9SVF9QT0xJQ1kgY3QgdGltZW91dCBzZXQgJiMzNDt0Y3BfcG9saWN5JiMzNDsKJiM0MzsJfQomIzQzO30KJiM0MztFT0YKJiM0Mzt9CiYjNDM7CiYjNDM7bGlzdGVuZXJfcmVhZHkoKQomIzQzO3sKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyRuczImIzM0OyBzcyAtbG50IC1vICYjMzQ7c3BvcnQgPSA6JDEmIzM0OyB8IGdyZXAgLXEgJiMzNDskMSYjMzQ7CiYjNDM7fQomIzQzOwomIzQzO2Nvbm5fZXN0YWJsaXNoZWQoKQomIzQzO3sKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyRuczEmIzM0OyBjb25udHJhY2sgLUwgLXAgdGNwIC0tZHBvcnQgJiMzNDskMSYjMzQ7IDImZ3Q7L2Rldi9udWxsIHwKJiM0MzsJCWdyZXAgLXEgRVNUQUJMSVNIRUQKJiM0Mzt9CiYjNDM7CiYjNDM7IyBQcmludHMgdGhlIHJlbWFpbmluZyBsaWZldGltZSwgaW4gc2Vjb25kcywgb2YgdGhlIGZpcnN0IEVTVEFCTElTSEVEIFRDUAomIzQzOyMgZmxvdyBpbiBuczEgbWF0Y2hpbmcgdGhlIGdpdmVuIGRlc3RpbmF0aW9uIHBvcnQuCiYjNDM7ZXN0YWJsaXNoZWRfdGltZW91dCgpCiYjNDM7ewomIzQzOwlpcCBuZXRucyBleGVjICYjMzQ7JG5zMSYjMzQ7IGNvbm50cmFjayAtTCAtcCB0Y3AgLS1kcG9ydCAmIzM0OyQxJiMzNDsgMiZndDsvZGV2L251bGwgfAomIzQzOwkJYXdrICYjMzk7L0VTVEFCTElTSEVELyB7IHByaW50ICQzOyBleGl0IH0mIzM5OwomIzQzO30KJiM0MzsKJiM0MzsjIE9wZW5zIGEgVENQIGNvbm5lY3Rpb24gZnJvbSBuczEgYW5kIGhvbGRzIGl0IG9wZW4gaW4gdGhlIGJhY2tncm91bmQuCiYjNDM7IyBQcmludHMgdGhlIHBpZCBvZiB0aGUgaG9sZGVyIHNvIHRoZSBjYWxsZXIgY2FuIHRlYXIgaXQgZG93bi4KJiM0MztvcGVuX2Nvbm5lY3Rpb24oKQomIzQzO3sKJiM0MzsJIyBzdGRvdXQvc3RkZXJyIG11c3QgYmUgcmVkaXJlY3RlZCwgZWxzZSB0aGUgYmFja2dyb3VuZCBqb2Iga2VlcHMgdGhlCiYjNDM7CSMgY29tbWFuZCBzdWJzdGl0dXRpb24gdGhhdCBjYWxscyB0aGlzIGZ1bmN0aW9uIGJsb2NrZWQgdW50aWwgaXQgZXhpdHMuCiYjNDM7CWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgYmFzaCAtYyAmIzM0OwomIzQzOwkJZXhlYyAzJmx0OyZndDsvZGV2L3RjcC8xMC4wLjEuMi8kMSB8fCBleGl0IDEKJiM0MzsJCXNsZWVwIDYwCiYjNDM7CSYjMzQ7ICZndDsvZGV2L251bGwgMiZndDsmYW1wOzEgJmFtcDsKJiM0MzsJZWNobyAkIQomIzQzO30KJiM0MzsKJiM0MztjbG9zZV9jb25uZWN0aW9uKCkKJiM0Mzt7CiYjNDM7CWtpbGwgJiMzNDskMSYjMzQ7IDImZ3Q7L2Rldi9udWxsCiYjNDM7CXdhaXQgJiMzNDskMSYjMzQ7IDImZ3Q7L2Rldi9udWxsCiYjNDM7fQomIzQzOwomIzQzOyMgQXNzZXJ0cyB0aGF0IHRoZSBmbG93IG9uICQxIGhhcyBhIHRpbWVvdXQgbWF0Y2hpbmcgZXhwZWN0YXRpb24gJDIgKCYjMzQ7cG9saWN5JiMzNDsKJiM0MzsjIG9yICYjMzQ7ZGVmYXVsdCYjMzQ7KSwgdXNpbmcgJDMgYXMgdGhlIHRlc3QgbmFtZS4KJiM0MztjaGVja190aW1lb3V0KCkKJiM0Mzt7CiYjNDM7CWxvY2FsIGRwb3J0PSQxIGV4cGVjdD0kMiBuYW1lPSQzCiYjNDM7CWxvY2FsIHR2YWwKJiM0MzsKJiM0MzsJaWYgISBidXN5d2FpdCAmIzM0OyRCVVNZV0FJVF9USU1FT1VUJiMzNDsgY29ubl9lc3RhYmxpc2hlZCAmIzM0OyRkcG9ydCYjMzQ7OyB0aGVuCiYjNDM7CQllY2hvICYjMzQ7RkFJTDogJG5hbWU6IGNvbm5lY3Rpb24gZGlkIG5vdCByZWFjaCBFU1RBQkxJU0hFRCYjMzQ7CiYjNDM7CQlyZXQ9MQomIzQzOwkJcmV0dXJuCiYjNDM7CWZpCiYjNDM7CiYjNDM7CXR2YWw9JChlc3RhYmxpc2hlZF90aW1lb3V0ICYjMzQ7JGRwb3J0JiMzNDspCiYjNDM7CWlmIFsgLXogJiMzNDskdHZhbCYjMzQ7IF07IHRoZW4KJiM0MzsJCWVjaG8gJiMzNDtGQUlMOiAkbmFtZTogY291bGQgbm90IHJlYWQgY29ubnRyYWNrIHRpbWVvdXQmIzM0OwomIzQzOwkJcmV0PTEKJiM0MzsJCXJldHVybgomIzQzOwlmaQomIzQzOwomIzQzOwlpZiBbICYjMzQ7JGV4cGVjdCYjMzQ7ID0gJiMzNDtwb2xpY3kmIzM0OyBdOyB0aGVuCiYjNDM7CQlpZiBbICYjMzQ7JHR2YWwmIzM0OyAtbGUgJiMzNDskUE9MSUNZX0VTVEFCX1NFQ1MmIzM0OyBdOyB0aGVuCiYjNDM7CQkJZWNobyAmIzM0O1BBU1M6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zICZsdDs9IHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXMmIzM0OwomIzQzOwkJZWxzZQomIzQzOwkJCWVjaG8gJiMzNDtGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBleGNlZWRzIHBvbGljeSAke1BPTElDWV9FU1RBQl9TRUNTfXMmIzM0OwomIzQzOwkJCXJldD0xCiYjNDM7CQlmaQomIzQzOwllbHNlCiYjNDM7CQlpZiBbICYjMzQ7JHR2YWwmIzM0OyAtZ3QgJiMzNDskUE9MSUNZX0VTVEFCX1NFQ1MmIzM0OyBdICZhbXA7JmFtcDsKJiM0MzsJCSAgIFsgJiMzNDskdHZhbCYjMzQ7IC1sZSAmIzM0OyRkZWZhdWx0X2VzdGFiJiMzNDsgXTsgdGhlbgomIzQzOwkJCWVjaG8gJiMzNDtQQVNTOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBtYXRjaGVzIGRlZmF1bHQgJHtkZWZhdWx0X2VzdGFifXMmIzM0OwomIzQzOwkJZWxzZQomIzQzOwkJCWVjaG8gJiMzNDtGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBpcyBub3QgdGhlIGRlZmF1bHQgJHtkZWZhdWx0X2VzdGFifXMmIzM0OwomIzQzOwkJCXJldD0xCiYjNDM7CQlmaQomIzQzOwlmaQomIzQzO30KJiM0MzsKJiM0Mzt0cmFwIGNsZWFudXAgRVhJVAomIzQzOwomIzQzO3NldHVwX25zIG5zMSBuczIKJiM0MzsKJiM0MztpZiAhIGlwIGxpbmsgYWRkIHZldGgwIG5ldG5zICYjMzQ7JG5zMSYjMzQ7IHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDAgbmV0bnMgJiMzNDskbnMyJiMzNDsgXAomIzQzOwkJJmd0Oy9kZXYvbnVsbCAyJmd0OyZhbXA7MTsgdGhlbgomIzQzOwllY2hvICYjMzQ7U0tJUDogTm8gdmlydHVhbCBldGhlcm5ldCBwYWlyIGRldmljZSBzdXBwb3J0IGluIGtlcm5lbCYjMzQ7CiYjNDM7CWV4aXQgJGtzZnRfc2tpcAomIzQzO2ZpCiYjNDM7CiYjNDM7aXAgLW5ldCAmIzM0OyRuczEmIzM0OyBsaW5rIHNldCB2ZXRoMCB1cAomIzQzO2lwIC1uZXQgJiMzNDskbnMyJiMzNDsgbGluayBzZXQgdmV0aDAgdXAKJiM0MztpcCAtbmV0ICYjMzQ7JG5zMSYjMzQ7IGFkZHIgYWRkIDEwLjAuMS4xLzI0IGRldiB2ZXRoMAomIzQzO2lwIC1uZXQgJiMzNDskbnMyJiMzNDsgYWRkciBhZGQgMTAuMC4xLjIvMjQgZGV2IHZldGgwCiYjNDM7CiYjNDM7IyBTWVNURU06JiMzNDtjYXQmIzM0OyBrZWVwcyBlYWNoIGFjY2VwdGVkIGNvbm5lY3Rpb24gb3BlbjogY2F0IGJsb2NrcyByZWFkaW5nIHRoZQomIzQzOyMgc29ja2V0LCBzbyB0aGUgZmxvdyBzdGF5cyBFU1RBQkxJU0hFRCB1bnRpbCB0aGUgY2xpZW50IGdvZXMgYXdheS4gU2lua2luZwomIzQzOyMgdG8gL2Rldi9udWxsIGluc3RlYWQgd291bGQgY2xvc2UgaXQgaW1tZWRpYXRlbHkgYW5kIGxhbmQgaW4gQ0xPU0VfV0FJVC4KJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JG5zMiYjMzQ7IHNvY2F0IFRDUC1MSVNURU46JFBPUlRfUE9MSUNZLHJldXNlYWRkcixmb3JrIFNZU1RFTTomIzM0O2NhdCYjMzQ7ICZhbXA7Jmd0Oy9kZXYvbnVsbCAmYW1wOwomIzQzO2lwIG5ldG5zIGV4ZWMgJiMzNDskbnMyJiMzNDsgc29jYXQgVENQLUxJU1RFTjokUE9SVF9ERUZBVUxULHJldXNlYWRkcixmb3JrIFNZU1RFTTomIzM0O2NhdCYjMzQ7ICZhbXA7Jmd0Oy9kZXYvbnVsbCAmYW1wOwomIzQzOwomIzQzO2J1c3l3YWl0ICYjMzQ7JEJVU1lXQUlUX1RJTUVPVVQmIzM0OyBsaXN0ZW5lcl9yZWFkeSAmIzM0OyRQT1JUX1BPTElDWSYjMzQ7CiYjNDM7YnVzeXdhaXQgJiMzNDskQlVTWVdBSVRfVElNRU9VVCYjMzQ7IGxpc3RlbmVyX3JlYWR5ICYjMzQ7JFBPUlRfREVGQVVMVCYjMzQ7CiYjNDM7CiYjNDM7IyBMb2FkaW5nIHRoZSBydWxlc2V0IHB1bGxzIGluIGNvbm50cmFjaywgc28gdGhlIHN5c2N0bHMgYmVsb3cgZXhpc3Qgb25seQomIzQzOyMgYWZ0ZXIgdGhpcyBwb2ludC4KJiM0MztpZiAhIGxvYWRfcnVsZXNldDsgdGhlbgomIzQzOwllY2hvICYjMzQ7U0tJUDogQ291bGQgbm90IGxvYWQgY3QgdGltZW91dCBydWxlc2V0JiMzNDsKJiM0MzsJZXhpdCAka3NmdF9za2lwCiYjNDM7ZmkKJiM0MzsKJiM0MzsjIFJlYWQgdGhlIGRlZmF1bHQgcmF0aGVyIHRoYW4gaGFyZGNvZGluZyBpdDogYSBob3N0IHRoYXQgbG93ZXJlZAomIzQzOyMgbmZfY29ubnRyYWNrX3RjcF90aW1lb3V0X2VzdGFibGlzaGVkIG11c3Qgbm90IGZhaWwgdGVzdCAyIHNwdXJpb3VzbHkuCiYjNDM7ZGVmYXVsdF9lc3RhYj0kKGlwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgXAomIzQzOwljYXQgL3Byb2Mvc3lzL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3RjcF90aW1lb3V0X2VzdGFibGlzaGVkIFwKJiM0MzsJMiZndDsvZGV2L251bGwpCiYjNDM7CiYjNDM7aWYgWyAteiAmIzM0OyRkZWZhdWx0X2VzdGFiJiMzNDsgXTsgdGhlbgomIzQzOwllY2hvICYjMzQ7U0tJUDogY29ubnRyYWNrIHRjcCB0aW1lb3V0IHN5c2N0bCBub3QgYXZhaWxhYmxlJiMzNDsKJiM0MzsJZXhpdCAka3NmdF9za2lwCiYjNDM7ZmkKJiM0MzsKJiM0MztpZiBbICYjMzQ7JGRlZmF1bHRfZXN0YWImIzM0OyAtbGUgJiMzNDskUE9MSUNZX0VTVEFCX1NFQ1MmIzM0OyBdOyB0aGVuCiYjNDM7CWVjaG8gJiMzNDtTS0lQOiBkZWZhdWx0IEVTVEFCTElTSEVEIHRpbWVvdXQgJHtkZWZhdWx0X2VzdGFifXMgaXMgbm90IGFib3ZlIHRoZSBwb2xpY3kgdmFsdWUmIzM0OwomIzQzOwlleGl0ICRrc2Z0X3NraXAKJiM0MztmaQomIzQzOwomIzQzOyMgVGVzdCAxOiBhIGZsb3cgbWF0Y2hlZCBieSB0aGUgcnVsZSBnZXRzIHRoZSBwb2xpY3kgdGltZW91dC4KJiM0Mztjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiAmIzM0OyRQT1JUX1BPTElDWSYjMzQ7KQomIzQzO2NoZWNrX3RpbWVvdXQgJiMzNDskUE9SVF9QT0xJQ1kmIzM0OyBwb2xpY3kgdGVzdF9wb2xpY3lfYXBwbGllZAomIzQzO2Nsb3NlX2Nvbm5lY3Rpb24gJiMzNDskY29ubl9waWQmIzM0OwomIzQzOwomIzQzOyMgVGVzdCAyOiBhIGZsb3cgbm90IG1hdGNoZWQgYnkgYW55IHJ1bGUga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0LgomIzQzO2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uICYjMzQ7JFBPUlRfREVGQVVMVCYjMzQ7KQomIzQzO2NoZWNrX3RpbWVvdXQgJiMzNDskUE9SVF9ERUZBVUxUJiMzNDsgZGVmYXVsdCB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkCiYjNDM7Y2xvc2VfY29ubmVjdGlvbiAmIzM0OyRjb25uX3BpZCYjMzQ7CiYjNDM7CiYjNDM7IyBUZXN0IDM6IHRoZSBwb2xpY3kgc3Vydml2ZXMgYSBkZWxldGUvcmVsb2FkIGN5Y2xlIG9mIHRoZSB3aG9sZSB0YWJsZS4KJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JG5zMSYjMzQ7IGNvbm50cmFjayAtRiAyJmd0Oy9kZXYvbnVsbAomIzQzO2lwIG5ldG5zIGV4ZWMgJiMzNDskbnMxJiMzNDsgbmZ0IGRlbGV0ZSB0YWJsZSBpcCBjdF90aW1lb3V0X3Rlc3QKJiM0MzsKJiM0MztpZiAhIGxvYWRfcnVsZXNldDsgdGhlbgomIzQzOwllY2hvICYjMzQ7RkFJTDogdGVzdF9wb2xpY3lfcmVsb2FkOiBjb3VsZCBub3QgcmVsb2FkIGN0IHRpbWVvdXQgcnVsZXNldCYjMzQ7CiYjNDM7CWV4aXQgJGtzZnRfZmFpbAomIzQzO2ZpCiYjNDM7CiYjNDM7Y29ubl9waWQ9JChvcGVuX2Nvbm5lY3Rpb24gJiMzNDskUE9SVF9QT0xJQ1kmIzM0OykKJiM0MztjaGVja190aW1lb3V0ICYjMzQ7JFBPUlRfUE9MSUNZJiMzNDsgcG9saWN5IHRlc3RfcG9saWN5X3JlbG9hZAomIzQzO2Nsb3NlX2Nvbm5lY3Rpb24gJiMzNDskY29ubl9waWQmIzM0OwomIzQzOwomIzQzO2V4aXQgJHJldAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwNzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTI3CgkJCQkJCQlvdXRwdXQ6IDY5CgkJCQkJCQl0aG91Z2h0czogMTkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIENUIFRpbWVvdXQgU2VsZnRlc3QgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBwcmVzZW50ZWQgd2l0aCBhIHBhdGNoIGFkZGluZyBhIG5ldyBzZWxmdGVzdCBmb3IgbmV0ZmlsdGVyJiMzOTtzIGBjdCB0aW1lb3V0YCBvYmplY3RzLiBJdCYjMzk7cyBsb2NhdGVkIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoYCwgYW5kIHRoZSBhc3NvY2lhdGVkIGBNYWtlZmlsZWAgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGhhcyBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgaXQuIEludGVyZXN0aW5nLgoKTm93LCB0aGUgaW1wb3J0YW50IHBhcnQ6IHRoZXJlJiMzOTtzIGFic29sdXRlbHkgbm8gbW9kaWZpY2F0aW9uIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUgaXRzZWxmLiBObyBDIGZpbGVzLCBubyBLY29uZmlnIGNoYW5nZXMsIG5vIGhlYWRlciBmaWxlIGFsdGVyYXRpb25zLiBUaGlzIGlzIHB1cmVseSBhbiBhZGRpdGlvbiB0byB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZSwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEkgZXhwZWN0ZWQuCgpUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggZG9lcyAqbm90KiBpbnRyb2R1Y2UgY2hhbmdlcyB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZyB0aGUga2VybmVsLiBJdCYjMzk7cyBhIHNlbGYtdGVzdDsgaXQgdmVyaWZpZXMgdGhlIGJlaGF2aW9yIG9mIGV4aXN0aW5nIGNvZGUsIG5vdCBpbnRyb2R1Y2VzIG5ldyBmdW5jdGlvbmFsaXR5IHRoYXQgY291bGQgYmUgYSB2ZWN0b3IgZm9yIGJ1Z3MuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGRpZmYgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLi4uIFllcywgY29uZmlybWVkLiBUaGUgcGF0Y2ggb25seSB0b3VjaGVzIHRoZSBgTWFrZWZpbGVgIGFuZCBhZGRzIHRoZSBuZXcgc2hlbGwgc2NyaXB0LiBObyBrZXJuZWwgY29kZSBpcyBtb2RpZmllZC4KCkFscmlnaHQsIEkmIzM5O20gY29uZmlkZW50LiBJJiMzOTtsbCBnbyBhaGVhZCBhbmQgY2FsbCBgc2V0LXJlc3VsdHNgIHdpdGggYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgY2FzZTsgdGVzdCBhZGRpdGlvbnMgZG8gbm90IHdhcnJhbnQgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAwNzowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlciYjMzk7cyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IHNlbGZ0ZXN0IHNjcmlwdCBmb3IgbmV0ZmlsdGVyJiMzOTtzIGN0IHRpbWVvdXQgb2JqZWN0cyBhbmQgdXBkYXRlcyB0aGUgTWFrZWZpbGUgdG8gaW5jbHVkZSBpdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDc6MDI6MzUuMzUzNzg1NzQ4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjI0OTEwOTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IHNlbGZ0ZXN0IHNjcmlwdCBmb3IgbmV0ZmlsdGVyJ3MgY3QgdGltZW91dCBvYmplY3RzIGFuZCB1cGRhdGVzIHRoZSBNYWtlZmlsZSB0byBpbmNsdWRlIGl0LiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBzb3VyY2UgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA3OjAyOjM1LjM1MzgxMTAxOFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1MzI4NzU4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRkMzFjYTRhZDA0YWMwZDRhZjdiOWJjZDQxMDExYTQzZDM4OWNhMTFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgNSAwNzowMjozMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxcbmluZGV4IGY4OGRkNGVmOGQyNjQuLjM5MTAxYWY1ZDg0YTEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGVcXG5AQCAtMjUsNiArMjUsNyBAQCBURVNUX1BST0dTIDo9IFxcXFxcXG4gXFx0bmZ0X2F1ZGl0LnNoIFxcXFxcXG4gXFx0bmZ0X2NvbmNhdF9yYW5nZS5zaCBcXFxcXFxuIFxcdG5mdF9jb25udHJhY2tfaGVscGVyLnNoIFxcXFxcXG4rXFx0bmZ0X2N0X3RpbWVvdXQuc2ggXFxcXFxcbiBcXHRuZnRfZmliLnNoIFxcXFxcXG4gXFx0bmZ0X2ZpYl9uZXh0aG9wLnNoIFxcXFxcXG4gXFx0bmZ0X2Zsb3d0YWJsZS5zaCBcXFxcXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoXFxubmV3IGZpbGUgbW9kZSAxMDA3NTVcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5hNDFkYWQyMzI5Y2M2XFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2hcXG5AQCAtMCwwICsxLDIxNyBAQFxcbisjIS9iaW4vYmFzaFxcbisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuKyNcXG4rIyBGdW5jdGlvbmFsIHRlc3QgZm9yIG5mdGFibGVzIGN0IHRpbWVvdXQgb2JqZWN0cy5cXG4rI1xcbisjIFZlcmlmaWVzIHRoYXQgYSBjdCB0aW1lb3V0IHBvbGljeSBhY3R1YWxseSBjaGFuZ2VzIHRoZSBjb25udHJhY2tcXG4rIyBzdGF0ZS1tYWNoaW5lIHRpbWVvdXQgb2YgdGhlIGNvbm5lY3Rpb25zIGl0IGlzIGF0dGFjaGVkIHRvOlxcbisjXFxuKyMgIDEuIHRlc3RfcG9saWN5X2FwcGxpZWQgICAgLSBhIGNvbm5lY3Rpb24gbWF0Y2hpbmcgYSBcXFwiY3QgdGltZW91dCBzZXRcXFwiIHJ1bGVcXG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldHMgdGhlIHBlci1zdGF0ZSB0aW1lb3V0IGZyb20gdGhlIG5hbWVkXFxuKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3ksIGkuZS4gXFx1MDAzYz0gUE9MSUNZX0VTVEFCX1NFQ1MuXFxuKyNcXG4rIyAgMi4gdGVzdF9kZWZhdWx0X3ByZXNlcnZlZCAtIGEgY29ubmVjdGlvbiBub3QgbWF0Y2hpbmcgYW55IGN0IHRpbWVvdXQgcnVsZVxcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0IEVTVEFCTElTSEVEIHRpbWVvdXQuXFxuKyNcXG4rIyAgMy4gdGVzdF9wb2xpY3lfcmVsb2FkICAgICAtIGFmdGVyIHRoZSB0YWJsZSBpcyBkZWxldGVkIGFuZCByZWxvYWRlZCwgYSBuZXdcXG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gdGhyb3VnaCB0aGUgcnVsZSBzdGlsbCByZWNlaXZlcyB0aGVcXG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeSB0aW1lb3V0IHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0LlxcbisjXFxuKyMgVGhlIHJlbWFpbmluZyBsaWZldGltZSBvZiBhIGZsb3cgaXMgdGhlIHRoaXJkIGZpZWxkIG9mIGEgXFxcImNvbm50cmFjayAtTFxcXCJcXG4rIyBsaW5lOlxcbisjXFxuKyMgICB0Y3AgIDYgIDExNyAgRVNUQUJMSVNIRUQgIHNyYz0xMC4wLjEuMSBkc3Q9MTAuMC4xLjIgc3BvcnQ9Li4uIGRwb3J0PS4uLlxcbisjICAgICAgICAgICBeXl5cXG4rI1xcbisjIFRvcG9sb2d5OiB0d28gbmV0bnMgY29ubmVjdGVkIGJ5IGEgdmV0aCBwYWlyLlxcbisjICAgbnMxICgxMC4wLjEuMS8yNCkgLS12ZXRoLS0gbnMyICgxMC4wLjEuMi8yNClcXG4rIyBUaGUgcnVsZXNldCBpcyBsb2FkZWQgaW4gbnMxLCBzbyBuczEncyBjb25udHJhY2sgdGFibGUgaXMgdXNlZCB0aHJvdWdob3V0LlxcbitcXG4rc291cmNlIGxpYi5zaFxcbitcXG4rY2hlY2t0b29sIFxcXCJuZnQgLS12ZXJzaW9uXFxcIiBcXFwicnVuIHRlc3Qgd2l0aG91dCBuZnRcXFwiXFxuK2NoZWNrdG9vbCBcXFwiY29ubnRyYWNrIC0tdmVyc2lvblxcXCIgXFxcInJ1biB0ZXN0IHdpdGhvdXQgY29ubnRyYWNrXFxcIlxcbitjaGVja3Rvb2wgXFxcInNvY2F0IC1oXFxcIiBcXFwicnVuIHRlc3Qgd2l0aG91dCBzb2NhdFxcXCJcXG4rXFxuKyMgVENQIHBvcnQgY292ZXJlZCBieSB0aGUgY3QgdGltZW91dCBwb2xpY3kuXFxuK1BPUlRfUE9MSUNZPTEyMzQ1XFxuKyMgVENQIHBvcnQgbm90IGNvdmVyZWQgYnkgYW55IHJ1bGU7IHVzZXMgdGhlIGtlcm5lbCBkZWZhdWx0IHRpbWVvdXRzLlxcbitQT1JUX0RFRkFVTFQ9MTIzNDZcXG4rXFxuKyMgRVNUQUJMSVNIRUQgdGltZW91dCBjYXJyaWVkIGJ5IHRoZSBwb2xpY3ksIGluIHNlY29uZHMuIE11c3QgYmUgd2VsbCBiZWxvd1xcbisjIHRoZSBrZXJuZWwgZGVmYXVsdCAoNSBkYXlzKSBzbyB0aGUgdHdvIGNhc2VzIGNhbm5vdCBiZSBjb25mdXNlZC5cXG4rUE9MSUNZX0VTVEFCX1NFQ1M9MTIwXFxuK1xcbityZXQ9MFxcbitcXG4rY2xlYW51cCgpXFxuK3tcXG4rXFx0aXAgbmV0bnMgcGlkcyBcXFwiJG5zMVxcXCIgMlxcdTAwM2UvZGV2L251bGwgfCB4YXJncyAtciBraWxsXFxuK1xcdGlwIG5ldG5zIHBpZHMgXFxcIiRuczJcXFwiIDJcXHUwMDNlL2Rldi9udWxsIHwgeGFyZ3MgLXIga2lsbFxcbitcXHRjbGVhbnVwX2FsbF9uc1xcbit9XFxuK1xcbitsb2FkX3J1bGVzZXQoKVxcbit7XFxuK1xcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIG5mdCAtZiAtIFxcdTAwM2NcXHUwMDNjRU9GXFxuK3RhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdCB7XFxuK1xcdGN0IHRpbWVvdXQgdGNwX3BvbGljeSB7XFxuK1xcdFxcdHByb3RvY29sIHRjcDtcXG4rXFx0XFx0cG9saWN5ID0geyBlc3RhYmxpc2hlZDogJHtQT0xJQ1lfRVNUQUJfU0VDU31zIH07XFxuK1xcdH1cXG4rXFxuK1xcdGNoYWluIG91dHB1dCB7XFxuK1xcdFxcdHR5cGUgZmlsdGVyIGhvb2sgb3V0cHV0IHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGFjY2VwdDtcXG4rXFx0XFx0aXAgZGFkZHIgMTAuMC4xLjIgdGNwIGRwb3J0ICRQT1JUX1BPTElDWSBjdCB0aW1lb3V0IHNldCBcXFwidGNwX3BvbGljeVxcXCJcXG4rXFx0fVxcbit9XFxuK0VPRlxcbit9XFxuK1xcbitsaXN0ZW5lcl9yZWFkeSgpXFxuK3tcXG4rXFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zMlxcXCIgc3MgLWxudCAtbyBcXFwic3BvcnQgPSA6JDFcXFwiIHwgZ3JlcCAtcSBcXFwiJDFcXFwiXFxuK31cXG4rXFxuK2Nvbm5fZXN0YWJsaXNoZWQoKVxcbit7XFxuK1xcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIGNvbm50cmFjayAtTCAtcCB0Y3AgLS1kcG9ydCBcXFwiJDFcXFwiIDJcXHUwMDNlL2Rldi9udWxsIHxcXG4rXFx0XFx0Z3JlcCAtcSBFU1RBQkxJU0hFRFxcbit9XFxuK1xcbisjIFByaW50cyB0aGUgcmVtYWluaW5nIGxpZmV0aW1lLCBpbiBzZWNvbmRzLCBvZiB0aGUgZmlyc3QgRVNUQUJMSVNIRUQgVENQXFxuKyMgZmxvdyBpbiBuczEgbWF0Y2hpbmcgdGhlIGdpdmVuIGRlc3RpbmF0aW9uIHBvcnQuXFxuK2VzdGFibGlzaGVkX3RpbWVvdXQoKVxcbit7XFxuK1xcdGlwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIGNvbm50cmFjayAtTCAtcCB0Y3AgLS1kcG9ydCBcXFwiJDFcXFwiIDJcXHUwMDNlL2Rldi9udWxsIHxcXG4rXFx0XFx0YXdrICcvRVNUQUJMSVNIRUQvIHsgcHJpbnQgJDM7IGV4aXQgfSdcXG4rfVxcbitcXG4rIyBPcGVucyBhIFRDUCBjb25uZWN0aW9uIGZyb20gbnMxIGFuZCBob2xkcyBpdCBvcGVuIGluIHRoZSBiYWNrZ3JvdW5kLlxcbisjIFByaW50cyB0aGUgcGlkIG9mIHRoZSBob2xkZXIgc28gdGhlIGNhbGxlciBjYW4gdGVhciBpdCBkb3duLlxcbitvcGVuX2Nvbm5lY3Rpb24oKVxcbit7XFxuK1xcdCMgc3Rkb3V0L3N0ZGVyciBtdXN0IGJlIHJlZGlyZWN0ZWQsIGVsc2UgdGhlIGJhY2tncm91bmQgam9iIGtlZXBzIHRoZVxcbitcXHQjIGNvbW1hbmQgc3Vic3RpdHV0aW9uIHRoYXQgY2FsbHMgdGhpcyBmdW5jdGlvbiBibG9ja2VkIHVudGlsIGl0IGV4aXRzLlxcbitcXHRpcCBuZXRucyBleGVjIFxcXCIkbnMxXFxcIiBiYXNoIC1jIFxcXCJcXG4rXFx0XFx0ZXhlYyAzXFx1MDAzY1xcdTAwM2UvZGV2L3RjcC8xMC4wLjEuMi8kMSB8fCBleGl0IDFcXG4rXFx0XFx0c2xlZXAgNjBcXG4rXFx0XFxcIiBcXHUwMDNlL2Rldi9udWxsIDJcXHUwMDNlXFx1MDAyNjEgXFx1MDAyNlxcbitcXHRlY2hvICQhXFxuK31cXG4rXFxuK2Nsb3NlX2Nvbm5lY3Rpb24oKVxcbit7XFxuK1xcdGtpbGwgXFxcIiQxXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXHR3YWl0IFxcXCIkMVxcXCIgMlxcdTAwM2UvZGV2L251bGxcXG4rfVxcbitcXG4rIyBBc3NlcnRzIHRoYXQgdGhlIGZsb3cgb24gJDEgaGFzIGEgdGltZW91dCBtYXRjaGluZyBleHBlY3RhdGlvbiAkMiAoXFxcInBvbGljeVxcXCJcXG4rIyBvciBcXFwiZGVmYXVsdFxcXCIpLCB1c2luZyAkMyBhcyB0aGUgdGVzdCBuYW1lLlxcbitjaGVja190aW1lb3V0KClcXG4re1xcbitcXHRsb2NhbCBkcG9ydD0kMSBleHBlY3Q9JDIgbmFtZT0kM1xcbitcXHRsb2NhbCB0dmFsXFxuK1xcbitcXHRpZiAhIGJ1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgY29ubl9lc3RhYmxpc2hlZCBcXFwiJGRwb3J0XFxcIjsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJGQUlMOiAkbmFtZTogY29ubmVjdGlvbiBkaWQgbm90IHJlYWNoIEVTVEFCTElTSEVEXFxcIlxcbitcXHRcXHRyZXQ9MVxcbitcXHRcXHRyZXR1cm5cXG4rXFx0ZmlcXG4rXFxuK1xcdHR2YWw9JChlc3RhYmxpc2hlZF90aW1lb3V0IFxcXCIkZHBvcnRcXFwiKVxcbitcXHRpZiBbIC16IFxcXCIkdHZhbFxcXCIgXTsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJGQUlMOiAkbmFtZTogY291bGQgbm90IHJlYWQgY29ubnRyYWNrIHRpbWVvdXRcXFwiXFxuK1xcdFxcdHJldD0xXFxuK1xcdFxcdHJldHVyblxcbitcXHRmaVxcbitcXG4rXFx0aWYgWyBcXFwiJGV4cGVjdFxcXCIgPSBcXFwicG9saWN5XFxcIiBdOyB0aGVuXFxuK1xcdFxcdGlmIFsgXFxcIiR0dmFsXFxcIiAtbGUgXFxcIiRQT0xJQ1lfRVNUQUJfU0VDU1xcXCIgXTsgdGhlblxcbitcXHRcXHRcXHRlY2hvIFxcXCJQQVNTOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBcXHUwMDNjPSBwb2xpY3kgJHtQT0xJQ1lfRVNUQUJfU0VDU31zXFxcIlxcbitcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdGVjaG8gXFxcIkZBSUw6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zIGV4Y2VlZHMgcG9saWN5ICR7UE9MSUNZX0VTVEFCX1NFQ1N9c1xcXCJcXG4rXFx0XFx0XFx0cmV0PTFcXG4rXFx0XFx0ZmlcXG4rXFx0ZWxzZVxcbitcXHRcXHRpZiBbIFxcXCIkdHZhbFxcXCIgLWd0IFxcXCIkUE9MSUNZX0VTVEFCX1NFQ1NcXFwiIF0gXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0ICAgWyBcXFwiJHR2YWxcXFwiIC1sZSBcXFwiJGRlZmF1bHRfZXN0YWJcXFwiIF07IHRoZW5cXG4rXFx0XFx0XFx0ZWNobyBcXFwiUEFTUzogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgbWF0Y2hlcyBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXFxcIlxcbitcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdGVjaG8gXFxcIkZBSUw6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zIGlzIG5vdCB0aGUgZGVmYXVsdCAke2RlZmF1bHRfZXN0YWJ9c1xcXCJcXG4rXFx0XFx0XFx0cmV0PTFcXG4rXFx0XFx0ZmlcXG4rXFx0ZmlcXG4rfVxcbitcXG4rdHJhcCBjbGVhbnVwIEVYSVRcXG4rXFxuK3NldHVwX25zIG5zMSBuczJcXG4rXFxuK2lmICEgaXAgbGluayBhZGQgdmV0aDAgbmV0bnMgXFxcIiRuczFcXFwiIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDAgbmV0bnMgXFxcIiRuczJcXFwiIFxcXFxcXG4rXFx0XFx0XFx1MDAzZS9kZXYvbnVsbCAyXFx1MDAzZVxcdTAwMjYxOyB0aGVuXFxuK1xcdGVjaG8gXFxcIlNLSVA6IE5vIHZpcnR1YWwgZXRoZXJuZXQgcGFpciBkZXZpY2Ugc3VwcG9ydCBpbiBrZXJuZWxcXFwiXFxuK1xcdGV4aXQgJGtzZnRfc2tpcFxcbitmaVxcbitcXG4raXAgLW5ldCBcXFwiJG5zMVxcXCIgbGluayBzZXQgdmV0aDAgdXBcXG4raXAgLW5ldCBcXFwiJG5zMlxcXCIgbGluayBzZXQgdmV0aDAgdXBcXG4raXAgLW5ldCBcXFwiJG5zMVxcXCIgYWRkciBhZGQgMTAuMC4xLjEvMjQgZGV2IHZldGgwXFxuK2lwIC1uZXQgXFxcIiRuczJcXFwiIGFkZHIgYWRkIDEwLjAuMS4yLzI0IGRldiB2ZXRoMFxcbitcXG4rIyBTWVNURU06XFxcImNhdFxcXCIga2VlcHMgZWFjaCBhY2NlcHRlZCBjb25uZWN0aW9uIG9wZW46IGNhdCBibG9ja3MgcmVhZGluZyB0aGVcXG4rIyBzb2NrZXQsIHNvIHRoZSBmbG93IHN0YXlzIEVTVEFCTElTSEVEIHVudGlsIHRoZSBjbGllbnQgZ29lcyBhd2F5LiBTaW5raW5nXFxuKyMgdG8gL2Rldi9udWxsIGluc3RlYWQgd291bGQgY2xvc2UgaXQgaW1tZWRpYXRlbHkgYW5kIGxhbmQgaW4gQ0xPU0VfV0FJVC5cXG4raXAgbmV0bnMgZXhlYyBcXFwiJG5zMlxcXCIgc29jYXQgVENQLUxJU1RFTjokUE9SVF9QT0xJQ1kscmV1c2VhZGRyLGZvcmsgU1lTVEVNOlxcXCJjYXRcXFwiIFxcdTAwMjZcXHUwMDNlL2Rldi9udWxsIFxcdTAwMjZcXG4raXAgbmV0bnMgZXhlYyBcXFwiJG5zMlxcXCIgc29jYXQgVENQLUxJU1RFTjokUE9SVF9ERUZBVUxULHJldXNlYWRkcixmb3JrIFNZU1RFTTpcXFwiY2F0XFxcIiBcXHUwMDI2XFx1MDAzZS9kZXYvbnVsbCBcXHUwMDI2XFxuK1xcbitidXN5d2FpdCBcXFwiJEJVU1lXQUlUX1RJTUVPVVRcXFwiIGxpc3RlbmVyX3JlYWR5IFxcXCIkUE9SVF9QT0xJQ1lcXFwiXFxuK2J1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgbGlzdGVuZXJfcmVhZHkgXFxcIiRQT1JUX0RFRkFVTFRcXFwiXFxuK1xcbisjIExvYWRpbmcgdGhlIHJ1bGVzZXQgcHVsbHMgaW4gY29ubnRyYWNrLCBzbyB0aGUgc3lzY3RscyBiZWxvdyBleGlzdCBvbmx5XFxuKyMgYWZ0ZXIgdGhpcyBwb2ludC5cXG4raWYgISBsb2FkX3J1bGVzZXQ7IHRoZW5cXG4rXFx0ZWNobyBcXFwiU0tJUDogQ291bGQgbm90IGxvYWQgY3QgdGltZW91dCBydWxlc2V0XFxcIlxcbitcXHRleGl0ICRrc2Z0X3NraXBcXG4rZmlcXG4rXFxuKyMgUmVhZCB0aGUgZGVmYXVsdCByYXRoZXIgdGhhbiBoYXJkY29kaW5nIGl0OiBhIGhvc3QgdGhhdCBsb3dlcmVkXFxuKyMgbmZfY29ubnRyYWNrX3RjcF90aW1lb3V0X2VzdGFibGlzaGVkIG11c3Qgbm90IGZhaWwgdGVzdCAyIHNwdXJpb3VzbHkuXFxuK2RlZmF1bHRfZXN0YWI9JChpcCBuZXRucyBleGVjIFxcXCIkbnMxXFxcIiBcXFxcXFxuK1xcdGNhdCAvcHJvYy9zeXMvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfdGNwX3RpbWVvdXRfZXN0YWJsaXNoZWQgXFxcXFxcbitcXHQyXFx1MDAzZS9kZXYvbnVsbClcXG4rXFxuK2lmIFsgLXogXFxcIiRkZWZhdWx0X2VzdGFiXFxcIiBdOyB0aGVuXFxuK1xcdGVjaG8gXFxcIlNLSVA6IGNvbm50cmFjayB0Y3AgdGltZW91dCBzeXNjdGwgbm90IGF2YWlsYWJsZVxcXCJcXG4rXFx0ZXhpdCAka3NmdF9za2lwXFxuK2ZpXFxuK1xcbitpZiBbIFxcXCIkZGVmYXVsdF9lc3RhYlxcXCIgLWxlIFxcXCIkUE9MSUNZX0VTVEFCX1NFQ1NcXFwiIF07IHRoZW5cXG4rXFx0ZWNobyBcXFwiU0tJUDogZGVmYXVsdCBFU1RBQkxJU0hFRCB0aW1lb3V0ICR7ZGVmYXVsdF9lc3RhYn1zIGlzIG5vdCBhYm92ZSB0aGUgcG9saWN5IHZhbHVlXFxcIlxcbitcXHRleGl0ICRrc2Z0X3NraXBcXG4rZmlcXG4rXFxuKyMgVGVzdCAxOiBhIGZsb3cgbWF0Y2hlZCBieSB0aGUgcnVsZSBnZXRzIHRoZSBwb2xpY3kgdGltZW91dC5cXG4rY29ubl9waWQ9JChvcGVuX2Nvbm5lY3Rpb24gXFxcIiRQT1JUX1BPTElDWVxcXCIpXFxuK2NoZWNrX3RpbWVvdXQgXFxcIiRQT1JUX1BPTElDWVxcXCIgcG9saWN5IHRlc3RfcG9saWN5X2FwcGxpZWRcXG4rY2xvc2VfY29ubmVjdGlvbiBcXFwiJGNvbm5fcGlkXFxcIlxcbitcXG4rIyBUZXN0IDI6IGEgZmxvdyBub3QgbWF0Y2hlZCBieSBhbnkgcnVsZSBrZWVwcyB0aGUga2VybmVsIGRlZmF1bHQuXFxuK2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFxcXCIkUE9SVF9ERUZBVUxUXFxcIilcXG4rY2hlY2tfdGltZW91dCBcXFwiJFBPUlRfREVGQVVMVFxcXCIgZGVmYXVsdCB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkXFxuK2Nsb3NlX2Nvbm5lY3Rpb24gXFxcIiRjb25uX3BpZFxcXCJcXG4rXFxuKyMgVGVzdCAzOiB0aGUgcG9saWN5IHN1cnZpdmVzIGEgZGVsZXRlL3JlbG9hZCBjeWNsZSBvZiB0aGUgd2hvbGUgdGFibGUuXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRuczFcXFwiIGNvbm50cmFjayAtRiAyXFx1MDAzZS9kZXYvbnVsbFxcbitpcCBuZXRucyBleGVjIFxcXCIkbnMxXFxcIiBuZnQgZGVsZXRlIHRhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdFxcbitcXG4raWYgISBsb2FkX3J1bGVzZXQ7IHRoZW5cXG4rXFx0ZWNobyBcXFwiRkFJTDogdGVzdF9wb2xpY3lfcmVsb2FkOiBjb3VsZCBub3QgcmVsb2FkIGN0IHRpbWVvdXQgcnVsZXNldFxcXCJcXG4rXFx0ZXhpdCAka3NmdF9mYWlsXFxuK2ZpXFxuK1xcbitjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiBcXFwiJFBPUlRfUE9MSUNZXFxcIilcXG4rY2hlY2tfdGltZW91dCBcXFwiJFBPUlRfUE9MSUNZXFxcIiBwb2xpY3kgdGVzdF9wb2xpY3lfcmVsb2FkXFxuK2Nsb3NlX2Nvbm5lY3Rpb24gXFxcIiRjb25uX3BpZFxcXCJcXG4rXFxuK2V4aXQgJHJldFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwNzowMjozNi42MDc3MzEyOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjQ5OTUxNDc3NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlcidzIGN0IHRpbWVvdXQgb2JqZWN0cyBhbmQgdXBkYXRlcyB0aGUgTWFrZWZpbGUgdG8gaW5jbHVkZSBpdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkZDMxY2E0YWQwNGFjMGQ0YWY3YjliY2Q0MTAxMWE0M2QzODljYTExXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwNzowMjozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlXG5pbmRleCBmODhkZDRlZjhkMjY0Li4zOTEwMWFmNWQ4NGExIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9NYWtlZmlsZVxuQEAgLTI1LDYgKzI1LDcgQEAgVEVTVF9QUk9HUyA6PSBcXFxuIFx0bmZ0X2F1ZGl0LnNoIFxcXG4gXHRuZnRfY29uY2F0X3JhbmdlLnNoIFxcXG4gXHRuZnRfY29ubnRyYWNrX2hlbHBlci5zaCBcXFxuK1x0bmZ0X2N0X3RpbWVvdXQuc2ggXFxcbiBcdG5mdF9maWIuc2ggXFxcbiBcdG5mdF9maWJfbmV4dGhvcC5zaCBcXFxuIFx0bmZ0X2Zsb3d0YWJsZS5zaCBcXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9uZXRmaWx0ZXIvbmZ0X2N0X3RpbWVvdXQuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoXG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYTQxZGFkMjMyOWNjNlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L25ldGZpbHRlci9uZnRfY3RfdGltZW91dC5zaFxuQEAgLTAsMCArMSwyMTcgQEBcbisjIS9iaW4vYmFzaFxuKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbisjXG4rIyBGdW5jdGlvbmFsIHRlc3QgZm9yIG5mdGFibGVzIGN0IHRpbWVvdXQgb2JqZWN0cy5cbisjXG4rIyBWZXJpZmllcyB0aGF0IGEgY3QgdGltZW91dCBwb2xpY3kgYWN0dWFsbHkgY2hhbmdlcyB0aGUgY29ubnRyYWNrXG4rIyBzdGF0ZS1tYWNoaW5lIHRpbWVvdXQgb2YgdGhlIGNvbm5lY3Rpb25zIGl0IGlzIGF0dGFjaGVkIHRvOlxuKyNcbisjICAxLiB0ZXN0X3BvbGljeV9hcHBsaWVkICAgIC0gYSBjb25uZWN0aW9uIG1hdGNoaW5nIGEgXCJjdCB0aW1lb3V0IHNldFwiIHJ1bGVcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cyB0aGUgcGVyLXN0YXRlIHRpbWVvdXQgZnJvbSB0aGUgbmFtZWRcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LCBpLmUuIFx1MDAzYz0gUE9MSUNZX0VTVEFCX1NFQ1MuXG4rI1xuKyMgIDIuIHRlc3RfZGVmYXVsdF9wcmVzZXJ2ZWQgLSBhIGNvbm5lY3Rpb24gbm90IG1hdGNoaW5nIGFueSBjdCB0aW1lb3V0IHJ1bGVcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0IEVTVEFCTElTSEVEIHRpbWVvdXQuXG4rI1xuKyMgIDMuIHRlc3RfcG9saWN5X3JlbG9hZCAgICAgLSBhZnRlciB0aGUgdGFibGUgaXMgZGVsZXRlZCBhbmQgcmVsb2FkZWQsIGEgbmV3XG4rIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gdGhyb3VnaCB0aGUgcnVsZSBzdGlsbCByZWNlaXZlcyB0aGVcbisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5IHRpbWVvdXQgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQuXG4rI1xuKyMgVGhlIHJlbWFpbmluZyBsaWZldGltZSBvZiBhIGZsb3cgaXMgdGhlIHRoaXJkIGZpZWxkIG9mIGEgXCJjb25udHJhY2sgLUxcIlxuKyMgbGluZTpcbisjXG4rIyAgIHRjcCAgNiAgMTE3ICBFU1RBQkxJU0hFRCAgc3JjPTEwLjAuMS4xIGRzdD0xMC4wLjEuMiBzcG9ydD0uLi4gZHBvcnQ9Li4uXG4rIyAgICAgICAgICAgXl5eXG4rI1xuKyMgVG9wb2xvZ3k6IHR3byBuZXRucyBjb25uZWN0ZWQgYnkgYSB2ZXRoIHBhaXIuXG4rIyAgIG5zMSAoMTAuMC4xLjEvMjQpIC0tdmV0aC0tIG5zMiAoMTAuMC4xLjIvMjQpXG4rIyBUaGUgcnVsZXNldCBpcyBsb2FkZWQgaW4gbnMxLCBzbyBuczEncyBjb25udHJhY2sgdGFibGUgaXMgdXNlZCB0aHJvdWdob3V0LlxuK1xuK3NvdXJjZSBsaWIuc2hcbitcbitjaGVja3Rvb2wgXCJuZnQgLS12ZXJzaW9uXCIgXCJydW4gdGVzdCB3aXRob3V0IG5mdFwiXG4rY2hlY2t0b29sIFwiY29ubnRyYWNrIC0tdmVyc2lvblwiIFwicnVuIHRlc3Qgd2l0aG91dCBjb25udHJhY2tcIlxuK2NoZWNrdG9vbCBcInNvY2F0IC1oXCIgXCJydW4gdGVzdCB3aXRob3V0IHNvY2F0XCJcbitcbisjIFRDUCBwb3J0IGNvdmVyZWQgYnkgdGhlIGN0IHRpbWVvdXQgcG9saWN5LlxuK1BPUlRfUE9MSUNZPTEyMzQ1XG4rIyBUQ1AgcG9ydCBub3QgY292ZXJlZCBieSBhbnkgcnVsZTsgdXNlcyB0aGUga2VybmVsIGRlZmF1bHQgdGltZW91dHMuXG4rUE9SVF9ERUZBVUxUPTEyMzQ2XG4rXG4rIyBFU1RBQkxJU0hFRCB0aW1lb3V0IGNhcnJpZWQgYnkgdGhlIHBvbGljeSwgaW4gc2Vjb25kcy4gTXVzdCBiZSB3ZWxsIGJlbG93XG4rIyB0aGUga2VybmVsIGRlZmF1bHQgKDUgZGF5cykgc28gdGhlIHR3byBjYXNlcyBjYW5ub3QgYmUgY29uZnVzZWQuXG4rUE9MSUNZX0VTVEFCX1NFQ1M9MTIwXG4rXG4rcmV0PTBcbitcbitjbGVhbnVwKClcbit7XG4rXHRpcCBuZXRucyBwaWRzIFwiJG5zMVwiIDJcdTAwM2UvZGV2L251bGwgfCB4YXJncyAtciBraWxsXG4rXHRpcCBuZXRucyBwaWRzIFwiJG5zMlwiIDJcdTAwM2UvZGV2L251bGwgfCB4YXJncyAtciBraWxsXG4rXHRjbGVhbnVwX2FsbF9uc1xuK31cbitcbitsb2FkX3J1bGVzZXQoKVxuK3tcbitcdGlwIG5ldG5zIGV4ZWMgXCIkbnMxXCIgbmZ0IC1mIC0gXHUwMDNjXHUwMDNjRU9GXG4rdGFibGUgaXAgY3RfdGltZW91dF90ZXN0IHtcbitcdGN0IHRpbWVvdXQgdGNwX3BvbGljeSB7XG4rXHRcdHByb3RvY29sIHRjcDtcbitcdFx0cG9saWN5ID0geyBlc3RhYmxpc2hlZDogJHtQT0xJQ1lfRVNUQUJfU0VDU31zIH07XG4rXHR9XG4rXG4rXHRjaGFpbiBvdXRwdXQge1xuK1x0XHR0eXBlIGZpbHRlciBob29rIG91dHB1dCBwcmlvcml0eSBmaWx0ZXI7IHBvbGljeSBhY2NlcHQ7XG4rXHRcdGlwIGRhZGRyIDEwLjAuMS4yIHRjcCBkcG9ydCAkUE9SVF9QT0xJQ1kgY3QgdGltZW91dCBzZXQgXCJ0Y3BfcG9saWN5XCJcbitcdH1cbit9XG4rRU9GXG4rfVxuK1xuK2xpc3RlbmVyX3JlYWR5KClcbit7XG4rXHRpcCBuZXRucyBleGVjIFwiJG5zMlwiIHNzIC1sbnQgLW8gXCJzcG9ydCA9IDokMVwiIHwgZ3JlcCAtcSBcIiQxXCJcbit9XG4rXG4rY29ubl9lc3RhYmxpc2hlZCgpXG4re1xuK1x0aXAgbmV0bnMgZXhlYyBcIiRuczFcIiBjb25udHJhY2sgLUwgLXAgdGNwIC0tZHBvcnQgXCIkMVwiIDJcdTAwM2UvZGV2L251bGwgfFxuK1x0XHRncmVwIC1xIEVTVEFCTElTSEVEXG4rfVxuK1xuKyMgUHJpbnRzIHRoZSByZW1haW5pbmcgbGlmZXRpbWUsIGluIHNlY29uZHMsIG9mIHRoZSBmaXJzdCBFU1RBQkxJU0hFRCBUQ1BcbisjIGZsb3cgaW4gbnMxIG1hdGNoaW5nIHRoZSBnaXZlbiBkZXN0aW5hdGlvbiBwb3J0LlxuK2VzdGFibGlzaGVkX3RpbWVvdXQoKVxuK3tcbitcdGlwIG5ldG5zIGV4ZWMgXCIkbnMxXCIgY29ubnRyYWNrIC1MIC1wIHRjcCAtLWRwb3J0IFwiJDFcIiAyXHUwMDNlL2Rldi9udWxsIHxcbitcdFx0YXdrICcvRVNUQUJMSVNIRUQvIHsgcHJpbnQgJDM7IGV4aXQgfSdcbit9XG4rXG4rIyBPcGVucyBhIFRDUCBjb25uZWN0aW9uIGZyb20gbnMxIGFuZCBob2xkcyBpdCBvcGVuIGluIHRoZSBiYWNrZ3JvdW5kLlxuKyMgUHJpbnRzIHRoZSBwaWQgb2YgdGhlIGhvbGRlciBzbyB0aGUgY2FsbGVyIGNhbiB0ZWFyIGl0IGRvd24uXG4rb3Blbl9jb25uZWN0aW9uKClcbit7XG4rXHQjIHN0ZG91dC9zdGRlcnIgbXVzdCBiZSByZWRpcmVjdGVkLCBlbHNlIHRoZSBiYWNrZ3JvdW5kIGpvYiBrZWVwcyB0aGVcbitcdCMgY29tbWFuZCBzdWJzdGl0dXRpb24gdGhhdCBjYWxscyB0aGlzIGZ1bmN0aW9uIGJsb2NrZWQgdW50aWwgaXQgZXhpdHMuXG4rXHRpcCBuZXRucyBleGVjIFwiJG5zMVwiIGJhc2ggLWMgXCJcbitcdFx0ZXhlYyAzXHUwMDNjXHUwMDNlL2Rldi90Y3AvMTAuMC4xLjIvJDEgfHwgZXhpdCAxXG4rXHRcdHNsZWVwIDYwXG4rXHRcIiBcdTAwM2UvZGV2L251bGwgMlx1MDAzZVx1MDAyNjEgXHUwMDI2XG4rXHRlY2hvICQhXG4rfVxuK1xuK2Nsb3NlX2Nvbm5lY3Rpb24oKVxuK3tcbitcdGtpbGwgXCIkMVwiIDJcdTAwM2UvZGV2L251bGxcbitcdHdhaXQgXCIkMVwiIDJcdTAwM2UvZGV2L251bGxcbit9XG4rXG4rIyBBc3NlcnRzIHRoYXQgdGhlIGZsb3cgb24gJDEgaGFzIGEgdGltZW91dCBtYXRjaGluZyBleHBlY3RhdGlvbiAkMiAoXCJwb2xpY3lcIlxuKyMgb3IgXCJkZWZhdWx0XCIpLCB1c2luZyAkMyBhcyB0aGUgdGVzdCBuYW1lLlxuK2NoZWNrX3RpbWVvdXQoKVxuK3tcbitcdGxvY2FsIGRwb3J0PSQxIGV4cGVjdD0kMiBuYW1lPSQzXG4rXHRsb2NhbCB0dmFsXG4rXG4rXHRpZiAhIGJ1c3l3YWl0IFwiJEJVU1lXQUlUX1RJTUVPVVRcIiBjb25uX2VzdGFibGlzaGVkIFwiJGRwb3J0XCI7IHRoZW5cbitcdFx0ZWNobyBcIkZBSUw6ICRuYW1lOiBjb25uZWN0aW9uIGRpZCBub3QgcmVhY2ggRVNUQUJMSVNIRURcIlxuK1x0XHRyZXQ9MVxuK1x0XHRyZXR1cm5cbitcdGZpXG4rXG4rXHR0dmFsPSQoZXN0YWJsaXNoZWRfdGltZW91dCBcIiRkcG9ydFwiKVxuK1x0aWYgWyAteiBcIiR0dmFsXCIgXTsgdGhlblxuK1x0XHRlY2hvIFwiRkFJTDogJG5hbWU6IGNvdWxkIG5vdCByZWFkIGNvbm50cmFjayB0aW1lb3V0XCJcbitcdFx0cmV0PTFcbitcdFx0cmV0dXJuXG4rXHRmaVxuK1xuK1x0aWYgWyBcIiRleHBlY3RcIiA9IFwicG9saWN5XCIgXTsgdGhlblxuK1x0XHRpZiBbIFwiJHR2YWxcIiAtbGUgXCIkUE9MSUNZX0VTVEFCX1NFQ1NcIiBdOyB0aGVuXG4rXHRcdFx0ZWNobyBcIlBBU1M6ICRuYW1lOiB0aW1lb3V0ICR7dHZhbH1zIFx1MDAzYz0gcG9saWN5ICR7UE9MSUNZX0VTVEFCX1NFQ1N9c1wiXG4rXHRcdGVsc2VcbitcdFx0XHRlY2hvIFwiRkFJTDogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgZXhjZWVkcyBwb2xpY3kgJHtQT0xJQ1lfRVNUQUJfU0VDU31zXCJcbitcdFx0XHRyZXQ9MVxuK1x0XHRmaVxuK1x0ZWxzZVxuK1x0XHRpZiBbIFwiJHR2YWxcIiAtZ3QgXCIkUE9MSUNZX0VTVEFCX1NFQ1NcIiBdIFx1MDAyNlx1MDAyNlxuK1x0XHQgICBbIFwiJHR2YWxcIiAtbGUgXCIkZGVmYXVsdF9lc3RhYlwiIF07IHRoZW5cbitcdFx0XHRlY2hvIFwiUEFTUzogJG5hbWU6IHRpbWVvdXQgJHt0dmFsfXMgbWF0Y2hlcyBkZWZhdWx0ICR7ZGVmYXVsdF9lc3RhYn1zXCJcbitcdFx0ZWxzZVxuK1x0XHRcdGVjaG8gXCJGQUlMOiAkbmFtZTogdGltZW91dCAke3R2YWx9cyBpcyBub3QgdGhlIGRlZmF1bHQgJHtkZWZhdWx0X2VzdGFifXNcIlxuK1x0XHRcdHJldD0xXG4rXHRcdGZpXG4rXHRmaVxuK31cbitcbit0cmFwIGNsZWFudXAgRVhJVFxuK1xuK3NldHVwX25zIG5zMSBuczJcbitcbitpZiAhIGlwIGxpbmsgYWRkIHZldGgwIG5ldG5zIFwiJG5zMVwiIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDAgbmV0bnMgXCIkbnMyXCIgXFxcbitcdFx0XHUwMDNlL2Rldi9udWxsIDJcdTAwM2VcdTAwMjYxOyB0aGVuXG4rXHRlY2hvIFwiU0tJUDogTm8gdmlydHVhbCBldGhlcm5ldCBwYWlyIGRldmljZSBzdXBwb3J0IGluIGtlcm5lbFwiXG4rXHRleGl0ICRrc2Z0X3NraXBcbitmaVxuK1xuK2lwIC1uZXQgXCIkbnMxXCIgbGluayBzZXQgdmV0aDAgdXBcbitpcCAtbmV0IFwiJG5zMlwiIGxpbmsgc2V0IHZldGgwIHVwXG4raXAgLW5ldCBcIiRuczFcIiBhZGRyIGFkZCAxMC4wLjEuMS8yNCBkZXYgdmV0aDBcbitpcCAtbmV0IFwiJG5zMlwiIGFkZHIgYWRkIDEwLjAuMS4yLzI0IGRldiB2ZXRoMFxuK1xuKyMgU1lTVEVNOlwiY2F0XCIga2VlcHMgZWFjaCBhY2NlcHRlZCBjb25uZWN0aW9uIG9wZW46IGNhdCBibG9ja3MgcmVhZGluZyB0aGVcbisjIHNvY2tldCwgc28gdGhlIGZsb3cgc3RheXMgRVNUQUJMSVNIRUQgdW50aWwgdGhlIGNsaWVudCBnb2VzIGF3YXkuIFNpbmtpbmdcbisjIHRvIC9kZXYvbnVsbCBpbnN0ZWFkIHdvdWxkIGNsb3NlIGl0IGltbWVkaWF0ZWx5IGFuZCBsYW5kIGluIENMT1NFX1dBSVQuXG4raXAgbmV0bnMgZXhlYyBcIiRuczJcIiBzb2NhdCBUQ1AtTElTVEVOOiRQT1JUX1BPTElDWSxyZXVzZWFkZHIsZm9yayBTWVNURU06XCJjYXRcIiBcdTAwMjZcdTAwM2UvZGV2L251bGwgXHUwMDI2XG4raXAgbmV0bnMgZXhlYyBcIiRuczJcIiBzb2NhdCBUQ1AtTElTVEVOOiRQT1JUX0RFRkFVTFQscmV1c2VhZGRyLGZvcmsgU1lTVEVNOlwiY2F0XCIgXHUwMDI2XHUwMDNlL2Rldi9udWxsIFx1MDAyNlxuK1xuK2J1c3l3YWl0IFwiJEJVU1lXQUlUX1RJTUVPVVRcIiBsaXN0ZW5lcl9yZWFkeSBcIiRQT1JUX1BPTElDWVwiXG4rYnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIGxpc3RlbmVyX3JlYWR5IFwiJFBPUlRfREVGQVVMVFwiXG4rXG4rIyBMb2FkaW5nIHRoZSBydWxlc2V0IHB1bGxzIGluIGNvbm50cmFjaywgc28gdGhlIHN5c2N0bHMgYmVsb3cgZXhpc3Qgb25seVxuKyMgYWZ0ZXIgdGhpcyBwb2ludC5cbitpZiAhIGxvYWRfcnVsZXNldDsgdGhlblxuK1x0ZWNobyBcIlNLSVA6IENvdWxkIG5vdCBsb2FkIGN0IHRpbWVvdXQgcnVsZXNldFwiXG4rXHRleGl0ICRrc2Z0X3NraXBcbitmaVxuK1xuKyMgUmVhZCB0aGUgZGVmYXVsdCByYXRoZXIgdGhhbiBoYXJkY29kaW5nIGl0OiBhIGhvc3QgdGhhdCBsb3dlcmVkXG4rIyBuZl9jb25udHJhY2tfdGNwX3RpbWVvdXRfZXN0YWJsaXNoZWQgbXVzdCBub3QgZmFpbCB0ZXN0IDIgc3B1cmlvdXNseS5cbitkZWZhdWx0X2VzdGFiPSQoaXAgbmV0bnMgZXhlYyBcIiRuczFcIiBcXFxuK1x0Y2F0IC9wcm9jL3N5cy9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja190Y3BfdGltZW91dF9lc3RhYmxpc2hlZCBcXFxuK1x0Mlx1MDAzZS9kZXYvbnVsbClcbitcbitpZiBbIC16IFwiJGRlZmF1bHRfZXN0YWJcIiBdOyB0aGVuXG4rXHRlY2hvIFwiU0tJUDogY29ubnRyYWNrIHRjcCB0aW1lb3V0IHN5c2N0bCBub3QgYXZhaWxhYmxlXCJcbitcdGV4aXQgJGtzZnRfc2tpcFxuK2ZpXG4rXG4raWYgWyBcIiRkZWZhdWx0X2VzdGFiXCIgLWxlIFwiJFBPTElDWV9FU1RBQl9TRUNTXCIgXTsgdGhlblxuK1x0ZWNobyBcIlNLSVA6IGRlZmF1bHQgRVNUQUJMSVNIRUQgdGltZW91dCAke2RlZmF1bHRfZXN0YWJ9cyBpcyBub3QgYWJvdmUgdGhlIHBvbGljeSB2YWx1ZVwiXG4rXHRleGl0ICRrc2Z0X3NraXBcbitmaVxuK1xuKyMgVGVzdCAxOiBhIGZsb3cgbWF0Y2hlZCBieSB0aGUgcnVsZSBnZXRzIHRoZSBwb2xpY3kgdGltZW91dC5cbitjb25uX3BpZD0kKG9wZW5fY29ubmVjdGlvbiBcIiRQT1JUX1BPTElDWVwiKVxuK2NoZWNrX3RpbWVvdXQgXCIkUE9SVF9QT0xJQ1lcIiBwb2xpY3kgdGVzdF9wb2xpY3lfYXBwbGllZFxuK2Nsb3NlX2Nvbm5lY3Rpb24gXCIkY29ubl9waWRcIlxuK1xuKyMgVGVzdCAyOiBhIGZsb3cgbm90IG1hdGNoZWQgYnkgYW55IHJ1bGUga2VlcHMgdGhlIGtlcm5lbCBkZWZhdWx0LlxuK2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFwiJFBPUlRfREVGQVVMVFwiKVxuK2NoZWNrX3RpbWVvdXQgXCIkUE9SVF9ERUZBVUxUXCIgZGVmYXVsdCB0ZXN0X2RlZmF1bHRfcHJlc2VydmVkXG4rY2xvc2VfY29ubmVjdGlvbiBcIiRjb25uX3BpZFwiXG4rXG4rIyBUZXN0IDM6IHRoZSBwb2xpY3kgc3Vydml2ZXMgYSBkZWxldGUvcmVsb2FkIGN5Y2xlIG9mIHRoZSB3aG9sZSB0YWJsZS5cbitpcCBuZXRucyBleGVjIFwiJG5zMVwiIGNvbm50cmFjayAtRiAyXHUwMDNlL2Rldi9udWxsXG4raXAgbmV0bnMgZXhlYyBcIiRuczFcIiBuZnQgZGVsZXRlIHRhYmxlIGlwIGN0X3RpbWVvdXRfdGVzdFxuK1xuK2lmICEgbG9hZF9ydWxlc2V0OyB0aGVuXG4rXHRlY2hvIFwiRkFJTDogdGVzdF9wb2xpY3lfcmVsb2FkOiBjb3VsZCBub3QgcmVsb2FkIGN0IHRpbWVvdXQgcnVsZXNldFwiXG4rXHRleGl0ICRrc2Z0X2ZhaWxcbitmaVxuK1xuK2Nvbm5fcGlkPSQob3Blbl9jb25uZWN0aW9uIFwiJFBPUlRfUE9MSUNZXCIpXG4rY2hlY2tfdGltZW91dCBcIiRQT1JUX1BPTElDWVwiIHBvbGljeSB0ZXN0X3BvbGljeV9yZWxvYWRcbitjbG9zZV9jb25uZWN0aW9uIFwiJGNvbm5fcGlkXCJcbitcbitleGl0ICRyZXRcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDA3OjAyOjM2LjYwNzczMjk2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk5NTA5MTcyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldGZpbHRlciBDVCBUaW1lb3V0IFNlbGZ0ZXN0IFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIHByZXNlbnRlZCB3aXRoIGEgcGF0Y2ggYWRkaW5nIGEgbmV3IHNlbGZ0ZXN0IGZvciBuZXRmaWx0ZXIncyBgY3QgdGltZW91dGAgb2JqZWN0cy4gSXQncyBsb2NhdGVkIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbmV0ZmlsdGVyL25mdF9jdF90aW1lb3V0LnNoYCwgYW5kIHRoZSBhc3NvY2lhdGVkIGBNYWtlZmlsZWAgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGhhcyBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgaXQuIEludGVyZXN0aW5nLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcGFydDogdGhlcmUncyBhYnNvbHV0ZWx5IG5vIG1vZGlmaWNhdGlvbiB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlIGl0c2VsZi4gTm8gQyBmaWxlcywgbm8gS2NvbmZpZyBjaGFuZ2VzLCBubyBoZWFkZXIgZmlsZSBhbHRlcmF0aW9ucy4gVGhpcyBpcyBwdXJlbHkgYW4gYWRkaXRpb24gdG8gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJIGV4cGVjdGVkLlxuXG5UaGVyZWZvcmUsIHRoaXMgcGF0Y2ggZG9lcyAqbm90KiBpbnRyb2R1Y2UgY2hhbmdlcyB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZyB0aGUga2VybmVsLiBJdCdzIGEgc2VsZi10ZXN0OyBpdCB2ZXJpZmllcyB0aGUgYmVoYXZpb3Igb2YgZXhpc3RpbmcgY29kZSwgbm90IGludHJvZHVjZXMgbmV3IGZ1bmN0aW9uYWxpdHkgdGhhdCBjb3VsZCBiZSBhIHZlY3RvciBmb3IgYnVncy5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBkaWZmIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4uLiBZZXMsIGNvbmZpcm1lZC4gVGhlIHBhdGNoIG9ubHkgdG91Y2hlcyB0aGUgYE1ha2VmaWxlYCBhbmQgYWRkcyB0aGUgbmV3IHNoZWxsIHNjcmlwdC4gTm8ga2VybmVsIGNvZGUgaXMgbW9kaWZpZWQuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQuIEknbGwgZ28gYWhlYWQgYW5kIGNhbGwgYHNldC1yZXN1bHRzYCB3aXRoIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGNhc2U7IHRlc3QgYWRkaXRpb25zIGRvIG5vdCB3YXJyYW50IGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MjcsIk91dHB1dFRva2VucyI6NjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwNzowMjo0MS42MDI4NDk2MzhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBzZWxmdGVzdCBzY3JpcHQgZm9yIG5ldGZpbHRlcidzIGN0IHRpbWVvdXQgb2JqZWN0cyBhbmQgdXBkYXRlcyB0aGUgTWFrZWZpbGUgdG8gaW5jbHVkZSBpdC4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSBuZXcgc2VsZnRlc3Qgc2NyaXB0IGZvciBuZXRmaWx0ZXIncyBjdCB0aW1lb3V0IG9iamVjdHMgYW5kIHVwZGF0ZXMgdGhlIE1ha2VmaWxlIHRvIGluY2x1ZGUgaXQuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHNvdXJjZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8ml4[1] Phase: Running StartedAt: 2026-08-05 07:02:53 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8ml4[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-05 07:02:53 +0000 UTC FinishedAt: 2026-08-05 07:02:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}