Name: series-workflowlh28c Phase: Failed StartedAt: 2026-08-25 11:32:27 +0000 UTC FinishedAt: 2026-08-25 11:35:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlh28c[0] Phase: Succeeded StartedAt: 2026-08-25 11:32:27 +0000 UTC FinishedAt: 2026-08-25 11:34:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlh28c[0].run-triage Phase: Succeeded StartedAt: 2026-08-25 11:32:27 +0000 UTC FinishedAt: 2026-08-25 11:34: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+CgkJCTx0ZD4yMDI2LzA4LzI1IDExOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMzNkYmUwMjkxMDk5YjhiZTdjYmRiMjc5YjExNGM5MTQ4OGJkZTI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMTE6MzQ6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdGVzdHMvdGhyb3RsLzAwOSBiL3Rlc3RzL3Rocm90bC8wMDlcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kMzA0MzAxMTc0ZGZkXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy90aHJvdGwvMDA5XG5AQCAtMCwwICYjNDM7MSw2NCBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MzsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMy4wJiM0MztcbiYjNDM7IyBDb3B5cmlnaHQgKEMpIDIwMjYgVGFvIEN1aSBcdTAwM2NjdWl0YW9Aa3lsaW5vcy5jblx1MDAzZVxuJiM0MzsjXG4mIzQzOyMgUmVncmVzc2lvbiB0ZXN0IGZvciByZW1vdmluZyBhIGNncm91cCB3aGlsZSBJTyBpcyBzdGlsbCBxdWV1ZWQgaW4gdGhlXG4mIzQzOyMgYmxrLXRocm90dGxlIHF1ZXVlLiAgVGhlIHF1ZXVlZCBiaW9zIG11c3QgYmUgZmx1c2hlZCB3aXRob3V0IGFueVxuJiM0MzsjIGJsay1jZ3JvdXAgb3IgYmxrLXRocm90dGxlIHdhcm5pbmcuXG4mIzQzO1xuJiM0MzsuIHRlc3RzL3Rocm90bC9yY1xuJiM0MztcbiYjNDM7REVTQ1JJUFRJT049XCYjMzQ7cXVldWVkIHRocm90dGxlZCBJTyB2cy4gY2dyb3VwIHJlbW92YWwgbXVzdCBub3Qgd2FyblwmIzM0O1xuJiM0MztRVUlDSz0xXG4mIzQzO1xuJiM0MztzZXRfY29uZGl0aW9ucygpIHtcbiYjNDM7XHRfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSBcJiMzNDskQFwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzt0ZXN0KCkge1xuJiM0MztcdGVjaG8gXCYjMzQ7UnVubmluZyAke1RFU1RfTkFNRX1cJiMzNDtcbiYjNDM7XG4mIzQzO1x0aWYgISBfc2V0X3VwX3Rocm90bDsgdGhlblxuJiM0MztcdFx0cmV0dXJuIDFcbiYjNDM7XHRmaVxuJiM0MztcbiYjNDM7XHQjIFRocm90dGxlIHJlYWRzIHNvIHRoZSBiaW8gcXVldWVzLlxuJiM0MztcdF90aHJvdGxfc2V0X2xpbWl0cyByYnBzPTQwOTZcbiYjNDM7XG4mIzQzO1x0KFxuJiM0MztcdFx0ZWNobyBcJiMzNDskQkFTSFBJRFwmIzM0OyBcdTAwM2UgXCYjMzQ7JENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jc1wmIzM0O1xuJiM0MztcdFx0ZXhlYyBkZCBpZj0vZGV2L1wmIzM0OyRUSFJPVExfREVWXCYjMzQ7IG9mPS9kZXYvbnVsbCBicz0xTSBjb3VudD0xIHN0YXR1cz1ub25lXG4mIzQzO1x0KSBcdTAwMjZcbiYjNDM7XHRsb2NhbCBpb19waWQ9JCFcbiYjNDM7XHRzbGVlcCAyXG4mIzQzO1xuJiM0MztcdCMgTW92ZSB0aGUgcmVhZGVyIHRvIHRoZSBjZ3JvdXAyIHJvb3Qgc28gdGhlIHRocm90dGxlIGNncm91cCBjYW4gYmVcbiYjNDM7XHQjIHJlbW92ZWQgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuICAkQ0dST1VQMl9ESVIgaGFzICYjNDM7aW8gaW4gaXRzXG4mIzQzO1x0IyBzdWJ0cmVlX2NvbnRyb2wgYW5kIHNvIGNhbm5vdCBob2xkIHByb2Nlc3Nlcy5cbiYjNDM7XHRlY2hvIFwmIzM0OyRpb19waWRcJiMzNDsgXHUwMDNlIFwmIzM0OyQoX2Nncm91cDJfYmFzZV9kaXIpL2Nncm91cC5wcm9jc1wmIzM0O1xuJiM0MztcbiYjNDM7XHQjIFJlbW92ZSB0aGUgdGhyb3R0bGUgY2dyb3VwIHdoaWxlIGl0cyBiaW8gaXMgc3RpbGwgcXVldWVkLlxuJiM0MztcdHJtZGlyIFwmIzM0OyRDR1JPVVAyX0RJUi8kVEhST1RMX0RJUlwmIzM0O1xuJiM0MztcdHNsZWVwIDNcbiYjNDM7XG4mIzQzO1x0a2lsbCBcJiMzNDskaW9fcGlkXCYjMzQ7IDJcdTAwM2UvZGV2L251bGxcbiYjNDM7XHR3YWl0IFwmIzM0OyRpb19waWRcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcbiYjNDM7XHQjICRUSFJPVExfRElSIGlzIGFscmVhZHkgZ29uZTsgdGVhciBkb3duIHRoZSByZXN0IGJ5IGhhbmQuXG4mIzQzO1x0aWYgW1sgJFRIUk9UTF9DTEVBUl9DR1JPVVAyX0RJUl9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cbiYjNDM7XHRcdGVjaG8gXCYjMzQ7LWlvXCYjMzQ7IFx1MDAzZSBcJiMzNDskQ0dST1VQMl9ESVIvY2dyb3VwLnN1YnRyZWVfY29udHJvbFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1x0aWYgW1sgJFRIUk9UTF9DTEVBUl9CQVNFX1NVQlRSRUVfQ09OVFJPTF9JTyA9PSB0cnVlIF1dOyB0aGVuXG4mIzQzO1x0XHRlY2hvIFwmIzM0Oy1pb1wmIzM0OyBcdTAwM2UgXCYjMzQ7JChfY2dyb3VwMl9iYXNlX2RpcikvY2dyb3VwLnN1YnRyZWVfY29udHJvbFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1x0X2V4aXRfY2dyb3VwMlxuJiM0MztcdF9leGl0X3Rocm90bF9ibGtkZXZcbiYjNDM7XG4mIzQzO1x0aWYgX2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1xRSBcJiMzNDtXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKVwmIzM0OzsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtXQVJOSU5HOiBibGtjZy9ibGstdGhyb3R0bGUgd2FybmluZyBvbiBjZ3JvdXAgcmVtb3ZhbCB3aXRoIHF1ZXVlZCBJT1wmIzM0O1xuJiM0MztcdFx0X2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1BIDEyIC1FIFwmIzM0O1dBUk5JTkc6LiooYmxrLWNncm91cHxibGstdGhyb3R0bGUpXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdFx1MDAzZVx1MDAzZSBcJiMzNDskRlVMTFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1xuJiM0MztcdGVjaG8gXCYjMzQ7VGVzdCBjb21wbGV0ZVwmIzM0O1xuJiM0Mzt9XG5kaWZmIC0tZ2l0IGEvdGVzdHMvdGhyb3RsLzAwOS5vdXQgYi90ZXN0cy90aHJvdGwvMDA5Lm91dFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlNjc1ZGQ5YTc1NDZcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL3Rlc3RzL3Rocm90bC8wMDkub3V0XG5AQCAtMCwwICYjNDM7MSwyIEBAXG4mIzQzO1J1bm5pbmcgdGhyb3RsLzAwOVxuJiM0MztUZXN0IGNvbXBsZXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRlc3Qgc2NyaXB0IGFuZCBpdHMgZXhwZWN0ZWQgb3V0cHV0IHRvIGEgdGVzdCBzdWl0ZSAobGlrZWx5IGJsa3Rlc3RzKS4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgYW5kIHRoZXJlZm9yZSBoYXMgbm8gZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTMzZGJlMDI5MTA5OWI4YmU3Y2JkYjI3OWIxMTRjOTE0ODhiZGUyNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDI1IDExOjM0OjM0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGhyb3RsLzAwOSBiL3Rlc3RzL3Rocm90bC8wMDkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDMwNDMwMTE3NGRmZAotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL3Rlc3RzL3Rocm90bC8wMDkKQEAgLTAsMCAmIzQzOzEsNjQgQEAKJiM0MzsjIS9iaW4vYmFzaAomIzQzOyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0zLjAmIzQzOwomIzQzOyMgQ29weXJpZ2h0IChDKSAyMDI2IFRhbyBDdWkgJmx0O2N1aXRhb0BreWxpbm9zLmNuJmd0OwomIzQzOyMKJiM0MzsjIFJlZ3Jlc3Npb24gdGVzdCBmb3IgcmVtb3ZpbmcgYSBjZ3JvdXAgd2hpbGUgSU8gaXMgc3RpbGwgcXVldWVkIGluIHRoZQomIzQzOyMgYmxrLXRocm90dGxlIHF1ZXVlLiAgVGhlIHF1ZXVlZCBiaW9zIG11c3QgYmUgZmx1c2hlZCB3aXRob3V0IGFueQomIzQzOyMgYmxrLWNncm91cCBvciBibGstdGhyb3R0bGUgd2FybmluZy4KJiM0MzsKJiM0MzsuIHRlc3RzL3Rocm90bC9yYwomIzQzOwomIzQzO0RFU0NSSVBUSU9OPSYjMzQ7cXVldWVkIHRocm90dGxlZCBJTyB2cy4gY2dyb3VwIHJlbW92YWwgbXVzdCBub3Qgd2FybiYjMzQ7CiYjNDM7UVVJQ0s9MQomIzQzOwomIzQzO3NldF9jb25kaXRpb25zKCkgewomIzQzOwlfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSAmIzM0OyRAJiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGVzdCgpIHsKJiM0MzsJZWNobyAmIzM0O1J1bm5pbmcgJHtURVNUX05BTUV9JiMzNDsKJiM0MzsKJiM0MzsJaWYgISBfc2V0X3VwX3Rocm90bDsgdGhlbgomIzQzOwkJcmV0dXJuIDEKJiM0MzsJZmkKJiM0MzsKJiM0MzsJIyBUaHJvdHRsZSByZWFkcyBzbyB0aGUgYmlvIHF1ZXVlcy4KJiM0MzsJX3Rocm90bF9zZXRfbGltaXRzIHJicHM9NDA5NgomIzQzOwomIzQzOwkoCiYjNDM7CQllY2hvICYjMzQ7JEJBU0hQSUQmIzM0OyAmZ3Q7ICYjMzQ7JENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jcyYjMzQ7CiYjNDM7CQlleGVjIGRkIGlmPS9kZXYvJiMzNDskVEhST1RMX0RFViYjMzQ7IG9mPS9kZXYvbnVsbCBicz0xTSBjb3VudD0xIHN0YXR1cz1ub25lCiYjNDM7CSkgJmFtcDsKJiM0MzsJbG9jYWwgaW9fcGlkPSQhCiYjNDM7CXNsZWVwIDIKJiM0MzsKJiM0MzsJIyBNb3ZlIHRoZSByZWFkZXIgdG8gdGhlIGNncm91cDIgcm9vdCBzbyB0aGUgdGhyb3R0bGUgY2dyb3VwIGNhbiBiZQomIzQzOwkjIHJlbW92ZWQgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuICAkQ0dST1VQMl9ESVIgaGFzICYjNDM7aW8gaW4gaXRzCiYjNDM7CSMgc3VidHJlZV9jb250cm9sIGFuZCBzbyBjYW5ub3QgaG9sZCBwcm9jZXNzZXMuCiYjNDM7CWVjaG8gJiMzNDskaW9fcGlkJiMzNDsgJmd0OyAmIzM0OyQoX2Nncm91cDJfYmFzZV9kaXIpL2Nncm91cC5wcm9jcyYjMzQ7CiYjNDM7CiYjNDM7CSMgUmVtb3ZlIHRoZSB0aHJvdHRsZSBjZ3JvdXAgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuCiYjNDM7CXJtZGlyICYjMzQ7JENHUk9VUDJfRElSLyRUSFJPVExfRElSJiMzNDsKJiM0MzsJc2xlZXAgMwomIzQzOwomIzQzOwlraWxsICYjMzQ7JGlvX3BpZCYjMzQ7IDImZ3Q7L2Rldi9udWxsCiYjNDM7CXdhaXQgJiMzNDskaW9fcGlkJiMzNDsgMiZndDsvZGV2L251bGwKJiM0MzsKJiM0MzsJIyAkVEhST1RMX0RJUiBpcyBhbHJlYWR5IGdvbmU7IHRlYXIgZG93biB0aGUgcmVzdCBieSBoYW5kLgomIzQzOwlpZiBbWyAkVEhST1RMX0NMRUFSX0NHUk9VUDJfRElSX0NPTlRST0xfSU8gPT0gdHJ1ZSBdXTsgdGhlbgomIzQzOwkJZWNobyAmIzM0Oy1pbyYjMzQ7ICZndDsgJiMzNDskQ0dST1VQMl9ESVIvY2dyb3VwLnN1YnRyZWVfY29udHJvbCYjMzQ7CiYjNDM7CWZpCiYjNDM7CWlmIFtbICRUSFJPVExfQ0xFQVJfQkFTRV9TVUJUUkVFX0NPTlRST0xfSU8gPT0gdHJ1ZSBdXTsgdGhlbgomIzQzOwkJZWNobyAmIzM0Oy1pbyYjMzQ7ICZndDsgJiMzNDskKF9jZ3JvdXAyX2Jhc2VfZGlyKS9jZ3JvdXAuc3VidHJlZV9jb250cm9sJiMzNDsKJiM0MzsJZmkKJiM0MzsJX2V4aXRfY2dyb3VwMgomIzQzOwlfZXhpdF90aHJvdGxfYmxrZGV2CiYjNDM7CiYjNDM7CWlmIF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtcUUgJiMzNDtXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKSYjMzQ7OyB0aGVuCiYjNDM7CQllY2hvICYjMzQ7V0FSTklORzogYmxrY2cvYmxrLXRocm90dGxlIHdhcm5pbmcgb24gY2dyb3VwIHJlbW92YWwgd2l0aCBxdWV1ZWQgSU8mIzM0OwomIzQzOwkJX2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1BIDEyIC1FICYjMzQ7V0FSTklORzouKihibGstY2dyb3VwfGJsay10aHJvdHRsZSkmIzM0OyBcCiYjNDM7CQkJJmd0OyZndDsgJiMzNDskRlVMTCYjMzQ7CiYjNDM7CWZpCiYjNDM7CiYjNDM7CWVjaG8gJiMzNDtUZXN0IGNvbXBsZXRlJiMzNDsKJiM0Mzt9CmRpZmYgLS1naXQgYS90ZXN0cy90aHJvdGwvMDA5Lm91dCBiL3Rlc3RzL3Rocm90bC8wMDkub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlNjc1ZGQ5YTc1NDYKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy90aHJvdGwvMDA5Lm91dApAQCAtMCwwICYjNDM7MSwyIEBACiYjNDM7UnVubmluZyB0aHJvdGwvMDA5CiYjNDM7VGVzdCBjb21wbGV0ZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMTozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzI3CgkJCQkJCQlvdXRwdXQ6IDc2CgkJCQkJCQl0aG91Z2h0czogMTkxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1GYWxzZTogQmxrdGVzdHMgT25seSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgdGVzdCBzY3JpcHQsIGB0ZXN0cy90aHJvdGwvMDA5YCwgYW5kIGl0cyBjb3JyZXNwb25kaW5nIG91dHB1dCwgYHRlc3RzL3Rocm90bC8wMDkub3V0YC4gVGhlc2UgYXJlIGNsZWFybHkgdGVzdCBmaWxlcywgbm90IGtlcm5lbCBjb2RlLiBMZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0sIEkgZG9uJiMzOTt0IHNlZSBhbnkgb3RoZXIgZmlsZXMgbW9kaWZpZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIHR3byBmaWxlczogYHRlc3RzL3Rocm90bC8wMDlgIGFuZCBgdGVzdHMvdGhyb3RsLzAwOS5vdXRgLiBHaXZlbiB0aGUgbG9jYXRpb24sIGl0JiMzOTtzIGxpa2VseSBwYXJ0IG9mIHRoZSBgYmxrdGVzdHNgIHN1aXRlLiBTaW5jZSB0aGlzIHBhdGNoICpvbmx5KiBhZGRzIHRlc3Qgc2NyaXB0cyBhbmQgZG9lc24mIzM5O3QgdG91Y2ggYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoYXQgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IHdhcnJhbnQgZnV6emluZy4gVGh1cywgSSYjMzk7bGwgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIGNvbmZpcm0gdGhlIGZpbGVzIGFnYWluLi4uIFl1cDogYHRlc3RzL3Rocm90bC8wMDlgLCBgdGVzdHMvdGhyb3RsLzAwOS5vdXRgLiBPa2F5LCB0aG9zZSBhcmUgZGVmaW5pdGVseSBibGt0ZXN0cy4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSB0ZXN0IHNjcmlwdCBhbmQgaXRzIGV4cGVjdGVkIG91dHB1dCB0byBhIHRlc3Qgc3VpdGUgKGxpa2VseSBibGt0ZXN0cykuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIGFuZCB0aGVyZWZvcmUgaGFzIG5vIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDExOjM0OjM1LjYxMzg0NDQxOVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MzE1MDM5OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSB0ZXN0IHNjcmlwdCBhbmQgaXRzIGV4cGVjdGVkIG91dHB1dCB0byBhIHRlc3Qgc3VpdGUgKGxpa2VseSBibGt0ZXN0cykuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIGFuZCB0aGVyZWZvcmUgaGFzIG5vIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTE6MzQ6MzUuNjEzODQ5NjA5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjkwODYxNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhMzNkYmUwMjkxMDk5YjhiZTdjYmRiMjc5YjExNGM5MTQ4OGJkZTI3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDI1IDExOjM0OjM0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3Rocm90bC8wMDkgYi90ZXN0cy90aHJvdGwvMDA5XFxubmV3IGZpbGUgbW9kZSAxMDA3NTVcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kMzA0MzAxMTc0ZGZkXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL3Rlc3RzL3Rocm90bC8wMDlcXG5AQCAtMCwwICsxLDY0IEBAXFxuKyMhL2Jpbi9iYXNoXFxuKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0zLjArXFxuKyMgQ29weXJpZ2h0IChDKSAyMDI2IFRhbyBDdWkgXFx1MDAzY2N1aXRhb0BreWxpbm9zLmNuXFx1MDAzZVxcbisjXFxuKyMgUmVncmVzc2lvbiB0ZXN0IGZvciByZW1vdmluZyBhIGNncm91cCB3aGlsZSBJTyBpcyBzdGlsbCBxdWV1ZWQgaW4gdGhlXFxuKyMgYmxrLXRocm90dGxlIHF1ZXVlLiAgVGhlIHF1ZXVlZCBiaW9zIG11c3QgYmUgZmx1c2hlZCB3aXRob3V0IGFueVxcbisjIGJsay1jZ3JvdXAgb3IgYmxrLXRocm90dGxlIHdhcm5pbmcuXFxuK1xcbisuIHRlc3RzL3Rocm90bC9yY1xcbitcXG4rREVTQ1JJUFRJT049XFxcInF1ZXVlZCB0aHJvdHRsZWQgSU8gdnMuIGNncm91cCByZW1vdmFsIG11c3Qgbm90IHdhcm5cXFwiXFxuK1FVSUNLPTFcXG4rXFxuK3NldF9jb25kaXRpb25zKCkge1xcbitcXHRfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSBcXFwiJEBcXFwiXFxuK31cXG4rXFxuK3Rlc3QoKSB7XFxuK1xcdGVjaG8gXFxcIlJ1bm5pbmcgJHtURVNUX05BTUV9XFxcIlxcbitcXG4rXFx0aWYgISBfc2V0X3VwX3Rocm90bDsgdGhlblxcbitcXHRcXHRyZXR1cm4gMVxcbitcXHRmaVxcbitcXG4rXFx0IyBUaHJvdHRsZSByZWFkcyBzbyB0aGUgYmlvIHF1ZXVlcy5cXG4rXFx0X3Rocm90bF9zZXRfbGltaXRzIHJicHM9NDA5NlxcbitcXG4rXFx0KFxcbitcXHRcXHRlY2hvIFxcXCIkQkFTSFBJRFxcXCIgXFx1MDAzZSBcXFwiJENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jc1xcXCJcXG4rXFx0XFx0ZXhlYyBkZCBpZj0vZGV2L1xcXCIkVEhST1RMX0RFVlxcXCIgb2Y9L2Rldi9udWxsIGJzPTFNIGNvdW50PTEgc3RhdHVzPW5vbmVcXG4rXFx0KSBcXHUwMDI2XFxuK1xcdGxvY2FsIGlvX3BpZD0kIVxcbitcXHRzbGVlcCAyXFxuK1xcbitcXHQjIE1vdmUgdGhlIHJlYWRlciB0byB0aGUgY2dyb3VwMiByb290IHNvIHRoZSB0aHJvdHRsZSBjZ3JvdXAgY2FuIGJlXFxuK1xcdCMgcmVtb3ZlZCB3aGlsZSBpdHMgYmlvIGlzIHN0aWxsIHF1ZXVlZC4gICRDR1JPVVAyX0RJUiBoYXMgK2lvIGluIGl0c1xcbitcXHQjIHN1YnRyZWVfY29udHJvbCBhbmQgc28gY2Fubm90IGhvbGQgcHJvY2Vzc2VzLlxcbitcXHRlY2hvIFxcXCIkaW9fcGlkXFxcIiBcXHUwMDNlIFxcXCIkKF9jZ3JvdXAyX2Jhc2VfZGlyKS9jZ3JvdXAucHJvY3NcXFwiXFxuK1xcbitcXHQjIFJlbW92ZSB0aGUgdGhyb3R0bGUgY2dyb3VwIHdoaWxlIGl0cyBiaW8gaXMgc3RpbGwgcXVldWVkLlxcbitcXHRybWRpciBcXFwiJENHUk9VUDJfRElSLyRUSFJPVExfRElSXFxcIlxcbitcXHRzbGVlcCAzXFxuK1xcbitcXHRraWxsIFxcXCIkaW9fcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXHR3YWl0IFxcXCIkaW9fcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXG4rXFx0IyAkVEhST1RMX0RJUiBpcyBhbHJlYWR5IGdvbmU7IHRlYXIgZG93biB0aGUgcmVzdCBieSBoYW5kLlxcbitcXHRpZiBbWyAkVEhST1RMX0NMRUFSX0NHUk9VUDJfRElSX0NPTlRST0xfSU8gPT0gdHJ1ZSBdXTsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCItaW9cXFwiIFxcdTAwM2UgXFxcIiRDR1JPVVAyX0RJUi9jZ3JvdXAuc3VidHJlZV9jb250cm9sXFxcIlxcbitcXHRmaVxcbitcXHRpZiBbWyAkVEhST1RMX0NMRUFSX0JBU0VfU1VCVFJFRV9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cXG4rXFx0XFx0ZWNobyBcXFwiLWlvXFxcIiBcXHUwMDNlIFxcXCIkKF9jZ3JvdXAyX2Jhc2VfZGlyKS9jZ3JvdXAuc3VidHJlZV9jb250cm9sXFxcIlxcbitcXHRmaVxcbitcXHRfZXhpdF9jZ3JvdXAyXFxuK1xcdF9leGl0X3Rocm90bF9ibGtkZXZcXG4rXFxuK1xcdGlmIF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtcUUgXFxcIldBUk5JTkc6LiooYmxrLWNncm91cHxibGstdGhyb3R0bGUpXFxcIjsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJXQVJOSU5HOiBibGtjZy9ibGstdGhyb3R0bGUgd2FybmluZyBvbiBjZ3JvdXAgcmVtb3ZhbCB3aXRoIHF1ZXVlZCBJT1xcXCJcXG4rXFx0XFx0X2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1BIDEyIC1FIFxcXCJXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKVxcXCIgXFxcXFxcbitcXHRcXHRcXHRcXHUwMDNlXFx1MDAzZSBcXFwiJEZVTExcXFwiXFxuK1xcdGZpXFxuK1xcbitcXHRlY2hvIFxcXCJUZXN0IGNvbXBsZXRlXFxcIlxcbit9XFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3Rocm90bC8wMDkub3V0IGIvdGVzdHMvdGhyb3RsLzAwOS5vdXRcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlNjc1ZGQ5YTc1NDZcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdGVzdHMvdGhyb3RsLzAwOS5vdXRcXG5AQCAtMCwwICsxLDIgQEBcXG4rUnVubmluZyB0aHJvdGwvMDA5XFxuK1Rlc3QgY29tcGxldGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTE6MzQ6MzUuOTgzNzM4NTUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NTM2MTU5NzMzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGEzM2RiZTAyOTEwOTliOGJlN2NiZGIyNzliMTE0YzkxNDg4YmRlMjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAyNSAxMTozNDozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rlc3RzL3Rocm90bC8wMDkgYi90ZXN0cy90aHJvdGwvMDA5XG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDMwNDMwMTE3NGRmZFxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvdGhyb3RsLzAwOVxuQEAgLTAsMCArMSw2NCBAQFxuKyMhL2Jpbi9iYXNoXG4rIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTMuMCtcbisjIENvcHlyaWdodCAoQykgMjAyNiBUYW8gQ3VpIFx1MDAzY2N1aXRhb0BreWxpbm9zLmNuXHUwMDNlXG4rI1xuKyMgUmVncmVzc2lvbiB0ZXN0IGZvciByZW1vdmluZyBhIGNncm91cCB3aGlsZSBJTyBpcyBzdGlsbCBxdWV1ZWQgaW4gdGhlXG4rIyBibGstdGhyb3R0bGUgcXVldWUuICBUaGUgcXVldWVkIGJpb3MgbXVzdCBiZSBmbHVzaGVkIHdpdGhvdXQgYW55XG4rIyBibGstY2dyb3VwIG9yIGJsay10aHJvdHRsZSB3YXJuaW5nLlxuK1xuKy4gdGVzdHMvdGhyb3RsL3JjXG4rXG4rREVTQ1JJUFRJT049XCJxdWV1ZWQgdGhyb3R0bGVkIElPIHZzLiBjZ3JvdXAgcmVtb3ZhbCBtdXN0IG5vdCB3YXJuXCJcbitRVUlDSz0xXG4rXG4rc2V0X2NvbmRpdGlvbnMoKSB7XG4rXHRfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSBcIiRAXCJcbit9XG4rXG4rdGVzdCgpIHtcbitcdGVjaG8gXCJSdW5uaW5nICR7VEVTVF9OQU1FfVwiXG4rXG4rXHRpZiAhIF9zZXRfdXBfdGhyb3RsOyB0aGVuXG4rXHRcdHJldHVybiAxXG4rXHRmaVxuK1xuK1x0IyBUaHJvdHRsZSByZWFkcyBzbyB0aGUgYmlvIHF1ZXVlcy5cbitcdF90aHJvdGxfc2V0X2xpbWl0cyByYnBzPTQwOTZcbitcbitcdChcbitcdFx0ZWNobyBcIiRCQVNIUElEXCIgXHUwMDNlIFwiJENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jc1wiXG4rXHRcdGV4ZWMgZGQgaWY9L2Rldi9cIiRUSFJPVExfREVWXCIgb2Y9L2Rldi9udWxsIGJzPTFNIGNvdW50PTEgc3RhdHVzPW5vbmVcbitcdCkgXHUwMDI2XG4rXHRsb2NhbCBpb19waWQ9JCFcbitcdHNsZWVwIDJcbitcbitcdCMgTW92ZSB0aGUgcmVhZGVyIHRvIHRoZSBjZ3JvdXAyIHJvb3Qgc28gdGhlIHRocm90dGxlIGNncm91cCBjYW4gYmVcbitcdCMgcmVtb3ZlZCB3aGlsZSBpdHMgYmlvIGlzIHN0aWxsIHF1ZXVlZC4gICRDR1JPVVAyX0RJUiBoYXMgK2lvIGluIGl0c1xuK1x0IyBzdWJ0cmVlX2NvbnRyb2wgYW5kIHNvIGNhbm5vdCBob2xkIHByb2Nlc3Nlcy5cbitcdGVjaG8gXCIkaW9fcGlkXCIgXHUwMDNlIFwiJChfY2dyb3VwMl9iYXNlX2RpcikvY2dyb3VwLnByb2NzXCJcbitcbitcdCMgUmVtb3ZlIHRoZSB0aHJvdHRsZSBjZ3JvdXAgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuXG4rXHRybWRpciBcIiRDR1JPVVAyX0RJUi8kVEhST1RMX0RJUlwiXG4rXHRzbGVlcCAzXG4rXG4rXHRraWxsIFwiJGlvX3BpZFwiIDJcdTAwM2UvZGV2L251bGxcbitcdHdhaXQgXCIkaW9fcGlkXCIgMlx1MDAzZS9kZXYvbnVsbFxuK1xuK1x0IyAkVEhST1RMX0RJUiBpcyBhbHJlYWR5IGdvbmU7IHRlYXIgZG93biB0aGUgcmVzdCBieSBoYW5kLlxuK1x0aWYgW1sgJFRIUk9UTF9DTEVBUl9DR1JPVVAyX0RJUl9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cbitcdFx0ZWNobyBcIi1pb1wiIFx1MDAzZSBcIiRDR1JPVVAyX0RJUi9jZ3JvdXAuc3VidHJlZV9jb250cm9sXCJcbitcdGZpXG4rXHRpZiBbWyAkVEhST1RMX0NMRUFSX0JBU0VfU1VCVFJFRV9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cbitcdFx0ZWNobyBcIi1pb1wiIFx1MDAzZSBcIiQoX2Nncm91cDJfYmFzZV9kaXIpL2Nncm91cC5zdWJ0cmVlX2NvbnRyb2xcIlxuK1x0ZmlcbitcdF9leGl0X2Nncm91cDJcbitcdF9leGl0X3Rocm90bF9ibGtkZXZcbitcbitcdGlmIF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtcUUgXCJXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKVwiOyB0aGVuXG4rXHRcdGVjaG8gXCJXQVJOSU5HOiBibGtjZy9ibGstdGhyb3R0bGUgd2FybmluZyBvbiBjZ3JvdXAgcmVtb3ZhbCB3aXRoIHF1ZXVlZCBJT1wiXG4rXHRcdF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtQSAxMiAtRSBcIldBUk5JTkc6LiooYmxrLWNncm91cHxibGstdGhyb3R0bGUpXCIgXFxcbitcdFx0XHRcdTAwM2VcdTAwM2UgXCIkRlVMTFwiXG4rXHRmaVxuK1xuK1x0ZWNobyBcIlRlc3QgY29tcGxldGVcIlxuK31cbmRpZmYgLS1naXQgYS90ZXN0cy90aHJvdGwvMDA5Lm91dCBiL3Rlc3RzL3Rocm90bC8wMDkub3V0XG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYmU2NzVkZDlhNzU0NlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvdGhyb3RsLzAwOS5vdXRcbkBAIC0wLDAgKzEsMiBAQFxuK1J1bm5pbmcgdGhyb3RsLzAwOVxuK1Rlc3QgY29tcGxldGVcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDExOjM0OjM1Ljk4Mzc0MDU2M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNjE1NzM2NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPUZhbHNlOiBCbGt0ZXN0cyBPbmx5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHRlc3Qgc2NyaXB0LCBgdGVzdHMvdGhyb3RsLzAwOWAsIGFuZCBpdHMgY29ycmVzcG9uZGluZyBvdXRwdXQsIGB0ZXN0cy90aHJvdGwvMDA5Lm91dGAuIFRoZXNlIGFyZSBjbGVhcmx5IHRlc3QgZmlsZXMsIG5vdCBrZXJuZWwgY29kZS4gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtLCBJIGRvbid0IHNlZSBhbnkgb3RoZXIgZmlsZXMgbW9kaWZpZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIHR3byBmaWxlczogYHRlc3RzL3Rocm90bC8wMDlgIGFuZCBgdGVzdHMvdGhyb3RsLzAwOS5vdXRgLiBHaXZlbiB0aGUgbG9jYXRpb24sIGl0J3MgbGlrZWx5IHBhcnQgb2YgdGhlIGBibGt0ZXN0c2Agc3VpdGUuIFNpbmNlIHRoaXMgcGF0Y2ggKm9ubHkqIGFkZHMgdGVzdCBzY3JpcHRzIGFuZCBkb2Vzbid0IHRvdWNoIGFueSBrZXJuZWwgc291cmNlIGNvZGUsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IHdhcnJhbnQgZnV6emluZy4gVGh1cywgSSdsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIEp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgY29uZmlybSB0aGUgZmlsZXMgYWdhaW4uLi4gWXVwOiBgdGVzdHMvdGhyb3RsLzAwOWAsIGB0ZXN0cy90aHJvdGwvMDA5Lm91dGAuIE9rYXksIHRob3NlIGFyZSBkZWZpbml0ZWx5IGJsa3Rlc3RzLiBUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjcyNywiT3V0cHV0VG9rZW5zIjo3NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDExOjM0OjQxLjM0NTMxNjkwOFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRlc3Qgc2NyaXB0IGFuZCBpdHMgZXhwZWN0ZWQgb3V0cHV0IHRvIGEgdGVzdCBzdWl0ZSAobGlrZWx5IGJsa3Rlc3RzKS4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgYW5kIHRoZXJlZm9yZSBoYXMgbm8gZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMTozNDo0MS4zNDUzMzc1NjhaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowlh28c[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-25 11:32:27 +0000 UTC FinishedAt: 2026-08-25 11:34:42 +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+CgkJCTx0ZD4yMDI2LzA4LzI1IDExOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMzNkYmUwMjkxMDk5YjhiZTdjYmRiMjc5YjExNGM5MTQ4OGJkZTI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMTE6MzQ6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdGVzdHMvdGhyb3RsLzAwOSBiL3Rlc3RzL3Rocm90bC8wMDlcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kMzA0MzAxMTc0ZGZkXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy90aHJvdGwvMDA5XG5AQCAtMCwwICYjNDM7MSw2NCBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MzsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMy4wJiM0MztcbiYjNDM7IyBDb3B5cmlnaHQgKEMpIDIwMjYgVGFvIEN1aSBcdTAwM2NjdWl0YW9Aa3lsaW5vcy5jblx1MDAzZVxuJiM0MzsjXG4mIzQzOyMgUmVncmVzc2lvbiB0ZXN0IGZvciByZW1vdmluZyBhIGNncm91cCB3aGlsZSBJTyBpcyBzdGlsbCBxdWV1ZWQgaW4gdGhlXG4mIzQzOyMgYmxrLXRocm90dGxlIHF1ZXVlLiAgVGhlIHF1ZXVlZCBiaW9zIG11c3QgYmUgZmx1c2hlZCB3aXRob3V0IGFueVxuJiM0MzsjIGJsay1jZ3JvdXAgb3IgYmxrLXRocm90dGxlIHdhcm5pbmcuXG4mIzQzO1xuJiM0MzsuIHRlc3RzL3Rocm90bC9yY1xuJiM0MztcbiYjNDM7REVTQ1JJUFRJT049XCYjMzQ7cXVldWVkIHRocm90dGxlZCBJTyB2cy4gY2dyb3VwIHJlbW92YWwgbXVzdCBub3Qgd2FyblwmIzM0O1xuJiM0MztRVUlDSz0xXG4mIzQzO1xuJiM0MztzZXRfY29uZGl0aW9ucygpIHtcbiYjNDM7XHRfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSBcJiMzNDskQFwmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzt0ZXN0KCkge1xuJiM0MztcdGVjaG8gXCYjMzQ7UnVubmluZyAke1RFU1RfTkFNRX1cJiMzNDtcbiYjNDM7XG4mIzQzO1x0aWYgISBfc2V0X3VwX3Rocm90bDsgdGhlblxuJiM0MztcdFx0cmV0dXJuIDFcbiYjNDM7XHRmaVxuJiM0MztcbiYjNDM7XHQjIFRocm90dGxlIHJlYWRzIHNvIHRoZSBiaW8gcXVldWVzLlxuJiM0MztcdF90aHJvdGxfc2V0X2xpbWl0cyByYnBzPTQwOTZcbiYjNDM7XG4mIzQzO1x0KFxuJiM0MztcdFx0ZWNobyBcJiMzNDskQkFTSFBJRFwmIzM0OyBcdTAwM2UgXCYjMzQ7JENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jc1wmIzM0O1xuJiM0MztcdFx0ZXhlYyBkZCBpZj0vZGV2L1wmIzM0OyRUSFJPVExfREVWXCYjMzQ7IG9mPS9kZXYvbnVsbCBicz0xTSBjb3VudD0xIHN0YXR1cz1ub25lXG4mIzQzO1x0KSBcdTAwMjZcbiYjNDM7XHRsb2NhbCBpb19waWQ9JCFcbiYjNDM7XHRzbGVlcCAyXG4mIzQzO1xuJiM0MztcdCMgTW92ZSB0aGUgcmVhZGVyIHRvIHRoZSBjZ3JvdXAyIHJvb3Qgc28gdGhlIHRocm90dGxlIGNncm91cCBjYW4gYmVcbiYjNDM7XHQjIHJlbW92ZWQgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuICAkQ0dST1VQMl9ESVIgaGFzICYjNDM7aW8gaW4gaXRzXG4mIzQzO1x0IyBzdWJ0cmVlX2NvbnRyb2wgYW5kIHNvIGNhbm5vdCBob2xkIHByb2Nlc3Nlcy5cbiYjNDM7XHRlY2hvIFwmIzM0OyRpb19waWRcJiMzNDsgXHUwMDNlIFwmIzM0OyQoX2Nncm91cDJfYmFzZV9kaXIpL2Nncm91cC5wcm9jc1wmIzM0O1xuJiM0MztcbiYjNDM7XHQjIFJlbW92ZSB0aGUgdGhyb3R0bGUgY2dyb3VwIHdoaWxlIGl0cyBiaW8gaXMgc3RpbGwgcXVldWVkLlxuJiM0MztcdHJtZGlyIFwmIzM0OyRDR1JPVVAyX0RJUi8kVEhST1RMX0RJUlwmIzM0O1xuJiM0MztcdHNsZWVwIDNcbiYjNDM7XG4mIzQzO1x0a2lsbCBcJiMzNDskaW9fcGlkXCYjMzQ7IDJcdTAwM2UvZGV2L251bGxcbiYjNDM7XHR3YWl0IFwmIzM0OyRpb19waWRcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcbiYjNDM7XHQjICRUSFJPVExfRElSIGlzIGFscmVhZHkgZ29uZTsgdGVhciBkb3duIHRoZSByZXN0IGJ5IGhhbmQuXG4mIzQzO1x0aWYgW1sgJFRIUk9UTF9DTEVBUl9DR1JPVVAyX0RJUl9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cbiYjNDM7XHRcdGVjaG8gXCYjMzQ7LWlvXCYjMzQ7IFx1MDAzZSBcJiMzNDskQ0dST1VQMl9ESVIvY2dyb3VwLnN1YnRyZWVfY29udHJvbFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1x0aWYgW1sgJFRIUk9UTF9DTEVBUl9CQVNFX1NVQlRSRUVfQ09OVFJPTF9JTyA9PSB0cnVlIF1dOyB0aGVuXG4mIzQzO1x0XHRlY2hvIFwmIzM0Oy1pb1wmIzM0OyBcdTAwM2UgXCYjMzQ7JChfY2dyb3VwMl9iYXNlX2RpcikvY2dyb3VwLnN1YnRyZWVfY29udHJvbFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1x0X2V4aXRfY2dyb3VwMlxuJiM0MztcdF9leGl0X3Rocm90bF9ibGtkZXZcbiYjNDM7XG4mIzQzO1x0aWYgX2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1xRSBcJiMzNDtXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKVwmIzM0OzsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtXQVJOSU5HOiBibGtjZy9ibGstdGhyb3R0bGUgd2FybmluZyBvbiBjZ3JvdXAgcmVtb3ZhbCB3aXRoIHF1ZXVlZCBJT1wmIzM0O1xuJiM0MztcdFx0X2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1BIDEyIC1FIFwmIzM0O1dBUk5JTkc6LiooYmxrLWNncm91cHxibGstdGhyb3R0bGUpXCYjMzQ7IFxcXG4mIzQzO1x0XHRcdFx1MDAzZVx1MDAzZSBcJiMzNDskRlVMTFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1xuJiM0MztcdGVjaG8gXCYjMzQ7VGVzdCBjb21wbGV0ZVwmIzM0O1xuJiM0Mzt9XG5kaWZmIC0tZ2l0IGEvdGVzdHMvdGhyb3RsLzAwOS5vdXQgYi90ZXN0cy90aHJvdGwvMDA5Lm91dFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlNjc1ZGQ5YTc1NDZcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL3Rlc3RzL3Rocm90bC8wMDkub3V0XG5AQCAtMCwwICYjNDM7MSwyIEBAXG4mIzQzO1J1bm5pbmcgdGhyb3RsLzAwOVxuJiM0MztUZXN0IGNvbXBsZXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRlc3Qgc2NyaXB0IGFuZCBpdHMgZXhwZWN0ZWQgb3V0cHV0IHRvIGEgdGVzdCBzdWl0ZSAobGlrZWx5IGJsa3Rlc3RzKS4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgYW5kIHRoZXJlZm9yZSBoYXMgbm8gZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTMzZGJlMDI5MTA5OWI4YmU3Y2JkYjI3OWIxMTRjOTE0ODhiZGUyNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDI1IDExOjM0OjM0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGhyb3RsLzAwOSBiL3Rlc3RzL3Rocm90bC8wMDkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDMwNDMwMTE3NGRmZAotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL3Rlc3RzL3Rocm90bC8wMDkKQEAgLTAsMCAmIzQzOzEsNjQgQEAKJiM0MzsjIS9iaW4vYmFzaAomIzQzOyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0zLjAmIzQzOwomIzQzOyMgQ29weXJpZ2h0IChDKSAyMDI2IFRhbyBDdWkgJmx0O2N1aXRhb0BreWxpbm9zLmNuJmd0OwomIzQzOyMKJiM0MzsjIFJlZ3Jlc3Npb24gdGVzdCBmb3IgcmVtb3ZpbmcgYSBjZ3JvdXAgd2hpbGUgSU8gaXMgc3RpbGwgcXVldWVkIGluIHRoZQomIzQzOyMgYmxrLXRocm90dGxlIHF1ZXVlLiAgVGhlIHF1ZXVlZCBiaW9zIG11c3QgYmUgZmx1c2hlZCB3aXRob3V0IGFueQomIzQzOyMgYmxrLWNncm91cCBvciBibGstdGhyb3R0bGUgd2FybmluZy4KJiM0MzsKJiM0MzsuIHRlc3RzL3Rocm90bC9yYwomIzQzOwomIzQzO0RFU0NSSVBUSU9OPSYjMzQ7cXVldWVkIHRocm90dGxlZCBJTyB2cy4gY2dyb3VwIHJlbW92YWwgbXVzdCBub3Qgd2FybiYjMzQ7CiYjNDM7UVVJQ0s9MQomIzQzOwomIzQzO3NldF9jb25kaXRpb25zKCkgewomIzQzOwlfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSAmIzM0OyRAJiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGVzdCgpIHsKJiM0MzsJZWNobyAmIzM0O1J1bm5pbmcgJHtURVNUX05BTUV9JiMzNDsKJiM0MzsKJiM0MzsJaWYgISBfc2V0X3VwX3Rocm90bDsgdGhlbgomIzQzOwkJcmV0dXJuIDEKJiM0MzsJZmkKJiM0MzsKJiM0MzsJIyBUaHJvdHRsZSByZWFkcyBzbyB0aGUgYmlvIHF1ZXVlcy4KJiM0MzsJX3Rocm90bF9zZXRfbGltaXRzIHJicHM9NDA5NgomIzQzOwomIzQzOwkoCiYjNDM7CQllY2hvICYjMzQ7JEJBU0hQSUQmIzM0OyAmZ3Q7ICYjMzQ7JENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jcyYjMzQ7CiYjNDM7CQlleGVjIGRkIGlmPS9kZXYvJiMzNDskVEhST1RMX0RFViYjMzQ7IG9mPS9kZXYvbnVsbCBicz0xTSBjb3VudD0xIHN0YXR1cz1ub25lCiYjNDM7CSkgJmFtcDsKJiM0MzsJbG9jYWwgaW9fcGlkPSQhCiYjNDM7CXNsZWVwIDIKJiM0MzsKJiM0MzsJIyBNb3ZlIHRoZSByZWFkZXIgdG8gdGhlIGNncm91cDIgcm9vdCBzbyB0aGUgdGhyb3R0bGUgY2dyb3VwIGNhbiBiZQomIzQzOwkjIHJlbW92ZWQgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuICAkQ0dST1VQMl9ESVIgaGFzICYjNDM7aW8gaW4gaXRzCiYjNDM7CSMgc3VidHJlZV9jb250cm9sIGFuZCBzbyBjYW5ub3QgaG9sZCBwcm9jZXNzZXMuCiYjNDM7CWVjaG8gJiMzNDskaW9fcGlkJiMzNDsgJmd0OyAmIzM0OyQoX2Nncm91cDJfYmFzZV9kaXIpL2Nncm91cC5wcm9jcyYjMzQ7CiYjNDM7CiYjNDM7CSMgUmVtb3ZlIHRoZSB0aHJvdHRsZSBjZ3JvdXAgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuCiYjNDM7CXJtZGlyICYjMzQ7JENHUk9VUDJfRElSLyRUSFJPVExfRElSJiMzNDsKJiM0MzsJc2xlZXAgMwomIzQzOwomIzQzOwlraWxsICYjMzQ7JGlvX3BpZCYjMzQ7IDImZ3Q7L2Rldi9udWxsCiYjNDM7CXdhaXQgJiMzNDskaW9fcGlkJiMzNDsgMiZndDsvZGV2L251bGwKJiM0MzsKJiM0MzsJIyAkVEhST1RMX0RJUiBpcyBhbHJlYWR5IGdvbmU7IHRlYXIgZG93biB0aGUgcmVzdCBieSBoYW5kLgomIzQzOwlpZiBbWyAkVEhST1RMX0NMRUFSX0NHUk9VUDJfRElSX0NPTlRST0xfSU8gPT0gdHJ1ZSBdXTsgdGhlbgomIzQzOwkJZWNobyAmIzM0Oy1pbyYjMzQ7ICZndDsgJiMzNDskQ0dST1VQMl9ESVIvY2dyb3VwLnN1YnRyZWVfY29udHJvbCYjMzQ7CiYjNDM7CWZpCiYjNDM7CWlmIFtbICRUSFJPVExfQ0xFQVJfQkFTRV9TVUJUUkVFX0NPTlRST0xfSU8gPT0gdHJ1ZSBdXTsgdGhlbgomIzQzOwkJZWNobyAmIzM0Oy1pbyYjMzQ7ICZndDsgJiMzNDskKF9jZ3JvdXAyX2Jhc2VfZGlyKS9jZ3JvdXAuc3VidHJlZV9jb250cm9sJiMzNDsKJiM0MzsJZmkKJiM0MzsJX2V4aXRfY2dyb3VwMgomIzQzOwlfZXhpdF90aHJvdGxfYmxrZGV2CiYjNDM7CiYjNDM7CWlmIF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtcUUgJiMzNDtXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKSYjMzQ7OyB0aGVuCiYjNDM7CQllY2hvICYjMzQ7V0FSTklORzogYmxrY2cvYmxrLXRocm90dGxlIHdhcm5pbmcgb24gY2dyb3VwIHJlbW92YWwgd2l0aCBxdWV1ZWQgSU8mIzM0OwomIzQzOwkJX2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1BIDEyIC1FICYjMzQ7V0FSTklORzouKihibGstY2dyb3VwfGJsay10aHJvdHRsZSkmIzM0OyBcCiYjNDM7CQkJJmd0OyZndDsgJiMzNDskRlVMTCYjMzQ7CiYjNDM7CWZpCiYjNDM7CiYjNDM7CWVjaG8gJiMzNDtUZXN0IGNvbXBsZXRlJiMzNDsKJiM0Mzt9CmRpZmYgLS1naXQgYS90ZXN0cy90aHJvdGwvMDA5Lm91dCBiL3Rlc3RzL3Rocm90bC8wMDkub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlNjc1ZGQ5YTc1NDYKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy90aHJvdGwvMDA5Lm91dApAQCAtMCwwICYjNDM7MSwyIEBACiYjNDM7UnVubmluZyB0aHJvdGwvMDA5CiYjNDM7VGVzdCBjb21wbGV0ZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMTozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzI3CgkJCQkJCQlvdXRwdXQ6IDc2CgkJCQkJCQl0aG91Z2h0czogMTkxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1GYWxzZTogQmxrdGVzdHMgT25seSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgdGVzdCBzY3JpcHQsIGB0ZXN0cy90aHJvdGwvMDA5YCwgYW5kIGl0cyBjb3JyZXNwb25kaW5nIG91dHB1dCwgYHRlc3RzL3Rocm90bC8wMDkub3V0YC4gVGhlc2UgYXJlIGNsZWFybHkgdGVzdCBmaWxlcywgbm90IGtlcm5lbCBjb2RlLiBMZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0sIEkgZG9uJiMzOTt0IHNlZSBhbnkgb3RoZXIgZmlsZXMgbW9kaWZpZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIHR3byBmaWxlczogYHRlc3RzL3Rocm90bC8wMDlgIGFuZCBgdGVzdHMvdGhyb3RsLzAwOS5vdXRgLiBHaXZlbiB0aGUgbG9jYXRpb24sIGl0JiMzOTtzIGxpa2VseSBwYXJ0IG9mIHRoZSBgYmxrdGVzdHNgIHN1aXRlLiBTaW5jZSB0aGlzIHBhdGNoICpvbmx5KiBhZGRzIHRlc3Qgc2NyaXB0cyBhbmQgZG9lc24mIzM5O3QgdG91Y2ggYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoYXQgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IHdhcnJhbnQgZnV6emluZy4gVGh1cywgSSYjMzk7bGwgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIGNvbmZpcm0gdGhlIGZpbGVzIGFnYWluLi4uIFl1cDogYHRlc3RzL3Rocm90bC8wMDlgLCBgdGVzdHMvdGhyb3RsLzAwOS5vdXRgLiBPa2F5LCB0aG9zZSBhcmUgZGVmaW5pdGVseSBibGt0ZXN0cy4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSB0ZXN0IHNjcmlwdCBhbmQgaXRzIGV4cGVjdGVkIG91dHB1dCB0byBhIHRlc3Qgc3VpdGUgKGxpa2VseSBibGt0ZXN0cykuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIGFuZCB0aGVyZWZvcmUgaGFzIG5vIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTE6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDExOjM0OjM1LjYxMzg0NDQxOVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MzE1MDM5OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSB0ZXN0IHNjcmlwdCBhbmQgaXRzIGV4cGVjdGVkIG91dHB1dCB0byBhIHRlc3Qgc3VpdGUgKGxpa2VseSBibGt0ZXN0cykuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlIGFuZCB0aGVyZWZvcmUgaGFzIG5vIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTE6MzQ6MzUuNjEzODQ5NjA5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjkwODYxNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhMzNkYmUwMjkxMDk5YjhiZTdjYmRiMjc5YjExNGM5MTQ4OGJkZTI3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDI1IDExOjM0OjM0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3Rocm90bC8wMDkgYi90ZXN0cy90aHJvdGwvMDA5XFxubmV3IGZpbGUgbW9kZSAxMDA3NTVcXG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kMzA0MzAxMTc0ZGZkXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL3Rlc3RzL3Rocm90bC8wMDlcXG5AQCAtMCwwICsxLDY0IEBAXFxuKyMhL2Jpbi9iYXNoXFxuKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0zLjArXFxuKyMgQ29weXJpZ2h0IChDKSAyMDI2IFRhbyBDdWkgXFx1MDAzY2N1aXRhb0BreWxpbm9zLmNuXFx1MDAzZVxcbisjXFxuKyMgUmVncmVzc2lvbiB0ZXN0IGZvciByZW1vdmluZyBhIGNncm91cCB3aGlsZSBJTyBpcyBzdGlsbCBxdWV1ZWQgaW4gdGhlXFxuKyMgYmxrLXRocm90dGxlIHF1ZXVlLiAgVGhlIHF1ZXVlZCBiaW9zIG11c3QgYmUgZmx1c2hlZCB3aXRob3V0IGFueVxcbisjIGJsay1jZ3JvdXAgb3IgYmxrLXRocm90dGxlIHdhcm5pbmcuXFxuK1xcbisuIHRlc3RzL3Rocm90bC9yY1xcbitcXG4rREVTQ1JJUFRJT049XFxcInF1ZXVlZCB0aHJvdHRsZWQgSU8gdnMuIGNncm91cCByZW1vdmFsIG11c3Qgbm90IHdhcm5cXFwiXFxuK1FVSUNLPTFcXG4rXFxuK3NldF9jb25kaXRpb25zKCkge1xcbitcXHRfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSBcXFwiJEBcXFwiXFxuK31cXG4rXFxuK3Rlc3QoKSB7XFxuK1xcdGVjaG8gXFxcIlJ1bm5pbmcgJHtURVNUX05BTUV9XFxcIlxcbitcXG4rXFx0aWYgISBfc2V0X3VwX3Rocm90bDsgdGhlblxcbitcXHRcXHRyZXR1cm4gMVxcbitcXHRmaVxcbitcXG4rXFx0IyBUaHJvdHRsZSByZWFkcyBzbyB0aGUgYmlvIHF1ZXVlcy5cXG4rXFx0X3Rocm90bF9zZXRfbGltaXRzIHJicHM9NDA5NlxcbitcXG4rXFx0KFxcbitcXHRcXHRlY2hvIFxcXCIkQkFTSFBJRFxcXCIgXFx1MDAzZSBcXFwiJENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jc1xcXCJcXG4rXFx0XFx0ZXhlYyBkZCBpZj0vZGV2L1xcXCIkVEhST1RMX0RFVlxcXCIgb2Y9L2Rldi9udWxsIGJzPTFNIGNvdW50PTEgc3RhdHVzPW5vbmVcXG4rXFx0KSBcXHUwMDI2XFxuK1xcdGxvY2FsIGlvX3BpZD0kIVxcbitcXHRzbGVlcCAyXFxuK1xcbitcXHQjIE1vdmUgdGhlIHJlYWRlciB0byB0aGUgY2dyb3VwMiByb290IHNvIHRoZSB0aHJvdHRsZSBjZ3JvdXAgY2FuIGJlXFxuK1xcdCMgcmVtb3ZlZCB3aGlsZSBpdHMgYmlvIGlzIHN0aWxsIHF1ZXVlZC4gICRDR1JPVVAyX0RJUiBoYXMgK2lvIGluIGl0c1xcbitcXHQjIHN1YnRyZWVfY29udHJvbCBhbmQgc28gY2Fubm90IGhvbGQgcHJvY2Vzc2VzLlxcbitcXHRlY2hvIFxcXCIkaW9fcGlkXFxcIiBcXHUwMDNlIFxcXCIkKF9jZ3JvdXAyX2Jhc2VfZGlyKS9jZ3JvdXAucHJvY3NcXFwiXFxuK1xcbitcXHQjIFJlbW92ZSB0aGUgdGhyb3R0bGUgY2dyb3VwIHdoaWxlIGl0cyBiaW8gaXMgc3RpbGwgcXVldWVkLlxcbitcXHRybWRpciBcXFwiJENHUk9VUDJfRElSLyRUSFJPVExfRElSXFxcIlxcbitcXHRzbGVlcCAzXFxuK1xcbitcXHRraWxsIFxcXCIkaW9fcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXHR3YWl0IFxcXCIkaW9fcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXG4rXFx0IyAkVEhST1RMX0RJUiBpcyBhbHJlYWR5IGdvbmU7IHRlYXIgZG93biB0aGUgcmVzdCBieSBoYW5kLlxcbitcXHRpZiBbWyAkVEhST1RMX0NMRUFSX0NHUk9VUDJfRElSX0NPTlRST0xfSU8gPT0gdHJ1ZSBdXTsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCItaW9cXFwiIFxcdTAwM2UgXFxcIiRDR1JPVVAyX0RJUi9jZ3JvdXAuc3VidHJlZV9jb250cm9sXFxcIlxcbitcXHRmaVxcbitcXHRpZiBbWyAkVEhST1RMX0NMRUFSX0JBU0VfU1VCVFJFRV9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cXG4rXFx0XFx0ZWNobyBcXFwiLWlvXFxcIiBcXHUwMDNlIFxcXCIkKF9jZ3JvdXAyX2Jhc2VfZGlyKS9jZ3JvdXAuc3VidHJlZV9jb250cm9sXFxcIlxcbitcXHRmaVxcbitcXHRfZXhpdF9jZ3JvdXAyXFxuK1xcdF9leGl0X3Rocm90bF9ibGtkZXZcXG4rXFxuK1xcdGlmIF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtcUUgXFxcIldBUk5JTkc6LiooYmxrLWNncm91cHxibGstdGhyb3R0bGUpXFxcIjsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJXQVJOSU5HOiBibGtjZy9ibGstdGhyb3R0bGUgd2FybmluZyBvbiBjZ3JvdXAgcmVtb3ZhbCB3aXRoIHF1ZXVlZCBJT1xcXCJcXG4rXFx0XFx0X2RtZXNnX3NpbmNlX3Rlc3Rfc3RhcnQgfCBncmVwIC1BIDEyIC1FIFxcXCJXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKVxcXCIgXFxcXFxcbitcXHRcXHRcXHRcXHUwMDNlXFx1MDAzZSBcXFwiJEZVTExcXFwiXFxuK1xcdGZpXFxuK1xcbitcXHRlY2hvIFxcXCJUZXN0IGNvbXBsZXRlXFxcIlxcbit9XFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3Rocm90bC8wMDkub3V0IGIvdGVzdHMvdGhyb3RsLzAwOS5vdXRcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmJlNjc1ZGQ5YTc1NDZcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdGVzdHMvdGhyb3RsLzAwOS5vdXRcXG5AQCAtMCwwICsxLDIgQEBcXG4rUnVubmluZyB0aHJvdGwvMDA5XFxuK1Rlc3QgY29tcGxldGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTE6MzQ6MzUuOTgzNzM4NTUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NTM2MTU5NzMzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGEzM2RiZTAyOTEwOTliOGJlN2NiZGIyNzliMTE0YzkxNDg4YmRlMjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAyNSAxMTozNDozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rlc3RzL3Rocm90bC8wMDkgYi90ZXN0cy90aHJvdGwvMDA5XG5uZXcgZmlsZSBtb2RlIDEwMDc1NVxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDMwNDMwMTE3NGRmZFxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvdGhyb3RsLzAwOVxuQEAgLTAsMCArMSw2NCBAQFxuKyMhL2Jpbi9iYXNoXG4rIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTMuMCtcbisjIENvcHlyaWdodCAoQykgMjAyNiBUYW8gQ3VpIFx1MDAzY2N1aXRhb0BreWxpbm9zLmNuXHUwMDNlXG4rI1xuKyMgUmVncmVzc2lvbiB0ZXN0IGZvciByZW1vdmluZyBhIGNncm91cCB3aGlsZSBJTyBpcyBzdGlsbCBxdWV1ZWQgaW4gdGhlXG4rIyBibGstdGhyb3R0bGUgcXVldWUuICBUaGUgcXVldWVkIGJpb3MgbXVzdCBiZSBmbHVzaGVkIHdpdGhvdXQgYW55XG4rIyBibGstY2dyb3VwIG9yIGJsay10aHJvdHRsZSB3YXJuaW5nLlxuK1xuKy4gdGVzdHMvdGhyb3RsL3JjXG4rXG4rREVTQ1JJUFRJT049XCJxdWV1ZWQgdGhyb3R0bGVkIElPIHZzLiBjZ3JvdXAgcmVtb3ZhbCBtdXN0IG5vdCB3YXJuXCJcbitRVUlDSz0xXG4rXG4rc2V0X2NvbmRpdGlvbnMoKSB7XG4rXHRfc2V0X3Rocm90bF9ibGtkZXZfdHlwZSBcIiRAXCJcbit9XG4rXG4rdGVzdCgpIHtcbitcdGVjaG8gXCJSdW5uaW5nICR7VEVTVF9OQU1FfVwiXG4rXG4rXHRpZiAhIF9zZXRfdXBfdGhyb3RsOyB0aGVuXG4rXHRcdHJldHVybiAxXG4rXHRmaVxuK1xuK1x0IyBUaHJvdHRsZSByZWFkcyBzbyB0aGUgYmlvIHF1ZXVlcy5cbitcdF90aHJvdGxfc2V0X2xpbWl0cyByYnBzPTQwOTZcbitcbitcdChcbitcdFx0ZWNobyBcIiRCQVNIUElEXCIgXHUwMDNlIFwiJENHUk9VUDJfRElSLyRUSFJPVExfRElSL2Nncm91cC5wcm9jc1wiXG4rXHRcdGV4ZWMgZGQgaWY9L2Rldi9cIiRUSFJPVExfREVWXCIgb2Y9L2Rldi9udWxsIGJzPTFNIGNvdW50PTEgc3RhdHVzPW5vbmVcbitcdCkgXHUwMDI2XG4rXHRsb2NhbCBpb19waWQ9JCFcbitcdHNsZWVwIDJcbitcbitcdCMgTW92ZSB0aGUgcmVhZGVyIHRvIHRoZSBjZ3JvdXAyIHJvb3Qgc28gdGhlIHRocm90dGxlIGNncm91cCBjYW4gYmVcbitcdCMgcmVtb3ZlZCB3aGlsZSBpdHMgYmlvIGlzIHN0aWxsIHF1ZXVlZC4gICRDR1JPVVAyX0RJUiBoYXMgK2lvIGluIGl0c1xuK1x0IyBzdWJ0cmVlX2NvbnRyb2wgYW5kIHNvIGNhbm5vdCBob2xkIHByb2Nlc3Nlcy5cbitcdGVjaG8gXCIkaW9fcGlkXCIgXHUwMDNlIFwiJChfY2dyb3VwMl9iYXNlX2RpcikvY2dyb3VwLnByb2NzXCJcbitcbitcdCMgUmVtb3ZlIHRoZSB0aHJvdHRsZSBjZ3JvdXAgd2hpbGUgaXRzIGJpbyBpcyBzdGlsbCBxdWV1ZWQuXG4rXHRybWRpciBcIiRDR1JPVVAyX0RJUi8kVEhST1RMX0RJUlwiXG4rXHRzbGVlcCAzXG4rXG4rXHRraWxsIFwiJGlvX3BpZFwiIDJcdTAwM2UvZGV2L251bGxcbitcdHdhaXQgXCIkaW9fcGlkXCIgMlx1MDAzZS9kZXYvbnVsbFxuK1xuK1x0IyAkVEhST1RMX0RJUiBpcyBhbHJlYWR5IGdvbmU7IHRlYXIgZG93biB0aGUgcmVzdCBieSBoYW5kLlxuK1x0aWYgW1sgJFRIUk9UTF9DTEVBUl9DR1JPVVAyX0RJUl9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cbitcdFx0ZWNobyBcIi1pb1wiIFx1MDAzZSBcIiRDR1JPVVAyX0RJUi9jZ3JvdXAuc3VidHJlZV9jb250cm9sXCJcbitcdGZpXG4rXHRpZiBbWyAkVEhST1RMX0NMRUFSX0JBU0VfU1VCVFJFRV9DT05UUk9MX0lPID09IHRydWUgXV07IHRoZW5cbitcdFx0ZWNobyBcIi1pb1wiIFx1MDAzZSBcIiQoX2Nncm91cDJfYmFzZV9kaXIpL2Nncm91cC5zdWJ0cmVlX2NvbnRyb2xcIlxuK1x0ZmlcbitcdF9leGl0X2Nncm91cDJcbitcdF9leGl0X3Rocm90bF9ibGtkZXZcbitcbitcdGlmIF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtcUUgXCJXQVJOSU5HOi4qKGJsay1jZ3JvdXB8YmxrLXRocm90dGxlKVwiOyB0aGVuXG4rXHRcdGVjaG8gXCJXQVJOSU5HOiBibGtjZy9ibGstdGhyb3R0bGUgd2FybmluZyBvbiBjZ3JvdXAgcmVtb3ZhbCB3aXRoIHF1ZXVlZCBJT1wiXG4rXHRcdF9kbWVzZ19zaW5jZV90ZXN0X3N0YXJ0IHwgZ3JlcCAtQSAxMiAtRSBcIldBUk5JTkc6LiooYmxrLWNncm91cHxibGstdGhyb3R0bGUpXCIgXFxcbitcdFx0XHRcdTAwM2VcdTAwM2UgXCIkRlVMTFwiXG4rXHRmaVxuK1xuK1x0ZWNobyBcIlRlc3QgY29tcGxldGVcIlxuK31cbmRpZmYgLS1naXQgYS90ZXN0cy90aHJvdGwvMDA5Lm91dCBiL3Rlc3RzL3Rocm90bC8wMDkub3V0XG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uYmU2NzVkZDlhNzU0NlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdGVzdHMvdGhyb3RsLzAwOS5vdXRcbkBAIC0wLDAgKzEsMiBAQFxuK1J1bm5pbmcgdGhyb3RsLzAwOVxuK1Rlc3QgY29tcGxldGVcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDExOjM0OjM1Ljk4Mzc0MDU2M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNjE1NzM2NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPUZhbHNlOiBCbGt0ZXN0cyBPbmx5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHRlc3Qgc2NyaXB0LCBgdGVzdHMvdGhyb3RsLzAwOWAsIGFuZCBpdHMgY29ycmVzcG9uZGluZyBvdXRwdXQsIGB0ZXN0cy90aHJvdGwvMDA5Lm91dGAuIFRoZXNlIGFyZSBjbGVhcmx5IHRlc3QgZmlsZXMsIG5vdCBrZXJuZWwgY29kZS4gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtLCBJIGRvbid0IHNlZSBhbnkgb3RoZXIgZmlsZXMgbW9kaWZpZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIHR3byBmaWxlczogYHRlc3RzL3Rocm90bC8wMDlgIGFuZCBgdGVzdHMvdGhyb3RsLzAwOS5vdXRgLiBHaXZlbiB0aGUgbG9jYXRpb24sIGl0J3MgbGlrZWx5IHBhcnQgb2YgdGhlIGBibGt0ZXN0c2Agc3VpdGUuIFNpbmNlIHRoaXMgcGF0Y2ggKm9ubHkqIGFkZHMgdGVzdCBzY3JpcHRzIGFuZCBkb2Vzbid0IHRvdWNoIGFueSBrZXJuZWwgc291cmNlIGNvZGUsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IHdhcnJhbnQgZnV6emluZy4gVGh1cywgSSdsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIEp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgY29uZmlybSB0aGUgZmlsZXMgYWdhaW4uLi4gWXVwOiBgdGVzdHMvdGhyb3RsLzAwOWAsIGB0ZXN0cy90aHJvdGwvMDA5Lm91dGAuIE9rYXksIHRob3NlIGFyZSBkZWZpbml0ZWx5IGJsa3Rlc3RzLiBUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjcyNywiT3V0cHV0VG9rZW5zIjo3NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDExOjM0OjQxLjM0NTMxNjkwOFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgdGVzdCBzY3JpcHQgYW5kIGl0cyBleHBlY3RlZCBvdXRwdXQgdG8gYSB0ZXN0IHN1aXRlIChsaWtlbHkgYmxrdGVzdHMpLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSBhbmQgdGhlcmVmb3JlIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHRlc3Qgc2NyaXB0IGFuZCBpdHMgZXhwZWN0ZWQgb3V0cHV0IHRvIGEgdGVzdCBzdWl0ZSAobGlrZWx5IGJsa3Rlc3RzKS4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUgYW5kIHRoZXJlZm9yZSBoYXMgbm8gZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMTozNDo0MS4zNDUzMzc1NjhaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowlh28c[1] Phase: Running StartedAt: 2026-08-25 11:34:53 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowlh28c[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-25 11:34:53 +0000 UTC FinishedAt: 2026-08-25 11:34:57 +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,}