Name: series-workflowvjdlc Phase: Succeeded StartedAt: 2026-07-16 16:11:59 +0000 UTC FinishedAt: 2026-07-16 20:59:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[0] Phase: Succeeded StartedAt: 2026-07-16 16:11:59 +0000 UTC FinishedAt: 2026-07-16 16:42:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 16:11:59 +0000 UTC FinishedAt: 2026-07-16 16:42:26 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "d1f4b56417a3dc1a0600f960b14f46bd25eda89d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "d1f4b56417a3dc1a0600f960b14f46bd25eda89d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "37f062f4-a58d-4e03-af07-10cd500d2fe6" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "check_max_stack_depth_subprog", "check_max_stack_depth" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDE2OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2cmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gY29ycmVjdGx5IHJlamVjdCB0YWlsIGNhbGxzIHdpdGhpbiBjYWxsYmFja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDE2OjQxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGIyYmZiOTYxOWE4NDk0MDVjMGE1NjMzNzRmM2FiZGRlYjQ3ZTg2MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDE2OjQxOjE4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggZGU4MTYwNjNhZTYzZDAuLjYyZDQ2YjRjOTk2MmZjIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC01MjM3LDEwICYjNDM7NTIzNyw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcbiBcdFx0aWYgKHZlcmlmaWVyX2J1Z19pZihzaWR4IFx1MDAzYyAwLCBlbnYsIFwmIzM0O2NhbGxlZSBub3QgZm91bmQgYXQgaW5zbiAlZFwmIzM0OywgbmV4dF9pbnNuKSlcbiBcdFx0XHRyZXR1cm4gLUVGQVVMVDtcbiBcdFx0aWYgKHN1YnByb2dbc2lkeF0uaXNfYXN5bmNfY2IpIHtcbi1cdFx0XHRpZiAoc3VicHJvZ1tzaWR4XS5oYXNfdGFpbF9jYWxsKSB7XG4tXHRcdFx0XHR2ZXJpZmllcl9idWcoZW52LCBcJiMzNDtzdWJwcm9nIGhhcyB0YWlsX2NhbGwgYW5kIGFzeW5jIGNiXCYjMzQ7KTtcbi1cdFx0XHRcdHJldHVybiAtRUZBVUxUO1xuLVx0XHRcdH1cbiBcdFx0XHQvKiBhc3luYyBjYWxsYmFja3MgZG9uJiMzOTt0IGluY3JlYXNlIGJwZiBwcm9nIHN0YWNrIHNpemUgdW5sZXNzIGNhbGxlZCBkaXJlY3RseSAqL1xuIFx0XHRcdGlmICghYnBmX3BzZXVkb19jYWxsKGluc24gJiM0MzsgaSkpXG4gXHRcdFx0XHRjb250aW51ZTtcbkBAIC01MjYzLDggJiM0Mzs1MjU5LDggQEAgc3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxuIFx0XHRpZiAoIXByaXZfc3RhY2tfc3VwcG9ydGVkKVxuIFx0XHRcdHN1YnByb2dbaWR4XS5wcml2X3N0YWNrX21vZGUgPSBOT19QUklWX1NUQUNLO1xuIFxuLVx0XHRpZiAoc3VicHJvZ1tpZHhdLmhhc190YWlsX2NhbGwpXG4tXHRcdFx0dGFpbF9jYWxsX3JlYWNoYWJsZSA9IHRydWU7XG4mIzQzO1x0XHQvKiBzeW5jIHRhaWxfY2FsbF9yZWFjaGFibGUgd2l0aCBjYWxsZWUgc3RhdGUgb24gZW50cnkgKi9cbiYjNDM7XHRcdHRhaWxfY2FsbF9yZWFjaGFibGUgPSBzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbDtcbiBcbiBcdFx0ZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICYjNDM7IDE7XG4gXHRcdGlmIChmcmFtZSBcdTAwM2U9IE1BWF9DQUxMX0ZSQU1FUykge1xuQEAgLTUyODEsOCAmIzQzOzUyNzcsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXG4gXHQgKi9cbiBcdGlmICh0YWlsX2NhbGxfcmVhY2hhYmxlKSB7XG4gXHRcdGZvciAodG1wID0gaWR4OyB0bXAgXHUwMDNlPSAwOyB0bXAgPSBkaW5mb1t0bXBdLmNhbGxlcikge1xuLVx0XHRcdGlmIChzdWJwcm9nW3RtcF0uaXNfZXhjZXB0aW9uX2NiKSB7XG4tXHRcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7Y2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gZXhjZXB0aW9uIGNiXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdFx0aWYgKHN1YnByb2dbdG1wXS5pc19jYikge1xuJiM0MztcdFx0XHRcdHZlcmJvc2UoZW52LCBcJiMzNDtjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBjYWxsYmFja1xcblwmIzM0Oyk7XG4gXHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKHN1YnByb2dbdG1wXS5zdGFja19hcmdfY250KSB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuaW5kZXggYTVhMjI2ZDAxMDRjZDIuLmM2NjAzNzE2MmRhNWFlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG5AQCAtMTIsNiAmIzQzOzEyLDcgQEBcbiAjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZS5za2VsLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Uuc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dGFpbGNhbGxfc2xlZXBhYmxlLnNrZWwuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jYWxsYmFjay5za2VsLmhcJiMzNDtcbiBcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXHUwMDNlam1wLCBqbXAtXHUwMDNlbm9wXG5AQCAtMTkwMSw2ICYjNDM7MTkwMiwxMSBAQCBzdGF0aWMgdm9pZCB0ZXN0X3RhaWxjYWxsX3NsZWVwYWJsZSh2b2lkKVxuIFx0dGFpbGNhbGxfc2xlZXBhYmxlX19kZXN0cm95KHNrZWwpO1xuIH1cbiBcbiYjNDM7c3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9jYWxsYmFjayh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0UlVOX1RFU1RTKHRhaWxjYWxsX2NhbGxiYWNrKTtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4ge1xuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCYjMzQ7dGFpbGNhbGxfMVwmIzM0OykpXG5AQCAtMTk2Nyw0ICYjNDM7MTk3Myw1IEBAIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9sZWFmKCk7XG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2VcJiMzNDspKVxuIFx0XHR0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSgpO1xuJiM0MztcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5jNDE2MzJjZjQyM2JjNlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmNcbkBAIC0wLDAgJiM0MzsxLDgxIEBAXG4mIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2JwZi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2JwZi9icGZfaGVscGVycy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFwmIzM0O2JwZl9taXNjLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7YnBmX3Rlc3RfdXRpbHMuaFwmIzM0O1xuJiM0MztcbiYjNDM7aW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpO1xuJiM0MztcbiYjNDM7c3RydWN0IHtcbiYjNDM7XHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkpO1xuJiM0MztcdF9fdWludChtYXhfZW50cmllcywgMSk7XG4mIzQzO1x0X191aW50KGtleV9zaXplLCBzaXplb2YoX191MzIpKTtcbiYjNDM7XHRfX2FycmF5KHZhbHVlcywgdm9pZCAodm9pZCkpO1xuJiM0Mzt9IGptcF90YWJsZSBTRUMoXCYjMzQ7Lm1hcHNcJiMzNDspID0ge1xuJiM0MztcdC52YWx1ZXMgPSB7XG4mIzQzO1x0XHRbMF0gPSAodm9pZCAqKSBcdTAwMjZjbGFzc2lmaWVyXzAsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO19fYXV4aWxpYXJ5XG4mIzQzO1NFQyhcJiMzNDt0Y1wmIzM0OylcbiYjNDM7aW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIF9fbm9pbmxpbmVcbiYjNDM7aW50IHN1YnByb2dfdGFpbDAoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuJiM0Mzt7XG4mIzQzO1x0aW50IHJldCA9IDA7XG4mIzQzO1xuJiM0MztcdGJwZl90YWlsX2NhbGxfc3RhdGljKHNrYiwgXHUwMDI2am1wX3RhYmxlLCAwKTtcbiYjNDM7XHRiYXJyaWVyX3ZhcihyZXQpO1xuJiM0MztcdHJldHVybiByZXQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBfX25vaW5saW5lXG4mIzQzO2ludCBjYWxsYmFja19sb29wKGludCBpbmRleCwgdm9pZCAqKmNiX2N0eClcbiYjNDM7e1xuJiM0MztcdGludCByZXQ7XG4mIzQzO1xuJiM0MztcdHJldCA9IHN1YnByb2dfdGFpbDAoKmNiX2N0eCk7XG4mIzQzO1x0YmFycmllcl92YXIocmV0KTtcbiYjNDM7XHRyZXR1cm4gcmV0ID8gMSA6IDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBfX25vaW5saW5lXG4mIzQzO2ludCBjYWxsYmFja19lbXB0eShpbnQgaW5kZXgsIHZvaWQgKmRhdGEpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7LyogY2FsbGJhY2sgaW52b2x2aW5nIHN1YnByb2cgd2l0aCB0YWlsIGNhbGwgaXMgcmVqZWN0ZWQgKi9cbiYjNDM7U0VDKFwmIzM0O3RjXCYjMzQ7KVxuJiM0MztfX2ZhaWx1cmUgX19tc2coXCYjMzQ7Y2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gY2FsbGJhY2tcJiMzNDspXG4mIzQzO2ludCB0YWlsY2FsbF9jYWxsYmFja18xKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbiYjNDM7e1xuJiM0MztcdGNsb2JiZXJfcmVnc19zdGFjaygpO1xuJiM0MztcbiYjNDM7XHRicGZfbG9vcCgxLCBjYWxsYmFja19sb29wLCBcdTAwMjZza2IsIDApO1xuJiM0MztcdHJldHVybiAwO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MzsvKiBzdWJwcm9ncyB3aXRoIHRhaWxjYWxsIGRvIG5vdCBhZmZlY3Qgbm8tdGFpbGNhbGwgY2FsbGJhY2sgKi9cbiYjNDM7U0VDKFwmIzM0O3RjXCYjMzQ7KVxuJiM0MztfX3N1Y2Nlc3NcbiYjNDM7X19yZXR2YWwoMClcbiYjNDM7aW50IHRhaWxjYWxsX2NhbGxiYWNrXzIoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuJiM0Mzt7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0Y2xvYmJlcl9yZWdzX3N0YWNrKCk7XG4mIzQzO1xuJiM0MztcdHJldCA9IHN1YnByb2dfdGFpbDAoc2tiKTtcbiYjNDM7XHRfX3NpbmsocmV0KTtcbiYjNDM7XG4mIzQzO1x0YnBmX2xvb3AoMSwgY2FsbGJhY2tfZW1wdHksIE5VTEwsIDApO1xuJiM0MztcdHJldHVybiAwO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztjaGFyIF9fbGljZW5zZVtdIFNFQyhcJiMzNDtsaWNlbnNlXCYjMzQ7KSA9IFwmIzM0O0dQTFwmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxNjo0MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nJiMzNDssCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGNvcnJlY3RseSByZWplY3QgdGFpbCBjYWxscyB3aXRoaW4gY2FsbGJhY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGIyYmZiOTYxOWE4NDk0MDVjMGE1NjMzNzRmM2FiZGRlYjQ3ZTg2MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDE2IDE2OjQxOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IGRlODE2MDYzYWU2M2QwLi42MmQ0NmI0Yzk5NjJmYyAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtNTIzNywxMCAmIzQzOzUyMzcsNiBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsCiAJCWlmICh2ZXJpZmllcl9idWdfaWYoc2lkeCAmbHQ7IDAsIGVudiwgJiMzNDtjYWxsZWUgbm90IGZvdW5kIGF0IGluc24gJWQmIzM0OywgbmV4dF9pbnNuKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQlpZiAoc3VicHJvZ1tzaWR4XS5pc19hc3luY19jYikgewotCQkJaWYgKHN1YnByb2dbc2lkeF0uaGFzX3RhaWxfY2FsbCkgewotCQkJCXZlcmlmaWVyX2J1ZyhlbnYsICYjMzQ7c3VicHJvZyBoYXMgdGFpbF9jYWxsIGFuZCBhc3luYyBjYiYjMzQ7KTsKLQkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCX0KIAkJCS8qIGFzeW5jIGNhbGxiYWNrcyBkb24mIzM5O3QgaW5jcmVhc2UgYnBmIHByb2cgc3RhY2sgc2l6ZSB1bmxlc3MgY2FsbGVkIGRpcmVjdGx5ICovCiAJCQlpZiAoIWJwZl9wc2V1ZG9fY2FsbChpbnNuICYjNDM7IGkpKQogCQkJCWNvbnRpbnVlOwpAQCAtNTI2Myw4ICYjNDM7NTI1OSw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCwKIAkJaWYgKCFwcml2X3N0YWNrX3N1cHBvcnRlZCkKIAkJCXN1YnByb2dbaWR4XS5wcml2X3N0YWNrX21vZGUgPSBOT19QUklWX1NUQUNLOwogCi0JCWlmIChzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbCkKLQkJCXRhaWxfY2FsbF9yZWFjaGFibGUgPSB0cnVlOwomIzQzOwkJLyogc3luYyB0YWlsX2NhbGxfcmVhY2hhYmxlIHdpdGggY2FsbGVlIHN0YXRlIG9uIGVudHJ5ICovCiYjNDM7CQl0YWlsX2NhbGxfcmVhY2hhYmxlID0gc3VicHJvZ1tpZHhdLmhhc190YWlsX2NhbGw7CiAKIAkJZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICYjNDM7IDE7CiAJCWlmIChmcmFtZSAmZ3Q7PSBNQVhfQ0FMTF9GUkFNRVMpIHsKQEAgLTUyODEsOCAmIzQzOzUyNzcsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsCiAJICovCiAJaWYgKHRhaWxfY2FsbF9yZWFjaGFibGUpIHsKIAkJZm9yICh0bXAgPSBpZHg7IHRtcCAmZ3Q7PSAwOyB0bXAgPSBkaW5mb1t0bXBdLmNhbGxlcikgewotCQkJaWYgKHN1YnByb2dbdG1wXS5pc19leGNlcHRpb25fY2IpIHsKLQkJCQl2ZXJib3NlKGVudiwgJiMzNDtjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBleGNlcHRpb24gY2JcbiYjMzQ7KTsKJiM0MzsJCQlpZiAoc3VicHJvZ1t0bXBdLmlzX2NiKSB7CiYjNDM7CQkJCXZlcmJvc2UoZW52LCAmIzM0O2Nhbm5vdCB0YWlsIGNhbGwgd2l0aGluIGNhbGxiYWNrXG4mIzM0Oyk7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CiAJCQlpZiAoc3VicHJvZ1t0bXBdLnN0YWNrX2FyZ19jbnQpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMKaW5kZXggYTVhMjI2ZDAxMDRjZDIuLmM2NjAzNzE2MmRhNWFlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuYwpAQCAtMTIsNiAmIzQzOzEyLDcgQEAKICNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2Uuc2tlbC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3RhaWxjYWxsX3NsZWVwYWJsZS5za2VsLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oJiMzNDsKIAogLyogdGVzdF90YWlsY2FsbF8xIGNoZWNrcyBiYXNpYyBmdW5jdGlvbmFsaXR5IGJ5IHBhdGNoaW5nIG11bHRpcGxlIGxvY2F0aW9ucwogICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtJmd0O2ptcCwgam1wLSZndDtub3AKQEAgLTE5MDEsNiAmIzQzOzE5MDIsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9zbGVlcGFibGUodm9pZCkKIAl0YWlsY2FsbF9zbGVlcGFibGVfX2Rlc3Ryb3koc2tlbCk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3RhaWxjYWxsX2NhbGxiYWNrKHZvaWQpCiYjNDM7ewomIzQzOwlSVU5fVEVTVFModGFpbGNhbGxfY2FsbGJhY2spOwomIzQzO30KJiM0MzsKIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZCkKIHsKIAlpZiAodGVzdF9fc3RhcnRfc3VidGVzdCgmIzM0O3RhaWxjYWxsXzEmIzM0OykpCkBAIC0xOTY3LDQgJiM0MzsxOTczLDUgQEAgdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKQogCQl0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2xlYWYoKTsKIAlpZiAodGVzdF9fc3RhcnRfc3VidGVzdCgmIzM0O3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSYjMzQ7KSkKIAkJdGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTsKJiM0MzsJdGVzdF90YWlsY2FsbF9jYWxsYmFjaygpOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uYzQxNjMyY2Y0MjNiYzYKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suYwpAQCAtMCwwICYjNDM7MSw4MSBAQAomIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2JwZi5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDticGYvYnBmX2hlbHBlcnMuaCZndDsKJiM0MzsjaW5jbHVkZSAmIzM0O2JwZl9taXNjLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7YnBmX3Rlc3RfdXRpbHMuaCYjMzQ7CiYjNDM7CiYjNDM7aW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpOwomIzQzOwomIzQzO3N0cnVjdCB7CiYjNDM7CV9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfUFJPR19BUlJBWSk7CiYjNDM7CV9fdWludChtYXhfZW50cmllcywgMSk7CiYjNDM7CV9fdWludChrZXlfc2l6ZSwgc2l6ZW9mKF9fdTMyKSk7CiYjNDM7CV9fYXJyYXkodmFsdWVzLCB2b2lkICh2b2lkKSk7CiYjNDM7fSBqbXBfdGFibGUgU0VDKCYjMzQ7Lm1hcHMmIzM0OykgPSB7CiYjNDM7CS52YWx1ZXMgPSB7CiYjNDM7CQlbMF0gPSAodm9pZCAqKSAmYW1wO2NsYXNzaWZpZXJfMCwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzO19fYXV4aWxpYXJ5CiYjNDM7U0VDKCYjMzQ7dGMmIzM0OykKJiM0MztpbnQgY2xhc3NpZmllcl8wKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgX19ub2lubGluZQomIzQzO2ludCBzdWJwcm9nX3RhaWwwKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CWludCByZXQgPSAwOwomIzQzOwomIzQzOwlicGZfdGFpbF9jYWxsX3N0YXRpYyhza2IsICZhbXA7am1wX3RhYmxlLCAwKTsKJiM0MzsJYmFycmllcl92YXIocmV0KTsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIF9fbm9pbmxpbmUKJiM0MztpbnQgY2FsbGJhY2tfbG9vcChpbnQgaW5kZXgsIHZvaWQgKipjYl9jdHgpCiYjNDM7ewomIzQzOwlpbnQgcmV0OwomIzQzOwomIzQzOwlyZXQgPSBzdWJwcm9nX3RhaWwwKCpjYl9jdHgpOwomIzQzOwliYXJyaWVyX3ZhcihyZXQpOwomIzQzOwlyZXR1cm4gcmV0ID8gMSA6IDA7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBfX25vaW5saW5lCiYjNDM7aW50IGNhbGxiYWNrX2VtcHR5KGludCBpbmRleCwgdm9pZCAqZGF0YSkKJiM0Mzt7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MzsvKiBjYWxsYmFjayBpbnZvbHZpbmcgc3VicHJvZyB3aXRoIHRhaWwgY2FsbCBpcyByZWplY3RlZCAqLwomIzQzO1NFQygmIzM0O3RjJiMzNDspCiYjNDM7X19mYWlsdXJlIF9fbXNnKCYjMzQ7Y2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gY2FsbGJhY2smIzM0OykKJiM0MztpbnQgdGFpbGNhbGxfY2FsbGJhY2tfMShzdHJ1Y3QgX19za19idWZmICpza2IpCiYjNDM7ewomIzQzOwljbG9iYmVyX3JlZ3Nfc3RhY2soKTsKJiM0MzsKJiM0MzsJYnBmX2xvb3AoMSwgY2FsbGJhY2tfbG9vcCwgJmFtcDtza2IsIDApOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7Lyogc3VicHJvZ3Mgd2l0aCB0YWlsY2FsbCBkbyBub3QgYWZmZWN0IG5vLXRhaWxjYWxsIGNhbGxiYWNrICovCiYjNDM7U0VDKCYjMzQ7dGMmIzM0OykKJiM0MztfX3N1Y2Nlc3MKJiM0MztfX3JldHZhbCgwKQomIzQzO2ludCB0YWlsY2FsbF9jYWxsYmFja18yKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CWNsb2JiZXJfcmVnc19zdGFjaygpOwomIzQzOwomIzQzOwlyZXQgPSBzdWJwcm9nX3RhaWwwKHNrYik7CiYjNDM7CV9fc2luayhyZXQpOwomIzQzOwomIzQzOwlicGZfbG9vcCgxLCBjYWxsYmFja19lbXB0eSwgTlVMTCwgMCk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztjaGFyIF9fbGljZW5zZVtdIFNFQygmIzM0O2xpY2Vuc2UmIzM0OykgPSAmIzM0O0dQTCYjMzQ7Owo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTA2CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNzk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkJQRiBWZXJpZmllciBUYWlsIENhbGwgYW5kIENhbGxiYWNrIExvZ2ljIE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBJdCBzZWVtcyB3ZSYjMzk7cmUgemVyb2luZyBpbiBvbiBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBkZWFsaW5nIHdpdGggc3RhY2sgZGVwdGggYW5hbHlzaXMgZHVyaW5nIEJQRiBwcm9ncmFtIHZlcmlmaWNhdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gdGFpbCBjYWxscyBhbmQgaG93IHRoZXkgaW50ZXJhY3Qgd2l0aCBjYWxsYmFjayBtZWNoYW5pc21zLgoKVGhlIGRpZmYgaXRzZWxmIHNlZW1zIHByZXR0eSBmb2N1c2VkLiBJIHNlZSBjaGFuZ2VzIGRlYWxpbmcgd2l0aCBob3cgdGhlIHZlcmlmaWVyIGhhbmRsZXMgdGhlIGludGVyYWN0aW9uIG9mIHN1YnByb2dyYW1zLCBwYXJ0aWN1bGFybHkgdGhvc2UgbWFya2VkIGFzIGFzeW5jaHJvbm91cyBjYWxsYmFja3Mgb3Igd2hpY2ggaGF2ZSB0YWlsIGNhbGxzLiBUaGVyZSB3YXMgYSBkaXJlY3QgY2hlY2sgdGhhdCB0YWlsIGNhbGxzIGFuZCBhc3luYyBjYWxsYmFja3MgY2Fubm90IGNvLWV4aXN0LCB3aGljaCBoYXMgYmVlbiByZW1vdmVkLiBUaGVyZSYjMzk7cyBhbHNvIGEgc3luYyBvZiBgdGFpbF9jYWxsX3JlYWNoYWJsZWAgd2l0aCB0aGUgY2FsbGVlIHN0YXRlLCB3aGljaCBhcHBlYXJzIHRvIGJlIGEgY29ycmVjdGlvbiwgdG8gcmVmbGVjdCB0aGUgc3VicHJvZ3JhbSYjMzk7cyB0YWlsIGNhbGwgc3RhdGUgb24gZW50cnkuIEkgc2hvdWxkIGRpZyBkZWVwZXIgaW50byB0aGF0IGxvZ2ljLiBGaW5hbGx5LCB0aGVyZSYjMzk7cyBhIHJlc3RyaWN0aW9uIHByZXZlbnRpbmcgdGFpbCBjYWxscyB3aXRoaW4gYW55IGNhbGxiYWNrLCB3aGljaCBzZWVtcyByZWFzb25hYmxlLgoKQmFzZWQgb24gdGhlIGNvZGUgY2hhbmdlcyBhbmQgdGhlIGNvbnRleHQsIEkmIzM5O20gZ29pbmcgdG8gYXNzdW1lIHRoaXMgbW9kaWZpY2F0aW9uIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4gTXkgZm9jdXMgaGVyZSBpcyBnb2luZyB0byBiZSBvbiB1bmRlcnN0YW5kaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlc2UgY2hhbmdlcyBpbiB0aGUgc3RhY2sgZGVwdGggdmVyaWZpY2F0aW9uLCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIHRoZSBleGlzdGluZyBCUEYgc3lzY2FsbCBzdXBwb3J0LCByZXByZXNlbnRlZCBieSB0aGUgYEJQRl9TWVNDQUxMYCBjb25maWcgb3B0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhyb3VnaCBmdXJ0aGVyIGludmVzdGlnYXRpb24gdGhhdCB0aGlzIGlzIGluZGVlZCB0aGUgY29yZSBmdW5jdGlvbiBoYW5kbGluZyB0aGUgc3RhY2sgZGVwdGggY2hlY2tzIGR1cmluZyB2ZXJpZmljYXRpb24uIEkgd2lsbCBkZWZpbml0ZWx5IG5lZWQgdG8gZXhhbWluZSB0aGUgbmV3IHRlc3RzIGFkZGVkIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgaW50ZW50aW9uIG9mIHRoZXNlIGNoYW5nZXMgYW5kIHRvIGVuc3VyZSB0aGV5IGFyZW4mIzM5O3QgaW50cm9kdWNpbmcgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMgb3IgcmVncmVzc2lvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgY29ycmVjdCBmdW5jdGlvbiBhbmQgaWYgdGhlcmUgYXJlIG90aGVycyB0aGF0IG1pZ2h0IGFsc28gaGF2ZSBiZWVuIGFmZmVjdGVkLiBJIHNob3VsZCBwcm9iYWJseSB1c2UgdGhlIHByb3ZpZGVkIHRvb2xzIHRvIGNvbmZpcm0gbXkgb2JzZXJ2YXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDE2OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz01MTE2PXN0cnVjdCBicGZfc3VicHJvZ19jYWxsX2RlcHRoX2luZm8ge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MTI1LSAqL1xua2VybmVsL2JwZi92ZXJpZmllci5jOjUxMjY6c3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxua2VybmVsL2JwZi92ZXJpZmllci5jLTUxMjctXHRcdFx0XHRcdCBzdHJ1Y3QgYnBmX3N1YnByb2dfY2FsbF9kZXB0aF9pbmZvICpkaW5mbyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTMxOT1zdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MzUxLVx0XHRcdHByaXZfc3RhY2tfc3VwcG9ydGVkID0gIWkgXHUwMDI2XHUwMDI2IHByaXZfc3RhY2tfbW9kZSA9PSBQUklWX1NUQUNLX0FEQVBUSVZFO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjUzNTI6XHRcdFx0cmV0ID0gY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coZW52LCBpLCBkaW5mbyxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MzUzLVx0XHRcdFx0XHRwcml2X3N0YWNrX3N1cHBvcnRlZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTAwMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDcwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipSZWFjaGluZyBhIEtleSBGdW5jdGlvbiB2aWEgYSBDaGFpbioqCgpTbywgdGhlIGNvZGUgZmxvdyBpcyBwcmV0dHkgY2xlYXIgaGVyZS4gSSBjYW4gc2VlIHRoYXQgYGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nYCBpcywgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGEgKnN1Yi1wcm9ncmFtKiBjYWxsZWQgYnkgYGNoZWNrX21heF9zdGFja19kZXB0aGAuIFRoZW4sIGBjaGVja19tYXhfc3RhY2tfZGVwdGhgIGl0c2VsZiBpcyBpbnZva2VkIGJ5IGBicGZfY2hlY2tgLiAgVGhpcyBtZWFucyBpdCBpcyBkZWZpbml0aXZlbHkgcmVhY2hhYmxlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIuIE5vdywgdGhhdCBJIGtub3cgaXRzIHJlYWNoYWJsZSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQgaXMgYmVpbmcgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWcgb3B0aW9ucyB0aGF0IGltcGFjdCB0aGlzIGZsb3cuIExldCBtZSBzdGFydCBieSBsb29raW5nIGF0IGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgaW50ZXJlc3Rpbmcgc3R1ZmYgcmVnYXJkaW5nIEJQRiB2ZXJpZmljYXRpb24gcmVzaWRlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX1NZU0NBTEwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtrZXJuZWwvYnBmL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvTWFrZWZpbGU9Nz1DRkxBR1NfY29yZS5vICYjNDM7PSAtV25vLW92ZXJyaWRlLWluaXQgJChjZmxhZ3Mtbm9nY3NlLXl5KVxua2VybmVsL2JwZi9NYWtlZmlsZS04LVxua2VybmVsL2JwZi9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHN5c2NhbGwubyB2ZXJpZmllci5vIGlub2RlLm8gaGVscGVycy5vIHRudW0ubyBjbnVtLm8gbG9nLm8gdG9rZW4ubyBsaXZlbmVzcy5vIGNvbnN0X2ZvbGQub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBicGZfaXRlci5vIG1hcF9pdGVyLm8gdGFza19pdGVyLm8gcHJvZ19pdGVyLm8gbGlua19pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gaGFzaHRhYi5vIGFycmF5bWFwLm8gcGVyY3B1X2ZyZWVsaXN0Lm8gYnBmX2xydV9saXN0Lm8gbHBtX3RyaWUubyBtYXBfaW5fbWFwLm8gYmxvb21fZmlsdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gbG9jYWxfc3RvcmFnZS5vIHF1ZXVlX3N0YWNrX21hcHMubyByaW5nYnVmLm8gYnBmX2luc25fYXJyYXkub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBicGZfbG9jYWxfc3RvcmFnZS5vIGJwZl90YXNrX3N0b3JhZ2Uub1xua2VybmVsL2JwZi9NYWtlZmlsZToxNDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBmaXh1cHMubyBjZmcubyBzdGF0ZXMubyBiYWNrdHJhY2subyBjaGVja19idGYub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xNS1vYmotJHtDT05GSUdfQlBGX0xTTX1cdCAgJiM0Mzs9IGJwZl9pbm9kZV9zdG9yYWdlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6MTY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gZGlzYXNtLm8gbXByb2cub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xNy1vYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IHRyYW1wb2xpbmUub1xua2VybmVsL2JwZi9NYWtlZmlsZToxODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBidGYubyBtZW1hbGxvYy5vIHJxc3BpbmxvY2subyBzdHJlYW0ub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xOS1pZmVxICgkKENPTkZJR19NTVUpJChDT05GSUdfNjRCSVQpLHl5KVxua2VybmVsL2JwZi9NYWtlZmlsZToyMDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBhcmVuYS5vIHJhbmdlX3RyZWUub1xua2VybmVsL2JwZi9NYWtlZmlsZS0yMS1lbmRpZlxuLS1cbmtlcm5lbC9icGYvTWFrZWZpbGU9MjM9aWZlcSAoJChDT05GSUdfTkVUKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBkZXZtYXAub1xua2VybmVsL2JwZi9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBjcHVtYXAub1xua2VybmVsL2JwZi9NYWtlZmlsZToyNjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBvZmZsb2FkLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6Mjc6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gbmV0X25hbWVzcGFjZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHRjeC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTI5LWVuZGlmXG5rZXJuZWwvYnBmL01ha2VmaWxlPTMwPWlmZXEgKCQoQ09ORklHX1BFUkZfRVZFTlRTKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBzdGFja21hcC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTMyLWVuZGlmXG5rZXJuZWwvYnBmL01ha2VmaWxlPTMzPWlmZXEgKCQoQ09ORklHX0NHUk9VUFMpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNncm91cF9pdGVyLm8gYnBmX2NncnBfc3RvcmFnZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM1LWVuZGlmXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT0zNz1pZmVxICgkKENPTkZJR19JTkVUKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTozODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSByZXVzZXBvcnRfYXJyYXkub1xua2VybmVsL2JwZi9NYWtlZmlsZS0zOS1lbmRpZlxuLS1cbmtlcm5lbC9icGYvTWFrZWZpbGU9NDM9aWZlcSAoJChDT05GSUdfQlBGX0pJVCkseSlcbmtlcm5lbC9icGYvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnBmX3N0cnVjdF9vcHMub1xua2VybmVsL2JwZi9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBjcHVtYXNrLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNDYtIyBicGZfbHNtX3Byb3RvLm8gbXVzdCBwcmVjZWRlIGJwZl9sc20uby4gVGhlIGN1cnJlbnQgcGFob2xlIGxvZ2ljXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT01OD1pZm5lcSAoJChDT05GSUdfQ1JZUFRPKSwpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjU5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNyeXB0by5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYwLWVuZGlmXG5rZXJuZWwvYnBmL01ha2VmaWxlPTYxPW9iai0kKENPTkZJR19CUEZfUFJFTE9BRCkgJiM0Mzs9IHByZWxvYWQvXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYyLVxua2VybmVsL2JwZi9NYWtlZmlsZTo2MzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSByZWxvX2NvcmUub1xua2VybmVsL2JwZi9NYWtlZmlsZTo2NDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBidGZfaXRlci5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJ0Zl9yZWxvY2F0ZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGttZW1fY2FjaGVfaXRlci5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTY3LWlmZXEgKCQoQ09ORklHX0RNQV9TSEFSRURfQlVGRkVSKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBkbWFidWZfaXRlci5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTY5LWVuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjYxNwoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGhlcmUgaXMgYEJQRl9TWVNDQUxMYCwgdGhhdCYjMzk7cyB0aGUgY29udGV4dC4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBpcyBhIGZpeCBmb3IgYGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nYC4gRXNzZW50aWFsbHksIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSBmbGF3IHdoZXJlIHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcyB3ZXJlIHNsaXBwaW5nIHRocm91Z2ggdGhlIHZlcmlmaWVyLCB1bi1yZWplY3RlZCBhbmQgdW4taGFuZGxlZC4gVGhhdCBpbmRpY2F0ZXMgYSBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyJiMzOTtzIGNvcmUgbG9naWMuCgpJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBhcmUgcmVsYXRlZCBmdW5jdGlvbnMgdG8gZXhhbWluZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSB0YXJnZXQuIExvb2tpbmcgYXQgdGhlIGNhbGwgc3RhY2ssIGBjaGVja19tYXhfc3RhY2tfZGVwdGhgIGNhbGxzIGBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ2AsIGFuZCBgYnBmX2NoZWNrYCBpcyB0aGUgZW50cnkgcG9pbnQuIFRvIGJlIHRob3JvdWdoLCBJIHdpbGwgYWRkIGJvdGggYGNoZWNrX21heF9zdGFja19kZXB0aGAgYW5kIGBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ2AgdG8gbXkgYEZvY3VzU3ltYm9sc2AgbGlzdC4KCk5vdywgbGV0JiMzOTtzIHByb2NlZWQgd2l0aCBjYWxsaW5nIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2cmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gY29ycmVjdGx5IHJlamVjdCB0YWlsIGNhbGxzIHdpdGhpbiBjYWxsYmFja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nJiMzNDssCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGNvcnJlY3RseSByZWplY3QgdGFpbCBjYWxscyB3aXRoaW4gY2FsbGJhY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDE2OjQxOjE5LjY0ODYzOTE1OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0MTQwNjcwMjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dcIixcbiAgICBcImNoZWNrX21heF9zdGFja19kZXB0aFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gY29ycmVjdGx5IHJlamVjdCB0YWlsIGNhbGxzIHdpdGhpbiBjYWxsYmFja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxNjo0MToxOS42NDg2NDQ4OTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2ODUxNTU1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRiMmJmYjk2MTlhODQ5NDA1YzBhNTYzMzc0ZjNhYmRkZWI0N2U4NjJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMTY6NDE6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuaW5kZXggZGU4MTYwNjNhZTYzZDAuLjYyZDQ2YjRjOTk2MmZjIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbkBAIC01MjM3LDEwICs1MjM3LDYgQEAgc3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxcbiBcXHRcXHRpZiAodmVyaWZpZXJfYnVnX2lmKHNpZHggXFx1MDAzYyAwLCBlbnYsIFxcXCJjYWxsZWUgbm90IGZvdW5kIGF0IGluc24gJWRcXFwiLCBuZXh0X2luc24pKVxcbiBcXHRcXHRcXHRyZXR1cm4gLUVGQVVMVDtcXG4gXFx0XFx0aWYgKHN1YnByb2dbc2lkeF0uaXNfYXN5bmNfY2IpIHtcXG4tXFx0XFx0XFx0aWYgKHN1YnByb2dbc2lkeF0uaGFzX3RhaWxfY2FsbCkge1xcbi1cXHRcXHRcXHRcXHR2ZXJpZmllcl9idWcoZW52LCBcXFwic3VicHJvZyBoYXMgdGFpbF9jYWxsIGFuZCBhc3luYyBjYlxcXCIpO1xcbi1cXHRcXHRcXHRcXHRyZXR1cm4gLUVGQVVMVDtcXG4tXFx0XFx0XFx0fVxcbiBcXHRcXHRcXHQvKiBhc3luYyBjYWxsYmFja3MgZG9uJ3QgaW5jcmVhc2UgYnBmIHByb2cgc3RhY2sgc2l6ZSB1bmxlc3MgY2FsbGVkIGRpcmVjdGx5ICovXFxuIFxcdFxcdFxcdGlmICghYnBmX3BzZXVkb19jYWxsKGluc24gKyBpKSlcXG4gXFx0XFx0XFx0XFx0Y29udGludWU7XFxuQEAgLTUyNjMsOCArNTI1OSw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcXG4gXFx0XFx0aWYgKCFwcml2X3N0YWNrX3N1cHBvcnRlZClcXG4gXFx0XFx0XFx0c3VicHJvZ1tpZHhdLnByaXZfc3RhY2tfbW9kZSA9IE5PX1BSSVZfU1RBQ0s7XFxuIFxcbi1cXHRcXHRpZiAoc3VicHJvZ1tpZHhdLmhhc190YWlsX2NhbGwpXFxuLVxcdFxcdFxcdHRhaWxfY2FsbF9yZWFjaGFibGUgPSB0cnVlO1xcbitcXHRcXHQvKiBzeW5jIHRhaWxfY2FsbF9yZWFjaGFibGUgd2l0aCBjYWxsZWUgc3RhdGUgb24gZW50cnkgKi9cXG4rXFx0XFx0dGFpbF9jYWxsX3JlYWNoYWJsZSA9IHN1YnByb2dbaWR4XS5oYXNfdGFpbF9jYWxsO1xcbiBcXG4gXFx0XFx0ZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICsgMTtcXG4gXFx0XFx0aWYgKGZyYW1lIFxcdTAwM2U9IE1BWF9DQUxMX0ZSQU1FUykge1xcbkBAIC01MjgxLDggKzUyNzcsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXFxuIFxcdCAqL1xcbiBcXHRpZiAodGFpbF9jYWxsX3JlYWNoYWJsZSkge1xcbiBcXHRcXHRmb3IgKHRtcCA9IGlkeDsgdG1wIFxcdTAwM2U9IDA7IHRtcCA9IGRpbmZvW3RtcF0uY2FsbGVyKSB7XFxuLVxcdFxcdFxcdGlmIChzdWJwcm9nW3RtcF0uaXNfZXhjZXB0aW9uX2NiKSB7XFxuLVxcdFxcdFxcdFxcdHZlcmJvc2UoZW52LCBcXFwiY2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gZXhjZXB0aW9uIGNiXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0aWYgKHN1YnByb2dbdG1wXS5pc19jYikge1xcbitcXHRcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcImNhbm5vdCB0YWlsIGNhbGwgd2l0aGluIGNhbGxiYWNrXFxcXG5cXFwiKTtcXG4gXFx0XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0aWYgKHN1YnByb2dbdG1wXS5zdGFja19hcmdfY250KSB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcXG5pbmRleCBhNWEyMjZkMDEwNGNkMi4uYzY2MDM3MTYyZGE1YWUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xcbkBAIC0xMiw2ICsxMiw3IEBAXFxuICNpbmNsdWRlIFxcXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZS5za2VsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Uuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidGFpbGNhbGxfc2xlZXBhYmxlLnNrZWwuaFxcXCJcXG4rI2luY2x1ZGUgXFxcInRhaWxjYWxsX2NhbGxiYWNrLnNrZWwuaFxcXCJcXG4gXFxuIC8qIHRlc3RfdGFpbGNhbGxfMSBjaGVja3MgYmFzaWMgZnVuY3Rpb25hbGl0eSBieSBwYXRjaGluZyBtdWx0aXBsZSBsb2NhdGlvbnNcXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXFx1MDAzZWptcCwgam1wLVxcdTAwM2Vub3BcXG5AQCAtMTkwMSw2ICsxOTAyLDExIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfc2xlZXBhYmxlKHZvaWQpXFxuIFxcdHRhaWxjYWxsX3NsZWVwYWJsZV9fZGVzdHJveShza2VsKTtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9jYWxsYmFjayh2b2lkKVxcbit7XFxuK1xcdFJVTl9URVNUUyh0YWlsY2FsbF9jYWxsYmFjayk7XFxuK31cXG4rXFxuIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcXG4ge1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfMVxcXCIpKVxcbkBAIC0xOTY3LDQgKzE5NzMsNSBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXFxuIFxcdFxcdHRlc3RfdGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfbGVhZigpO1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfYnJpZGdlXFxcIikpXFxuIFxcdFxcdHRlc3RfdGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfYnJpZGdlKCk7XFxuK1xcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcXG4gfVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90YWlsY2FsbF9jYWxsYmFjay5jXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uYzQxNjMyY2Y0MjNiYzZcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmNcXG5AQCAtMCwwICsxLDgxIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9icGYuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2JwZi9icGZfaGVscGVycy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXFwiYnBmX21pc2MuaFxcXCJcXG4rI2luY2x1ZGUgXFxcImJwZl90ZXN0X3V0aWxzLmhcXFwiXFxuK1xcbitpbnQgY2xhc3NpZmllcl8wKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYik7XFxuK1xcbitzdHJ1Y3Qge1xcbitcXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkpO1xcbitcXHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xcbitcXHRfX3VpbnQoa2V5X3NpemUsIHNpemVvZihfX3UzMikpO1xcbitcXHRfX2FycmF5KHZhbHVlcywgdm9pZCAodm9pZCkpO1xcbit9IGptcF90YWJsZSBTRUMoXFxcIi5tYXBzXFxcIikgPSB7XFxuK1xcdC52YWx1ZXMgPSB7XFxuK1xcdFxcdFswXSA9ICh2b2lkICopIFxcdTAwMjZjbGFzc2lmaWVyXzAsXFxuK1xcdH0sXFxuK307XFxuK1xcbitfX2F1eGlsaWFyeVxcbitTRUMoXFxcInRjXFxcIilcXG4raW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpXFxuK3tcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyBfX25vaW5saW5lXFxuK2ludCBzdWJwcm9nX3RhaWwwKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4re1xcbitcXHRpbnQgcmV0ID0gMDtcXG4rXFxuK1xcdGJwZl90YWlsX2NhbGxfc3RhdGljKHNrYiwgXFx1MDAyNmptcF90YWJsZSwgMCk7XFxuK1xcdGJhcnJpZXJfdmFyKHJldCk7XFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuK3N0YXRpYyBfX25vaW5saW5lXFxuK2ludCBjYWxsYmFja19sb29wKGludCBpbmRleCwgdm9pZCAqKmNiX2N0eClcXG4re1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0cmV0ID0gc3VicHJvZ190YWlsMCgqY2JfY3R4KTtcXG4rXFx0YmFycmllcl92YXIocmV0KTtcXG4rXFx0cmV0dXJuIHJldCA/IDEgOiAwO1xcbit9XFxuK1xcbitzdGF0aWMgX19ub2lubGluZVxcbitpbnQgY2FsbGJhY2tfZW1wdHkoaW50IGluZGV4LCB2b2lkICpkYXRhKVxcbit7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbisvKiBjYWxsYmFjayBpbnZvbHZpbmcgc3VicHJvZyB3aXRoIHRhaWwgY2FsbCBpcyByZWplY3RlZCAqL1xcbitTRUMoXFxcInRjXFxcIilcXG4rX19mYWlsdXJlIF9fbXNnKFxcXCJjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBjYWxsYmFja1xcXCIpXFxuK2ludCB0YWlsY2FsbF9jYWxsYmFja18xKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4re1xcbitcXHRjbG9iYmVyX3JlZ3Nfc3RhY2soKTtcXG4rXFxuK1xcdGJwZl9sb29wKDEsIGNhbGxiYWNrX2xvb3AsIFxcdTAwMjZza2IsIDApO1xcbitcXHRyZXR1cm4gMDtcXG4rfVxcbitcXG4rLyogc3VicHJvZ3Mgd2l0aCB0YWlsY2FsbCBkbyBub3QgYWZmZWN0IG5vLXRhaWxjYWxsIGNhbGxiYWNrICovXFxuK1NFQyhcXFwidGNcXFwiKVxcbitfX3N1Y2Nlc3NcXG4rX19yZXR2YWwoMClcXG4raW50IHRhaWxjYWxsX2NhbGxiYWNrXzIoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxcbit7XFxuK1xcdGludCByZXQ7XFxuK1xcbitcXHRjbG9iYmVyX3JlZ3Nfc3RhY2soKTtcXG4rXFxuK1xcdHJldCA9IHN1YnByb2dfdGFpbDAoc2tiKTtcXG4rXFx0X19zaW5rKHJldCk7XFxuK1xcbitcXHRicGZfbG9vcCgxLCBjYWxsYmFja19lbXB0eSwgTlVMTCwgMCk7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbitjaGFyIF9fbGljZW5zZVtdIFNFQyhcXFwibGljZW5zZVxcXCIpID0gXFxcIkdQTFxcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDE2OjQxOjIwLjMxNzg0NTk1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzQ3MTQ0MDQ2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nXCIsXG4gICAgXCJjaGVja19tYXhfc3RhY2tfZGVwdGhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGNvcnJlY3RseSByZWplY3QgdGFpbCBjYWxscyB3aXRoaW4gY2FsbGJhY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkYjJiZmI5NjE5YTg0OTQwNWMwYTU2MzM3NGYzYWJkZGViNDdlODYyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMTY6NDE6MTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IGRlODE2MDYzYWU2M2QwLi42MmQ0NmI0Yzk5NjJmYyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtNTIzNywxMCArNTIzNyw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcbiBcdFx0aWYgKHZlcmlmaWVyX2J1Z19pZihzaWR4IFx1MDAzYyAwLCBlbnYsIFwiY2FsbGVlIG5vdCBmb3VuZCBhdCBpbnNuICVkXCIsIG5leHRfaW5zbikpXG4gXHRcdFx0cmV0dXJuIC1FRkFVTFQ7XG4gXHRcdGlmIChzdWJwcm9nW3NpZHhdLmlzX2FzeW5jX2NiKSB7XG4tXHRcdFx0aWYgKHN1YnByb2dbc2lkeF0uaGFzX3RhaWxfY2FsbCkge1xuLVx0XHRcdFx0dmVyaWZpZXJfYnVnKGVudiwgXCJzdWJwcm9nIGhhcyB0YWlsX2NhbGwgYW5kIGFzeW5jIGNiXCIpO1xuLVx0XHRcdFx0cmV0dXJuIC1FRkFVTFQ7XG4tXHRcdFx0fVxuIFx0XHRcdC8qIGFzeW5jIGNhbGxiYWNrcyBkb24ndCBpbmNyZWFzZSBicGYgcHJvZyBzdGFjayBzaXplIHVubGVzcyBjYWxsZWQgZGlyZWN0bHkgKi9cbiBcdFx0XHRpZiAoIWJwZl9wc2V1ZG9fY2FsbChpbnNuICsgaSkpXG4gXHRcdFx0XHRjb250aW51ZTtcbkBAIC01MjYzLDggKzUyNTksOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXG4gXHRcdGlmICghcHJpdl9zdGFja19zdXBwb3J0ZWQpXG4gXHRcdFx0c3VicHJvZ1tpZHhdLnByaXZfc3RhY2tfbW9kZSA9IE5PX1BSSVZfU1RBQ0s7XG4gXG4tXHRcdGlmIChzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbClcbi1cdFx0XHR0YWlsX2NhbGxfcmVhY2hhYmxlID0gdHJ1ZTtcbitcdFx0Lyogc3luYyB0YWlsX2NhbGxfcmVhY2hhYmxlIHdpdGggY2FsbGVlIHN0YXRlIG9uIGVudHJ5ICovXG4rXHRcdHRhaWxfY2FsbF9yZWFjaGFibGUgPSBzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbDtcbiBcbiBcdFx0ZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICsgMTtcbiBcdFx0aWYgKGZyYW1lIFx1MDAzZT0gTUFYX0NBTExfRlJBTUVTKSB7XG5AQCAtNTI4MSw4ICs1Mjc3LDggQEAgc3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxuIFx0ICovXG4gXHRpZiAodGFpbF9jYWxsX3JlYWNoYWJsZSkge1xuIFx0XHRmb3IgKHRtcCA9IGlkeDsgdG1wIFx1MDAzZT0gMDsgdG1wID0gZGluZm9bdG1wXS5jYWxsZXIpIHtcbi1cdFx0XHRpZiAoc3VicHJvZ1t0bXBdLmlzX2V4Y2VwdGlvbl9jYikge1xuLVx0XHRcdFx0dmVyYm9zZShlbnYsIFwiY2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gZXhjZXB0aW9uIGNiXFxuXCIpO1xuK1x0XHRcdGlmIChzdWJwcm9nW3RtcF0uaXNfY2IpIHtcbitcdFx0XHRcdHZlcmJvc2UoZW52LCBcImNhbm5vdCB0YWlsIGNhbGwgd2l0aGluIGNhbGxiYWNrXFxuXCIpO1xuIFx0XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdFx0fVxuIFx0XHRcdGlmIChzdWJwcm9nW3RtcF0uc3RhY2tfYXJnX2NudCkge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbmluZGV4IGE1YTIyNmQwMTA0Y2QyLi5jNjYwMzcxNjJkYTVhZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuQEAgLTEyLDYgKzEyLDcgQEBcbiAjaW5jbHVkZSBcInRhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Uuc2tlbC5oXCJcbiAjaW5jbHVkZSBcInRhaWxjYWxsX3NsZWVwYWJsZS5za2VsLmhcIlxuKyNpbmNsdWRlIFwidGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oXCJcbiBcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXHUwMDNlam1wLCBqbXAtXHUwMDNlbm9wXG5AQCAtMTkwMSw2ICsxOTAyLDExIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfc2xlZXBhYmxlKHZvaWQpXG4gXHR0YWlsY2FsbF9zbGVlcGFibGVfX2Rlc3Ryb3koc2tlbCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfY2FsbGJhY2sodm9pZClcbit7XG4rXHRSVU5fVEVTVFModGFpbGNhbGxfY2FsbGJhY2spO1xuK31cbitcbiB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4ge1xuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCJ0YWlsY2FsbF8xXCIpKVxuQEAgLTE5NjcsNCArMTk3Myw1IEBAIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9sZWFmKCk7XG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcInRhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZVwiKSlcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTtcbitcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5jNDE2MzJjZjQyM2JjNlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmNcbkBAIC0wLDAgKzEsODEgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2JwZi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcdTAwM2VcbisjaW5jbHVkZSBcImJwZl9taXNjLmhcIlxuKyNpbmNsdWRlIFwiYnBmX3Rlc3RfdXRpbHMuaFwiXG4rXG4raW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpO1xuK1xuK3N0cnVjdCB7XG4rXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkpO1xuK1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbitcdF9fdWludChrZXlfc2l6ZSwgc2l6ZW9mKF9fdTMyKSk7XG4rXHRfX2FycmF5KHZhbHVlcywgdm9pZCAodm9pZCkpO1xuK30gam1wX3RhYmxlIFNFQyhcIi5tYXBzXCIpID0ge1xuK1x0LnZhbHVlcyA9IHtcbitcdFx0WzBdID0gKHZvaWQgKikgXHUwMDI2Y2xhc3NpZmllcl8wLFxuK1x0fSxcbit9O1xuK1xuK19fYXV4aWxpYXJ5XG4rU0VDKFwidGNcIilcbitpbnQgY2xhc3NpZmllcl8wKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbit7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4rc3RhdGljIF9fbm9pbmxpbmVcbitpbnQgc3VicHJvZ190YWlsMChzdHJ1Y3QgX19za19idWZmICpza2IpXG4re1xuK1x0aW50IHJldCA9IDA7XG4rXG4rXHRicGZfdGFpbF9jYWxsX3N0YXRpYyhza2IsIFx1MDAyNmptcF90YWJsZSwgMCk7XG4rXHRiYXJyaWVyX3ZhcihyZXQpO1xuK1x0cmV0dXJuIHJldDtcbit9XG4rXG4rc3RhdGljIF9fbm9pbmxpbmVcbitpbnQgY2FsbGJhY2tfbG9vcChpbnQgaW5kZXgsIHZvaWQgKipjYl9jdHgpXG4re1xuK1x0aW50IHJldDtcbitcbitcdHJldCA9IHN1YnByb2dfdGFpbDAoKmNiX2N0eCk7XG4rXHRiYXJyaWVyX3ZhcihyZXQpO1xuK1x0cmV0dXJuIHJldCA/IDEgOiAwO1xuK31cbitcbitzdGF0aWMgX19ub2lubGluZVxuK2ludCBjYWxsYmFja19lbXB0eShpbnQgaW5kZXgsIHZvaWQgKmRhdGEpXG4re1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuKy8qIGNhbGxiYWNrIGludm9sdmluZyBzdWJwcm9nIHdpdGggdGFpbCBjYWxsIGlzIHJlamVjdGVkICovXG4rU0VDKFwidGNcIilcbitfX2ZhaWx1cmUgX19tc2coXCJjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBjYWxsYmFja1wiKVxuK2ludCB0YWlsY2FsbF9jYWxsYmFja18xKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbit7XG4rXHRjbG9iYmVyX3JlZ3Nfc3RhY2soKTtcbitcbitcdGJwZl9sb29wKDEsIGNhbGxiYWNrX2xvb3AsIFx1MDAyNnNrYiwgMCk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4rLyogc3VicHJvZ3Mgd2l0aCB0YWlsY2FsbCBkbyBub3QgYWZmZWN0IG5vLXRhaWxjYWxsIGNhbGxiYWNrICovXG4rU0VDKFwidGNcIilcbitfX3N1Y2Nlc3NcbitfX3JldHZhbCgwKVxuK2ludCB0YWlsY2FsbF9jYWxsYmFja18yKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbit7XG4rXHRpbnQgcmV0O1xuK1xuK1x0Y2xvYmJlcl9yZWdzX3N0YWNrKCk7XG4rXG4rXHRyZXQgPSBzdWJwcm9nX3RhaWwwKHNrYik7XG4rXHRfX3NpbmsocmV0KTtcbitcbitcdGJwZl9sb29wKDEsIGNhbGxiYWNrX2VtcHR5LCBOVUxMLCAwKTtcbitcdHJldHVybiAwO1xuK31cbitcbitjaGFyIF9fbGljZW5zZVtdIFNFQyhcImxpY2Vuc2VcIikgPSBcIkdQTFwiO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDE6MjAuMzE3ODQ3MjRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MzY4MDQxNDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkJQRiBWZXJpZmllciBUYWlsIENhbGwgYW5kIENhbGxiYWNrIExvZ2ljIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIEJQRiB2ZXJpZmllciwgc3BlY2lmaWNhbGx5IHdpdGhpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gSXQgc2VlbXMgd2UncmUgemVyb2luZyBpbiBvbiBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCdzIGRlYWxpbmcgd2l0aCBzdGFjayBkZXB0aCBhbmFseXNpcyBkdXJpbmcgQlBGIHByb2dyYW0gdmVyaWZpY2F0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byB0YWlsIGNhbGxzIGFuZCBob3cgdGhleSBpbnRlcmFjdCB3aXRoIGNhbGxiYWNrIG1lY2hhbmlzbXMuXG5cblRoZSBkaWZmIGl0c2VsZiBzZWVtcyBwcmV0dHkgZm9jdXNlZC4gSSBzZWUgY2hhbmdlcyBkZWFsaW5nIHdpdGggaG93IHRoZSB2ZXJpZmllciBoYW5kbGVzIHRoZSBpbnRlcmFjdGlvbiBvZiBzdWJwcm9ncmFtcywgcGFydGljdWxhcmx5IHRob3NlIG1hcmtlZCBhcyBhc3luY2hyb25vdXMgY2FsbGJhY2tzIG9yIHdoaWNoIGhhdmUgdGFpbCBjYWxscy4gVGhlcmUgd2FzIGEgZGlyZWN0IGNoZWNrIHRoYXQgdGFpbCBjYWxscyBhbmQgYXN5bmMgY2FsbGJhY2tzIGNhbm5vdCBjby1leGlzdCwgd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZC4gVGhlcmUncyBhbHNvIGEgc3luYyBvZiBgdGFpbF9jYWxsX3JlYWNoYWJsZWAgd2l0aCB0aGUgY2FsbGVlIHN0YXRlLCB3aGljaCBhcHBlYXJzIHRvIGJlIGEgY29ycmVjdGlvbiwgdG8gcmVmbGVjdCB0aGUgc3VicHJvZ3JhbSdzIHRhaWwgY2FsbCBzdGF0ZSBvbiBlbnRyeS4gSSBzaG91bGQgZGlnIGRlZXBlciBpbnRvIHRoYXQgbG9naWMuIEZpbmFsbHksIHRoZXJlJ3MgYSByZXN0cmljdGlvbiBwcmV2ZW50aW5nIHRhaWwgY2FsbHMgd2l0aGluIGFueSBjYWxsYmFjaywgd2hpY2ggc2VlbXMgcmVhc29uYWJsZS5cblxuQmFzZWQgb24gdGhlIGNvZGUgY2hhbmdlcyBhbmQgdGhlIGNvbnRleHQsIEknbSBnb2luZyB0byBhc3N1bWUgdGhpcyBtb2RpZmljYXRpb24gaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLiBNeSBmb2N1cyBoZXJlIGlzIGdvaW5nIHRvIGJlIG9uIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBjaGFuZ2VzIGluIHRoZSBzdGFjayBkZXB0aCB2ZXJpZmljYXRpb24sIGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIGV4aXN0aW5nIEJQRiBzeXNjYWxsIHN1cHBvcnQsIHJlcHJlc2VudGVkIGJ5IHRoZSBgQlBGX1NZU0NBTExgIGNvbmZpZyBvcHRpb24uIEknbGwgbmVlZCB0byBjb25maXJtIHRocm91Z2ggZnVydGhlciBpbnZlc3RpZ2F0aW9uIHRoYXQgdGhpcyBpcyBpbmRlZWQgdGhlIGNvcmUgZnVuY3Rpb24gaGFuZGxpbmcgdGhlIHN0YWNrIGRlcHRoIGNoZWNrcyBkdXJpbmcgdmVyaWZpY2F0aW9uLiBJIHdpbGwgZGVmaW5pdGVseSBuZWVkIHRvIGV4YW1pbmUgdGhlIG5ldyB0ZXN0cyBhZGRlZCBpbiBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AgdG8gYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGludGVudGlvbiBvZiB0aGVzZSBjaGFuZ2VzIGFuZCB0byBlbnN1cmUgdGhleSBhcmVuJ3QgaW50cm9kdWNpbmcgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMgb3IgcmVncmVzc2lvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgY29ycmVjdCBmdW5jdGlvbiBhbmQgaWYgdGhlcmUgYXJlIG90aGVycyB0aGF0IG1pZ2h0IGFsc28gaGF2ZSBiZWVuIGFmZmVjdGVkLiBJIHNob3VsZCBwcm9iYWJseSB1c2UgdGhlIHByb3ZpZGVkIHRvb2xzIHRvIGNvbmZpcm0gbXkgb2JzZXJ2YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTA2LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Nzk2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDE6MjkuNjg1ODkxMDA1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MjgxNzIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTExNj1zdHJ1Y3QgYnBmX3N1YnByb2dfY2FsbF9kZXB0aF9pbmZvIHtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MTI1LSAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1MTI2OnN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTEyNy1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IGJwZl9zdWJwcm9nX2NhbGxfZGVwdGhfaW5mbyAqZGluZm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTMxOT1zdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTUzNTEtXFx0XFx0XFx0cHJpdl9zdGFja19zdXBwb3J0ZWQgPSAhaSBcXHUwMDI2XFx1MDAyNiBwcml2X3N0YWNrX21vZGUgPT0gUFJJVl9TVEFDS19BREFQVElWRTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NTM1MjpcXHRcXHRcXHRyZXQgPSBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhlbnYsIGksIGRpbmZvLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MzUzLVxcdFxcdFxcdFxcdFxcdHByaXZfc3RhY2tfc3VwcG9ydGVkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDE6MjkuNzg1MTc4NTk5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg4MjUwNjY1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipSZWFjaGluZyBhIEtleSBGdW5jdGlvbiB2aWEgYSBDaGFpbioqXG5cblNvLCB0aGUgY29kZSBmbG93IGlzIHByZXR0eSBjbGVhciBoZXJlLiBJIGNhbiBzZWUgdGhhdCBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgIGlzLCBhcyB0aGUgbmFtZSBzdWdnZXN0cywgYSAqc3ViLXByb2dyYW0qIGNhbGxlZCBieSBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoYC4gVGhlbiwgYGNoZWNrX21heF9zdGFja19kZXB0aGAgaXRzZWxmIGlzIGludm9rZWQgYnkgYGJwZl9jaGVja2AuICBUaGlzIG1lYW5zIGl0IGlzIGRlZmluaXRpdmVseSByZWFjaGFibGUsIHdoaWNoIGlzIGltcG9ydGFudCB0byByZW1lbWJlci4gTm93LCB0aGF0IEkga25vdyBpdHMgcmVhY2hhYmxlLCBJIG5lZWQgdG8ga25vdyB3aGVyZSBpdCBpcyBiZWluZyBjYWxsZWQgZnJvbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZyBvcHRpb25zIHRoYXQgaW1wYWN0IHRoaXMgZmxvdy4gTGV0IG1lIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoaXMgaXMgd2hlcmUgYWxsIHRoZSBpbnRlcmVzdGluZyBzdHVmZiByZWdhcmRpbmcgQlBGIHZlcmlmaWNhdGlvbiByZXNpZGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDAwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDI6MDguNjEwMjQ3MzM1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4NzUzMzY1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfQlBGX1NZU0NBTExcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL01ha2VmaWxlPTc9Q0ZMQUdTX2NvcmUubyArPSAtV25vLW92ZXJyaWRlLWluaXQgJChjZmxhZ3Mtbm9nY3NlLXl5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGUtOC1cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBzeXNjYWxsLm8gdmVyaWZpZXIubyBpbm9kZS5vIGhlbHBlcnMubyB0bnVtLm8gY251bS5vIGxvZy5vIHRva2VuLm8gbGl2ZW5lc3MubyBjb25zdF9mb2xkLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX2l0ZXIubyBtYXBfaXRlci5vIHRhc2tfaXRlci5vIHByb2dfaXRlci5vIGxpbmtfaXRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGhhc2h0YWIubyBhcnJheW1hcC5vIHBlcmNwdV9mcmVlbGlzdC5vIGJwZl9scnVfbGlzdC5vIGxwbV90cmllLm8gbWFwX2luX21hcC5vIGJsb29tX2ZpbHRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGxvY2FsX3N0b3JhZ2UubyBxdWV1ZV9zdGFja19tYXBzLm8gcmluZ2J1Zi5vIGJwZl9pbnNuX2FycmF5Lm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX2xvY2FsX3N0b3JhZ2UubyBicGZfdGFza19zdG9yYWdlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZml4dXBzLm8gY2ZnLm8gc3RhdGVzLm8gYmFja3RyYWNrLm8gY2hlY2tfYnRmLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE1LW9iai0ke0NPTkZJR19CUEZfTFNNfVxcdCAgKz0gYnBmX2lub2RlX3N0b3JhZ2Uub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBkaXNhc20ubyBtcHJvZy5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0xNy1vYmotJChDT05GSUdfQlBGX0pJVCkgKz0gdHJhbXBvbGluZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJ0Zi5vIG1lbWFsbG9jLm8gcnFzcGlubG9jay5vIHN0cmVhbS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0xOS1pZmVxICgkKENPTkZJR19NTVUpJChDT05GSUdfNjRCSVQpLHl5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjA6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBhcmVuYS5vIHJhbmdlX3RyZWUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMjEtZW5kaWZcXG4tLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU9MjM9aWZlcSAoJChDT05GSUdfTkVUKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBkZXZtYXAub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBjcHVtYXAub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBvZmZsb2FkLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI3Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gbmV0X25hbWVzcGFjZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToyODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHRjeC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0yOS1lbmRpZlxcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzA9aWZlcSAoJChDT05GSUdfUEVSRl9FVkVOVFMpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHN0YWNrbWFwLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTMyLWVuZGlmXFxua2VybmVsL2JwZi9NYWtlZmlsZT0zMz1pZmVxICgkKENPTkZJR19DR1JPVVBTKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MzQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBjZ3JvdXBfaXRlci5vIGJwZl9jZ3JwX3N0b3JhZ2Uub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMzUtZW5kaWZcXG4tLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU9Mzc9aWZlcSAoJChDT05GSUdfSU5FVCkseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gcmV1c2Vwb3J0X2FycmF5Lm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM5LWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTQzPWlmZXEgKCQoQ09ORklHX0JQRl9KSVQpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTo0NDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJwZl9zdHJ1Y3Rfb3BzLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY3B1bWFzay5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS00Ni0jIGJwZl9sc21fcHJvdG8ubyBtdXN0IHByZWNlZGUgYnBmX2xzbS5vLiBUaGUgY3VycmVudCBwYWhvbGUgbG9naWNcXG4tLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU9NTg9aWZuZXEgKCQoQ09ORklHX0NSWVBUTyksKVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6NTk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBjcnlwdG8ub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNjAtZW5kaWZcXG5rZXJuZWwvYnBmL01ha2VmaWxlPTYxPW9iai0kKENPTkZJR19CUEZfUFJFTE9BRCkgKz0gcHJlbG9hZC9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYyLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjM6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSByZWxvX2NvcmUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBidGZfaXRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZTo2NTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJ0Zl9yZWxvY2F0ZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZTo2NjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGttZW1fY2FjaGVfaXRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS02Ny1pZmVxICgkKENPTkZJR19ETUFfU0hBUkVEX0JVRkZFUikseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZG1hYnVmX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNjktZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDI6MDguOTk3Nzg4NzAyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYyOTE4NTgzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaGVyZSBpcyBgQlBGX1NZU0NBTExgLCB0aGF0J3MgdGhlIGNvbnRleHQuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggaXMgYSBmaXggZm9yIGBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ2AuIEVzc2VudGlhbGx5LCBpdCdzIGFkZHJlc3NpbmcgYSBmbGF3IHdoZXJlIHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcyB3ZXJlIHNsaXBwaW5nIHRocm91Z2ggdGhlIHZlcmlmaWVyLCB1bi1yZWplY3RlZCBhbmQgdW4taGFuZGxlZC4gVGhhdCBpbmRpY2F0ZXMgYSBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyJ3MgY29yZSBsb2dpYy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIGV4YW1pbmUgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkgdGFyZ2V0LiBMb29raW5nIGF0IHRoZSBjYWxsIHN0YWNrLCBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoYCBjYWxscyBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgLCBhbmQgYGJwZl9jaGVja2AgaXMgdGhlIGVudHJ5IHBvaW50LiBUbyBiZSB0aG9yb3VnaCwgSSB3aWxsIGFkZCBib3RoIGBjaGVja19tYXhfc3RhY2tfZGVwdGhgIGFuZCBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuXG5cbk5vdywgbGV0J3MgcHJvY2VlZCB3aXRoIGNhbGxpbmcgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYxNywiT3V0cHV0VG9rZW5zIjo5NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxNjo0MjoxMy42MjY5NzcxMThaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MjMwMzE2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ1wiLFxuICAgIFwiY2hlY2tfbWF4X3N0YWNrX2RlcHRoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBjb3JyZWN0bHkgcmVqZWN0IHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ1wiLFxuICAgIFwiY2hlY2tfbWF4X3N0YWNrX2RlcHRoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBjb3JyZWN0bHkgcmVqZWN0IHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowvjdlc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 16:11:59 +0000 UTC FinishedAt: 2026-07-16 16:42:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "d1f4b56417a3dc1a0600f960b14f46bd25eda89d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "d1f4b56417a3dc1a0600f960b14f46bd25eda89d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "37f062f4-a58d-4e03-af07-10cd500d2fe6" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "check_max_stack_depth_subprog", "check_max_stack_depth" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDE2OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2cmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gY29ycmVjdGx5IHJlamVjdCB0YWlsIGNhbGxzIHdpdGhpbiBjYWxsYmFja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDE2OjQxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGIyYmZiOTYxOWE4NDk0MDVjMGE1NjMzNzRmM2FiZGRlYjQ3ZTg2MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDE2OjQxOjE4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggZGU4MTYwNjNhZTYzZDAuLjYyZDQ2YjRjOTk2MmZjIDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC01MjM3LDEwICYjNDM7NTIzNyw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcbiBcdFx0aWYgKHZlcmlmaWVyX2J1Z19pZihzaWR4IFx1MDAzYyAwLCBlbnYsIFwmIzM0O2NhbGxlZSBub3QgZm91bmQgYXQgaW5zbiAlZFwmIzM0OywgbmV4dF9pbnNuKSlcbiBcdFx0XHRyZXR1cm4gLUVGQVVMVDtcbiBcdFx0aWYgKHN1YnByb2dbc2lkeF0uaXNfYXN5bmNfY2IpIHtcbi1cdFx0XHRpZiAoc3VicHJvZ1tzaWR4XS5oYXNfdGFpbF9jYWxsKSB7XG4tXHRcdFx0XHR2ZXJpZmllcl9idWcoZW52LCBcJiMzNDtzdWJwcm9nIGhhcyB0YWlsX2NhbGwgYW5kIGFzeW5jIGNiXCYjMzQ7KTtcbi1cdFx0XHRcdHJldHVybiAtRUZBVUxUO1xuLVx0XHRcdH1cbiBcdFx0XHQvKiBhc3luYyBjYWxsYmFja3MgZG9uJiMzOTt0IGluY3JlYXNlIGJwZiBwcm9nIHN0YWNrIHNpemUgdW5sZXNzIGNhbGxlZCBkaXJlY3RseSAqL1xuIFx0XHRcdGlmICghYnBmX3BzZXVkb19jYWxsKGluc24gJiM0MzsgaSkpXG4gXHRcdFx0XHRjb250aW51ZTtcbkBAIC01MjYzLDggJiM0Mzs1MjU5LDggQEAgc3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxuIFx0XHRpZiAoIXByaXZfc3RhY2tfc3VwcG9ydGVkKVxuIFx0XHRcdHN1YnByb2dbaWR4XS5wcml2X3N0YWNrX21vZGUgPSBOT19QUklWX1NUQUNLO1xuIFxuLVx0XHRpZiAoc3VicHJvZ1tpZHhdLmhhc190YWlsX2NhbGwpXG4tXHRcdFx0dGFpbF9jYWxsX3JlYWNoYWJsZSA9IHRydWU7XG4mIzQzO1x0XHQvKiBzeW5jIHRhaWxfY2FsbF9yZWFjaGFibGUgd2l0aCBjYWxsZWUgc3RhdGUgb24gZW50cnkgKi9cbiYjNDM7XHRcdHRhaWxfY2FsbF9yZWFjaGFibGUgPSBzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbDtcbiBcbiBcdFx0ZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICYjNDM7IDE7XG4gXHRcdGlmIChmcmFtZSBcdTAwM2U9IE1BWF9DQUxMX0ZSQU1FUykge1xuQEAgLTUyODEsOCAmIzQzOzUyNzcsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXG4gXHQgKi9cbiBcdGlmICh0YWlsX2NhbGxfcmVhY2hhYmxlKSB7XG4gXHRcdGZvciAodG1wID0gaWR4OyB0bXAgXHUwMDNlPSAwOyB0bXAgPSBkaW5mb1t0bXBdLmNhbGxlcikge1xuLVx0XHRcdGlmIChzdWJwcm9nW3RtcF0uaXNfZXhjZXB0aW9uX2NiKSB7XG4tXHRcdFx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7Y2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gZXhjZXB0aW9uIGNiXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdFx0aWYgKHN1YnByb2dbdG1wXS5pc19jYikge1xuJiM0MztcdFx0XHRcdHZlcmJvc2UoZW52LCBcJiMzNDtjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBjYWxsYmFja1xcblwmIzM0Oyk7XG4gXHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKHN1YnByb2dbdG1wXS5zdGFja19hcmdfY250KSB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuaW5kZXggYTVhMjI2ZDAxMDRjZDIuLmM2NjAzNzE2MmRhNWFlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG5AQCAtMTIsNiAmIzQzOzEyLDcgQEBcbiAjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZS5za2VsLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Uuc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dGFpbGNhbGxfc2xlZXBhYmxlLnNrZWwuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDt0YWlsY2FsbF9jYWxsYmFjay5za2VsLmhcJiMzNDtcbiBcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXHUwMDNlam1wLCBqbXAtXHUwMDNlbm9wXG5AQCAtMTkwMSw2ICYjNDM7MTkwMiwxMSBAQCBzdGF0aWMgdm9pZCB0ZXN0X3RhaWxjYWxsX3NsZWVwYWJsZSh2b2lkKVxuIFx0dGFpbGNhbGxfc2xlZXBhYmxlX19kZXN0cm95KHNrZWwpO1xuIH1cbiBcbiYjNDM7c3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9jYWxsYmFjayh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0UlVOX1RFU1RTKHRhaWxjYWxsX2NhbGxiYWNrKTtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4ge1xuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCYjMzQ7dGFpbGNhbGxfMVwmIzM0OykpXG5AQCAtMTk2Nyw0ICYjNDM7MTk3Myw1IEBAIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9sZWFmKCk7XG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcJiMzNDt0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2VcJiMzNDspKVxuIFx0XHR0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSgpO1xuJiM0MztcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5jNDE2MzJjZjQyM2JjNlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmNcbkBAIC0wLDAgJiM0MzsxLDgxIEBAXG4mIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2JwZi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2JwZi9icGZfaGVscGVycy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFwmIzM0O2JwZl9taXNjLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7YnBmX3Rlc3RfdXRpbHMuaFwmIzM0O1xuJiM0MztcbiYjNDM7aW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpO1xuJiM0MztcbiYjNDM7c3RydWN0IHtcbiYjNDM7XHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkpO1xuJiM0MztcdF9fdWludChtYXhfZW50cmllcywgMSk7XG4mIzQzO1x0X191aW50KGtleV9zaXplLCBzaXplb2YoX191MzIpKTtcbiYjNDM7XHRfX2FycmF5KHZhbHVlcywgdm9pZCAodm9pZCkpO1xuJiM0Mzt9IGptcF90YWJsZSBTRUMoXCYjMzQ7Lm1hcHNcJiMzNDspID0ge1xuJiM0MztcdC52YWx1ZXMgPSB7XG4mIzQzO1x0XHRbMF0gPSAodm9pZCAqKSBcdTAwMjZjbGFzc2lmaWVyXzAsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO19fYXV4aWxpYXJ5XG4mIzQzO1NFQyhcJiMzNDt0Y1wmIzM0OylcbiYjNDM7aW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIF9fbm9pbmxpbmVcbiYjNDM7aW50IHN1YnByb2dfdGFpbDAoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuJiM0Mzt7XG4mIzQzO1x0aW50IHJldCA9IDA7XG4mIzQzO1xuJiM0MztcdGJwZl90YWlsX2NhbGxfc3RhdGljKHNrYiwgXHUwMDI2am1wX3RhYmxlLCAwKTtcbiYjNDM7XHRiYXJyaWVyX3ZhcihyZXQpO1xuJiM0MztcdHJldHVybiByZXQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBfX25vaW5saW5lXG4mIzQzO2ludCBjYWxsYmFja19sb29wKGludCBpbmRleCwgdm9pZCAqKmNiX2N0eClcbiYjNDM7e1xuJiM0MztcdGludCByZXQ7XG4mIzQzO1xuJiM0MztcdHJldCA9IHN1YnByb2dfdGFpbDAoKmNiX2N0eCk7XG4mIzQzO1x0YmFycmllcl92YXIocmV0KTtcbiYjNDM7XHRyZXR1cm4gcmV0ID8gMSA6IDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBfX25vaW5saW5lXG4mIzQzO2ludCBjYWxsYmFja19lbXB0eShpbnQgaW5kZXgsIHZvaWQgKmRhdGEpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7LyogY2FsbGJhY2sgaW52b2x2aW5nIHN1YnByb2cgd2l0aCB0YWlsIGNhbGwgaXMgcmVqZWN0ZWQgKi9cbiYjNDM7U0VDKFwmIzM0O3RjXCYjMzQ7KVxuJiM0MztfX2ZhaWx1cmUgX19tc2coXCYjMzQ7Y2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gY2FsbGJhY2tcJiMzNDspXG4mIzQzO2ludCB0YWlsY2FsbF9jYWxsYmFja18xKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbiYjNDM7e1xuJiM0MztcdGNsb2JiZXJfcmVnc19zdGFjaygpO1xuJiM0MztcbiYjNDM7XHRicGZfbG9vcCgxLCBjYWxsYmFja19sb29wLCBcdTAwMjZza2IsIDApO1xuJiM0MztcdHJldHVybiAwO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MzsvKiBzdWJwcm9ncyB3aXRoIHRhaWxjYWxsIGRvIG5vdCBhZmZlY3Qgbm8tdGFpbGNhbGwgY2FsbGJhY2sgKi9cbiYjNDM7U0VDKFwmIzM0O3RjXCYjMzQ7KVxuJiM0MztfX3N1Y2Nlc3NcbiYjNDM7X19yZXR2YWwoMClcbiYjNDM7aW50IHRhaWxjYWxsX2NhbGxiYWNrXzIoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuJiM0Mzt7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0Y2xvYmJlcl9yZWdzX3N0YWNrKCk7XG4mIzQzO1xuJiM0MztcdHJldCA9IHN1YnByb2dfdGFpbDAoc2tiKTtcbiYjNDM7XHRfX3NpbmsocmV0KTtcbiYjNDM7XG4mIzQzO1x0YnBmX2xvb3AoMSwgY2FsbGJhY2tfZW1wdHksIE5VTEwsIDApO1xuJiM0MztcdHJldHVybiAwO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztjaGFyIF9fbGljZW5zZVtdIFNFQyhcJiMzNDtsaWNlbnNlXCYjMzQ7KSA9IFwmIzM0O0dQTFwmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxNjo0MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nJiMzNDssCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGNvcnJlY3RseSByZWplY3QgdGFpbCBjYWxscyB3aXRoaW4gY2FsbGJhY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGIyYmZiOTYxOWE4NDk0MDVjMGE1NjMzNzRmM2FiZGRlYjQ3ZTg2MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDE2IDE2OjQxOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IGRlODE2MDYzYWU2M2QwLi42MmQ0NmI0Yzk5NjJmYyAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpAQCAtNTIzNywxMCAmIzQzOzUyMzcsNiBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsCiAJCWlmICh2ZXJpZmllcl9idWdfaWYoc2lkeCAmbHQ7IDAsIGVudiwgJiMzNDtjYWxsZWUgbm90IGZvdW5kIGF0IGluc24gJWQmIzM0OywgbmV4dF9pbnNuKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQlpZiAoc3VicHJvZ1tzaWR4XS5pc19hc3luY19jYikgewotCQkJaWYgKHN1YnByb2dbc2lkeF0uaGFzX3RhaWxfY2FsbCkgewotCQkJCXZlcmlmaWVyX2J1ZyhlbnYsICYjMzQ7c3VicHJvZyBoYXMgdGFpbF9jYWxsIGFuZCBhc3luYyBjYiYjMzQ7KTsKLQkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCX0KIAkJCS8qIGFzeW5jIGNhbGxiYWNrcyBkb24mIzM5O3QgaW5jcmVhc2UgYnBmIHByb2cgc3RhY2sgc2l6ZSB1bmxlc3MgY2FsbGVkIGRpcmVjdGx5ICovCiAJCQlpZiAoIWJwZl9wc2V1ZG9fY2FsbChpbnNuICYjNDM7IGkpKQogCQkJCWNvbnRpbnVlOwpAQCAtNTI2Myw4ICYjNDM7NTI1OSw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCwKIAkJaWYgKCFwcml2X3N0YWNrX3N1cHBvcnRlZCkKIAkJCXN1YnByb2dbaWR4XS5wcml2X3N0YWNrX21vZGUgPSBOT19QUklWX1NUQUNLOwogCi0JCWlmIChzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbCkKLQkJCXRhaWxfY2FsbF9yZWFjaGFibGUgPSB0cnVlOwomIzQzOwkJLyogc3luYyB0YWlsX2NhbGxfcmVhY2hhYmxlIHdpdGggY2FsbGVlIHN0YXRlIG9uIGVudHJ5ICovCiYjNDM7CQl0YWlsX2NhbGxfcmVhY2hhYmxlID0gc3VicHJvZ1tpZHhdLmhhc190YWlsX2NhbGw7CiAKIAkJZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICYjNDM7IDE7CiAJCWlmIChmcmFtZSAmZ3Q7PSBNQVhfQ0FMTF9GUkFNRVMpIHsKQEAgLTUyODEsOCAmIzQzOzUyNzcsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsCiAJICovCiAJaWYgKHRhaWxfY2FsbF9yZWFjaGFibGUpIHsKIAkJZm9yICh0bXAgPSBpZHg7IHRtcCAmZ3Q7PSAwOyB0bXAgPSBkaW5mb1t0bXBdLmNhbGxlcikgewotCQkJaWYgKHN1YnByb2dbdG1wXS5pc19leGNlcHRpb25fY2IpIHsKLQkJCQl2ZXJib3NlKGVudiwgJiMzNDtjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBleGNlcHRpb24gY2JcbiYjMzQ7KTsKJiM0MzsJCQlpZiAoc3VicHJvZ1t0bXBdLmlzX2NiKSB7CiYjNDM7CQkJCXZlcmJvc2UoZW52LCAmIzM0O2Nhbm5vdCB0YWlsIGNhbGwgd2l0aGluIGNhbGxiYWNrXG4mIzM0Oyk7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CiAJCQlpZiAoc3VicHJvZ1t0bXBdLnN0YWNrX2FyZ19jbnQpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmMKaW5kZXggYTVhMjI2ZDAxMDRjZDIuLmM2NjAzNzE2MmRhNWFlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuYwpAQCAtMTIsNiAmIzQzOzEyLDcgQEAKICNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2Uuc2tlbC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2dycF9zdG9yYWdlLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3RhaWxjYWxsX3NsZWVwYWJsZS5za2VsLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7dGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oJiMzNDsKIAogLyogdGVzdF90YWlsY2FsbF8xIGNoZWNrcyBiYXNpYyBmdW5jdGlvbmFsaXR5IGJ5IHBhdGNoaW5nIG11bHRpcGxlIGxvY2F0aW9ucwogICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtJmd0O2ptcCwgam1wLSZndDtub3AKQEAgLTE5MDEsNiAmIzQzOzE5MDIsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9zbGVlcGFibGUodm9pZCkKIAl0YWlsY2FsbF9zbGVlcGFibGVfX2Rlc3Ryb3koc2tlbCk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3RhaWxjYWxsX2NhbGxiYWNrKHZvaWQpCiYjNDM7ewomIzQzOwlSVU5fVEVTVFModGFpbGNhbGxfY2FsbGJhY2spOwomIzQzO30KJiM0MzsKIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZCkKIHsKIAlpZiAodGVzdF9fc3RhcnRfc3VidGVzdCgmIzM0O3RhaWxjYWxsXzEmIzM0OykpCkBAIC0xOTY3LDQgJiM0MzsxOTczLDUgQEAgdm9pZCB0ZXN0X3RhaWxjYWxscyh2b2lkKQogCQl0ZXN0X3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2xlYWYoKTsKIAlpZiAodGVzdF9fc3RhcnRfc3VidGVzdCgmIzM0O3RhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZSYjMzQ7KSkKIAkJdGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTsKJiM0MzsJdGVzdF90YWlsY2FsbF9jYWxsYmFjaygpOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uYzQxNjMyY2Y0MjNiYzYKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suYwpAQCAtMCwwICYjNDM7MSw4MSBAQAomIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2JwZi5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDticGYvYnBmX2hlbHBlcnMuaCZndDsKJiM0MzsjaW5jbHVkZSAmIzM0O2JwZl9taXNjLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7YnBmX3Rlc3RfdXRpbHMuaCYjMzQ7CiYjNDM7CiYjNDM7aW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpOwomIzQzOwomIzQzO3N0cnVjdCB7CiYjNDM7CV9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfUFJPR19BUlJBWSk7CiYjNDM7CV9fdWludChtYXhfZW50cmllcywgMSk7CiYjNDM7CV9fdWludChrZXlfc2l6ZSwgc2l6ZW9mKF9fdTMyKSk7CiYjNDM7CV9fYXJyYXkodmFsdWVzLCB2b2lkICh2b2lkKSk7CiYjNDM7fSBqbXBfdGFibGUgU0VDKCYjMzQ7Lm1hcHMmIzM0OykgPSB7CiYjNDM7CS52YWx1ZXMgPSB7CiYjNDM7CQlbMF0gPSAodm9pZCAqKSAmYW1wO2NsYXNzaWZpZXJfMCwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzO19fYXV4aWxpYXJ5CiYjNDM7U0VDKCYjMzQ7dGMmIzM0OykKJiM0MztpbnQgY2xhc3NpZmllcl8wKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgX19ub2lubGluZQomIzQzO2ludCBzdWJwcm9nX3RhaWwwKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CWludCByZXQgPSAwOwomIzQzOwomIzQzOwlicGZfdGFpbF9jYWxsX3N0YXRpYyhza2IsICZhbXA7am1wX3RhYmxlLCAwKTsKJiM0MzsJYmFycmllcl92YXIocmV0KTsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIF9fbm9pbmxpbmUKJiM0MztpbnQgY2FsbGJhY2tfbG9vcChpbnQgaW5kZXgsIHZvaWQgKipjYl9jdHgpCiYjNDM7ewomIzQzOwlpbnQgcmV0OwomIzQzOwomIzQzOwlyZXQgPSBzdWJwcm9nX3RhaWwwKCpjYl9jdHgpOwomIzQzOwliYXJyaWVyX3ZhcihyZXQpOwomIzQzOwlyZXR1cm4gcmV0ID8gMSA6IDA7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBfX25vaW5saW5lCiYjNDM7aW50IGNhbGxiYWNrX2VtcHR5KGludCBpbmRleCwgdm9pZCAqZGF0YSkKJiM0Mzt7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MzsvKiBjYWxsYmFjayBpbnZvbHZpbmcgc3VicHJvZyB3aXRoIHRhaWwgY2FsbCBpcyByZWplY3RlZCAqLwomIzQzO1NFQygmIzM0O3RjJiMzNDspCiYjNDM7X19mYWlsdXJlIF9fbXNnKCYjMzQ7Y2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gY2FsbGJhY2smIzM0OykKJiM0MztpbnQgdGFpbGNhbGxfY2FsbGJhY2tfMShzdHJ1Y3QgX19za19idWZmICpza2IpCiYjNDM7ewomIzQzOwljbG9iYmVyX3JlZ3Nfc3RhY2soKTsKJiM0MzsKJiM0MzsJYnBmX2xvb3AoMSwgY2FsbGJhY2tfbG9vcCwgJmFtcDtza2IsIDApOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7Lyogc3VicHJvZ3Mgd2l0aCB0YWlsY2FsbCBkbyBub3QgYWZmZWN0IG5vLXRhaWxjYWxsIGNhbGxiYWNrICovCiYjNDM7U0VDKCYjMzQ7dGMmIzM0OykKJiM0MztfX3N1Y2Nlc3MKJiM0MztfX3JldHZhbCgwKQomIzQzO2ludCB0YWlsY2FsbF9jYWxsYmFja18yKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKJiM0Mzt7CiYjNDM7CWludCByZXQ7CiYjNDM7CiYjNDM7CWNsb2JiZXJfcmVnc19zdGFjaygpOwomIzQzOwomIzQzOwlyZXQgPSBzdWJwcm9nX3RhaWwwKHNrYik7CiYjNDM7CV9fc2luayhyZXQpOwomIzQzOwomIzQzOwlicGZfbG9vcCgxLCBjYWxsYmFja19lbXB0eSwgTlVMTCwgMCk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztjaGFyIF9fbGljZW5zZVtdIFNFQygmIzM0O2xpY2Vuc2UmIzM0OykgPSAmIzM0O0dQTCYjMzQ7Owo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxNjo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTA2CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNzk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkJQRiBWZXJpZmllciBUYWlsIENhbGwgYW5kIENhbGxiYWNrIExvZ2ljIE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgQlBGIHZlcmlmaWVyLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBJdCBzZWVtcyB3ZSYjMzk7cmUgemVyb2luZyBpbiBvbiBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBkZWFsaW5nIHdpdGggc3RhY2sgZGVwdGggYW5hbHlzaXMgZHVyaW5nIEJQRiBwcm9ncmFtIHZlcmlmaWNhdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gdGFpbCBjYWxscyBhbmQgaG93IHRoZXkgaW50ZXJhY3Qgd2l0aCBjYWxsYmFjayBtZWNoYW5pc21zLgoKVGhlIGRpZmYgaXRzZWxmIHNlZW1zIHByZXR0eSBmb2N1c2VkLiBJIHNlZSBjaGFuZ2VzIGRlYWxpbmcgd2l0aCBob3cgdGhlIHZlcmlmaWVyIGhhbmRsZXMgdGhlIGludGVyYWN0aW9uIG9mIHN1YnByb2dyYW1zLCBwYXJ0aWN1bGFybHkgdGhvc2UgbWFya2VkIGFzIGFzeW5jaHJvbm91cyBjYWxsYmFja3Mgb3Igd2hpY2ggaGF2ZSB0YWlsIGNhbGxzLiBUaGVyZSB3YXMgYSBkaXJlY3QgY2hlY2sgdGhhdCB0YWlsIGNhbGxzIGFuZCBhc3luYyBjYWxsYmFja3MgY2Fubm90IGNvLWV4aXN0LCB3aGljaCBoYXMgYmVlbiByZW1vdmVkLiBUaGVyZSYjMzk7cyBhbHNvIGEgc3luYyBvZiBgdGFpbF9jYWxsX3JlYWNoYWJsZWAgd2l0aCB0aGUgY2FsbGVlIHN0YXRlLCB3aGljaCBhcHBlYXJzIHRvIGJlIGEgY29ycmVjdGlvbiwgdG8gcmVmbGVjdCB0aGUgc3VicHJvZ3JhbSYjMzk7cyB0YWlsIGNhbGwgc3RhdGUgb24gZW50cnkuIEkgc2hvdWxkIGRpZyBkZWVwZXIgaW50byB0aGF0IGxvZ2ljLiBGaW5hbGx5LCB0aGVyZSYjMzk7cyBhIHJlc3RyaWN0aW9uIHByZXZlbnRpbmcgdGFpbCBjYWxscyB3aXRoaW4gYW55IGNhbGxiYWNrLCB3aGljaCBzZWVtcyByZWFzb25hYmxlLgoKQmFzZWQgb24gdGhlIGNvZGUgY2hhbmdlcyBhbmQgdGhlIGNvbnRleHQsIEkmIzM5O20gZ29pbmcgdG8gYXNzdW1lIHRoaXMgbW9kaWZpY2F0aW9uIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZS4gTXkgZm9jdXMgaGVyZSBpcyBnb2luZyB0byBiZSBvbiB1bmRlcnN0YW5kaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlc2UgY2hhbmdlcyBpbiB0aGUgc3RhY2sgZGVwdGggdmVyaWZpY2F0aW9uLCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIHRoZSBleGlzdGluZyBCUEYgc3lzY2FsbCBzdXBwb3J0LCByZXByZXNlbnRlZCBieSB0aGUgYEJQRl9TWVNDQUxMYCBjb25maWcgb3B0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhyb3VnaCBmdXJ0aGVyIGludmVzdGlnYXRpb24gdGhhdCB0aGlzIGlzIGluZGVlZCB0aGUgY29yZSBmdW5jdGlvbiBoYW5kbGluZyB0aGUgc3RhY2sgZGVwdGggY2hlY2tzIGR1cmluZyB2ZXJpZmljYXRpb24uIEkgd2lsbCBkZWZpbml0ZWx5IG5lZWQgdG8gZXhhbWluZSB0aGUgbmV3IHRlc3RzIGFkZGVkIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYCB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgaW50ZW50aW9uIG9mIHRoZXNlIGNoYW5nZXMgYW5kIHRvIGVuc3VyZSB0aGV5IGFyZW4mIzM5O3QgaW50cm9kdWNpbmcgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMgb3IgcmVncmVzc2lvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgY29ycmVjdCBmdW5jdGlvbiBhbmQgaWYgdGhlcmUgYXJlIG90aGVycyB0aGF0IG1pZ2h0IGFsc28gaGF2ZSBiZWVuIGFmZmVjdGVkLiBJIHNob3VsZCBwcm9iYWJseSB1c2UgdGhlIHByb3ZpZGVkIHRvb2xzIHRvIGNvbmZpcm0gbXkgb2JzZXJ2YXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDE2OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz01MTE2PXN0cnVjdCBicGZfc3VicHJvZ19jYWxsX2RlcHRoX2luZm8ge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MTI1LSAqL1xua2VybmVsL2JwZi92ZXJpZmllci5jOjUxMjY6c3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxua2VybmVsL2JwZi92ZXJpZmllci5jLTUxMjctXHRcdFx0XHRcdCBzdHJ1Y3QgYnBmX3N1YnByb2dfY2FsbF9kZXB0aF9pbmZvICpkaW5mbyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTMxOT1zdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MzUxLVx0XHRcdHByaXZfc3RhY2tfc3VwcG9ydGVkID0gIWkgXHUwMDI2XHUwMDI2IHByaXZfc3RhY2tfbW9kZSA9PSBQUklWX1NUQUNLX0FEQVBUSVZFO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjUzNTI6XHRcdFx0cmV0ID0gY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coZW52LCBpLCBkaW5mbyxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MzUzLVx0XHRcdFx0XHRwcml2X3N0YWNrX3N1cHBvcnRlZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTY6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTAwMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDcwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipSZWFjaGluZyBhIEtleSBGdW5jdGlvbiB2aWEgYSBDaGFpbioqCgpTbywgdGhlIGNvZGUgZmxvdyBpcyBwcmV0dHkgY2xlYXIgaGVyZS4gSSBjYW4gc2VlIHRoYXQgYGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nYCBpcywgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGEgKnN1Yi1wcm9ncmFtKiBjYWxsZWQgYnkgYGNoZWNrX21heF9zdGFja19kZXB0aGAuIFRoZW4sIGBjaGVja19tYXhfc3RhY2tfZGVwdGhgIGl0c2VsZiBpcyBpbnZva2VkIGJ5IGBicGZfY2hlY2tgLiAgVGhpcyBtZWFucyBpdCBpcyBkZWZpbml0aXZlbHkgcmVhY2hhYmxlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIuIE5vdywgdGhhdCBJIGtub3cgaXRzIHJlYWNoYWJsZSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQgaXMgYmVpbmcgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWcgb3B0aW9ucyB0aGF0IGltcGFjdCB0aGlzIGZsb3cuIExldCBtZSBzdGFydCBieSBsb29raW5nIGF0IGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgaW50ZXJlc3Rpbmcgc3R1ZmYgcmVnYXJkaW5nIEJQRiB2ZXJpZmljYXRpb24gcmVzaWRlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxNjo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX1NZU0NBTEwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtrZXJuZWwvYnBmL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvTWFrZWZpbGU9Nz1DRkxBR1NfY29yZS5vICYjNDM7PSAtV25vLW92ZXJyaWRlLWluaXQgJChjZmxhZ3Mtbm9nY3NlLXl5KVxua2VybmVsL2JwZi9NYWtlZmlsZS04LVxua2VybmVsL2JwZi9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHN5c2NhbGwubyB2ZXJpZmllci5vIGlub2RlLm8gaGVscGVycy5vIHRudW0ubyBjbnVtLm8gbG9nLm8gdG9rZW4ubyBsaXZlbmVzcy5vIGNvbnN0X2ZvbGQub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBicGZfaXRlci5vIG1hcF9pdGVyLm8gdGFza19pdGVyLm8gcHJvZ19pdGVyLm8gbGlua19pdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gaGFzaHRhYi5vIGFycmF5bWFwLm8gcGVyY3B1X2ZyZWVsaXN0Lm8gYnBmX2xydV9saXN0Lm8gbHBtX3RyaWUubyBtYXBfaW5fbWFwLm8gYmxvb21fZmlsdGVyLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gbG9jYWxfc3RvcmFnZS5vIHF1ZXVlX3N0YWNrX21hcHMubyByaW5nYnVmLm8gYnBmX2luc25fYXJyYXkub1xua2VybmVsL2JwZi9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBicGZfbG9jYWxfc3RvcmFnZS5vIGJwZl90YXNrX3N0b3JhZ2Uub1xua2VybmVsL2JwZi9NYWtlZmlsZToxNDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBmaXh1cHMubyBjZmcubyBzdGF0ZXMubyBiYWNrdHJhY2subyBjaGVja19idGYub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xNS1vYmotJHtDT05GSUdfQlBGX0xTTX1cdCAgJiM0Mzs9IGJwZl9pbm9kZV9zdG9yYWdlLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6MTY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gZGlzYXNtLm8gbXByb2cub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xNy1vYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IHRyYW1wb2xpbmUub1xua2VybmVsL2JwZi9NYWtlZmlsZToxODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBidGYubyBtZW1hbGxvYy5vIHJxc3BpbmxvY2subyBzdHJlYW0ub1xua2VybmVsL2JwZi9NYWtlZmlsZS0xOS1pZmVxICgkKENPTkZJR19NTVUpJChDT05GSUdfNjRCSVQpLHl5KVxua2VybmVsL2JwZi9NYWtlZmlsZToyMDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBhcmVuYS5vIHJhbmdlX3RyZWUub1xua2VybmVsL2JwZi9NYWtlZmlsZS0yMS1lbmRpZlxuLS1cbmtlcm5lbC9icGYvTWFrZWZpbGU9MjM9aWZlcSAoJChDT05GSUdfTkVUKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBkZXZtYXAub1xua2VybmVsL2JwZi9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBjcHVtYXAub1xua2VybmVsL2JwZi9NYWtlZmlsZToyNjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBvZmZsb2FkLm9cbmtlcm5lbC9icGYvTWFrZWZpbGU6Mjc6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gbmV0X25hbWVzcGFjZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHRjeC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTI5LWVuZGlmXG5rZXJuZWwvYnBmL01ha2VmaWxlPTMwPWlmZXEgKCQoQ09ORklHX1BFUkZfRVZFTlRTKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBzdGFja21hcC5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTMyLWVuZGlmXG5rZXJuZWwvYnBmL01ha2VmaWxlPTMzPWlmZXEgKCQoQ09ORklHX0NHUk9VUFMpLHkpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNncm91cF9pdGVyLm8gYnBmX2NncnBfc3RvcmFnZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM1LWVuZGlmXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT0zNz1pZmVxICgkKENPTkZJR19JTkVUKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTozODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSByZXVzZXBvcnRfYXJyYXkub1xua2VybmVsL2JwZi9NYWtlZmlsZS0zOS1lbmRpZlxuLS1cbmtlcm5lbC9icGYvTWFrZWZpbGU9NDM9aWZlcSAoJChDT05GSUdfQlBGX0pJVCkseSlcbmtlcm5lbC9icGYvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnBmX3N0cnVjdF9vcHMub1xua2VybmVsL2JwZi9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBjcHVtYXNrLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtNDYtIyBicGZfbHNtX3Byb3RvLm8gbXVzdCBwcmVjZWRlIGJwZl9sc20uby4gVGhlIGN1cnJlbnQgcGFob2xlIGxvZ2ljXG4tLVxua2VybmVsL2JwZi9NYWtlZmlsZT01OD1pZm5lcSAoJChDT05GSUdfQ1JZUFRPKSwpXG5rZXJuZWwvYnBmL01ha2VmaWxlOjU5Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGNyeXB0by5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYwLWVuZGlmXG5rZXJuZWwvYnBmL01ha2VmaWxlPTYxPW9iai0kKENPTkZJR19CUEZfUFJFTE9BRCkgJiM0Mzs9IHByZWxvYWQvXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYyLVxua2VybmVsL2JwZi9NYWtlZmlsZTo2MzpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSByZWxvX2NvcmUub1xua2VybmVsL2JwZi9NYWtlZmlsZTo2NDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBidGZfaXRlci5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJ0Zl9yZWxvY2F0ZS5vXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGttZW1fY2FjaGVfaXRlci5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTY3LWlmZXEgKCQoQ09ORklHX0RNQV9TSEFSRURfQlVGRkVSKSx5KVxua2VybmVsL2JwZi9NYWtlZmlsZTo2ODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBkbWFidWZfaXRlci5vXG5rZXJuZWwvYnBmL01ha2VmaWxlLTY5LWVuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTY6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjYxNwoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGhlcmUgaXMgYEJQRl9TWVNDQUxMYCwgdGhhdCYjMzk7cyB0aGUgY29udGV4dC4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBpcyBhIGZpeCBmb3IgYGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nYC4gRXNzZW50aWFsbHksIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSBmbGF3IHdoZXJlIHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcyB3ZXJlIHNsaXBwaW5nIHRocm91Z2ggdGhlIHZlcmlmaWVyLCB1bi1yZWplY3RlZCBhbmQgdW4taGFuZGxlZC4gVGhhdCBpbmRpY2F0ZXMgYSBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyJiMzOTtzIGNvcmUgbG9naWMuCgpJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBhcmUgcmVsYXRlZCBmdW5jdGlvbnMgdG8gZXhhbWluZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSB0YXJnZXQuIExvb2tpbmcgYXQgdGhlIGNhbGwgc3RhY2ssIGBjaGVja19tYXhfc3RhY2tfZGVwdGhgIGNhbGxzIGBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ2AsIGFuZCBgYnBmX2NoZWNrYCBpcyB0aGUgZW50cnkgcG9pbnQuIFRvIGJlIHRob3JvdWdoLCBJIHdpbGwgYWRkIGJvdGggYGNoZWNrX21heF9zdGFja19kZXB0aGAgYW5kIGBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ2AgdG8gbXkgYEZvY3VzU3ltYm9sc2AgbGlzdC4KCk5vdywgbGV0JiMzOTtzIHByb2NlZWQgd2l0aCBjYWxsaW5nIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTY6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2cmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWF4X3N0YWNrX2RlcHRoJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gY29ycmVjdGx5IHJlamVjdCB0YWlsIGNhbGxzIHdpdGhpbiBjYWxsYmFja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nJiMzNDssCiAgICAmIzM0O2NoZWNrX21heF9zdGFja19kZXB0aCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGNvcnJlY3RseSByZWplY3QgdGFpbCBjYWxscyB3aXRoaW4gY2FsbGJhY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDE2OjQxOjE5LjY0ODYzOTE1OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0MTQwNjcwMjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dcIixcbiAgICBcImNoZWNrX21heF9zdGFja19kZXB0aFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gY29ycmVjdGx5IHJlamVjdCB0YWlsIGNhbGxzIHdpdGhpbiBjYWxsYmFja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxNjo0MToxOS42NDg2NDQ4OTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2ODUxNTU1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRiMmJmYjk2MTlhODQ5NDA1YzBhNTYzMzc0ZjNhYmRkZWI0N2U4NjJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMTY6NDE6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuaW5kZXggZGU4MTYwNjNhZTYzZDAuLjYyZDQ2YjRjOTk2MmZjIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbkBAIC01MjM3LDEwICs1MjM3LDYgQEAgc3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxcbiBcXHRcXHRpZiAodmVyaWZpZXJfYnVnX2lmKHNpZHggXFx1MDAzYyAwLCBlbnYsIFxcXCJjYWxsZWUgbm90IGZvdW5kIGF0IGluc24gJWRcXFwiLCBuZXh0X2luc24pKVxcbiBcXHRcXHRcXHRyZXR1cm4gLUVGQVVMVDtcXG4gXFx0XFx0aWYgKHN1YnByb2dbc2lkeF0uaXNfYXN5bmNfY2IpIHtcXG4tXFx0XFx0XFx0aWYgKHN1YnByb2dbc2lkeF0uaGFzX3RhaWxfY2FsbCkge1xcbi1cXHRcXHRcXHRcXHR2ZXJpZmllcl9idWcoZW52LCBcXFwic3VicHJvZyBoYXMgdGFpbF9jYWxsIGFuZCBhc3luYyBjYlxcXCIpO1xcbi1cXHRcXHRcXHRcXHRyZXR1cm4gLUVGQVVMVDtcXG4tXFx0XFx0XFx0fVxcbiBcXHRcXHRcXHQvKiBhc3luYyBjYWxsYmFja3MgZG9uJ3QgaW5jcmVhc2UgYnBmIHByb2cgc3RhY2sgc2l6ZSB1bmxlc3MgY2FsbGVkIGRpcmVjdGx5ICovXFxuIFxcdFxcdFxcdGlmICghYnBmX3BzZXVkb19jYWxsKGluc24gKyBpKSlcXG4gXFx0XFx0XFx0XFx0Y29udGludWU7XFxuQEAgLTUyNjMsOCArNTI1OSw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcXG4gXFx0XFx0aWYgKCFwcml2X3N0YWNrX3N1cHBvcnRlZClcXG4gXFx0XFx0XFx0c3VicHJvZ1tpZHhdLnByaXZfc3RhY2tfbW9kZSA9IE5PX1BSSVZfU1RBQ0s7XFxuIFxcbi1cXHRcXHRpZiAoc3VicHJvZ1tpZHhdLmhhc190YWlsX2NhbGwpXFxuLVxcdFxcdFxcdHRhaWxfY2FsbF9yZWFjaGFibGUgPSB0cnVlO1xcbitcXHRcXHQvKiBzeW5jIHRhaWxfY2FsbF9yZWFjaGFibGUgd2l0aCBjYWxsZWUgc3RhdGUgb24gZW50cnkgKi9cXG4rXFx0XFx0dGFpbF9jYWxsX3JlYWNoYWJsZSA9IHN1YnByb2dbaWR4XS5oYXNfdGFpbF9jYWxsO1xcbiBcXG4gXFx0XFx0ZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICsgMTtcXG4gXFx0XFx0aWYgKGZyYW1lIFxcdTAwM2U9IE1BWF9DQUxMX0ZSQU1FUykge1xcbkBAIC01MjgxLDggKzUyNzcsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXFxuIFxcdCAqL1xcbiBcXHRpZiAodGFpbF9jYWxsX3JlYWNoYWJsZSkge1xcbiBcXHRcXHRmb3IgKHRtcCA9IGlkeDsgdG1wIFxcdTAwM2U9IDA7IHRtcCA9IGRpbmZvW3RtcF0uY2FsbGVyKSB7XFxuLVxcdFxcdFxcdGlmIChzdWJwcm9nW3RtcF0uaXNfZXhjZXB0aW9uX2NiKSB7XFxuLVxcdFxcdFxcdFxcdHZlcmJvc2UoZW52LCBcXFwiY2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gZXhjZXB0aW9uIGNiXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0aWYgKHN1YnByb2dbdG1wXS5pc19jYikge1xcbitcXHRcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcImNhbm5vdCB0YWlsIGNhbGwgd2l0aGluIGNhbGxiYWNrXFxcXG5cXFwiKTtcXG4gXFx0XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0aWYgKHN1YnByb2dbdG1wXS5zdGFja19hcmdfY250KSB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcXG5pbmRleCBhNWEyMjZkMDEwNGNkMi4uYzY2MDM3MTYyZGE1YWUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xcbkBAIC0xMiw2ICsxMiw3IEBAXFxuICNpbmNsdWRlIFxcXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZS5za2VsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Uuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidGFpbGNhbGxfc2xlZXBhYmxlLnNrZWwuaFxcXCJcXG4rI2luY2x1ZGUgXFxcInRhaWxjYWxsX2NhbGxiYWNrLnNrZWwuaFxcXCJcXG4gXFxuIC8qIHRlc3RfdGFpbGNhbGxfMSBjaGVja3MgYmFzaWMgZnVuY3Rpb25hbGl0eSBieSBwYXRjaGluZyBtdWx0aXBsZSBsb2NhdGlvbnNcXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXFx1MDAzZWptcCwgam1wLVxcdTAwM2Vub3BcXG5AQCAtMTkwMSw2ICsxOTAyLDExIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfc2xlZXBhYmxlKHZvaWQpXFxuIFxcdHRhaWxjYWxsX3NsZWVwYWJsZV9fZGVzdHJveShza2VsKTtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgdGVzdF90YWlsY2FsbF9jYWxsYmFjayh2b2lkKVxcbit7XFxuK1xcdFJVTl9URVNUUyh0YWlsY2FsbF9jYWxsYmFjayk7XFxuK31cXG4rXFxuIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcXG4ge1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfMVxcXCIpKVxcbkBAIC0xOTY3LDQgKzE5NzMsNSBAQCB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXFxuIFxcdFxcdHRlc3RfdGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfbGVhZigpO1xcbiBcXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcXFwidGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfYnJpZGdlXFxcIikpXFxuIFxcdFxcdHRlc3RfdGFpbGNhbGxfY2dycF9zdG9yYWdlX25vX3N0b3JhZ2VfYnJpZGdlKCk7XFxuK1xcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcXG4gfVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy90YWlsY2FsbF9jYWxsYmFjay5jXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uYzQxNjMyY2Y0MjNiYzZcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmNcXG5AQCAtMCwwICsxLDgxIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9icGYuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2JwZi9icGZfaGVscGVycy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXFwiYnBmX21pc2MuaFxcXCJcXG4rI2luY2x1ZGUgXFxcImJwZl90ZXN0X3V0aWxzLmhcXFwiXFxuK1xcbitpbnQgY2xhc3NpZmllcl8wKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYik7XFxuK1xcbitzdHJ1Y3Qge1xcbitcXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkpO1xcbitcXHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xcbitcXHRfX3VpbnQoa2V5X3NpemUsIHNpemVvZihfX3UzMikpO1xcbitcXHRfX2FycmF5KHZhbHVlcywgdm9pZCAodm9pZCkpO1xcbit9IGptcF90YWJsZSBTRUMoXFxcIi5tYXBzXFxcIikgPSB7XFxuK1xcdC52YWx1ZXMgPSB7XFxuK1xcdFxcdFswXSA9ICh2b2lkICopIFxcdTAwMjZjbGFzc2lmaWVyXzAsXFxuK1xcdH0sXFxuK307XFxuK1xcbitfX2F1eGlsaWFyeVxcbitTRUMoXFxcInRjXFxcIilcXG4raW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpXFxuK3tcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyBfX25vaW5saW5lXFxuK2ludCBzdWJwcm9nX3RhaWwwKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4re1xcbitcXHRpbnQgcmV0ID0gMDtcXG4rXFxuK1xcdGJwZl90YWlsX2NhbGxfc3RhdGljKHNrYiwgXFx1MDAyNmptcF90YWJsZSwgMCk7XFxuK1xcdGJhcnJpZXJfdmFyKHJldCk7XFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuK3N0YXRpYyBfX25vaW5saW5lXFxuK2ludCBjYWxsYmFja19sb29wKGludCBpbmRleCwgdm9pZCAqKmNiX2N0eClcXG4re1xcbitcXHRpbnQgcmV0O1xcbitcXG4rXFx0cmV0ID0gc3VicHJvZ190YWlsMCgqY2JfY3R4KTtcXG4rXFx0YmFycmllcl92YXIocmV0KTtcXG4rXFx0cmV0dXJuIHJldCA/IDEgOiAwO1xcbit9XFxuK1xcbitzdGF0aWMgX19ub2lubGluZVxcbitpbnQgY2FsbGJhY2tfZW1wdHkoaW50IGluZGV4LCB2b2lkICpkYXRhKVxcbit7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbisvKiBjYWxsYmFjayBpbnZvbHZpbmcgc3VicHJvZyB3aXRoIHRhaWwgY2FsbCBpcyByZWplY3RlZCAqL1xcbitTRUMoXFxcInRjXFxcIilcXG4rX19mYWlsdXJlIF9fbXNnKFxcXCJjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBjYWxsYmFja1xcXCIpXFxuK2ludCB0YWlsY2FsbF9jYWxsYmFja18xKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4re1xcbitcXHRjbG9iYmVyX3JlZ3Nfc3RhY2soKTtcXG4rXFxuK1xcdGJwZl9sb29wKDEsIGNhbGxiYWNrX2xvb3AsIFxcdTAwMjZza2IsIDApO1xcbitcXHRyZXR1cm4gMDtcXG4rfVxcbitcXG4rLyogc3VicHJvZ3Mgd2l0aCB0YWlsY2FsbCBkbyBub3QgYWZmZWN0IG5vLXRhaWxjYWxsIGNhbGxiYWNrICovXFxuK1NFQyhcXFwidGNcXFwiKVxcbitfX3N1Y2Nlc3NcXG4rX19yZXR2YWwoMClcXG4raW50IHRhaWxjYWxsX2NhbGxiYWNrXzIoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxcbit7XFxuK1xcdGludCByZXQ7XFxuK1xcbitcXHRjbG9iYmVyX3JlZ3Nfc3RhY2soKTtcXG4rXFxuK1xcdHJldCA9IHN1YnByb2dfdGFpbDAoc2tiKTtcXG4rXFx0X19zaW5rKHJldCk7XFxuK1xcbitcXHRicGZfbG9vcCgxLCBjYWxsYmFja19lbXB0eSwgTlVMTCwgMCk7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbitjaGFyIF9fbGljZW5zZVtdIFNFQyhcXFwibGljZW5zZVxcXCIpID0gXFxcIkdQTFxcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDE2OjQxOjIwLjMxNzg0NTk1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzQ3MTQ0MDQ2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nXCIsXG4gICAgXCJjaGVja19tYXhfc3RhY2tfZGVwdGhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGNvcnJlY3RseSByZWplY3QgdGFpbCBjYWxscyB3aXRoaW4gY2FsbGJhY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkYjJiZmI5NjE5YTg0OTQwNWMwYTU2MzM3NGYzYWJkZGViNDdlODYyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMTY6NDE6MTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IGRlODE2MDYzYWU2M2QwLi42MmQ0NmI0Yzk5NjJmYyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtNTIzNywxMCArNTIzNyw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcbiBcdFx0aWYgKHZlcmlmaWVyX2J1Z19pZihzaWR4IFx1MDAzYyAwLCBlbnYsIFwiY2FsbGVlIG5vdCBmb3VuZCBhdCBpbnNuICVkXCIsIG5leHRfaW5zbikpXG4gXHRcdFx0cmV0dXJuIC1FRkFVTFQ7XG4gXHRcdGlmIChzdWJwcm9nW3NpZHhdLmlzX2FzeW5jX2NiKSB7XG4tXHRcdFx0aWYgKHN1YnByb2dbc2lkeF0uaGFzX3RhaWxfY2FsbCkge1xuLVx0XHRcdFx0dmVyaWZpZXJfYnVnKGVudiwgXCJzdWJwcm9nIGhhcyB0YWlsX2NhbGwgYW5kIGFzeW5jIGNiXCIpO1xuLVx0XHRcdFx0cmV0dXJuIC1FRkFVTFQ7XG4tXHRcdFx0fVxuIFx0XHRcdC8qIGFzeW5jIGNhbGxiYWNrcyBkb24ndCBpbmNyZWFzZSBicGYgcHJvZyBzdGFjayBzaXplIHVubGVzcyBjYWxsZWQgZGlyZWN0bHkgKi9cbiBcdFx0XHRpZiAoIWJwZl9wc2V1ZG9fY2FsbChpbnNuICsgaSkpXG4gXHRcdFx0XHRjb250aW51ZTtcbkBAIC01MjYzLDggKzUyNTksOCBAQCBzdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXG4gXHRcdGlmICghcHJpdl9zdGFja19zdXBwb3J0ZWQpXG4gXHRcdFx0c3VicHJvZ1tpZHhdLnByaXZfc3RhY2tfbW9kZSA9IE5PX1BSSVZfU1RBQ0s7XG4gXG4tXHRcdGlmIChzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbClcbi1cdFx0XHR0YWlsX2NhbGxfcmVhY2hhYmxlID0gdHJ1ZTtcbitcdFx0Lyogc3luYyB0YWlsX2NhbGxfcmVhY2hhYmxlIHdpdGggY2FsbGVlIHN0YXRlIG9uIGVudHJ5ICovXG4rXHRcdHRhaWxfY2FsbF9yZWFjaGFibGUgPSBzdWJwcm9nW2lkeF0uaGFzX3RhaWxfY2FsbDtcbiBcbiBcdFx0ZnJhbWUgPSBicGZfc3VicHJvZ19pc19nbG9iYWwoZW52LCBpZHgpID8gMCA6IGZyYW1lICsgMTtcbiBcdFx0aWYgKGZyYW1lIFx1MDAzZT0gTUFYX0NBTExfRlJBTUVTKSB7XG5AQCAtNTI4MSw4ICs1Mjc3LDggQEAgc3RhdGljIGludCBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaWR4LFxuIFx0ICovXG4gXHRpZiAodGFpbF9jYWxsX3JlYWNoYWJsZSkge1xuIFx0XHRmb3IgKHRtcCA9IGlkeDsgdG1wIFx1MDAzZT0gMDsgdG1wID0gZGluZm9bdG1wXS5jYWxsZXIpIHtcbi1cdFx0XHRpZiAoc3VicHJvZ1t0bXBdLmlzX2V4Y2VwdGlvbl9jYikge1xuLVx0XHRcdFx0dmVyYm9zZShlbnYsIFwiY2Fubm90IHRhaWwgY2FsbCB3aXRoaW4gZXhjZXB0aW9uIGNiXFxuXCIpO1xuK1x0XHRcdGlmIChzdWJwcm9nW3RtcF0uaXNfY2IpIHtcbitcdFx0XHRcdHZlcmJvc2UoZW52LCBcImNhbm5vdCB0YWlsIGNhbGwgd2l0aGluIGNhbGxiYWNrXFxuXCIpO1xuIFx0XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdFx0fVxuIFx0XHRcdGlmIChzdWJwcm9nW3RtcF0uc3RhY2tfYXJnX2NudCkge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdGFpbGNhbGxzLmNcbmluZGV4IGE1YTIyNmQwMTA0Y2QyLi5jNjYwMzcxNjJkYTVhZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3RhaWxjYWxscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy90YWlsY2FsbHMuY1xuQEAgLTEyLDYgKzEyLDcgQEBcbiAjaW5jbHVkZSBcInRhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ0YWlsY2FsbF9jZ3JwX3N0b3JhZ2Uuc2tlbC5oXCJcbiAjaW5jbHVkZSBcInRhaWxjYWxsX3NsZWVwYWJsZS5za2VsLmhcIlxuKyNpbmNsdWRlIFwidGFpbGNhbGxfY2FsbGJhY2suc2tlbC5oXCJcbiBcbiAvKiB0ZXN0X3RhaWxjYWxsXzEgY2hlY2tzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgYnkgcGF0Y2hpbmcgbXVsdGlwbGUgbG9jYXRpb25zXG4gICogaW4gYSBzaW5nbGUgcHJvZ3JhbSBmb3IgYSBzaW5nbGUgdGFpbCBjYWxsIHNsb3Qgd2l0aCBub3AtXHUwMDNlam1wLCBqbXAtXHUwMDNlbm9wXG5AQCAtMTkwMSw2ICsxOTAyLDExIEBAIHN0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfc2xlZXBhYmxlKHZvaWQpXG4gXHR0YWlsY2FsbF9zbGVlcGFibGVfX2Rlc3Ryb3koc2tlbCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHRlc3RfdGFpbGNhbGxfY2FsbGJhY2sodm9pZClcbit7XG4rXHRSVU5fVEVTVFModGFpbGNhbGxfY2FsbGJhY2spO1xuK31cbitcbiB2b2lkIHRlc3RfdGFpbGNhbGxzKHZvaWQpXG4ge1xuIFx0aWYgKHRlc3RfX3N0YXJ0X3N1YnRlc3QoXCJ0YWlsY2FsbF8xXCIpKVxuQEAgLTE5NjcsNCArMTk3Myw1IEBAIHZvaWQgdGVzdF90YWlsY2FsbHModm9pZClcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9sZWFmKCk7XG4gXHRpZiAodGVzdF9fc3RhcnRfc3VidGVzdChcInRhaWxjYWxsX2NncnBfc3RvcmFnZV9ub19zdG9yYWdlX2JyaWRnZVwiKSlcbiBcdFx0dGVzdF90YWlsY2FsbF9jZ3JwX3N0b3JhZ2Vfbm9fc3RvcmFnZV9icmlkZ2UoKTtcbitcdHRlc3RfdGFpbGNhbGxfY2FsbGJhY2soKTtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdGFpbGNhbGxfY2FsbGJhY2suY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5jNDE2MzJjZjQyM2JjNlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3RhaWxjYWxsX2NhbGxiYWNrLmNcbkBAIC0wLDAgKzEsODEgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2JwZi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcdTAwM2VcbisjaW5jbHVkZSBcImJwZl9taXNjLmhcIlxuKyNpbmNsdWRlIFwiYnBmX3Rlc3RfdXRpbHMuaFwiXG4rXG4raW50IGNsYXNzaWZpZXJfMChzdHJ1Y3QgX19za19idWZmICpza2IpO1xuK1xuK3N0cnVjdCB7XG4rXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX1BST0dfQVJSQVkpO1xuK1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbitcdF9fdWludChrZXlfc2l6ZSwgc2l6ZW9mKF9fdTMyKSk7XG4rXHRfX2FycmF5KHZhbHVlcywgdm9pZCAodm9pZCkpO1xuK30gam1wX3RhYmxlIFNFQyhcIi5tYXBzXCIpID0ge1xuK1x0LnZhbHVlcyA9IHtcbitcdFx0WzBdID0gKHZvaWQgKikgXHUwMDI2Y2xhc3NpZmllcl8wLFxuK1x0fSxcbit9O1xuK1xuK19fYXV4aWxpYXJ5XG4rU0VDKFwidGNcIilcbitpbnQgY2xhc3NpZmllcl8wKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbit7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4rc3RhdGljIF9fbm9pbmxpbmVcbitpbnQgc3VicHJvZ190YWlsMChzdHJ1Y3QgX19za19idWZmICpza2IpXG4re1xuK1x0aW50IHJldCA9IDA7XG4rXG4rXHRicGZfdGFpbF9jYWxsX3N0YXRpYyhza2IsIFx1MDAyNmptcF90YWJsZSwgMCk7XG4rXHRiYXJyaWVyX3ZhcihyZXQpO1xuK1x0cmV0dXJuIHJldDtcbit9XG4rXG4rc3RhdGljIF9fbm9pbmxpbmVcbitpbnQgY2FsbGJhY2tfbG9vcChpbnQgaW5kZXgsIHZvaWQgKipjYl9jdHgpXG4re1xuK1x0aW50IHJldDtcbitcbitcdHJldCA9IHN1YnByb2dfdGFpbDAoKmNiX2N0eCk7XG4rXHRiYXJyaWVyX3ZhcihyZXQpO1xuK1x0cmV0dXJuIHJldCA/IDEgOiAwO1xuK31cbitcbitzdGF0aWMgX19ub2lubGluZVxuK2ludCBjYWxsYmFja19lbXB0eShpbnQgaW5kZXgsIHZvaWQgKmRhdGEpXG4re1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuKy8qIGNhbGxiYWNrIGludm9sdmluZyBzdWJwcm9nIHdpdGggdGFpbCBjYWxsIGlzIHJlamVjdGVkICovXG4rU0VDKFwidGNcIilcbitfX2ZhaWx1cmUgX19tc2coXCJjYW5ub3QgdGFpbCBjYWxsIHdpdGhpbiBjYWxsYmFja1wiKVxuK2ludCB0YWlsY2FsbF9jYWxsYmFja18xKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbit7XG4rXHRjbG9iYmVyX3JlZ3Nfc3RhY2soKTtcbitcbitcdGJwZl9sb29wKDEsIGNhbGxiYWNrX2xvb3AsIFx1MDAyNnNrYiwgMCk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4rLyogc3VicHJvZ3Mgd2l0aCB0YWlsY2FsbCBkbyBub3QgYWZmZWN0IG5vLXRhaWxjYWxsIGNhbGxiYWNrICovXG4rU0VDKFwidGNcIilcbitfX3N1Y2Nlc3NcbitfX3JldHZhbCgwKVxuK2ludCB0YWlsY2FsbF9jYWxsYmFja18yKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbit7XG4rXHRpbnQgcmV0O1xuK1xuK1x0Y2xvYmJlcl9yZWdzX3N0YWNrKCk7XG4rXG4rXHRyZXQgPSBzdWJwcm9nX3RhaWwwKHNrYik7XG4rXHRfX3NpbmsocmV0KTtcbitcbitcdGJwZl9sb29wKDEsIGNhbGxiYWNrX2VtcHR5LCBOVUxMLCAwKTtcbitcdHJldHVybiAwO1xuK31cbitcbitjaGFyIF9fbGljZW5zZVtdIFNFQyhcImxpY2Vuc2VcIikgPSBcIkdQTFwiO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDE6MjAuMzE3ODQ3MjRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MzY4MDQxNDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkJQRiBWZXJpZmllciBUYWlsIENhbGwgYW5kIENhbGxiYWNrIExvZ2ljIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIEJQRiB2ZXJpZmllciwgc3BlY2lmaWNhbGx5IHdpdGhpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gSXQgc2VlbXMgd2UncmUgemVyb2luZyBpbiBvbiBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCdzIGRlYWxpbmcgd2l0aCBzdGFjayBkZXB0aCBhbmFseXNpcyBkdXJpbmcgQlBGIHByb2dyYW0gdmVyaWZpY2F0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byB0YWlsIGNhbGxzIGFuZCBob3cgdGhleSBpbnRlcmFjdCB3aXRoIGNhbGxiYWNrIG1lY2hhbmlzbXMuXG5cblRoZSBkaWZmIGl0c2VsZiBzZWVtcyBwcmV0dHkgZm9jdXNlZC4gSSBzZWUgY2hhbmdlcyBkZWFsaW5nIHdpdGggaG93IHRoZSB2ZXJpZmllciBoYW5kbGVzIHRoZSBpbnRlcmFjdGlvbiBvZiBzdWJwcm9ncmFtcywgcGFydGljdWxhcmx5IHRob3NlIG1hcmtlZCBhcyBhc3luY2hyb25vdXMgY2FsbGJhY2tzIG9yIHdoaWNoIGhhdmUgdGFpbCBjYWxscy4gVGhlcmUgd2FzIGEgZGlyZWN0IGNoZWNrIHRoYXQgdGFpbCBjYWxscyBhbmQgYXN5bmMgY2FsbGJhY2tzIGNhbm5vdCBjby1leGlzdCwgd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZC4gVGhlcmUncyBhbHNvIGEgc3luYyBvZiBgdGFpbF9jYWxsX3JlYWNoYWJsZWAgd2l0aCB0aGUgY2FsbGVlIHN0YXRlLCB3aGljaCBhcHBlYXJzIHRvIGJlIGEgY29ycmVjdGlvbiwgdG8gcmVmbGVjdCB0aGUgc3VicHJvZ3JhbSdzIHRhaWwgY2FsbCBzdGF0ZSBvbiBlbnRyeS4gSSBzaG91bGQgZGlnIGRlZXBlciBpbnRvIHRoYXQgbG9naWMuIEZpbmFsbHksIHRoZXJlJ3MgYSByZXN0cmljdGlvbiBwcmV2ZW50aW5nIHRhaWwgY2FsbHMgd2l0aGluIGFueSBjYWxsYmFjaywgd2hpY2ggc2VlbXMgcmVhc29uYWJsZS5cblxuQmFzZWQgb24gdGhlIGNvZGUgY2hhbmdlcyBhbmQgdGhlIGNvbnRleHQsIEknbSBnb2luZyB0byBhc3N1bWUgdGhpcyBtb2RpZmljYXRpb24gaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlLiBNeSBmb2N1cyBoZXJlIGlzIGdvaW5nIHRvIGJlIG9uIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBjaGFuZ2VzIGluIHRoZSBzdGFjayBkZXB0aCB2ZXJpZmljYXRpb24sIGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIGV4aXN0aW5nIEJQRiBzeXNjYWxsIHN1cHBvcnQsIHJlcHJlc2VudGVkIGJ5IHRoZSBgQlBGX1NZU0NBTExgIGNvbmZpZyBvcHRpb24uIEknbGwgbmVlZCB0byBjb25maXJtIHRocm91Z2ggZnVydGhlciBpbnZlc3RpZ2F0aW9uIHRoYXQgdGhpcyBpcyBpbmRlZWQgdGhlIGNvcmUgZnVuY3Rpb24gaGFuZGxpbmcgdGhlIHN0YWNrIGRlcHRoIGNoZWNrcyBkdXJpbmcgdmVyaWZpY2F0aW9uLiBJIHdpbGwgZGVmaW5pdGVseSBuZWVkIHRvIGV4YW1pbmUgdGhlIG5ldyB0ZXN0cyBhZGRlZCBpbiBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AgdG8gYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGludGVudGlvbiBvZiB0aGVzZSBjaGFuZ2VzIGFuZCB0byBlbnN1cmUgdGhleSBhcmVuJ3QgaW50cm9kdWNpbmcgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMgb3IgcmVncmVzc2lvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgY29ycmVjdCBmdW5jdGlvbiBhbmQgaWYgdGhlcmUgYXJlIG90aGVycyB0aGF0IG1pZ2h0IGFsc28gaGF2ZSBiZWVuIGFmZmVjdGVkLiBJIHNob3VsZCBwcm9iYWJseSB1c2UgdGhlIHByb3ZpZGVkIHRvb2xzIHRvIGNvbmZpcm0gbXkgb2JzZXJ2YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTA2LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Nzk2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDE6MjkuNjg1ODkxMDA1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MjgxNzIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTExNj1zdHJ1Y3QgYnBmX3N1YnByb2dfY2FsbF9kZXB0aF9pbmZvIHtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MTI1LSAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1MTI2OnN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTEyNy1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IGJwZl9zdWJwcm9nX2NhbGxfZGVwdGhfaW5mbyAqZGluZm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTMxOT1zdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTUzNTEtXFx0XFx0XFx0cHJpdl9zdGFja19zdXBwb3J0ZWQgPSAhaSBcXHUwMDI2XFx1MDAyNiBwcml2X3N0YWNrX21vZGUgPT0gUFJJVl9TVEFDS19BREFQVElWRTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NTM1MjpcXHRcXHRcXHRyZXQgPSBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZyhlbnYsIGksIGRpbmZvLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01MzUzLVxcdFxcdFxcdFxcdFxcdHByaXZfc3RhY2tfc3VwcG9ydGVkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDE6MjkuNzg1MTc4NTk5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg4MjUwNjY1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipSZWFjaGluZyBhIEtleSBGdW5jdGlvbiB2aWEgYSBDaGFpbioqXG5cblNvLCB0aGUgY29kZSBmbG93IGlzIHByZXR0eSBjbGVhciBoZXJlLiBJIGNhbiBzZWUgdGhhdCBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgIGlzLCBhcyB0aGUgbmFtZSBzdWdnZXN0cywgYSAqc3ViLXByb2dyYW0qIGNhbGxlZCBieSBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoYC4gVGhlbiwgYGNoZWNrX21heF9zdGFja19kZXB0aGAgaXRzZWxmIGlzIGludm9rZWQgYnkgYGJwZl9jaGVja2AuICBUaGlzIG1lYW5zIGl0IGlzIGRlZmluaXRpdmVseSByZWFjaGFibGUsIHdoaWNoIGlzIGltcG9ydGFudCB0byByZW1lbWJlci4gTm93LCB0aGF0IEkga25vdyBpdHMgcmVhY2hhYmxlLCBJIG5lZWQgdG8ga25vdyB3aGVyZSBpdCBpcyBiZWluZyBjYWxsZWQgZnJvbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZyBvcHRpb25zIHRoYXQgaW1wYWN0IHRoaXMgZmxvdy4gTGV0IG1lIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoaXMgaXMgd2hlcmUgYWxsIHRoZSBpbnRlcmVzdGluZyBzdHVmZiByZWdhcmRpbmcgQlBGIHZlcmlmaWNhdGlvbiByZXNpZGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDAwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDI6MDguNjEwMjQ3MzM1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4NzUzMzY1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfQlBGX1NZU0NBTExcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL01ha2VmaWxlPTc9Q0ZMQUdTX2NvcmUubyArPSAtV25vLW92ZXJyaWRlLWluaXQgJChjZmxhZ3Mtbm9nY3NlLXl5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGUtOC1cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBzeXNjYWxsLm8gdmVyaWZpZXIubyBpbm9kZS5vIGhlbHBlcnMubyB0bnVtLm8gY251bS5vIGxvZy5vIHRva2VuLm8gbGl2ZW5lc3MubyBjb25zdF9mb2xkLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX2l0ZXIubyBtYXBfaXRlci5vIHRhc2tfaXRlci5vIHByb2dfaXRlci5vIGxpbmtfaXRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGhhc2h0YWIubyBhcnJheW1hcC5vIHBlcmNwdV9mcmVlbGlzdC5vIGJwZl9scnVfbGlzdC5vIGxwbV90cmllLm8gbWFwX2luX21hcC5vIGJsb29tX2ZpbHRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGxvY2FsX3N0b3JhZ2UubyBxdWV1ZV9zdGFja19tYXBzLm8gcmluZ2J1Zi5vIGJwZl9pbnNuX2FycmF5Lm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjEzOm9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX2xvY2FsX3N0b3JhZ2UubyBicGZfdGFza19zdG9yYWdlLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjE0Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZml4dXBzLm8gY2ZnLm8gc3RhdGVzLm8gYmFja3RyYWNrLm8gY2hlY2tfYnRmLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTE1LW9iai0ke0NPTkZJR19CUEZfTFNNfVxcdCAgKz0gYnBmX2lub2RlX3N0b3JhZ2Uub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MTY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBkaXNhc20ubyBtcHJvZy5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0xNy1vYmotJChDT05GSUdfQlBGX0pJVCkgKz0gdHJhbXBvbGluZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToxODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJ0Zi5vIG1lbWFsbG9jLm8gcnFzcGlubG9jay5vIHN0cmVhbS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0xOS1pZmVxICgkKENPTkZJR19NTVUpJChDT05GSUdfNjRCSVQpLHl5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjA6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBhcmVuYS5vIHJhbmdlX3RyZWUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMjEtZW5kaWZcXG4tLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU9MjM9aWZlcSAoJChDT05GSUdfTkVUKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBkZXZtYXAub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBjcHVtYXAub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6MjY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBvZmZsb2FkLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjI3Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gbmV0X25hbWVzcGFjZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZToyODpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHRjeC5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS0yOS1lbmRpZlxcbmtlcm5lbC9icGYvTWFrZWZpbGU9MzA9aWZlcSAoJChDT05GSUdfUEVSRl9FVkVOVFMpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHN0YWNrbWFwLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTMyLWVuZGlmXFxua2VybmVsL2JwZi9NYWtlZmlsZT0zMz1pZmVxICgkKENPTkZJR19DR1JPVVBTKSx5KVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6MzQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBjZ3JvdXBfaXRlci5vIGJwZl9jZ3JwX3N0b3JhZ2Uub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMzUtZW5kaWZcXG4tLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU9Mzc9aWZlcSAoJChDT05GSUdfSU5FVCkseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjM4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gcmV1c2Vwb3J0X2FycmF5Lm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTM5LWVuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL01ha2VmaWxlPTQzPWlmZXEgKCQoQ09ORklHX0JQRl9KSVQpLHkpXFxua2VybmVsL2JwZi9NYWtlZmlsZTo0NDpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJwZl9zdHJ1Y3Rfb3BzLm9cXG5rZXJuZWwvYnBmL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gY3B1bWFzay5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS00Ni0jIGJwZl9sc21fcHJvdG8ubyBtdXN0IHByZWNlZGUgYnBmX2xzbS5vLiBUaGUgY3VycmVudCBwYWhvbGUgbG9naWNcXG4tLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU9NTg9aWZuZXEgKCQoQ09ORklHX0NSWVBUTyksKVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6NTk6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBjcnlwdG8ub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNjAtZW5kaWZcXG5rZXJuZWwvYnBmL01ha2VmaWxlPTYxPW9iai0kKENPTkZJR19CUEZfUFJFTE9BRCkgKz0gcHJlbG9hZC9cXG5rZXJuZWwvYnBmL01ha2VmaWxlLTYyLVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjM6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSByZWxvX2NvcmUub1xcbmtlcm5lbC9icGYvTWFrZWZpbGU6NjQ6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBidGZfaXRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZTo2NTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGJ0Zl9yZWxvY2F0ZS5vXFxua2VybmVsL2JwZi9NYWtlZmlsZTo2NjpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IGttZW1fY2FjaGVfaXRlci5vXFxua2VybmVsL2JwZi9NYWtlZmlsZS02Ny1pZmVxICgkKENPTkZJR19ETUFfU0hBUkVEX0JVRkZFUikseSlcXG5rZXJuZWwvYnBmL01ha2VmaWxlOjY4Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gZG1hYnVmX2l0ZXIub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtNjktZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMTY6NDI6MDguOTk3Nzg4NzAyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYyOTE4NTgzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaGVyZSBpcyBgQlBGX1NZU0NBTExgLCB0aGF0J3MgdGhlIGNvbnRleHQuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggaXMgYSBmaXggZm9yIGBjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ2AuIEVzc2VudGlhbGx5LCBpdCdzIGFkZHJlc3NpbmcgYSBmbGF3IHdoZXJlIHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcyB3ZXJlIHNsaXBwaW5nIHRocm91Z2ggdGhlIHZlcmlmaWVyLCB1bi1yZWplY3RlZCBhbmQgdW4taGFuZGxlZC4gVGhhdCBpbmRpY2F0ZXMgYSBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyJ3MgY29yZSBsb2dpYy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIGV4YW1pbmUgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkgdGFyZ2V0LiBMb29raW5nIGF0IHRoZSBjYWxsIHN0YWNrLCBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoYCBjYWxscyBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgLCBhbmQgYGJwZl9jaGVja2AgaXMgdGhlIGVudHJ5IHBvaW50LiBUbyBiZSB0aG9yb3VnaCwgSSB3aWxsIGFkZCBib3RoIGBjaGVja19tYXhfc3RhY2tfZGVwdGhgIGFuZCBgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2dgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuXG5cbk5vdywgbGV0J3MgcHJvY2VlZCB3aXRoIGNhbGxpbmcgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYxNywiT3V0cHV0VG9rZW5zIjo5NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxNjo0MjoxMy42MjY5NzcxMThaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MjMwMzE2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ1wiLFxuICAgIFwiY2hlY2tfbWF4X3N0YWNrX2RlcHRoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBjb3JyZWN0bHkgcmVqZWN0IHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tYXhfc3RhY2tfZGVwdGhfc3VicHJvZ1wiLFxuICAgIFwiY2hlY2tfbWF4X3N0YWNrX2RlcHRoXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBjb3JyZWN0bHkgcmVqZWN0IHRhaWwgY2FsbHMgd2l0aGluIGNhbGxiYWNrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowvjdlc[1] Phase: Succeeded StartedAt: 2026-07-16 16:42:26 +0000 UTC FinishedAt: 2026-07-16 16:42:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-16 16:42:26 +0000 UTC FinishedAt: 2026-07-16 16:42:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2] Phase: Succeeded StartedAt: 2026-07-16 16:42:26 +0000 UTC FinishedAt: 2026-07-16 20:59:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-16 16:42:26 +0000 UTC FinishedAt: 2026-07-16 20:59:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-16 16:42:26 +0000 UTC FinishedAt: 2026-07-16 16:42:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-16 16:42:26 +0000 UTC FinishedAt: 2026-07-16 16:42:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-3183844287/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-16 16:42:36 +0000 UTC FinishedAt: 2026-07-16 17:15:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-16 16:42:36 +0000 UTC FinishedAt: 2026-07-16 17:15:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*318d705a-72cc-447d-9534-44f25839a167,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-3183844287/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "823c30e2-fe7b-414f-92af-43e6944a452b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-4232947269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-16 16:42:36 +0000 UTC FinishedAt: 2026-07-16 17:15:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*318d705a-72cc-447d-9534-44f25839a167,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-3183844287/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "823c30e2-fe7b-414f-92af-43e6944a452b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-4232947269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-16 17:15:20 +0000 UTC FinishedAt: 2026-07-16 17:15:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-16 17:15:20 +0000 UTC FinishedAt: 2026-07-16 17:15:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-16 17:15:20 +0000 UTC FinishedAt: 2026-07-16 17:15:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-16 17:15:20 +0000 UTC FinishedAt: 2026-07-16 17:15:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-2268239310/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-16 17:15:41 +0000 UTC FinishedAt: 2026-07-16 17:18:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-16 17:15:41 +0000 UTC FinishedAt: 2026-07-16 17:18:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*823c30e2-fe7b-414f-92af-43e6944a452b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-4232947269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-16 17:18:24 +0000 UTC FinishedAt: 2026-07-16 17:18:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-16 17:18:24 +0000 UTC FinishedAt: 2026-07-16 17:18:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-16 17:18:24 +0000 UTC FinishedAt: 2026-07-16 17:51:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-16 17:18:24 +0000 UTC FinishedAt: 2026-07-16 17:51:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*318d705a-72cc-447d-9534-44f25839a167,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-2268239310/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b638095b-5b20-4efb-9674-3466f10f5742", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-2590586722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-16 17:18:24 +0000 UTC FinishedAt: 2026-07-16 17:51:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*318d705a-72cc-447d-9534-44f25839a167,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-2268239310/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b638095b-5b20-4efb-9674-3466f10f5742", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-2590586722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-16 17:51:13 +0000 UTC FinishedAt: 2026-07-16 17:51:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-16 17:51:13 +0000 UTC FinishedAt: 2026-07-16 17:51:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-16 17:51:13 +0000 UTC FinishedAt: 2026-07-16 17:53:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-16 17:51:13 +0000 UTC FinishedAt: 2026-07-16 17:53:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b638095b-5b20-4efb-9674-3466f10f5742,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-2590586722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 20:59:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 20:59:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*823c30e2-fe7b-414f-92af-43e6944a452b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b638095b-5b20-4efb-9674-3466f10f5742,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-4232947269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-2590586722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 17:53:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 17:53:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-2227699443/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 17:53:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 17:53:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-16 17:53:15 +0000 UTC FinishedAt: 2026-07-16 17:53:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-16 17:53:36 +0000 UTC FinishedAt: 2026-07-16 20:59:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjdlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_max_stack_depth_subprog","check_max_stack_depth"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d1f4b56417a3dc1a0600f960b14f46bd25eda89d","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"37f062f4-a58d-4e03-af07-10cd500d2fe6","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-16 17:53:36 +0000 UTC FinishedAt: 2026-07-16 20:59:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*823c30e2-fe7b-414f-92af-43e6944a452b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b638095b-5b20-4efb-9674-3466f10f5742,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-4232947269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-build-action-2590586722/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvjdlc/series-workflowvjdlc-convert-artifact-2227699443/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}