Name: series-workflowz6jlc Phase: Succeeded StartedAt: 2026-07-09 09:54:09 +0000 UTC FinishedAt: 2026-07-09 11:42:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[0] Phase: Succeeded StartedAt: 2026-07-09 09:54:09 +0000 UTC FinishedAt: 2026-07-09 10:29:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[0].run-triage Phase: Succeeded StartedAt: 2026-07-09 09:54:09 +0000 UTC FinishedAt: 2026-07-09 10:29:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETFILTER_NETLINK_HOOK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETFILTER_NETLINK_HOOK" ], "series_id": "f0c9d07d-a474-4d2d-8448-3f804d40273b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nfnl_hook_dump_nat", "nfnl_hook_dump" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-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+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVEZJTFRFUl9ORVRMSU5LX0hPT0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZm5sX2hvb2tfZHVtcF9uYXQmIzM0OywKICAgICYjMzQ7bmZubF9ob29rX2R1bXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1ODY4MzNkZTc0MWM1OTY5NGNhNzU5Y2M4NWZjNmE0NDQ3ZWMzYTZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgOSAxMDoyOToyMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNcbmluZGV4IDk1MDA1ZTlhNjA2Njg4Li5lMDFlNTllZGRkNjQxMyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXG5AQCAtNTUsNiAmIzQzOzU1LDcgQEAgc3RhdGljIGludCBuZl9uZXRsaW5rX2R1bXBfc3RhcnRfcmN1KHN0cnVjdCBzb2NrICpubHNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIHN0cnVjdCBuZm5sX2R1bXBfaG9va19kYXRhIHtcbiBcdGNoYXIgZGV2bmFtZVtJRk5BTVNJWl07XG4gXHR1bnNpZ25lZCBsb25nIGhlYWR2O1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgbmF0djtcbiBcdHU4IGhvb2s7XG4gfTtcbiBcbkBAIC0zMzgsMjcgJiM0MzszMzksNDQgQEAgbmZubF9ob29rX2VudHJpZXNfaGVhZCh1OCBwZiwgdW5zaWduZWQgaW50IGhvb2ssIHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqZGVcbiB9XG4gXG4gc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcF9uYXQoc3RydWN0IHNrX2J1ZmYgKm5sc2tiLFxuLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBuZm5sX2R1bXBfaG9va19kYXRhICpjdHgsXG4tXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsXG4tXHRcdFx0ICAgICAgaW50IGZhbWlseSwgdW5zaWduZWQgaW50IHNlcSlcbiYjNDM7XHRcdFx0ICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiLFxuJiM0MztcdFx0XHQgICAgICBjb25zdCBzdHJ1Y3QgbmZfaG9va19vcHMgKm9wcywgaW50IGZhbWlseSlcbiB7XG4gXHRzdHJ1Y3QgbmZfbmF0X2xvb2t1cF9ob29rX3ByaXYgKnByaXYgPSBvcHMtXHUwMDNlcHJpdjtcbiBcdHN0cnVjdCBuZl9ob29rX2VudHJpZXMgKmUgPSByY3VfZGVyZWZlcmVuY2UocHJpdi1cdTAwM2VlbnRyaWVzKTtcbiYjNDM7XHRzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4ID0gY2ItXHUwMDNlZGF0YTtcbiBcdHN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7XG4tXHRpbnQgaSwgZXJyO1xuJiM0MztcdHVuc2lnbmVkIGludCBpID0gY2ItXHUwMDNlYXJnc1sxXTtcbiYjNDM7XHRpbnQgZXJyID0gMDtcbiBcbiBcdGlmICghZSlcbiBcdFx0cmV0dXJuIDA7XG4gXG4mIzQzO1x0aWYgKCFjdHgtXHUwMDNlbmF0dilcbiYjNDM7XHRcdGN0eC1cdTAwM2VuYXR2ID0gKHVuc2lnbmVkIGxvbmcpZTtcbiYjNDM7XG4mIzQzO1x0aWYgKGkgXHUwMDNlPSBlLVx1MDAzZW51bV9ob29rX2VudHJpZXMgfHxcbiYjNDM7XHQgICAgY3R4LVx1MDAzZW5hdHYgIT0gKHVuc2lnbmVkIGxvbmcpZSkge1xuJiM0MztcdFx0Y2ItXHUwMDNlc2VxJiM0MzsmIzQzOztcbiYjNDM7XHRcdHJldHVybiAtRUlOVFI7XG4mIzQzO1x0fVxuJiM0MztcbiBcdG5hdF9vcHMgPSBuZl9ob29rX2VudHJpZXNfZ2V0X2hvb2tfb3BzKGUpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZS1cdTAwM2VudW1faG9va19lbnRyaWVzOyBpJiM0MzsmIzQzOykge1xuJiM0MztcdGZvciAoOyBpIFx1MDAzYyBlLVx1MDAzZW51bV9ob29rX2VudHJpZXM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBuYXRfb3BzW2ldLFxuLVx0XHRcdFx0XHQgb3BzLVx1MDAzZXByaW9yaXR5LCBmYW1pbHksIHNlcSk7XG4mIzQzO1x0XHRcdFx0XHQgb3BzLVx1MDAzZXByaW9yaXR5LCBmYW1pbHksXG4mIzQzO1x0XHRcdFx0XHQgY2ItXHUwMDNlbmxoLVx1MDAzZW5sbXNnX3NlcSk7XG4gXHRcdGlmIChlcnIpXG4tXHRcdFx0cmV0dXJuIGVycjtcbiYjNDM7XHRcdFx0YnJlYWs7XG4gXHR9XG4tXHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0aWYgKCFlcnIpIHtcbiYjNDM7XHRcdGN0eC1cdTAwM2VuYXR2ID0gMFxuJiM0MztcdFx0aSA9IDA7XG4mIzQzO1x0fVxuJiM0MztcdGNiLVx1MDAzZWFyZ3NbMV0gPSBpO1xuJiM0MztcdHJldHVybiBlcnI7XG4gfVxuIFxuIHN0YXRpYyBpbnQgbmZubF9ob29rX2R1bXAoc3RydWN0IHNrX2J1ZmYgKm5sc2tiLFxuQEAgLTM4OSwxMSAmIzQzOzQwNywxMiBAQCBzdGF0aWMgaW50IG5mbmxfaG9va19kdW1wKHN0cnVjdCBza19idWZmICpubHNrYixcbiBcdG9wcyA9IG5mX2hvb2tfZW50cmllc19nZXRfaG9va19vcHMoZSk7XG4gXG4gXHRmb3IgKDsgaSBcdTAwM2MgZS1cdTAwM2VudW1faG9va19lbnRyaWVzOyBpJiM0MzsmIzQzOykge1xuLVx0XHRpZiAob3BzW2ldLVx1MDAzZWhvb2tfb3BzX3R5cGUgPT0gTkZfSE9PS19PUF9OQVQpXG4tXHRcdFx0ZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjdHgsIG9wc1tpXSwgZmFtaWx5LFxuLVx0XHRcdFx0XHRcdCBjYi1cdTAwM2VubGgtXHUwMDNlbmxtc2dfc2VxKTtcbiYjNDM7XHRcdHN0cnVjdCBuZl9ob29rX29wcyAqY3VyID0gUkVBRF9PTkNFKG9wc1tpXSk7XG4mIzQzO1xuJiM0MztcdFx0aWYgKGN1ci1cdTAwM2Vob29rX29wc190eXBlID09IE5GX0hPT0tfT1BfTkFUKVxuJiM0MztcdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9uYXQobmxza2IsIGNiLCBjdXIsIGZhbWlseSk7XG4gXHRcdGVsc2Vcbi1cdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgb3BzW2ldLFxuJiM0MztcdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgY3VyLFxuIFx0XHRcdFx0XHRcdCBvcHNbaV0tXHUwMDNlcHJpb3JpdHksIGZhbWlseSxcbiBcdFx0XHRcdFx0XHQgY2ItXHUwMDNlbmxoLVx1MDAzZW5sbXNnX3NlcSk7XG4gXHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVURklMVEVSX05FVExJTktfSE9PSyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mbmxfaG9va19kdW1wX25hdCYjMzQ7LAogICAgJiMzNDtuZm5sX2hvb2tfZHVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0ZmlsdGVyIG5ldGxpbmsgaG9vayBkdW1wIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaG93IE5BVCBob29rcyBhcmUgZHVtcGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldGZpbHRlciBzdWJzeXN0ZW0gdGhhdCBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgc29ja2V0cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTg2ODMzZGU3NDFjNTk2OTRjYTc1OWNjODVmYzZhNDQ0N2VjM2E2YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMTA6Mjk6MjMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMKaW5kZXggOTUwMDVlOWE2MDY2ODguLmUwMWU1OWVkZGQ2NDEzIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jCkBAIC01NSw2ICYjNDM7NTUsNyBAQCBzdGF0aWMgaW50IG5mX25ldGxpbmtfZHVtcF9zdGFydF9yY3Uoc3RydWN0IHNvY2sgKm5sc2ssIHN0cnVjdCBza19idWZmICpza2IsCiBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSB7CiAJY2hhciBkZXZuYW1lW0lGTkFNU0laXTsKIAl1bnNpZ25lZCBsb25nIGhlYWR2OwomIzQzOwl1bnNpZ25lZCBsb25nIG5hdHY7CiAJdTggaG9vazsKIH07CiAKQEAgLTMzOCwyNyAmIzQzOzMzOSw0NCBAQCBuZm5sX2hvb2tfZW50cmllc19oZWFkKHU4IHBmLCB1bnNpZ25lZCBpbnQgaG9vaywgc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpkZQogfQogCiBzdGF0aWMgaW50IG5mbmxfaG9va19kdW1wX25hdChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4LAotCQkJICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsCi0JCQkgICAgICBpbnQgZmFtaWx5LCB1bnNpZ25lZCBpbnQgc2VxKQomIzQzOwkJCSAgICAgIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwKJiM0MzsJCQkgICAgICBjb25zdCBzdHJ1Y3QgbmZfaG9va19vcHMgKm9wcywgaW50IGZhbWlseSkKIHsKIAlzdHJ1Y3QgbmZfbmF0X2xvb2t1cF9ob29rX3ByaXYgKnByaXYgPSBvcHMtJmd0O3ByaXY7CiAJc3RydWN0IG5mX2hvb2tfZW50cmllcyAqZSA9IHJjdV9kZXJlZmVyZW5jZShwcml2LSZndDtlbnRyaWVzKTsKJiM0MzsJc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGEgKmN0eCA9IGNiLSZndDtkYXRhOwogCXN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7Ci0JaW50IGksIGVycjsKJiM0MzsJdW5zaWduZWQgaW50IGkgPSBjYi0mZ3Q7YXJnc1sxXTsKJiM0MzsJaW50IGVyciA9IDA7CiAKIAlpZiAoIWUpCiAJCXJldHVybiAwOwogCiYjNDM7CWlmICghY3R4LSZndDtuYXR2KQomIzQzOwkJY3R4LSZndDtuYXR2ID0gKHVuc2lnbmVkIGxvbmcpZTsKJiM0MzsKJiM0MzsJaWYgKGkgJmd0Oz0gZS0mZ3Q7bnVtX2hvb2tfZW50cmllcyB8fAomIzQzOwkgICAgY3R4LSZndDtuYXR2ICE9ICh1bnNpZ25lZCBsb25nKWUpIHsKJiM0MzsJCWNiLSZndDtzZXEmIzQzOyYjNDM7OwomIzQzOwkJcmV0dXJuIC1FSU5UUjsKJiM0MzsJfQomIzQzOwogCW5hdF9vcHMgPSBuZl9ob29rX2VudHJpZXNfZ2V0X2hvb2tfb3BzKGUpOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IGUtJmd0O251bV9ob29rX2VudHJpZXM7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CWZvciAoOyBpICZsdDsgZS0mZ3Q7bnVtX2hvb2tfZW50cmllczsgaSYjNDM7JiM0MzspIHsKIAkJZXJyID0gbmZubF9ob29rX2R1bXBfb25lKG5sc2tiLCBjdHgsIG5hdF9vcHNbaV0sCi0JCQkJCSBvcHMtJmd0O3ByaW9yaXR5LCBmYW1pbHksIHNlcSk7CiYjNDM7CQkJCQkgb3BzLSZndDtwcmlvcml0eSwgZmFtaWx5LAomIzQzOwkJCQkJIGNiLSZndDtubGgtJmd0O25sbXNnX3NlcSk7CiAJCWlmIChlcnIpCi0JCQlyZXR1cm4gZXJyOwomIzQzOwkJCWJyZWFrOwogCX0KLQlyZXR1cm4gMDsKJiM0MzsKJiM0MzsJaWYgKCFlcnIpIHsKJiM0MzsJCWN0eC0mZ3Q7bmF0diA9IDAKJiM0MzsJCWkgPSAwOwomIzQzOwl9CiYjNDM7CWNiLSZndDthcmdzWzFdID0gaTsKJiM0MzsJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsCkBAIC0zODksMTEgJiM0Mzs0MDcsMTIgQEAgc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsCiAJb3BzID0gbmZfaG9va19lbnRyaWVzX2dldF9ob29rX29wcyhlKTsKIAogCWZvciAoOyBpICZsdDsgZS0mZ3Q7bnVtX2hvb2tfZW50cmllczsgaSYjNDM7JiM0MzspIHsKLQkJaWYgKG9wc1tpXS0mZ3Q7aG9va19vcHNfdHlwZSA9PSBORl9IT09LX09QX05BVCkKLQkJCWVyciA9IG5mbmxfaG9va19kdW1wX25hdChubHNrYiwgY3R4LCBvcHNbaV0sIGZhbWlseSwKLQkJCQkJCSBjYi0mZ3Q7bmxoLSZndDtubG1zZ19zZXEpOwomIzQzOwkJc3RydWN0IG5mX2hvb2tfb3BzICpjdXIgPSBSRUFEX09OQ0Uob3BzW2ldKTsKJiM0MzsKJiM0MzsJCWlmIChjdXItJmd0O2hvb2tfb3BzX3R5cGUgPT0gTkZfSE9PS19PUF9OQVQpCiYjNDM7CQkJZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjYiwgY3VyLCBmYW1pbHkpOwogCQllbHNlCi0JCQllcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgb3BzW2ldLAomIzQzOwkJCWVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBjdXIsCiAJCQkJCQkgb3BzW2ldLSZndDtwcmlvcml0eSwgZmFtaWx5LAogCQkJCQkJIGNiLSZndDtubGgtJmd0O25sbXNnX3NlcSk7CiAJCWlmIChlcnIpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NzcKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAxNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgTmV0bGluayBIb29rIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgdG91Y2hpbmcgYG5ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY2AuIEl0IHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgZHVtcCBmdW5jdGlvbnMsIGBuZm5sX2hvb2tfZHVtcF9uYXRgIGFuZCBgbmZubF9ob29rX2R1bXBgLiBUaGUgYWRkaXRpb24gb2YgYG5hdHZgIHRvIGBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YWAgc3Ryb25nbHkgc3VnZ2VzdHMgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlbmhhbmNlbWVudHMgdG8gaG93IE5ldGZpbHRlciBuZXRsaW5rIGhvb2tzIGFyZSBkdW1wZWQuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIE5ldGZpbHRlciBmcmFtZXdvcmsgaXRzZWxmLgoKTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBLY29uZmlnIG9wdGlvbnMgbmVlZGVkIHRvIGJ1aWxkIHRoaXMgY29kZS4gSXMgaXQgc2ltcGx5IGBDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PS2AgdGhhdCBjb250cm9scyB0aGUgY29tcGlsYXRpb24gb2YgYG5ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY2AsIG9yIGlzIGBDT05GSUdfTkVURklMVEVSX05FVExJTktgIGludm9sdmVkLCB0b28/IEkmIzM5O2xsIHF1aWNrbHkgY2hlY2sgdGhlIGBuZXQvbmV0ZmlsdGVyL01ha2VmaWxlYCB0byB2ZXJpZnkgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbiBlbmFibGVzIHRoZSBjb21waWxhdGlvbiBvZiBgbmZuZXRsaW5rX2hvb2sub2AuIFRoYXQmIzM5O3MgdGhlIG1vc3QgcmVsaWFibGUgd2F5IHRvIHRyYWNlIHRoZSBkZXBlbmRlbmN5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mbmV0bGlua19ob29rJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTMwPW9iai0kKENPTkZJR19ORVRGSUxURVJfTkVUTElOS19PU0YpICYjNDM7PSBuZm5ldGxpbmtfb3NmLm9cbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0spICYjNDM7PSBuZm5ldGxpbmtfaG9vay5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTMyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMDgKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqSW52ZXN0aWdhdGluZyBOZXRmaWx0ZXIgTmV0bGluayBIb29rIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PS2AgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aC4gSG93ZXZlciwgSSB3YW50IHRvIGNvbmZpcm0gaWYgdGhlIGBORl9IT09LX09QX05BVGAgb3BlcmF0aW9uIG5lY2Vzc2l0YXRlcyBhbnkgKm90aGVyKiBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBhbG9uZ3NpZGUgaXQuIFRoYXQgbGV2ZWwgb2YgZGV0YWlsIGlzIGNyaXRpY2FsIGZvciBhIHJvYnVzdCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmZWF0dXJlJiMzOTtzIGRlcGVuZGVuY2llcy4KCk5leHQsIEkgbmVlZCB0byBmb2N1cyBvbiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb25zOiBgbmZubF9ob29rX2R1bXBfbmF0YCBhbmQgYG5mbmxfaG9va19kdW1wYC4gVGhlc2UgYXJlIGxpa2VseSB3aGVyZSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb25zIGlzIGltcGxlbWVudGVkLgoKRmluYWxseSwgSSYjMzk7bGwgbmVlZCB0byBicm9hZGVuIG15IHNjb3BlIGEgYml0LiBKdXN0IGJlY2F1c2Ugd2UgaGF2ZSB0aGlzLCBpdCBtaWdodCBiZSBjb25uZWN0ZWQgdG8gb3RoZXIgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byBzY2FuIGZvciBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsYXRlZCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyB0aGF0IG1pZ2h0IGltcGFjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIG5ldGxpbmsgaG9vayBvciB0aGUgTkFUIG9wZXJhdGlvbi4gQSBjb21wcmVoZW5zaXZlIGFwcHJvYWNoLCBhcyBhbHdheXMsIGlzIGtleSB0byBhdm9pZGluZyB1bmV4cGVjdGVkIGludGVyYWN0aW9ucyBvciBvbWlzc2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVURklMVEVSX05FVExJTktfSE9PSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWc9MzM9Y29uZmlnIE5FVEZJTFRFUl9CUEZfTElOS1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozNjpjb25maWcgTkVURklMVEVSX05FVExJTktfSE9PS1xubmV0L25ldGZpbHRlci9LY29uZmlnLTM3LVx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGJhc2UgaG9vayBkdW1wIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMDoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjIwCgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIGhpdHRpbmcgYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIGNhbiB0ZWxsIHRoZXNlIGFyZSBOZXRsaW5rLXJlYWNoYWJsZSBmdW5jdGlvbnMsIHdoaWNoIGlzIGV4Y2VsbGVudCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gVGhlIGNoYW5nZXMgdGhlbXNlbHZlcyBhcHBlYXIgdG8gYmUgZnVuY3Rpb25hbCDigJMgdGhleSYjMzk7cmUgbm90IGp1c3QgcmVuYW1pbmcgdmFyaWFibGVzIG9yIHJlZmFjdG9yaW5nIHdpdGhvdXQgaW1wYWN0aW5nIGJlaGF2aW9yLiBUaGlzIG1lYW5zIHRoZXJlJiMzOTtzIGEgZ29vZCBjaGFuY2Ugb2YgZXhwb3NpbmcgaW50ZXJlc3RpbmcgbmV3IGNvZGUgcGF0aHMgb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aHJvdWdoIGZ1enppbmcuIEdpdmVuIHRoYXQgdGhlc2UgYXJlIGFscmVhZHkgTmV0bGluay1yZWFjaGFibGUgYW5kIHRoZSBwYXRjaCBtb2RpZmllcyB0aGVtLCBJIHRoaW5rIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZnV6emluZyB0aGVzZSBmdW5jdGlvbnMuIExldCYjMzk7cyBmbGFnIHRoaXMgd2l0aCBgV29ydGhGdXp6aW5nPXRydWVgLiBUbyBtYWtlIHN1cmUgdGhlIGZ1enplciB0YXJnZXRzIHRoZXNlIGZ1bmN0aW9ucyBzcGVjaWZpY2FsbHksIEkmIzM5O2xsIGFkZCBgbmZubF9ob29rX2R1bXBfbmF0YCBhbmQgYG5mbmxfaG9va19kdW1wYCB0byB0aGUgZm9jdXMgc3ltYm9scy4gSSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBgTkVURklMVEVSX05FVExJTktfSE9PS2AgYmVjYXVzZSB0aGlzIGlzIGVzc2VudGlhbCBmb3IgTmV0bGluayBmdW5jdGlvbmFsaXR5IGFuZCwgdGhlcmVmb3JlLCB0aGVzZSBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVEZJTFRFUl9ORVRMSU5LX0hPT0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZm5sX2hvb2tfZHVtcF9uYXQmIzM0OywKICAgICYjMzQ7bmZubF9ob29rX2R1bXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVEZJTFRFUl9ORVRMSU5LX0hPT0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZm5sX2hvb2tfZHVtcF9uYXQmIzM0OywKICAgICYjMzQ7bmZubF9ob29rX2R1bXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC4zODExNjI4MTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTcxOTcyODA0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRGSUxURVJfTkVUTElOS19IT09LXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZubF9ob29rX2R1bXBfbmF0XCIsXG4gICAgXCJuZm5sX2hvb2tfZHVtcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRmaWx0ZXIgbmV0bGluayBob29rIGR1bXAgbG9naWMsIHNwZWNpZmljYWxseSBob3cgTkFUIGhvb2tzIGFyZSBkdW1wZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBzb2NrZXRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC4zODExNjcyMDdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzU3ODM1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDU4NjgzM2RlNzQxYzU5Njk0Y2E3NTljYzg1ZmM2YTQ0NDdlYzNhNmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgOSAxMDoyOToyMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNcXG5pbmRleCA5NTAwNWU5YTYwNjY4OC4uZTAxZTU5ZWRkZDY0MTMgMTAwNjQ0XFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXFxuKysrIGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXFxuQEAgLTU1LDYgKzU1LDcgQEAgc3RhdGljIGludCBuZl9uZXRsaW5rX2R1bXBfc3RhcnRfcmN1KHN0cnVjdCBzb2NrICpubHNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSB7XFxuIFxcdGNoYXIgZGV2bmFtZVtJRk5BTVNJWl07XFxuIFxcdHVuc2lnbmVkIGxvbmcgaGVhZHY7XFxuK1xcdHVuc2lnbmVkIGxvbmcgbmF0djtcXG4gXFx0dTggaG9vaztcXG4gfTtcXG4gXFxuQEAgLTMzOCwyNyArMzM5LDQ0IEBAIG5mbmxfaG9va19lbnRyaWVzX2hlYWQodTggcGYsIHVuc2lnbmVkIGludCBob29rLCBzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKmRlXFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbmZubF9ob29rX2R1bXBfbmF0KHN0cnVjdCBza19idWZmICpubHNrYixcXG4tXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGEgKmN0eCxcXG4tXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsXFxuLVxcdFxcdFxcdCAgICAgIGludCBmYW1pbHksIHVuc2lnbmVkIGludCBzZXEpXFxuK1xcdFxcdFxcdCAgICAgIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYixcXG4rXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsIGludCBmYW1pbHkpXFxuIHtcXG4gXFx0c3RydWN0IG5mX25hdF9sb29rdXBfaG9va19wcml2ICpwcml2ID0gb3BzLVxcdTAwM2Vwcml2O1xcbiBcXHRzdHJ1Y3QgbmZfaG9va19lbnRyaWVzICplID0gcmN1X2RlcmVmZXJlbmNlKHByaXYtXFx1MDAzZWVudHJpZXMpO1xcbitcXHRzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4ID0gY2ItXFx1MDAzZWRhdGE7XFxuIFxcdHN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7XFxuLVxcdGludCBpLCBlcnI7XFxuK1xcdHVuc2lnbmVkIGludCBpID0gY2ItXFx1MDAzZWFyZ3NbMV07XFxuK1xcdGludCBlcnIgPSAwO1xcbiBcXG4gXFx0aWYgKCFlKVxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuK1xcdGlmICghY3R4LVxcdTAwM2VuYXR2KVxcbitcXHRcXHRjdHgtXFx1MDAzZW5hdHYgPSAodW5zaWduZWQgbG9uZyllO1xcbitcXG4rXFx0aWYgKGkgXFx1MDAzZT0gZS1cXHUwMDNlbnVtX2hvb2tfZW50cmllcyB8fFxcbitcXHQgICAgY3R4LVxcdTAwM2VuYXR2ICE9ICh1bnNpZ25lZCBsb25nKWUpIHtcXG4rXFx0XFx0Y2ItXFx1MDAzZXNlcSsrO1xcbitcXHRcXHRyZXR1cm4gLUVJTlRSO1xcbitcXHR9XFxuK1xcbiBcXHRuYXRfb3BzID0gbmZfaG9va19lbnRyaWVzX2dldF9ob29rX29wcyhlKTtcXG4gXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlLVxcdTAwM2VudW1faG9va19lbnRyaWVzOyBpKyspIHtcXG4rXFx0Zm9yICg7IGkgXFx1MDAzYyBlLVxcdTAwM2VudW1faG9va19lbnRyaWVzOyBpKyspIHtcXG4gXFx0XFx0ZXJyID0gbmZubF9ob29rX2R1bXBfb25lKG5sc2tiLCBjdHgsIG5hdF9vcHNbaV0sXFxuLVxcdFxcdFxcdFxcdFxcdCBvcHMtXFx1MDAzZXByaW9yaXR5LCBmYW1pbHksIHNlcSk7XFxuK1xcdFxcdFxcdFxcdFxcdCBvcHMtXFx1MDAzZXByaW9yaXR5LCBmYW1pbHksXFxuK1xcdFxcdFxcdFxcdFxcdCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEpO1xcbiBcXHRcXHRpZiAoZXJyKVxcbi1cXHRcXHRcXHRyZXR1cm4gZXJyO1xcbitcXHRcXHRcXHRicmVhaztcXG4gXFx0fVxcbi1cXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGlmICghZXJyKSB7XFxuK1xcdFxcdGN0eC1cXHUwMDNlbmF0diA9IDBcXG4rXFx0XFx0aSA9IDA7XFxuK1xcdH1cXG4rXFx0Y2ItXFx1MDAzZWFyZ3NbMV0gPSBpO1xcbitcXHRyZXR1cm4gZXJyO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IG5mbmxfaG9va19kdW1wKHN0cnVjdCBza19idWZmICpubHNrYixcXG5AQCAtMzg5LDExICs0MDcsMTIgQEAgc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsXFxuIFxcdG9wcyA9IG5mX2hvb2tfZW50cmllc19nZXRfaG9va19vcHMoZSk7XFxuIFxcbiBcXHRmb3IgKDsgaSBcXHUwMDNjIGUtXFx1MDAzZW51bV9ob29rX2VudHJpZXM7IGkrKykge1xcbi1cXHRcXHRpZiAob3BzW2ldLVxcdTAwM2Vob29rX29wc190eXBlID09IE5GX0hPT0tfT1BfTkFUKVxcbi1cXHRcXHRcXHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9uYXQobmxza2IsIGN0eCwgb3BzW2ldLCBmYW1pbHksXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEpO1xcbitcXHRcXHRzdHJ1Y3QgbmZfaG9va19vcHMgKmN1ciA9IFJFQURfT05DRShvcHNbaV0pO1xcbitcXG4rXFx0XFx0aWYgKGN1ci1cXHUwMDNlaG9va19vcHNfdHlwZSA9PSBORl9IT09LX09QX05BVClcXG4rXFx0XFx0XFx0ZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjYiwgY3VyLCBmYW1pbHkpO1xcbiBcXHRcXHRlbHNlXFxuLVxcdFxcdFxcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBvcHNbaV0sXFxuK1xcdFxcdFxcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBjdXIsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCBvcHNbaV0tXFx1MDAzZXByaW9yaXR5LCBmYW1pbHksXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEpO1xcbiBcXHRcXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC44NDkzMzM5MzFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxMjUxNTQ4MzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVEZJTFRFUl9ORVRMSU5LX0hPT0tcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZm5sX2hvb2tfZHVtcF9uYXRcIixcbiAgICBcIm5mbmxfaG9va19kdW1wXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTg2ODMzZGU3NDFjNTk2OTRjYTc1OWNjODVmYzZhNDQ0N2VjM2E2YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDkgMTA6Mjk6MjMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNcbmluZGV4IDk1MDA1ZTlhNjA2Njg4Li5lMDFlNTllZGRkNjQxMyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY1xuKysrIGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXG5AQCAtNTUsNiArNTUsNyBAQCBzdGF0aWMgaW50IG5mX25ldGxpbmtfZHVtcF9zdGFydF9yY3Uoc3RydWN0IHNvY2sgKm5sc2ssIHN0cnVjdCBza19idWZmICpza2IsXG4gc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGEge1xuIFx0Y2hhciBkZXZuYW1lW0lGTkFNU0laXTtcbiBcdHVuc2lnbmVkIGxvbmcgaGVhZHY7XG4rXHR1bnNpZ25lZCBsb25nIG5hdHY7XG4gXHR1OCBob29rO1xuIH07XG4gXG5AQCAtMzM4LDI3ICszMzksNDQgQEAgbmZubF9ob29rX2VudHJpZXNfaGVhZCh1OCBwZiwgdW5zaWduZWQgaW50IGhvb2ssIHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqZGVcbiB9XG4gXG4gc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcF9uYXQoc3RydWN0IHNrX2J1ZmYgKm5sc2tiLFxuLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBuZm5sX2R1bXBfaG9va19kYXRhICpjdHgsXG4tXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsXG4tXHRcdFx0ICAgICAgaW50IGZhbWlseSwgdW5zaWduZWQgaW50IHNlcSlcbitcdFx0XHQgICAgICBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IsXG4rXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsIGludCBmYW1pbHkpXG4ge1xuIFx0c3RydWN0IG5mX25hdF9sb29rdXBfaG9va19wcml2ICpwcml2ID0gb3BzLVx1MDAzZXByaXY7XG4gXHRzdHJ1Y3QgbmZfaG9va19lbnRyaWVzICplID0gcmN1X2RlcmVmZXJlbmNlKHByaXYtXHUwMDNlZW50cmllcyk7XG4rXHRzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4ID0gY2ItXHUwMDNlZGF0YTtcbiBcdHN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7XG4tXHRpbnQgaSwgZXJyO1xuK1x0dW5zaWduZWQgaW50IGkgPSBjYi1cdTAwM2VhcmdzWzFdO1xuK1x0aW50IGVyciA9IDA7XG4gXG4gXHRpZiAoIWUpXG4gXHRcdHJldHVybiAwO1xuIFxuK1x0aWYgKCFjdHgtXHUwMDNlbmF0dilcbitcdFx0Y3R4LVx1MDAzZW5hdHYgPSAodW5zaWduZWQgbG9uZyllO1xuK1xuK1x0aWYgKGkgXHUwMDNlPSBlLVx1MDAzZW51bV9ob29rX2VudHJpZXMgfHxcbitcdCAgICBjdHgtXHUwMDNlbmF0diAhPSAodW5zaWduZWQgbG9uZyllKSB7XG4rXHRcdGNiLVx1MDAzZXNlcSsrO1xuK1x0XHRyZXR1cm4gLUVJTlRSO1xuK1x0fVxuK1xuIFx0bmF0X29wcyA9IG5mX2hvb2tfZW50cmllc19nZXRfaG9va19vcHMoZSk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBlLVx1MDAzZW51bV9ob29rX2VudHJpZXM7IGkrKykge1xuK1x0Zm9yICg7IGkgXHUwMDNjIGUtXHUwMDNlbnVtX2hvb2tfZW50cmllczsgaSsrKSB7XG4gXHRcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBuYXRfb3BzW2ldLFxuLVx0XHRcdFx0XHQgb3BzLVx1MDAzZXByaW9yaXR5LCBmYW1pbHksIHNlcSk7XG4rXHRcdFx0XHRcdCBvcHMtXHUwMDNlcHJpb3JpdHksIGZhbWlseSxcbitcdFx0XHRcdFx0IGNiLVx1MDAzZW5saC1cdTAwM2VubG1zZ19zZXEpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdHJldHVybiBlcnI7XG4rXHRcdFx0YnJlYWs7XG4gXHR9XG4tXHRyZXR1cm4gMDtcbitcbitcdGlmICghZXJyKSB7XG4rXHRcdGN0eC1cdTAwM2VuYXR2ID0gMFxuK1x0XHRpID0gMDtcbitcdH1cbitcdGNiLVx1MDAzZWFyZ3NbMV0gPSBpO1xuK1x0cmV0dXJuIGVycjtcbiB9XG4gXG4gc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsXG5AQCAtMzg5LDExICs0MDcsMTIgQEAgc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsXG4gXHRvcHMgPSBuZl9ob29rX2VudHJpZXNfZ2V0X2hvb2tfb3BzKGUpO1xuIFxuIFx0Zm9yICg7IGkgXHUwMDNjIGUtXHUwMDNlbnVtX2hvb2tfZW50cmllczsgaSsrKSB7XG4tXHRcdGlmIChvcHNbaV0tXHUwMDNlaG9va19vcHNfdHlwZSA9PSBORl9IT09LX09QX05BVClcbi1cdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9uYXQobmxza2IsIGN0eCwgb3BzW2ldLCBmYW1pbHksXG4tXHRcdFx0XHRcdFx0IGNiLVx1MDAzZW5saC1cdTAwM2VubG1zZ19zZXEpO1xuK1x0XHRzdHJ1Y3QgbmZfaG9va19vcHMgKmN1ciA9IFJFQURfT05DRShvcHNbaV0pO1xuK1xuK1x0XHRpZiAoY3VyLVx1MDAzZWhvb2tfb3BzX3R5cGUgPT0gTkZfSE9PS19PUF9OQVQpXG4rXHRcdFx0ZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjYiwgY3VyLCBmYW1pbHkpO1xuIFx0XHRlbHNlXG4tXHRcdFx0ZXJyID0gbmZubF9ob29rX2R1bXBfb25lKG5sc2tiLCBjdHgsIG9wc1tpXSxcbitcdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgY3VyLFxuIFx0XHRcdFx0XHRcdCBvcHNbaV0tXHUwMDNlcHJpb3JpdHksIGZhbWlseSxcbiBcdFx0XHRcdFx0XHQgY2ItXHUwMDNlbmxoLVx1MDAzZW5sbXNnX3NlcSk7XG4gXHRcdGlmIChlcnIpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC44NDkzMzUzODFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3Njc1ODQ4MTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIE5ldGxpbmsgSG9vayBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIHRvdWNoaW5nIGBuZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNgLiBJdCBzZWVtcyB0byBiZSBtb2RpZnlpbmcgdGhlIGR1bXAgZnVuY3Rpb25zLCBgbmZubF9ob29rX2R1bXBfbmF0YCBhbmQgYG5mbmxfaG9va19kdW1wYC4gVGhlIGFkZGl0aW9uIG9mIGBuYXR2YCB0byBgc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGFgIHN0cm9uZ2x5IHN1Z2dlc3RzIHdlJ3JlIGRlYWxpbmcgd2l0aCBlbmhhbmNlbWVudHMgdG8gaG93IE5ldGZpbHRlciBuZXRsaW5rIGhvb2tzIGFyZSBkdW1wZWQuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIE5ldGZpbHRlciBmcmFtZXdvcmsgaXRzZWxmLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IEtjb25maWcgb3B0aW9ucyBuZWVkZWQgdG8gYnVpbGQgdGhpcyBjb2RlLiBJcyBpdCBzaW1wbHkgYENPTkZJR19ORVRGSUxURVJfTkVUTElOS19IT09LYCB0aGF0IGNvbnRyb2xzIHRoZSBjb21waWxhdGlvbiBvZiBgbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jYCwgb3IgaXMgYENPTkZJR19ORVRGSUxURVJfTkVUTElOS2AgaW52b2x2ZWQsIHRvbz8gSSdsbCBxdWlja2x5IGNoZWNrIHRoZSBgbmV0L25ldGZpbHRlci9NYWtlZmlsZWAgdG8gdmVyaWZ5IHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gZW5hYmxlcyB0aGUgY29tcGlsYXRpb24gb2YgYG5mbmV0bGlua19ob29rLm9gLiBUaGF0J3MgdGhlIG1vc3QgcmVsaWFibGUgd2F5IHRvIHRyYWNlIHRoZSBkZXBlbmRlbmN5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjc3LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTA6Mjk6MzIuNTI1MTg3MDM4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNTIyMTExOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZm5ldGxpbmtfaG9va1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9MzA9b2JqLSQoQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX09TRikgKz0gbmZuZXRsaW5rX29zZi5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PSykgKz0gbmZuZXRsaW5rX2hvb2sub1xcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtMzItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDEwOjI5OjMyLjg1MDQxODMyNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxODUxMjAwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipJbnZlc3RpZ2F0aW5nIE5ldGZpbHRlciBOZXRsaW5rIEhvb2sgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBteSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0tgIGlzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJ3JlIGRlYWxpbmcgd2l0aC4gSG93ZXZlciwgSSB3YW50IHRvIGNvbmZpcm0gaWYgdGhlIGBORl9IT09LX09QX05BVGAgb3BlcmF0aW9uIG5lY2Vzc2l0YXRlcyBhbnkgKm90aGVyKiBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBhbG9uZ3NpZGUgaXQuIFRoYXQgbGV2ZWwgb2YgZGV0YWlsIGlzIGNyaXRpY2FsIGZvciBhIHJvYnVzdCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmZWF0dXJlJ3MgZGVwZW5kZW5jaWVzLlxuXG5OZXh0LCBJIG5lZWQgdG8gZm9jdXMgb24gdGhlIGFmZmVjdGVkIGZ1bmN0aW9uczogYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAuIFRoZXNlIGFyZSBsaWtlbHkgd2hlcmUgdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9ucyBpcyBpbXBsZW1lbnRlZC5cblxuRmluYWxseSwgSSdsbCBuZWVkIHRvIGJyb2FkZW4gbXkgc2NvcGUgYSBiaXQuIEp1c3QgYmVjYXVzZSB3ZSBoYXZlIHRoaXMsIGl0IG1pZ2h0IGJlIGNvbm5lY3RlZCB0byBvdGhlciBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIHNjYW4gZm9yIGFueSBvdGhlciBwb3RlbnRpYWxseSByZWxhdGVkIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHRoYXQgbWlnaHQgaW1wYWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgbmV0bGluayBob29rIG9yIHRoZSBOQVQgb3BlcmF0aW9uLiBBIGNvbXByZWhlbnNpdmUgYXBwcm9hY2gsIGFzIGFsd2F5cywgaXMga2V5IHRvIGF2b2lkaW5nIHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zIG9yIG9taXNzaW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIwOCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDEwOjI5OjM5LjAzNTU0MDI4OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDc2MzY4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRGSUxURVJfTkVUTElOS19IT09LXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9MzM9Y29uZmlnIE5FVEZJTFRFUl9CUEZfTElOS1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM1LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozNjpjb25maWcgTkVURklMVEVSX05FVExJTktfSE9PS1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGJhc2UgaG9vayBkdW1wIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDEwOjI5OjM5LjEwMDMxMDUzM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5MTUyMTkzMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGhpdHRpbmcgYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIGNhbiB0ZWxsIHRoZXNlIGFyZSBOZXRsaW5rLXJlYWNoYWJsZSBmdW5jdGlvbnMsIHdoaWNoIGlzIGV4Y2VsbGVudCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gVGhlIGNoYW5nZXMgdGhlbXNlbHZlcyBhcHBlYXIgdG8gYmUgZnVuY3Rpb25hbCDigJMgdGhleSdyZSBub3QganVzdCByZW5hbWluZyB2YXJpYWJsZXMgb3IgcmVmYWN0b3Jpbmcgd2l0aG91dCBpbXBhY3RpbmcgYmVoYXZpb3IuIFRoaXMgbWVhbnMgdGhlcmUncyBhIGdvb2QgY2hhbmNlIG9mIGV4cG9zaW5nIGludGVyZXN0aW5nIG5ldyBjb2RlIHBhdGhzIG9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMgdGhyb3VnaCBmdXp6aW5nLiBHaXZlbiB0aGF0IHRoZXNlIGFyZSBhbHJlYWR5IE5ldGxpbmstcmVhY2hhYmxlIGFuZCB0aGUgcGF0Y2ggbW9kaWZpZXMgdGhlbSwgSSB0aGluayBpdCdzIGRlZmluaXRlbHkgd29ydGggZnV6emluZyB0aGVzZSBmdW5jdGlvbnMuIExldCdzIGZsYWcgdGhpcyB3aXRoIGBXb3J0aEZ1enppbmc9dHJ1ZWAuIFRvIG1ha2Ugc3VyZSB0aGUgZnV6emVyIHRhcmdldHMgdGhlc2UgZnVuY3Rpb25zIHNwZWNpZmljYWxseSwgSSdsbCBhZGQgYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAgdG8gdGhlIGZvY3VzIHN5bWJvbHMuIEkgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYE5FVEZJTFRFUl9ORVRMSU5LX0hPT0tgIGJlY2F1c2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIE5ldGxpbmsgZnVuY3Rpb25hbGl0eSBhbmQsIHRoZXJlZm9yZSwgdGhlc2UgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjIwLCJPdXRwdXRUb2tlbnMiOjk4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTA6Mjk6NDYuMDE1NTMxNTk1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTM0Njk2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVURklMVEVSX05FVExJTktfSE9PS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mbmxfaG9va19kdW1wX25hdFwiLFxuICAgIFwibmZubF9ob29rX2R1bXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0ZmlsdGVyIG5ldGxpbmsgaG9vayBkdW1wIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaG93IE5BVCBob29rcyBhcmUgZHVtcGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldGZpbHRlciBzdWJzeXN0ZW0gdGhhdCBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgc29ja2V0cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRGSUxURVJfTkVUTElOS19IT09LXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZubF9ob29rX2R1bXBfbmF0XCIsXG4gICAgXCJuZm5sX2hvb2tfZHVtcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRmaWx0ZXIgbmV0bGluayBob29rIGR1bXAgbG9naWMsIHNwZWNpZmljYWxseSBob3cgTkFUIGhvb2tzIGFyZSBkdW1wZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBzb2NrZXRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-09 09:54:09 +0000 UTC FinishedAt: 2026-07-09 10:29:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETFILTER_NETLINK_HOOK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETFILTER_NETLINK_HOOK" ], "series_id": "f0c9d07d-a474-4d2d-8448-3f804d40273b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nfnl_hook_dump_nat", "nfnl_hook_dump" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-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+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVEZJTFRFUl9ORVRMSU5LX0hPT0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZm5sX2hvb2tfZHVtcF9uYXQmIzM0OywKICAgICYjMzQ7bmZubF9ob29rX2R1bXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1ODY4MzNkZTc0MWM1OTY5NGNhNzU5Y2M4NWZjNmE0NDQ3ZWMzYTZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgOSAxMDoyOToyMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNcbmluZGV4IDk1MDA1ZTlhNjA2Njg4Li5lMDFlNTllZGRkNjQxMyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXG5AQCAtNTUsNiAmIzQzOzU1LDcgQEAgc3RhdGljIGludCBuZl9uZXRsaW5rX2R1bXBfc3RhcnRfcmN1KHN0cnVjdCBzb2NrICpubHNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIHN0cnVjdCBuZm5sX2R1bXBfaG9va19kYXRhIHtcbiBcdGNoYXIgZGV2bmFtZVtJRk5BTVNJWl07XG4gXHR1bnNpZ25lZCBsb25nIGhlYWR2O1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgbmF0djtcbiBcdHU4IGhvb2s7XG4gfTtcbiBcbkBAIC0zMzgsMjcgJiM0MzszMzksNDQgQEAgbmZubF9ob29rX2VudHJpZXNfaGVhZCh1OCBwZiwgdW5zaWduZWQgaW50IGhvb2ssIHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqZGVcbiB9XG4gXG4gc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcF9uYXQoc3RydWN0IHNrX2J1ZmYgKm5sc2tiLFxuLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBuZm5sX2R1bXBfaG9va19kYXRhICpjdHgsXG4tXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsXG4tXHRcdFx0ICAgICAgaW50IGZhbWlseSwgdW5zaWduZWQgaW50IHNlcSlcbiYjNDM7XHRcdFx0ICAgICAgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiLFxuJiM0MztcdFx0XHQgICAgICBjb25zdCBzdHJ1Y3QgbmZfaG9va19vcHMgKm9wcywgaW50IGZhbWlseSlcbiB7XG4gXHRzdHJ1Y3QgbmZfbmF0X2xvb2t1cF9ob29rX3ByaXYgKnByaXYgPSBvcHMtXHUwMDNlcHJpdjtcbiBcdHN0cnVjdCBuZl9ob29rX2VudHJpZXMgKmUgPSByY3VfZGVyZWZlcmVuY2UocHJpdi1cdTAwM2VlbnRyaWVzKTtcbiYjNDM7XHRzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4ID0gY2ItXHUwMDNlZGF0YTtcbiBcdHN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7XG4tXHRpbnQgaSwgZXJyO1xuJiM0MztcdHVuc2lnbmVkIGludCBpID0gY2ItXHUwMDNlYXJnc1sxXTtcbiYjNDM7XHRpbnQgZXJyID0gMDtcbiBcbiBcdGlmICghZSlcbiBcdFx0cmV0dXJuIDA7XG4gXG4mIzQzO1x0aWYgKCFjdHgtXHUwMDNlbmF0dilcbiYjNDM7XHRcdGN0eC1cdTAwM2VuYXR2ID0gKHVuc2lnbmVkIGxvbmcpZTtcbiYjNDM7XG4mIzQzO1x0aWYgKGkgXHUwMDNlPSBlLVx1MDAzZW51bV9ob29rX2VudHJpZXMgfHxcbiYjNDM7XHQgICAgY3R4LVx1MDAzZW5hdHYgIT0gKHVuc2lnbmVkIGxvbmcpZSkge1xuJiM0MztcdFx0Y2ItXHUwMDNlc2VxJiM0MzsmIzQzOztcbiYjNDM7XHRcdHJldHVybiAtRUlOVFI7XG4mIzQzO1x0fVxuJiM0MztcbiBcdG5hdF9vcHMgPSBuZl9ob29rX2VudHJpZXNfZ2V0X2hvb2tfb3BzKGUpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZS1cdTAwM2VudW1faG9va19lbnRyaWVzOyBpJiM0MzsmIzQzOykge1xuJiM0MztcdGZvciAoOyBpIFx1MDAzYyBlLVx1MDAzZW51bV9ob29rX2VudHJpZXM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBuYXRfb3BzW2ldLFxuLVx0XHRcdFx0XHQgb3BzLVx1MDAzZXByaW9yaXR5LCBmYW1pbHksIHNlcSk7XG4mIzQzO1x0XHRcdFx0XHQgb3BzLVx1MDAzZXByaW9yaXR5LCBmYW1pbHksXG4mIzQzO1x0XHRcdFx0XHQgY2ItXHUwMDNlbmxoLVx1MDAzZW5sbXNnX3NlcSk7XG4gXHRcdGlmIChlcnIpXG4tXHRcdFx0cmV0dXJuIGVycjtcbiYjNDM7XHRcdFx0YnJlYWs7XG4gXHR9XG4tXHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0aWYgKCFlcnIpIHtcbiYjNDM7XHRcdGN0eC1cdTAwM2VuYXR2ID0gMFxuJiM0MztcdFx0aSA9IDA7XG4mIzQzO1x0fVxuJiM0MztcdGNiLVx1MDAzZWFyZ3NbMV0gPSBpO1xuJiM0MztcdHJldHVybiBlcnI7XG4gfVxuIFxuIHN0YXRpYyBpbnQgbmZubF9ob29rX2R1bXAoc3RydWN0IHNrX2J1ZmYgKm5sc2tiLFxuQEAgLTM4OSwxMSAmIzQzOzQwNywxMiBAQCBzdGF0aWMgaW50IG5mbmxfaG9va19kdW1wKHN0cnVjdCBza19idWZmICpubHNrYixcbiBcdG9wcyA9IG5mX2hvb2tfZW50cmllc19nZXRfaG9va19vcHMoZSk7XG4gXG4gXHRmb3IgKDsgaSBcdTAwM2MgZS1cdTAwM2VudW1faG9va19lbnRyaWVzOyBpJiM0MzsmIzQzOykge1xuLVx0XHRpZiAob3BzW2ldLVx1MDAzZWhvb2tfb3BzX3R5cGUgPT0gTkZfSE9PS19PUF9OQVQpXG4tXHRcdFx0ZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjdHgsIG9wc1tpXSwgZmFtaWx5LFxuLVx0XHRcdFx0XHRcdCBjYi1cdTAwM2VubGgtXHUwMDNlbmxtc2dfc2VxKTtcbiYjNDM7XHRcdHN0cnVjdCBuZl9ob29rX29wcyAqY3VyID0gUkVBRF9PTkNFKG9wc1tpXSk7XG4mIzQzO1xuJiM0MztcdFx0aWYgKGN1ci1cdTAwM2Vob29rX29wc190eXBlID09IE5GX0hPT0tfT1BfTkFUKVxuJiM0MztcdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9uYXQobmxza2IsIGNiLCBjdXIsIGZhbWlseSk7XG4gXHRcdGVsc2Vcbi1cdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgb3BzW2ldLFxuJiM0MztcdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgY3VyLFxuIFx0XHRcdFx0XHRcdCBvcHNbaV0tXHUwMDNlcHJpb3JpdHksIGZhbWlseSxcbiBcdFx0XHRcdFx0XHQgY2ItXHUwMDNlbmxoLVx1MDAzZW5sbXNnX3NlcSk7XG4gXHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVURklMVEVSX05FVExJTktfSE9PSyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mbmxfaG9va19kdW1wX25hdCYjMzQ7LAogICAgJiMzNDtuZm5sX2hvb2tfZHVtcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0ZmlsdGVyIG5ldGxpbmsgaG9vayBkdW1wIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaG93IE5BVCBob29rcyBhcmUgZHVtcGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldGZpbHRlciBzdWJzeXN0ZW0gdGhhdCBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgc29ja2V0cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTg2ODMzZGU3NDFjNTk2OTRjYTc1OWNjODVmYzZhNDQ0N2VjM2E2YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMTA6Mjk6MjMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMKaW5kZXggOTUwMDVlOWE2MDY2ODguLmUwMWU1OWVkZGQ2NDEzIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jCkBAIC01NSw2ICYjNDM7NTUsNyBAQCBzdGF0aWMgaW50IG5mX25ldGxpbmtfZHVtcF9zdGFydF9yY3Uoc3RydWN0IHNvY2sgKm5sc2ssIHN0cnVjdCBza19idWZmICpza2IsCiBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSB7CiAJY2hhciBkZXZuYW1lW0lGTkFNU0laXTsKIAl1bnNpZ25lZCBsb25nIGhlYWR2OwomIzQzOwl1bnNpZ25lZCBsb25nIG5hdHY7CiAJdTggaG9vazsKIH07CiAKQEAgLTMzOCwyNyAmIzQzOzMzOSw0NCBAQCBuZm5sX2hvb2tfZW50cmllc19oZWFkKHU4IHBmLCB1bnNpZ25lZCBpbnQgaG9vaywgc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpkZQogfQogCiBzdGF0aWMgaW50IG5mbmxfaG9va19kdW1wX25hdChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsCi0JCQkgICAgICBjb25zdCBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4LAotCQkJICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsCi0JCQkgICAgICBpbnQgZmFtaWx5LCB1bnNpZ25lZCBpbnQgc2VxKQomIzQzOwkJCSAgICAgIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwKJiM0MzsJCQkgICAgICBjb25zdCBzdHJ1Y3QgbmZfaG9va19vcHMgKm9wcywgaW50IGZhbWlseSkKIHsKIAlzdHJ1Y3QgbmZfbmF0X2xvb2t1cF9ob29rX3ByaXYgKnByaXYgPSBvcHMtJmd0O3ByaXY7CiAJc3RydWN0IG5mX2hvb2tfZW50cmllcyAqZSA9IHJjdV9kZXJlZmVyZW5jZShwcml2LSZndDtlbnRyaWVzKTsKJiM0MzsJc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGEgKmN0eCA9IGNiLSZndDtkYXRhOwogCXN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7Ci0JaW50IGksIGVycjsKJiM0MzsJdW5zaWduZWQgaW50IGkgPSBjYi0mZ3Q7YXJnc1sxXTsKJiM0MzsJaW50IGVyciA9IDA7CiAKIAlpZiAoIWUpCiAJCXJldHVybiAwOwogCiYjNDM7CWlmICghY3R4LSZndDtuYXR2KQomIzQzOwkJY3R4LSZndDtuYXR2ID0gKHVuc2lnbmVkIGxvbmcpZTsKJiM0MzsKJiM0MzsJaWYgKGkgJmd0Oz0gZS0mZ3Q7bnVtX2hvb2tfZW50cmllcyB8fAomIzQzOwkgICAgY3R4LSZndDtuYXR2ICE9ICh1bnNpZ25lZCBsb25nKWUpIHsKJiM0MzsJCWNiLSZndDtzZXEmIzQzOyYjNDM7OwomIzQzOwkJcmV0dXJuIC1FSU5UUjsKJiM0MzsJfQomIzQzOwogCW5hdF9vcHMgPSBuZl9ob29rX2VudHJpZXNfZ2V0X2hvb2tfb3BzKGUpOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IGUtJmd0O251bV9ob29rX2VudHJpZXM7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CWZvciAoOyBpICZsdDsgZS0mZ3Q7bnVtX2hvb2tfZW50cmllczsgaSYjNDM7JiM0MzspIHsKIAkJZXJyID0gbmZubF9ob29rX2R1bXBfb25lKG5sc2tiLCBjdHgsIG5hdF9vcHNbaV0sCi0JCQkJCSBvcHMtJmd0O3ByaW9yaXR5LCBmYW1pbHksIHNlcSk7CiYjNDM7CQkJCQkgb3BzLSZndDtwcmlvcml0eSwgZmFtaWx5LAomIzQzOwkJCQkJIGNiLSZndDtubGgtJmd0O25sbXNnX3NlcSk7CiAJCWlmIChlcnIpCi0JCQlyZXR1cm4gZXJyOwomIzQzOwkJCWJyZWFrOwogCX0KLQlyZXR1cm4gMDsKJiM0MzsKJiM0MzsJaWYgKCFlcnIpIHsKJiM0MzsJCWN0eC0mZ3Q7bmF0diA9IDAKJiM0MzsJCWkgPSAwOwomIzQzOwl9CiYjNDM7CWNiLSZndDthcmdzWzFdID0gaTsKJiM0MzsJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsCkBAIC0zODksMTEgJiM0Mzs0MDcsMTIgQEAgc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsCiAJb3BzID0gbmZfaG9va19lbnRyaWVzX2dldF9ob29rX29wcyhlKTsKIAogCWZvciAoOyBpICZsdDsgZS0mZ3Q7bnVtX2hvb2tfZW50cmllczsgaSYjNDM7JiM0MzspIHsKLQkJaWYgKG9wc1tpXS0mZ3Q7aG9va19vcHNfdHlwZSA9PSBORl9IT09LX09QX05BVCkKLQkJCWVyciA9IG5mbmxfaG9va19kdW1wX25hdChubHNrYiwgY3R4LCBvcHNbaV0sIGZhbWlseSwKLQkJCQkJCSBjYi0mZ3Q7bmxoLSZndDtubG1zZ19zZXEpOwomIzQzOwkJc3RydWN0IG5mX2hvb2tfb3BzICpjdXIgPSBSRUFEX09OQ0Uob3BzW2ldKTsKJiM0MzsKJiM0MzsJCWlmIChjdXItJmd0O2hvb2tfb3BzX3R5cGUgPT0gTkZfSE9PS19PUF9OQVQpCiYjNDM7CQkJZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjYiwgY3VyLCBmYW1pbHkpOwogCQllbHNlCi0JCQllcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgb3BzW2ldLAomIzQzOwkJCWVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBjdXIsCiAJCQkJCQkgb3BzW2ldLSZndDtwcmlvcml0eSwgZmFtaWx5LAogCQkJCQkJIGNiLSZndDtubGgtJmd0O25sbXNnX3NlcSk7CiAJCWlmIChlcnIpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NzcKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAxNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgTmV0bGluayBIb29rIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgdG91Y2hpbmcgYG5ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY2AuIEl0IHNlZW1zIHRvIGJlIG1vZGlmeWluZyB0aGUgZHVtcCBmdW5jdGlvbnMsIGBuZm5sX2hvb2tfZHVtcF9uYXRgIGFuZCBgbmZubF9ob29rX2R1bXBgLiBUaGUgYWRkaXRpb24gb2YgYG5hdHZgIHRvIGBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YWAgc3Ryb25nbHkgc3VnZ2VzdHMgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlbmhhbmNlbWVudHMgdG8gaG93IE5ldGZpbHRlciBuZXRsaW5rIGhvb2tzIGFyZSBkdW1wZWQuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIE5ldGZpbHRlciBmcmFtZXdvcmsgaXRzZWxmLgoKTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBLY29uZmlnIG9wdGlvbnMgbmVlZGVkIHRvIGJ1aWxkIHRoaXMgY29kZS4gSXMgaXQgc2ltcGx5IGBDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PS2AgdGhhdCBjb250cm9scyB0aGUgY29tcGlsYXRpb24gb2YgYG5ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY2AsIG9yIGlzIGBDT05GSUdfTkVURklMVEVSX05FVExJTktgIGludm9sdmVkLCB0b28/IEkmIzM5O2xsIHF1aWNrbHkgY2hlY2sgdGhlIGBuZXQvbmV0ZmlsdGVyL01ha2VmaWxlYCB0byB2ZXJpZnkgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbiBlbmFibGVzIHRoZSBjb21waWxhdGlvbiBvZiBgbmZuZXRsaW5rX2hvb2sub2AuIFRoYXQmIzM5O3MgdGhlIG1vc3QgcmVsaWFibGUgd2F5IHRvIHRyYWNlIHRoZSBkZXBlbmRlbmN5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mbmV0bGlua19ob29rJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTMwPW9iai0kKENPTkZJR19ORVRGSUxURVJfTkVUTElOS19PU0YpICYjNDM7PSBuZm5ldGxpbmtfb3NmLm9cbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0spICYjNDM7PSBuZm5ldGxpbmtfaG9vay5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTMyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDEwOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMDgKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqSW52ZXN0aWdhdGluZyBOZXRmaWx0ZXIgTmV0bGluayBIb29rIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PS2AgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aC4gSG93ZXZlciwgSSB3YW50IHRvIGNvbmZpcm0gaWYgdGhlIGBORl9IT09LX09QX05BVGAgb3BlcmF0aW9uIG5lY2Vzc2l0YXRlcyBhbnkgKm90aGVyKiBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBhbG9uZ3NpZGUgaXQuIFRoYXQgbGV2ZWwgb2YgZGV0YWlsIGlzIGNyaXRpY2FsIGZvciBhIHJvYnVzdCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmZWF0dXJlJiMzOTtzIGRlcGVuZGVuY2llcy4KCk5leHQsIEkgbmVlZCB0byBmb2N1cyBvbiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb25zOiBgbmZubF9ob29rX2R1bXBfbmF0YCBhbmQgYG5mbmxfaG9va19kdW1wYC4gVGhlc2UgYXJlIGxpa2VseSB3aGVyZSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb25zIGlzIGltcGxlbWVudGVkLgoKRmluYWxseSwgSSYjMzk7bGwgbmVlZCB0byBicm9hZGVuIG15IHNjb3BlIGEgYml0LiBKdXN0IGJlY2F1c2Ugd2UgaGF2ZSB0aGlzLCBpdCBtaWdodCBiZSBjb25uZWN0ZWQgdG8gb3RoZXIgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byBzY2FuIGZvciBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsYXRlZCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyB0aGF0IG1pZ2h0IGltcGFjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIG5ldGxpbmsgaG9vayBvciB0aGUgTkFUIG9wZXJhdGlvbi4gQSBjb21wcmVoZW5zaXZlIGFwcHJvYWNoLCBhcyBhbHdheXMsIGlzIGtleSB0byBhdm9pZGluZyB1bmV4cGVjdGVkIGludGVyYWN0aW9ucyBvciBvbWlzc2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVURklMVEVSX05FVExJTktfSE9PSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWc9MzM9Y29uZmlnIE5FVEZJTFRFUl9CUEZfTElOS1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozNjpjb25maWcgTkVURklMVEVSX05FVExJTktfSE9PS1xubmV0L25ldGZpbHRlci9LY29uZmlnLTM3LVx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGJhc2UgaG9vayBkdW1wIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxMDoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjIwCgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIGhpdHRpbmcgYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIGNhbiB0ZWxsIHRoZXNlIGFyZSBOZXRsaW5rLXJlYWNoYWJsZSBmdW5jdGlvbnMsIHdoaWNoIGlzIGV4Y2VsbGVudCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gVGhlIGNoYW5nZXMgdGhlbXNlbHZlcyBhcHBlYXIgdG8gYmUgZnVuY3Rpb25hbCDigJMgdGhleSYjMzk7cmUgbm90IGp1c3QgcmVuYW1pbmcgdmFyaWFibGVzIG9yIHJlZmFjdG9yaW5nIHdpdGhvdXQgaW1wYWN0aW5nIGJlaGF2aW9yLiBUaGlzIG1lYW5zIHRoZXJlJiMzOTtzIGEgZ29vZCBjaGFuY2Ugb2YgZXhwb3NpbmcgaW50ZXJlc3RpbmcgbmV3IGNvZGUgcGF0aHMgb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aHJvdWdoIGZ1enppbmcuIEdpdmVuIHRoYXQgdGhlc2UgYXJlIGFscmVhZHkgTmV0bGluay1yZWFjaGFibGUgYW5kIHRoZSBwYXRjaCBtb2RpZmllcyB0aGVtLCBJIHRoaW5rIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZnV6emluZyB0aGVzZSBmdW5jdGlvbnMuIExldCYjMzk7cyBmbGFnIHRoaXMgd2l0aCBgV29ydGhGdXp6aW5nPXRydWVgLiBUbyBtYWtlIHN1cmUgdGhlIGZ1enplciB0YXJnZXRzIHRoZXNlIGZ1bmN0aW9ucyBzcGVjaWZpY2FsbHksIEkmIzM5O2xsIGFkZCBgbmZubF9ob29rX2R1bXBfbmF0YCBhbmQgYG5mbmxfaG9va19kdW1wYCB0byB0aGUgZm9jdXMgc3ltYm9scy4gSSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBgTkVURklMVEVSX05FVExJTktfSE9PS2AgYmVjYXVzZSB0aGlzIGlzIGVzc2VudGlhbCBmb3IgTmV0bGluayBmdW5jdGlvbmFsaXR5IGFuZCwgdGhlcmVmb3JlLCB0aGVzZSBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTA6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVEZJTFRFUl9ORVRMSU5LX0hPT0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZm5sX2hvb2tfZHVtcF9uYXQmIzM0OywKICAgICYjMzQ7bmZubF9ob29rX2R1bXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVEZJTFRFUl9ORVRMSU5LX0hPT0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZm5sX2hvb2tfZHVtcF9uYXQmIzM0OywKICAgICYjMzQ7bmZubF9ob29rX2R1bXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC4zODExNjI4MTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTcxOTcyODA0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRGSUxURVJfTkVUTElOS19IT09LXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZubF9ob29rX2R1bXBfbmF0XCIsXG4gICAgXCJuZm5sX2hvb2tfZHVtcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRmaWx0ZXIgbmV0bGluayBob29rIGR1bXAgbG9naWMsIHNwZWNpZmljYWxseSBob3cgTkFUIGhvb2tzIGFyZSBkdW1wZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBzb2NrZXRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC4zODExNjcyMDdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzU3ODM1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDU4NjgzM2RlNzQxYzU5Njk0Y2E3NTljYzg1ZmM2YTQ0NDdlYzNhNmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgOSAxMDoyOToyMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNcXG5pbmRleCA5NTAwNWU5YTYwNjY4OC4uZTAxZTU5ZWRkZDY0MTMgMTAwNjQ0XFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXFxuKysrIGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXFxuQEAgLTU1LDYgKzU1LDcgQEAgc3RhdGljIGludCBuZl9uZXRsaW5rX2R1bXBfc3RhcnRfcmN1KHN0cnVjdCBzb2NrICpubHNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSB7XFxuIFxcdGNoYXIgZGV2bmFtZVtJRk5BTVNJWl07XFxuIFxcdHVuc2lnbmVkIGxvbmcgaGVhZHY7XFxuK1xcdHVuc2lnbmVkIGxvbmcgbmF0djtcXG4gXFx0dTggaG9vaztcXG4gfTtcXG4gXFxuQEAgLTMzOCwyNyArMzM5LDQ0IEBAIG5mbmxfaG9va19lbnRyaWVzX2hlYWQodTggcGYsIHVuc2lnbmVkIGludCBob29rLCBzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKmRlXFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbmZubF9ob29rX2R1bXBfbmF0KHN0cnVjdCBza19idWZmICpubHNrYixcXG4tXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGEgKmN0eCxcXG4tXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsXFxuLVxcdFxcdFxcdCAgICAgIGludCBmYW1pbHksIHVuc2lnbmVkIGludCBzZXEpXFxuK1xcdFxcdFxcdCAgICAgIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYixcXG4rXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsIGludCBmYW1pbHkpXFxuIHtcXG4gXFx0c3RydWN0IG5mX25hdF9sb29rdXBfaG9va19wcml2ICpwcml2ID0gb3BzLVxcdTAwM2Vwcml2O1xcbiBcXHRzdHJ1Y3QgbmZfaG9va19lbnRyaWVzICplID0gcmN1X2RlcmVmZXJlbmNlKHByaXYtXFx1MDAzZWVudHJpZXMpO1xcbitcXHRzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4ID0gY2ItXFx1MDAzZWRhdGE7XFxuIFxcdHN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7XFxuLVxcdGludCBpLCBlcnI7XFxuK1xcdHVuc2lnbmVkIGludCBpID0gY2ItXFx1MDAzZWFyZ3NbMV07XFxuK1xcdGludCBlcnIgPSAwO1xcbiBcXG4gXFx0aWYgKCFlKVxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuK1xcdGlmICghY3R4LVxcdTAwM2VuYXR2KVxcbitcXHRcXHRjdHgtXFx1MDAzZW5hdHYgPSAodW5zaWduZWQgbG9uZyllO1xcbitcXG4rXFx0aWYgKGkgXFx1MDAzZT0gZS1cXHUwMDNlbnVtX2hvb2tfZW50cmllcyB8fFxcbitcXHQgICAgY3R4LVxcdTAwM2VuYXR2ICE9ICh1bnNpZ25lZCBsb25nKWUpIHtcXG4rXFx0XFx0Y2ItXFx1MDAzZXNlcSsrO1xcbitcXHRcXHRyZXR1cm4gLUVJTlRSO1xcbitcXHR9XFxuK1xcbiBcXHRuYXRfb3BzID0gbmZfaG9va19lbnRyaWVzX2dldF9ob29rX29wcyhlKTtcXG4gXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlLVxcdTAwM2VudW1faG9va19lbnRyaWVzOyBpKyspIHtcXG4rXFx0Zm9yICg7IGkgXFx1MDAzYyBlLVxcdTAwM2VudW1faG9va19lbnRyaWVzOyBpKyspIHtcXG4gXFx0XFx0ZXJyID0gbmZubF9ob29rX2R1bXBfb25lKG5sc2tiLCBjdHgsIG5hdF9vcHNbaV0sXFxuLVxcdFxcdFxcdFxcdFxcdCBvcHMtXFx1MDAzZXByaW9yaXR5LCBmYW1pbHksIHNlcSk7XFxuK1xcdFxcdFxcdFxcdFxcdCBvcHMtXFx1MDAzZXByaW9yaXR5LCBmYW1pbHksXFxuK1xcdFxcdFxcdFxcdFxcdCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEpO1xcbiBcXHRcXHRpZiAoZXJyKVxcbi1cXHRcXHRcXHRyZXR1cm4gZXJyO1xcbitcXHRcXHRcXHRicmVhaztcXG4gXFx0fVxcbi1cXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGlmICghZXJyKSB7XFxuK1xcdFxcdGN0eC1cXHUwMDNlbmF0diA9IDBcXG4rXFx0XFx0aSA9IDA7XFxuK1xcdH1cXG4rXFx0Y2ItXFx1MDAzZWFyZ3NbMV0gPSBpO1xcbitcXHRyZXR1cm4gZXJyO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IG5mbmxfaG9va19kdW1wKHN0cnVjdCBza19idWZmICpubHNrYixcXG5AQCAtMzg5LDExICs0MDcsMTIgQEAgc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsXFxuIFxcdG9wcyA9IG5mX2hvb2tfZW50cmllc19nZXRfaG9va19vcHMoZSk7XFxuIFxcbiBcXHRmb3IgKDsgaSBcXHUwMDNjIGUtXFx1MDAzZW51bV9ob29rX2VudHJpZXM7IGkrKykge1xcbi1cXHRcXHRpZiAob3BzW2ldLVxcdTAwM2Vob29rX29wc190eXBlID09IE5GX0hPT0tfT1BfTkFUKVxcbi1cXHRcXHRcXHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9uYXQobmxza2IsIGN0eCwgb3BzW2ldLCBmYW1pbHksXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEpO1xcbitcXHRcXHRzdHJ1Y3QgbmZfaG9va19vcHMgKmN1ciA9IFJFQURfT05DRShvcHNbaV0pO1xcbitcXG4rXFx0XFx0aWYgKGN1ci1cXHUwMDNlaG9va19vcHNfdHlwZSA9PSBORl9IT09LX09QX05BVClcXG4rXFx0XFx0XFx0ZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjYiwgY3VyLCBmYW1pbHkpO1xcbiBcXHRcXHRlbHNlXFxuLVxcdFxcdFxcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBvcHNbaV0sXFxuK1xcdFxcdFxcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBjdXIsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCBvcHNbaV0tXFx1MDAzZXByaW9yaXR5LCBmYW1pbHksXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCBjYi1cXHUwMDNlbmxoLVxcdTAwM2VubG1zZ19zZXEpO1xcbiBcXHRcXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC44NDkzMzM5MzFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxMjUxNTQ4MzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVEZJTFRFUl9ORVRMSU5LX0hPT0tcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZm5sX2hvb2tfZHVtcF9uYXRcIixcbiAgICBcIm5mbmxfaG9va19kdW1wXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGZpbHRlciBuZXRsaW5rIGhvb2sgZHVtcCBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyBOQVQgaG9va3MgYXJlIGR1bXBlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgc3Vic3lzdGVtIHRoYXQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHNvY2tldHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTg2ODMzZGU3NDFjNTk2OTRjYTc1OWNjODVmYzZhNDQ0N2VjM2E2YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDkgMTA6Mjk6MjMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmMgYi9uZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNcbmluZGV4IDk1MDA1ZTlhNjA2Njg4Li5lMDFlNTllZGRkNjQxMyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX2hvb2suY1xuKysrIGIvbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jXG5AQCAtNTUsNiArNTUsNyBAQCBzdGF0aWMgaW50IG5mX25ldGxpbmtfZHVtcF9zdGFydF9yY3Uoc3RydWN0IHNvY2sgKm5sc2ssIHN0cnVjdCBza19idWZmICpza2IsXG4gc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGEge1xuIFx0Y2hhciBkZXZuYW1lW0lGTkFNU0laXTtcbiBcdHVuc2lnbmVkIGxvbmcgaGVhZHY7XG4rXHR1bnNpZ25lZCBsb25nIG5hdHY7XG4gXHR1OCBob29rO1xuIH07XG4gXG5AQCAtMzM4LDI3ICszMzksNDQgQEAgbmZubF9ob29rX2VudHJpZXNfaGVhZCh1OCBwZiwgdW5zaWduZWQgaW50IGhvb2ssIHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqZGVcbiB9XG4gXG4gc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcF9uYXQoc3RydWN0IHNrX2J1ZmYgKm5sc2tiLFxuLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBuZm5sX2R1bXBfaG9va19kYXRhICpjdHgsXG4tXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsXG4tXHRcdFx0ICAgICAgaW50IGZhbWlseSwgdW5zaWduZWQgaW50IHNlcSlcbitcdFx0XHQgICAgICBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IsXG4rXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IG5mX2hvb2tfb3BzICpvcHMsIGludCBmYW1pbHkpXG4ge1xuIFx0c3RydWN0IG5mX25hdF9sb29rdXBfaG9va19wcml2ICpwcml2ID0gb3BzLVx1MDAzZXByaXY7XG4gXHRzdHJ1Y3QgbmZfaG9va19lbnRyaWVzICplID0gcmN1X2RlcmVmZXJlbmNlKHByaXYtXHUwMDNlZW50cmllcyk7XG4rXHRzdHJ1Y3QgbmZubF9kdW1wX2hvb2tfZGF0YSAqY3R4ID0gY2ItXHUwMDNlZGF0YTtcbiBcdHN0cnVjdCBuZl9ob29rX29wcyAqKm5hdF9vcHM7XG4tXHRpbnQgaSwgZXJyO1xuK1x0dW5zaWduZWQgaW50IGkgPSBjYi1cdTAwM2VhcmdzWzFdO1xuK1x0aW50IGVyciA9IDA7XG4gXG4gXHRpZiAoIWUpXG4gXHRcdHJldHVybiAwO1xuIFxuK1x0aWYgKCFjdHgtXHUwMDNlbmF0dilcbitcdFx0Y3R4LVx1MDAzZW5hdHYgPSAodW5zaWduZWQgbG9uZyllO1xuK1xuK1x0aWYgKGkgXHUwMDNlPSBlLVx1MDAzZW51bV9ob29rX2VudHJpZXMgfHxcbitcdCAgICBjdHgtXHUwMDNlbmF0diAhPSAodW5zaWduZWQgbG9uZyllKSB7XG4rXHRcdGNiLVx1MDAzZXNlcSsrO1xuK1x0XHRyZXR1cm4gLUVJTlRSO1xuK1x0fVxuK1xuIFx0bmF0X29wcyA9IG5mX2hvb2tfZW50cmllc19nZXRfaG9va19vcHMoZSk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBlLVx1MDAzZW51bV9ob29rX2VudHJpZXM7IGkrKykge1xuK1x0Zm9yICg7IGkgXHUwMDNjIGUtXHUwMDNlbnVtX2hvb2tfZW50cmllczsgaSsrKSB7XG4gXHRcdGVyciA9IG5mbmxfaG9va19kdW1wX29uZShubHNrYiwgY3R4LCBuYXRfb3BzW2ldLFxuLVx0XHRcdFx0XHQgb3BzLVx1MDAzZXByaW9yaXR5LCBmYW1pbHksIHNlcSk7XG4rXHRcdFx0XHRcdCBvcHMtXHUwMDNlcHJpb3JpdHksIGZhbWlseSxcbitcdFx0XHRcdFx0IGNiLVx1MDAzZW5saC1cdTAwM2VubG1zZ19zZXEpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdHJldHVybiBlcnI7XG4rXHRcdFx0YnJlYWs7XG4gXHR9XG4tXHRyZXR1cm4gMDtcbitcbitcdGlmICghZXJyKSB7XG4rXHRcdGN0eC1cdTAwM2VuYXR2ID0gMFxuK1x0XHRpID0gMDtcbitcdH1cbitcdGNiLVx1MDAzZWFyZ3NbMV0gPSBpO1xuK1x0cmV0dXJuIGVycjtcbiB9XG4gXG4gc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsXG5AQCAtMzg5LDExICs0MDcsMTIgQEAgc3RhdGljIGludCBuZm5sX2hvb2tfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IsXG4gXHRvcHMgPSBuZl9ob29rX2VudHJpZXNfZ2V0X2hvb2tfb3BzKGUpO1xuIFxuIFx0Zm9yICg7IGkgXHUwMDNjIGUtXHUwMDNlbnVtX2hvb2tfZW50cmllczsgaSsrKSB7XG4tXHRcdGlmIChvcHNbaV0tXHUwMDNlaG9va19vcHNfdHlwZSA9PSBORl9IT09LX09QX05BVClcbi1cdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9uYXQobmxza2IsIGN0eCwgb3BzW2ldLCBmYW1pbHksXG4tXHRcdFx0XHRcdFx0IGNiLVx1MDAzZW5saC1cdTAwM2VubG1zZ19zZXEpO1xuK1x0XHRzdHJ1Y3QgbmZfaG9va19vcHMgKmN1ciA9IFJFQURfT05DRShvcHNbaV0pO1xuK1xuK1x0XHRpZiAoY3VyLVx1MDAzZWhvb2tfb3BzX3R5cGUgPT0gTkZfSE9PS19PUF9OQVQpXG4rXHRcdFx0ZXJyID0gbmZubF9ob29rX2R1bXBfbmF0KG5sc2tiLCBjYiwgY3VyLCBmYW1pbHkpO1xuIFx0XHRlbHNlXG4tXHRcdFx0ZXJyID0gbmZubF9ob29rX2R1bXBfb25lKG5sc2tiLCBjdHgsIG9wc1tpXSxcbitcdFx0XHRlcnIgPSBuZm5sX2hvb2tfZHVtcF9vbmUobmxza2IsIGN0eCwgY3VyLFxuIFx0XHRcdFx0XHRcdCBvcHNbaV0tXHUwMDNlcHJpb3JpdHksIGZhbWlseSxcbiBcdFx0XHRcdFx0XHQgY2ItXHUwMDNlbmxoLVx1MDAzZW5sbXNnX3NlcSk7XG4gXHRcdGlmIChlcnIpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxMDoyOToyNC44NDkzMzUzODFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3Njc1ODQ4MTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTmV0ZmlsdGVyIE5ldGxpbmsgSG9vayBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIHRvdWNoaW5nIGBuZXQvbmV0ZmlsdGVyL25mbmV0bGlua19ob29rLmNgLiBJdCBzZWVtcyB0byBiZSBtb2RpZnlpbmcgdGhlIGR1bXAgZnVuY3Rpb25zLCBgbmZubF9ob29rX2R1bXBfbmF0YCBhbmQgYG5mbmxfaG9va19kdW1wYC4gVGhlIGFkZGl0aW9uIG9mIGBuYXR2YCB0byBgc3RydWN0IG5mbmxfZHVtcF9ob29rX2RhdGFgIHN0cm9uZ2x5IHN1Z2dlc3RzIHdlJ3JlIGRlYWxpbmcgd2l0aCBlbmhhbmNlbWVudHMgdG8gaG93IE5ldGZpbHRlciBuZXRsaW5rIGhvb2tzIGFyZSBkdW1wZWQuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIE5ldGZpbHRlciBmcmFtZXdvcmsgaXRzZWxmLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IEtjb25maWcgb3B0aW9ucyBuZWVkZWQgdG8gYnVpbGQgdGhpcyBjb2RlLiBJcyBpdCBzaW1wbHkgYENPTkZJR19ORVRGSUxURVJfTkVUTElOS19IT09LYCB0aGF0IGNvbnRyb2xzIHRoZSBjb21waWxhdGlvbiBvZiBgbmV0L25ldGZpbHRlci9uZm5ldGxpbmtfaG9vay5jYCwgb3IgaXMgYENPTkZJR19ORVRGSUxURVJfTkVUTElOS2AgaW52b2x2ZWQsIHRvbz8gSSdsbCBxdWlja2x5IGNoZWNrIHRoZSBgbmV0L25ldGZpbHRlci9NYWtlZmlsZWAgdG8gdmVyaWZ5IHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gZW5hYmxlcyB0aGUgY29tcGlsYXRpb24gb2YgYG5mbmV0bGlua19ob29rLm9gLiBUaGF0J3MgdGhlIG1vc3QgcmVsaWFibGUgd2F5IHRvIHRyYWNlIHRoZSBkZXBlbmRlbmN5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjc3LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTA6Mjk6MzIuNTI1MTg3MDM4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNTIyMTExOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZm5ldGxpbmtfaG9va1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9MzA9b2JqLSQoQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX09TRikgKz0gbmZuZXRsaW5rX29zZi5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PSykgKz0gbmZuZXRsaW5rX2hvb2sub1xcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtMzItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDEwOjI5OjMyLjg1MDQxODMyNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxODUxMjAwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipJbnZlc3RpZ2F0aW5nIE5ldGZpbHRlciBOZXRsaW5rIEhvb2sgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBteSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0tgIGlzIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJ3JlIGRlYWxpbmcgd2l0aC4gSG93ZXZlciwgSSB3YW50IHRvIGNvbmZpcm0gaWYgdGhlIGBORl9IT09LX09QX05BVGAgb3BlcmF0aW9uIG5lY2Vzc2l0YXRlcyBhbnkgKm90aGVyKiBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBhbG9uZ3NpZGUgaXQuIFRoYXQgbGV2ZWwgb2YgZGV0YWlsIGlzIGNyaXRpY2FsIGZvciBhIHJvYnVzdCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmZWF0dXJlJ3MgZGVwZW5kZW5jaWVzLlxuXG5OZXh0LCBJIG5lZWQgdG8gZm9jdXMgb24gdGhlIGFmZmVjdGVkIGZ1bmN0aW9uczogYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAuIFRoZXNlIGFyZSBsaWtlbHkgd2hlcmUgdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9ucyBpcyBpbXBsZW1lbnRlZC5cblxuRmluYWxseSwgSSdsbCBuZWVkIHRvIGJyb2FkZW4gbXkgc2NvcGUgYSBiaXQuIEp1c3QgYmVjYXVzZSB3ZSBoYXZlIHRoaXMsIGl0IG1pZ2h0IGJlIGNvbm5lY3RlZCB0byBvdGhlciBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIHNjYW4gZm9yIGFueSBvdGhlciBwb3RlbnRpYWxseSByZWxhdGVkIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHRoYXQgbWlnaHQgaW1wYWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgbmV0bGluayBob29rIG9yIHRoZSBOQVQgb3BlcmF0aW9uLiBBIGNvbXByZWhlbnNpdmUgYXBwcm9hY2gsIGFzIGFsd2F5cywgaXMga2V5IHRvIGF2b2lkaW5nIHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zIG9yIG9taXNzaW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIwOCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDEwOjI5OjM5LjAzNTU0MDI4OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDc2MzY4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRGSUxURVJfTkVUTElOS19IT09LXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9MzM9Y29uZmlnIE5FVEZJTFRFUl9CUEZfTElOS1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM1LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozNjpjb25maWcgTkVURklMVEVSX05FVExJTktfSE9PS1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGJhc2UgaG9vayBkdW1wIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDEwOjI5OjM5LjEwMDMxMDUzM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5MTUyMTkzMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGhpdHRpbmcgYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIGNhbiB0ZWxsIHRoZXNlIGFyZSBOZXRsaW5rLXJlYWNoYWJsZSBmdW5jdGlvbnMsIHdoaWNoIGlzIGV4Y2VsbGVudCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gVGhlIGNoYW5nZXMgdGhlbXNlbHZlcyBhcHBlYXIgdG8gYmUgZnVuY3Rpb25hbCDigJMgdGhleSdyZSBub3QganVzdCByZW5hbWluZyB2YXJpYWJsZXMgb3IgcmVmYWN0b3Jpbmcgd2l0aG91dCBpbXBhY3RpbmcgYmVoYXZpb3IuIFRoaXMgbWVhbnMgdGhlcmUncyBhIGdvb2QgY2hhbmNlIG9mIGV4cG9zaW5nIGludGVyZXN0aW5nIG5ldyBjb2RlIHBhdGhzIG9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMgdGhyb3VnaCBmdXp6aW5nLiBHaXZlbiB0aGF0IHRoZXNlIGFyZSBhbHJlYWR5IE5ldGxpbmstcmVhY2hhYmxlIGFuZCB0aGUgcGF0Y2ggbW9kaWZpZXMgdGhlbSwgSSB0aGluayBpdCdzIGRlZmluaXRlbHkgd29ydGggZnV6emluZyB0aGVzZSBmdW5jdGlvbnMuIExldCdzIGZsYWcgdGhpcyB3aXRoIGBXb3J0aEZ1enppbmc9dHJ1ZWAuIFRvIG1ha2Ugc3VyZSB0aGUgZnV6emVyIHRhcmdldHMgdGhlc2UgZnVuY3Rpb25zIHNwZWNpZmljYWxseSwgSSdsbCBhZGQgYG5mbmxfaG9va19kdW1wX25hdGAgYW5kIGBuZm5sX2hvb2tfZHVtcGAgdG8gdGhlIGZvY3VzIHN5bWJvbHMuIEkgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYE5FVEZJTFRFUl9ORVRMSU5LX0hPT0tgIGJlY2F1c2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIE5ldGxpbmsgZnVuY3Rpb25hbGl0eSBhbmQsIHRoZXJlZm9yZSwgdGhlc2UgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjIwLCJPdXRwdXRUb2tlbnMiOjk4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTA6Mjk6NDYuMDE1NTMxNTk1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTM0Njk2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVURklMVEVSX05FVExJTktfSE9PS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mbmxfaG9va19kdW1wX25hdFwiLFxuICAgIFwibmZubF9ob29rX2R1bXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0ZmlsdGVyIG5ldGxpbmsgaG9vayBkdW1wIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaG93IE5BVCBob29rcyBhcmUgZHVtcGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldGZpbHRlciBzdWJzeXN0ZW0gdGhhdCBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgc29ja2V0cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRGSUxURVJfTkVUTElOS19IT09LXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZubF9ob29rX2R1bXBfbmF0XCIsXG4gICAgXCJuZm5sX2hvb2tfZHVtcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRmaWx0ZXIgbmV0bGluayBob29rIGR1bXAgbG9naWMsIHNwZWNpZmljYWxseSBob3cgTkFUIGhvb2tzIGFyZSBkdW1wZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbSB0aGF0IGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayBzb2NrZXRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[1] Phase: Succeeded StartedAt: 2026-07-09 10:29:57 +0000 UTC FinishedAt: 2026-07-09 10:29:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-09 10:29:57 +0000 UTC FinishedAt: 2026-07-09 10:29:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2] Phase: Succeeded StartedAt: 2026-07-09 10:29:57 +0000 UTC FinishedAt: 2026-07-09 11:42:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN) Phase: Failed StartedAt: 2026-07-09 10:29:57 +0000 UTC FinishedAt: 2026-07-09 11:42:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-09 10:29:57 +0000 UTC FinishedAt: 2026-07-09 10:30:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-09 10:29:57 +0000 UTC FinishedAt: 2026-07-09 10:30:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-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-workflowz6jlc/series-workflowz6jlc-convert-artifact-3350620606/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-09 10:30:07 +0000 UTC FinishedAt: 2026-07-09 11:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-09 10:30:07 +0000 UTC FinishedAt: 2026-07-09 11:10:04 +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:*c398ed8f-27ed-4c2e-89b4-c5de299caf07,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-workflowz6jlc/series-workflowz6jlc-convert-artifact-3350620606/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": "9723ea7f-1c3c-4972-a65e-927f867e6fc1", "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-workflowz6jlc/series-workflowz6jlc-build-action-3912123044/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-09 10:30:07 +0000 UTC FinishedAt: 2026-07-09 11:09:38 +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:*c398ed8f-27ed-4c2e-89b4-c5de299caf07,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-workflowz6jlc/series-workflowz6jlc-convert-artifact-3350620606/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": "9723ea7f-1c3c-4972-a65e-927f867e6fc1", "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-workflowz6jlc/series-workflowz6jlc-build-action-3912123044/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-09 11:10:04 +0000 UTC FinishedAt: 2026-07-09 11:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-09 11:10:04 +0000 UTC FinishedAt: 2026-07-09 11:10:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-09 11:10:04 +0000 UTC FinishedAt: 2026-07-09 11:12:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-09 11:10:04 +0000 UTC FinishedAt: 2026-07-09 11:10:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-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-workflowz6jlc/series-workflowz6jlc-convert-artifact-1122607857/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-09 11:12:17 +0000 UTC FinishedAt: 2026-07-09 11:14:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-09 11:12:17 +0000 UTC FinishedAt: 2026-07-09 11:14:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9723ea7f-1c3c-4972-a65e-927f867e6fc1,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-workflowz6jlc/series-workflowz6jlc-build-action-3912123044/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-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-09 11:14:22 +0000 UTC FinishedAt: 2026-07-09 11:14:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-09 11:14:22 +0000 UTC FinishedAt: 2026-07-09 11:14:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-09 11:14:22 +0000 UTC FinishedAt: 2026-07-09 11:42:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-09 11:14:22 +0000 UTC FinishedAt: 2026-07-09 11:42: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:*c398ed8f-27ed-4c2e-89b4-c5de299caf07,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-workflowz6jlc/series-workflowz6jlc-convert-artifact-1122607857/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": "1c6c3eec-35f4-4096-93de-cecb79369f05", "success": false },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-workflowz6jlc/series-workflowz6jlc-build-action-2973712573/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-09 11:14:22 +0000 UTC FinishedAt: 2026-07-09 11:41:53 +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:*c398ed8f-27ed-4c2e-89b4-c5de299caf07,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-workflowz6jlc/series-workflowz6jlc-convert-artifact-1122607857/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": "1c6c3eec-35f4-4096-93de-cecb79369f05", "success": false },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-workflowz6jlc/series-workflowz6jlc-build-action-2973712573/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[7] Phase: Failed StartedAt: 2026-07-09 11:42:03 +0000 UTC FinishedAt: 2026-07-09 11:42:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6jlc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfnl_hook_dump_nat","nfnl_hook_dump"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETFILTER_NETLINK_HOOK"],"series_id":"f0c9d07d-a474-4d2d-8448-3f804d40273b","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Failed StartedAt: 2026-07-09 11:42:03 +0000 UTC FinishedAt: 2026-07-09 11:42:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}