Name: series-workflowmvrwc Phase: Succeeded StartedAt: 2026-06-30 10:21:24 +0000 UTC FinishedAt: 2026-06-30 14:41:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[0] Phase: Succeeded StartedAt: 2026-06-30 10:21:24 +0000 UTC FinishedAt: 2026-06-30 10:31:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 10:21:24 +0000 UTC FinishedAt: 2026-06-30 10:31:29 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "53435562a725962e4de0c29653223129ba11643a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "DEBUG_INFO_BTF" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "53435562a725962e4de0c29653223129ba11643a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "DEBUG_INFO_BTF" ], "series_id": "06aef4d4-0f6f-4585-8398-9a0ffe2d32a7" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "btf_struct_access", "btf_struct_ids_match", "map_kptr_match_type", "process_kf_arg_ptr_to_btf_id", "__process_kf_arg_ptr_to_graph_node" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEwOjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0RFQlVHX0lORk9fQlRGJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRmX3N0cnVjdF9hY2Nlc3MmIzM0OywKICAgICYjMzQ7YnRmX3N0cnVjdF9pZHNfbWF0Y2gmIzM0OywKICAgICYjMzQ7bWFwX2twdHJfbWF0Y2hfdHlwZSYjMzQ7LAogICAgJiMzNDtwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkJiMzNDssCiAgICAmIzM0O19fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IHdhbGtpbmcgZmxleGlibGUgYXJyYXlzIGZvciBhbGxvY2F0ZWQgdHlwZXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBob3cgQlBGIHByb2dyYW1zIGFyZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMDozMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI0NmZhNGVmNDI2ZWMwM2ZhMTJlMDI1MzgzOGU1MjM3MDFjMWRiOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAxMDozMDowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaFxuaW5kZXggNzcxOWY2NTI4NDQ1NjAuLjMxNGQ2MDZkYzJjNDE3IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9icGYuaFxuQEAgLTMxNDYsNyAmIzQzOzMxNDYsNyBAQCBpbnQgYnRmX3N0cnVjdF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXHRcdFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiBpZCwgaW50IG9mZixcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKm5lZWRfYnRmLCB1MzIgbmVlZF90eXBlX2lkLFxuLVx0XHRcdCAgYm9vbCBzdHJpY3QpO1xuJiM0MztcdFx0XHQgIGJvb2wgc3RyaWN0LCBib29sIHdhbGtfZmxleF9hcnJheXMpO1xuIFxuIGludCBidGZfZGlzdGlsbF9mdW5jX3Byb3RvKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXHRcdFx0ICAgc3RydWN0IGJ0ZiAqYnRmLFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXG5pbmRleCA2NDU3MmY4NWVkYzgzMi4uZGZmNWMwZDkxNjQxMjcgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2J0Zi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL2J0Zi5jXG5AQCAtNzEwOCw3ICYjNDM7NzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7XG4gc3RhdGljIGludCBidGZfc3RydWN0X3dhbGsoc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZywgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLFxuIFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdCwgaW50IG9mZiwgaW50IHNpemUsXG4gXHRcdFx0ICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLFxuLVx0XHRcdCAgIGNvbnN0IGNoYXIgKipmaWVsZF9uYW1lKVxuJiM0MztcdFx0XHQgICBjb25zdCBjaGFyICoqZmllbGRfbmFtZSwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKVxuIHtcbiBcdHUzMiBpLCBtb2ZmLCBtdHJ1ZV9lbmQsIG1zaXplID0gMCwgdG90YWxfbmVsZW1zID0gMDtcbiBcdGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqbXR5cGUsICplbGVtX3R5cGUgPSBOVUxMO1xuQEAgLTcxMzUsMTEgJiM0Mzs3MTM1LDE0IEBAIHN0YXRpYyBpbnQgYnRmX3N0cnVjdF93YWxrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZixcbiBcdFx0KmZsYWcgfD0gUFRSX1VOVFJVU1RFRDtcbiBcbiBcdGlmIChvZmYgJiM0Mzsgc2l6ZSBcdTAwM2UgdC1cdTAwM2VzaXplKSB7XG4mIzQzO1x0XHRzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtO1xuJiM0MztcbiYjNDM7XHRcdGlmICghd2Fsa19mbGV4X2FycmF5cylcbiYjNDM7XHRcdFx0Z290byBlcnJvcjtcbiYjNDM7XG4gXHRcdC8qIElmIHRoZSBsYXN0IGVsZW1lbnQgaXMgYSB2YXJpYWJsZSBzaXplIGFycmF5LCB3ZSBtYXlcbiBcdFx0ICogbmVlZCB0byByZWxheCB0aGUgcnVsZS5cbiBcdFx0ICovXG4tXHRcdHN0cnVjdCBidGZfYXJyYXkgKmFycmF5X2VsZW07XG4tXG4gXHRcdGlmICh2bGVuID09IDApXG4gXHRcdFx0Z290byBlcnJvcjtcbiBcbkBAIC03NDA0LDcgJiM0Mzs3NDA3LDggQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXG4gXHR0ID0gYnRmX3R5cGVfYnlfaWQoYnRmLCBpZCk7XG4gXHRkbyB7XG4tXHRcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCBcdTAwMjZpZCwgXHUwMDI2dG1wX2ZsYWcsIGZpZWxkX25hbWUpO1xuJiM0MztcdFx0ZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0LCBvZmYsIHNpemUsIFx1MDAyNmlkLCBcdTAwMjZ0bXBfZmxhZyxcbiYjNDM7XHRcdFx0XHQgICAgICBmaWVsZF9uYW1lLCAhdHlwZV9pc19hbGxvYyhyZWctXHUwMDNldHlwZSkpO1xuIFxuIFx0XHRzd2l0Y2ggKGVycikge1xuIFx0XHRjYXNlIFdBTEtfUFRSOlxuQEAgLTc0NjMsNyAmIzQzOzc0NjcsNyBAQCBib29sIGJ0Zl90eXBlc19hcmVfc2FtZShjb25zdCBzdHJ1Y3QgYnRmICpidGYxLCB1MzIgaWQxLFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuIFx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqbmVlZF9idGYsIHUzMiBuZWVkX3R5cGVfaWQsXG4tXHRcdFx0ICBib29sIHN0cmljdClcbiYjNDM7XHRcdFx0ICBib29sIHN0cmljdCwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKVxuIHtcbiBcdGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdHlwZTtcbiBcdGVudW0gYnBmX3R5cGVfZmxhZyBmbGFnID0gMDtcbkBAIC03NDgyLDcgJiM0Mzs3NDg2LDggQEAgYm9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuIFx0dHlwZSA9IGJ0Zl90eXBlX2J5X2lkKGJ0ZiwgaWQpO1xuIFx0aWYgKCF0eXBlKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4tXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHR5cGUsIG9mZiwgMSwgXHUwMDI2aWQsIFx1MDAyNmZsYWcsIE5VTEwpO1xuJiM0MztcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdHlwZSwgb2ZmLCAxLCBcdTAwMjZpZCwgXHUwMDI2ZmxhZywgTlVMTCxcbiYjNDM7XHRcdFx0ICAgICAgd2Fsa19mbGV4X2FycmF5cyk7XG4gXHRpZiAoZXJyICE9IFdBTEtfU1RSVUNUKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4gXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyNWFlYTQyNzFjZDA4OS4uNGQzYmI3MTU2NzBkMTcgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTQzNzksNyAmIzQzOzQzNzksOCBAQCBzdGF0aWMgaW50IG1hcF9rcHRyX21hdGNoX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbiBcdCAqL1xuIFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCByZWctXHUwMDNldmFyX29mZi52YWx1ZSxcbiBcdFx0XHRcdCAga3B0cl9maWVsZC1cdTAwM2VrcHRyLmJ0Ziwga3B0cl9maWVsZC1cdTAwM2VrcHRyLmJ0Zl9pZCxcbi1cdFx0XHRcdCAga3B0cl9maWVsZC1cdTAwM2V0eXBlICE9IEJQRl9LUFRSX1VOUkVGKSlcbiYjNDM7XHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNldHlwZSAhPSBCUEZfS1BUUl9VTlJFRixcbiYjNDM7XHRcdFx0XHQgICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpXG4gXHRcdGdvdG8gYmFkX3R5cGU7XG4gXHRyZXR1cm4gMDtcbiBiYWRfdHlwZTpcbkBAIC03OTcwLDcgJiM0Mzs3OTcxLDcgQEAgc3RhdGljIGludCBjaGVja19yZWdfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVcbiBcbiBcdFx0XHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFx1MDAyNmVudi1cdTAwM2Vsb2csIHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQsXG4gXHRcdFx0XHRcdFx0ICByZWctXHUwMDNldmFyX29mZi52YWx1ZSwgYnRmX3ZtbGludXgsICphcmdfYnRmX2lkLFxuLVx0XHRcdFx0XHRcdCAgc3RyaWN0X3R5cGVfbWF0Y2gpKSB7XG4mIzQzO1x0XHRcdFx0XHRcdCAgc3RyaWN0X3R5cGVfbWF0Y2gsICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpIHtcbiBcdFx0XHRcdHZlcmJvc2UoZW52LCBcJiMzNDslcyBpcyBvZiB0eXBlICVzIGJ1dCAlcyBpcyBleHBlY3RlZFxcblwmIzM0OyxcbiBcdFx0XHRcdFx0cmVnX2FyZ19uYW1lKGVudiwgYXJnbm8pLFxuIFx0XHRcdFx0XHRidGZfdHlwZV9uYW1lKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpLFxuQEAgLTExNDI5LDcgJiM0MzsxMTQzMCw4IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0cmVnX3JlZl90ID0gYnRmX3R5cGVfc2tpcF9tb2RpZmllcnMocmVnX2J0ZiwgcmVnX3JlZl9pZCwgXHUwMDI2cmVnX3JlZl9pZCk7XG4gXHRyZWdfcmVmX3RuYW1lID0gYnRmX25hbWVfYnlfb2Zmc2V0KHJlZ19idGYsIHJlZ19yZWZfdC1cdTAwM2VuYW1lX29mZik7XG4gXHRzdHJ1Y3Rfc2FtZSA9IGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFx1MDAyNmVudi1cdTAwM2Vsb2csIHJlZ19idGYsIHJlZ19yZWZfaWQsIHJlZy1cdTAwM2V2YXJfb2ZmLnZhbHVlLFxuLVx0XHRcdFx0XHQgICBtZXRhLVx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCk7XG4mIzQzO1x0XHRcdFx0XHQgICBtZXRhLVx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCxcbiYjNDM7XHRcdFx0XHRcdCAgICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSk7XG4gXHQvKiBJZiBrZnVuYyBpcyBhY2NlcHRpbmcgYSBwcm9qZWN0aW9uIHR5cGUgKGllLiBfX3NrX2J1ZmYpLCBpdCBjYW5ub3RcbiBcdCAqIGFjdHVhbGx5IHVzZSBpdCAtLSBpdCBtdXN0IGNhc3QgdG8gdGhlIHVuZGVybHlpbmcgdHlwZS4gU28gd2UgYWxsb3dcbiBcdCAqIGNhbGxlciB0byBwYXNzIGluIHRoZSB1bmRlcmx5aW5nIHR5cGUuXG5AQCAtMTE4NzYsNyAmIzQzOzExODc4LDggQEAgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0ZXQgPSBidGZfdHlwZV9ieV9pZChmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0ZiwgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQpO1xuIFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpO1xuIFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCAwLCBmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0Zixcbi1cdFx0XHRcdCAgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUpKSB7XG4mIzQzO1x0XHRcdFx0ICBmaWVsZC1cdTAwM2VncmFwaF9yb290LnZhbHVlX2J0Zl9pZCwgdHJ1ZSxcbiYjNDM7XHRcdFx0XHQgICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpIHtcbiBcdFx0dmVyYm9zZShlbnYsIFwmIzM0O29wZXJhdGlvbiBvbiAlcyBleHBlY3RzIGFyZyMxICVzIGF0IG9mZnNldD0lZCBcJiMzNDtcbiBcdFx0XHRcJiMzNDtpbiBzdHJ1Y3QgJXMsIGJ1dCBhcmcgaXMgYXQgb2Zmc2V0PSVkIGluIHN0cnVjdCAlc1xcblwmIzM0OyxcbiBcdFx0XHRidGZfZmllbGRfdHlwZV9uYW1lKGhlYWRfZmllbGRfdHlwZSksXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGlua2VkX2xpc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbmluZGV4IDhkZWZlYTAyNTNlZDlhLi5jM2QxMzNjNmEwMGQ0MCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbkBAIC02OCw2ICYjNDM7NjgsNyBAQCBzdGF0aWMgc3RydWN0IHtcbiBcdHsgXCYjMzQ7b2JqX3R5cGVfaWRfb29yXCYjMzQ7LCBcJiMzNDtsb2NhbCB0eXBlIElEIGFyZ3VtZW50IG11c3QgYmUgaW4gcmFuZ2UgWzAsIFUzMl9NQVhdXCYjMzQ7IH0sXG4gXHR7IFwmIzM0O29ial9uZXdfbm9fY29tcG9zaXRlXCYjMzQ7LCBcJiMzNDticGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XCYjMzQ7IH0sXG4gXHR7IFwmIzM0O29ial9uZXdfbm9fc3RydWN0XCYjMzQ7LCBcJiMzNDticGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XCYjMzQ7IH0sXG4mIzQzO1x0eyBcJiMzNDtvYmpfbmV3X2ZsZXhfYXJyYXlcJiMzNDssIFwmIzM0O2FjY2VzcyBiZXlvbmQgc3RydWN0IG9ial9uZXdfZmxleFwmIzM0OyB9LFxuIFx0eyBcJiMzNDtvYmpfZHJvcF9ub25femVyb19vZmZcJiMzNDssIFwmIzM0O1IxIG11c3QgaGF2ZSB6ZXJvIG9mZnNldCB3aGVuIHBhc3NlZCB0byByZWxlYXNlIGZ1bmNcJiMzNDsgfSxcbiBcdHsgXCYjMzQ7bmV3X251bGxfcmV0XCYjMzQ7LCBcJiMzNDtSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTtwdHJfb3JfbnVsbF8mIzM5O1wmIzM0OyB9LFxuIFx0eyBcJiMzNDtvYmpfbmV3X2FjcVwmIzM0OywgXCYjMzQ7VW5yZWxlYXNlZCByZWZlcmVuY2UgaWQ9XCYjMzQ7IH0sXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmNcbmluZGV4IGRkZDI2ZDFhMDgzZjcyLi4wMzFlNzdhMjg4ZWVjMCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmNcbkBAIC0xNjcsNiAmIzQzOzE2NywxNiBAQCBDSEVDS19PUChwdXNoX2JhY2spO1xuICN1bmRlZiBDSEVDS19PUFxuICN1bmRlZiBJTklUXG4gXG4mIzQzO3N0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSB7XG4mIzQzO1x0aW50IGxvO1xuJiM0MztcdGludCBoaTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO3N0cnVjdCBvYmpfbmV3X2ZsZXgge1xuJiM0MztcdGludCBoZHI7XG4mIzQzO1x0c3RydWN0IG9ial9uZXdfZmxleF9lbGVtIGNlbGxzW107XG4mIzQzO307XG4mIzQzO1xuIFNFQyhcJiMzNDs/a3Byb2JlL3h5elwmIzM0OylcbiBpbnQgbWFwX2NvbXBhdF9rcHJvYmUodm9pZCAqY3R4KVxuIHtcbkBAIC0yMzAsNiAmIzQzOzI0MCwxOSBAQCBpbnQgb2JqX25ld19ub19zdHJ1Y3Qodm9pZCAqY3R4KVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0MztTRUMoXCYjMzQ7P3RjXCYjMzQ7KVxuJiM0MztpbnQgb2JqX25ld19mbGV4X2FycmF5KHZvaWQgKmN0eClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBvYmpfbmV3X2ZsZXggKnA7XG4mIzQzO1xuJiM0MztcdHAgPSBicGZfb2JqX25ld19pbXBsKGJwZl9jb3JlX3R5cGVfaWRfbG9jYWwoc3RydWN0IG9ial9uZXdfZmxleCksIE5VTEwpO1xuJiM0MztcdGlmICghcClcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdHAtXHUwMDNlY2VsbHNbMF0uaGkgPSA0MjtcbiYjNDM7XHRicGZfb2JqX2Ryb3BfaW1wbChwLCBOVUxMKTtcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiBTRUMoXCYjMzQ7P3RjXCYjMzQ7KVxuIGludCBvYmpfZHJvcF9ub25femVyb19vZmYodm9pZCAqY3R4KVxuIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMDozMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtERUJVR19JTkZPX0JURiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfYWNjZXNzJiMzNDssCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfaWRzX21hdGNoJiMzNDssCiAgICAmIzM0O21hcF9rcHRyX21hdGNoX3R5cGUmIzM0OywKICAgICYjMzQ7cHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZCYjMzQ7LAogICAgJiMzNDtfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCB3YWxraW5nIGZsZXhpYmxlIGFycmF5cyBmb3IgYWxsb2NhdGVkIHR5cGVzIGR1cmluZyBCVEYgc3RydWN0IGFjY2VzcyBhbmQgdHlwZSBtYXRjaGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgaG93IEJQRiBwcm9ncmFtcyBhcmUgdmVyaWZpZWQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI0NmZhNGVmNDI2ZWMwM2ZhMTJlMDI1MzgzOGU1MjM3MDFjMWRiOTgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxMDozMDowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oCmluZGV4IDc3MTlmNjUyODQ0NTYwLi4zMTRkNjA2ZGMyYzQxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2JwZi5oCkBAIC0zMTQ2LDcgJiM0MzszMTQ2LDcgQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiBib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiAJCQkgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLAogCQkJICBjb25zdCBzdHJ1Y3QgYnRmICpuZWVkX2J0ZiwgdTMyIG5lZWRfdHlwZV9pZCwKLQkJCSAgYm9vbCBzdHJpY3QpOwomIzQzOwkJCSAgYm9vbCBzdHJpY3QsIGJvb2wgd2Fsa19mbGV4X2FycmF5cyk7CiAKIGludCBidGZfZGlzdGlsbF9mdW5jX3Byb3RvKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiAJCQkgICBzdHJ1Y3QgYnRmICpidGYsCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2J0Zi5jIGIva2VybmVsL2JwZi9idGYuYwppbmRleCA2NDU3MmY4NWVkYzgzMi4uZGZmNWMwZDkxNjQxMjcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvYnRmLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9idGYuYwpAQCAtNzEwOCw3ICYjNDM7NzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7CiBzdGF0aWMgaW50IGJ0Zl9zdHJ1Y3Rfd2FsayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLCBjb25zdCBzdHJ1Y3QgYnRmICpidGYsCiAJCQkgICBjb25zdCBzdHJ1Y3QgYnRmX3R5cGUgKnQsIGludCBvZmYsIGludCBzaXplLAogCQkJICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLAotCQkJICAgY29uc3QgY2hhciAqKmZpZWxkX25hbWUpCiYjNDM7CQkJICAgY29uc3QgY2hhciAqKmZpZWxkX25hbWUsIGJvb2wgd2Fsa19mbGV4X2FycmF5cykKIHsKIAl1MzIgaSwgbW9mZiwgbXRydWVfZW5kLCBtc2l6ZSA9IDAsIHRvdGFsX25lbGVtcyA9IDA7CiAJY29uc3Qgc3RydWN0IGJ0Zl90eXBlICptdHlwZSwgKmVsZW1fdHlwZSA9IE5VTEw7CkBAIC03MTM1LDExICYjNDM7NzEzNSwxNCBAQCBzdGF0aWMgaW50IGJ0Zl9zdHJ1Y3Rfd2FsayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLCBjb25zdCBzdHJ1Y3QgYnRmICpidGYsCiAJCSpmbGFnIHw9IFBUUl9VTlRSVVNURUQ7CiAKIAlpZiAob2ZmICYjNDM7IHNpemUgJmd0OyB0LSZndDtzaXplKSB7CiYjNDM7CQlzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtOwomIzQzOwomIzQzOwkJaWYgKCF3YWxrX2ZsZXhfYXJyYXlzKQomIzQzOwkJCWdvdG8gZXJyb3I7CiYjNDM7CiAJCS8qIElmIHRoZSBsYXN0IGVsZW1lbnQgaXMgYSB2YXJpYWJsZSBzaXplIGFycmF5LCB3ZSBtYXkKIAkJICogbmVlZCB0byByZWxheCB0aGUgcnVsZS4KIAkJICovCi0JCXN0cnVjdCBidGZfYXJyYXkgKmFycmF5X2VsZW07Ci0KIAkJaWYgKHZsZW4gPT0gMCkKIAkJCWdvdG8gZXJyb3I7CiAKQEAgLTc0MDQsNyAmIzQzOzc0MDcsOCBAQCBpbnQgYnRmX3N0cnVjdF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZywKIAogCXQgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTsKIAlkbyB7Ci0JCWVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCAmYW1wO2lkLCAmYW1wO3RtcF9mbGFnLCBmaWVsZF9uYW1lKTsKJiM0MzsJCWVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCAmYW1wO2lkLCAmYW1wO3RtcF9mbGFnLAomIzQzOwkJCQkgICAgICBmaWVsZF9uYW1lLCAhdHlwZV9pc19hbGxvYyhyZWctJmd0O3R5cGUpKTsKIAogCQlzd2l0Y2ggKGVycikgewogCQljYXNlIFdBTEtfUFRSOgpAQCAtNzQ2Myw3ICYjNDM7NzQ2Nyw3IEBAIGJvb2wgYnRmX3R5cGVzX2FyZV9zYW1lKGNvbnN0IHN0cnVjdCBidGYgKmJ0ZjEsIHUzMiBpZDEsCiBib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiAJCQkgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLAogCQkJICBjb25zdCBzdHJ1Y3QgYnRmICpuZWVkX2J0ZiwgdTMyIG5lZWRfdHlwZV9pZCwKLQkJCSAgYm9vbCBzdHJpY3QpCiYjNDM7CQkJICBib29sIHN0cmljdCwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKQogewogCWNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdHlwZTsKIAllbnVtIGJwZl90eXBlX2ZsYWcgZmxhZyA9IDA7CkBAIC03NDgyLDcgJiM0Mzs3NDg2LDggQEAgYm9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLAogCXR5cGUgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTsKIAlpZiAoIXR5cGUpCiAJCXJldHVybiBmYWxzZTsKLQllcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHR5cGUsIG9mZiwgMSwgJmFtcDtpZCwgJmFtcDtmbGFnLCBOVUxMKTsKJiM0MzsJZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0eXBlLCBvZmYsIDEsICZhbXA7aWQsICZhbXA7ZmxhZywgTlVMTCwKJiM0MzsJCQkgICAgICB3YWxrX2ZsZXhfYXJyYXlzKTsKIAlpZiAoZXJyICE9IFdBTEtfU1RSVUNUKQogCQlyZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCAyNWFlYTQyNzFjZDA4OS4uNGQzYmI3MTU2NzBkMTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTQzNzksNyAmIzQzOzQzNzksOCBAQCBzdGF0aWMgaW50IG1hcF9rcHRyX21hdGNoX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwKIAkgKi8KIAlpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKCZhbXA7ZW52LSZndDtsb2csIHJlZy0mZ3Q7YnRmLCByZWctJmd0O2J0Zl9pZCwgcmVnLSZndDt2YXJfb2ZmLnZhbHVlLAogCQkJCSAga3B0cl9maWVsZC0mZ3Q7a3B0ci5idGYsIGtwdHJfZmllbGQtJmd0O2twdHIuYnRmX2lkLAotCQkJCSAga3B0cl9maWVsZC0mZ3Q7dHlwZSAhPSBCUEZfS1BUUl9VTlJFRikpCiYjNDM7CQkJCSAga3B0cl9maWVsZC0mZ3Q7dHlwZSAhPSBCUEZfS1BUUl9VTlJFRiwKJiM0MzsJCQkJICAhdHlwZV9pc19hbGxvYyhyZWctJmd0O3R5cGUpKSkKIAkJZ290byBiYWRfdHlwZTsKIAlyZXR1cm4gMDsKIGJhZF90eXBlOgpAQCAtNzk3MCw3ICYjNDM7Nzk3MSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVnX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlCiAKIAkJCWlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goJmFtcDtlbnYtJmd0O2xvZywgcmVnLSZndDtidGYsIHJlZy0mZ3Q7YnRmX2lkLAogCQkJCQkJICByZWctJmd0O3Zhcl9vZmYudmFsdWUsIGJ0Zl92bWxpbnV4LCAqYXJnX2J0Zl9pZCwKLQkJCQkJCSAgc3RyaWN0X3R5cGVfbWF0Y2gpKSB7CiYjNDM7CQkJCQkJICBzdHJpY3RfdHlwZV9tYXRjaCwgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKSkpIHsKIAkJCQl2ZXJib3NlKGVudiwgJiMzNDslcyBpcyBvZiB0eXBlICVzIGJ1dCAlcyBpcyBleHBlY3RlZFxuJiMzNDssCiAJCQkJCXJlZ19hcmdfbmFtZShlbnYsIGFyZ25vKSwKIAkJCQkJYnRmX3R5cGVfbmFtZShyZWctJmd0O2J0ZiwgcmVnLSZndDtidGZfaWQpLApAQCAtMTE0MjksNyAmIzQzOzExNDMwLDggQEAgc3RhdGljIGludCBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsCiAJcmVnX3JlZl90ID0gYnRmX3R5cGVfc2tpcF9tb2RpZmllcnMocmVnX2J0ZiwgcmVnX3JlZl9pZCwgJmFtcDtyZWdfcmVmX2lkKTsKIAlyZWdfcmVmX3RuYW1lID0gYnRmX25hbWVfYnlfb2Zmc2V0KHJlZ19idGYsIHJlZ19yZWZfdC0mZ3Q7bmFtZV9vZmYpOwogCXN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goJmFtcDtlbnYtJmd0O2xvZywgcmVnX2J0ZiwgcmVnX3JlZl9pZCwgcmVnLSZndDt2YXJfb2ZmLnZhbHVlLAotCQkJCQkgICBtZXRhLSZndDtidGYsIHJlZl9pZCwgc3RyaWN0X3R5cGVfbWF0Y2gpOwomIzQzOwkJCQkJICAgbWV0YS0mZ3Q7YnRmLCByZWZfaWQsIHN0cmljdF90eXBlX21hdGNoLAomIzQzOwkJCQkJICAgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKSk7CiAJLyogSWYga2Z1bmMgaXMgYWNjZXB0aW5nIGEgcHJvamVjdGlvbiB0eXBlIChpZS4gX19za19idWZmKSwgaXQgY2Fubm90CiAJICogYWN0dWFsbHkgdXNlIGl0IC0tIGl0IG11c3QgY2FzdCB0byB0aGUgdW5kZXJseWluZyB0eXBlLiBTbyB3ZSBhbGxvdwogCSAqIGNhbGxlciB0byBwYXNzIGluIHRoZSB1bmRlcmx5aW5nIHR5cGUuCkBAIC0xMTg3Niw3ICYjNDM7MTE4NzgsOCBAQCBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsCiAJZXQgPSBidGZfdHlwZV9ieV9pZChmaWVsZC0mZ3Q7Z3JhcGhfcm9vdC5idGYsIGZpZWxkLSZndDtncmFwaF9yb290LnZhbHVlX2J0Zl9pZCk7CiAJdCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy0mZ3Q7YnRmLCByZWctJmd0O2J0Zl9pZCk7CiAJaWYgKCFidGZfc3RydWN0X2lkc19tYXRjaCgmYW1wO2Vudi0mZ3Q7bG9nLCByZWctJmd0O2J0ZiwgcmVnLSZndDtidGZfaWQsIDAsIGZpZWxkLSZndDtncmFwaF9yb290LmJ0ZiwKLQkJCQkgIGZpZWxkLSZndDtncmFwaF9yb290LnZhbHVlX2J0Zl9pZCwgdHJ1ZSkpIHsKJiM0MzsJCQkJICBmaWVsZC0mZ3Q7Z3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUsCiYjNDM7CQkJCSAgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKSkpIHsKIAkJdmVyYm9zZShlbnYsICYjMzQ7b3BlcmF0aW9uIG9uICVzIGV4cGVjdHMgYXJnIzEgJXMgYXQgb2Zmc2V0PSVkICYjMzQ7CiAJCQkmIzM0O2luIHN0cnVjdCAlcywgYnV0IGFyZyBpcyBhdCBvZmZzZXQ9JWQgaW4gc3RydWN0ICVzXG4mIzM0OywKIAkJCWJ0Zl9maWVsZF90eXBlX25hbWUoaGVhZF9maWVsZF90eXBlKSwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jCmluZGV4IDhkZWZlYTAyNTNlZDlhLi5jM2QxMzNjNmEwMGQ0MCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGlua2VkX2xpc3QuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jCkBAIC02OCw2ICYjNDM7NjgsNyBAQCBzdGF0aWMgc3RydWN0IHsKIAl7ICYjMzQ7b2JqX3R5cGVfaWRfb29yJiMzNDssICYjMzQ7bG9jYWwgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIGluIHJhbmdlIFswLCBVMzJfTUFYXSYjMzQ7IH0sCiAJeyAmIzM0O29ial9uZXdfbm9fY29tcG9zaXRlJiMzNDssICYjMzQ7YnBmX29ial9uZXcvYnBmX3BlcmNwdV9vYmpfbmV3IHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBvZiBhIHN0cnVjdCYjMzQ7IH0sCiAJeyAmIzM0O29ial9uZXdfbm9fc3RydWN0JiMzNDssICYjMzQ7YnBmX29ial9uZXcvYnBmX3BlcmNwdV9vYmpfbmV3IHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBvZiBhIHN0cnVjdCYjMzQ7IH0sCiYjNDM7CXsgJiMzNDtvYmpfbmV3X2ZsZXhfYXJyYXkmIzM0OywgJiMzNDthY2Nlc3MgYmV5b25kIHN0cnVjdCBvYmpfbmV3X2ZsZXgmIzM0OyB9LAogCXsgJiMzNDtvYmpfZHJvcF9ub25femVyb19vZmYmIzM0OywgJiMzNDtSMSBtdXN0IGhhdmUgemVybyBvZmZzZXQgd2hlbiBwYXNzZWQgdG8gcmVsZWFzZSBmdW5jJiMzNDsgfSwKIAl7ICYjMzQ7bmV3X251bGxfcmV0JiMzNDssICYjMzQ7UjAgaW52YWxpZCBtZW0gYWNjZXNzICYjMzk7cHRyX29yX251bGxfJiMzOTsmIzM0OyB9LAogCXsgJiMzNDtvYmpfbmV3X2FjcSYjMzQ7LCAmIzM0O1VucmVsZWFzZWQgcmVmZXJlbmNlIGlkPSYjMzQ7IH0sCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuYwppbmRleCBkZGQyNmQxYTA4M2Y3Mi4uMDMxZTc3YTI4OGVlYzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuYwpAQCAtMTY3LDYgJiM0MzsxNjcsMTYgQEAgQ0hFQ0tfT1AocHVzaF9iYWNrKTsKICN1bmRlZiBDSEVDS19PUAogI3VuZGVmIElOSVQKIAomIzQzO3N0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSB7CiYjNDM7CWludCBsbzsKJiM0MzsJaW50IGhpOwomIzQzO307CiYjNDM7CiYjNDM7c3RydWN0IG9ial9uZXdfZmxleCB7CiYjNDM7CWludCBoZHI7CiYjNDM7CXN0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSBjZWxsc1tdOwomIzQzO307CiYjNDM7CiBTRUMoJiMzNDs/a3Byb2JlL3h5eiYjMzQ7KQogaW50IG1hcF9jb21wYXRfa3Byb2JlKHZvaWQgKmN0eCkKIHsKQEAgLTIzMCw2ICYjNDM7MjQwLDE5IEBAIGludCBvYmpfbmV3X25vX3N0cnVjdCh2b2lkICpjdHgpCiAJcmV0dXJuIDA7CiB9CiAKJiM0MztTRUMoJiMzNDs/dGMmIzM0OykKJiM0MztpbnQgb2JqX25ld19mbGV4X2FycmF5KHZvaWQgKmN0eCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBvYmpfbmV3X2ZsZXggKnA7CiYjNDM7CiYjNDM7CXAgPSBicGZfb2JqX25ld19pbXBsKGJwZl9jb3JlX3R5cGVfaWRfbG9jYWwoc3RydWN0IG9ial9uZXdfZmxleCksIE5VTEwpOwomIzQzOwlpZiAoIXApCiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsJcC0mZ3Q7Y2VsbHNbMF0uaGkgPSA0MjsKJiM0MzsJYnBmX29ial9kcm9wX2ltcGwocCwgTlVMTCk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKIFNFQygmIzM0Oz90YyYjMzQ7KQogaW50IG9ial9kcm9wX25vbl96ZXJvX29mZih2b2lkICpjdHgpCiB7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEwOjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1ODEKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA2MzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBhIGNvcmUgQlBGIHZlcmlmaWVyIG1vZGlmaWNhdGlvbi4gSXQmIzM5O3MgYWRkaW5nIGEgYHdhbGtfZmxleF9hcnJheXNgIHBhcmFtZXRlciB0byBgYnRmX3N0cnVjdF93YWxrYCBhbmQgYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYC4gVGhlIHBhdGNoIHBhc3NlcyBgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKWAgdG8gdGhhdCBwYXJhbWV0ZXIgaW4gc2V2ZXJhbCBzcG90cyBpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYCBhbmQgYGtlcm5lbC9icGYvYnRmLmNgLiBFc3NlbnRpYWxseSwgd2UmIzM5O3JlIHNraXBwaW5nIGZsZXhpYmxlIGFycmF5IHdhbGtzIGZvciBhbGxvY2F0ZWQgdHlwZXMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllciwgYW5kIHRoYXQgbWVhbnMgZnV6emluZyBpcyBjcnVjaWFsLgoKRmlyc3QsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZnVuY3Rpb25zIHRvIGZvY3VzIG9uLiBJJiMzOTt2ZSBpZGVudGlmaWVkIHRoZSBtb2RpZmllZCBvbmVzOiBgYnRmX3N0cnVjdF93YWxrYCAod2hpY2ggaXMgc3RhdGljLCBzbyBhIGJpdCB0cmlja2llciksIGBidGZfc3RydWN0X2FjY2Vzc2AsIGBidGZfc3RydWN0X2lkc19tYXRjaGAsIGBtYXBfa3B0cl9tYXRjaF90eXBlYCAoYWxzbyBzdGF0aWMpLCBgY2hlY2tfcmVnX3R5cGVgIChhZ2Fpbiwgc3RhdGljKSwgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgIChzdGF0aWMpLCBhbmQgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgIChzdGF0aWMpLgoKTm93LCB0aGUgcmVhbCBxdWVzdGlvbiBpcywgaG93IHJlYWNoYWJsZSBhcmUgdGhlc2UgYW5kIHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb25zIGRvIEkgbmVlZD8gVGhhbmtmdWxseSwgQlBGIGl0c2VsZiBpcyBlbmFibGVkIGJ5IGBDT05GSUdfQlBGYCBhbmQgYENPTkZJR19CUEZfU1lTQ0FMTGAsIGFuZCBzaW5jZSB3ZSBhcmUgdGFsa2luZyBhYm91dCB0aGUgdmVyaWZpZXIsIGBCUEZfU1lTQ0FMTGAgc2hvdWxkIGJlIHRoZSBrZXkgb25lLgoKSSYjMzk7dmUgdGFrZW4gYSBsb29rIGF0IHRoZXNlIGZ1bmN0aW9uczoKLSBgYnRmX3N0cnVjdF9hY2Nlc3NgCi0gYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYAotIGBtYXBfa3B0cl9tYXRjaF90eXBlYAotIGBjaGVja19yZWdfdHlwZWAKLSBgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZGAKLSBgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZWAKCkFyZSB0aGVzZSBnb29kIGZ1enppbmcgdGFyZ2V0cz8gYGJ0Zl9zdHJ1Y3RfYWNjZXNzYCBpcyBpbnZvbHZlZCBpbiBtZW1vcnkgYWNjZXNzIGNoZWNrcyBpbiB0aGUgdmVyaWZpZXIuIGBidGZfc3RydWN0X2lkc19tYXRjaGAgaXMgdXNlZCBmb3IgdHlwZSBtYXRjaGluZyB3aXRoaW4gdGhlIHZlcmlmaWVyLiBgbWFwX2twdHJfbWF0Y2hfdHlwZWAgaGFuZGxlcyBrcHRyIGNvbXBhcmlzb25zLiBgY2hlY2tfcmVnX3R5cGVgIGlzIG9idmlvdXNseSBhYm91dCBjaGVja2luZyByZWdpc3RlciB0eXBlcy4gYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgIGlzIGludm9sdmVkIGluIGtmdW5jIGFyZ3VtZW50cy4gRmluYWxseSwgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgIGlzIHRpZWQgdG8gZ3JhcGggbm9kZXMsIGxpa2UgbGlua2VkIGxpc3RzIGFuZCByYnRyZWVzLgoKSSYjMzk7bSBsZWFuaW5nIHRvd2FyZHMgZnV6emluZyBgYnRmX3N0cnVjdF9hY2Nlc3NgLCBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgLCBgbWFwX2twdHJfbWF0Y2hfdHlwZWAsIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCwgYW5kIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYC4KCkxldCBtZSBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBiZSBzdXJlLCBhcmUgdGhlcmUgYW55IG90aGVyIGNydWNpYWwgY29uZmlncz8gQXNpZGUgZnJvbSBgQ09ORklHX0JQRl9TWVNDQUxMYCwgSSYjMzk7bGwgbmVlZCBgQ09ORklHX0RFQlVHX0lORk9fQlRGYCBzaW5jZSB0aGlzIGlzIHJlbGF0ZWQgdG8gQlRGLiBJIHNob3VsZCBkbyBhIHF1aWNrIGdyZXAganVzdCB0byBjb25maXJtIGV2ZXJ5dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTA6MzA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnRmX3N0cnVjdF9pZHNfbWF0Y2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9icGYuaD0zMTQyPWludCBidGZfc3RydWN0X2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzE0NS1cdFx0ICAgICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLCBjb25zdCBjaGFyICoqZmllbGRfbmFtZSk7XG5pbmNsdWRlL2xpbnV4L2JwZi5oOjMxNDY6Ym9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuaW5jbHVkZS9saW51eC9icGYuaC0zMTQ3LVx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgaWQsIGludCBvZmYsXG4tLVxua2VybmVsL2JwZi9idGYuYz03NDU3PWJvb2wgYnRmX3R5cGVzX2FyZV9zYW1lKGNvbnN0IHN0cnVjdCBidGYgKmJ0ZjEsIHUzMiBpZDEsXG4tLVxua2VybmVsL2JwZi9idGYuYy03NDY2LVxua2VybmVsL2JwZi9idGYuYzo3NDY3OmJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbmtlcm5lbC9icGYvYnRmLmMtNzQ2OC1cdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00MzE4PXN0YXRpYyBpbnQgbWFwX2twdHJfbWF0Y2hfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00Mzc0LVx0ICogSW4gdGhlIGtwdHJfcmVmIGNhc2UsIGNoZWNrX2Z1bmNfYXJnX3JlZ19vZmYgYWxyZWFkeSBlbnN1cmVzIHJlZy1cdTAwM2V2YXJfb2ZmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDM3NTpcdCAqIGlzIHplcm8uIFdlIG11c3QgYWxzbyBlbnN1cmUgdGhhdCBidGZfc3RydWN0X2lkc19tYXRjaCBkb2VzIG5vdCB3YWxrXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDM3Ni1cdCAqIHRoZSBzdHJ1Y3QgdG8gbWF0Y2ggdHlwZSBhZ2FpbnN0IGZpcnN0IG1lbWJlciBvZiBzdHJ1Y3QsIGkuZS4gcmVqZWN0XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQzNzktXHQgKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0MzgwOlx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCByZWctXHUwMDNldmFyX29mZi52YWx1ZSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MzgxLVx0XHRcdFx0ICBrcHRyX2ZpZWxkLVx1MDAzZWtwdHIuYnRmLCBrcHRyX2ZpZWxkLVx1MDAzZWtwdHIuYnRmX2lkLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03ODU3PXN0YXRpYyBpbnQgY2hlY2tfcmVnX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzk3MS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo3OTcyOlx0XHRcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXHUwMDI2ZW52LVx1MDAzZWxvZywgcmVnLVx1MDAzZWJ0ZiwgcmVnLVx1MDAzZWJ0Zl9pZCxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03OTczLVx0XHRcdFx0XHRcdCAgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsIGJ0Zl92bWxpbnV4LCAqYXJnX2J0Zl9pZCxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEzNzc9c3RhdGljIGludCBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTExNDIwLVx0ICogb25seSBkaWZmZXJlbmNlIGhlcmUgaXMgdGhhdCB3ZSYjMzk7cmUgc2ltcGx5IGFsbG93aW5nXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE0MjE6XHQgKiBidGZfc3RydWN0X2lkc19tYXRjaCgpIHRvIHdhbGsgdGhlIHN0cnVjdCBhdCB0aGUgMHRoIG9mZnNldCwgYW5kXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE0MjItXHQgKiByZXNvbHZlIHR5cGVzLlxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTQzMS1cdHJlZ19yZWZfdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQocmVnX2J0ZiwgcmVnX3JlZl90LVx1MDAzZW5hbWVfb2ZmKTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTQzMjpcdHN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goXHUwMDI2ZW52LVx1MDAzZWxvZywgcmVnX2J0ZiwgcmVnX3JlZl9pZCwgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE0MzMtXHRcdFx0XHRcdCAgIG1ldGEtXHUwMDNlYnRmLCByZWZfaWQsIHN0cmljdF90eXBlX21hdGNoLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTg0MT1fX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTExODc5LVx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjExODgwOlx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCAwLCBmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0Zixcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTg4MS1cdFx0XHRcdCAgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUsXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL21hcF9rcHRyLmMtMTU3LXtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9tYXBfa3B0ci5jOjE1ODpcdFwmIzM0O21hcF9rcHRyOiB1bnJlZjogcmVqZWN0IGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoID09IGZhbHNlXCYjMzQ7LFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL21hcF9rcHRyLmMtMTU5LVx0Lmluc25zID0ge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEwOjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcxNzMKCQkJCQkJCW91dHB1dDogMTY1CgkJCQkJCQl0aG91Z2h0czogMzM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJQRiBWZXJpZmllciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgZGlnZ2luZyBpbnRvIHRoZSBCUEYgdmVyaWZpZXImIzM5O3MgY29yZSBmdW5jdGlvbmFsaXR5LCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBob3cgaXQgaGFuZGxlcyBmbGV4aWJsZSBhcnJheXMgd2l0aGluIGFsbG9jYXRlZCBvYmplY3RzLiBTZWVtcyBsaWtlIGEgYnVnIGZpeCByZWxhdGVkIHRvIHRoYXQsIHdoaWNoIGlzIGdvb2QuIFRoZSBjb25maWdzIGl0IGRlcGVuZHMgb24gYXJlIHByZXR0eSBzdGFuZGFyZDogYEJQRl9TWVNDQUxMYCBhbmQgYERFQlVHX0lORk9fQlRGYC4KCkkgbmVlZCB0byBmb2N1cyBvbiB0aGVzZSBzeW1ib2xzOiBgYnRmX3N0cnVjdF9hY2Nlc3NgLCBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgLCBgbWFwX2twdHJfbWF0Y2hfdHlwZWAsIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCwgYW5kIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYC4gSSBuZWVkIHRvIGJlIHN1cmUgYWJvdXQgdGhlaXIgc2NvcGUgYmVmb3JlIHByb2NlZWRpbmcuCgpBbHJpZ2h0LCBhIHF1aWNrIGNoZWNr4oCmIGBtYXBfa3B0cl9tYXRjaF90eXBlYCBhbmQgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgIGFyZSBzdGF0aWMsIHdoaWNoIGlzIHdoYXQgSSBzdXNwZWN0ZWQuIGBidGZfc3RydWN0X2FjY2Vzc2AgYW5kIGBidGZfc3RydWN0X2lkc19tYXRjaGAgYXJlIGV4cG9ydGVkL2dsb2JhbCwgbWVhbmluZyB0aGV5IGFyZSBtb3JlIGxpa2VseSBlbnRyeSBwb2ludHMgdGhhdCBhcmUgbmVlZGVkIGZvciBleHRlcm5hbCBhY2Nlc3MuCgpTbywgSSBjYW4gdXNlIGFsbCB0aGVzZSBzeW1ib2xzIEkgbGlzdGVkLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHRhcmdldGVkIGF0IHByZXZlbnRpbmcgdGhlIHZlcmlmaWVyIGZyb20gaW5jb3JyZWN0bHkgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nIGZvciBhbGxvY2F0ZWQgdHlwZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4KCkxldCBtZSBkb3VibGUtY2hlY2sgYGNoZWNrX3JlZ190eXBlYCBxdWlja2x5LiBIbW0sIGl0IHNlZW1zIGEgbGl0dGxlIHRvbyBnZW5lcmFsIGZvciB0aGlzIHNwZWNpZmljIGlzc3VlLCBzbyBJJiMzOTtsbCBwcm9iYWJseSBsZWF2ZSB0aGF0IG91dCBvZiB0aGUgc2V0LiBUaGUgbWFpbiBwb2ludCBpcyB0aGF0IHRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGFkZHJlc3MgdGhpcyBCVEYtcmVsYXRlZCBpc3N1ZSwgYW5kIHNob3VsZCBiZSBmdXp6ZWQgYXMgYSByZXN1bHQuCgpSaWdodCwgdGltZSB0byBtb3ZlIG9uIGFuZCBzZXQgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMDozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OywKICAgICYjMzQ7REVCVUdfSU5GT19CVEYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfc3RydWN0X2FjY2VzcyYjMzQ7LAogICAgJiMzNDtidGZfc3RydWN0X2lkc19tYXRjaCYjMzQ7LAogICAgJiMzNDttYXBfa3B0cl9tYXRjaF90eXBlJiMzNDssCiAgICAmIzM0O3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWQmIzM0OywKICAgICYjMzQ7X19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZm9yIGFsbG9jYXRlZCB0eXBlcyBkdXJpbmcgQlRGIHN0cnVjdCBhY2Nlc3MgYW5kIHR5cGUgbWF0Y2hpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIGhvdyBCUEYgcHJvZ3JhbXMgYXJlIHZlcmlmaWVkIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtERUJVR19JTkZPX0JURiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfYWNjZXNzJiMzNDssCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfaWRzX21hdGNoJiMzNDssCiAgICAmIzM0O21hcF9rcHRyX21hdGNoX3R5cGUmIzM0OywKICAgICYjMzQ7cHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZCYjMzQ7LAogICAgJiMzNDtfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCB3YWxraW5nIGZsZXhpYmxlIGFycmF5cyBmb3IgYWxsb2NhdGVkIHR5cGVzIGR1cmluZyBCVEYgc3RydWN0IGFjY2VzcyBhbmQgdHlwZSBtYXRjaGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgaG93IEJQRiBwcm9ncmFtcyBhcmUgdmVyaWZpZWQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMDozMDowNi45Njg3OTgxMDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTU1OTA4NjU5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiREVCVUdfSU5GT19CVEZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidGZfc3RydWN0X2FjY2Vzc1wiLFxuICAgIFwiYnRmX3N0cnVjdF9pZHNfbWF0Y2hcIixcbiAgICBcIm1hcF9rcHRyX21hdGNoX3R5cGVcIixcbiAgICBcInByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRcIixcbiAgICBcIl9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZm9yIGFsbG9jYXRlZCB0eXBlcyBkdXJpbmcgQlRGIHN0cnVjdCBhY2Nlc3MgYW5kIHR5cGUgbWF0Y2hpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIGhvdyBCUEYgcHJvZ3JhbXMgYXJlIHZlcmlmaWVkIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMDozMDowNi45Njg4MDcxNTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4ODY3MDQyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI0NmZhNGVmNDI2ZWMwM2ZhMTJlMDI1MzgzOGU1MjM3MDFjMWRiOThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTA6MzA6MDUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmhcXG5pbmRleCA3NzE5ZjY1Mjg0NDU2MC4uMzE0ZDYwNmRjMmM0MTcgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvYnBmLmhcXG5AQCAtMzE0Niw3ICszMTQ2LDcgQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG4gXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiBpZCwgaW50IG9mZixcXG4gXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpuZWVkX2J0ZiwgdTMyIG5lZWRfdHlwZV9pZCxcXG4tXFx0XFx0XFx0ICBib29sIHN0cmljdCk7XFxuK1xcdFxcdFxcdCAgYm9vbCBzdHJpY3QsIGJvb2wgd2Fsa19mbGV4X2FycmF5cyk7XFxuIFxcbiBpbnQgYnRmX2Rpc3RpbGxfZnVuY19wcm90byhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxcbiBcXHRcXHRcXHQgICBzdHJ1Y3QgYnRmICpidGYsXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuaW5kZXggNjQ1NzJmODVlZGM4MzIuLmRmZjVjMGQ5MTY0MTI3IDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvYnRmLmNcXG4rKysgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuQEAgLTcxMDgsNyArNzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7XFxuIHN0YXRpYyBpbnQgYnRmX3N0cnVjdF93YWxrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZixcXG4gXFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGJ0Zl90eXBlICp0LCBpbnQgb2ZmLCBpbnQgc2l6ZSxcXG4gXFx0XFx0XFx0ICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLFxcbi1cXHRcXHRcXHQgICBjb25zdCBjaGFyICoqZmllbGRfbmFtZSlcXG4rXFx0XFx0XFx0ICAgY29uc3QgY2hhciAqKmZpZWxkX25hbWUsIGJvb2wgd2Fsa19mbGV4X2FycmF5cylcXG4ge1xcbiBcXHR1MzIgaSwgbW9mZiwgbXRydWVfZW5kLCBtc2l6ZSA9IDAsIHRvdGFsX25lbGVtcyA9IDA7XFxuIFxcdGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqbXR5cGUsICplbGVtX3R5cGUgPSBOVUxMO1xcbkBAIC03MTM1LDExICs3MTM1LDE0IEBAIHN0YXRpYyBpbnQgYnRmX3N0cnVjdF93YWxrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZixcXG4gXFx0XFx0KmZsYWcgfD0gUFRSX1VOVFJVU1RFRDtcXG4gXFxuIFxcdGlmIChvZmYgKyBzaXplIFxcdTAwM2UgdC1cXHUwMDNlc2l6ZSkge1xcbitcXHRcXHRzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtO1xcbitcXG4rXFx0XFx0aWYgKCF3YWxrX2ZsZXhfYXJyYXlzKVxcbitcXHRcXHRcXHRnb3RvIGVycm9yO1xcbitcXG4gXFx0XFx0LyogSWYgdGhlIGxhc3QgZWxlbWVudCBpcyBhIHZhcmlhYmxlIHNpemUgYXJyYXksIHdlIG1heVxcbiBcXHRcXHQgKiBuZWVkIHRvIHJlbGF4IHRoZSBydWxlLlxcbiBcXHRcXHQgKi9cXG4tXFx0XFx0c3RydWN0IGJ0Zl9hcnJheSAqYXJyYXlfZWxlbTtcXG4tXFxuIFxcdFxcdGlmICh2bGVuID09IDApXFxuIFxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuIFxcbkBAIC03NDA0LDcgKzc0MDcsOCBAQCBpbnQgYnRmX3N0cnVjdF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG4gXFxuIFxcdHQgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTtcXG4gXFx0ZG8ge1xcbi1cXHRcXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHQsIG9mZiwgc2l6ZSwgXFx1MDAyNmlkLCBcXHUwMDI2dG1wX2ZsYWcsIGZpZWxkX25hbWUpO1xcbitcXHRcXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHQsIG9mZiwgc2l6ZSwgXFx1MDAyNmlkLCBcXHUwMDI2dG1wX2ZsYWcsXFxuK1xcdFxcdFxcdFxcdCAgICAgIGZpZWxkX25hbWUsICF0eXBlX2lzX2FsbG9jKHJlZy1cXHUwMDNldHlwZSkpO1xcbiBcXG4gXFx0XFx0c3dpdGNoIChlcnIpIHtcXG4gXFx0XFx0Y2FzZSBXQUxLX1BUUjpcXG5AQCAtNzQ2Myw3ICs3NDY3LDcgQEAgYm9vbCBidGZfdHlwZXNfYXJlX3NhbWUoY29uc3Qgc3RydWN0IGJ0ZiAqYnRmMSwgdTMyIGlkMSxcXG4gYm9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxcbiBcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxcbiBcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBidGYgKm5lZWRfYnRmLCB1MzIgbmVlZF90eXBlX2lkLFxcbi1cXHRcXHRcXHQgIGJvb2wgc3RyaWN0KVxcbitcXHRcXHRcXHQgIGJvb2wgc3RyaWN0LCBib29sIHdhbGtfZmxleF9hcnJheXMpXFxuIHtcXG4gXFx0Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICp0eXBlO1xcbiBcXHRlbnVtIGJwZl90eXBlX2ZsYWcgZmxhZyA9IDA7XFxuQEAgLTc0ODIsNyArNzQ4Niw4IEBAIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG4gXFx0dHlwZSA9IGJ0Zl90eXBlX2J5X2lkKGJ0ZiwgaWQpO1xcbiBcXHRpZiAoIXR5cGUpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4tXFx0ZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0eXBlLCBvZmYsIDEsIFxcdTAwMjZpZCwgXFx1MDAyNmZsYWcsIE5VTEwpO1xcbitcXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHR5cGUsIG9mZiwgMSwgXFx1MDAyNmlkLCBcXHUwMDI2ZmxhZywgTlVMTCxcXG4rXFx0XFx0XFx0ICAgICAgd2Fsa19mbGV4X2FycmF5cyk7XFxuIFxcdGlmIChlcnIgIT0gV0FMS19TVFJVQ1QpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li40ZDNiYjcxNTY3MGQxNyAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5AQCAtNDM3OSw3ICs0Mzc5LDggQEAgc3RhdGljIGludCBtYXBfa3B0cl9tYXRjaF90eXBlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuIFxcdCAqL1xcbiBcXHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFxcdTAwMjZlbnYtXFx1MDAzZWxvZywgcmVnLVxcdTAwM2VidGYsIHJlZy1cXHUwMDNlYnRmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxuIFxcdFxcdFxcdFxcdCAga3B0cl9maWVsZC1cXHUwMDNla3B0ci5idGYsIGtwdHJfZmllbGQtXFx1MDAzZWtwdHIuYnRmX2lkLFxcbi1cXHRcXHRcXHRcXHQgIGtwdHJfZmllbGQtXFx1MDAzZXR5cGUgIT0gQlBGX0tQVFJfVU5SRUYpKVxcbitcXHRcXHRcXHRcXHQgIGtwdHJfZmllbGQtXFx1MDAzZXR5cGUgIT0gQlBGX0tQVFJfVU5SRUYsXFxuK1xcdFxcdFxcdFxcdCAgIXR5cGVfaXNfYWxsb2MocmVnLVxcdTAwM2V0eXBlKSkpXFxuIFxcdFxcdGdvdG8gYmFkX3R5cGU7XFxuIFxcdHJldHVybiAwO1xcbiBiYWRfdHlwZTpcXG5AQCAtNzk3MCw3ICs3OTcxLDcgQEAgc3RhdGljIGludCBjaGVja19yZWdfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVcXG4gXFxuIFxcdFxcdFxcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgcmVnLVxcdTAwM2V2YXJfb2ZmLnZhbHVlLCBidGZfdm1saW51eCwgKmFyZ19idGZfaWQsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RyaWN0X3R5cGVfbWF0Y2gpKSB7XFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgc3RyaWN0X3R5cGVfbWF0Y2gsICF0eXBlX2lzX2FsbG9jKHJlZy1cXHUwMDNldHlwZSkpKSB7XFxuIFxcdFxcdFxcdFxcdHZlcmJvc2UoZW52LCBcXFwiJXMgaXMgb2YgdHlwZSAlcyBidXQgJXMgaXMgZXhwZWN0ZWRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdHJlZ19hcmdfbmFtZShlbnYsIGFyZ25vKSxcXG4gXFx0XFx0XFx0XFx0XFx0YnRmX3R5cGVfbmFtZShyZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQpLFxcbkBAIC0xMTQyOSw3ICsxMTQzMCw4IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbiBcXHRyZWdfcmVmX3QgPSBidGZfdHlwZV9za2lwX21vZGlmaWVycyhyZWdfYnRmLCByZWdfcmVmX2lkLCBcXHUwMDI2cmVnX3JlZl9pZCk7XFxuIFxcdHJlZ19yZWZfdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQocmVnX2J0ZiwgcmVnX3JlZl90LVxcdTAwM2VuYW1lX29mZik7XFxuIFxcdHN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWdfYnRmLCByZWdfcmVmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxuLVxcdFxcdFxcdFxcdFxcdCAgIG1ldGEtXFx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCk7XFxuK1xcdFxcdFxcdFxcdFxcdCAgIG1ldGEtXFx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgIXR5cGVfaXNfYWxsb2MocmVnLVxcdTAwM2V0eXBlKSk7XFxuIFxcdC8qIElmIGtmdW5jIGlzIGFjY2VwdGluZyBhIHByb2plY3Rpb24gdHlwZSAoaWUuIF9fc2tfYnVmZiksIGl0IGNhbm5vdFxcbiBcXHQgKiBhY3R1YWxseSB1c2UgaXQgLS0gaXQgbXVzdCBjYXN0IHRvIHRoZSB1bmRlcmx5aW5nIHR5cGUuIFNvIHdlIGFsbG93XFxuIFxcdCAqIGNhbGxlciB0byBwYXNzIGluIHRoZSB1bmRlcmx5aW5nIHR5cGUuXFxuQEAgLTExODc2LDcgKzExODc4LDggQEAgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbiBcXHRldCA9IGJ0Zl90eXBlX2J5X2lkKGZpZWxkLVxcdTAwM2VncmFwaF9yb290LmJ0ZiwgZmllbGQtXFx1MDAzZWdyYXBoX3Jvb3QudmFsdWVfYnRmX2lkKTtcXG4gXFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cXHUwMDNlYnRmLCByZWctXFx1MDAzZWJ0Zl9pZCk7XFxuIFxcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQsIDAsIGZpZWxkLVxcdTAwM2VncmFwaF9yb290LmJ0ZixcXG4tXFx0XFx0XFx0XFx0ICBmaWVsZC1cXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUpKSB7XFxuK1xcdFxcdFxcdFxcdCAgZmllbGQtXFx1MDAzZWdyYXBoX3Jvb3QudmFsdWVfYnRmX2lkLCB0cnVlLFxcbitcXHRcXHRcXHRcXHQgICF0eXBlX2lzX2FsbG9jKHJlZy1cXHUwMDNldHlwZSkpKSB7XFxuIFxcdFxcdHZlcmJvc2UoZW52LCBcXFwib3BlcmF0aW9uIG9uICVzIGV4cGVjdHMgYXJnIzEgJXMgYXQgb2Zmc2V0PSVkIFxcXCJcXG4gXFx0XFx0XFx0XFxcImluIHN0cnVjdCAlcywgYnV0IGFyZyBpcyBhdCBvZmZzZXQ9JWQgaW4gc3RydWN0ICVzXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHRidGZfZmllbGRfdHlwZV9uYW1lKGhlYWRfZmllbGRfdHlwZSksXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jXFxuaW5kZXggOGRlZmVhMDI1M2VkOWEuLmMzZDEzM2M2YTAwZDQwIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jXFxuQEAgLTY4LDYgKzY4LDcgQEAgc3RhdGljIHN0cnVjdCB7XFxuIFxcdHsgXFxcIm9ial90eXBlX2lkX29vclxcXCIsIFxcXCJsb2NhbCB0eXBlIElEIGFyZ3VtZW50IG11c3QgYmUgaW4gcmFuZ2UgWzAsIFUzMl9NQVhdXFxcIiB9LFxcbiBcXHR7IFxcXCJvYmpfbmV3X25vX2NvbXBvc2l0ZVxcXCIsIFxcXCJicGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XFxcIiB9LFxcbiBcXHR7IFxcXCJvYmpfbmV3X25vX3N0cnVjdFxcXCIsIFxcXCJicGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XFxcIiB9LFxcbitcXHR7IFxcXCJvYmpfbmV3X2ZsZXhfYXJyYXlcXFwiLCBcXFwiYWNjZXNzIGJleW9uZCBzdHJ1Y3Qgb2JqX25ld19mbGV4XFxcIiB9LFxcbiBcXHR7IFxcXCJvYmpfZHJvcF9ub25femVyb19vZmZcXFwiLCBcXFwiUjEgbXVzdCBoYXZlIHplcm8gb2Zmc2V0IHdoZW4gcGFzc2VkIHRvIHJlbGVhc2UgZnVuY1xcXCIgfSxcXG4gXFx0eyBcXFwibmV3X251bGxfcmV0XFxcIiwgXFxcIlIwIGludmFsaWQgbWVtIGFjY2VzcyAncHRyX29yX251bGxfJ1xcXCIgfSxcXG4gXFx0eyBcXFwib2JqX25ld19hY3FcXFwiLCBcXFwiVW5yZWxlYXNlZCByZWZlcmVuY2UgaWQ9XFxcIiB9LFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuY1xcbmluZGV4IGRkZDI2ZDFhMDgzZjcyLi4wMzFlNzdhMjg4ZWVjMCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuY1xcbkBAIC0xNjcsNiArMTY3LDE2IEBAIENIRUNLX09QKHB1c2hfYmFjayk7XFxuICN1bmRlZiBDSEVDS19PUFxcbiAjdW5kZWYgSU5JVFxcbiBcXG4rc3RydWN0IG9ial9uZXdfZmxleF9lbGVtIHtcXG4rXFx0aW50IGxvO1xcbitcXHRpbnQgaGk7XFxuK307XFxuK1xcbitzdHJ1Y3Qgb2JqX25ld19mbGV4IHtcXG4rXFx0aW50IGhkcjtcXG4rXFx0c3RydWN0IG9ial9uZXdfZmxleF9lbGVtIGNlbGxzW107XFxuK307XFxuK1xcbiBTRUMoXFxcIj9rcHJvYmUveHl6XFxcIilcXG4gaW50IG1hcF9jb21wYXRfa3Byb2JlKHZvaWQgKmN0eClcXG4ge1xcbkBAIC0yMzAsNiArMjQwLDE5IEBAIGludCBvYmpfbmV3X25vX3N0cnVjdCh2b2lkICpjdHgpXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbitTRUMoXFxcIj90Y1xcXCIpXFxuK2ludCBvYmpfbmV3X2ZsZXhfYXJyYXkodm9pZCAqY3R4KVxcbit7XFxuK1xcdHN0cnVjdCBvYmpfbmV3X2ZsZXggKnA7XFxuK1xcbitcXHRwID0gYnBmX29ial9uZXdfaW1wbChicGZfY29yZV90eXBlX2lkX2xvY2FsKHN0cnVjdCBvYmpfbmV3X2ZsZXgpLCBOVUxMKTtcXG4rXFx0aWYgKCFwKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFx0cC1cXHUwMDNlY2VsbHNbMF0uaGkgPSA0MjtcXG4rXFx0YnBmX29ial9kcm9wX2ltcGwocCwgTlVMTCk7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbiBTRUMoXFxcIj90Y1xcXCIpXFxuIGludCBvYmpfZHJvcF9ub25femVyb19vZmYodm9pZCAqY3R4KVxcbiB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEwOjMwOjA3LjQ1ODI0Mzg0NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTkwNjk2MjgxODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIixcbiAgICBcIkRFQlVHX0lORk9fQlRGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3N0cnVjdF9hY2Nlc3NcIixcbiAgICBcImJ0Zl9zdHJ1Y3RfaWRzX21hdGNoXCIsXG4gICAgXCJtYXBfa3B0cl9tYXRjaF90eXBlXCIsXG4gICAgXCJwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkXCIsXG4gICAgXCJfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IHdhbGtpbmcgZmxleGlibGUgYXJyYXlzIGZvciBhbGxvY2F0ZWQgdHlwZXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBob3cgQlBGIHByb2dyYW1zIGFyZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNDZmYTRlZjQyNmVjMDNmYTEyZTAyNTM4MzhlNTIzNzAxYzFkYjk4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTA6MzA6MDUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaFxuaW5kZXggNzcxOWY2NTI4NDQ1NjAuLjMxNGQ2MDZkYzJjNDE3IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaFxuKysrIGIvaW5jbHVkZS9saW51eC9icGYuaFxuQEAgLTMxNDYsNyArMzE0Niw3IEBAIGludCBidGZfc3RydWN0X2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuIFx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqbmVlZF9idGYsIHUzMiBuZWVkX3R5cGVfaWQsXG4tXHRcdFx0ICBib29sIHN0cmljdCk7XG4rXHRcdFx0ICBib29sIHN0cmljdCwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKTtcbiBcbiBpbnQgYnRmX2Rpc3RpbGxfZnVuY19wcm90byhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuIFx0XHRcdCAgIHN0cnVjdCBidGYgKmJ0ZixcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2J0Zi5jIGIva2VybmVsL2JwZi9idGYuY1xuaW5kZXggNjQ1NzJmODVlZGM4MzIuLmRmZjVjMGQ5MTY0MTI3IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9idGYuY1xuKysrIGIva2VybmVsL2JwZi9idGYuY1xuQEAgLTcxMDgsNyArNzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7XG4gc3RhdGljIGludCBidGZfc3RydWN0X3dhbGsoc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZywgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLFxuIFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdCwgaW50IG9mZiwgaW50IHNpemUsXG4gXHRcdFx0ICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLFxuLVx0XHRcdCAgIGNvbnN0IGNoYXIgKipmaWVsZF9uYW1lKVxuK1x0XHRcdCAgIGNvbnN0IGNoYXIgKipmaWVsZF9uYW1lLCBib29sIHdhbGtfZmxleF9hcnJheXMpXG4ge1xuIFx0dTMyIGksIG1vZmYsIG10cnVlX2VuZCwgbXNpemUgPSAwLCB0b3RhbF9uZWxlbXMgPSAwO1xuIFx0Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICptdHlwZSwgKmVsZW1fdHlwZSA9IE5VTEw7XG5AQCAtNzEzNSwxMSArNzEzNSwxNCBAQCBzdGF0aWMgaW50IGJ0Zl9zdHJ1Y3Rfd2FsayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLCBjb25zdCBzdHJ1Y3QgYnRmICpidGYsXG4gXHRcdCpmbGFnIHw9IFBUUl9VTlRSVVNURUQ7XG4gXG4gXHRpZiAob2ZmICsgc2l6ZSBcdTAwM2UgdC1cdTAwM2VzaXplKSB7XG4rXHRcdHN0cnVjdCBidGZfYXJyYXkgKmFycmF5X2VsZW07XG4rXG4rXHRcdGlmICghd2Fsa19mbGV4X2FycmF5cylcbitcdFx0XHRnb3RvIGVycm9yO1xuK1xuIFx0XHQvKiBJZiB0aGUgbGFzdCBlbGVtZW50IGlzIGEgdmFyaWFibGUgc2l6ZSBhcnJheSwgd2UgbWF5XG4gXHRcdCAqIG5lZWQgdG8gcmVsYXggdGhlIHJ1bGUuXG4gXHRcdCAqL1xuLVx0XHRzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtO1xuLVxuIFx0XHRpZiAodmxlbiA9PSAwKVxuIFx0XHRcdGdvdG8gZXJyb3I7XG4gXG5AQCAtNzQwNCw3ICs3NDA3LDggQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXG4gXHR0ID0gYnRmX3R5cGVfYnlfaWQoYnRmLCBpZCk7XG4gXHRkbyB7XG4tXHRcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCBcdTAwMjZpZCwgXHUwMDI2dG1wX2ZsYWcsIGZpZWxkX25hbWUpO1xuK1x0XHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHQsIG9mZiwgc2l6ZSwgXHUwMDI2aWQsIFx1MDAyNnRtcF9mbGFnLFxuK1x0XHRcdFx0ICAgICAgZmllbGRfbmFtZSwgIXR5cGVfaXNfYWxsb2MocmVnLVx1MDAzZXR5cGUpKTtcbiBcbiBcdFx0c3dpdGNoIChlcnIpIHtcbiBcdFx0Y2FzZSBXQUxLX1BUUjpcbkBAIC03NDYzLDcgKzc0NjcsNyBAQCBib29sIGJ0Zl90eXBlc19hcmVfc2FtZShjb25zdCBzdHJ1Y3QgYnRmICpidGYxLCB1MzIgaWQxLFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuIFx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqbmVlZF9idGYsIHUzMiBuZWVkX3R5cGVfaWQsXG4tXHRcdFx0ICBib29sIHN0cmljdClcbitcdFx0XHQgIGJvb2wgc3RyaWN0LCBib29sIHdhbGtfZmxleF9hcnJheXMpXG4ge1xuIFx0Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICp0eXBlO1xuIFx0ZW51bSBicGZfdHlwZV9mbGFnIGZsYWcgPSAwO1xuQEAgLTc0ODIsNyArNzQ4Niw4IEBAIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdHR5cGUgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTtcbiBcdGlmICghdHlwZSlcbiBcdFx0cmV0dXJuIGZhbHNlO1xuLVx0ZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0eXBlLCBvZmYsIDEsIFx1MDAyNmlkLCBcdTAwMjZmbGFnLCBOVUxMKTtcbitcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdHlwZSwgb2ZmLCAxLCBcdTAwMjZpZCwgXHUwMDI2ZmxhZywgTlVMTCxcbitcdFx0XHQgICAgICB3YWxrX2ZsZXhfYXJyYXlzKTtcbiBcdGlmIChlcnIgIT0gV0FMS19TVFJVQ1QpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li40ZDNiYjcxNTY3MGQxNyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtNDM3OSw3ICs0Mzc5LDggQEAgc3RhdGljIGludCBtYXBfa3B0cl9tYXRjaF90eXBlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4gXHQgKi9cbiBcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXHUwMDI2ZW52LVx1MDAzZWxvZywgcmVnLVx1MDAzZWJ0ZiwgcmVnLVx1MDAzZWJ0Zl9pZCwgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsXG4gXHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNla3B0ci5idGYsIGtwdHJfZmllbGQtXHUwMDNla3B0ci5idGZfaWQsXG4tXHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNldHlwZSAhPSBCUEZfS1BUUl9VTlJFRikpXG4rXHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNldHlwZSAhPSBCUEZfS1BUUl9VTlJFRixcbitcdFx0XHRcdCAgIXR5cGVfaXNfYWxsb2MocmVnLVx1MDAzZXR5cGUpKSlcbiBcdFx0Z290byBiYWRfdHlwZTtcbiBcdHJldHVybiAwO1xuIGJhZF90eXBlOlxuQEAgLTc5NzAsNyArNzk3MSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVnX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlXG4gXG4gXHRcdFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLFxuIFx0XHRcdFx0XHRcdCAgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsIGJ0Zl92bWxpbnV4LCAqYXJnX2J0Zl9pZCxcbi1cdFx0XHRcdFx0XHQgIHN0cmljdF90eXBlX21hdGNoKSkge1xuK1x0XHRcdFx0XHRcdCAgc3RyaWN0X3R5cGVfbWF0Y2gsICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpIHtcbiBcdFx0XHRcdHZlcmJvc2UoZW52LCBcIiVzIGlzIG9mIHR5cGUgJXMgYnV0ICVzIGlzIGV4cGVjdGVkXFxuXCIsXG4gXHRcdFx0XHRcdHJlZ19hcmdfbmFtZShlbnYsIGFyZ25vKSxcbiBcdFx0XHRcdFx0YnRmX3R5cGVfbmFtZShyZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkKSxcbkBAIC0xMTQyOSw3ICsxMTQzMCw4IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0cmVnX3JlZl90ID0gYnRmX3R5cGVfc2tpcF9tb2RpZmllcnMocmVnX2J0ZiwgcmVnX3JlZl9pZCwgXHUwMDI2cmVnX3JlZl9pZCk7XG4gXHRyZWdfcmVmX3RuYW1lID0gYnRmX25hbWVfYnlfb2Zmc2V0KHJlZ19idGYsIHJlZ19yZWZfdC1cdTAwM2VuYW1lX29mZik7XG4gXHRzdHJ1Y3Rfc2FtZSA9IGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFx1MDAyNmVudi1cdTAwM2Vsb2csIHJlZ19idGYsIHJlZ19yZWZfaWQsIHJlZy1cdTAwM2V2YXJfb2ZmLnZhbHVlLFxuLVx0XHRcdFx0XHQgICBtZXRhLVx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCk7XG4rXHRcdFx0XHRcdCAgIG1ldGEtXHUwMDNlYnRmLCByZWZfaWQsIHN0cmljdF90eXBlX21hdGNoLFxuK1x0XHRcdFx0XHQgICAhdHlwZV9pc19hbGxvYyhyZWctXHUwMDNldHlwZSkpO1xuIFx0LyogSWYga2Z1bmMgaXMgYWNjZXB0aW5nIGEgcHJvamVjdGlvbiB0eXBlIChpZS4gX19za19idWZmKSwgaXQgY2Fubm90XG4gXHQgKiBhY3R1YWxseSB1c2UgaXQgLS0gaXQgbXVzdCBjYXN0IHRvIHRoZSB1bmRlcmx5aW5nIHR5cGUuIFNvIHdlIGFsbG93XG4gXHQgKiBjYWxsZXIgdG8gcGFzcyBpbiB0aGUgdW5kZXJseWluZyB0eXBlLlxuQEAgLTExODc2LDcgKzExODc4LDggQEAgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0ZXQgPSBidGZfdHlwZV9ieV9pZChmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0ZiwgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQpO1xuIFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpO1xuIFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCAwLCBmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0Zixcbi1cdFx0XHRcdCAgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUpKSB7XG4rXHRcdFx0XHQgIGZpZWxkLVx1MDAzZWdyYXBoX3Jvb3QudmFsdWVfYnRmX2lkLCB0cnVlLFxuK1x0XHRcdFx0ICAhdHlwZV9pc19hbGxvYyhyZWctXHUwMDNldHlwZSkpKSB7XG4gXHRcdHZlcmJvc2UoZW52LCBcIm9wZXJhdGlvbiBvbiAlcyBleHBlY3RzIGFyZyMxICVzIGF0IG9mZnNldD0lZCBcIlxuIFx0XHRcdFwiaW4gc3RydWN0ICVzLCBidXQgYXJnIGlzIGF0IG9mZnNldD0lZCBpbiBzdHJ1Y3QgJXNcXG5cIixcbiBcdFx0XHRidGZfZmllbGRfdHlwZV9uYW1lKGhlYWRfZmllbGRfdHlwZSksXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGlua2VkX2xpc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbmluZGV4IDhkZWZlYTAyNTNlZDlhLi5jM2QxMzNjNmEwMGQ0MCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbkBAIC02OCw2ICs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qge1xuIFx0eyBcIm9ial90eXBlX2lkX29vclwiLCBcImxvY2FsIHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBpbiByYW5nZSBbMCwgVTMyX01BWF1cIiB9LFxuIFx0eyBcIm9ial9uZXdfbm9fY29tcG9zaXRlXCIsIFwiYnBmX29ial9uZXcvYnBmX3BlcmNwdV9vYmpfbmV3IHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBvZiBhIHN0cnVjdFwiIH0sXG4gXHR7IFwib2JqX25ld19ub19zdHJ1Y3RcIiwgXCJicGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XCIgfSxcbitcdHsgXCJvYmpfbmV3X2ZsZXhfYXJyYXlcIiwgXCJhY2Nlc3MgYmV5b25kIHN0cnVjdCBvYmpfbmV3X2ZsZXhcIiB9LFxuIFx0eyBcIm9ial9kcm9wX25vbl96ZXJvX29mZlwiLCBcIlIxIG11c3QgaGF2ZSB6ZXJvIG9mZnNldCB3aGVuIHBhc3NlZCB0byByZWxlYXNlIGZ1bmNcIiB9LFxuIFx0eyBcIm5ld19udWxsX3JldFwiLCBcIlIwIGludmFsaWQgbWVtIGFjY2VzcyAncHRyX29yX251bGxfJ1wiIH0sXG4gXHR7IFwib2JqX25ld19hY3FcIiwgXCJVbnJlbGVhc2VkIHJlZmVyZW5jZSBpZD1cIiB9LFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXG5pbmRleCBkZGQyNmQxYTA4M2Y3Mi4uMDMxZTc3YTI4OGVlYzAgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXG5AQCAtMTY3LDYgKzE2NywxNiBAQCBDSEVDS19PUChwdXNoX2JhY2spO1xuICN1bmRlZiBDSEVDS19PUFxuICN1bmRlZiBJTklUXG4gXG4rc3RydWN0IG9ial9uZXdfZmxleF9lbGVtIHtcbitcdGludCBsbztcbitcdGludCBoaTtcbit9O1xuK1xuK3N0cnVjdCBvYmpfbmV3X2ZsZXgge1xuK1x0aW50IGhkcjtcbitcdHN0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSBjZWxsc1tdO1xuK307XG4rXG4gU0VDKFwiP2twcm9iZS94eXpcIilcbiBpbnQgbWFwX2NvbXBhdF9rcHJvYmUodm9pZCAqY3R4KVxuIHtcbkBAIC0yMzAsNiArMjQwLDE5IEBAIGludCBvYmpfbmV3X25vX3N0cnVjdCh2b2lkICpjdHgpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4rU0VDKFwiP3RjXCIpXG4raW50IG9ial9uZXdfZmxleF9hcnJheSh2b2lkICpjdHgpXG4re1xuK1x0c3RydWN0IG9ial9uZXdfZmxleCAqcDtcbitcbitcdHAgPSBicGZfb2JqX25ld19pbXBsKGJwZl9jb3JlX3R5cGVfaWRfbG9jYWwoc3RydWN0IG9ial9uZXdfZmxleCksIE5VTEwpO1xuK1x0aWYgKCFwKVxuK1x0XHRyZXR1cm4gMDtcbitcdHAtXHUwMDNlY2VsbHNbMF0uaGkgPSA0MjtcbitcdGJwZl9vYmpfZHJvcF9pbXBsKHAsIE5VTEwpO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuIFNFQyhcIj90Y1wiKVxuIGludCBvYmpfZHJvcF9ub25femVyb19vZmYodm9pZCAqY3R4KVxuIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEwOjMwOjA3LjQ1ODI0NTY3NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk0MDM2Nzg4MzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgYSBjb3JlIEJQRiB2ZXJpZmllciBtb2RpZmljYXRpb24uIEl0J3MgYWRkaW5nIGEgYHdhbGtfZmxleF9hcnJheXNgIHBhcmFtZXRlciB0byBgYnRmX3N0cnVjdF93YWxrYCBhbmQgYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYC4gVGhlIHBhdGNoIHBhc3NlcyBgIXR5cGVfaXNfYWxsb2MocmVnLVx1MDAzZXR5cGUpYCB0byB0aGF0IHBhcmFtZXRlciBpbiBzZXZlcmFsIHNwb3RzIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBga2VybmVsL2JwZi9idGYuY2AuIEVzc2VudGlhbGx5LCB3ZSdyZSBza2lwcGluZyBmbGV4aWJsZSBhcnJheSB3YWxrcyBmb3IgYWxsb2NhdGVkIHR5cGVzLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmVyaWZpZXIsIGFuZCB0aGF0IG1lYW5zIGZ1enppbmcgaXMgY3J1Y2lhbC5cblxuRmlyc3QsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZnVuY3Rpb25zIHRvIGZvY3VzIG9uLiBJJ3ZlIGlkZW50aWZpZWQgdGhlIG1vZGlmaWVkIG9uZXM6IGBidGZfc3RydWN0X3dhbGtgICh3aGljaCBpcyBzdGF0aWMsIHNvIGEgYml0IHRyaWNraWVyKSwgYGJ0Zl9zdHJ1Y3RfYWNjZXNzYCwgYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYCwgYG1hcF9rcHRyX21hdGNoX3R5cGVgIChhbHNvIHN0YXRpYyksIGBjaGVja19yZWdfdHlwZWAgKGFnYWluLCBzdGF0aWMpLCBgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZGAgKHN0YXRpYyksIGFuZCBgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZWAgKHN0YXRpYykuXG5cbk5vdywgdGhlIHJlYWwgcXVlc3Rpb24gaXMsIGhvdyByZWFjaGFibGUgYXJlIHRoZXNlIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBkbyBJIG5lZWQ/IFRoYW5rZnVsbHksIEJQRiBpdHNlbGYgaXMgZW5hYmxlZCBieSBgQ09ORklHX0JQRmAgYW5kIGBDT05GSUdfQlBGX1NZU0NBTExgLCBhbmQgc2luY2Ugd2UgYXJlIHRhbGtpbmcgYWJvdXQgdGhlIHZlcmlmaWVyLCBgQlBGX1NZU0NBTExgIHNob3VsZCBiZSB0aGUga2V5IG9uZS5cblxuSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhlc2UgZnVuY3Rpb25zOlxuLSBgYnRmX3N0cnVjdF9hY2Nlc3NgXG4tIGBidGZfc3RydWN0X2lkc19tYXRjaGBcbi0gYG1hcF9rcHRyX21hdGNoX3R5cGVgXG4tIGBjaGVja19yZWdfdHlwZWBcbi0gYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgXG4tIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYFxuXG5BcmUgdGhlc2UgZ29vZCBmdXp6aW5nIHRhcmdldHM/IGBidGZfc3RydWN0X2FjY2Vzc2AgaXMgaW52b2x2ZWQgaW4gbWVtb3J5IGFjY2VzcyBjaGVja3MgaW4gdGhlIHZlcmlmaWVyLiBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgIGlzIHVzZWQgZm9yIHR5cGUgbWF0Y2hpbmcgd2l0aGluIHRoZSB2ZXJpZmllci4gYG1hcF9rcHRyX21hdGNoX3R5cGVgIGhhbmRsZXMga3B0ciBjb21wYXJpc29ucy4gYGNoZWNrX3JlZ190eXBlYCBpcyBvYnZpb3VzbHkgYWJvdXQgY2hlY2tpbmcgcmVnaXN0ZXIgdHlwZXMuIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCBpcyBpbnZvbHZlZCBpbiBrZnVuYyBhcmd1bWVudHMuIEZpbmFsbHksIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYCBpcyB0aWVkIHRvIGdyYXBoIG5vZGVzLCBsaWtlIGxpbmtlZCBsaXN0cyBhbmQgcmJ0cmVlcy5cblxuSSdtIGxlYW5pbmcgdG93YXJkcyBmdXp6aW5nIGBidGZfc3RydWN0X2FjY2Vzc2AsIGBidGZfc3RydWN0X2lkc19tYXRjaGAsIGBtYXBfa3B0cl9tYXRjaF90eXBlYCwgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgLCBhbmQgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgLlxuXG5MZXQgbWUgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gYmUgc3VyZSwgYXJlIHRoZXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZ3M/IEFzaWRlIGZyb20gYENPTkZJR19CUEZfU1lTQ0FMTGAsIEknbGwgbmVlZCBgQ09ORklHX0RFQlVHX0lORk9fQlRGYCBzaW5jZSB0aGlzIGlzIHJlbGF0ZWQgdG8gQlRGLiBJIHNob3VsZCBkbyBhIHF1aWNrIGdyZXAganVzdCB0byBjb25maXJtIGV2ZXJ5dGhpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1ODEsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MzAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMDozMDoxNi44NjE5MjgxODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMyMTc5NTI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJidGZfc3RydWN0X2lkc19tYXRjaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2JwZi5oPTMxNDI9aW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTMxNDUtXFx0XFx0ICAgICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLCBjb25zdCBjaGFyICoqZmllbGRfbmFtZSk7XFxuaW5jbHVkZS9saW51eC9icGYuaDozMTQ2OmJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTMxNDctXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiBpZCwgaW50IG9mZixcXG4tLVxcbmtlcm5lbC9icGYvYnRmLmM9NzQ1Nz1ib29sIGJ0Zl90eXBlc19hcmVfc2FtZShjb25zdCBzdHJ1Y3QgYnRmICpidGYxLCB1MzIgaWQxLFxcbi0tXFxua2VybmVsL2JwZi9idGYuYy03NDY2LVxcbmtlcm5lbC9icGYvYnRmLmM6NzQ2Nzpib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXFxua2VybmVsL2JwZi9idGYuYy03NDY4LVxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgaWQsIGludCBvZmYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDMxOD1zdGF0aWMgaW50IG1hcF9rcHRyX21hdGNoX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00Mzc0LVxcdCAqIEluIHRoZSBrcHRyX3JlZiBjYXNlLCBjaGVja19mdW5jX2FyZ19yZWdfb2ZmIGFscmVhZHkgZW5zdXJlcyByZWctXFx1MDAzZXZhcl9vZmZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDM3NTpcXHQgKiBpcyB6ZXJvLiBXZSBtdXN0IGFsc28gZW5zdXJlIHRoYXQgYnRmX3N0cnVjdF9pZHNfbWF0Y2ggZG9lcyBub3Qgd2Fsa1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00Mzc2LVxcdCAqIHRoZSBzdHJ1Y3QgdG8gbWF0Y2ggdHlwZSBhZ2FpbnN0IGZpcnN0IG1lbWJlciBvZiBzdHJ1Y3QsIGkuZS4gcmVqZWN0XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDM3OS1cXHQgKi9cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDM4MDpcXHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFxcdTAwMjZlbnYtXFx1MDAzZWxvZywgcmVnLVxcdTAwM2VidGYsIHJlZy1cXHUwMDNlYnRmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQzODEtXFx0XFx0XFx0XFx0ICBrcHRyX2ZpZWxkLVxcdTAwM2VrcHRyLmJ0Ziwga3B0cl9maWVsZC1cXHUwMDNla3B0ci5idGZfaWQsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9Nzg1Nz1zdGF0aWMgaW50IGNoZWNrX3JlZ190eXBlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzk3MS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6Nzk3MjpcXHRcXHRcXHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFxcdTAwMjZlbnYtXFx1MDAzZWxvZywgcmVnLVxcdTAwM2VidGYsIHJlZy1cXHUwMDNlYnRmX2lkLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03OTczLVxcdFxcdFxcdFxcdFxcdFxcdCAgcmVnLVxcdTAwM2V2YXJfb2ZmLnZhbHVlLCBidGZfdm1saW51eCwgKmFyZ19idGZfaWQsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEzNzc9c3RhdGljIGludCBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE0MjAtXFx0ICogb25seSBkaWZmZXJlbmNlIGhlcmUgaXMgdGhhdCB3ZSdyZSBzaW1wbHkgYWxsb3dpbmdcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE0MjE6XFx0ICogYnRmX3N0cnVjdF9pZHNfbWF0Y2goKSB0byB3YWxrIHRoZSBzdHJ1Y3QgYXQgdGhlIDB0aCBvZmZzZXQsIGFuZFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTQyMi1cXHQgKiByZXNvbHZlIHR5cGVzLlxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExNDMxLVxcdHJlZ19yZWZfdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQocmVnX2J0ZiwgcmVnX3JlZl90LVxcdTAwM2VuYW1lX29mZik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExNDMyOlxcdHN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWdfYnRmLCByZWdfcmVmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExNDMzLVxcdFxcdFxcdFxcdFxcdCAgIG1ldGEtXFx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTg0MT1fX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE4NzktXFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cXHUwMDNlYnRmLCByZWctXFx1MDAzZWJ0Zl9pZCk7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExODgwOlxcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQsIDAsIGZpZWxkLVxcdTAwM2VncmFwaF9yb290LmJ0ZixcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE4ODEtXFx0XFx0XFx0XFx0ICBmaWVsZC1cXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUsXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvbWFwX2twdHIuYy0xNTcte1xcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9tYXBfa3B0ci5jOjE1ODpcXHRcXFwibWFwX2twdHI6IHVucmVmOiByZWplY3QgYnRmX3N0cnVjdF9pZHNfbWF0Y2ggPT0gZmFsc2VcXFwiLFxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9tYXBfa3B0ci5jLTE1OS1cXHQuaW5zbnMgPSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEwOjMwOjE5LjE4MzczMDY0MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyNTYxMjE0NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQlBGIFZlcmlmaWVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IGRpZ2dpbmcgaW50byB0aGUgQlBGIHZlcmlmaWVyJ3MgY29yZSBmdW5jdGlvbmFsaXR5LCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBob3cgaXQgaGFuZGxlcyBmbGV4aWJsZSBhcnJheXMgd2l0aGluIGFsbG9jYXRlZCBvYmplY3RzLiBTZWVtcyBsaWtlIGEgYnVnIGZpeCByZWxhdGVkIHRvIHRoYXQsIHdoaWNoIGlzIGdvb2QuIFRoZSBjb25maWdzIGl0IGRlcGVuZHMgb24gYXJlIHByZXR0eSBzdGFuZGFyZDogYEJQRl9TWVNDQUxMYCBhbmQgYERFQlVHX0lORk9fQlRGYC5cblxuSSBuZWVkIHRvIGZvY3VzIG9uIHRoZXNlIHN5bWJvbHM6IGBidGZfc3RydWN0X2FjY2Vzc2AsIGBidGZfc3RydWN0X2lkc19tYXRjaGAsIGBtYXBfa3B0cl9tYXRjaF90eXBlYCwgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgLCBhbmQgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgLiBJIG5lZWQgdG8gYmUgc3VyZSBhYm91dCB0aGVpciBzY29wZSBiZWZvcmUgcHJvY2VlZGluZy5cblxuQWxyaWdodCwgYSBxdWljayBjaGVja+KApiBgbWFwX2twdHJfbWF0Y2hfdHlwZWAgYW5kIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCBhcmUgc3RhdGljLCB3aGljaCBpcyB3aGF0IEkgc3VzcGVjdGVkLiBgYnRmX3N0cnVjdF9hY2Nlc3NgIGFuZCBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgIGFyZSBleHBvcnRlZC9nbG9iYWwsIG1lYW5pbmcgdGhleSBhcmUgbW9yZSBsaWtlbHkgZW50cnkgcG9pbnRzIHRoYXQgYXJlIG5lZWRlZCBmb3IgZXh0ZXJuYWwgYWNjZXNzLlxuXG5TbywgSSBjYW4gdXNlIGFsbCB0aGVzZSBzeW1ib2xzIEkgbGlzdGVkLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHRhcmdldGVkIGF0IHByZXZlbnRpbmcgdGhlIHZlcmlmaWVyIGZyb20gaW5jb3JyZWN0bHkgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nIGZvciBhbGxvY2F0ZWQgdHlwZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS5cblxuTGV0IG1lIGRvdWJsZS1jaGVjayBgY2hlY2tfcmVnX3R5cGVgIHF1aWNrbHkuIEhtbSwgaXQgc2VlbXMgYSBsaXR0bGUgdG9vIGdlbmVyYWwgZm9yIHRoaXMgc3BlY2lmaWMgaXNzdWUsIHNvIEknbGwgcHJvYmFibHkgbGVhdmUgdGhhdCBvdXQgb2YgdGhlIHNldC4gVGhlIG1haW4gcG9pbnQgaXMgdGhhdCB0aGlzIHBhdGNoIGNoYW5nZXMgdGhlIEJQRiB2ZXJpZmllciB0byBhZGRyZXNzIHRoaXMgQlRGLXJlbGF0ZWQgaXNzdWUsIGFuZCBzaG91bGQgYmUgZnV6emVkIGFzIGEgcmVzdWx0LlxuXG5SaWdodCwgdGltZSB0byBtb3ZlIG9uIGFuZCBzZXQgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzE3MywiT3V0cHV0VG9rZW5zIjoxNjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTA6MzA6MjYuNDM5ODU1MTI0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODAwODEwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIixcbiAgICBcIkRFQlVHX0lORk9fQlRGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3N0cnVjdF9hY2Nlc3NcIixcbiAgICBcImJ0Zl9zdHJ1Y3RfaWRzX21hdGNoXCIsXG4gICAgXCJtYXBfa3B0cl9tYXRjaF90eXBlXCIsXG4gICAgXCJwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkXCIsXG4gICAgXCJfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IHdhbGtpbmcgZmxleGlibGUgYXJyYXlzIGZvciBhbGxvY2F0ZWQgdHlwZXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBob3cgQlBGIHByb2dyYW1zIGFyZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiREVCVUdfSU5GT19CVEZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidGZfc3RydWN0X2FjY2Vzc1wiLFxuICAgIFwiYnRmX3N0cnVjdF9pZHNfbWF0Y2hcIixcbiAgICBcIm1hcF9rcHRyX21hdGNoX3R5cGVcIixcbiAgICBcInByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRcIixcbiAgICBcIl9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZm9yIGFsbG9jYXRlZCB0eXBlcyBkdXJpbmcgQlRGIHN0cnVjdCBhY2Nlc3MgYW5kIHR5cGUgbWF0Y2hpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIGhvdyBCUEYgcHJvZ3JhbXMgYXJlIHZlcmlmaWVkIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowmvrwc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 10:21:24 +0000 UTC FinishedAt: 2026-06-30 10:30:28 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "53435562a725962e4de0c29653223129ba11643a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "DEBUG_INFO_BTF" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "53435562a725962e4de0c29653223129ba11643a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "DEBUG_INFO_BTF" ], "series_id": "06aef4d4-0f6f-4585-8398-9a0ffe2d32a7" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "btf_struct_access", "btf_struct_ids_match", "map_kptr_match_type", "process_kf_arg_ptr_to_btf_id", "__process_kf_arg_ptr_to_graph_node" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEwOjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0RFQlVHX0lORk9fQlRGJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRmX3N0cnVjdF9hY2Nlc3MmIzM0OywKICAgICYjMzQ7YnRmX3N0cnVjdF9pZHNfbWF0Y2gmIzM0OywKICAgICYjMzQ7bWFwX2twdHJfbWF0Y2hfdHlwZSYjMzQ7LAogICAgJiMzNDtwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkJiMzNDssCiAgICAmIzM0O19fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IHdhbGtpbmcgZmxleGlibGUgYXJyYXlzIGZvciBhbGxvY2F0ZWQgdHlwZXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBob3cgQlBGIHByb2dyYW1zIGFyZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMDozMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI0NmZhNGVmNDI2ZWMwM2ZhMTJlMDI1MzgzOGU1MjM3MDFjMWRiOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAxMDozMDowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaFxuaW5kZXggNzcxOWY2NTI4NDQ1NjAuLjMxNGQ2MDZkYzJjNDE3IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9icGYuaFxuQEAgLTMxNDYsNyAmIzQzOzMxNDYsNyBAQCBpbnQgYnRmX3N0cnVjdF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXHRcdFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiBpZCwgaW50IG9mZixcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKm5lZWRfYnRmLCB1MzIgbmVlZF90eXBlX2lkLFxuLVx0XHRcdCAgYm9vbCBzdHJpY3QpO1xuJiM0MztcdFx0XHQgIGJvb2wgc3RyaWN0LCBib29sIHdhbGtfZmxleF9hcnJheXMpO1xuIFxuIGludCBidGZfZGlzdGlsbF9mdW5jX3Byb3RvKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXHRcdFx0ICAgc3RydWN0IGJ0ZiAqYnRmLFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXG5pbmRleCA2NDU3MmY4NWVkYzgzMi4uZGZmNWMwZDkxNjQxMjcgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2J0Zi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL2J0Zi5jXG5AQCAtNzEwOCw3ICYjNDM7NzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7XG4gc3RhdGljIGludCBidGZfc3RydWN0X3dhbGsoc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZywgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLFxuIFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdCwgaW50IG9mZiwgaW50IHNpemUsXG4gXHRcdFx0ICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLFxuLVx0XHRcdCAgIGNvbnN0IGNoYXIgKipmaWVsZF9uYW1lKVxuJiM0MztcdFx0XHQgICBjb25zdCBjaGFyICoqZmllbGRfbmFtZSwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKVxuIHtcbiBcdHUzMiBpLCBtb2ZmLCBtdHJ1ZV9lbmQsIG1zaXplID0gMCwgdG90YWxfbmVsZW1zID0gMDtcbiBcdGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqbXR5cGUsICplbGVtX3R5cGUgPSBOVUxMO1xuQEAgLTcxMzUsMTEgJiM0Mzs3MTM1LDE0IEBAIHN0YXRpYyBpbnQgYnRmX3N0cnVjdF93YWxrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZixcbiBcdFx0KmZsYWcgfD0gUFRSX1VOVFJVU1RFRDtcbiBcbiBcdGlmIChvZmYgJiM0Mzsgc2l6ZSBcdTAwM2UgdC1cdTAwM2VzaXplKSB7XG4mIzQzO1x0XHRzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtO1xuJiM0MztcbiYjNDM7XHRcdGlmICghd2Fsa19mbGV4X2FycmF5cylcbiYjNDM7XHRcdFx0Z290byBlcnJvcjtcbiYjNDM7XG4gXHRcdC8qIElmIHRoZSBsYXN0IGVsZW1lbnQgaXMgYSB2YXJpYWJsZSBzaXplIGFycmF5LCB3ZSBtYXlcbiBcdFx0ICogbmVlZCB0byByZWxheCB0aGUgcnVsZS5cbiBcdFx0ICovXG4tXHRcdHN0cnVjdCBidGZfYXJyYXkgKmFycmF5X2VsZW07XG4tXG4gXHRcdGlmICh2bGVuID09IDApXG4gXHRcdFx0Z290byBlcnJvcjtcbiBcbkBAIC03NDA0LDcgJiM0Mzs3NDA3LDggQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXG4gXHR0ID0gYnRmX3R5cGVfYnlfaWQoYnRmLCBpZCk7XG4gXHRkbyB7XG4tXHRcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCBcdTAwMjZpZCwgXHUwMDI2dG1wX2ZsYWcsIGZpZWxkX25hbWUpO1xuJiM0MztcdFx0ZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0LCBvZmYsIHNpemUsIFx1MDAyNmlkLCBcdTAwMjZ0bXBfZmxhZyxcbiYjNDM7XHRcdFx0XHQgICAgICBmaWVsZF9uYW1lLCAhdHlwZV9pc19hbGxvYyhyZWctXHUwMDNldHlwZSkpO1xuIFxuIFx0XHRzd2l0Y2ggKGVycikge1xuIFx0XHRjYXNlIFdBTEtfUFRSOlxuQEAgLTc0NjMsNyAmIzQzOzc0NjcsNyBAQCBib29sIGJ0Zl90eXBlc19hcmVfc2FtZShjb25zdCBzdHJ1Y3QgYnRmICpidGYxLCB1MzIgaWQxLFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuIFx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqbmVlZF9idGYsIHUzMiBuZWVkX3R5cGVfaWQsXG4tXHRcdFx0ICBib29sIHN0cmljdClcbiYjNDM7XHRcdFx0ICBib29sIHN0cmljdCwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKVxuIHtcbiBcdGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdHlwZTtcbiBcdGVudW0gYnBmX3R5cGVfZmxhZyBmbGFnID0gMDtcbkBAIC03NDgyLDcgJiM0Mzs3NDg2LDggQEAgYm9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuIFx0dHlwZSA9IGJ0Zl90eXBlX2J5X2lkKGJ0ZiwgaWQpO1xuIFx0aWYgKCF0eXBlKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4tXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHR5cGUsIG9mZiwgMSwgXHUwMDI2aWQsIFx1MDAyNmZsYWcsIE5VTEwpO1xuJiM0MztcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdHlwZSwgb2ZmLCAxLCBcdTAwMjZpZCwgXHUwMDI2ZmxhZywgTlVMTCxcbiYjNDM7XHRcdFx0ICAgICAgd2Fsa19mbGV4X2FycmF5cyk7XG4gXHRpZiAoZXJyICE9IFdBTEtfU1RSVUNUKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4gXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyNWFlYTQyNzFjZDA4OS4uNGQzYmI3MTU2NzBkMTcgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTQzNzksNyAmIzQzOzQzNzksOCBAQCBzdGF0aWMgaW50IG1hcF9rcHRyX21hdGNoX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbiBcdCAqL1xuIFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCByZWctXHUwMDNldmFyX29mZi52YWx1ZSxcbiBcdFx0XHRcdCAga3B0cl9maWVsZC1cdTAwM2VrcHRyLmJ0Ziwga3B0cl9maWVsZC1cdTAwM2VrcHRyLmJ0Zl9pZCxcbi1cdFx0XHRcdCAga3B0cl9maWVsZC1cdTAwM2V0eXBlICE9IEJQRl9LUFRSX1VOUkVGKSlcbiYjNDM7XHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNldHlwZSAhPSBCUEZfS1BUUl9VTlJFRixcbiYjNDM7XHRcdFx0XHQgICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpXG4gXHRcdGdvdG8gYmFkX3R5cGU7XG4gXHRyZXR1cm4gMDtcbiBiYWRfdHlwZTpcbkBAIC03OTcwLDcgJiM0Mzs3OTcxLDcgQEAgc3RhdGljIGludCBjaGVja19yZWdfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVcbiBcbiBcdFx0XHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFx1MDAyNmVudi1cdTAwM2Vsb2csIHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQsXG4gXHRcdFx0XHRcdFx0ICByZWctXHUwMDNldmFyX29mZi52YWx1ZSwgYnRmX3ZtbGludXgsICphcmdfYnRmX2lkLFxuLVx0XHRcdFx0XHRcdCAgc3RyaWN0X3R5cGVfbWF0Y2gpKSB7XG4mIzQzO1x0XHRcdFx0XHRcdCAgc3RyaWN0X3R5cGVfbWF0Y2gsICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpIHtcbiBcdFx0XHRcdHZlcmJvc2UoZW52LCBcJiMzNDslcyBpcyBvZiB0eXBlICVzIGJ1dCAlcyBpcyBleHBlY3RlZFxcblwmIzM0OyxcbiBcdFx0XHRcdFx0cmVnX2FyZ19uYW1lKGVudiwgYXJnbm8pLFxuIFx0XHRcdFx0XHRidGZfdHlwZV9uYW1lKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpLFxuQEAgLTExNDI5LDcgJiM0MzsxMTQzMCw4IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0cmVnX3JlZl90ID0gYnRmX3R5cGVfc2tpcF9tb2RpZmllcnMocmVnX2J0ZiwgcmVnX3JlZl9pZCwgXHUwMDI2cmVnX3JlZl9pZCk7XG4gXHRyZWdfcmVmX3RuYW1lID0gYnRmX25hbWVfYnlfb2Zmc2V0KHJlZ19idGYsIHJlZ19yZWZfdC1cdTAwM2VuYW1lX29mZik7XG4gXHRzdHJ1Y3Rfc2FtZSA9IGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFx1MDAyNmVudi1cdTAwM2Vsb2csIHJlZ19idGYsIHJlZ19yZWZfaWQsIHJlZy1cdTAwM2V2YXJfb2ZmLnZhbHVlLFxuLVx0XHRcdFx0XHQgICBtZXRhLVx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCk7XG4mIzQzO1x0XHRcdFx0XHQgICBtZXRhLVx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCxcbiYjNDM7XHRcdFx0XHRcdCAgICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSk7XG4gXHQvKiBJZiBrZnVuYyBpcyBhY2NlcHRpbmcgYSBwcm9qZWN0aW9uIHR5cGUgKGllLiBfX3NrX2J1ZmYpLCBpdCBjYW5ub3RcbiBcdCAqIGFjdHVhbGx5IHVzZSBpdCAtLSBpdCBtdXN0IGNhc3QgdG8gdGhlIHVuZGVybHlpbmcgdHlwZS4gU28gd2UgYWxsb3dcbiBcdCAqIGNhbGxlciB0byBwYXNzIGluIHRoZSB1bmRlcmx5aW5nIHR5cGUuXG5AQCAtMTE4NzYsNyAmIzQzOzExODc4LDggQEAgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0ZXQgPSBidGZfdHlwZV9ieV9pZChmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0ZiwgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQpO1xuIFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpO1xuIFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCAwLCBmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0Zixcbi1cdFx0XHRcdCAgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUpKSB7XG4mIzQzO1x0XHRcdFx0ICBmaWVsZC1cdTAwM2VncmFwaF9yb290LnZhbHVlX2J0Zl9pZCwgdHJ1ZSxcbiYjNDM7XHRcdFx0XHQgICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpIHtcbiBcdFx0dmVyYm9zZShlbnYsIFwmIzM0O29wZXJhdGlvbiBvbiAlcyBleHBlY3RzIGFyZyMxICVzIGF0IG9mZnNldD0lZCBcJiMzNDtcbiBcdFx0XHRcJiMzNDtpbiBzdHJ1Y3QgJXMsIGJ1dCBhcmcgaXMgYXQgb2Zmc2V0PSVkIGluIHN0cnVjdCAlc1xcblwmIzM0OyxcbiBcdFx0XHRidGZfZmllbGRfdHlwZV9uYW1lKGhlYWRfZmllbGRfdHlwZSksXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGlua2VkX2xpc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbmluZGV4IDhkZWZlYTAyNTNlZDlhLi5jM2QxMzNjNmEwMGQ0MCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbkBAIC02OCw2ICYjNDM7NjgsNyBAQCBzdGF0aWMgc3RydWN0IHtcbiBcdHsgXCYjMzQ7b2JqX3R5cGVfaWRfb29yXCYjMzQ7LCBcJiMzNDtsb2NhbCB0eXBlIElEIGFyZ3VtZW50IG11c3QgYmUgaW4gcmFuZ2UgWzAsIFUzMl9NQVhdXCYjMzQ7IH0sXG4gXHR7IFwmIzM0O29ial9uZXdfbm9fY29tcG9zaXRlXCYjMzQ7LCBcJiMzNDticGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XCYjMzQ7IH0sXG4gXHR7IFwmIzM0O29ial9uZXdfbm9fc3RydWN0XCYjMzQ7LCBcJiMzNDticGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XCYjMzQ7IH0sXG4mIzQzO1x0eyBcJiMzNDtvYmpfbmV3X2ZsZXhfYXJyYXlcJiMzNDssIFwmIzM0O2FjY2VzcyBiZXlvbmQgc3RydWN0IG9ial9uZXdfZmxleFwmIzM0OyB9LFxuIFx0eyBcJiMzNDtvYmpfZHJvcF9ub25femVyb19vZmZcJiMzNDssIFwmIzM0O1IxIG11c3QgaGF2ZSB6ZXJvIG9mZnNldCB3aGVuIHBhc3NlZCB0byByZWxlYXNlIGZ1bmNcJiMzNDsgfSxcbiBcdHsgXCYjMzQ7bmV3X251bGxfcmV0XCYjMzQ7LCBcJiMzNDtSMCBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTtwdHJfb3JfbnVsbF8mIzM5O1wmIzM0OyB9LFxuIFx0eyBcJiMzNDtvYmpfbmV3X2FjcVwmIzM0OywgXCYjMzQ7VW5yZWxlYXNlZCByZWZlcmVuY2UgaWQ9XCYjMzQ7IH0sXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmNcbmluZGV4IGRkZDI2ZDFhMDgzZjcyLi4wMzFlNzdhMjg4ZWVjMCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmNcbkBAIC0xNjcsNiAmIzQzOzE2NywxNiBAQCBDSEVDS19PUChwdXNoX2JhY2spO1xuICN1bmRlZiBDSEVDS19PUFxuICN1bmRlZiBJTklUXG4gXG4mIzQzO3N0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSB7XG4mIzQzO1x0aW50IGxvO1xuJiM0MztcdGludCBoaTtcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO3N0cnVjdCBvYmpfbmV3X2ZsZXgge1xuJiM0MztcdGludCBoZHI7XG4mIzQzO1x0c3RydWN0IG9ial9uZXdfZmxleF9lbGVtIGNlbGxzW107XG4mIzQzO307XG4mIzQzO1xuIFNFQyhcJiMzNDs/a3Byb2JlL3h5elwmIzM0OylcbiBpbnQgbWFwX2NvbXBhdF9rcHJvYmUodm9pZCAqY3R4KVxuIHtcbkBAIC0yMzAsNiAmIzQzOzI0MCwxOSBAQCBpbnQgb2JqX25ld19ub19zdHJ1Y3Qodm9pZCAqY3R4KVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0MztTRUMoXCYjMzQ7P3RjXCYjMzQ7KVxuJiM0MztpbnQgb2JqX25ld19mbGV4X2FycmF5KHZvaWQgKmN0eClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBvYmpfbmV3X2ZsZXggKnA7XG4mIzQzO1xuJiM0MztcdHAgPSBicGZfb2JqX25ld19pbXBsKGJwZl9jb3JlX3R5cGVfaWRfbG9jYWwoc3RydWN0IG9ial9uZXdfZmxleCksIE5VTEwpO1xuJiM0MztcdGlmICghcClcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdHAtXHUwMDNlY2VsbHNbMF0uaGkgPSA0MjtcbiYjNDM7XHRicGZfb2JqX2Ryb3BfaW1wbChwLCBOVUxMKTtcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiBTRUMoXCYjMzQ7P3RjXCYjMzQ7KVxuIGludCBvYmpfZHJvcF9ub25femVyb19vZmYodm9pZCAqY3R4KVxuIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMDozMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtERUJVR19JTkZPX0JURiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfYWNjZXNzJiMzNDssCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfaWRzX21hdGNoJiMzNDssCiAgICAmIzM0O21hcF9rcHRyX21hdGNoX3R5cGUmIzM0OywKICAgICYjMzQ7cHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZCYjMzQ7LAogICAgJiMzNDtfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCB3YWxraW5nIGZsZXhpYmxlIGFycmF5cyBmb3IgYWxsb2NhdGVkIHR5cGVzIGR1cmluZyBCVEYgc3RydWN0IGFjY2VzcyBhbmQgdHlwZSBtYXRjaGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgaG93IEJQRiBwcm9ncmFtcyBhcmUgdmVyaWZpZWQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI0NmZhNGVmNDI2ZWMwM2ZhMTJlMDI1MzgzOGU1MjM3MDFjMWRiOTgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxMDozMDowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oCmluZGV4IDc3MTlmNjUyODQ0NTYwLi4zMTRkNjA2ZGMyYzQxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2JwZi5oCkBAIC0zMTQ2LDcgJiM0MzszMTQ2LDcgQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiBib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiAJCQkgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLAogCQkJICBjb25zdCBzdHJ1Y3QgYnRmICpuZWVkX2J0ZiwgdTMyIG5lZWRfdHlwZV9pZCwKLQkJCSAgYm9vbCBzdHJpY3QpOwomIzQzOwkJCSAgYm9vbCBzdHJpY3QsIGJvb2wgd2Fsa19mbGV4X2FycmF5cyk7CiAKIGludCBidGZfZGlzdGlsbF9mdW5jX3Byb3RvKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiAJCQkgICBzdHJ1Y3QgYnRmICpidGYsCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2J0Zi5jIGIva2VybmVsL2JwZi9idGYuYwppbmRleCA2NDU3MmY4NWVkYzgzMi4uZGZmNWMwZDkxNjQxMjcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvYnRmLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9idGYuYwpAQCAtNzEwOCw3ICYjNDM7NzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7CiBzdGF0aWMgaW50IGJ0Zl9zdHJ1Y3Rfd2FsayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLCBjb25zdCBzdHJ1Y3QgYnRmICpidGYsCiAJCQkgICBjb25zdCBzdHJ1Y3QgYnRmX3R5cGUgKnQsIGludCBvZmYsIGludCBzaXplLAogCQkJICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLAotCQkJICAgY29uc3QgY2hhciAqKmZpZWxkX25hbWUpCiYjNDM7CQkJICAgY29uc3QgY2hhciAqKmZpZWxkX25hbWUsIGJvb2wgd2Fsa19mbGV4X2FycmF5cykKIHsKIAl1MzIgaSwgbW9mZiwgbXRydWVfZW5kLCBtc2l6ZSA9IDAsIHRvdGFsX25lbGVtcyA9IDA7CiAJY29uc3Qgc3RydWN0IGJ0Zl90eXBlICptdHlwZSwgKmVsZW1fdHlwZSA9IE5VTEw7CkBAIC03MTM1LDExICYjNDM7NzEzNSwxNCBAQCBzdGF0aWMgaW50IGJ0Zl9zdHJ1Y3Rfd2FsayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLCBjb25zdCBzdHJ1Y3QgYnRmICpidGYsCiAJCSpmbGFnIHw9IFBUUl9VTlRSVVNURUQ7CiAKIAlpZiAob2ZmICYjNDM7IHNpemUgJmd0OyB0LSZndDtzaXplKSB7CiYjNDM7CQlzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtOwomIzQzOwomIzQzOwkJaWYgKCF3YWxrX2ZsZXhfYXJyYXlzKQomIzQzOwkJCWdvdG8gZXJyb3I7CiYjNDM7CiAJCS8qIElmIHRoZSBsYXN0IGVsZW1lbnQgaXMgYSB2YXJpYWJsZSBzaXplIGFycmF5LCB3ZSBtYXkKIAkJICogbmVlZCB0byByZWxheCB0aGUgcnVsZS4KIAkJICovCi0JCXN0cnVjdCBidGZfYXJyYXkgKmFycmF5X2VsZW07Ci0KIAkJaWYgKHZsZW4gPT0gMCkKIAkJCWdvdG8gZXJyb3I7CiAKQEAgLTc0MDQsNyAmIzQzOzc0MDcsOCBAQCBpbnQgYnRmX3N0cnVjdF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZywKIAogCXQgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTsKIAlkbyB7Ci0JCWVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCAmYW1wO2lkLCAmYW1wO3RtcF9mbGFnLCBmaWVsZF9uYW1lKTsKJiM0MzsJCWVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCAmYW1wO2lkLCAmYW1wO3RtcF9mbGFnLAomIzQzOwkJCQkgICAgICBmaWVsZF9uYW1lLCAhdHlwZV9pc19hbGxvYyhyZWctJmd0O3R5cGUpKTsKIAogCQlzd2l0Y2ggKGVycikgewogCQljYXNlIFdBTEtfUFRSOgpAQCAtNzQ2Myw3ICYjNDM7NzQ2Nyw3IEBAIGJvb2wgYnRmX3R5cGVzX2FyZV9zYW1lKGNvbnN0IHN0cnVjdCBidGYgKmJ0ZjEsIHUzMiBpZDEsCiBib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csCiAJCQkgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLAogCQkJICBjb25zdCBzdHJ1Y3QgYnRmICpuZWVkX2J0ZiwgdTMyIG5lZWRfdHlwZV9pZCwKLQkJCSAgYm9vbCBzdHJpY3QpCiYjNDM7CQkJICBib29sIHN0cmljdCwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKQogewogCWNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdHlwZTsKIAllbnVtIGJwZl90eXBlX2ZsYWcgZmxhZyA9IDA7CkBAIC03NDgyLDcgJiM0Mzs3NDg2LDggQEAgYm9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLAogCXR5cGUgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTsKIAlpZiAoIXR5cGUpCiAJCXJldHVybiBmYWxzZTsKLQllcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHR5cGUsIG9mZiwgMSwgJmFtcDtpZCwgJmFtcDtmbGFnLCBOVUxMKTsKJiM0MzsJZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0eXBlLCBvZmYsIDEsICZhbXA7aWQsICZhbXA7ZmxhZywgTlVMTCwKJiM0MzsJCQkgICAgICB3YWxrX2ZsZXhfYXJyYXlzKTsKIAlpZiAoZXJyICE9IFdBTEtfU1RSVUNUKQogCQlyZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCAyNWFlYTQyNzFjZDA4OS4uNGQzYmI3MTU2NzBkMTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTQzNzksNyAmIzQzOzQzNzksOCBAQCBzdGF0aWMgaW50IG1hcF9rcHRyX21hdGNoX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwKIAkgKi8KIAlpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKCZhbXA7ZW52LSZndDtsb2csIHJlZy0mZ3Q7YnRmLCByZWctJmd0O2J0Zl9pZCwgcmVnLSZndDt2YXJfb2ZmLnZhbHVlLAogCQkJCSAga3B0cl9maWVsZC0mZ3Q7a3B0ci5idGYsIGtwdHJfZmllbGQtJmd0O2twdHIuYnRmX2lkLAotCQkJCSAga3B0cl9maWVsZC0mZ3Q7dHlwZSAhPSBCUEZfS1BUUl9VTlJFRikpCiYjNDM7CQkJCSAga3B0cl9maWVsZC0mZ3Q7dHlwZSAhPSBCUEZfS1BUUl9VTlJFRiwKJiM0MzsJCQkJICAhdHlwZV9pc19hbGxvYyhyZWctJmd0O3R5cGUpKSkKIAkJZ290byBiYWRfdHlwZTsKIAlyZXR1cm4gMDsKIGJhZF90eXBlOgpAQCAtNzk3MCw3ICYjNDM7Nzk3MSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVnX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlCiAKIAkJCWlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goJmFtcDtlbnYtJmd0O2xvZywgcmVnLSZndDtidGYsIHJlZy0mZ3Q7YnRmX2lkLAogCQkJCQkJICByZWctJmd0O3Zhcl9vZmYudmFsdWUsIGJ0Zl92bWxpbnV4LCAqYXJnX2J0Zl9pZCwKLQkJCQkJCSAgc3RyaWN0X3R5cGVfbWF0Y2gpKSB7CiYjNDM7CQkJCQkJICBzdHJpY3RfdHlwZV9tYXRjaCwgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKSkpIHsKIAkJCQl2ZXJib3NlKGVudiwgJiMzNDslcyBpcyBvZiB0eXBlICVzIGJ1dCAlcyBpcyBleHBlY3RlZFxuJiMzNDssCiAJCQkJCXJlZ19hcmdfbmFtZShlbnYsIGFyZ25vKSwKIAkJCQkJYnRmX3R5cGVfbmFtZShyZWctJmd0O2J0ZiwgcmVnLSZndDtidGZfaWQpLApAQCAtMTE0MjksNyAmIzQzOzExNDMwLDggQEAgc3RhdGljIGludCBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsCiAJcmVnX3JlZl90ID0gYnRmX3R5cGVfc2tpcF9tb2RpZmllcnMocmVnX2J0ZiwgcmVnX3JlZl9pZCwgJmFtcDtyZWdfcmVmX2lkKTsKIAlyZWdfcmVmX3RuYW1lID0gYnRmX25hbWVfYnlfb2Zmc2V0KHJlZ19idGYsIHJlZ19yZWZfdC0mZ3Q7bmFtZV9vZmYpOwogCXN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goJmFtcDtlbnYtJmd0O2xvZywgcmVnX2J0ZiwgcmVnX3JlZl9pZCwgcmVnLSZndDt2YXJfb2ZmLnZhbHVlLAotCQkJCQkgICBtZXRhLSZndDtidGYsIHJlZl9pZCwgc3RyaWN0X3R5cGVfbWF0Y2gpOwomIzQzOwkJCQkJICAgbWV0YS0mZ3Q7YnRmLCByZWZfaWQsIHN0cmljdF90eXBlX21hdGNoLAomIzQzOwkJCQkJICAgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKSk7CiAJLyogSWYga2Z1bmMgaXMgYWNjZXB0aW5nIGEgcHJvamVjdGlvbiB0eXBlIChpZS4gX19za19idWZmKSwgaXQgY2Fubm90CiAJICogYWN0dWFsbHkgdXNlIGl0IC0tIGl0IG11c3QgY2FzdCB0byB0aGUgdW5kZXJseWluZyB0eXBlLiBTbyB3ZSBhbGxvdwogCSAqIGNhbGxlciB0byBwYXNzIGluIHRoZSB1bmRlcmx5aW5nIHR5cGUuCkBAIC0xMTg3Niw3ICYjNDM7MTE4NzgsOCBAQCBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsCiAJZXQgPSBidGZfdHlwZV9ieV9pZChmaWVsZC0mZ3Q7Z3JhcGhfcm9vdC5idGYsIGZpZWxkLSZndDtncmFwaF9yb290LnZhbHVlX2J0Zl9pZCk7CiAJdCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy0mZ3Q7YnRmLCByZWctJmd0O2J0Zl9pZCk7CiAJaWYgKCFidGZfc3RydWN0X2lkc19tYXRjaCgmYW1wO2Vudi0mZ3Q7bG9nLCByZWctJmd0O2J0ZiwgcmVnLSZndDtidGZfaWQsIDAsIGZpZWxkLSZndDtncmFwaF9yb290LmJ0ZiwKLQkJCQkgIGZpZWxkLSZndDtncmFwaF9yb290LnZhbHVlX2J0Zl9pZCwgdHJ1ZSkpIHsKJiM0MzsJCQkJICBmaWVsZC0mZ3Q7Z3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUsCiYjNDM7CQkJCSAgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKSkpIHsKIAkJdmVyYm9zZShlbnYsICYjMzQ7b3BlcmF0aW9uIG9uICVzIGV4cGVjdHMgYXJnIzEgJXMgYXQgb2Zmc2V0PSVkICYjMzQ7CiAJCQkmIzM0O2luIHN0cnVjdCAlcywgYnV0IGFyZyBpcyBhdCBvZmZzZXQ9JWQgaW4gc3RydWN0ICVzXG4mIzM0OywKIAkJCWJ0Zl9maWVsZF90eXBlX25hbWUoaGVhZF9maWVsZF90eXBlKSwKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jCmluZGV4IDhkZWZlYTAyNTNlZDlhLi5jM2QxMzNjNmEwMGQ0MCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGlua2VkX2xpc3QuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jCkBAIC02OCw2ICYjNDM7NjgsNyBAQCBzdGF0aWMgc3RydWN0IHsKIAl7ICYjMzQ7b2JqX3R5cGVfaWRfb29yJiMzNDssICYjMzQ7bG9jYWwgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIGluIHJhbmdlIFswLCBVMzJfTUFYXSYjMzQ7IH0sCiAJeyAmIzM0O29ial9uZXdfbm9fY29tcG9zaXRlJiMzNDssICYjMzQ7YnBmX29ial9uZXcvYnBmX3BlcmNwdV9vYmpfbmV3IHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBvZiBhIHN0cnVjdCYjMzQ7IH0sCiAJeyAmIzM0O29ial9uZXdfbm9fc3RydWN0JiMzNDssICYjMzQ7YnBmX29ial9uZXcvYnBmX3BlcmNwdV9vYmpfbmV3IHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBvZiBhIHN0cnVjdCYjMzQ7IH0sCiYjNDM7CXsgJiMzNDtvYmpfbmV3X2ZsZXhfYXJyYXkmIzM0OywgJiMzNDthY2Nlc3MgYmV5b25kIHN0cnVjdCBvYmpfbmV3X2ZsZXgmIzM0OyB9LAogCXsgJiMzNDtvYmpfZHJvcF9ub25femVyb19vZmYmIzM0OywgJiMzNDtSMSBtdXN0IGhhdmUgemVybyBvZmZzZXQgd2hlbiBwYXNzZWQgdG8gcmVsZWFzZSBmdW5jJiMzNDsgfSwKIAl7ICYjMzQ7bmV3X251bGxfcmV0JiMzNDssICYjMzQ7UjAgaW52YWxpZCBtZW0gYWNjZXNzICYjMzk7cHRyX29yX251bGxfJiMzOTsmIzM0OyB9LAogCXsgJiMzNDtvYmpfbmV3X2FjcSYjMzQ7LCAmIzM0O1VucmVsZWFzZWQgcmVmZXJlbmNlIGlkPSYjMzQ7IH0sCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuYwppbmRleCBkZGQyNmQxYTA4M2Y3Mi4uMDMxZTc3YTI4OGVlYzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuYwpAQCAtMTY3LDYgJiM0MzsxNjcsMTYgQEAgQ0hFQ0tfT1AocHVzaF9iYWNrKTsKICN1bmRlZiBDSEVDS19PUAogI3VuZGVmIElOSVQKIAomIzQzO3N0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSB7CiYjNDM7CWludCBsbzsKJiM0MzsJaW50IGhpOwomIzQzO307CiYjNDM7CiYjNDM7c3RydWN0IG9ial9uZXdfZmxleCB7CiYjNDM7CWludCBoZHI7CiYjNDM7CXN0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSBjZWxsc1tdOwomIzQzO307CiYjNDM7CiBTRUMoJiMzNDs/a3Byb2JlL3h5eiYjMzQ7KQogaW50IG1hcF9jb21wYXRfa3Byb2JlKHZvaWQgKmN0eCkKIHsKQEAgLTIzMCw2ICYjNDM7MjQwLDE5IEBAIGludCBvYmpfbmV3X25vX3N0cnVjdCh2b2lkICpjdHgpCiAJcmV0dXJuIDA7CiB9CiAKJiM0MztTRUMoJiMzNDs/dGMmIzM0OykKJiM0MztpbnQgb2JqX25ld19mbGV4X2FycmF5KHZvaWQgKmN0eCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBvYmpfbmV3X2ZsZXggKnA7CiYjNDM7CiYjNDM7CXAgPSBicGZfb2JqX25ld19pbXBsKGJwZl9jb3JlX3R5cGVfaWRfbG9jYWwoc3RydWN0IG9ial9uZXdfZmxleCksIE5VTEwpOwomIzQzOwlpZiAoIXApCiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsJcC0mZ3Q7Y2VsbHNbMF0uaGkgPSA0MjsKJiM0MzsJYnBmX29ial9kcm9wX2ltcGwocCwgTlVMTCk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKIFNFQygmIzM0Oz90YyYjMzQ7KQogaW50IG9ial9kcm9wX25vbl96ZXJvX29mZih2b2lkICpjdHgpCiB7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEwOjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1ODEKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA2MzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBhIGNvcmUgQlBGIHZlcmlmaWVyIG1vZGlmaWNhdGlvbi4gSXQmIzM5O3MgYWRkaW5nIGEgYHdhbGtfZmxleF9hcnJheXNgIHBhcmFtZXRlciB0byBgYnRmX3N0cnVjdF93YWxrYCBhbmQgYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYC4gVGhlIHBhdGNoIHBhc3NlcyBgIXR5cGVfaXNfYWxsb2MocmVnLSZndDt0eXBlKWAgdG8gdGhhdCBwYXJhbWV0ZXIgaW4gc2V2ZXJhbCBzcG90cyBpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYCBhbmQgYGtlcm5lbC9icGYvYnRmLmNgLiBFc3NlbnRpYWxseSwgd2UmIzM5O3JlIHNraXBwaW5nIGZsZXhpYmxlIGFycmF5IHdhbGtzIGZvciBhbGxvY2F0ZWQgdHlwZXMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllciwgYW5kIHRoYXQgbWVhbnMgZnV6emluZyBpcyBjcnVjaWFsLgoKRmlyc3QsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZnVuY3Rpb25zIHRvIGZvY3VzIG9uLiBJJiMzOTt2ZSBpZGVudGlmaWVkIHRoZSBtb2RpZmllZCBvbmVzOiBgYnRmX3N0cnVjdF93YWxrYCAod2hpY2ggaXMgc3RhdGljLCBzbyBhIGJpdCB0cmlja2llciksIGBidGZfc3RydWN0X2FjY2Vzc2AsIGBidGZfc3RydWN0X2lkc19tYXRjaGAsIGBtYXBfa3B0cl9tYXRjaF90eXBlYCAoYWxzbyBzdGF0aWMpLCBgY2hlY2tfcmVnX3R5cGVgIChhZ2Fpbiwgc3RhdGljKSwgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgIChzdGF0aWMpLCBhbmQgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgIChzdGF0aWMpLgoKTm93LCB0aGUgcmVhbCBxdWVzdGlvbiBpcywgaG93IHJlYWNoYWJsZSBhcmUgdGhlc2UgYW5kIHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb25zIGRvIEkgbmVlZD8gVGhhbmtmdWxseSwgQlBGIGl0c2VsZiBpcyBlbmFibGVkIGJ5IGBDT05GSUdfQlBGYCBhbmQgYENPTkZJR19CUEZfU1lTQ0FMTGAsIGFuZCBzaW5jZSB3ZSBhcmUgdGFsa2luZyBhYm91dCB0aGUgdmVyaWZpZXIsIGBCUEZfU1lTQ0FMTGAgc2hvdWxkIGJlIHRoZSBrZXkgb25lLgoKSSYjMzk7dmUgdGFrZW4gYSBsb29rIGF0IHRoZXNlIGZ1bmN0aW9uczoKLSBgYnRmX3N0cnVjdF9hY2Nlc3NgCi0gYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYAotIGBtYXBfa3B0cl9tYXRjaF90eXBlYAotIGBjaGVja19yZWdfdHlwZWAKLSBgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZGAKLSBgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZWAKCkFyZSB0aGVzZSBnb29kIGZ1enppbmcgdGFyZ2V0cz8gYGJ0Zl9zdHJ1Y3RfYWNjZXNzYCBpcyBpbnZvbHZlZCBpbiBtZW1vcnkgYWNjZXNzIGNoZWNrcyBpbiB0aGUgdmVyaWZpZXIuIGBidGZfc3RydWN0X2lkc19tYXRjaGAgaXMgdXNlZCBmb3IgdHlwZSBtYXRjaGluZyB3aXRoaW4gdGhlIHZlcmlmaWVyLiBgbWFwX2twdHJfbWF0Y2hfdHlwZWAgaGFuZGxlcyBrcHRyIGNvbXBhcmlzb25zLiBgY2hlY2tfcmVnX3R5cGVgIGlzIG9idmlvdXNseSBhYm91dCBjaGVja2luZyByZWdpc3RlciB0eXBlcy4gYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgIGlzIGludm9sdmVkIGluIGtmdW5jIGFyZ3VtZW50cy4gRmluYWxseSwgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgIGlzIHRpZWQgdG8gZ3JhcGggbm9kZXMsIGxpa2UgbGlua2VkIGxpc3RzIGFuZCByYnRyZWVzLgoKSSYjMzk7bSBsZWFuaW5nIHRvd2FyZHMgZnV6emluZyBgYnRmX3N0cnVjdF9hY2Nlc3NgLCBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgLCBgbWFwX2twdHJfbWF0Y2hfdHlwZWAsIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCwgYW5kIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYC4KCkxldCBtZSBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBiZSBzdXJlLCBhcmUgdGhlcmUgYW55IG90aGVyIGNydWNpYWwgY29uZmlncz8gQXNpZGUgZnJvbSBgQ09ORklHX0JQRl9TWVNDQUxMYCwgSSYjMzk7bGwgbmVlZCBgQ09ORklHX0RFQlVHX0lORk9fQlRGYCBzaW5jZSB0aGlzIGlzIHJlbGF0ZWQgdG8gQlRGLiBJIHNob3VsZCBkbyBhIHF1aWNrIGdyZXAganVzdCB0byBjb25maXJtIGV2ZXJ5dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTA6MzA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnRmX3N0cnVjdF9pZHNfbWF0Y2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9icGYuaD0zMTQyPWludCBidGZfc3RydWN0X2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuLS1cbmluY2x1ZGUvbGludXgvYnBmLmgtMzE0NS1cdFx0ICAgICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLCBjb25zdCBjaGFyICoqZmllbGRfbmFtZSk7XG5pbmNsdWRlL2xpbnV4L2JwZi5oOjMxNDY6Ym9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuaW5jbHVkZS9saW51eC9icGYuaC0zMTQ3LVx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgaWQsIGludCBvZmYsXG4tLVxua2VybmVsL2JwZi9idGYuYz03NDU3PWJvb2wgYnRmX3R5cGVzX2FyZV9zYW1lKGNvbnN0IHN0cnVjdCBidGYgKmJ0ZjEsIHUzMiBpZDEsXG4tLVxua2VybmVsL2JwZi9idGYuYy03NDY2LVxua2VybmVsL2JwZi9idGYuYzo3NDY3OmJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbmtlcm5lbC9icGYvYnRmLmMtNzQ2OC1cdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00MzE4PXN0YXRpYyBpbnQgbWFwX2twdHJfbWF0Y2hfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00Mzc0LVx0ICogSW4gdGhlIGtwdHJfcmVmIGNhc2UsIGNoZWNrX2Z1bmNfYXJnX3JlZ19vZmYgYWxyZWFkeSBlbnN1cmVzIHJlZy1cdTAwM2V2YXJfb2ZmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDM3NTpcdCAqIGlzIHplcm8uIFdlIG11c3QgYWxzbyBlbnN1cmUgdGhhdCBidGZfc3RydWN0X2lkc19tYXRjaCBkb2VzIG5vdCB3YWxrXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDM3Ni1cdCAqIHRoZSBzdHJ1Y3QgdG8gbWF0Y2ggdHlwZSBhZ2FpbnN0IGZpcnN0IG1lbWJlciBvZiBzdHJ1Y3QsIGkuZS4gcmVqZWN0XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQzNzktXHQgKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0MzgwOlx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCByZWctXHUwMDNldmFyX29mZi52YWx1ZSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MzgxLVx0XHRcdFx0ICBrcHRyX2ZpZWxkLVx1MDAzZWtwdHIuYnRmLCBrcHRyX2ZpZWxkLVx1MDAzZWtwdHIuYnRmX2lkLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03ODU3PXN0YXRpYyBpbnQgY2hlY2tfcmVnX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzk3MS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo3OTcyOlx0XHRcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXHUwMDI2ZW52LVx1MDAzZWxvZywgcmVnLVx1MDAzZWJ0ZiwgcmVnLVx1MDAzZWJ0Zl9pZCxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03OTczLVx0XHRcdFx0XHRcdCAgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsIGJ0Zl92bWxpbnV4LCAqYXJnX2J0Zl9pZCxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEzNzc9c3RhdGljIGludCBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTExNDIwLVx0ICogb25seSBkaWZmZXJlbmNlIGhlcmUgaXMgdGhhdCB3ZSYjMzk7cmUgc2ltcGx5IGFsbG93aW5nXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE0MjE6XHQgKiBidGZfc3RydWN0X2lkc19tYXRjaCgpIHRvIHdhbGsgdGhlIHN0cnVjdCBhdCB0aGUgMHRoIG9mZnNldCwgYW5kXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE0MjItXHQgKiByZXNvbHZlIHR5cGVzLlxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTQzMS1cdHJlZ19yZWZfdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQocmVnX2J0ZiwgcmVnX3JlZl90LVx1MDAzZW5hbWVfb2ZmKTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTQzMjpcdHN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goXHUwMDI2ZW52LVx1MDAzZWxvZywgcmVnX2J0ZiwgcmVnX3JlZl9pZCwgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE0MzMtXHRcdFx0XHRcdCAgIG1ldGEtXHUwMDNlYnRmLCByZWZfaWQsIHN0cmljdF90eXBlX21hdGNoLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTg0MT1fX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTExODc5LVx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjExODgwOlx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCAwLCBmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0Zixcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTg4MS1cdFx0XHRcdCAgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUsXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL21hcF9rcHRyLmMtMTU3LXtcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9tYXBfa3B0ci5jOjE1ODpcdFwmIzM0O21hcF9rcHRyOiB1bnJlZjogcmVqZWN0IGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoID09IGZhbHNlXCYjMzQ7LFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3ZlcmlmaWVyL21hcF9rcHRyLmMtMTU5LVx0Lmluc25zID0ge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDEwOjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcxNzMKCQkJCQkJCW91dHB1dDogMTY1CgkJCQkJCQl0aG91Z2h0czogMzM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJQRiBWZXJpZmllciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgZGlnZ2luZyBpbnRvIHRoZSBCUEYgdmVyaWZpZXImIzM5O3MgY29yZSBmdW5jdGlvbmFsaXR5LCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBob3cgaXQgaGFuZGxlcyBmbGV4aWJsZSBhcnJheXMgd2l0aGluIGFsbG9jYXRlZCBvYmplY3RzLiBTZWVtcyBsaWtlIGEgYnVnIGZpeCByZWxhdGVkIHRvIHRoYXQsIHdoaWNoIGlzIGdvb2QuIFRoZSBjb25maWdzIGl0IGRlcGVuZHMgb24gYXJlIHByZXR0eSBzdGFuZGFyZDogYEJQRl9TWVNDQUxMYCBhbmQgYERFQlVHX0lORk9fQlRGYC4KCkkgbmVlZCB0byBmb2N1cyBvbiB0aGVzZSBzeW1ib2xzOiBgYnRmX3N0cnVjdF9hY2Nlc3NgLCBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgLCBgbWFwX2twdHJfbWF0Y2hfdHlwZWAsIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCwgYW5kIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYC4gSSBuZWVkIHRvIGJlIHN1cmUgYWJvdXQgdGhlaXIgc2NvcGUgYmVmb3JlIHByb2NlZWRpbmcuCgpBbHJpZ2h0LCBhIHF1aWNrIGNoZWNr4oCmIGBtYXBfa3B0cl9tYXRjaF90eXBlYCBhbmQgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgIGFyZSBzdGF0aWMsIHdoaWNoIGlzIHdoYXQgSSBzdXNwZWN0ZWQuIGBidGZfc3RydWN0X2FjY2Vzc2AgYW5kIGBidGZfc3RydWN0X2lkc19tYXRjaGAgYXJlIGV4cG9ydGVkL2dsb2JhbCwgbWVhbmluZyB0aGV5IGFyZSBtb3JlIGxpa2VseSBlbnRyeSBwb2ludHMgdGhhdCBhcmUgbmVlZGVkIGZvciBleHRlcm5hbCBhY2Nlc3MuCgpTbywgSSBjYW4gdXNlIGFsbCB0aGVzZSBzeW1ib2xzIEkgbGlzdGVkLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHRhcmdldGVkIGF0IHByZXZlbnRpbmcgdGhlIHZlcmlmaWVyIGZyb20gaW5jb3JyZWN0bHkgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nIGZvciBhbGxvY2F0ZWQgdHlwZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4KCkxldCBtZSBkb3VibGUtY2hlY2sgYGNoZWNrX3JlZ190eXBlYCBxdWlja2x5LiBIbW0sIGl0IHNlZW1zIGEgbGl0dGxlIHRvbyBnZW5lcmFsIGZvciB0aGlzIHNwZWNpZmljIGlzc3VlLCBzbyBJJiMzOTtsbCBwcm9iYWJseSBsZWF2ZSB0aGF0IG91dCBvZiB0aGUgc2V0LiBUaGUgbWFpbiBwb2ludCBpcyB0aGF0IHRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgQlBGIHZlcmlmaWVyIHRvIGFkZHJlc3MgdGhpcyBCVEYtcmVsYXRlZCBpc3N1ZSwgYW5kIHNob3VsZCBiZSBmdXp6ZWQgYXMgYSByZXN1bHQuCgpSaWdodCwgdGltZSB0byBtb3ZlIG9uIGFuZCBzZXQgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxMDozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OywKICAgICYjMzQ7REVCVUdfSU5GT19CVEYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidGZfc3RydWN0X2FjY2VzcyYjMzQ7LAogICAgJiMzNDtidGZfc3RydWN0X2lkc19tYXRjaCYjMzQ7LAogICAgJiMzNDttYXBfa3B0cl9tYXRjaF90eXBlJiMzNDssCiAgICAmIzM0O3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWQmIzM0OywKICAgICYjMzQ7X19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZm9yIGFsbG9jYXRlZCB0eXBlcyBkdXJpbmcgQlRGIHN0cnVjdCBhY2Nlc3MgYW5kIHR5cGUgbWF0Y2hpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIGhvdyBCUEYgcHJvZ3JhbXMgYXJlIHZlcmlmaWVkIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7LAogICAgJiMzNDtERUJVR19JTkZPX0JURiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfYWNjZXNzJiMzNDssCiAgICAmIzM0O2J0Zl9zdHJ1Y3RfaWRzX21hdGNoJiMzNDssCiAgICAmIzM0O21hcF9rcHRyX21hdGNoX3R5cGUmIzM0OywKICAgICYjMzQ7cHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZCYjMzQ7LAogICAgJiMzNDtfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJldmVudCB3YWxraW5nIGZsZXhpYmxlIGFycmF5cyBmb3IgYWxsb2NhdGVkIHR5cGVzIGR1cmluZyBCVEYgc3RydWN0IGFjY2VzcyBhbmQgdHlwZSBtYXRjaGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgaG93IEJQRiBwcm9ncmFtcyBhcmUgdmVyaWZpZWQgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMDozMDowNi45Njg3OTgxMDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTU1OTA4NjU5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiREVCVUdfSU5GT19CVEZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidGZfc3RydWN0X2FjY2Vzc1wiLFxuICAgIFwiYnRmX3N0cnVjdF9pZHNfbWF0Y2hcIixcbiAgICBcIm1hcF9rcHRyX21hdGNoX3R5cGVcIixcbiAgICBcInByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRcIixcbiAgICBcIl9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZm9yIGFsbG9jYXRlZCB0eXBlcyBkdXJpbmcgQlRGIHN0cnVjdCBhY2Nlc3MgYW5kIHR5cGUgbWF0Y2hpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIGhvdyBCUEYgcHJvZ3JhbXMgYXJlIHZlcmlmaWVkIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMDozMDowNi45Njg4MDcxNTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4ODY3MDQyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI0NmZhNGVmNDI2ZWMwM2ZhMTJlMDI1MzgzOGU1MjM3MDFjMWRiOThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTA6MzA6MDUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmhcXG5pbmRleCA3NzE5ZjY1Mjg0NDU2MC4uMzE0ZDYwNmRjMmM0MTcgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvYnBmLmhcXG5AQCAtMzE0Niw3ICszMTQ2LDcgQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG4gXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiBpZCwgaW50IG9mZixcXG4gXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpuZWVkX2J0ZiwgdTMyIG5lZWRfdHlwZV9pZCxcXG4tXFx0XFx0XFx0ICBib29sIHN0cmljdCk7XFxuK1xcdFxcdFxcdCAgYm9vbCBzdHJpY3QsIGJvb2wgd2Fsa19mbGV4X2FycmF5cyk7XFxuIFxcbiBpbnQgYnRmX2Rpc3RpbGxfZnVuY19wcm90byhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxcbiBcXHRcXHRcXHQgICBzdHJ1Y3QgYnRmICpidGYsXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvYnRmLmMgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuaW5kZXggNjQ1NzJmODVlZGM4MzIuLmRmZjVjMGQ5MTY0MTI3IDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvYnRmLmNcXG4rKysgYi9rZXJuZWwvYnBmL2J0Zi5jXFxuQEAgLTcxMDgsNyArNzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7XFxuIHN0YXRpYyBpbnQgYnRmX3N0cnVjdF93YWxrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZixcXG4gXFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGJ0Zl90eXBlICp0LCBpbnQgb2ZmLCBpbnQgc2l6ZSxcXG4gXFx0XFx0XFx0ICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLFxcbi1cXHRcXHRcXHQgICBjb25zdCBjaGFyICoqZmllbGRfbmFtZSlcXG4rXFx0XFx0XFx0ICAgY29uc3QgY2hhciAqKmZpZWxkX25hbWUsIGJvb2wgd2Fsa19mbGV4X2FycmF5cylcXG4ge1xcbiBcXHR1MzIgaSwgbW9mZiwgbXRydWVfZW5kLCBtc2l6ZSA9IDAsIHRvdGFsX25lbGVtcyA9IDA7XFxuIFxcdGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqbXR5cGUsICplbGVtX3R5cGUgPSBOVUxMO1xcbkBAIC03MTM1LDExICs3MTM1LDE0IEBAIHN0YXRpYyBpbnQgYnRmX3N0cnVjdF93YWxrKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZixcXG4gXFx0XFx0KmZsYWcgfD0gUFRSX1VOVFJVU1RFRDtcXG4gXFxuIFxcdGlmIChvZmYgKyBzaXplIFxcdTAwM2UgdC1cXHUwMDNlc2l6ZSkge1xcbitcXHRcXHRzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtO1xcbitcXG4rXFx0XFx0aWYgKCF3YWxrX2ZsZXhfYXJyYXlzKVxcbitcXHRcXHRcXHRnb3RvIGVycm9yO1xcbitcXG4gXFx0XFx0LyogSWYgdGhlIGxhc3QgZWxlbWVudCBpcyBhIHZhcmlhYmxlIHNpemUgYXJyYXksIHdlIG1heVxcbiBcXHRcXHQgKiBuZWVkIHRvIHJlbGF4IHRoZSBydWxlLlxcbiBcXHRcXHQgKi9cXG4tXFx0XFx0c3RydWN0IGJ0Zl9hcnJheSAqYXJyYXlfZWxlbTtcXG4tXFxuIFxcdFxcdGlmICh2bGVuID09IDApXFxuIFxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuIFxcbkBAIC03NDA0LDcgKzc0MDcsOCBAQCBpbnQgYnRmX3N0cnVjdF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG4gXFxuIFxcdHQgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTtcXG4gXFx0ZG8ge1xcbi1cXHRcXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHQsIG9mZiwgc2l6ZSwgXFx1MDAyNmlkLCBcXHUwMDI2dG1wX2ZsYWcsIGZpZWxkX25hbWUpO1xcbitcXHRcXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHQsIG9mZiwgc2l6ZSwgXFx1MDAyNmlkLCBcXHUwMDI2dG1wX2ZsYWcsXFxuK1xcdFxcdFxcdFxcdCAgICAgIGZpZWxkX25hbWUsICF0eXBlX2lzX2FsbG9jKHJlZy1cXHUwMDNldHlwZSkpO1xcbiBcXG4gXFx0XFx0c3dpdGNoIChlcnIpIHtcXG4gXFx0XFx0Y2FzZSBXQUxLX1BUUjpcXG5AQCAtNzQ2Myw3ICs3NDY3LDcgQEAgYm9vbCBidGZfdHlwZXNfYXJlX3NhbWUoY29uc3Qgc3RydWN0IGJ0ZiAqYnRmMSwgdTMyIGlkMSxcXG4gYm9vbCBidGZfc3RydWN0X2lkc19tYXRjaChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxcbiBcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxcbiBcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBidGYgKm5lZWRfYnRmLCB1MzIgbmVlZF90eXBlX2lkLFxcbi1cXHRcXHRcXHQgIGJvb2wgc3RyaWN0KVxcbitcXHRcXHRcXHQgIGJvb2wgc3RyaWN0LCBib29sIHdhbGtfZmxleF9hcnJheXMpXFxuIHtcXG4gXFx0Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICp0eXBlO1xcbiBcXHRlbnVtIGJwZl90eXBlX2ZsYWcgZmxhZyA9IDA7XFxuQEAgLTc0ODIsNyArNzQ4Niw4IEBAIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG4gXFx0dHlwZSA9IGJ0Zl90eXBlX2J5X2lkKGJ0ZiwgaWQpO1xcbiBcXHRpZiAoIXR5cGUpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4tXFx0ZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0eXBlLCBvZmYsIDEsIFxcdTAwMjZpZCwgXFx1MDAyNmZsYWcsIE5VTEwpO1xcbitcXHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHR5cGUsIG9mZiwgMSwgXFx1MDAyNmlkLCBcXHUwMDI2ZmxhZywgTlVMTCxcXG4rXFx0XFx0XFx0ICAgICAgd2Fsa19mbGV4X2FycmF5cyk7XFxuIFxcdGlmIChlcnIgIT0gV0FMS19TVFJVQ1QpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li40ZDNiYjcxNTY3MGQxNyAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5AQCAtNDM3OSw3ICs0Mzc5LDggQEAgc3RhdGljIGludCBtYXBfa3B0cl9tYXRjaF90eXBlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuIFxcdCAqL1xcbiBcXHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFxcdTAwMjZlbnYtXFx1MDAzZWxvZywgcmVnLVxcdTAwM2VidGYsIHJlZy1cXHUwMDNlYnRmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxuIFxcdFxcdFxcdFxcdCAga3B0cl9maWVsZC1cXHUwMDNla3B0ci5idGYsIGtwdHJfZmllbGQtXFx1MDAzZWtwdHIuYnRmX2lkLFxcbi1cXHRcXHRcXHRcXHQgIGtwdHJfZmllbGQtXFx1MDAzZXR5cGUgIT0gQlBGX0tQVFJfVU5SRUYpKVxcbitcXHRcXHRcXHRcXHQgIGtwdHJfZmllbGQtXFx1MDAzZXR5cGUgIT0gQlBGX0tQVFJfVU5SRUYsXFxuK1xcdFxcdFxcdFxcdCAgIXR5cGVfaXNfYWxsb2MocmVnLVxcdTAwM2V0eXBlKSkpXFxuIFxcdFxcdGdvdG8gYmFkX3R5cGU7XFxuIFxcdHJldHVybiAwO1xcbiBiYWRfdHlwZTpcXG5AQCAtNzk3MCw3ICs3OTcxLDcgQEAgc3RhdGljIGludCBjaGVja19yZWdfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVcXG4gXFxuIFxcdFxcdFxcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgcmVnLVxcdTAwM2V2YXJfb2ZmLnZhbHVlLCBidGZfdm1saW51eCwgKmFyZ19idGZfaWQsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RyaWN0X3R5cGVfbWF0Y2gpKSB7XFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgc3RyaWN0X3R5cGVfbWF0Y2gsICF0eXBlX2lzX2FsbG9jKHJlZy1cXHUwMDNldHlwZSkpKSB7XFxuIFxcdFxcdFxcdFxcdHZlcmJvc2UoZW52LCBcXFwiJXMgaXMgb2YgdHlwZSAlcyBidXQgJXMgaXMgZXhwZWN0ZWRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdHJlZ19hcmdfbmFtZShlbnYsIGFyZ25vKSxcXG4gXFx0XFx0XFx0XFx0XFx0YnRmX3R5cGVfbmFtZShyZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQpLFxcbkBAIC0xMTQyOSw3ICsxMTQzMCw4IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbiBcXHRyZWdfcmVmX3QgPSBidGZfdHlwZV9za2lwX21vZGlmaWVycyhyZWdfYnRmLCByZWdfcmVmX2lkLCBcXHUwMDI2cmVnX3JlZl9pZCk7XFxuIFxcdHJlZ19yZWZfdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQocmVnX2J0ZiwgcmVnX3JlZl90LVxcdTAwM2VuYW1lX29mZik7XFxuIFxcdHN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWdfYnRmLCByZWdfcmVmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxuLVxcdFxcdFxcdFxcdFxcdCAgIG1ldGEtXFx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCk7XFxuK1xcdFxcdFxcdFxcdFxcdCAgIG1ldGEtXFx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgIXR5cGVfaXNfYWxsb2MocmVnLVxcdTAwM2V0eXBlKSk7XFxuIFxcdC8qIElmIGtmdW5jIGlzIGFjY2VwdGluZyBhIHByb2plY3Rpb24gdHlwZSAoaWUuIF9fc2tfYnVmZiksIGl0IGNhbm5vdFxcbiBcXHQgKiBhY3R1YWxseSB1c2UgaXQgLS0gaXQgbXVzdCBjYXN0IHRvIHRoZSB1bmRlcmx5aW5nIHR5cGUuIFNvIHdlIGFsbG93XFxuIFxcdCAqIGNhbGxlciB0byBwYXNzIGluIHRoZSB1bmRlcmx5aW5nIHR5cGUuXFxuQEAgLTExODc2LDcgKzExODc4LDggQEAgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbiBcXHRldCA9IGJ0Zl90eXBlX2J5X2lkKGZpZWxkLVxcdTAwM2VncmFwaF9yb290LmJ0ZiwgZmllbGQtXFx1MDAzZWdyYXBoX3Jvb3QudmFsdWVfYnRmX2lkKTtcXG4gXFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cXHUwMDNlYnRmLCByZWctXFx1MDAzZWJ0Zl9pZCk7XFxuIFxcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQsIDAsIGZpZWxkLVxcdTAwM2VncmFwaF9yb290LmJ0ZixcXG4tXFx0XFx0XFx0XFx0ICBmaWVsZC1cXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUpKSB7XFxuK1xcdFxcdFxcdFxcdCAgZmllbGQtXFx1MDAzZWdyYXBoX3Jvb3QudmFsdWVfYnRmX2lkLCB0cnVlLFxcbitcXHRcXHRcXHRcXHQgICF0eXBlX2lzX2FsbG9jKHJlZy1cXHUwMDNldHlwZSkpKSB7XFxuIFxcdFxcdHZlcmJvc2UoZW52LCBcXFwib3BlcmF0aW9uIG9uICVzIGV4cGVjdHMgYXJnIzEgJXMgYXQgb2Zmc2V0PSVkIFxcXCJcXG4gXFx0XFx0XFx0XFxcImluIHN0cnVjdCAlcywgYnV0IGFyZyBpcyBhdCBvZmZzZXQ9JWQgaW4gc3RydWN0ICVzXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHRidGZfZmllbGRfdHlwZV9uYW1lKGhlYWRfZmllbGRfdHlwZSksXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jXFxuaW5kZXggOGRlZmVhMDI1M2VkOWEuLmMzZDEzM2M2YTAwZDQwIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saW5rZWRfbGlzdC5jXFxuQEAgLTY4LDYgKzY4LDcgQEAgc3RhdGljIHN0cnVjdCB7XFxuIFxcdHsgXFxcIm9ial90eXBlX2lkX29vclxcXCIsIFxcXCJsb2NhbCB0eXBlIElEIGFyZ3VtZW50IG11c3QgYmUgaW4gcmFuZ2UgWzAsIFUzMl9NQVhdXFxcIiB9LFxcbiBcXHR7IFxcXCJvYmpfbmV3X25vX2NvbXBvc2l0ZVxcXCIsIFxcXCJicGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XFxcIiB9LFxcbiBcXHR7IFxcXCJvYmpfbmV3X25vX3N0cnVjdFxcXCIsIFxcXCJicGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XFxcIiB9LFxcbitcXHR7IFxcXCJvYmpfbmV3X2ZsZXhfYXJyYXlcXFwiLCBcXFwiYWNjZXNzIGJleW9uZCBzdHJ1Y3Qgb2JqX25ld19mbGV4XFxcIiB9LFxcbiBcXHR7IFxcXCJvYmpfZHJvcF9ub25femVyb19vZmZcXFwiLCBcXFwiUjEgbXVzdCBoYXZlIHplcm8gb2Zmc2V0IHdoZW4gcGFzc2VkIHRvIHJlbGVhc2UgZnVuY1xcXCIgfSxcXG4gXFx0eyBcXFwibmV3X251bGxfcmV0XFxcIiwgXFxcIlIwIGludmFsaWQgbWVtIGFjY2VzcyAncHRyX29yX251bGxfJ1xcXCIgfSxcXG4gXFx0eyBcXFwib2JqX25ld19hY3FcXFwiLCBcXFwiVW5yZWxlYXNlZCByZWZlcmVuY2UgaWQ9XFxcIiB9LFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuY1xcbmluZGV4IGRkZDI2ZDFhMDgzZjcyLi4wMzFlNzdhMjg4ZWVjMCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2xpbmtlZF9saXN0X2ZhaWwuY1xcbkBAIC0xNjcsNiArMTY3LDE2IEBAIENIRUNLX09QKHB1c2hfYmFjayk7XFxuICN1bmRlZiBDSEVDS19PUFxcbiAjdW5kZWYgSU5JVFxcbiBcXG4rc3RydWN0IG9ial9uZXdfZmxleF9lbGVtIHtcXG4rXFx0aW50IGxvO1xcbitcXHRpbnQgaGk7XFxuK307XFxuK1xcbitzdHJ1Y3Qgb2JqX25ld19mbGV4IHtcXG4rXFx0aW50IGhkcjtcXG4rXFx0c3RydWN0IG9ial9uZXdfZmxleF9lbGVtIGNlbGxzW107XFxuK307XFxuK1xcbiBTRUMoXFxcIj9rcHJvYmUveHl6XFxcIilcXG4gaW50IG1hcF9jb21wYXRfa3Byb2JlKHZvaWQgKmN0eClcXG4ge1xcbkBAIC0yMzAsNiArMjQwLDE5IEBAIGludCBvYmpfbmV3X25vX3N0cnVjdCh2b2lkICpjdHgpXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbitTRUMoXFxcIj90Y1xcXCIpXFxuK2ludCBvYmpfbmV3X2ZsZXhfYXJyYXkodm9pZCAqY3R4KVxcbit7XFxuK1xcdHN0cnVjdCBvYmpfbmV3X2ZsZXggKnA7XFxuK1xcbitcXHRwID0gYnBmX29ial9uZXdfaW1wbChicGZfY29yZV90eXBlX2lkX2xvY2FsKHN0cnVjdCBvYmpfbmV3X2ZsZXgpLCBOVUxMKTtcXG4rXFx0aWYgKCFwKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFx0cC1cXHUwMDNlY2VsbHNbMF0uaGkgPSA0MjtcXG4rXFx0YnBmX29ial9kcm9wX2ltcGwocCwgTlVMTCk7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbiBTRUMoXFxcIj90Y1xcXCIpXFxuIGludCBvYmpfZHJvcF9ub25femVyb19vZmYodm9pZCAqY3R4KVxcbiB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEwOjMwOjA3LjQ1ODI0Mzg0NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTkwNjk2MjgxODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIixcbiAgICBcIkRFQlVHX0lORk9fQlRGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3N0cnVjdF9hY2Nlc3NcIixcbiAgICBcImJ0Zl9zdHJ1Y3RfaWRzX21hdGNoXCIsXG4gICAgXCJtYXBfa3B0cl9tYXRjaF90eXBlXCIsXG4gICAgXCJwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkXCIsXG4gICAgXCJfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IHdhbGtpbmcgZmxleGlibGUgYXJyYXlzIGZvciBhbGxvY2F0ZWQgdHlwZXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBob3cgQlBGIHByb2dyYW1zIGFyZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNDZmYTRlZjQyNmVjMDNmYTEyZTAyNTM4MzhlNTIzNzAxYzFkYjk4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTA6MzA6MDUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaFxuaW5kZXggNzcxOWY2NTI4NDQ1NjAuLjMxNGQ2MDZkYzJjNDE3IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9icGYuaFxuKysrIGIvaW5jbHVkZS9saW51eC9icGYuaFxuQEAgLTMxNDYsNyArMzE0Niw3IEBAIGludCBidGZfc3RydWN0X2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuIFx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqbmVlZF9idGYsIHUzMiBuZWVkX3R5cGVfaWQsXG4tXHRcdFx0ICBib29sIHN0cmljdCk7XG4rXHRcdFx0ICBib29sIHN0cmljdCwgYm9vbCB3YWxrX2ZsZXhfYXJyYXlzKTtcbiBcbiBpbnQgYnRmX2Rpc3RpbGxfZnVuY19wcm90byhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLFxuIFx0XHRcdCAgIHN0cnVjdCBidGYgKmJ0ZixcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2J0Zi5jIGIva2VybmVsL2JwZi9idGYuY1xuaW5kZXggNjQ1NzJmODVlZGM4MzIuLmRmZjVjMGQ5MTY0MTI3IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi9idGYuY1xuKysrIGIva2VybmVsL2JwZi9idGYuY1xuQEAgLTcxMDgsNyArNzEwOCw3IEBAIGVudW0gYnBmX3N0cnVjdF93YWxrX3Jlc3VsdCB7XG4gc3RhdGljIGludCBidGZfc3RydWN0X3dhbGsoc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZywgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLFxuIFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBidGZfdHlwZSAqdCwgaW50IG9mZiwgaW50IHNpemUsXG4gXHRcdFx0ICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLFxuLVx0XHRcdCAgIGNvbnN0IGNoYXIgKipmaWVsZF9uYW1lKVxuK1x0XHRcdCAgIGNvbnN0IGNoYXIgKipmaWVsZF9uYW1lLCBib29sIHdhbGtfZmxleF9hcnJheXMpXG4ge1xuIFx0dTMyIGksIG1vZmYsIG10cnVlX2VuZCwgbXNpemUgPSAwLCB0b3RhbF9uZWxlbXMgPSAwO1xuIFx0Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICptdHlwZSwgKmVsZW1fdHlwZSA9IE5VTEw7XG5AQCAtNzEzNSwxMSArNzEzNSwxNCBAQCBzdGF0aWMgaW50IGJ0Zl9zdHJ1Y3Rfd2FsayhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2xvZyAqbG9nLCBjb25zdCBzdHJ1Y3QgYnRmICpidGYsXG4gXHRcdCpmbGFnIHw9IFBUUl9VTlRSVVNURUQ7XG4gXG4gXHRpZiAob2ZmICsgc2l6ZSBcdTAwM2UgdC1cdTAwM2VzaXplKSB7XG4rXHRcdHN0cnVjdCBidGZfYXJyYXkgKmFycmF5X2VsZW07XG4rXG4rXHRcdGlmICghd2Fsa19mbGV4X2FycmF5cylcbitcdFx0XHRnb3RvIGVycm9yO1xuK1xuIFx0XHQvKiBJZiB0aGUgbGFzdCBlbGVtZW50IGlzIGEgdmFyaWFibGUgc2l6ZSBhcnJheSwgd2UgbWF5XG4gXHRcdCAqIG5lZWQgdG8gcmVsYXggdGhlIHJ1bGUuXG4gXHRcdCAqL1xuLVx0XHRzdHJ1Y3QgYnRmX2FycmF5ICphcnJheV9lbGVtO1xuLVxuIFx0XHRpZiAodmxlbiA9PSAwKVxuIFx0XHRcdGdvdG8gZXJyb3I7XG4gXG5AQCAtNzQwNCw3ICs3NDA3LDggQEAgaW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXG4gXG4gXHR0ID0gYnRmX3R5cGVfYnlfaWQoYnRmLCBpZCk7XG4gXHRkbyB7XG4tXHRcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdCwgb2ZmLCBzaXplLCBcdTAwMjZpZCwgXHUwMDI2dG1wX2ZsYWcsIGZpZWxkX25hbWUpO1xuK1x0XHRlcnIgPSBidGZfc3RydWN0X3dhbGsobG9nLCBidGYsIHQsIG9mZiwgc2l6ZSwgXHUwMDI2aWQsIFx1MDAyNnRtcF9mbGFnLFxuK1x0XHRcdFx0ICAgICAgZmllbGRfbmFtZSwgIXR5cGVfaXNfYWxsb2MocmVnLVx1MDAzZXR5cGUpKTtcbiBcbiBcdFx0c3dpdGNoIChlcnIpIHtcbiBcdFx0Y2FzZSBXQUxLX1BUUjpcbkBAIC03NDYzLDcgKzc0NjcsNyBAQCBib29sIGJ0Zl90eXBlc19hcmVfc2FtZShjb25zdCBzdHJ1Y3QgYnRmICpidGYxLCB1MzIgaWQxLFxuIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdFx0XHQgIGNvbnN0IHN0cnVjdCBidGYgKmJ0ZiwgdTMyIGlkLCBpbnQgb2ZmLFxuIFx0XHRcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqbmVlZF9idGYsIHUzMiBuZWVkX3R5cGVfaWQsXG4tXHRcdFx0ICBib29sIHN0cmljdClcbitcdFx0XHQgIGJvb2wgc3RyaWN0LCBib29sIHdhbGtfZmxleF9hcnJheXMpXG4ge1xuIFx0Y29uc3Qgc3RydWN0IGJ0Zl90eXBlICp0eXBlO1xuIFx0ZW51bSBicGZfdHlwZV9mbGFnIGZsYWcgPSAwO1xuQEAgLTc0ODIsNyArNzQ4Niw4IEBAIGJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcbiBcdHR5cGUgPSBidGZfdHlwZV9ieV9pZChidGYsIGlkKTtcbiBcdGlmICghdHlwZSlcbiBcdFx0cmV0dXJuIGZhbHNlO1xuLVx0ZXJyID0gYnRmX3N0cnVjdF93YWxrKGxvZywgYnRmLCB0eXBlLCBvZmYsIDEsIFx1MDAyNmlkLCBcdTAwMjZmbGFnLCBOVUxMKTtcbitcdGVyciA9IGJ0Zl9zdHJ1Y3Rfd2Fsayhsb2csIGJ0ZiwgdHlwZSwgb2ZmLCAxLCBcdTAwMjZpZCwgXHUwMDI2ZmxhZywgTlVMTCxcbitcdFx0XHQgICAgICB3YWxrX2ZsZXhfYXJyYXlzKTtcbiBcdGlmIChlcnIgIT0gV0FMS19TVFJVQ1QpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li40ZDNiYjcxNTY3MGQxNyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtNDM3OSw3ICs0Mzc5LDggQEAgc3RhdGljIGludCBtYXBfa3B0cl9tYXRjaF90eXBlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4gXHQgKi9cbiBcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXHUwMDI2ZW52LVx1MDAzZWxvZywgcmVnLVx1MDAzZWJ0ZiwgcmVnLVx1MDAzZWJ0Zl9pZCwgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsXG4gXHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNla3B0ci5idGYsIGtwdHJfZmllbGQtXHUwMDNla3B0ci5idGZfaWQsXG4tXHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNldHlwZSAhPSBCUEZfS1BUUl9VTlJFRikpXG4rXHRcdFx0XHQgIGtwdHJfZmllbGQtXHUwMDNldHlwZSAhPSBCUEZfS1BUUl9VTlJFRixcbitcdFx0XHRcdCAgIXR5cGVfaXNfYWxsb2MocmVnLVx1MDAzZXR5cGUpKSlcbiBcdFx0Z290byBiYWRfdHlwZTtcbiBcdHJldHVybiAwO1xuIGJhZF90eXBlOlxuQEAgLTc5NzAsNyArNzk3MSw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfcmVnX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlXG4gXG4gXHRcdFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLFxuIFx0XHRcdFx0XHRcdCAgcmVnLVx1MDAzZXZhcl9vZmYudmFsdWUsIGJ0Zl92bWxpbnV4LCAqYXJnX2J0Zl9pZCxcbi1cdFx0XHRcdFx0XHQgIHN0cmljdF90eXBlX21hdGNoKSkge1xuK1x0XHRcdFx0XHRcdCAgc3RyaWN0X3R5cGVfbWF0Y2gsICF0eXBlX2lzX2FsbG9jKHJlZy1cdTAwM2V0eXBlKSkpIHtcbiBcdFx0XHRcdHZlcmJvc2UoZW52LCBcIiVzIGlzIG9mIHR5cGUgJXMgYnV0ICVzIGlzIGV4cGVjdGVkXFxuXCIsXG4gXHRcdFx0XHRcdHJlZ19hcmdfbmFtZShlbnYsIGFyZ25vKSxcbiBcdFx0XHRcdFx0YnRmX3R5cGVfbmFtZShyZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkKSxcbkBAIC0xMTQyOSw3ICsxMTQzMCw4IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0cmVnX3JlZl90ID0gYnRmX3R5cGVfc2tpcF9tb2RpZmllcnMocmVnX2J0ZiwgcmVnX3JlZl9pZCwgXHUwMDI2cmVnX3JlZl9pZCk7XG4gXHRyZWdfcmVmX3RuYW1lID0gYnRmX25hbWVfYnlfb2Zmc2V0KHJlZ19idGYsIHJlZ19yZWZfdC1cdTAwM2VuYW1lX29mZik7XG4gXHRzdHJ1Y3Rfc2FtZSA9IGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFx1MDAyNmVudi1cdTAwM2Vsb2csIHJlZ19idGYsIHJlZ19yZWZfaWQsIHJlZy1cdTAwM2V2YXJfb2ZmLnZhbHVlLFxuLVx0XHRcdFx0XHQgICBtZXRhLVx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCk7XG4rXHRcdFx0XHRcdCAgIG1ldGEtXHUwMDNlYnRmLCByZWZfaWQsIHN0cmljdF90eXBlX21hdGNoLFxuK1x0XHRcdFx0XHQgICAhdHlwZV9pc19hbGxvYyhyZWctXHUwMDNldHlwZSkpO1xuIFx0LyogSWYga2Z1bmMgaXMgYWNjZXB0aW5nIGEgcHJvamVjdGlvbiB0eXBlIChpZS4gX19za19idWZmKSwgaXQgY2Fubm90XG4gXHQgKiBhY3R1YWxseSB1c2UgaXQgLS0gaXQgbXVzdCBjYXN0IHRvIHRoZSB1bmRlcmx5aW5nIHR5cGUuIFNvIHdlIGFsbG93XG4gXHQgKiBjYWxsZXIgdG8gcGFzcyBpbiB0aGUgdW5kZXJseWluZyB0eXBlLlxuQEAgLTExODc2LDcgKzExODc4LDggQEAgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuIFx0ZXQgPSBidGZfdHlwZV9ieV9pZChmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0ZiwgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQpO1xuIFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cdTAwM2VidGYsIHJlZy1cdTAwM2VidGZfaWQpO1xuIFx0aWYgKCFidGZfc3RydWN0X2lkc19tYXRjaChcdTAwMjZlbnYtXHUwMDNlbG9nLCByZWctXHUwMDNlYnRmLCByZWctXHUwMDNlYnRmX2lkLCAwLCBmaWVsZC1cdTAwM2VncmFwaF9yb290LmJ0Zixcbi1cdFx0XHRcdCAgZmllbGQtXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUpKSB7XG4rXHRcdFx0XHQgIGZpZWxkLVx1MDAzZWdyYXBoX3Jvb3QudmFsdWVfYnRmX2lkLCB0cnVlLFxuK1x0XHRcdFx0ICAhdHlwZV9pc19hbGxvYyhyZWctXHUwMDNldHlwZSkpKSB7XG4gXHRcdHZlcmJvc2UoZW52LCBcIm9wZXJhdGlvbiBvbiAlcyBleHBlY3RzIGFyZyMxICVzIGF0IG9mZnNldD0lZCBcIlxuIFx0XHRcdFwiaW4gc3RydWN0ICVzLCBidXQgYXJnIGlzIGF0IG9mZnNldD0lZCBpbiBzdHJ1Y3QgJXNcXG5cIixcbiBcdFx0XHRidGZfZmllbGRfdHlwZV9uYW1lKGhlYWRfZmllbGRfdHlwZSksXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGlua2VkX2xpc3QuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbmluZGV4IDhkZWZlYTAyNTNlZDlhLi5jM2QxMzNjNmEwMGQ0MCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpbmtlZF9saXN0LmNcbkBAIC02OCw2ICs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qge1xuIFx0eyBcIm9ial90eXBlX2lkX29vclwiLCBcImxvY2FsIHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBpbiByYW5nZSBbMCwgVTMyX01BWF1cIiB9LFxuIFx0eyBcIm9ial9uZXdfbm9fY29tcG9zaXRlXCIsIFwiYnBmX29ial9uZXcvYnBmX3BlcmNwdV9vYmpfbmV3IHR5cGUgSUQgYXJndW1lbnQgbXVzdCBiZSBvZiBhIHN0cnVjdFwiIH0sXG4gXHR7IFwib2JqX25ld19ub19zdHJ1Y3RcIiwgXCJicGZfb2JqX25ldy9icGZfcGVyY3B1X29ial9uZXcgdHlwZSBJRCBhcmd1bWVudCBtdXN0IGJlIG9mIGEgc3RydWN0XCIgfSxcbitcdHsgXCJvYmpfbmV3X2ZsZXhfYXJyYXlcIiwgXCJhY2Nlc3MgYmV5b25kIHN0cnVjdCBvYmpfbmV3X2ZsZXhcIiB9LFxuIFx0eyBcIm9ial9kcm9wX25vbl96ZXJvX29mZlwiLCBcIlIxIG11c3QgaGF2ZSB6ZXJvIG9mZnNldCB3aGVuIHBhc3NlZCB0byByZWxlYXNlIGZ1bmNcIiB9LFxuIFx0eyBcIm5ld19udWxsX3JldFwiLCBcIlIwIGludmFsaWQgbWVtIGFjY2VzcyAncHRyX29yX251bGxfJ1wiIH0sXG4gXHR7IFwib2JqX25ld19hY3FcIiwgXCJVbnJlbGVhc2VkIHJlZmVyZW5jZSBpZD1cIiB9LFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9saW5rZWRfbGlzdF9mYWlsLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXG5pbmRleCBkZGQyNmQxYTA4M2Y3Mi4uMDMxZTc3YTI4OGVlYzAgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvbGlua2VkX2xpc3RfZmFpbC5jXG5AQCAtMTY3LDYgKzE2NywxNiBAQCBDSEVDS19PUChwdXNoX2JhY2spO1xuICN1bmRlZiBDSEVDS19PUFxuICN1bmRlZiBJTklUXG4gXG4rc3RydWN0IG9ial9uZXdfZmxleF9lbGVtIHtcbitcdGludCBsbztcbitcdGludCBoaTtcbit9O1xuK1xuK3N0cnVjdCBvYmpfbmV3X2ZsZXgge1xuK1x0aW50IGhkcjtcbitcdHN0cnVjdCBvYmpfbmV3X2ZsZXhfZWxlbSBjZWxsc1tdO1xuK307XG4rXG4gU0VDKFwiP2twcm9iZS94eXpcIilcbiBpbnQgbWFwX2NvbXBhdF9rcHJvYmUodm9pZCAqY3R4KVxuIHtcbkBAIC0yMzAsNiArMjQwLDE5IEBAIGludCBvYmpfbmV3X25vX3N0cnVjdCh2b2lkICpjdHgpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4rU0VDKFwiP3RjXCIpXG4raW50IG9ial9uZXdfZmxleF9hcnJheSh2b2lkICpjdHgpXG4re1xuK1x0c3RydWN0IG9ial9uZXdfZmxleCAqcDtcbitcbitcdHAgPSBicGZfb2JqX25ld19pbXBsKGJwZl9jb3JlX3R5cGVfaWRfbG9jYWwoc3RydWN0IG9ial9uZXdfZmxleCksIE5VTEwpO1xuK1x0aWYgKCFwKVxuK1x0XHRyZXR1cm4gMDtcbitcdHAtXHUwMDNlY2VsbHNbMF0uaGkgPSA0MjtcbitcdGJwZl9vYmpfZHJvcF9pbXBsKHAsIE5VTEwpO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuIFNFQyhcIj90Y1wiKVxuIGludCBvYmpfZHJvcF9ub25femVyb19vZmYodm9pZCAqY3R4KVxuIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEwOjMwOjA3LjQ1ODI0NTY3NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk0MDM2Nzg4MzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgYSBjb3JlIEJQRiB2ZXJpZmllciBtb2RpZmljYXRpb24uIEl0J3MgYWRkaW5nIGEgYHdhbGtfZmxleF9hcnJheXNgIHBhcmFtZXRlciB0byBgYnRmX3N0cnVjdF93YWxrYCBhbmQgYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYC4gVGhlIHBhdGNoIHBhc3NlcyBgIXR5cGVfaXNfYWxsb2MocmVnLVx1MDAzZXR5cGUpYCB0byB0aGF0IHBhcmFtZXRlciBpbiBzZXZlcmFsIHNwb3RzIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIGFuZCBga2VybmVsL2JwZi9idGYuY2AuIEVzc2VudGlhbGx5LCB3ZSdyZSBza2lwcGluZyBmbGV4aWJsZSBhcnJheSB3YWxrcyBmb3IgYWxsb2NhdGVkIHR5cGVzLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmVyaWZpZXIsIGFuZCB0aGF0IG1lYW5zIGZ1enppbmcgaXMgY3J1Y2lhbC5cblxuRmlyc3QsIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgZnVuY3Rpb25zIHRvIGZvY3VzIG9uLiBJJ3ZlIGlkZW50aWZpZWQgdGhlIG1vZGlmaWVkIG9uZXM6IGBidGZfc3RydWN0X3dhbGtgICh3aGljaCBpcyBzdGF0aWMsIHNvIGEgYml0IHRyaWNraWVyKSwgYGJ0Zl9zdHJ1Y3RfYWNjZXNzYCwgYGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoYCwgYG1hcF9rcHRyX21hdGNoX3R5cGVgIChhbHNvIHN0YXRpYyksIGBjaGVja19yZWdfdHlwZWAgKGFnYWluLCBzdGF0aWMpLCBgcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2J0Zl9pZGAgKHN0YXRpYyksIGFuZCBgX19wcm9jZXNzX2tmX2FyZ19wdHJfdG9fZ3JhcGhfbm9kZWAgKHN0YXRpYykuXG5cbk5vdywgdGhlIHJlYWwgcXVlc3Rpb24gaXMsIGhvdyByZWFjaGFibGUgYXJlIHRoZXNlIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBkbyBJIG5lZWQ/IFRoYW5rZnVsbHksIEJQRiBpdHNlbGYgaXMgZW5hYmxlZCBieSBgQ09ORklHX0JQRmAgYW5kIGBDT05GSUdfQlBGX1NZU0NBTExgLCBhbmQgc2luY2Ugd2UgYXJlIHRhbGtpbmcgYWJvdXQgdGhlIHZlcmlmaWVyLCBgQlBGX1NZU0NBTExgIHNob3VsZCBiZSB0aGUga2V5IG9uZS5cblxuSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhlc2UgZnVuY3Rpb25zOlxuLSBgYnRmX3N0cnVjdF9hY2Nlc3NgXG4tIGBidGZfc3RydWN0X2lkc19tYXRjaGBcbi0gYG1hcF9rcHRyX21hdGNoX3R5cGVgXG4tIGBjaGVja19yZWdfdHlwZWBcbi0gYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgXG4tIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYFxuXG5BcmUgdGhlc2UgZ29vZCBmdXp6aW5nIHRhcmdldHM/IGBidGZfc3RydWN0X2FjY2Vzc2AgaXMgaW52b2x2ZWQgaW4gbWVtb3J5IGFjY2VzcyBjaGVja3MgaW4gdGhlIHZlcmlmaWVyLiBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgIGlzIHVzZWQgZm9yIHR5cGUgbWF0Y2hpbmcgd2l0aGluIHRoZSB2ZXJpZmllci4gYG1hcF9rcHRyX21hdGNoX3R5cGVgIGhhbmRsZXMga3B0ciBjb21wYXJpc29ucy4gYGNoZWNrX3JlZ190eXBlYCBpcyBvYnZpb3VzbHkgYWJvdXQgY2hlY2tpbmcgcmVnaXN0ZXIgdHlwZXMuIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCBpcyBpbnZvbHZlZCBpbiBrZnVuYyBhcmd1bWVudHMuIEZpbmFsbHksIGBfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlYCBpcyB0aWVkIHRvIGdyYXBoIG5vZGVzLCBsaWtlIGxpbmtlZCBsaXN0cyBhbmQgcmJ0cmVlcy5cblxuSSdtIGxlYW5pbmcgdG93YXJkcyBmdXp6aW5nIGBidGZfc3RydWN0X2FjY2Vzc2AsIGBidGZfc3RydWN0X2lkc19tYXRjaGAsIGBtYXBfa3B0cl9tYXRjaF90eXBlYCwgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgLCBhbmQgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgLlxuXG5MZXQgbWUgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gYmUgc3VyZSwgYXJlIHRoZXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZ3M/IEFzaWRlIGZyb20gYENPTkZJR19CUEZfU1lTQ0FMTGAsIEknbGwgbmVlZCBgQ09ORklHX0RFQlVHX0lORk9fQlRGYCBzaW5jZSB0aGlzIGlzIHJlbGF0ZWQgdG8gQlRGLiBJIHNob3VsZCBkbyBhIHF1aWNrIGdyZXAganVzdCB0byBjb25maXJtIGV2ZXJ5dGhpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1ODEsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MzAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxMDozMDoxNi44NjE5MjgxODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMyMTc5NTI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJidGZfc3RydWN0X2lkc19tYXRjaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2JwZi5oPTMxNDI9aW50IGJ0Zl9zdHJ1Y3RfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTMxNDUtXFx0XFx0ICAgICAgdTMyICpuZXh0X2J0Zl9pZCwgZW51bSBicGZfdHlwZV9mbGFnICpmbGFnLCBjb25zdCBjaGFyICoqZmllbGRfbmFtZSk7XFxuaW5jbHVkZS9saW51eC9icGYuaDozMTQ2OmJvb2wgYnRmX3N0cnVjdF9pZHNfbWF0Y2goc3RydWN0IGJwZl92ZXJpZmllcl9sb2cgKmxvZyxcXG5pbmNsdWRlL2xpbnV4L2JwZi5oLTMxNDctXFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgYnRmICpidGYsIHUzMiBpZCwgaW50IG9mZixcXG4tLVxcbmtlcm5lbC9icGYvYnRmLmM9NzQ1Nz1ib29sIGJ0Zl90eXBlc19hcmVfc2FtZShjb25zdCBzdHJ1Y3QgYnRmICpidGYxLCB1MzIgaWQxLFxcbi0tXFxua2VybmVsL2JwZi9idGYuYy03NDY2LVxcbmtlcm5lbC9icGYvYnRmLmM6NzQ2Nzpib29sIGJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKHN0cnVjdCBicGZfdmVyaWZpZXJfbG9nICpsb2csXFxua2VybmVsL2JwZi9idGYuYy03NDY4LVxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCB1MzIgaWQsIGludCBvZmYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDMxOD1zdGF0aWMgaW50IG1hcF9rcHRyX21hdGNoX3R5cGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00Mzc0LVxcdCAqIEluIHRoZSBrcHRyX3JlZiBjYXNlLCBjaGVja19mdW5jX2FyZ19yZWdfb2ZmIGFscmVhZHkgZW5zdXJlcyByZWctXFx1MDAzZXZhcl9vZmZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDM3NTpcXHQgKiBpcyB6ZXJvLiBXZSBtdXN0IGFsc28gZW5zdXJlIHRoYXQgYnRmX3N0cnVjdF9pZHNfbWF0Y2ggZG9lcyBub3Qgd2Fsa1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00Mzc2LVxcdCAqIHRoZSBzdHJ1Y3QgdG8gbWF0Y2ggdHlwZSBhZ2FpbnN0IGZpcnN0IG1lbWJlciBvZiBzdHJ1Y3QsIGkuZS4gcmVqZWN0XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDM3OS1cXHQgKi9cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDM4MDpcXHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFxcdTAwMjZlbnYtXFx1MDAzZWxvZywgcmVnLVxcdTAwM2VidGYsIHJlZy1cXHUwMDNlYnRmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQzODEtXFx0XFx0XFx0XFx0ICBrcHRyX2ZpZWxkLVxcdTAwM2VrcHRyLmJ0Ziwga3B0cl9maWVsZC1cXHUwMDNla3B0ci5idGZfaWQsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9Nzg1Nz1zdGF0aWMgaW50IGNoZWNrX3JlZ190eXBlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzk3MS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6Nzk3MjpcXHRcXHRcXHRpZiAoIWJ0Zl9zdHJ1Y3RfaWRzX21hdGNoKFxcdTAwMjZlbnYtXFx1MDAzZWxvZywgcmVnLVxcdTAwM2VidGYsIHJlZy1cXHUwMDNlYnRmX2lkLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03OTczLVxcdFxcdFxcdFxcdFxcdFxcdCAgcmVnLVxcdTAwM2V2YXJfb2ZmLnZhbHVlLCBidGZfdm1saW51eCwgKmFyZ19idGZfaWQsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEzNzc9c3RhdGljIGludCBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE0MjAtXFx0ICogb25seSBkaWZmZXJlbmNlIGhlcmUgaXMgdGhhdCB3ZSdyZSBzaW1wbHkgYWxsb3dpbmdcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE0MjE6XFx0ICogYnRmX3N0cnVjdF9pZHNfbWF0Y2goKSB0byB3YWxrIHRoZSBzdHJ1Y3QgYXQgdGhlIDB0aCBvZmZzZXQsIGFuZFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTQyMi1cXHQgKiByZXNvbHZlIHR5cGVzLlxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExNDMxLVxcdHJlZ19yZWZfdG5hbWUgPSBidGZfbmFtZV9ieV9vZmZzZXQocmVnX2J0ZiwgcmVnX3JlZl90LVxcdTAwM2VuYW1lX29mZik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExNDMyOlxcdHN0cnVjdF9zYW1lID0gYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWdfYnRmLCByZWdfcmVmX2lkLCByZWctXFx1MDAzZXZhcl9vZmYudmFsdWUsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExNDMzLVxcdFxcdFxcdFxcdFxcdCAgIG1ldGEtXFx1MDAzZWJ0ZiwgcmVmX2lkLCBzdHJpY3RfdHlwZV9tYXRjaCxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTg0MT1fX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE4NzktXFx0dCA9IGJ0Zl90eXBlX2J5X2lkKHJlZy1cXHUwMDNlYnRmLCByZWctXFx1MDAzZWJ0Zl9pZCk7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExODgwOlxcdGlmICghYnRmX3N0cnVjdF9pZHNfbWF0Y2goXFx1MDAyNmVudi1cXHUwMDNlbG9nLCByZWctXFx1MDAzZWJ0ZiwgcmVnLVxcdTAwM2VidGZfaWQsIDAsIGZpZWxkLVxcdTAwM2VncmFwaF9yb290LmJ0ZixcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE4ODEtXFx0XFx0XFx0XFx0ICBmaWVsZC1cXHUwMDNlZ3JhcGhfcm9vdC52YWx1ZV9idGZfaWQsIHRydWUsXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdmVyaWZpZXIvbWFwX2twdHIuYy0xNTcte1xcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9tYXBfa3B0ci5jOjE1ODpcXHRcXFwibWFwX2twdHI6IHVucmVmOiByZWplY3QgYnRmX3N0cnVjdF9pZHNfbWF0Y2ggPT0gZmFsc2VcXFwiLFxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi92ZXJpZmllci9tYXBfa3B0ci5jLTE1OS1cXHQuaW5zbnMgPSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDEwOjMwOjE5LjE4MzczMDY0MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyNTYxMjE0NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQlBGIFZlcmlmaWVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IGRpZ2dpbmcgaW50byB0aGUgQlBGIHZlcmlmaWVyJ3MgY29yZSBmdW5jdGlvbmFsaXR5LCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBob3cgaXQgaGFuZGxlcyBmbGV4aWJsZSBhcnJheXMgd2l0aGluIGFsbG9jYXRlZCBvYmplY3RzLiBTZWVtcyBsaWtlIGEgYnVnIGZpeCByZWxhdGVkIHRvIHRoYXQsIHdoaWNoIGlzIGdvb2QuIFRoZSBjb25maWdzIGl0IGRlcGVuZHMgb24gYXJlIHByZXR0eSBzdGFuZGFyZDogYEJQRl9TWVNDQUxMYCBhbmQgYERFQlVHX0lORk9fQlRGYC5cblxuSSBuZWVkIHRvIGZvY3VzIG9uIHRoZXNlIHN5bWJvbHM6IGBidGZfc3RydWN0X2FjY2Vzc2AsIGBidGZfc3RydWN0X2lkc19tYXRjaGAsIGBtYXBfa3B0cl9tYXRjaF90eXBlYCwgYHByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRgLCBhbmQgYF9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVgLiBJIG5lZWQgdG8gYmUgc3VyZSBhYm91dCB0aGVpciBzY29wZSBiZWZvcmUgcHJvY2VlZGluZy5cblxuQWxyaWdodCwgYSBxdWljayBjaGVja+KApiBgbWFwX2twdHJfbWF0Y2hfdHlwZWAgYW5kIGBwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkYCBhcmUgc3RhdGljLCB3aGljaCBpcyB3aGF0IEkgc3VzcGVjdGVkLiBgYnRmX3N0cnVjdF9hY2Nlc3NgIGFuZCBgYnRmX3N0cnVjdF9pZHNfbWF0Y2hgIGFyZSBleHBvcnRlZC9nbG9iYWwsIG1lYW5pbmcgdGhleSBhcmUgbW9yZSBsaWtlbHkgZW50cnkgcG9pbnRzIHRoYXQgYXJlIG5lZWRlZCBmb3IgZXh0ZXJuYWwgYWNjZXNzLlxuXG5TbywgSSBjYW4gdXNlIGFsbCB0aGVzZSBzeW1ib2xzIEkgbGlzdGVkLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHRhcmdldGVkIGF0IHByZXZlbnRpbmcgdGhlIHZlcmlmaWVyIGZyb20gaW5jb3JyZWN0bHkgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nIGZvciBhbGxvY2F0ZWQgdHlwZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS5cblxuTGV0IG1lIGRvdWJsZS1jaGVjayBgY2hlY2tfcmVnX3R5cGVgIHF1aWNrbHkuIEhtbSwgaXQgc2VlbXMgYSBsaXR0bGUgdG9vIGdlbmVyYWwgZm9yIHRoaXMgc3BlY2lmaWMgaXNzdWUsIHNvIEknbGwgcHJvYmFibHkgbGVhdmUgdGhhdCBvdXQgb2YgdGhlIHNldC4gVGhlIG1haW4gcG9pbnQgaXMgdGhhdCB0aGlzIHBhdGNoIGNoYW5nZXMgdGhlIEJQRiB2ZXJpZmllciB0byBhZGRyZXNzIHRoaXMgQlRGLXJlbGF0ZWQgaXNzdWUsIGFuZCBzaG91bGQgYmUgZnV6emVkIGFzIGEgcmVzdWx0LlxuXG5SaWdodCwgdGltZSB0byBtb3ZlIG9uIGFuZCBzZXQgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzE3MywiT3V0cHV0VG9rZW5zIjoxNjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTA6MzA6MjYuNDM5ODU1MTI0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODAwODEwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIixcbiAgICBcIkRFQlVHX0lORk9fQlRGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnRmX3N0cnVjdF9hY2Nlc3NcIixcbiAgICBcImJ0Zl9zdHJ1Y3RfaWRzX21hdGNoXCIsXG4gICAgXCJtYXBfa3B0cl9tYXRjaF90eXBlXCIsXG4gICAgXCJwcm9jZXNzX2tmX2FyZ19wdHJfdG9fYnRmX2lkXCIsXG4gICAgXCJfX3Byb2Nlc3Nfa2ZfYXJnX3B0cl90b19ncmFwaF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmV2ZW50IHdhbGtpbmcgZmxleGlibGUgYXJyYXlzIGZvciBhbGxvY2F0ZWQgdHlwZXMgZHVyaW5nIEJURiBzdHJ1Y3QgYWNjZXNzIGFuZCB0eXBlIG1hdGNoaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBob3cgQlBGIHByb2dyYW1zIGFyZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiREVCVUdfSU5GT19CVEZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidGZfc3RydWN0X2FjY2Vzc1wiLFxuICAgIFwiYnRmX3N0cnVjdF9pZHNfbWF0Y2hcIixcbiAgICBcIm1hcF9rcHRyX21hdGNoX3R5cGVcIixcbiAgICBcInByb2Nlc3Nfa2ZfYXJnX3B0cl90b19idGZfaWRcIixcbiAgICBcIl9fcHJvY2Vzc19rZl9hcmdfcHRyX3RvX2dyYXBoX25vZGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXZlbnQgd2Fsa2luZyBmbGV4aWJsZSBhcnJheXMgZm9yIGFsbG9jYXRlZCB0eXBlcyBkdXJpbmcgQlRGIHN0cnVjdCBhY2Nlc3MgYW5kIHR5cGUgbWF0Y2hpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIGhvdyBCUEYgcHJvZ3JhbXMgYXJlIHZlcmlmaWVkIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowmvrwc[1] Phase: Succeeded StartedAt: 2026-06-30 10:31:29 +0000 UTC FinishedAt: 2026-06-30 10:31:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-30 10:31:29 +0000 UTC FinishedAt: 2026-06-30 10:31:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2] Phase: Succeeded StartedAt: 2026-06-30 10:31:29 +0000 UTC FinishedAt: 2026-06-30 14:41:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-30 10:31:29 +0000 UTC FinishedAt: 2026-06-30 14:41:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-30 10:31:29 +0000 UTC FinishedAt: 2026-06-30 10:32:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-30 10:31:29 +0000 UTC FinishedAt: 2026-06-30 10:32:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-convert-artifact-525952378/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-30 10:32:15 +0000 UTC FinishedAt: 2026-06-30 11:04:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-30 10:32:15 +0000 UTC FinishedAt: 2026-06-30 11:04:47 +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:*28b58ccc-77b4-45e8-8d0d-994821b96bcd,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-workflowmvrwc/series-workflowmvrwc-convert-artifact-525952378/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": "cd423d6c-4fd4-4079-b651-ef7999de96ac", "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-workflowmvrwc/series-workflowmvrwc-build-action-2860725800/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-30 10:32:15 +0000 UTC FinishedAt: 2026-06-30 11:03:45 +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:*28b58ccc-77b4-45e8-8d0d-994821b96bcd,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-workflowmvrwc/series-workflowmvrwc-convert-artifact-525952378/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": "cd423d6c-4fd4-4079-b651-ef7999de96ac", "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-workflowmvrwc/series-workflowmvrwc-build-action-2860725800/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-30 11:04:47 +0000 UTC FinishedAt: 2026-06-30 11:04:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-30 11:04:47 +0000 UTC FinishedAt: 2026-06-30 11:04:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-30 11:04:47 +0000 UTC FinishedAt: 2026-06-30 11:05:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-30 11:04:47 +0000 UTC FinishedAt: 2026-06-30 11:05:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-convert-artifact-935479509/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-30 11:05:30 +0000 UTC FinishedAt: 2026-06-30 11:07:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-30 11:05:30 +0000 UTC FinishedAt: 2026-06-30 11:07:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cd423d6c-4fd4-4079-b651-ef7999de96ac,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-workflowmvrwc/series-workflowmvrwc-build-action-2860725800/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-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-30 11:07:18 +0000 UTC FinishedAt: 2026-06-30 11:07:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-30 11:07:18 +0000 UTC FinishedAt: 2026-06-30 11:07:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-30 11:07:18 +0000 UTC FinishedAt: 2026-06-30 11:33:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-30 11:07:18 +0000 UTC FinishedAt: 2026-06-30 11:33:35 +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:*28b58ccc-77b4-45e8-8d0d-994821b96bcd,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-workflowmvrwc/series-workflowmvrwc-convert-artifact-935479509/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": "dec5faf5-c2b2-4720-99c3-11e5d71efe67", "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-workflowmvrwc/series-workflowmvrwc-build-action-2511563361/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-30 11:07:18 +0000 UTC FinishedAt: 2026-06-30 11:33:23 +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:*28b58ccc-77b4-45e8-8d0d-994821b96bcd,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-workflowmvrwc/series-workflowmvrwc-convert-artifact-935479509/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": "dec5faf5-c2b2-4720-99c3-11e5d71efe67", "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-workflowmvrwc/series-workflowmvrwc-build-action-2511563361/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-30 11:33:35 +0000 UTC FinishedAt: 2026-06-30 11:33:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-30 11:33:35 +0000 UTC FinishedAt: 2026-06-30 11:33:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-30 11:33:35 +0000 UTC FinishedAt: 2026-06-30 11:35:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-30 11:33:35 +0000 UTC FinishedAt: 2026-06-30 11:35:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dec5faf5-c2b2-4720-99c3-11e5d71efe67,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-build-action-2511563361/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-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 14:41:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 14:41:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*cd423d6c-4fd4-4079-b651-ef7999de96ac,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dec5faf5-c2b2-4720-99c3-11e5d71efe67,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-build-action-2860725800/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-build-action-2511563361/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 11:36:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 11:35:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-convert-artifact-2114734522/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 11:35:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 11:35:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-30 11:35:23 +0000 UTC FinishedAt: 2026-06-30 11:35:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-30 11:36:09 +0000 UTC FinishedAt: 2026-06-30 14:41:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvrwc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["btf_struct_access","btf_struct_ids_match","map_kptr_match_type","process_kf_arg_ptr_to_btf_id","__process_kf_arg_ptr_to_graph_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"53435562a725962e4de0c29653223129ba11643a","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","DEBUG_INFO_BTF"],"series_id":"06aef4d4-0f6f-4585-8398-9a0ffe2d32a7","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-30 11:36:09 +0000 UTC FinishedAt: 2026-06-30 14:41:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cd423d6c-4fd4-4079-b651-ef7999de96ac,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dec5faf5-c2b2-4720-99c3-11e5d71efe67,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-build-action-2860725800/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-build-action-2511563361/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmvrwc/series-workflowmvrwc-convert-artifact-2114734522/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}