Name: series-workflowq99fb Phase: Failed StartedAt: 2026-08-20 02:36:39 +0000 UTC FinishedAt: 2026-08-20 02:38:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq99fb[0] Phase: Succeeded StartedAt: 2026-08-20 02:36:39 +0000 UTC FinishedAt: 2026-08-20 02:38:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq99fb[0].run-triage Phase: Succeeded StartedAt: 2026-08-20 02:36:39 +0000 UTC FinishedAt: 2026-08-20 02:38:48 +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+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgQlBGIGRpc2Fzc2VtYmxlciB1c2VkIGZvciBsb2dnaW5nIGFuZCBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMuIEl0IGZpeGVzIHRoZSBkaXNhc3NlbWJseSBvdXRwdXQgZm9yIGFuIGludmFsaWQgQlBGX01FTVNYIGluc3RydWN0aW9uIHdpdGggQlBGX0RXIHNpemUsIHdoaWNoIGlzIGEgcHVyZWx5IGRlY29yYXRpdmUvbG9nZ2luZyBjaGFuZ2UgYW5kIGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDJhY2I3ZGZmOTcyOTYyZDRmMTI0MzFkOTcyM2E0ZjVmMDk2OGE5ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDIwIDAyOjM4OjE4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvZGlzYXNtLmMgYi9rZXJuZWwvYnBmL2Rpc2FzbS5jXG5pbmRleCA1MGIzY2E1MTQ5YTBhLi5iMWEzZmJlM2ZkYTUzIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9kaXNhc20uY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9kaXNhc20uY1xuQEAgLTI5NSw3ICYjNDM7Mjk1LDggQEAgdm9pZCBwcmludF9icGZfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc25fY2JzICpjYnMsXG4gXHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcJiMzNDtCVUdfc3RfJTAyeFwmIzM0OywgaW5zbi1cdTAwM2Vjb2RlKTtcbiBcdFx0fVxuIFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XG4tXHRcdGlmIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXHUwMDI2XHUwMDI2IEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB7XG4mIzQzO1x0XHRpZiAoKEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgIT0gQlBGX01FTSBcdTAwMjZcdTAwMjYgQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSAhPSBCUEZfTUVNU1gpIHx8XG4mIzQzO1x0XHQgICAgKEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgPT0gQlBGX01FTVNYIFx1MDAyNlx1MDAyNiBCUEZfU0laRShpbnNuLVx1MDAzZWNvZGUpID09IEJQRl9EVykpIHtcbiBcdFx0XHR2ZXJib3NlKGNicy1cdTAwM2Vwcml2YXRlX2RhdGEsIFwmIzM0O0JVR19sZHhfJTAyeFwmIzM0OywgaW5zbi1cdTAwM2Vjb2RlKTtcbiBcdFx0XHRyZXR1cm47XG4gXHRcdH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcbmluZGV4IGMxZjU1ZTFkODBhNDIuLjNjM2JiMDNlODIxN2EgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuY1xuQEAgLTMsNiAmIzQzOzMsNyBAQFxuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2JwZi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vLi4vLi4vaW5jbHVkZS9saW51eC9maWx0ZXIuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2JwZl9taXNjLmhcJiMzNDtcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuQEAgLTU1LDYgJiM0Mzs1NiwxOSBAQCBfX25ha2VkIHZvaWQgb3V0X29mX3JhbmdlX2p1bXAyKHZvaWQpXG4gXCYjMzQ7XHQ6OjogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuJiM0MztTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuJiM0MztfX2Rlc2NyaXB0aW9uKFwmIzM0O2ludmFsaWQgRFcgTERTWCBpbnN0cnVjdGlvbiBpbiBkaWFnbm9zdGljc1wmIzM0OylcbiYjNDM7X19mYWlsdXJlIF9fbXNnKFwmIzM0O0JVR19sZHhfOTlcJiMzNDspXG4mIzQzO19fbG9nX2xldmVsKDIpXG4mIzQzO19fbmFrZWQgdm9pZCBpbnZhbGlkX2R3X2xkc3godm9pZClcbiYjNDM7e1xuJiM0MztcdGFzbSB2b2xhdGlsZSAoXCYjMzQ7XHRcdFx0XHRcdFxcXG4mIzQzO1x0LjhieXRlICVbbGRzeF9kd107XHRcdFx0XHRcXFxuJiM0MztcJiMzNDtcdDpcbiYjNDM7XHQ6IF9faW1tX2luc24obGRzeF9kdywgQlBGX1JBV19JTlNOKEJQRl9MRFggfCBCUEZfTUVNU1ggfCBCUEZfRFcsIEJQRl9SRUdfMCwgQlBGX1JFR18wLCAwLCAwKSlcbiYjNDM7XHQ6IF9fY2xvYmJlcl9hbGwpO1xuJiM0Mzt9XG4mIzQzO1xuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtsb29wIChiYWNrLWVkZ2UpXCYjMzQ7KVxuIF9fZmFpbHVyZSBfX21zZyhcJiMzNDt1bnJlYWNoYWJsZSBpbnNuIDFcJiMzNDspXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMDI6Mzg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQyYWNiN2RmZjk3Mjk2MmQ0ZjEyNDMxZDk3MjNhNGY1ZjA5NjhhOWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyAyMCAwMjozODoxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvZGlzYXNtLmMgYi9rZXJuZWwvYnBmL2Rpc2FzbS5jCmluZGV4IDUwYjNjYTUxNDlhMGEuLmIxYTNmYmUzZmRhNTMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvZGlzYXNtLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9kaXNhc20uYwpAQCAtMjk1LDcgJiM0MzsyOTUsOCBAQCB2b2lkIHByaW50X2JwZl9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbl9jYnMgKmNicywKIAkJCXZlcmJvc2UoY2JzLSZndDtwcml2YXRlX2RhdGEsICYjMzQ7QlVHX3N0XyUwMngmIzM0OywgaW5zbi0mZ3Q7Y29kZSk7CiAJCX0KIAl9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRFgpIHsKLQkJaWYgKEJQRl9NT0RFKGluc24tJmd0O2NvZGUpICE9IEJQRl9NRU0gJmFtcDsmYW1wOyBCUEZfTU9ERShpbnNuLSZndDtjb2RlKSAhPSBCUEZfTUVNU1gpIHsKJiM0MzsJCWlmICgoQlBGX01PREUoaW5zbi0mZ3Q7Y29kZSkgIT0gQlBGX01FTSAmYW1wOyZhbXA7IEJQRl9NT0RFKGluc24tJmd0O2NvZGUpICE9IEJQRl9NRU1TWCkgfHwKJiM0MzsJCSAgICAoQlBGX01PREUoaW5zbi0mZ3Q7Y29kZSkgPT0gQlBGX01FTVNYICZhbXA7JmFtcDsgQlBGX1NJWkUoaW5zbi0mZ3Q7Y29kZSkgPT0gQlBGX0RXKSkgewogCQkJdmVyYm9zZShjYnMtJmd0O3ByaXZhdGVfZGF0YSwgJiMzNDtCVUdfbGR4XyUwMngmIzM0OywgaW5zbi0mZ3Q7Y29kZSk7CiAJCQlyZXR1cm47CiAJCX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuYwppbmRleCBjMWY1NWUxZDgwYTQyLi4zYzNiYjAzZTgyMTdhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jCkBAIC0zLDYgJiM0MzszLDcgQEAKIAogI2luY2x1ZGUgJmx0O2xpbnV4L2JwZi5oJmd0OwogI2luY2x1ZGUgJmx0O2JwZi9icGZfaGVscGVycy5oJmd0OwomIzQzOyNpbmNsdWRlICYjMzQ7Li4vLi4vLi4vaW5jbHVkZS9saW51eC9maWx0ZXIuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2JwZl9taXNjLmgmIzM0OwogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKQEAgLTU1LDYgJiM0Mzs1NiwxOSBAQCBfX25ha2VkIHZvaWQgb3V0X29mX3JhbmdlX2p1bXAyKHZvaWQpCiAmIzM0Owk6OjogX19jbG9iYmVyX2FsbCk7CiB9CiAKJiM0MztTRUMoJiMzNDtzb2NrZXQmIzM0OykKJiM0MztfX2Rlc2NyaXB0aW9uKCYjMzQ7aW52YWxpZCBEVyBMRFNYIGluc3RydWN0aW9uIGluIGRpYWdub3N0aWNzJiMzNDspCiYjNDM7X19mYWlsdXJlIF9fbXNnKCYjMzQ7QlVHX2xkeF85OSYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDIpCiYjNDM7X19uYWtlZCB2b2lkIGludmFsaWRfZHdfbGRzeCh2b2lkKQomIzQzO3sKJiM0MzsJYXNtIHZvbGF0aWxlICgmIzM0OwkJCQkJXAomIzQzOwkuOGJ5dGUgJVtsZHN4X2R3XTsJCQkJXAomIzQzOyYjMzQ7CToKJiM0MzsJOiBfX2ltbV9pbnNuKGxkc3hfZHcsIEJQRl9SQVdfSU5TTihCUEZfTERYIHwgQlBGX01FTVNYIHwgQlBGX0RXLCBCUEZfUkVHXzAsIEJQRl9SRUdfMCwgMCwgMCkpCiYjNDM7CTogX19jbG9iYmVyX2FsbCk7CiYjNDM7fQomIzQzOwogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7bG9vcCAoYmFjay1lZGdlKSYjMzQ7KQogX19mYWlsdXJlIF9fbXNnKCYjMzQ7dW5yZWFjaGFibGUgaW5zbiAxJiMzNDspCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MzAKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAzMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQlBGIERpc2Fzc2VtYmxlciBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgYGtlcm5lbC9icGYvZGlzYXNtLmNgIGFuZCBhZGRzIGEgdGVzdCB0byBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jYC4gVGhlIGNvcmUgY2hhbmdlIGluIHRoZSBkaXNhc3NlbWJsZXIgaXMgdGhpczogdGhleSYjMzk7cmUgY29ycmVjdGluZyBob3cgaXQgaGFuZGxlcyBgQlBGX01FTVNYYCBpbnN0cnVjdGlvbnMgd2l0aCBhIGBCUEZfRFdgIHNpemUg4oCTIHNwZWNpZmljYWxseSwgY2F0Y2hpbmcgYW4gaW52YWxpZCBjb21iaW5hdGlvbi4gVGhlIG9yaWdpbmFsIGNvZGUgZGlkbiYjMzk7dCBhY2NvdW50IGZvciB0aGlzIGVkZ2UgY2FzZS4gVGhlIGRpc2Fzc2VtYmxlciBpcyBhIGNyaXRpY2FsIHV0aWxpdHkuIEl0JiMzOTtzIHVzZWQgZm9yIGFsbCBraW5kcyBvZiB0aGluZ3MgbGlrZSBsb2dnaW5nLCB0cmFjaW5nLCBkdW1waW5nIEJQRiBwcm9ncmFtcywgd2hpY2ggbWFrZXMgbWUgdGhpbmsuLi4gaXMgdGhpcyBhIHBvdGVudGlhbCB0YXJnZXQgZm9yIGZ1enppbmc/CgpPbiBkZWVwZXIgdGhvdWdodCwgaXQgb25seSBhZmZlY3RzIHRoZSBvdXRwdXQgb2YgYHByaW50X2JwZl9pbnNuYCwgd2hpY2ggaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgcHJpbnRzIG91dCBCUEYgaW5zdHJ1Y3Rpb25zLiBOb3QgdGhlIGluc3RydWN0aW9uIGV4ZWN1dGlvbiBpdHNlbGYuIFRoZXJlZm9yZSwgaXQmIzM5O3MgYWJvdXQgdGhlICpwcmVzZW50YXRpb24qIG9mIHRoZSBpbnN0cnVjdGlvbiwgbm90IGl0cyB1bmRlcmx5aW5nIGJlaGF2aW9yLiBUaGF0IG1pZ2h0IG1ha2UgaXQgbGVzcyBjcml0aWNhbCBpbiB0ZXJtcyBvZiBmdW5jdGlvbmFsIGNvcnJlY3RuZXNzLi4uYnV0IGFueSBkaXZlcmdlbmNlIGZyb20gdGhlIGFjdHVhbCBwcm9ncmFtIHRoYXQgaXMgdXNlZCBmb3IgbG9nZ2luZyBpcyBjb25jZXJuaW5nLiBTbyBJIG5lZWQgdG8gdmVyaWZ5IGFsbCB0aGUgdXNlcyBvZiBgcHJpbnRfYnBmX2luc25gLiBMZXQmIzM5O3Mgc2VlIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBhbmQgaG93IGl0IGZlZWRzIGludG8gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAwMjozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmludF9icGZfaW5zbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL2RpYWdub3N0aWNzLmM9NjA4PXN0YXRpYyB2b2lkIGZvcm1hdF9kaXNhc21fbGluZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsXG4tLVxua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jLTYzMi1cbmtlcm5lbC9icGYvZGlhZ25vc3RpY3MuYzo2MzM6XHRwcmludF9icGZfaW5zbihcdTAwMjZjYnMsIGluc24sIGVudi1cdTAwM2VhbGxvd19wdHJfbGVha3MpO1xua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jLTYzNC1cdHNlcV9idWZfc3RyKFx1MDAyNmN0eC5zZXEpO1xuLS1cbmtlcm5lbC9icGYvZGlzYXNtLmM9MTgxPXN0YXRpYyBpbmxpbmUgYm9vbCBpc19tb3ZfcGVyY3B1X2FkZHIoY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuKVxuLS1cbmtlcm5lbC9icGYvZGlzYXNtLmMtMTg1LVxua2VybmVsL2JwZi9kaXNhc20uYzoxODY6dm9pZCBwcmludF9icGZfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc25fY2JzICpjYnMsXG5rZXJuZWwvYnBmL2Rpc2FzbS5jLTE4Ny1cdFx0ICAgIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL2Rpc2FzbS5oPTMwPXN0cnVjdCBicGZfaW5zbl9jYnMge1xuLS1cbmtlcm5lbC9icGYvZGlzYXNtLmgtMzYtXG5rZXJuZWwvYnBmL2Rpc2FzbS5oOjM3OnZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxua2VybmVsL2JwZi9kaXNhc20uaC0zOC1cdFx0ICAgIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MzMyMj12b2lkIGJwZl92ZXJib3NlX2luc24oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0zMzI5LVxua2VybmVsL2JwZi92ZXJpZmllci5jOjMzMzA6XHRwcmludF9icGZfaW5zbihcdTAwMjZjYnMsIGluc24sIGVudi1cdTAwM2VhbGxvd19wdHJfbGVha3MpO1xua2VybmVsL2JwZi92ZXJpZmllci5jLTMzMzEtfVxuLS1cbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYz0yMDU9dm9pZCBkdW1wX3hsYXRlZF9qc29uKHN0cnVjdCBkdW1wX2RhdGEgKmRkLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4sXG4tLVxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTI1Ny1cdFx0anNvbndfbmFtZShqc29uX3d0ciwgXCYjMzQ7ZGlzYXNtXCYjMzQ7KTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzoyNTg6XHRcdHByaW50X2JwZl9pbnNuKFx1MDAyNmNicywgaW5zbiAmIzQzOyBpLCB0cnVlKTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0yNTktXG4tLVxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jPTI5MD12b2lkIGR1bXBfeGxhdGVkX3BsYWluKHN0cnVjdCBkdW1wX2RhdGEgKmRkLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4sXG4tLVxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTMzOS1cdFx0cHJpbnRmKFwmIzM0OyU0dTogXCYjMzQ7LCBpKTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzozNDA6XHRcdHByaW50X2JwZl9pbnNuKFx1MDAyNmNicywgaW5zbiAmIzQzOyBpLCB0cnVlKTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0zNDEtXHRcdHByaW50ZihcJiMzNDtcXG5cJiMzNDspO1xuLS1cbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYz0zNTU9dm9pZCBkdW1wX3hsYXRlZF9mb3JfZ3JhcGgoc3RydWN0IGR1bXBfZGF0YSAqZGQsIHZvaWQgKmJ1Zl9zdGFydCwgdm9pZCAqYnVmX2VuZCxcbi0tXG50b29scy9icGYvYnBmdG9vbC94bGF0ZWRfZHVtcGVyLmMtNDA2LVx0XHRwcmludGYoXCYjMzQ7JXU6IFwmIzM0OywgaW5zbl9vZmYpO1xudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jOjQwNzpcdFx0cHJpbnRfYnBmX2luc24oXHUwMDI2Y2JzLCBjdXIsIHRydWUpO1xudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTQwOC1cdFx0cHJpbnRmKFwmIzM0O1xcXFxsXFxcXFxcblwmIzM0Oyk7XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmM9Mzg9c3RydWN0IGJwZl9pbnNuICpkaXNhc21faW5zbihzdHJ1Y3QgYnBmX2luc24gKmluc24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9zeilcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvZGlzYXNtX2hlbHBlcnMuYy01Mi1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9kaXNhc21faGVscGVycy5jOjUzOlx0cHJpbnRfYnBmX2luc24oXHUwMDI2Y2JzLCBpbnNuLCB0cnVlKTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9kaXNhc21faGVscGVycy5jLTU0LVx0LyogV2Ugc2hhcmUgY29kZSB3aXRoIGtlcm5lbCBCUEYgZGlzYXNzZW1ibGVyLCBpdCBhZGRzICYjMzk7KEZGKSAmIzM5OyBwcmVmaXhcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAwMjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjU2CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJQRiBJbnN0cnVjdGlvbiBMb2dnaW5nIENoYW5nZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIHByb21wdCBjbGVhcmx5IHN0YXRlcyB0aGUgY3JpdGVyaWEgZm9yIGRldGVybWluaW5nIGlmIGEgY2hhbmdlIGlzICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBkZWNvcmF0aXZlIHN0dWZmIGxpa2UgbG9nZ2luZywgYW5kIGNoYW5nZXMgdG8gbm9uLWZ1bmN0aW9uYWwgbnVtZXJpYyBjb25zdGFudHMgYXJlIGFsbCBuby1nb3MuCgpNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCB0aGlzIGNoYW5nZSBmYWxscyBzcXVhcmVseSBpbnRvIHRoZSAmIzM0O2RlY29yYXRpdmUgbG9nZ2luZyYjMzQ7IGNhdGVnb3J5LiBTcGVjaWZpY2FsbHksIGl0IG1vZGlmaWVzIHRoZSBgcHJpbnRfYnBmX2luc25gIGZ1bmN0aW9uLCB3aGljaCBpcyB1c2VkIGZvciBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMsIG1vc3RseSBmb3IgZGVidWdnaW5nIGFuZCBsb2dnaW5nLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIGFib3V0IGhvdyBhbiBpbnZhbGlkIGluc3RydWN0aW9uIGlzIHByZXNlbnRlZCBpbiB0aGUgb3V0cHV0IOKAkyBzd2FwcGluZyB0aGUgZGlzYXNzZW1ibHkgYXR0ZW1wdCBmb3IgYSBzaW1wbGUgJiMzNDtCVUdfbGR4Xzk5JiMzNDsgbWVzc2FnZS4gVGhpcyBkb2VzbiYjMzk7dCBhY3R1YWxseSBhbHRlciBob3cgdGhlIGtlcm5lbCAqYmVoYXZlcyogd2hlbiBpdCBlbmNvdW50ZXJzIHRoYXQgaW52YWxpZCBpbnN0cnVjdGlvbi4gVGhlIEJQRiB2ZXJpZmllciBzdGlsbCBkb2VzIGl0cyBqb2IsIHRoZSBpbnN0cnVjdGlvbiBnZXRzIHJlamVjdGVkLCBhbmQgdGhpbmdzIHByb2NlZWQgYXMgdGhleSBzaG91bGQsIGFsYmVpdCB3aXRoIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG1lc3NhZ2UgaW4gdGhlIGxvZ3MuIFB1cmVseSBjb3NtZXRpYywgcmlnaHQ/CgpCdXQgd2FpdOKApiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLiBEb2VzIHRoaXMgY2hhbmdlIHNvbWVob3cgdG91Y2ggdGhlIHZlcmlmaWVy4oCZcyAqZXhlY3V0aW9uKiBmbG93PyBFdmVuIGEgc2xpZ2h0IG1vZGlmaWNhdGlvbiBjb3VsZCBtYXR0ZXIuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgcHJpbnRfYnBmX2luc25gIGluIGBrZXJuZWwvYnBmL2Rpc2FzbS5jYCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcgYW5kIG1ha2Ugc3VyZSBpdCBkb2VzbiYjMzk7dCBzdWJ0bHkgaW5mbHVlbmNlIGFueXRoaW5nIGNyaXRpY2FsLiBHb3R0YSBjb3ZlciBhbGwgbXkgYmFzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMDI6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtrZXJuZWwvYnBmL2Rpc2FzbS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyOTA6XHRcdFx0XHRcdGluc24tXHUwMDNlZHN0X3JlZyxcbiAyOTE6XHRcdFx0XHRcdGluc24tXHUwMDNlb2ZmLCBpbnNuLVx1MDAzZWltbSk7XG4gMjkyOlx0XHRcdH0gZWxzZSBpZiAoQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSA9PSAweGMwIC8qIEJQRl9OT1NQRUMsIG5vIFVBUEkgKi8pIHtcbiAyOTM6XHRcdFx0XHR2ZXJib3NlKGNicy1cdTAwM2Vwcml2YXRlX2RhdGEsIFwmIzM0OyglMDJ4KSBub3NwZWNcJiMzNDssIGluc24tXHUwMDNlY29kZSk7XG4gMjk0Olx0XHRcdH0gZWxzZSB7XG4gMjk1Olx0XHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcJiMzNDtCVUdfc3RfJTAyeFwmIzM0OywgaW5zbi1cdTAwM2Vjb2RlKTtcbiAyOTY6XHRcdFx0fVxuIDI5NzpcdFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XG4gMjk4Olx0XHRcdGlmICgoQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSAhPSBCUEZfTUVNIFx1MDAyNlx1MDAyNiBCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU1TWCkgfHxcbiAyOTk6XHRcdFx0ICAgIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpID09IEJQRl9NRU1TWCBcdTAwMjZcdTAwMjYgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSA9PSBCUEZfRFcpKSB7XG4gMzAwOlx0XHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcJiMzNDtCVUdfbGR4XyUwMnhcJiMzNDssIGluc24tXHUwMDNlY29kZSk7XG4gMzAxOlx0XHRcdFx0cmV0dXJuO1xuIDMwMjpcdFx0XHR9XG4gMzAzOlx0XHRcdHZlcmJvc2UoY2JzLVx1MDAzZXByaXZhdGVfZGF0YSwgXCYjMzQ7KCUwMngpIHIlZCA9ICooJXMgKikociVkICUmIzQzO2QpXCYjMzQ7LFxuIDMwNDpcdFx0XHRcdGluc24tXHUwMDNlY29kZSwgaW5zbi1cdTAwM2Vkc3RfcmVnLFxuIDMwNTpcdFx0XHRcdEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgPT0gQlBGX01FTSA/XG4gMzA2Olx0XHRcdFx0XHQgYnBmX2xkc3Rfc3RyaW5nW0JQRl9TSVpFKGluc24tXHUwMDNlY29kZSkgXHUwMDNlXHUwMDNlIDNdIDpcbiAzMDc6XHRcdFx0XHRcdCBicGZfbGRzeF9zdHJpbmdbQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSBcdTAwM2VcdTAwM2UgM10sXG4gMzA4Olx0XHRcdFx0aW5zbi1cdTAwM2VzcmNfcmVnLCBpbnNuLVx1MDAzZW9mZik7XG4gMzA5Olx0XHR9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyOTMKCQkJCQkJCW91dHB1dDogOTEKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIGB2ZXJib3NlYCBhbmQgRnV6emluZyBXb3J0aGluZXNzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGV4YW1pbmVkIHRoaXMgY29kZSBzbmlwcGV0LiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBhY3R1YWxseS4gVGhlIGB2ZXJib3NlYCBjYWxsIGlzIHNpbXBseSBhIGxvZ2dpbmcgb3IgYnVmZmVyaW5nIG1lY2hhbmlzbS4gSXQmIzM5O3MgZGVzaWduZWQgdG8gcHJpbnQgaW5mb3JtYXRpb24gdG8gZWl0aGVyIGEgbG9nIGZpbGUgb3Igc29tZSBpbnRlcm5hbCBidWZmZXIuIEltcG9ydGFudGx5LCBpdCBkb2VzbiYjMzk7dCAqY2hhbmdlKiB0aGUgdW5kZXJseWluZyBvcGVyYXRpb25hbCBmbG93IG9mIHRoZSBrZXJuZWwuIEl0JiMzOTtzIGp1c3QgYWJvdXQgdGhlIHZlcmlmaWVyJiMzOTtzIGxvZ2dpbmcgb3V0cHV0LgoKR2l2ZW4gdGhpcyB1bmRlcnN0YW5kaW5nLCB0aGUgZGV0ZXJtaW5hdGlvbiBpcyBjbGVhcjogdGhpcyBwYXJ0aWN1bGFyIHBhdGggc2hvdWxkICpub3QqIGJlIGNvbnNpZGVyZWQgJiMzNDtXb3J0aEZ1enppbmcuJiMzNDsgSXQmIzM5O3MgbWVyZWx5IGEgcmVwb3J0aW5nIG9yIGRlYnVnZ2luZyB0b29sLCBub3QgY29yZSBmdW5jdGlvbmFsaXR5LiBUaGVyZWZvcmUsIEkgd2lsbCBub3cgZXhwbGljaXRseSBzZXQgdGhlIGBXb3J0aEZ1enppbmdgIGZsYWcgdG8gYGZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAwMjozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgQlBGIGRpc2Fzc2VtYmxlciB1c2VkIGZvciBsb2dnaW5nIGFuZCBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMuIEl0IGZpeGVzIHRoZSBkaXNhc3NlbWJseSBvdXRwdXQgZm9yIGFuIGludmFsaWQgQlBGX01FTVNYIGluc3RydWN0aW9uIHdpdGggQlBGX0RXIHNpemUsIHdoaWNoIGlzIGEgcHVyZWx5IGRlY29yYXRpdmUvbG9nZ2luZyBjaGFuZ2UgYW5kIGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODoxOS45MDg4NDM4NjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODQ5NjI5NDQyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMDI6Mzg6MTkuOTA4ODQ5NTQ1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzQxMjI1Mzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDJhY2I3ZGZmOTcyOTYyZDRmMTI0MzFkOTcyM2E0ZjVmMDk2OGE5ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyMCAwMjozODoxOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2Rpc2FzbS5jIGIva2VybmVsL2JwZi9kaXNhc20uY1xcbmluZGV4IDUwYjNjYTUxNDlhMGEuLmIxYTNmYmUzZmRhNTMgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi9kaXNhc20uY1xcbisrKyBiL2tlcm5lbC9icGYvZGlzYXNtLmNcXG5AQCAtMjk1LDcgKzI5NSw4IEBAIHZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxcbiBcXHRcXHRcXHR2ZXJib3NlKGNicy1cXHUwMDNlcHJpdmF0ZV9kYXRhLCBcXFwiQlVHX3N0XyUwMnhcXFwiLCBpbnNuLVxcdTAwM2Vjb2RlKTtcXG4gXFx0XFx0fVxcbiBcXHR9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRFgpIHtcXG4tXFx0XFx0aWYgKEJQRl9NT0RFKGluc24tXFx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXFx1MDAyNlxcdTAwMjYgQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB7XFxuK1xcdFxcdGlmICgoQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgIT0gQlBGX01FTSBcXHUwMDI2XFx1MDAyNiBCUEZfTU9ERShpbnNuLVxcdTAwM2Vjb2RlKSAhPSBCUEZfTUVNU1gpIHx8XFxuK1xcdFxcdCAgICAoQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgPT0gQlBGX01FTVNYIFxcdTAwMjZcXHUwMDI2IEJQRl9TSVpFKGluc24tXFx1MDAzZWNvZGUpID09IEJQRl9EVykpIHtcXG4gXFx0XFx0XFx0dmVyYm9zZShjYnMtXFx1MDAzZXByaXZhdGVfZGF0YSwgXFxcIkJVR19sZHhfJTAyeFxcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiBcXHRcXHRcXHRyZXR1cm47XFxuIFxcdFxcdH1cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jXFxuaW5kZXggYzFmNTVlMWQ4MGE0Mi4uM2MzYmIwM2U4MjE3YSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcXG5AQCAtMyw2ICszLDcgQEBcXG4gXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9icGYuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2JwZi9icGZfaGVscGVycy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXFwiLi4vLi4vLi4vaW5jbHVkZS9saW51eC9maWx0ZXIuaFxcXCJcXG4gI2luY2x1ZGUgXFxcImJwZl9taXNjLmhcXFwiXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuQEAgLTU1LDYgKzU2LDE5IEBAIF9fbmFrZWQgdm9pZCBvdXRfb2ZfcmFuZ2VfanVtcDIodm9pZClcXG4gXFxcIlxcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcXG4gfVxcbiBcXG4rU0VDKFxcXCJzb2NrZXRcXFwiKVxcbitfX2Rlc2NyaXB0aW9uKFxcXCJpbnZhbGlkIERXIExEU1ggaW5zdHJ1Y3Rpb24gaW4gZGlhZ25vc3RpY3NcXFwiKVxcbitfX2ZhaWx1cmUgX19tc2coXFxcIkJVR19sZHhfOTlcXFwiKVxcbitfX2xvZ19sZXZlbCgyKVxcbitfX25ha2VkIHZvaWQgaW52YWxpZF9kd19sZHN4KHZvaWQpXFxuK3tcXG4rXFx0YXNtIHZvbGF0aWxlIChcXFwiXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQuOGJ5dGUgJVtsZHN4X2R3XTtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcXCJcXHQ6XFxuK1xcdDogX19pbW1faW5zbihsZHN4X2R3LCBCUEZfUkFXX0lOU04oQlBGX0xEWCB8IEJQRl9NRU1TWCB8IEJQRl9EVywgQlBGX1JFR18wLCBCUEZfUkVHXzAsIDAsIDApKVxcbitcXHQ6IF9fY2xvYmJlcl9hbGwpO1xcbit9XFxuK1xcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImxvb3AgKGJhY2stZWRnZSlcXFwiKVxcbiBfX2ZhaWx1cmUgX19tc2coXFxcInVucmVhY2hhYmxlIGluc24gMVxcXCIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDAyOjM4OjIxLjI1MDc2NDI5NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3MTU0MzU2Mjc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBCUEYgZGlzYXNzZW1ibGVyIHVzZWQgZm9yIGxvZ2dpbmcgYW5kIGR1bXBpbmcgQlBGIGluc3RydWN0aW9ucy4gSXQgZml4ZXMgdGhlIGRpc2Fzc2VtYmx5IG91dHB1dCBmb3IgYW4gaW52YWxpZCBCUEZfTUVNU1ggaW5zdHJ1Y3Rpb24gd2l0aCBCUEZfRFcgc2l6ZSwgd2hpY2ggaXMgYSBwdXJlbHkgZGVjb3JhdGl2ZS9sb2dnaW5nIGNoYW5nZSBhbmQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQyYWNiN2RmZjk3Mjk2MmQ0ZjEyNDMxZDk3MjNhNGY1ZjA5NjhhOWRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyMCAwMjozODoxOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvZGlzYXNtLmMgYi9rZXJuZWwvYnBmL2Rpc2FzbS5jXG5pbmRleCA1MGIzY2E1MTQ5YTBhLi5iMWEzZmJlM2ZkYTUzIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9kaXNhc20uY1xuKysrIGIva2VybmVsL2JwZi9kaXNhc20uY1xuQEAgLTI5NSw3ICsyOTUsOCBAQCB2b2lkIHByaW50X2JwZl9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbl9jYnMgKmNicyxcbiBcdFx0XHR2ZXJib3NlKGNicy1cdTAwM2Vwcml2YXRlX2RhdGEsIFwiQlVHX3N0XyUwMnhcIiwgaW5zbi1cdTAwM2Vjb2RlKTtcbiBcdFx0fVxuIFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XG4tXHRcdGlmIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXHUwMDI2XHUwMDI2IEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB7XG4rXHRcdGlmICgoQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSAhPSBCUEZfTUVNIFx1MDAyNlx1MDAyNiBCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU1TWCkgfHxcbitcdFx0ICAgIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpID09IEJQRl9NRU1TWCBcdTAwMjZcdTAwMjYgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSA9PSBCUEZfRFcpKSB7XG4gXHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcIkJVR19sZHhfJTAyeFwiLCBpbnNuLVx1MDAzZWNvZGUpO1xuIFx0XHRcdHJldHVybjtcbiBcdFx0fVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuY1xuaW5kZXggYzFmNTVlMWQ4MGE0Mi4uM2MzYmIwM2U4MjE3YSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jXG5AQCAtMyw2ICszLDcgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9icGYuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2JwZi9icGZfaGVscGVycy5oXHUwMDNlXG4rI2luY2x1ZGUgXCIuLi8uLi8uLi9pbmNsdWRlL2xpbnV4L2ZpbHRlci5oXCJcbiAjaW5jbHVkZSBcImJwZl9taXNjLmhcIlxuIFxuIFNFQyhcInNvY2tldFwiKVxuQEAgLTU1LDYgKzU2LDE5IEBAIF9fbmFrZWQgdm9pZCBvdXRfb2ZfcmFuZ2VfanVtcDIodm9pZClcbiBcIlx0Ojo6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbitTRUMoXCJzb2NrZXRcIilcbitfX2Rlc2NyaXB0aW9uKFwiaW52YWxpZCBEVyBMRFNYIGluc3RydWN0aW9uIGluIGRpYWdub3N0aWNzXCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiQlVHX2xkeF85OVwiKVxuK19fbG9nX2xldmVsKDIpXG4rX19uYWtlZCB2b2lkIGludmFsaWRfZHdfbGRzeCh2b2lkKVxuK3tcbitcdGFzbSB2b2xhdGlsZSAoXCJcdFx0XHRcdFx0XFxcbitcdC44Ynl0ZSAlW2xkc3hfZHddO1x0XHRcdFx0XFxcbitcIlx0OlxuK1x0OiBfX2ltbV9pbnNuKGxkc3hfZHcsIEJQRl9SQVdfSU5TTihCUEZfTERYIHwgQlBGX01FTVNYIHwgQlBGX0RXLCBCUEZfUkVHXzAsIEJQRl9SRUdfMCwgMCwgMCkpXG4rXHQ6IF9fY2xvYmJlcl9hbGwpO1xuK31cbitcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwibG9vcCAoYmFjay1lZGdlKVwiKVxuIF9fZmFpbHVyZSBfX21zZyhcInVucmVhY2hhYmxlIGluc24gMVwiKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMDI6Mzg6MjEuMjUwNzY1NjA0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjExNjcxNDI1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCUEYgRGlzYXNzZW1ibGVyIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgYGtlcm5lbC9icGYvZGlzYXNtLmNgIGFuZCBhZGRzIGEgdGVzdCB0byBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jYC4gVGhlIGNvcmUgY2hhbmdlIGluIHRoZSBkaXNhc3NlbWJsZXIgaXMgdGhpczogdGhleSdyZSBjb3JyZWN0aW5nIGhvdyBpdCBoYW5kbGVzIGBCUEZfTUVNU1hgIGluc3RydWN0aW9ucyB3aXRoIGEgYEJQRl9EV2Agc2l6ZSDigJMgc3BlY2lmaWNhbGx5LCBjYXRjaGluZyBhbiBpbnZhbGlkIGNvbWJpbmF0aW9uLiBUaGUgb3JpZ2luYWwgY29kZSBkaWRuJ3QgYWNjb3VudCBmb3IgdGhpcyBlZGdlIGNhc2UuIFRoZSBkaXNhc3NlbWJsZXIgaXMgYSBjcml0aWNhbCB1dGlsaXR5LiBJdCdzIHVzZWQgZm9yIGFsbCBraW5kcyBvZiB0aGluZ3MgbGlrZSBsb2dnaW5nLCB0cmFjaW5nLCBkdW1waW5nIEJQRiBwcm9ncmFtcywgd2hpY2ggbWFrZXMgbWUgdGhpbmsuLi4gaXMgdGhpcyBhIHBvdGVudGlhbCB0YXJnZXQgZm9yIGZ1enppbmc/XG5cbk9uIGRlZXBlciB0aG91Z2h0LCBpdCBvbmx5IGFmZmVjdHMgdGhlIG91dHB1dCBvZiBgcHJpbnRfYnBmX2luc25gLCB3aGljaCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBwcmludHMgb3V0IEJQRiBpbnN0cnVjdGlvbnMuIE5vdCB0aGUgaW5zdHJ1Y3Rpb24gZXhlY3V0aW9uIGl0c2VsZi4gVGhlcmVmb3JlLCBpdCdzIGFib3V0IHRoZSAqcHJlc2VudGF0aW9uKiBvZiB0aGUgaW5zdHJ1Y3Rpb24sIG5vdCBpdHMgdW5kZXJseWluZyBiZWhhdmlvci4gVGhhdCBtaWdodCBtYWtlIGl0IGxlc3MgY3JpdGljYWwgaW4gdGVybXMgb2YgZnVuY3Rpb25hbCBjb3JyZWN0bmVzcy4uLmJ1dCBhbnkgZGl2ZXJnZW5jZSBmcm9tIHRoZSBhY3R1YWwgcHJvZ3JhbSB0aGF0IGlzIHVzZWQgZm9yIGxvZ2dpbmcgaXMgY29uY2VybmluZy4gU28gSSBuZWVkIHRvIHZlcmlmeSBhbGwgdGhlIHVzZXMgb2YgYHByaW50X2JwZl9pbnNuYC4gTGV0J3Mgc2VlIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBhbmQgaG93IGl0IGZlZWRzIGludG8gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUzMCwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDAyOjM4OjI3LjM2NzQ4MzY5MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA0NjE0MTEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInByaW50X2JwZl9pbnNuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvZGlhZ25vc3RpY3MuYz02MDg9c3RhdGljIHZvaWQgZm9ybWF0X2Rpc2FzbV9saW5lKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpbnNuX2lkeCxcXG4tLVxcbmtlcm5lbC9icGYvZGlhZ25vc3RpY3MuYy02MzItXFxua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jOjYzMzpcXHRwcmludF9icGZfaW5zbihcXHUwMDI2Y2JzLCBpbnNuLCBlbnYtXFx1MDAzZWFsbG93X3B0cl9sZWFrcyk7XFxua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jLTYzNC1cXHRzZXFfYnVmX3N0cihcXHUwMDI2Y3R4LnNlcSk7XFxuLS1cXG5rZXJuZWwvYnBmL2Rpc2FzbS5jPTE4MT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfbW92X3BlcmNwdV9hZGRyKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbilcXG4tLVxcbmtlcm5lbC9icGYvZGlzYXNtLmMtMTg1LVxcbmtlcm5lbC9icGYvZGlzYXNtLmM6MTg2OnZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxcbmtlcm5lbC9icGYvZGlzYXNtLmMtMTg3LVxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL2Rpc2FzbS5oPTMwPXN0cnVjdCBicGZfaW5zbl9jYnMge1xcbi0tXFxua2VybmVsL2JwZi9kaXNhc20uaC0zNi1cXG5rZXJuZWwvYnBmL2Rpc2FzbS5oOjM3OnZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxcbmtlcm5lbC9icGYvZGlzYXNtLmgtMzgtXFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0zMzIyPXZvaWQgYnBmX3ZlcmJvc2VfaW5zbihzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMzMyOS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MzMzMDpcXHRwcmludF9icGZfaW5zbihcXHUwMDI2Y2JzLCBpbnNuLCBlbnYtXFx1MDAzZWFsbG93X3B0cl9sZWFrcyk7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTMzMzEtfVxcbi0tXFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jPTIwNT12b2lkIGR1bXBfeGxhdGVkX2pzb24oc3RydWN0IGR1bXBfZGF0YSAqZGQsIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbixcXG4tLVxcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0yNTctXFx0XFx0anNvbndfbmFtZShqc29uX3d0ciwgXFxcImRpc2FzbVxcXCIpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzoyNTg6XFx0XFx0cHJpbnRfYnBmX2luc24oXFx1MDAyNmNicywgaW5zbiArIGksIHRydWUpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0yNTktXFxuLS1cXG50b29scy9icGYvYnBmdG9vbC94bGF0ZWRfZHVtcGVyLmM9MjkwPXZvaWQgZHVtcF94bGF0ZWRfcGxhaW4oc3RydWN0IGR1bXBfZGF0YSAqZGQsIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbixcXG4tLVxcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0zMzktXFx0XFx0cHJpbnRmKFxcXCIlNHU6IFxcXCIsIGkpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzozNDA6XFx0XFx0cHJpbnRfYnBmX2luc24oXFx1MDAyNmNicywgaW5zbiArIGksIHRydWUpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0zNDEtXFx0XFx0cHJpbnRmKFxcXCJcXFxcblxcXCIpO1xcbi0tXFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jPTM1NT12b2lkIGR1bXBfeGxhdGVkX2Zvcl9ncmFwaChzdHJ1Y3QgZHVtcF9kYXRhICpkZCwgdm9pZCAqYnVmX3N0YXJ0LCB2b2lkICpidWZfZW5kLFxcbi0tXFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTQwNi1cXHRcXHRwcmludGYoXFxcIiV1OiBcXFwiLCBpbnNuX29mZik7XFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jOjQwNzpcXHRcXHRwcmludF9icGZfaW5zbihcXHUwMDI2Y2JzLCBjdXIsIHRydWUpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy00MDgtXFx0XFx0cHJpbnRmKFxcXCJcXFxcXFxcXGxcXFxcXFxcXFxcXFxuXFxcIik7XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvZGlzYXNtX2hlbHBlcnMuYz0zOD1zdHJ1Y3QgYnBmX2luc24gKmRpc2FzbV9pbnNuKHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgY2hhciAqYnVmLCBzaXplX3QgYnVmX3N6KVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmMtNTItXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmM6NTM6XFx0cHJpbnRfYnBmX2luc24oXFx1MDAyNmNicywgaW5zbiwgdHJ1ZSk7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmMtNTQtXFx0LyogV2Ugc2hhcmUgY29kZSB3aXRoIGtlcm5lbCBCUEYgZGlzYXNzZW1ibGVyLCBpdCBhZGRzICcoRkYpICcgcHJlZml4XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDAyOjM4OjI5LjM3MjEwNjM5NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNDY5NjQzMzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQlBGIEluc3RydWN0aW9uIExvZ2dpbmcgQ2hhbmdlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIHByb21wdCBjbGVhcmx5IHN0YXRlcyB0aGUgY3JpdGVyaWEgZm9yIGRldGVybWluaW5nIGlmIGEgY2hhbmdlIGlzIFwiV29ydGhGdXp6aW5nXCIuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogZG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgY29tbWVudHMsIGRlY29yYXRpdmUgc3R1ZmYgbGlrZSBsb2dnaW5nLCBhbmQgY2hhbmdlcyB0byBub24tZnVuY3Rpb25hbCBudW1lcmljIGNvbnN0YW50cyBhcmUgYWxsIG5vLWdvcy5cblxuTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBjaGFuZ2UgZmFsbHMgc3F1YXJlbHkgaW50byB0aGUgXCJkZWNvcmF0aXZlIGxvZ2dpbmdcIiBjYXRlZ29yeS4gU3BlY2lmaWNhbGx5LCBpdCBtb2RpZmllcyB0aGUgYHByaW50X2JwZl9pbnNuYCBmdW5jdGlvbiwgd2hpY2ggaXMgdXNlZCBmb3IgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLCBtb3N0bHkgZm9yIGRlYnVnZ2luZyBhbmQgbG9nZ2luZy4gVGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhYm91dCBob3cgYW4gaW52YWxpZCBpbnN0cnVjdGlvbiBpcyBwcmVzZW50ZWQgaW4gdGhlIG91dHB1dCDigJMgc3dhcHBpbmcgdGhlIGRpc2Fzc2VtYmx5IGF0dGVtcHQgZm9yIGEgc2ltcGxlIFwiQlVHX2xkeF85OVwiIG1lc3NhZ2UuIFRoaXMgZG9lc24ndCBhY3R1YWxseSBhbHRlciBob3cgdGhlIGtlcm5lbCAqYmVoYXZlcyogd2hlbiBpdCBlbmNvdW50ZXJzIHRoYXQgaW52YWxpZCBpbnN0cnVjdGlvbi4gVGhlIEJQRiB2ZXJpZmllciBzdGlsbCBkb2VzIGl0cyBqb2IsIHRoZSBpbnN0cnVjdGlvbiBnZXRzIHJlamVjdGVkLCBhbmQgdGhpbmdzIHByb2NlZWQgYXMgdGhleSBzaG91bGQsIGFsYmVpdCB3aXRoIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG1lc3NhZ2UgaW4gdGhlIGxvZ3MuIFB1cmVseSBjb3NtZXRpYywgcmlnaHQ/XG5cbkJ1dCB3YWl04oCmIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIERvZXMgdGhpcyBjaGFuZ2Ugc29tZWhvdyB0b3VjaCB0aGUgdmVyaWZpZXLigJlzICpleGVjdXRpb24qIGZsb3c/IEV2ZW4gYSBzbGlnaHQgbW9kaWZpY2F0aW9uIGNvdWxkIG1hdHRlci4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYHByaW50X2JwZl9pbnNuYCBpbiBga2VybmVsL2JwZi9kaXNhc20uY2AgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIGFuZCBtYWtlIHN1cmUgaXQgZG9lc24ndCBzdWJ0bHkgaW5mbHVlbmNlIGFueXRoaW5nIGNyaXRpY2FsLiBHb3R0YSBjb3ZlciBhbGwgbXkgYmFzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyNTYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMDI6Mzg6MzQuNzE5MDc1Mjc5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc4MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwia2VybmVsL2JwZi9kaXNhc20uY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOTAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyOTA6XFx0XFx0XFx0XFx0XFx0aW5zbi1cXHUwMDNlZHN0X3JlZyxcXG4gMjkxOlxcdFxcdFxcdFxcdFxcdGluc24tXFx1MDAzZW9mZiwgaW5zbi1cXHUwMDNlaW1tKTtcXG4gMjkyOlxcdFxcdFxcdH0gZWxzZSBpZiAoQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgPT0gMHhjMCAvKiBCUEZfTk9TUEVDLCBubyBVQVBJICovKSB7XFxuIDI5MzpcXHRcXHRcXHRcXHR2ZXJib3NlKGNicy1cXHUwMDNlcHJpdmF0ZV9kYXRhLCBcXFwiKCUwMngpIG5vc3BlY1xcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiAyOTQ6XFx0XFx0XFx0fSBlbHNlIHtcXG4gMjk1OlxcdFxcdFxcdFxcdHZlcmJvc2UoY2JzLVxcdTAwM2Vwcml2YXRlX2RhdGEsIFxcXCJCVUdfc3RfJTAyeFxcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiAyOTY6XFx0XFx0XFx0fVxcbiAyOTc6XFx0XFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XFxuIDI5ODpcXHRcXHRcXHRpZiAoKEJQRl9NT0RFKGluc24tXFx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXFx1MDAyNlxcdTAwMjYgQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB8fFxcbiAyOTk6XFx0XFx0XFx0ICAgIChCUEZfTU9ERShpbnNuLVxcdTAwM2Vjb2RlKSA9PSBCUEZfTUVNU1ggXFx1MDAyNlxcdTAwMjYgQlBGX1NJWkUoaW5zbi1cXHUwMDNlY29kZSkgPT0gQlBGX0RXKSkge1xcbiAzMDA6XFx0XFx0XFx0XFx0dmVyYm9zZShjYnMtXFx1MDAzZXByaXZhdGVfZGF0YSwgXFxcIkJVR19sZHhfJTAyeFxcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiAzMDE6XFx0XFx0XFx0XFx0cmV0dXJuO1xcbiAzMDI6XFx0XFx0XFx0fVxcbiAzMDM6XFx0XFx0XFx0dmVyYm9zZShjYnMtXFx1MDAzZXByaXZhdGVfZGF0YSwgXFxcIiglMDJ4KSByJWQgPSAqKCVzICopKHIlZCAlK2QpXFxcIixcXG4gMzA0OlxcdFxcdFxcdFxcdGluc24tXFx1MDAzZWNvZGUsIGluc24tXFx1MDAzZWRzdF9yZWcsXFxuIDMwNTpcXHRcXHRcXHRcXHRCUEZfTU9ERShpbnNuLVxcdTAwM2Vjb2RlKSA9PSBCUEZfTUVNID9cXG4gMzA2OlxcdFxcdFxcdFxcdFxcdCBicGZfbGRzdF9zdHJpbmdbQlBGX1NJWkUoaW5zbi1cXHUwMDNlY29kZSkgXFx1MDAzZVxcdTAwM2UgM10gOlxcbiAzMDc6XFx0XFx0XFx0XFx0XFx0IGJwZl9sZHN4X3N0cmluZ1tCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSBcXHUwMDNlXFx1MDAzZSAzXSxcXG4gMzA4OlxcdFxcdFxcdFxcdGluc24tXFx1MDAzZXNyY19yZWcsIGluc24tXFx1MDAzZW9mZik7XFxuIDMwOTpcXHRcXHR9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODozNC43MTkxNDQ3ODlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjg1OTQ4MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgYHZlcmJvc2VgIGFuZCBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGV4YW1pbmVkIHRoaXMgY29kZSBzbmlwcGV0LiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGFjdHVhbGx5LiBUaGUgYHZlcmJvc2VgIGNhbGwgaXMgc2ltcGx5IGEgbG9nZ2luZyBvciBidWZmZXJpbmcgbWVjaGFuaXNtLiBJdCdzIGRlc2lnbmVkIHRvIHByaW50IGluZm9ybWF0aW9uIHRvIGVpdGhlciBhIGxvZyBmaWxlIG9yIHNvbWUgaW50ZXJuYWwgYnVmZmVyLiBJbXBvcnRhbnRseSwgaXQgZG9lc24ndCAqY2hhbmdlKiB0aGUgdW5kZXJseWluZyBvcGVyYXRpb25hbCBmbG93IG9mIHRoZSBrZXJuZWwuIEl0J3MganVzdCBhYm91dCB0aGUgdmVyaWZpZXIncyBsb2dnaW5nIG91dHB1dC5cblxuR2l2ZW4gdGhpcyB1bmRlcnN0YW5kaW5nLCB0aGUgZGV0ZXJtaW5hdGlvbiBpcyBjbGVhcjogdGhpcyBwYXJ0aWN1bGFyIHBhdGggc2hvdWxkICpub3QqIGJlIGNvbnNpZGVyZWQgXCJXb3J0aEZ1enppbmcuXCIgSXQncyBtZXJlbHkgYSByZXBvcnRpbmcgb3IgZGVidWdnaW5nIHRvb2wsIG5vdCBjb3JlIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSB3aWxsIG5vdyBleHBsaWNpdGx5IHNldCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjkzLCJPdXRwdXRUb2tlbnMiOjkxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODozOC40MDUwOTU2MDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgQlBGIGRpc2Fzc2VtYmxlciB1c2VkIGZvciBsb2dnaW5nIGFuZCBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMuIEl0IGZpeGVzIHRoZSBkaXNhc3NlbWJseSBvdXRwdXQgZm9yIGFuIGludmFsaWQgQlBGX01FTVNYIGluc3RydWN0aW9uIHdpdGggQlBGX0RXIHNpemUsIHdoaWNoIGlzIGEgcHVyZWx5IGRlY29yYXRpdmUvbG9nZ2luZyBjaGFuZ2UgYW5kIGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODozOC40MDUxMjE5OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowq99fb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-20 02:36:39 +0000 UTC FinishedAt: 2026-08-20 02:38:38 +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+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgQlBGIGRpc2Fzc2VtYmxlciB1c2VkIGZvciBsb2dnaW5nIGFuZCBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMuIEl0IGZpeGVzIHRoZSBkaXNhc3NlbWJseSBvdXRwdXQgZm9yIGFuIGludmFsaWQgQlBGX01FTVNYIGluc3RydWN0aW9uIHdpdGggQlBGX0RXIHNpemUsIHdoaWNoIGlzIGEgcHVyZWx5IGRlY29yYXRpdmUvbG9nZ2luZyBjaGFuZ2UgYW5kIGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDJhY2I3ZGZmOTcyOTYyZDRmMTI0MzFkOTcyM2E0ZjVmMDk2OGE5ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDIwIDAyOjM4OjE4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvZGlzYXNtLmMgYi9rZXJuZWwvYnBmL2Rpc2FzbS5jXG5pbmRleCA1MGIzY2E1MTQ5YTBhLi5iMWEzZmJlM2ZkYTUzIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9kaXNhc20uY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9kaXNhc20uY1xuQEAgLTI5NSw3ICYjNDM7Mjk1LDggQEAgdm9pZCBwcmludF9icGZfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc25fY2JzICpjYnMsXG4gXHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcJiMzNDtCVUdfc3RfJTAyeFwmIzM0OywgaW5zbi1cdTAwM2Vjb2RlKTtcbiBcdFx0fVxuIFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XG4tXHRcdGlmIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXHUwMDI2XHUwMDI2IEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB7XG4mIzQzO1x0XHRpZiAoKEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgIT0gQlBGX01FTSBcdTAwMjZcdTAwMjYgQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSAhPSBCUEZfTUVNU1gpIHx8XG4mIzQzO1x0XHQgICAgKEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgPT0gQlBGX01FTVNYIFx1MDAyNlx1MDAyNiBCUEZfU0laRShpbnNuLVx1MDAzZWNvZGUpID09IEJQRl9EVykpIHtcbiBcdFx0XHR2ZXJib3NlKGNicy1cdTAwM2Vwcml2YXRlX2RhdGEsIFwmIzM0O0JVR19sZHhfJTAyeFwmIzM0OywgaW5zbi1cdTAwM2Vjb2RlKTtcbiBcdFx0XHRyZXR1cm47XG4gXHRcdH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcbmluZGV4IGMxZjU1ZTFkODBhNDIuLjNjM2JiMDNlODIxN2EgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuY1xuQEAgLTMsNiAmIzQzOzMsNyBAQFxuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2JwZi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vLi4vLi4vaW5jbHVkZS9saW51eC9maWx0ZXIuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2JwZl9taXNjLmhcJiMzNDtcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuQEAgLTU1LDYgJiM0Mzs1NiwxOSBAQCBfX25ha2VkIHZvaWQgb3V0X29mX3JhbmdlX2p1bXAyKHZvaWQpXG4gXCYjMzQ7XHQ6OjogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuJiM0MztTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuJiM0MztfX2Rlc2NyaXB0aW9uKFwmIzM0O2ludmFsaWQgRFcgTERTWCBpbnN0cnVjdGlvbiBpbiBkaWFnbm9zdGljc1wmIzM0OylcbiYjNDM7X19mYWlsdXJlIF9fbXNnKFwmIzM0O0JVR19sZHhfOTlcJiMzNDspXG4mIzQzO19fbG9nX2xldmVsKDIpXG4mIzQzO19fbmFrZWQgdm9pZCBpbnZhbGlkX2R3X2xkc3godm9pZClcbiYjNDM7e1xuJiM0MztcdGFzbSB2b2xhdGlsZSAoXCYjMzQ7XHRcdFx0XHRcdFxcXG4mIzQzO1x0LjhieXRlICVbbGRzeF9kd107XHRcdFx0XHRcXFxuJiM0MztcJiMzNDtcdDpcbiYjNDM7XHQ6IF9faW1tX2luc24obGRzeF9kdywgQlBGX1JBV19JTlNOKEJQRl9MRFggfCBCUEZfTUVNU1ggfCBCUEZfRFcsIEJQRl9SRUdfMCwgQlBGX1JFR18wLCAwLCAwKSlcbiYjNDM7XHQ6IF9fY2xvYmJlcl9hbGwpO1xuJiM0Mzt9XG4mIzQzO1xuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtsb29wIChiYWNrLWVkZ2UpXCYjMzQ7KVxuIF9fZmFpbHVyZSBfX21zZyhcJiMzNDt1bnJlYWNoYWJsZSBpbnNuIDFcJiMzNDspXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMDI6Mzg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQyYWNiN2RmZjk3Mjk2MmQ0ZjEyNDMxZDk3MjNhNGY1ZjA5NjhhOWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyAyMCAwMjozODoxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvZGlzYXNtLmMgYi9rZXJuZWwvYnBmL2Rpc2FzbS5jCmluZGV4IDUwYjNjYTUxNDlhMGEuLmIxYTNmYmUzZmRhNTMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvZGlzYXNtLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9kaXNhc20uYwpAQCAtMjk1LDcgJiM0MzsyOTUsOCBAQCB2b2lkIHByaW50X2JwZl9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbl9jYnMgKmNicywKIAkJCXZlcmJvc2UoY2JzLSZndDtwcml2YXRlX2RhdGEsICYjMzQ7QlVHX3N0XyUwMngmIzM0OywgaW5zbi0mZ3Q7Y29kZSk7CiAJCX0KIAl9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRFgpIHsKLQkJaWYgKEJQRl9NT0RFKGluc24tJmd0O2NvZGUpICE9IEJQRl9NRU0gJmFtcDsmYW1wOyBCUEZfTU9ERShpbnNuLSZndDtjb2RlKSAhPSBCUEZfTUVNU1gpIHsKJiM0MzsJCWlmICgoQlBGX01PREUoaW5zbi0mZ3Q7Y29kZSkgIT0gQlBGX01FTSAmYW1wOyZhbXA7IEJQRl9NT0RFKGluc24tJmd0O2NvZGUpICE9IEJQRl9NRU1TWCkgfHwKJiM0MzsJCSAgICAoQlBGX01PREUoaW5zbi0mZ3Q7Y29kZSkgPT0gQlBGX01FTVNYICZhbXA7JmFtcDsgQlBGX1NJWkUoaW5zbi0mZ3Q7Y29kZSkgPT0gQlBGX0RXKSkgewogCQkJdmVyYm9zZShjYnMtJmd0O3ByaXZhdGVfZGF0YSwgJiMzNDtCVUdfbGR4XyUwMngmIzM0OywgaW5zbi0mZ3Q7Y29kZSk7CiAJCQlyZXR1cm47CiAJCX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuYwppbmRleCBjMWY1NWUxZDgwYTQyLi4zYzNiYjAzZTgyMTdhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jCkBAIC0zLDYgJiM0MzszLDcgQEAKIAogI2luY2x1ZGUgJmx0O2xpbnV4L2JwZi5oJmd0OwogI2luY2x1ZGUgJmx0O2JwZi9icGZfaGVscGVycy5oJmd0OwomIzQzOyNpbmNsdWRlICYjMzQ7Li4vLi4vLi4vaW5jbHVkZS9saW51eC9maWx0ZXIuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2JwZl9taXNjLmgmIzM0OwogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKQEAgLTU1LDYgJiM0Mzs1NiwxOSBAQCBfX25ha2VkIHZvaWQgb3V0X29mX3JhbmdlX2p1bXAyKHZvaWQpCiAmIzM0Owk6OjogX19jbG9iYmVyX2FsbCk7CiB9CiAKJiM0MztTRUMoJiMzNDtzb2NrZXQmIzM0OykKJiM0MztfX2Rlc2NyaXB0aW9uKCYjMzQ7aW52YWxpZCBEVyBMRFNYIGluc3RydWN0aW9uIGluIGRpYWdub3N0aWNzJiMzNDspCiYjNDM7X19mYWlsdXJlIF9fbXNnKCYjMzQ7QlVHX2xkeF85OSYjMzQ7KQomIzQzO19fbG9nX2xldmVsKDIpCiYjNDM7X19uYWtlZCB2b2lkIGludmFsaWRfZHdfbGRzeCh2b2lkKQomIzQzO3sKJiM0MzsJYXNtIHZvbGF0aWxlICgmIzM0OwkJCQkJXAomIzQzOwkuOGJ5dGUgJVtsZHN4X2R3XTsJCQkJXAomIzQzOyYjMzQ7CToKJiM0MzsJOiBfX2ltbV9pbnNuKGxkc3hfZHcsIEJQRl9SQVdfSU5TTihCUEZfTERYIHwgQlBGX01FTVNYIHwgQlBGX0RXLCBCUEZfUkVHXzAsIEJQRl9SRUdfMCwgMCwgMCkpCiYjNDM7CTogX19jbG9iYmVyX2FsbCk7CiYjNDM7fQomIzQzOwogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7bG9vcCAoYmFjay1lZGdlKSYjMzQ7KQogX19mYWlsdXJlIF9fbXNnKCYjMzQ7dW5yZWFjaGFibGUgaW5zbiAxJiMzNDspCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MzAKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAzMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQlBGIERpc2Fzc2VtYmxlciBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgYGtlcm5lbC9icGYvZGlzYXNtLmNgIGFuZCBhZGRzIGEgdGVzdCB0byBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jYC4gVGhlIGNvcmUgY2hhbmdlIGluIHRoZSBkaXNhc3NlbWJsZXIgaXMgdGhpczogdGhleSYjMzk7cmUgY29ycmVjdGluZyBob3cgaXQgaGFuZGxlcyBgQlBGX01FTVNYYCBpbnN0cnVjdGlvbnMgd2l0aCBhIGBCUEZfRFdgIHNpemUg4oCTIHNwZWNpZmljYWxseSwgY2F0Y2hpbmcgYW4gaW52YWxpZCBjb21iaW5hdGlvbi4gVGhlIG9yaWdpbmFsIGNvZGUgZGlkbiYjMzk7dCBhY2NvdW50IGZvciB0aGlzIGVkZ2UgY2FzZS4gVGhlIGRpc2Fzc2VtYmxlciBpcyBhIGNyaXRpY2FsIHV0aWxpdHkuIEl0JiMzOTtzIHVzZWQgZm9yIGFsbCBraW5kcyBvZiB0aGluZ3MgbGlrZSBsb2dnaW5nLCB0cmFjaW5nLCBkdW1waW5nIEJQRiBwcm9ncmFtcywgd2hpY2ggbWFrZXMgbWUgdGhpbmsuLi4gaXMgdGhpcyBhIHBvdGVudGlhbCB0YXJnZXQgZm9yIGZ1enppbmc/CgpPbiBkZWVwZXIgdGhvdWdodCwgaXQgb25seSBhZmZlY3RzIHRoZSBvdXRwdXQgb2YgYHByaW50X2JwZl9pbnNuYCwgd2hpY2ggaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgcHJpbnRzIG91dCBCUEYgaW5zdHJ1Y3Rpb25zLiBOb3QgdGhlIGluc3RydWN0aW9uIGV4ZWN1dGlvbiBpdHNlbGYuIFRoZXJlZm9yZSwgaXQmIzM5O3MgYWJvdXQgdGhlICpwcmVzZW50YXRpb24qIG9mIHRoZSBpbnN0cnVjdGlvbiwgbm90IGl0cyB1bmRlcmx5aW5nIGJlaGF2aW9yLiBUaGF0IG1pZ2h0IG1ha2UgaXQgbGVzcyBjcml0aWNhbCBpbiB0ZXJtcyBvZiBmdW5jdGlvbmFsIGNvcnJlY3RuZXNzLi4uYnV0IGFueSBkaXZlcmdlbmNlIGZyb20gdGhlIGFjdHVhbCBwcm9ncmFtIHRoYXQgaXMgdXNlZCBmb3IgbG9nZ2luZyBpcyBjb25jZXJuaW5nLiBTbyBJIG5lZWQgdG8gdmVyaWZ5IGFsbCB0aGUgdXNlcyBvZiBgcHJpbnRfYnBmX2luc25gLiBMZXQmIzM5O3Mgc2VlIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBhbmQgaG93IGl0IGZlZWRzIGludG8gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAwMjozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmludF9icGZfaW5zbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL2RpYWdub3N0aWNzLmM9NjA4PXN0YXRpYyB2b2lkIGZvcm1hdF9kaXNhc21fbGluZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsXG4tLVxua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jLTYzMi1cbmtlcm5lbC9icGYvZGlhZ25vc3RpY3MuYzo2MzM6XHRwcmludF9icGZfaW5zbihcdTAwMjZjYnMsIGluc24sIGVudi1cdTAwM2VhbGxvd19wdHJfbGVha3MpO1xua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jLTYzNC1cdHNlcV9idWZfc3RyKFx1MDAyNmN0eC5zZXEpO1xuLS1cbmtlcm5lbC9icGYvZGlzYXNtLmM9MTgxPXN0YXRpYyBpbmxpbmUgYm9vbCBpc19tb3ZfcGVyY3B1X2FkZHIoY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuKVxuLS1cbmtlcm5lbC9icGYvZGlzYXNtLmMtMTg1LVxua2VybmVsL2JwZi9kaXNhc20uYzoxODY6dm9pZCBwcmludF9icGZfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc25fY2JzICpjYnMsXG5rZXJuZWwvYnBmL2Rpc2FzbS5jLTE4Ny1cdFx0ICAgIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL2Rpc2FzbS5oPTMwPXN0cnVjdCBicGZfaW5zbl9jYnMge1xuLS1cbmtlcm5lbC9icGYvZGlzYXNtLmgtMzYtXG5rZXJuZWwvYnBmL2Rpc2FzbS5oOjM3OnZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxua2VybmVsL2JwZi9kaXNhc20uaC0zOC1cdFx0ICAgIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MzMyMj12b2lkIGJwZl92ZXJib3NlX2luc24oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0zMzI5LVxua2VybmVsL2JwZi92ZXJpZmllci5jOjMzMzA6XHRwcmludF9icGZfaW5zbihcdTAwMjZjYnMsIGluc24sIGVudi1cdTAwM2VhbGxvd19wdHJfbGVha3MpO1xua2VybmVsL2JwZi92ZXJpZmllci5jLTMzMzEtfVxuLS1cbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYz0yMDU9dm9pZCBkdW1wX3hsYXRlZF9qc29uKHN0cnVjdCBkdW1wX2RhdGEgKmRkLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4sXG4tLVxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTI1Ny1cdFx0anNvbndfbmFtZShqc29uX3d0ciwgXCYjMzQ7ZGlzYXNtXCYjMzQ7KTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzoyNTg6XHRcdHByaW50X2JwZl9pbnNuKFx1MDAyNmNicywgaW5zbiAmIzQzOyBpLCB0cnVlKTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0yNTktXG4tLVxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jPTI5MD12b2lkIGR1bXBfeGxhdGVkX3BsYWluKHN0cnVjdCBkdW1wX2RhdGEgKmRkLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4sXG4tLVxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTMzOS1cdFx0cHJpbnRmKFwmIzM0OyU0dTogXCYjMzQ7LCBpKTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzozNDA6XHRcdHByaW50X2JwZl9pbnNuKFx1MDAyNmNicywgaW5zbiAmIzQzOyBpLCB0cnVlKTtcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0zNDEtXHRcdHByaW50ZihcJiMzNDtcXG5cJiMzNDspO1xuLS1cbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYz0zNTU9dm9pZCBkdW1wX3hsYXRlZF9mb3JfZ3JhcGgoc3RydWN0IGR1bXBfZGF0YSAqZGQsIHZvaWQgKmJ1Zl9zdGFydCwgdm9pZCAqYnVmX2VuZCxcbi0tXG50b29scy9icGYvYnBmdG9vbC94bGF0ZWRfZHVtcGVyLmMtNDA2LVx0XHRwcmludGYoXCYjMzQ7JXU6IFwmIzM0OywgaW5zbl9vZmYpO1xudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jOjQwNzpcdFx0cHJpbnRfYnBmX2luc24oXHUwMDI2Y2JzLCBjdXIsIHRydWUpO1xudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTQwOC1cdFx0cHJpbnRmKFwmIzM0O1xcXFxsXFxcXFxcblwmIzM0Oyk7XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmM9Mzg9c3RydWN0IGJwZl9pbnNuICpkaXNhc21faW5zbihzdHJ1Y3QgYnBmX2luc24gKmluc24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9zeilcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvZGlzYXNtX2hlbHBlcnMuYy01Mi1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9kaXNhc21faGVscGVycy5jOjUzOlx0cHJpbnRfYnBmX2luc24oXHUwMDI2Y2JzLCBpbnNuLCB0cnVlKTtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9kaXNhc21faGVscGVycy5jLTU0LVx0LyogV2Ugc2hhcmUgY29kZSB3aXRoIGtlcm5lbCBCUEYgZGlzYXNzZW1ibGVyLCBpdCBhZGRzICYjMzk7KEZGKSAmIzM5OyBwcmVmaXhcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAwMjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjU2CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJQRiBJbnN0cnVjdGlvbiBMb2dnaW5nIENoYW5nZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIHByb21wdCBjbGVhcmx5IHN0YXRlcyB0aGUgY3JpdGVyaWEgZm9yIGRldGVybWluaW5nIGlmIGEgY2hhbmdlIGlzICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBkZWNvcmF0aXZlIHN0dWZmIGxpa2UgbG9nZ2luZywgYW5kIGNoYW5nZXMgdG8gbm9uLWZ1bmN0aW9uYWwgbnVtZXJpYyBjb25zdGFudHMgYXJlIGFsbCBuby1nb3MuCgpNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCB0aGlzIGNoYW5nZSBmYWxscyBzcXVhcmVseSBpbnRvIHRoZSAmIzM0O2RlY29yYXRpdmUgbG9nZ2luZyYjMzQ7IGNhdGVnb3J5LiBTcGVjaWZpY2FsbHksIGl0IG1vZGlmaWVzIHRoZSBgcHJpbnRfYnBmX2luc25gIGZ1bmN0aW9uLCB3aGljaCBpcyB1c2VkIGZvciBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMsIG1vc3RseSBmb3IgZGVidWdnaW5nIGFuZCBsb2dnaW5nLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIGFib3V0IGhvdyBhbiBpbnZhbGlkIGluc3RydWN0aW9uIGlzIHByZXNlbnRlZCBpbiB0aGUgb3V0cHV0IOKAkyBzd2FwcGluZyB0aGUgZGlzYXNzZW1ibHkgYXR0ZW1wdCBmb3IgYSBzaW1wbGUgJiMzNDtCVUdfbGR4Xzk5JiMzNDsgbWVzc2FnZS4gVGhpcyBkb2VzbiYjMzk7dCBhY3R1YWxseSBhbHRlciBob3cgdGhlIGtlcm5lbCAqYmVoYXZlcyogd2hlbiBpdCBlbmNvdW50ZXJzIHRoYXQgaW52YWxpZCBpbnN0cnVjdGlvbi4gVGhlIEJQRiB2ZXJpZmllciBzdGlsbCBkb2VzIGl0cyBqb2IsIHRoZSBpbnN0cnVjdGlvbiBnZXRzIHJlamVjdGVkLCBhbmQgdGhpbmdzIHByb2NlZWQgYXMgdGhleSBzaG91bGQsIGFsYmVpdCB3aXRoIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG1lc3NhZ2UgaW4gdGhlIGxvZ3MuIFB1cmVseSBjb3NtZXRpYywgcmlnaHQ/CgpCdXQgd2FpdOKApiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLiBEb2VzIHRoaXMgY2hhbmdlIHNvbWVob3cgdG91Y2ggdGhlIHZlcmlmaWVy4oCZcyAqZXhlY3V0aW9uKiBmbG93PyBFdmVuIGEgc2xpZ2h0IG1vZGlmaWNhdGlvbiBjb3VsZCBtYXR0ZXIuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgcHJpbnRfYnBmX2luc25gIGluIGBrZXJuZWwvYnBmL2Rpc2FzbS5jYCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcgYW5kIG1ha2Ugc3VyZSBpdCBkb2VzbiYjMzk7dCBzdWJ0bHkgaW5mbHVlbmNlIGFueXRoaW5nIGNyaXRpY2FsLiBHb3R0YSBjb3ZlciBhbGwgbXkgYmFzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMDI6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtrZXJuZWwvYnBmL2Rpc2FzbS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyOTA6XHRcdFx0XHRcdGluc24tXHUwMDNlZHN0X3JlZyxcbiAyOTE6XHRcdFx0XHRcdGluc24tXHUwMDNlb2ZmLCBpbnNuLVx1MDAzZWltbSk7XG4gMjkyOlx0XHRcdH0gZWxzZSBpZiAoQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSA9PSAweGMwIC8qIEJQRl9OT1NQRUMsIG5vIFVBUEkgKi8pIHtcbiAyOTM6XHRcdFx0XHR2ZXJib3NlKGNicy1cdTAwM2Vwcml2YXRlX2RhdGEsIFwmIzM0OyglMDJ4KSBub3NwZWNcJiMzNDssIGluc24tXHUwMDNlY29kZSk7XG4gMjk0Olx0XHRcdH0gZWxzZSB7XG4gMjk1Olx0XHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcJiMzNDtCVUdfc3RfJTAyeFwmIzM0OywgaW5zbi1cdTAwM2Vjb2RlKTtcbiAyOTY6XHRcdFx0fVxuIDI5NzpcdFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XG4gMjk4Olx0XHRcdGlmICgoQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSAhPSBCUEZfTUVNIFx1MDAyNlx1MDAyNiBCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU1TWCkgfHxcbiAyOTk6XHRcdFx0ICAgIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpID09IEJQRl9NRU1TWCBcdTAwMjZcdTAwMjYgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSA9PSBCUEZfRFcpKSB7XG4gMzAwOlx0XHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcJiMzNDtCVUdfbGR4XyUwMnhcJiMzNDssIGluc24tXHUwMDNlY29kZSk7XG4gMzAxOlx0XHRcdFx0cmV0dXJuO1xuIDMwMjpcdFx0XHR9XG4gMzAzOlx0XHRcdHZlcmJvc2UoY2JzLVx1MDAzZXByaXZhdGVfZGF0YSwgXCYjMzQ7KCUwMngpIHIlZCA9ICooJXMgKikociVkICUmIzQzO2QpXCYjMzQ7LFxuIDMwNDpcdFx0XHRcdGluc24tXHUwMDNlY29kZSwgaW5zbi1cdTAwM2Vkc3RfcmVnLFxuIDMwNTpcdFx0XHRcdEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgPT0gQlBGX01FTSA/XG4gMzA2Olx0XHRcdFx0XHQgYnBmX2xkc3Rfc3RyaW5nW0JQRl9TSVpFKGluc24tXHUwMDNlY29kZSkgXHUwMDNlXHUwMDNlIDNdIDpcbiAzMDc6XHRcdFx0XHRcdCBicGZfbGRzeF9zdHJpbmdbQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSBcdTAwM2VcdTAwM2UgM10sXG4gMzA4Olx0XHRcdFx0aW5zbi1cdTAwM2VzcmNfcmVnLCBpbnNuLVx1MDAzZW9mZik7XG4gMzA5Olx0XHR9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyOTMKCQkJCQkJCW91dHB1dDogOTEKCQkJCQkJCXRob3VnaHRzOiA1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIGB2ZXJib3NlYCBhbmQgRnV6emluZyBXb3J0aGluZXNzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGV4YW1pbmVkIHRoaXMgY29kZSBzbmlwcGV0LiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBhY3R1YWxseS4gVGhlIGB2ZXJib3NlYCBjYWxsIGlzIHNpbXBseSBhIGxvZ2dpbmcgb3IgYnVmZmVyaW5nIG1lY2hhbmlzbS4gSXQmIzM5O3MgZGVzaWduZWQgdG8gcHJpbnQgaW5mb3JtYXRpb24gdG8gZWl0aGVyIGEgbG9nIGZpbGUgb3Igc29tZSBpbnRlcm5hbCBidWZmZXIuIEltcG9ydGFudGx5LCBpdCBkb2VzbiYjMzk7dCAqY2hhbmdlKiB0aGUgdW5kZXJseWluZyBvcGVyYXRpb25hbCBmbG93IG9mIHRoZSBrZXJuZWwuIEl0JiMzOTtzIGp1c3QgYWJvdXQgdGhlIHZlcmlmaWVyJiMzOTtzIGxvZ2dpbmcgb3V0cHV0LgoKR2l2ZW4gdGhpcyB1bmRlcnN0YW5kaW5nLCB0aGUgZGV0ZXJtaW5hdGlvbiBpcyBjbGVhcjogdGhpcyBwYXJ0aWN1bGFyIHBhdGggc2hvdWxkICpub3QqIGJlIGNvbnNpZGVyZWQgJiMzNDtXb3J0aEZ1enppbmcuJiMzNDsgSXQmIzM5O3MgbWVyZWx5IGEgcmVwb3J0aW5nIG9yIGRlYnVnZ2luZyB0b29sLCBub3QgY29yZSBmdW5jdGlvbmFsaXR5LiBUaGVyZWZvcmUsIEkgd2lsbCBub3cgZXhwbGljaXRseSBzZXQgdGhlIGBXb3J0aEZ1enppbmdgIGZsYWcgdG8gYGZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAwMjozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgQlBGIGRpc2Fzc2VtYmxlciB1c2VkIGZvciBsb2dnaW5nIGFuZCBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMuIEl0IGZpeGVzIHRoZSBkaXNhc3NlbWJseSBvdXRwdXQgZm9yIGFuIGludmFsaWQgQlBGX01FTVNYIGluc3RydWN0aW9uIHdpdGggQlBGX0RXIHNpemUsIHdoaWNoIGlzIGEgcHVyZWx5IGRlY29yYXRpdmUvbG9nZ2luZyBjaGFuZ2UgYW5kIGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDAyOjM4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODoxOS45MDg4NDM4NjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODQ5NjI5NDQyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMDI6Mzg6MTkuOTA4ODQ5NTQ1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzQxMjI1Mzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDJhY2I3ZGZmOTcyOTYyZDRmMTI0MzFkOTcyM2E0ZjVmMDk2OGE5ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyMCAwMjozODoxOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2Rpc2FzbS5jIGIva2VybmVsL2JwZi9kaXNhc20uY1xcbmluZGV4IDUwYjNjYTUxNDlhMGEuLmIxYTNmYmUzZmRhNTMgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi9kaXNhc20uY1xcbisrKyBiL2tlcm5lbC9icGYvZGlzYXNtLmNcXG5AQCAtMjk1LDcgKzI5NSw4IEBAIHZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxcbiBcXHRcXHRcXHR2ZXJib3NlKGNicy1cXHUwMDNlcHJpdmF0ZV9kYXRhLCBcXFwiQlVHX3N0XyUwMnhcXFwiLCBpbnNuLVxcdTAwM2Vjb2RlKTtcXG4gXFx0XFx0fVxcbiBcXHR9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRFgpIHtcXG4tXFx0XFx0aWYgKEJQRl9NT0RFKGluc24tXFx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXFx1MDAyNlxcdTAwMjYgQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB7XFxuK1xcdFxcdGlmICgoQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgIT0gQlBGX01FTSBcXHUwMDI2XFx1MDAyNiBCUEZfTU9ERShpbnNuLVxcdTAwM2Vjb2RlKSAhPSBCUEZfTUVNU1gpIHx8XFxuK1xcdFxcdCAgICAoQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgPT0gQlBGX01FTVNYIFxcdTAwMjZcXHUwMDI2IEJQRl9TSVpFKGluc24tXFx1MDAzZWNvZGUpID09IEJQRl9EVykpIHtcXG4gXFx0XFx0XFx0dmVyYm9zZShjYnMtXFx1MDAzZXByaXZhdGVfZGF0YSwgXFxcIkJVR19sZHhfJTAyeFxcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiBcXHRcXHRcXHRyZXR1cm47XFxuIFxcdFxcdH1cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jXFxuaW5kZXggYzFmNTVlMWQ4MGE0Mi4uM2MzYmIwM2U4MjE3YSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfY2ZnLmNcXG5AQCAtMyw2ICszLDcgQEBcXG4gXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9icGYuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2JwZi9icGZfaGVscGVycy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXFwiLi4vLi4vLi4vaW5jbHVkZS9saW51eC9maWx0ZXIuaFxcXCJcXG4gI2luY2x1ZGUgXFxcImJwZl9taXNjLmhcXFwiXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuQEAgLTU1LDYgKzU2LDE5IEBAIF9fbmFrZWQgdm9pZCBvdXRfb2ZfcmFuZ2VfanVtcDIodm9pZClcXG4gXFxcIlxcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcXG4gfVxcbiBcXG4rU0VDKFxcXCJzb2NrZXRcXFwiKVxcbitfX2Rlc2NyaXB0aW9uKFxcXCJpbnZhbGlkIERXIExEU1ggaW5zdHJ1Y3Rpb24gaW4gZGlhZ25vc3RpY3NcXFwiKVxcbitfX2ZhaWx1cmUgX19tc2coXFxcIkJVR19sZHhfOTlcXFwiKVxcbitfX2xvZ19sZXZlbCgyKVxcbitfX25ha2VkIHZvaWQgaW52YWxpZF9kd19sZHN4KHZvaWQpXFxuK3tcXG4rXFx0YXNtIHZvbGF0aWxlIChcXFwiXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQuOGJ5dGUgJVtsZHN4X2R3XTtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcXCJcXHQ6XFxuK1xcdDogX19pbW1faW5zbihsZHN4X2R3LCBCUEZfUkFXX0lOU04oQlBGX0xEWCB8IEJQRl9NRU1TWCB8IEJQRl9EVywgQlBGX1JFR18wLCBCUEZfUkVHXzAsIDAsIDApKVxcbitcXHQ6IF9fY2xvYmJlcl9hbGwpO1xcbit9XFxuK1xcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImxvb3AgKGJhY2stZWRnZSlcXFwiKVxcbiBfX2ZhaWx1cmUgX19tc2coXFxcInVucmVhY2hhYmxlIGluc24gMVxcXCIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDAyOjM4OjIxLjI1MDc2NDI5NFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3MTU0MzU2Mjc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBCUEYgZGlzYXNzZW1ibGVyIHVzZWQgZm9yIGxvZ2dpbmcgYW5kIGR1bXBpbmcgQlBGIGluc3RydWN0aW9ucy4gSXQgZml4ZXMgdGhlIGRpc2Fzc2VtYmx5IG91dHB1dCBmb3IgYW4gaW52YWxpZCBCUEZfTUVNU1ggaW5zdHJ1Y3Rpb24gd2l0aCBCUEZfRFcgc2l6ZSwgd2hpY2ggaXMgYSBwdXJlbHkgZGVjb3JhdGl2ZS9sb2dnaW5nIGNoYW5nZSBhbmQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQyYWNiN2RmZjk3Mjk2MmQ0ZjEyNDMxZDk3MjNhNGY1ZjA5NjhhOWRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyMCAwMjozODoxOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvZGlzYXNtLmMgYi9rZXJuZWwvYnBmL2Rpc2FzbS5jXG5pbmRleCA1MGIzY2E1MTQ5YTBhLi5iMWEzZmJlM2ZkYTUzIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9kaXNhc20uY1xuKysrIGIva2VybmVsL2JwZi9kaXNhc20uY1xuQEAgLTI5NSw3ICsyOTUsOCBAQCB2b2lkIHByaW50X2JwZl9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbl9jYnMgKmNicyxcbiBcdFx0XHR2ZXJib3NlKGNicy1cdTAwM2Vwcml2YXRlX2RhdGEsIFwiQlVHX3N0XyUwMnhcIiwgaW5zbi1cdTAwM2Vjb2RlKTtcbiBcdFx0fVxuIFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XG4tXHRcdGlmIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXHUwMDI2XHUwMDI2IEJQRl9NT0RFKGluc24tXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB7XG4rXHRcdGlmICgoQlBGX01PREUoaW5zbi1cdTAwM2Vjb2RlKSAhPSBCUEZfTUVNIFx1MDAyNlx1MDAyNiBCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpICE9IEJQRl9NRU1TWCkgfHxcbitcdFx0ICAgIChCUEZfTU9ERShpbnNuLVx1MDAzZWNvZGUpID09IEJQRl9NRU1TWCBcdTAwMjZcdTAwMjYgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSA9PSBCUEZfRFcpKSB7XG4gXHRcdFx0dmVyYm9zZShjYnMtXHUwMDNlcHJpdmF0ZV9kYXRhLCBcIkJVR19sZHhfJTAyeFwiLCBpbnNuLVx1MDAzZWNvZGUpO1xuIFx0XHRcdHJldHVybjtcbiBcdFx0fVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuY1xuaW5kZXggYzFmNTVlMWQ4MGE0Mi4uM2MzYmIwM2U4MjE3YSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9jZmcuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jXG5AQCAtMyw2ICszLDcgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9icGYuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2JwZi9icGZfaGVscGVycy5oXHUwMDNlXG4rI2luY2x1ZGUgXCIuLi8uLi8uLi9pbmNsdWRlL2xpbnV4L2ZpbHRlci5oXCJcbiAjaW5jbHVkZSBcImJwZl9taXNjLmhcIlxuIFxuIFNFQyhcInNvY2tldFwiKVxuQEAgLTU1LDYgKzU2LDE5IEBAIF9fbmFrZWQgdm9pZCBvdXRfb2ZfcmFuZ2VfanVtcDIodm9pZClcbiBcIlx0Ojo6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbitTRUMoXCJzb2NrZXRcIilcbitfX2Rlc2NyaXB0aW9uKFwiaW52YWxpZCBEVyBMRFNYIGluc3RydWN0aW9uIGluIGRpYWdub3N0aWNzXCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiQlVHX2xkeF85OVwiKVxuK19fbG9nX2xldmVsKDIpXG4rX19uYWtlZCB2b2lkIGludmFsaWRfZHdfbGRzeCh2b2lkKVxuK3tcbitcdGFzbSB2b2xhdGlsZSAoXCJcdFx0XHRcdFx0XFxcbitcdC44Ynl0ZSAlW2xkc3hfZHddO1x0XHRcdFx0XFxcbitcIlx0OlxuK1x0OiBfX2ltbV9pbnNuKGxkc3hfZHcsIEJQRl9SQVdfSU5TTihCUEZfTERYIHwgQlBGX01FTVNYIHwgQlBGX0RXLCBCUEZfUkVHXzAsIEJQRl9SRUdfMCwgMCwgMCkpXG4rXHQ6IF9fY2xvYmJlcl9hbGwpO1xuK31cbitcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwibG9vcCAoYmFjay1lZGdlKVwiKVxuIF9fZmFpbHVyZSBfX21zZyhcInVucmVhY2hhYmxlIGluc24gMVwiKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMDI6Mzg6MjEuMjUwNzY1NjA0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjExNjcxNDI1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCUEYgRGlzYXNzZW1ibGVyIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgYGtlcm5lbC9icGYvZGlzYXNtLmNgIGFuZCBhZGRzIGEgdGVzdCB0byBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2NmZy5jYC4gVGhlIGNvcmUgY2hhbmdlIGluIHRoZSBkaXNhc3NlbWJsZXIgaXMgdGhpczogdGhleSdyZSBjb3JyZWN0aW5nIGhvdyBpdCBoYW5kbGVzIGBCUEZfTUVNU1hgIGluc3RydWN0aW9ucyB3aXRoIGEgYEJQRl9EV2Agc2l6ZSDigJMgc3BlY2lmaWNhbGx5LCBjYXRjaGluZyBhbiBpbnZhbGlkIGNvbWJpbmF0aW9uLiBUaGUgb3JpZ2luYWwgY29kZSBkaWRuJ3QgYWNjb3VudCBmb3IgdGhpcyBlZGdlIGNhc2UuIFRoZSBkaXNhc3NlbWJsZXIgaXMgYSBjcml0aWNhbCB1dGlsaXR5LiBJdCdzIHVzZWQgZm9yIGFsbCBraW5kcyBvZiB0aGluZ3MgbGlrZSBsb2dnaW5nLCB0cmFjaW5nLCBkdW1waW5nIEJQRiBwcm9ncmFtcywgd2hpY2ggbWFrZXMgbWUgdGhpbmsuLi4gaXMgdGhpcyBhIHBvdGVudGlhbCB0YXJnZXQgZm9yIGZ1enppbmc/XG5cbk9uIGRlZXBlciB0aG91Z2h0LCBpdCBvbmx5IGFmZmVjdHMgdGhlIG91dHB1dCBvZiBgcHJpbnRfYnBmX2luc25gLCB3aGljaCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBwcmludHMgb3V0IEJQRiBpbnN0cnVjdGlvbnMuIE5vdCB0aGUgaW5zdHJ1Y3Rpb24gZXhlY3V0aW9uIGl0c2VsZi4gVGhlcmVmb3JlLCBpdCdzIGFib3V0IHRoZSAqcHJlc2VudGF0aW9uKiBvZiB0aGUgaW5zdHJ1Y3Rpb24sIG5vdCBpdHMgdW5kZXJseWluZyBiZWhhdmlvci4gVGhhdCBtaWdodCBtYWtlIGl0IGxlc3MgY3JpdGljYWwgaW4gdGVybXMgb2YgZnVuY3Rpb25hbCBjb3JyZWN0bmVzcy4uLmJ1dCBhbnkgZGl2ZXJnZW5jZSBmcm9tIHRoZSBhY3R1YWwgcHJvZ3JhbSB0aGF0IGlzIHVzZWQgZm9yIGxvZ2dpbmcgaXMgY29uY2VybmluZy4gU28gSSBuZWVkIHRvIHZlcmlmeSBhbGwgdGhlIHVzZXMgb2YgYHByaW50X2JwZl9pbnNuYC4gTGV0J3Mgc2VlIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBhbmQgaG93IGl0IGZlZWRzIGludG8gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUzMCwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDAyOjM4OjI3LjM2NzQ4MzY5MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA0NjE0MTEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInByaW50X2JwZl9pbnNuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvZGlhZ25vc3RpY3MuYz02MDg9c3RhdGljIHZvaWQgZm9ybWF0X2Rpc2FzbV9saW5lKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpbnNuX2lkeCxcXG4tLVxcbmtlcm5lbC9icGYvZGlhZ25vc3RpY3MuYy02MzItXFxua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jOjYzMzpcXHRwcmludF9icGZfaW5zbihcXHUwMDI2Y2JzLCBpbnNuLCBlbnYtXFx1MDAzZWFsbG93X3B0cl9sZWFrcyk7XFxua2VybmVsL2JwZi9kaWFnbm9zdGljcy5jLTYzNC1cXHRzZXFfYnVmX3N0cihcXHUwMDI2Y3R4LnNlcSk7XFxuLS1cXG5rZXJuZWwvYnBmL2Rpc2FzbS5jPTE4MT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfbW92X3BlcmNwdV9hZGRyKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbilcXG4tLVxcbmtlcm5lbC9icGYvZGlzYXNtLmMtMTg1LVxcbmtlcm5lbC9icGYvZGlzYXNtLmM6MTg2OnZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxcbmtlcm5lbC9icGYvZGlzYXNtLmMtMTg3LVxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL2Rpc2FzbS5oPTMwPXN0cnVjdCBicGZfaW5zbl9jYnMge1xcbi0tXFxua2VybmVsL2JwZi9kaXNhc20uaC0zNi1cXG5rZXJuZWwvYnBmL2Rpc2FzbS5oOjM3OnZvaWQgcHJpbnRfYnBmX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuX2NicyAqY2JzLFxcbmtlcm5lbC9icGYvZGlzYXNtLmgtMzgtXFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0zMzIyPXZvaWQgYnBmX3ZlcmJvc2VfaW5zbihzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMzMyOS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MzMzMDpcXHRwcmludF9icGZfaW5zbihcXHUwMDI2Y2JzLCBpbnNuLCBlbnYtXFx1MDAzZWFsbG93X3B0cl9sZWFrcyk7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTMzMzEtfVxcbi0tXFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jPTIwNT12b2lkIGR1bXBfeGxhdGVkX2pzb24oc3RydWN0IGR1bXBfZGF0YSAqZGQsIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbixcXG4tLVxcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0yNTctXFx0XFx0anNvbndfbmFtZShqc29uX3d0ciwgXFxcImRpc2FzbVxcXCIpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzoyNTg6XFx0XFx0cHJpbnRfYnBmX2luc24oXFx1MDAyNmNicywgaW5zbiArIGksIHRydWUpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0yNTktXFxuLS1cXG50b29scy9icGYvYnBmdG9vbC94bGF0ZWRfZHVtcGVyLmM9MjkwPXZvaWQgZHVtcF94bGF0ZWRfcGxhaW4oc3RydWN0IGR1bXBfZGF0YSAqZGQsIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbixcXG4tLVxcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0zMzktXFx0XFx0cHJpbnRmKFxcXCIlNHU6IFxcXCIsIGkpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYzozNDA6XFx0XFx0cHJpbnRfYnBmX2luc24oXFx1MDAyNmNicywgaW5zbiArIGksIHRydWUpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy0zNDEtXFx0XFx0cHJpbnRmKFxcXCJcXFxcblxcXCIpO1xcbi0tXFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jPTM1NT12b2lkIGR1bXBfeGxhdGVkX2Zvcl9ncmFwaChzdHJ1Y3QgZHVtcF9kYXRhICpkZCwgdm9pZCAqYnVmX3N0YXJ0LCB2b2lkICpidWZfZW5kLFxcbi0tXFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jLTQwNi1cXHRcXHRwcmludGYoXFxcIiV1OiBcXFwiLCBpbnNuX29mZik7XFxudG9vbHMvYnBmL2JwZnRvb2wveGxhdGVkX2R1bXBlci5jOjQwNzpcXHRcXHRwcmludF9icGZfaW5zbihcXHUwMDI2Y2JzLCBjdXIsIHRydWUpO1xcbnRvb2xzL2JwZi9icGZ0b29sL3hsYXRlZF9kdW1wZXIuYy00MDgtXFx0XFx0cHJpbnRmKFxcXCJcXFxcXFxcXGxcXFxcXFxcXFxcXFxuXFxcIik7XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvZGlzYXNtX2hlbHBlcnMuYz0zOD1zdHJ1Y3QgYnBmX2luc24gKmRpc2FzbV9pbnNuKHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgY2hhciAqYnVmLCBzaXplX3QgYnVmX3N6KVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmMtNTItXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmM6NTM6XFx0cHJpbnRfYnBmX2luc24oXFx1MDAyNmNicywgaW5zbiwgdHJ1ZSk7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2Rpc2FzbV9oZWxwZXJzLmMtNTQtXFx0LyogV2Ugc2hhcmUgY29kZSB3aXRoIGtlcm5lbCBCUEYgZGlzYXNzZW1ibGVyLCBpdCBhZGRzICcoRkYpICcgcHJlZml4XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDAyOjM4OjI5LjM3MjEwNjM5NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNDY5NjQzMzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQlBGIEluc3RydWN0aW9uIExvZ2dpbmcgQ2hhbmdlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIHByb21wdCBjbGVhcmx5IHN0YXRlcyB0aGUgY3JpdGVyaWEgZm9yIGRldGVybWluaW5nIGlmIGEgY2hhbmdlIGlzIFwiV29ydGhGdXp6aW5nXCIuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogZG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgY29tbWVudHMsIGRlY29yYXRpdmUgc3R1ZmYgbGlrZSBsb2dnaW5nLCBhbmQgY2hhbmdlcyB0byBub24tZnVuY3Rpb25hbCBudW1lcmljIGNvbnN0YW50cyBhcmUgYWxsIG5vLWdvcy5cblxuTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBjaGFuZ2UgZmFsbHMgc3F1YXJlbHkgaW50byB0aGUgXCJkZWNvcmF0aXZlIGxvZ2dpbmdcIiBjYXRlZ29yeS4gU3BlY2lmaWNhbGx5LCBpdCBtb2RpZmllcyB0aGUgYHByaW50X2JwZl9pbnNuYCBmdW5jdGlvbiwgd2hpY2ggaXMgdXNlZCBmb3IgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLCBtb3N0bHkgZm9yIGRlYnVnZ2luZyBhbmQgbG9nZ2luZy4gVGhlIGNoYW5nZSBzZWVtcyB0byBiZSBhYm91dCBob3cgYW4gaW52YWxpZCBpbnN0cnVjdGlvbiBpcyBwcmVzZW50ZWQgaW4gdGhlIG91dHB1dCDigJMgc3dhcHBpbmcgdGhlIGRpc2Fzc2VtYmx5IGF0dGVtcHQgZm9yIGEgc2ltcGxlIFwiQlVHX2xkeF85OVwiIG1lc3NhZ2UuIFRoaXMgZG9lc24ndCBhY3R1YWxseSBhbHRlciBob3cgdGhlIGtlcm5lbCAqYmVoYXZlcyogd2hlbiBpdCBlbmNvdW50ZXJzIHRoYXQgaW52YWxpZCBpbnN0cnVjdGlvbi4gVGhlIEJQRiB2ZXJpZmllciBzdGlsbCBkb2VzIGl0cyBqb2IsIHRoZSBpbnN0cnVjdGlvbiBnZXRzIHJlamVjdGVkLCBhbmQgdGhpbmdzIHByb2NlZWQgYXMgdGhleSBzaG91bGQsIGFsYmVpdCB3aXRoIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG1lc3NhZ2UgaW4gdGhlIGxvZ3MuIFB1cmVseSBjb3NtZXRpYywgcmlnaHQ/XG5cbkJ1dCB3YWl04oCmIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIERvZXMgdGhpcyBjaGFuZ2Ugc29tZWhvdyB0b3VjaCB0aGUgdmVyaWZpZXLigJlzICpleGVjdXRpb24qIGZsb3c/IEV2ZW4gYSBzbGlnaHQgbW9kaWZpY2F0aW9uIGNvdWxkIG1hdHRlci4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYHByaW50X2JwZl9pbnNuYCBpbiBga2VybmVsL2JwZi9kaXNhc20uY2AgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIGFuZCBtYWtlIHN1cmUgaXQgZG9lc24ndCBzdWJ0bHkgaW5mbHVlbmNlIGFueXRoaW5nIGNyaXRpY2FsLiBHb3R0YSBjb3ZlciBhbGwgbXkgYmFzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyNTYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMDI6Mzg6MzQuNzE5MDc1Mjc5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc4MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwia2VybmVsL2JwZi9kaXNhc20uY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyOTAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyOTA6XFx0XFx0XFx0XFx0XFx0aW5zbi1cXHUwMDNlZHN0X3JlZyxcXG4gMjkxOlxcdFxcdFxcdFxcdFxcdGluc24tXFx1MDAzZW9mZiwgaW5zbi1cXHUwMDNlaW1tKTtcXG4gMjkyOlxcdFxcdFxcdH0gZWxzZSBpZiAoQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgPT0gMHhjMCAvKiBCUEZfTk9TUEVDLCBubyBVQVBJICovKSB7XFxuIDI5MzpcXHRcXHRcXHRcXHR2ZXJib3NlKGNicy1cXHUwMDNlcHJpdmF0ZV9kYXRhLCBcXFwiKCUwMngpIG5vc3BlY1xcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiAyOTQ6XFx0XFx0XFx0fSBlbHNlIHtcXG4gMjk1OlxcdFxcdFxcdFxcdHZlcmJvc2UoY2JzLVxcdTAwM2Vwcml2YXRlX2RhdGEsIFxcXCJCVUdfc3RfJTAyeFxcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiAyOTY6XFx0XFx0XFx0fVxcbiAyOTc6XFx0XFx0fSBlbHNlIGlmIChjbGFzcyA9PSBCUEZfTERYKSB7XFxuIDI5ODpcXHRcXHRcXHRpZiAoKEJQRl9NT0RFKGluc24tXFx1MDAzZWNvZGUpICE9IEJQRl9NRU0gXFx1MDAyNlxcdTAwMjYgQlBGX01PREUoaW5zbi1cXHUwMDNlY29kZSkgIT0gQlBGX01FTVNYKSB8fFxcbiAyOTk6XFx0XFx0XFx0ICAgIChCUEZfTU9ERShpbnNuLVxcdTAwM2Vjb2RlKSA9PSBCUEZfTUVNU1ggXFx1MDAyNlxcdTAwMjYgQlBGX1NJWkUoaW5zbi1cXHUwMDNlY29kZSkgPT0gQlBGX0RXKSkge1xcbiAzMDA6XFx0XFx0XFx0XFx0dmVyYm9zZShjYnMtXFx1MDAzZXByaXZhdGVfZGF0YSwgXFxcIkJVR19sZHhfJTAyeFxcXCIsIGluc24tXFx1MDAzZWNvZGUpO1xcbiAzMDE6XFx0XFx0XFx0XFx0cmV0dXJuO1xcbiAzMDI6XFx0XFx0XFx0fVxcbiAzMDM6XFx0XFx0XFx0dmVyYm9zZShjYnMtXFx1MDAzZXByaXZhdGVfZGF0YSwgXFxcIiglMDJ4KSByJWQgPSAqKCVzICopKHIlZCAlK2QpXFxcIixcXG4gMzA0OlxcdFxcdFxcdFxcdGluc24tXFx1MDAzZWNvZGUsIGluc24tXFx1MDAzZWRzdF9yZWcsXFxuIDMwNTpcXHRcXHRcXHRcXHRCUEZfTU9ERShpbnNuLVxcdTAwM2Vjb2RlKSA9PSBCUEZfTUVNID9cXG4gMzA2OlxcdFxcdFxcdFxcdFxcdCBicGZfbGRzdF9zdHJpbmdbQlBGX1NJWkUoaW5zbi1cXHUwMDNlY29kZSkgXFx1MDAzZVxcdTAwM2UgM10gOlxcbiAzMDc6XFx0XFx0XFx0XFx0XFx0IGJwZl9sZHN4X3N0cmluZ1tCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSBcXHUwMDNlXFx1MDAzZSAzXSxcXG4gMzA4OlxcdFxcdFxcdFxcdGluc24tXFx1MDAzZXNyY19yZWcsIGluc24tXFx1MDAzZW9mZik7XFxuIDMwOTpcXHRcXHR9IGVsc2UgaWYgKGNsYXNzID09IEJQRl9MRCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODozNC43MTkxNDQ3ODlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjg1OTQ4MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgYHZlcmJvc2VgIGFuZCBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGV4YW1pbmVkIHRoaXMgY29kZSBzbmlwcGV0LiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGFjdHVhbGx5LiBUaGUgYHZlcmJvc2VgIGNhbGwgaXMgc2ltcGx5IGEgbG9nZ2luZyBvciBidWZmZXJpbmcgbWVjaGFuaXNtLiBJdCdzIGRlc2lnbmVkIHRvIHByaW50IGluZm9ybWF0aW9uIHRvIGVpdGhlciBhIGxvZyBmaWxlIG9yIHNvbWUgaW50ZXJuYWwgYnVmZmVyLiBJbXBvcnRhbnRseSwgaXQgZG9lc24ndCAqY2hhbmdlKiB0aGUgdW5kZXJseWluZyBvcGVyYXRpb25hbCBmbG93IG9mIHRoZSBrZXJuZWwuIEl0J3MganVzdCBhYm91dCB0aGUgdmVyaWZpZXIncyBsb2dnaW5nIG91dHB1dC5cblxuR2l2ZW4gdGhpcyB1bmRlcnN0YW5kaW5nLCB0aGUgZGV0ZXJtaW5hdGlvbiBpcyBjbGVhcjogdGhpcyBwYXJ0aWN1bGFyIHBhdGggc2hvdWxkICpub3QqIGJlIGNvbnNpZGVyZWQgXCJXb3J0aEZ1enppbmcuXCIgSXQncyBtZXJlbHkgYSByZXBvcnRpbmcgb3IgZGVidWdnaW5nIHRvb2wsIG5vdCBjb3JlIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSB3aWxsIG5vdyBleHBsaWNpdGx5IHNldCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjkzLCJPdXRwdXRUb2tlbnMiOjkxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODozOC40MDUwOTU2MDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEJQRiBkaXNhc3NlbWJsZXIgdXNlZCBmb3IgbG9nZ2luZyBhbmQgZHVtcGluZyBCUEYgaW5zdHJ1Y3Rpb25zLiBJdCBmaXhlcyB0aGUgZGlzYXNzZW1ibHkgb3V0cHV0IGZvciBhbiBpbnZhbGlkIEJQRl9NRU1TWCBpbnN0cnVjdGlvbiB3aXRoIEJQRl9EVyBzaXplLCB3aGljaCBpcyBhIHB1cmVseSBkZWNvcmF0aXZlL2xvZ2dpbmcgY2hhbmdlIGFuZCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgQlBGIGRpc2Fzc2VtYmxlciB1c2VkIGZvciBsb2dnaW5nIGFuZCBkdW1waW5nIEJQRiBpbnN0cnVjdGlvbnMuIEl0IGZpeGVzIHRoZSBkaXNhc3NlbWJseSBvdXRwdXQgZm9yIGFuIGludmFsaWQgQlBGX01FTVNYIGluc3RydWN0aW9uIHdpdGggQlBGX0RXIHNpemUsIHdoaWNoIGlzIGEgcHVyZWx5IGRlY29yYXRpdmUvbG9nZ2luZyBjaGFuZ2UgYW5kIGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQwMjozODozOC40MDUxMjE5OThaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowq99fb[1] Phase: Running StartedAt: 2026-08-20 02:38:48 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq99fb[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-20 02:38:49 +0000 UTC FinishedAt: 2026-08-20 02:38:53 +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,}