Name: series-workflowh8njs Phase: Succeeded StartedAt: 2026-07-18 09:38:18 +0000 UTC FinishedAt: 2026-07-18 13:56:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[0] Phase: Succeeded StartedAt: 2026-07-18 09:38:18 +0000 UTC FinishedAt: 2026-07-18 09:58:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[0].run-triage Phase: Succeeded StartedAt: 2026-07-18 09:38:18 +0000 UTC FinishedAt: 2026-07-18 09:58:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "e8b64d09-1614-4089-bef2-974d09328afa" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_named_node_up", "tipc_named_dist_cluster_scope", "tipc_node_dist_bulk", "named_distribute", "tipc_net_finalize" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA5OjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbmV0X2ZpbmFsaXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSYjMzk7cyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMzU3YTQyMGQzNWU2NTE4NGYzZDA3MzJmYTc4YWJhN2U2OWUzNDY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTggMDk6NTc6NTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuY1xuQEAgLTYwLDYgJiM0Mzs2MCw3IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCB0aXBjX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldClcbiBcdHRuLVx1MDAzZXRyaWFsX2FkZHIgPSAwO1xuIFx0dG4tXHUwMDNlYWRkcl90cmlhbF9lbmQgPSAwO1xuIFx0dG4tXHUwMDNlY2FwYWJpbGl0aWVzID0gVElQQ19OT0RFX0NBUEFCSUxJVElFUztcbiYjNDM7XHRhdG9taWNfc2V0KFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCwgMCk7XG4gXHRJTklUX1dPUksoXHUwMDI2dG4tXHUwMDNld29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7XG4gXHRtZW1zZXQodG4tXHUwMDNlbm9kZV9pZCwgMCwgc2l6ZW9mKHRuLVx1MDAzZW5vZGVfaWQpKTtcbiBcdG1lbXNldCh0bi1cdTAwM2Vub2RlX2lkX3N0cmluZywgMCwgc2l6ZW9mKHRuLVx1MDAzZW5vZGVfaWRfc3RyaW5nKSk7XG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5oIGIvbmV0L3RpcGMvY29yZS5oXG5pbmRleCA5Y2U1ZjlmZjZjYzAzMS4uNzY3Njg4NDRjODA4MTQgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuaFxuQEAgLTE0NSw2ICYjNDM7MTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcbiBcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIFx0LyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi9cbiBcdGF0b21pY190IHdxX2NvdW50O1xuJiM0MztcdC8qIGZsYWcgdG8gaW5kaWNhdGUgd29yayBoYXMgZmluaXNoZWQgKi9cbiYjNDM7XHRhdG9taWNfdCBmaW5hbGl6ZWQ7XG4gfTtcbiBcbiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aXBjX25ldCAqdGlwY19uZXQoc3RydWN0IG5ldCAqbmV0KVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuYyBiL25ldC90aXBjL25hbWVfZGlzdHIuY1xuaW5kZXggMTkwYjQ5YzVjYmMzZWMuLjViMGZiMDkyMjZmYzY4IDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbkBAIC0xNDcsNyAmIzQzOzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxuICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpblxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcbiAgKi9cbi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiYjNDM7c3RhdGljIGludCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiBcdFx0XHQgICAgIHUzMiBkbm9kZSwgc3RydWN0IGxpc3RfaGVhZCAqcGxzLCB1MTYgc2Vxbm8pXG4ge1xuIFx0c3RydWN0IHB1YmxpY2F0aW9uICpwdWJsO1xuQEAgLTE2NCw4ICYjNDM7MTY0LDkgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXG4gXHRcdFx0c2tiID0gbmFtZWRfcHJlcGFyZV9idWYobmV0LCBQVUJMSUNBVElPTiwgbXNnX3JlbSxcbiBcdFx0XHRcdFx0XHRkbm9kZSk7XG4gXHRcdFx0aWYgKCFza2IpIHtcbiYjNDM7XHRcdFx0XHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcbiBcdFx0XHRcdHByX3dhcm4oXCYjMzQ7QnVsayBwdWJsaWNhdGlvbiBmYWlsdXJlXFxuXCYjMzQ7KTtcbi1cdFx0XHRcdHJldHVybjtcbiYjNDM7XHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuIFx0XHRcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcbkBAIC0xOTIsOSAmIzQzOzE5MywxNSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiBcdFx0c2tiX3RyaW0oc2tiLCBJTlRfSF9TSVpFICYjNDM7IChtc2dfZHN6IC0gbXNnX3JlbSkpO1xuIFx0XHRfX3NrYl9xdWV1ZV90YWlsKGxpc3QsIHNrYik7XG4gXHR9XG4mIzQzO1x0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xuJiM0MztcdFx0cHJfd2FybihcJiMzNDtCdWxrIHB1YmxpY2F0aW9uIGxpc3QgZW1wdHksIG5vdGhpbmcgdG8gZGlzdHJpYnV0ZVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRyZXR1cm4gMTtcbiYjNDM7XHR9XG4gXHRoZHIgPSBidWZfbXNnKHNrYl9wZWVrX3RhaWwobGlzdCkpO1xuIFx0bXNnX3NldF9sYXN0X2J1bGsoaGRyKTtcbiBcdG1zZ19zZXRfbmFtZWRfc2Vxbm8oaGRyLCBzZXFubyk7XG4mIzQzO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiAvKipcbkBAIC0yMDMsNyAmIzQzOzIxMCw3IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuICAqIEBkbm9kZTogZGVzdGluYXRpb24gbm9kZVxuICAqIEBjYXBhYmlsaXRpZXM6IHBlZXIgbm9kZSYjMzk7cyBjYXBhYmlsaXRpZXNcbiAgKi9cbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiYjNDM7aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiB7XG4gXHRzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTtcbiBcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xuQEAgLTIxOCw5ICYjNDM7MjI1LDUzIEBAIHZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dG4tXHUwMDNlbmFtZXRibF9sb2NrKTtcbiBcbiBcdHJlYWRfbG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuLVx0bmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubyk7XG4mIzQzO1x0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xuJiM0MztcdCAqIG5hbWUgdGFibGUgeWV0LlxuJiM0MztcdCAqL1xuJiM0MztcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuJiM0MztcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRcdHJldHVybiAxO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIC1FTk9CVUZTO1xuJiM0MztcdH1cbiYjNDM7XG4gXHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiBcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuJiM0MztcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xuJiM0MztcdHN0cnVjdCBza19idWZmX2hlYWQgaGVhZDtcbiYjNDM7XHR1MTYgc2Vxbm87XG4mIzQzO1xuJiM0MztcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZoZWFkKTtcbiYjNDM7XHR3YWl0X3Zhcl9ldmVudChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCkpO1xuJiM0MztcdHNwaW5fbG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuJiM0MztcdHNlcW5vID0gbnQtXHUwMDNlc25kX254dDtcbiYjNDM7XHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuJiM0MztcbiYjNDM7XHRyZWFkX2xvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcbiYjNDM7XHRcdC8qIGZpbmFsaXplIGlzIGRvbmUgYnV0IG5vdGhpbmcgd2FzIHB1Ymxpc2hlZCAocHVibGlzaFxuJiM0MztcdFx0ICogZmFpbGVkKTogYSBwZXJtYW5lbnQgc3RhdGUsIG5vdGhpbmcgdG8gc3luY2hyb25pemUuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XHR9XG4mIzQzO1x0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIC1FTk9CVUZTO1xuJiM0MztcdH1cbiYjNDM7XHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiYjNDM7XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiB9XG4gXG4gLyoqXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG5pbmRleCBjNjc3ZjZmMDgyZGZiNy4uY2FkZjRlOGMzZTY2YzIgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxuQEAgLTY5LDcgJiM0Mzs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcbiBcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuJiM0MztpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTtcbiYjNDM7aW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKTtcbiB2b2lkIHRpcGNfbmFtZWRfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbmFtZWRxLFxuIFx0XHQgICAgdTE2ICpyY3Zfbnh0LCBib29sICpvcGVuKTtcbiB2b2lkIHRpcGNfbmFtZWRfcmVpbml0KHN0cnVjdCBuZXQgKm5ldCk7XG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmV0LmMgYi9uZXQvdGlwYy9uZXQuY1xuaW5kZXggN2U2NWQwYjBjNGE4ZDEuLjJhYTg4MTJjNTUxYWRkIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmV0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25ldC5jXG5AQCAtMTM4LDcgJiM0MzsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcbiBcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XG4gXHR0aXBjX3NrX3JlaW5pdChuZXQpO1xuIFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcbi1cdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKTtcbiYjNDM7XHRpZiAoIXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKSlcbiYjNDM7XHRcdHByX3dhcm4oXCYjMzQ7RmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcXG5cJiMzNDspO1xuJiM0MztcdGF0b21pY19pbmMoXHUwMDI2dG4tXHUwMDNlZmluYWxpemVkKTtcbiYjNDM7XHR3YWtlX3VwX3ZhcihcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuIH1cbiBcbiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLmY4MjYzNDdiNTg3MDkxIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xMTEsNiAmIzQzOzExMSw3IEBAIHN0cnVjdCB0aXBjX2JjbGlua19lbnRyeSB7XG4gICogQHBlZXJfbmV0OiBwZWVyJiMzOTtzIG5ldCBuYW1lc3BhY2VcbiAgKiBAcGVlcl9oYXNoX21peDogaGFzaCBmb3IgdGhpcyBwZWVyIChGSVhNRSlcbiAgKiBAY3J5cHRvX3J4OiBSWCBjcnlwdG8gaGFuZGxlclxuJiM0MzsgKiBAd29yazogd29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9uc1xuICAqL1xuIHN0cnVjdCB0aXBjX25vZGUge1xuIFx0dTMyIGFkZHI7XG5AQCAtMTQ1LDYgJiM0MzsxNDYsNyBAQCBzdHJ1Y3QgdGlwY19ub2RlIHtcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXG4gXHRzdHJ1Y3QgdGlwY19jcnlwdG8gKmNyeXB0b19yeDtcbiAjZW5kaWZcbiYjNDM7XHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcbiB9O1xuIFxuIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOlxuQEAgLTMwMyw2ICYjNDM7MzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycClcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXG4gXHR0aXBjX2NyeXB0b19zdG9wKFx1MDAyNm4tXHUwMDNlY3J5cHRvX3J4KTtcbiAjZW5kaWZcbiYjNDM7XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNm4tXHUwMDNld29yayk7XG4gXHRrZnJlZShuKTtcbiB9XG4gXG5AQCAtMzkzLDYgJiM0MzszOTYsMTkgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHR3cml0ZV91bmxvY2tfYmgoXHUwMDI2bi1cdTAwM2Vsb2NrKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHRpcGNfbm9kZV9kaXN0X2J1bGsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHRpcGNfbm9kZSAqbm9kZSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19ub2RlLCB3b3JrKTtcbiYjNDM7XG4mIzQzO1x0aWYgKHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKG5vZGUtXHUwMDNlbmV0LCBub2RlLVx1MDAzZWFkZHIpIFx1MDAzYyAwKSB7XG4mIzQzO1x0XHR1MzIgYmVhcmVyX2lkID0gbm9kZS1cdTAwM2VsaW5rX2lkIFx1MDAyNiAweGZmZmY7XG4mIzQzO1xuJiM0MztcdFx0dGlwY19ub2RlX2xpbmtfZG93bihub2RlLCBiZWFyZXJfaWQsIGZhbHNlKTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHRpcGNfbm9kZV9wdXQobm9kZSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0X19yZWxlYXNlcyhuLVx1MDAzZWxvY2spXG4ge1xuQEAgLTQyNCw4ICYjNDM7NDQwLDIyIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcbiBcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9ET1dOKVxuIFx0XHR0aXBjX3B1Ymxfbm90aWZ5KG5ldCwgcHVibF9saXN0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4gXG4tXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApXG4tXHRcdHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiYjNDM7XHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApIHtcbiYjNDM7XHRcdGludCByYyA9IDA7XG4mIzQzO1xuJiM0MztcdFx0cmMgPSB0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4mIzQzO1x0XHQvKiBEZWZlciBidWxrIGRpc3RyaWJ1dGlvbiB0byB3b3JrIHF1ZXVlICovXG4mIzQzO1x0XHRpZiAocmMgXHUwMDNlIDApIHtcbiYjNDM7XHRcdFx0dGlwY19ub2RlX2dldChuKTtcbiYjNDM7XHRcdFx0aWYgKCFzY2hlZHVsZV93b3JrKFx1MDAyNm4tXHUwMDNld29yaykpXG4mIzQzO1x0XHRcdFx0dGlwY19ub2RlX3B1dChuKTtcbiYjNDM7XHRcdH0gZWxzZSBpZiAocmMgXHUwMDNjIDApIHtcbiYjNDM7XHRcdFx0LyogQnJpbmcgdGhlIGxpbmsgZG93biB0byBzdGFydCBvdmVyIGJ1bGsgZGlzdHJpYnV0aW9uXG4mIzQzO1x0XHRcdCAqIHdoZW4gdGhlIGxpbmsgaXMgdXAgYWdhaW4uXG4mIzQzO1x0XHRcdCAqL1xuJiM0MztcdFx0XHR0aXBjX25vZGVfbGlua19kb3duKG4sIGJlYXJlcl9pZCwgZmFsc2UpO1xuJiM0MztcdFx0fVxuJiM0MztcdH1cbiBcbiBcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTElOS19VUCkge1xuIFx0XHR0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTtcbkBAIC01NjQsNiAmIzQzOzU5NCw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWxpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2VwdWJsX2xpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2Vjb25uX3Nrcyk7XG4mIzQzO1x0SU5JVF9XT1JLKFx1MDAyNm4tXHUwMDNld29yaywgdGlwY19ub2RlX2Rpc3RfYnVsayk7XG4gXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkubmFtZWRxKTtcbiBcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5pbnB1dHExKTtcbiBcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5LmFycnZxKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssCiAgICAmIzM0O3RpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kaXN0X2J1bGsmIzM0OywKICAgICYjMzQ7bmFtZWRfZGlzdHJpYnV0ZSYjMzQ7LAogICAgJiMzNDt0aXBjX25ldF9maW5hbGl6ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUmIzM5O3Mgb3duIHN0YXRlIGlzIHB1Ymxpc2hlZC4gSXQgaW50cm9kdWNlcyBhIG5ldyB3b3JrIGl0ZW0gYW5kIGEgc3luY2hyb25pemF0aW9uIGZsYWcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGxvZ2ljIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIG5ldHdvcmtpbmcgY29kZSB0aGF0IGNhbiBiZSByZWFjaGVkIHdoZW4gVElQQyBub2RlcyBjb25uZWN0IGFuZCBleGNoYW5nZSByb3V0aW5nL25hbWUgdGFibGVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhMzU3YTQyMGQzNWU2NTE4NGYzZDA3MzJmYTc4YWJhN2U2OWUzNDY1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTggMDk6NTc6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmMgYi9uZXQvdGlwYy9jb3JlLmMKaW5kZXggNDM0ZTcwZWFiZTA4MTIuLmNlMTY0NTA5ZDllMjdhIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5jCkBAIC02MCw2ICYjNDM7NjAsNyBAQCBzdGF0aWMgaW50IF9fbmV0X2luaXQgdGlwY19pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAJdG4tJmd0O3RyaWFsX2FkZHIgPSAwOwogCXRuLSZndDthZGRyX3RyaWFsX2VuZCA9IDA7CiAJdG4tJmd0O2NhcGFiaWxpdGllcyA9IFRJUENfTk9ERV9DQVBBQklMSVRJRVM7CiYjNDM7CWF0b21pY19zZXQoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkLCAwKTsKIAlJTklUX1dPUksoJmFtcDt0bi0mZ3Q7d29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7CiAJbWVtc2V0KHRuLSZndDtub2RlX2lkLCAwLCBzaXplb2YodG4tJmd0O25vZGVfaWQpKTsKIAltZW1zZXQodG4tJmd0O25vZGVfaWRfc3RyaW5nLCAwLCBzaXplb2YodG4tJmd0O25vZGVfaWRfc3RyaW5nKSk7CmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmggYi9uZXQvdGlwYy9jb3JlLmgKaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9jb3JlLmgKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5oCkBAIC0xNDUsNiAmIzQzOzE0NSw4IEBAIHN0cnVjdCB0aXBjX25ldCB7CiAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJLyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi8KIAlhdG9taWNfdCB3cV9jb3VudDsKJiM0MzsJLyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqLwomIzQzOwlhdG9taWNfdCBmaW5hbGl6ZWQ7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aXBjX25ldCAqdGlwY19uZXQoc3RydWN0IG5ldCAqbmV0KQpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jCmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuYwpAQCAtMTQ3LDcgJiM0MzsxNDcsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcCkKICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpbgogICogQHNlcW5vOiBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgbWVzc2FnZQogICovCi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCwKJiM0MztzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogCQkJICAgICB1MzIgZG5vZGUsIHN0cnVjdCBsaXN0X2hlYWQgKnBscywgdTE2IHNlcW5vKQogewogCXN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibDsKQEAgLTE2NCw4ICYjNDM7MTY0LDkgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAJCQlza2IgPSBuYW1lZF9wcmVwYXJlX2J1ZihuZXQsIFBVQkxJQ0FUSU9OLCBtc2dfcmVtLAogCQkJCQkJZG5vZGUpOwogCQkJaWYgKCFza2IpIHsKJiM0MzsJCQkJX19za2JfcXVldWVfcHVyZ2UobGlzdCk7CiAJCQkJcHJfd2FybigmIzM0O0J1bGsgcHVibGljYXRpb24gZmFpbHVyZVxuJiMzNDspOwotCQkJCXJldHVybjsKJiM0MzsJCQkJcmV0dXJuIDE7CiAJCQl9CiAJCQloZHIgPSBidWZfbXNnKHNrYik7CiAJCQltc2dfc2V0X2JjX2Fja19pbnZhbGlkKGhkciwgdHJ1ZSk7CkBAIC0xOTIsOSAmIzQzOzE5MywxNSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCwKIAkJc2tiX3RyaW0oc2tiLCBJTlRfSF9TSVpFICYjNDM7IChtc2dfZHN6IC0gbXNnX3JlbSkpOwogCQlfX3NrYl9xdWV1ZV90YWlsKGxpc3QsIHNrYik7CiAJfQomIzQzOwlpZiAoc2tiX3F1ZXVlX2VtcHR5KGxpc3QpKSB7CiYjNDM7CQlwcl93YXJuKCYjMzQ7QnVsayBwdWJsaWNhdGlvbiBsaXN0IGVtcHR5LCBub3RoaW5nIHRvIGRpc3RyaWJ1dGVcbiYjMzQ7KTsKJiM0MzsJCXJldHVybiAxOwomIzQzOwl9CiAJaGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTsKIAltc2dfc2V0X2xhc3RfYnVsayhoZHIpOwogCW1zZ19zZXRfbmFtZWRfc2Vxbm8oaGRyLCBzZXFubyk7CiYjNDM7CiYjNDM7CXJldHVybiAwOwogfQogCiAvKioKQEAgLTIwMyw3ICYjNDM7MjEwLDcgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGUKICAqIEBjYXBhYmlsaXRpZXM6IHBlZXIgbm9kZSYjMzk7cyBjYXBhYmlsaXRpZXMKICAqLwotdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpCiYjNDM7aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcykKIHsKIAlzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTsKIAlzdHJ1Y3QgdGlwY19uZXQgKnRuID0gdGlwY19uZXQobmV0KTsKQEAgLTIxOCw5ICYjNDM7MjI1LDUzIEBAIHZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKQogCXNwaW5fdW5sb2NrX2JoKCZhbXA7dG4tJmd0O25hbWV0YmxfbG9jayk7CiAKIAlyZWFkX2xvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKLQluYW1lZF9kaXN0cmlidXRlKG5ldCwgJmFtcDtoZWFkLCBkbm9kZSwgJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSwgc2Vxbm8pOwomIzQzOwkvKiB0aXBjX25ldF9maW5hbGl6ZV93b3JrKCkgaGFzIG5vdCBmaW5pc2hlZCBpbnNlcnRpbmcgc2VsZiBhZGRyZXNzIHRvCiYjNDM7CSAqIG5hbWUgdGFibGUgeWV0LgomIzQzOwkgKi8KJiM0MzsJaWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSkpKSB7CiYjNDM7CQlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwkJcmV0dXJuIDE7CiYjNDM7CX0KJiM0MzsKJiM0MzsJaWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlLCBzZXFubykpIHsKJiM0MzsJCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CQlyZXR1cm4gLUVOT0JVRlM7CiYjNDM7CX0KJiM0MzsKIAl0aXBjX25vZGVfeG1pdChuZXQsICZhbXA7aGVhZCwgZG5vZGUsIDApOwogCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTsKJiM0MzsJc3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7CiYjNDM7CXN0cnVjdCBza19idWZmX2hlYWQgaGVhZDsKJiM0MzsJdTE2IHNlcW5vOwomIzQzOwomIzQzOwlfX3NrYl9xdWV1ZV9oZWFkX2luaXQoJmFtcDtoZWFkKTsKJiM0MzsJd2FpdF92YXJfZXZlbnQoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkLCBhdG9taWNfcmVhZCgmYW1wO3RuLSZndDtmaW5hbGl6ZWQpKTsKJiM0MzsJc3Bpbl9sb2NrX2JoKCZhbXA7dG4tJmd0O25hbWV0YmxfbG9jayk7CiYjNDM7CXNlcW5vID0gbnQtJmd0O3NuZF9ueHQ7CiYjNDM7CXNwaW5fdW5sb2NrX2JoKCZhbXA7dG4tJmd0O25hbWV0YmxfbG9jayk7CiYjNDM7CiYjNDM7CXJlYWRfbG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwlpZiAodW5saWtlbHkobGlzdF9lbXB0eSgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlKSkpIHsKJiM0MzsJCS8qIGZpbmFsaXplIGlzIGRvbmUgYnV0IG5vdGhpbmcgd2FzIHB1Ymxpc2hlZCAocHVibGlzaAomIzQzOwkJICogZmFpbGVkKTogYSBwZXJtYW5lbnQgc3RhdGUsIG5vdGhpbmcgdG8gc3luY2hyb25pemUuCiYjNDM7CQkgKi8KJiM0MzsJCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsJfQomIzQzOwlpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsICZhbXA7aGVhZCwgZG5vZGUsICZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGUsIHNlcW5vKSkgewomIzQzOwkJcmVhZF91bmxvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsJCXJldHVybiAtRU5PQlVGUzsKJiM0MzsJfQomIzQzOwl0aXBjX25vZGVfeG1pdChuZXQsICZhbXA7aGVhZCwgZG5vZGUsIDApOwomIzQzOwlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmggYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmgKaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmgKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oCkBAIC02OSw3ICYjNDM7NjksOCBAQCBzdHJ1Y3QgZGlzdHJfaXRlbSB7CiAKIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3B1Ymxpc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpOwogc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfd2l0aGRyYXcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpOwotdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpOwomIzQzO2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpOwomIzQzO2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7CiB2b2lkIHRpcGNfbmFtZWRfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbmFtZWRxLAogCQkgICAgdTE2ICpyY3Zfbnh0LCBib29sICpvcGVuKTsKIHZvaWQgdGlwY19uYW1lZF9yZWluaXQoc3RydWN0IG5ldCAqbmV0KTsKZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmMKaW5kZXggN2U2NWQwYjBjNGE4ZDEuLjJhYTg4MTJjNTUxYWRkIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXQuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9uZXQuYwpAQCAtMTM4LDcgJiM0MzsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcikKIAl0aXBjX25hbWVkX3JlaW5pdChuZXQpOwogCXRpcGNfc2tfcmVpbml0KG5ldCk7CiAJdGlwY19tb25fcmVpbml0X3NlbGYobmV0KTsKLQl0aXBjX25hbWV0YmxfcHVibGlzaChuZXQsICZhbXA7dWEsICZhbXA7c2ssIGFkZHIpOwomIzQzOwlpZiAoIXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgJmFtcDt1YSwgJmFtcDtzaywgYWRkcikpCiYjNDM7CQlwcl93YXJuKCYjMzQ7RmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcbiYjMzQ7KTsKJiM0MzsJYXRvbWljX2luYygmYW1wO3RuLSZndDtmaW5hbGl6ZWQpOwomIzQzOwl3YWtlX3VwX3ZhcigmYW1wO3RuLSZndDtmaW5hbGl6ZWQpOwogfQogCiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jCmluZGV4IDk3YWE5NzBhMGQ4M2NhLi5mODI2MzQ3YjU4NzA5MSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbm9kZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuYwpAQCAtMTExLDYgJiM0MzsxMTEsNyBAQCBzdHJ1Y3QgdGlwY19iY2xpbmtfZW50cnkgewogICogQHBlZXJfbmV0OiBwZWVyJiMzOTtzIG5ldCBuYW1lc3BhY2UKICAqIEBwZWVyX2hhc2hfbWl4OiBoYXNoIGZvciB0aGlzIHBlZXIgKEZJWE1FKQogICogQGNyeXB0b19yeDogUlggY3J5cHRvIGhhbmRsZXIKJiM0MzsgKiBAd29yazogd29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucwogICovCiBzdHJ1Y3QgdGlwY19ub2RlIHsKIAl1MzIgYWRkcjsKQEAgLTE0NSw2ICYjNDM7MTQ2LDcgQEAgc3RydWN0IHRpcGNfbm9kZSB7CiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPCiAJc3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7CiAjZW5kaWYKJiM0MzsJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiB9OwogCiAvKiBOb2RlIEZTTSBzdGF0ZXMgYW5kIGV2ZW50czoKQEAgLTMwMyw2ICYjNDM7MzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycCkKICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE8KIAl0aXBjX2NyeXB0b19zdG9wKCZhbXA7bi0mZ3Q7Y3J5cHRvX3J4KTsKICNlbmRpZgomIzQzOwljYW5jZWxfd29ya19zeW5jKCZhbXA7bi0mZ3Q7d29yayk7CiAJa2ZyZWUobik7CiB9CiAKQEAgLTM5Myw2ICYjNDM7Mzk2LDE5IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKQogCXdyaXRlX3VubG9ja19iaCgmYW1wO24tJmd0O2xvY2spOwogfQogCiYjNDM7c3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdGlwY19ub2RlICpub2RlID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25vZGUsIHdvcmspOwomIzQzOwomIzQzOwlpZiAodGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUobm9kZS0mZ3Q7bmV0LCBub2RlLSZndDthZGRyKSAmbHQ7IDApIHsKJiM0MzsJCXUzMiBiZWFyZXJfaWQgPSBub2RlLSZndDtsaW5rX2lkICZhbXA7IDB4ZmZmZjsKJiM0MzsKJiM0MzsJCXRpcGNfbm9kZV9saW5rX2Rvd24obm9kZSwgYmVhcmVyX2lkLCBmYWxzZSk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJdGlwY19ub2RlX3B1dChub2RlKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pCiAJX19yZWxlYXNlcyhuLSZndDtsb2NrKQogewpAQCAtNDI0LDggJiM0Mzs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKQogCWlmIChmbGFncyAmYW1wOyBUSVBDX05PVElGWV9OT0RFX0RPV04pCiAJCXRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tJmd0O2NhcGFiaWxpdGllcyk7CiAKLQlpZiAoZmxhZ3MgJmFtcDsgVElQQ19OT1RJRllfTk9ERV9VUCkKLQkJdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi0mZ3Q7Y2FwYWJpbGl0aWVzKTsKJiM0MzsJaWYgKGZsYWdzICZhbXA7IFRJUENfTk9USUZZX05PREVfVVApIHsKJiM0MzsJCWludCByYyA9IDA7CiYjNDM7CiYjNDM7CQlyYyA9IHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tJmd0O2NhcGFiaWxpdGllcyk7CiYjNDM7CQkvKiBEZWZlciBidWxrIGRpc3RyaWJ1dGlvbiB0byB3b3JrIHF1ZXVlICovCiYjNDM7CQlpZiAocmMgJmd0OyAwKSB7CiYjNDM7CQkJdGlwY19ub2RlX2dldChuKTsKJiM0MzsJCQlpZiAoIXNjaGVkdWxlX3dvcmsoJmFtcDtuLSZndDt3b3JrKSkKJiM0MzsJCQkJdGlwY19ub2RlX3B1dChuKTsKJiM0MzsJCX0gZWxzZSBpZiAocmMgJmx0OyAwKSB7CiYjNDM7CQkJLyogQnJpbmcgdGhlIGxpbmsgZG93biB0byBzdGFydCBvdmVyIGJ1bGsgZGlzdHJpYnV0aW9uCiYjNDM7CQkJICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi4KJiM0MzsJCQkgKi8KJiM0MzsJCQl0aXBjX25vZGVfbGlua19kb3duKG4sIGJlYXJlcl9pZCwgZmFsc2UpOwomIzQzOwkJfQomIzQzOwl9CiAKIAlpZiAoZmxhZ3MgJmFtcDsgVElQQ19OT1RJRllfTElOS19VUCkgewogCQl0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTsKQEAgLTU2NCw2ICYjNDM7NTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCwKIAlJTklUX0xJU1RfSEVBRCgmYW1wO24tJmd0O2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7bi0mZ3Q7cHVibF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmYW1wO24tJmd0O2Nvbm5fc2tzKTsKJiM0MzsJSU5JVF9XT1JLKCZhbXA7bi0mZ3Q7d29yaywgdGlwY19ub2RlX2Rpc3RfYnVsayk7CiAJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO24tJmd0O2JjX2VudHJ5Lm5hbWVkcSk7CiAJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO24tJmd0O2JjX2VudHJ5LmlucHV0cTEpOwogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO24tJmd0O2JjX2VudHJ5LmFycnZxKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA5OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDM1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBUSVBDIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgZm9yIHRoZSBUSVBDIHN1YnN5c3RlbSwgYW5kIGl0IGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGltcHJvdmVtZW50LCBsaWtlbHkgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIG9yIGF0IGxlYXN0IG9wdGltaXppbmcgdGhlIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGNsdXN0ZXItc2NvcGUgcHVibGljYXRpb25zLiBUaGUgY2hhbmdlcyBhcmUgcHJldHR5IGZvY3VzZWQsIHRvdWNoaW5nIHRoZSBjb3JlIFRJUEMgY29kZSB3aXRoaW4gdGhlIGtlcm5lbCwgc3BlY2lmaWNhbGx5IGZpbGVzIGxpa2UgYGNvcmUuY2AsIGBuYW1lX2Rpc3RyLmNgLCBgbmV0LmNgLCBhbmQgYG5vZGUuY2AuIFRoaXMgaXMgYWxsIHdpdGhpbiB0aGUgaGVhcnQgb2YgdGhlIFRJUEMgaW1wbGVtZW50YXRpb24uCgpUaGUga2V5IHNlZW1zIHRvIGJlIHRoaXMgbmV3IGBmaW5hbGl6ZWRgIGF0b21pYyBmbGFnIHdpdGhpbiBgc3RydWN0IHRpcGNfbmV0YC4gVGhhdCYjMzk7cyB0aGUgc2lnbmFsLCBhcHBhcmVudGx5LCB0byB0cmFjayB3aGVuIHRoZSBuZXR3b3JrIGZpbmFsaXphdGlvbiBpcyBjb21wbGV0ZS4gVGhlIGNoYW5nZXMgdG8gYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIGl0cyBpbnRlZ2VyIHJldHVybiwgcGx1cyB0aGUgYWRkaXRpb24gb2YgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYXJlIGRlZmluaXRlbHkgY2VudHJhbCB0byB0aGUgbmV3IGxvZ2ljLiBJdCBsb29rcyBsaWtlIGB0aXBjX25vZGVfZGlzdF9idWxrYCBpcyBub3cgYmVpbmcgbWFuYWdlZCB3aXRoIGEgd29yayBxdWV1ZSBpdGVtIHdpdGhpbiBgc3RydWN0IHRpcGNfbm9kZWAsIGFuZCB0aGF0IHRoaXMgaXMgdHJpZ2dlcmVkIHdpdGhpbiB0aGUgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgIGZ1bmN0aW9uIGJhc2VkIG9uIHRoZSByZXR1cm4gdmFsdWUgb2YgYHRpcGNfbmFtZWRfbm9kZV91cGAuIFdlJiMzOTtyZSB1c2luZyBgd2FpdF92YXJfZXZlbnRgIHRvIGVuc3VyZSB0aGF0IHRoaXMgZGVmZXJyZWQgYnVsayBkaXN0cmlidXRpb24gd2FpdHMgZm9yIHRoZSBgdG4tJmd0O2ZpbmFsaXplZGAgZmxhZyB0byBiZSBzZXQuCgpGcm9tIGEgcXVpY2sgZ2xhbmNlLCBpdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBhdHRlbXB0aW5nIHRvIGVuc3VyZSB0aGF0IHRoZSBidWxrIGRpc3RyaWJ1dGlvbiBvZiBpbmZvcm1hdGlvbiBpcyBkZWxheWVkIHVudGlsIHRoZSBub2RlJiMzOTtzIG93biBzdGF0ZSBoYXMgYmVlbiBmdWxseSBwdWJsaXNoZWQuIE1ha2VzIHNlbnNlOyBhdm9pZCBwYXJ0aWFsIG9yIGNvbmZsaWN0aW5nIHN0YXRlcy4gR2l2ZW4gdGhpcyBtb2RpZmljYXRpb24gdG8gY29yZSBrZXJuZWwgbG9naWMsIGFuZCB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2UsIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0aG9yb3VnaGx5LiBUaGUgcGF0Y2ggYXV0aG9ycyBldmVuIHRhZ2dlZCB0aGlzIGZvciBmdXp6aW5nLgoKTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaW1lIHRvIGZpcmUgdXAgYGdyZXBwZXJgIGFuZCBzZWFyY2ggZm9yIGBDT05GSUdfVElQQ2Agd2l0aGluIHRoZSBrZXJuZWwmIzM5O3MgS2NvbmZpZyBmaWxlcy4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIGNvbnRyb2wgdGhpcyBzdWJzeXN0ZW0gdG8gcHJvcGVybHkgdGVzdCB0aGUgY2hhbmdlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVElQQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC90aXBjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGlwYy9LY29uZmlnLTUtXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXG5uZXQvdGlwYy9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtUaGUgVElQQyBQcm90b2NvbFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMjMtXG5uZXQvdGlwYy9LY29uZmlnOjI0OmNvbmZpZyBUSVBDX01FRElBX0lCXG5uZXQvdGlwYy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtJbmZpbmlCYW5kIG1lZGlhIHR5cGUgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMjktXHQgIElQLW92ZXItSW5maW5pQmFuZCBkZXZpY2VzLlxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcbm5ldC90aXBjL0tjb25maWctMzEtXHRib29sIFwmIzM0O0lQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxubmV0L3RpcGMvS2NvbmZpZzozODpjb25maWcgVElQQ19DUllQVE9cbm5ldC90aXBjL0tjb25maWctMzktXHRib29sIFwmIzM0O1RJUEMgZW5jcnlwdGlvbiBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy01Mi1cbm5ldC90aXBjL0tjb25maWc6NTM6Y29uZmlnIFRJUENfRElBR1xubmV0L3RpcGMvS2NvbmZpZy01NC1cdHRyaXN0YXRlIFwmIzM0O1RJUEM6IHNvY2tldCBtb25pdG9yaW5nIGludGVyZmFjZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA5OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYxOTcKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAzODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBUSVBDIENvbmZpZ3VyYXRpb24gYW5kIFJlbGV2YW50IFN5bWJvbHMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgdGhlIG1haW4gY29uZmlndXJhdGlvbiBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBgVElQQ2AuIEkmIzM5O20gZG91YmxlLWNoZWNraW5nIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgc3BlY2lmaWMsIGJ1dCBpdCBsb29rcyBsaWtlIGBUSVBDYCBpcyBzdWZmaWNpZW50IGZvciBub3cuIEdvb2QsIGxldCYjMzk7cyBtb3ZlIG9uLgoKTm93LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGNyaXRpY2FsIHN5bWJvbHMgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaC4gVGhlIGRpZmYgbW9kaWZpZXMgYSBmYWlyIG51bWJlciBvZiBmdW5jdGlvbnMsIGluY2x1ZGluZyBgdGlwY19pbml0X25ldGAsIGBuYW1lZF9kaXN0cmlidXRlYCwgYHRpcGNfbmFtZWRfbm9kZV91cGAsIGFuZCBzbyBvbi4gU3BlY2lmaWNhbGx5LCBJIHNlZSBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgIGFuZCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AgYXJlIG5ldy4gQWZ0ZXIgZXhhbWluaW5nIHRoZSBwYXRjaCwgSSYjMzk7dmUgaWRlbnRpZmllZCB0aGUgY29yZSBmdW5jdGlvbnMgdGhhdCBJIHNob3VsZCBiZSBmb2N1c2luZyBvbjogYHRpcGNfbmFtZWRfbm9kZV91cGAsIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAsIGB0aXBjX25vZGVfZGlzdF9idWxrYCwgYHRpcGNfbmV0X2ZpbmFsaXplYCwgYW5kIGBuYW1lZF9kaXN0cmlidXRlYC4KCkkgbmVlZCB0byBjb25maXJtIHRoZSBzY29wZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEkgc2VlIHRoYXQgYG5hbWVkX2Rpc3RyaWJ1dGVgIGlzIHN0YXRpYywgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBgdGlwY19uYW1lZF9ub2RlX3VwYCBpcyBleHBvcnRlZC9nbG9iYWwsIGFuZCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgIGlzIGFsc28gZ2xvYmFsLiBNZWFud2hpbGUsIGB0aXBjX25vZGVfZGlzdF9idWxrYCBhbmQgYHRpcGNfbmV0X2ZpbmFsaXplYCBhcmUgc3RhdGljLgoKQWxyaWdodCwgZm9yIGNvbmNpc2UgcmV2aWV3LCBJJiMzOTtsbCBsaXN0IHRoZSBtb2RpZmllZCBmdW5jdGlvbnMgdGhhdCBhcmVuJiMzOTt0IG92ZXJseSBnZW5lcmljOiBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYHRpcGNfbm9kZV9kaXN0X2J1bGtgLCBgdGlwY19uZXRfZmluYWxpemVgLCBhbmQgYG5hbWVkX2Rpc3RyaWJ1dGVgLgoKV2FpdCwgSSBuZWVkIHRvIGNoZWNrIGB0aXBjX25vZGVfd3JpdGVfdW5sb2NrYC4gSXQgKmlzKiBtb2RpZmllZCwgYW5kIEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciB0aGF0JiMzOTtzIGEgaG90IHBhdGgsIG9yIGlmIGl0JiMzOTtzIGxlc3MgY3JpdGljYWwuIExldCBtZSB0YWtlIGEgbG9vayBhdCB0aGUgY2FsbHMuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0aXBjX25vZGVfd3JpdGVfdW5sb2NrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3RpcGMvbm9kZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL25vZGUuYz0zODc9c3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX2xvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMzkyLVxubmV0L3RpcGMvbm9kZS5jOjM5MzpzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qoc3RydWN0IHRpcGNfbm9kZSAqbilcbm5ldC90aXBjL25vZGUuYy0zOTQtXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbi0tXG5uZXQvdGlwYy9ub2RlLmM9Mzk5PXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9kaXN0X2J1bGsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbm5ldC90aXBjL25vZGUuYy00MTEtXG5uZXQvdGlwYy9ub2RlLmM6NDEyOnN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcbm5ldC90aXBjL25vZGUuYy00MTMtXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbi0tXG5uZXQvdGlwYy9ub2RlLmM9NDk4PXN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4tLVxubmV0L3RpcGMvbm9kZS5jLTUyMy1cdFx0XHRwcl93YXJuKFwmIzM0O0Jyb2FkY2FzdCByY3YgbGluayByZWZyZXNoIGZhaWxlZCwgbm8gbWVtb3J5XFxuXCYjMzQ7KTtcbm5ldC90aXBjL25vZGUuYzo1MjQ6XHRcdFx0dGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KG4pO1xubmV0L3RpcGMvbm9kZS5jLTUyNS1cdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuLS1cbm5ldC90aXBjL25vZGUuYy01MzktXHRcdGxpc3RfYWRkX3RhaWxfcmN1KFx1MDAyNm4tXHUwMDNlbGlzdCwgXHUwMDI2dGVtcF9ub2RlLVx1MDAzZWxpc3QpO1xubmV0L3RpcGMvbm9kZS5jOjU0MDpcdFx0dGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KG4pO1xubmV0L3RpcGMvbm9kZS5jLTU0MS1cbi0tXG5uZXQvdGlwYy9ub2RlLmMtNTU0LVx0XHR9XG5uZXQvdGlwYy9ub2RlLmM6NTU1Olx0XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XG5uZXQvdGlwYy9ub2RlLmMtNTU2LVxuLS1cbm5ldC90aXBjL25vZGUuYz02ODc9dm9pZCB0aXBjX25vZGVfc3Vic2NyaWJlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqc3Vic2NyLCB1MzIgYWRkcilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtNzAwLVx0bGlzdF9hZGRfdGFpbChzdWJzY3IsIFx1MDAyNm4tXHUwMDNlcHVibF9saXN0KTtcbm5ldC90aXBjL25vZGUuYzo3MDE6XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XG5uZXQvdGlwYy9ub2RlLmMtNzAyLVx0dGlwY19ub2RlX3B1dChuKTtcbi0tXG5uZXQvdGlwYy9ub2RlLmM9NzA1PXZvaWQgdGlwY19ub2RlX3Vuc3Vic2NyaWJlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqc3Vic2NyLCB1MzIgYWRkcilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtNzE4LVx0bGlzdF9kZWxfaW5pdChzdWJzY3IpO1xubmV0L3RpcGMvbm9kZS5jOjcxOTpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChuKTtcbm5ldC90aXBjL25vZGUuYy03MjAtXHR0aXBjX25vZGVfcHV0KG4pO1xuLS1cbm5ldC90aXBjL25vZGUuYz03MjM9aW50IHRpcGNfbm9kZV9hZGRfY29ubihzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTMyIHBvcnQsIHUzMiBwZWVyX3BvcnQpXG4tLVxubmV0L3RpcGMvbm9kZS5jLTc0Ny1cdGxpc3RfYWRkX3RhaWwoXHUwMDI2Y29ubi1cdTAwM2VsaXN0LCBcdTAwMjZub2RlLVx1MDAzZWNvbm5fc2tzKTtcbm5ldC90aXBjL25vZGUuYzo3NDg6XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG5vZGUpO1xubmV0L3RpcGMvbm9kZS5jLTc0OS1leGl0OlxuLS1cbm5ldC90aXBjL25vZGUuYz03NTQ9dm9pZCB0aXBjX25vZGVfcmVtb3ZlX2Nvbm4oc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUzMiBwb3J0KVxuLS1cbm5ldC90aXBjL25vZGUuYy03NzItXHR9XG5uZXQvdGlwYy9ub2RlLmM6NzczOlx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhub2RlKTtcbm5ldC90aXBjL25vZGUuYy03NzQtXHR0aXBjX25vZGVfcHV0KG5vZGUpO1xuLS1cbm5ldC90aXBjL25vZGUuYz03OTU9c3RhdGljIGJvb2wgdGlwY19ub2RlX2NsZWFudXAoc3RydWN0IHRpcGNfbm9kZSAqcGVlcilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtODExLVx0fVxubmV0L3RpcGMvbm9kZS5jOjgxMjpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2socGVlcik7XG5uZXQvdGlwYy9ub2RlLmMtODEzLVxuLS1cbm5ldC90aXBjL25vZGUuYz05NTY9c3RhdGljIHZvaWQgdGlwY19ub2RlX2xpbmtfdXAoc3RydWN0IHRpcGNfbm9kZSAqbiwgaW50IGJlYXJlcl9pZCxcbi0tXG5uZXQvdGlwYy9ub2RlLmMtOTY0LVx0dGlwY19iZWFyZXJfeG1pdChuLVx1MDAzZW5ldCwgYmVhcmVyX2lkLCB4bWl0cSwgbWFkZHIsIG4pO1xubmV0L3RpcGMvbm9kZS5jOjk2NTpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtOTY2LX1cbi0tXG5uZXQvdGlwYy9ub2RlLmM9MTA5Mz1zdGF0aWMgdm9pZCB0aXBjX25vZGVfbGlua19kb3duKHN0cnVjdCB0aXBjX25vZGUgKm4sIGludCBiZWFyZXJfaWQsIGJvb2wgZGVsZXRlKVxuLS1cbm5ldC90aXBjL25vZGUuYy0xMTE5LVx0dHJhY2VfdGlwY19ub2RlX2xpbmtfZG93bihuLCB0cnVlLCBcJiMzNDtub2RlIGxpbmsgZG93biBvciBkZWxldGVkIVwmIzM0Oyk7XG5uZXQvdGlwYy9ub2RlLmM6MTEyMDpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtMTEyMS1cdGlmIChkZWxldGUpXG4tLVxubmV0L3RpcGMvbm9kZS5jPTExOTk9dm9pZCB0aXBjX25vZGVfY2hlY2tfZGVzdChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLFxuLS1cbm5ldC90aXBjL25vZGUuYy0xMzM3LWV4aXQ6XG5uZXQvdGlwYy9ub2RlLmM6MTMzODpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtMTMzOS1cdGlmIChyZXNldCBcdTAwMjZcdTAwMjYgIWxpbmtfaXNfcmVzZXQpXG4tLVxubmV0L3RpcGMvbm9kZS5jPTIxMTQ9dm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMjIwNi1cdFx0fVxubmV0L3RpcGMvbm9kZS5jOjIyMDc6XHRcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtMjIwOC1cdH1cbi0tXG5uZXQvdGlwYy9ub2RlLmM9MjIzNj12b2lkIHRpcGNfbm9kZV9hcHBseV9wcm9wZXJ0eShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYixcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMjI2Mi1cbm5ldC90aXBjL25vZGUuYzoyMjYzOlx0XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG4pO1xubmV0L3RpcGMvbm9kZS5jLTIyNjQtXHRcdHRpcGNfYmVhcmVyX3htaXQobmV0LCBiZWFyZXJfaWQsIFx1MDAyNnhtaXRxLCBcdTAwMjZlLVx1MDAzZW1hZGRyLCBOVUxMKTtcbi0tXG5uZXQvdGlwYy9ub2RlLmM9MjI3MD1pbnQgdGlwY19ubF9wZWVyX3JtKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxubmV0L3RpcGMvbm9kZS5jLTIzMjEtXHQgICAgcGVlci1cdTAwM2VzdGF0ZSAhPSBTRUxGX0RPV05fUEVFUl9MRUFWSU5HKSB7XG5uZXQvdGlwYy9ub2RlLmM6MjMyMjpcdFx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhwZWVyKTtcbm5ldC90aXBjL25vZGUuYy0yMzIzLVx0XHRlcnIgPSAtRUJVU1k7XG4tLVxubmV0L3RpcGMvbm9kZS5jLTIzMjctXHR0aXBjX25vZGVfY2xlYXJfbGlua3MocGVlcik7XG5uZXQvdGlwYy9ub2RlLmM6MjMyODpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2socGVlcik7XG5uZXQvdGlwYy9ub2RlLmMtMjMyOS1cdHRpcGNfbm9kZV9kZWxldGUocGVlcik7XG4tLVxubmV0L3RpcGMvbm9kZS5jPTMxNjg9dm9pZCB0aXBjX25vZGVfcHJlX2NsZWFudXBfbmV0KHN0cnVjdCBuZXQgKmV4aXRfbmV0KVxuLS1cbm5ldC90aXBjL25vZGUuYy0zMTg5LVx0XHRcdG4tXHUwMDNlcGVlcl9oYXNoX21peCA9IDA7XG5uZXQvdGlwYy9ub2RlLmM6MzE5MDpcdFx0XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XG5uZXQvdGlwYy9ub2RlLmMtMzE5MS1cdFx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MDM4CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUSVBDIEZ1bmN0aW9uIENhbGxzKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoZXNlIFRJUEMgZnVuY3Rpb25zLiBJJiMzOTt2ZSBhbHJlYWR5IGRlY2lkZWQgdG8gZXhjbHVkZSBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgZnJvbSBteSBhbmFseXNpcyBiZWNhdXNlIGl0JiMzOTtzIGNsZWFybHkgYSBoaWdoLWZyZXF1ZW5jeSBmdW5jdGlvbiDigJMgcHJvYmFibHkgdG9vIG5vaXN5IHRvIGJlIHdvcnRoIGZvY3VzaW5nIG9uIGZvciB0aGlzIHBhcnRpY3VsYXIgaW52ZXN0aWdhdGlvbi4gSSYjMzk7bSBhbHNvIHNraXBwaW5nIGB0aXBjX3JjdmAgYW5kIGB0aXBjX25vZGVfY2hlY2tfZGVzdGAsIGFzIHRoZXkmIzM5O3JlIHJlbGF0ZWQuCgpJJiMzOTt2ZSBub3RlZCB0aGF0IGB0aXBjX25ldF9maW5hbGl6ZWAgaXMgdGllZCB0byBuZXR3b3JrIGluaXRpYWxpemF0aW9uLiBUaGF0JiMzOTtzIGdvb2QgY29udGV4dCB0byBoYXZlLCBidXQgbm90IHRoZSBmb2N1cyByaWdodCBub3cuIFNpbWlsYXJseSwgSSBrbm93IHRoYXQgYHRpcGNfbmFtZWRfbm9kZV91cGAgaXMgdHJpZ2dlcmVkIHdoZW4gYSBub2RlIGNvbWVzIG9ubGluZSwgYW5kIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgZ2V0cyBjYWxsZWQgZnJvbSB0aGUgd29yayBxdWV1ZSwgYWxvbmcgd2l0aCB0aGUgd29ya2VyIGZ1bmN0aW9uIGB0aXBjX25vZGVfZGlzdF9idWxrYC4KClNvLCBnaXZlbiB3aGF0IEkmIzM5O3ZlIHNlZW4sIGl0IHNlZW1zIHRoYXQgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgYXJlIHRoZSBtb3JlIGludGVyZXN0aW5nIGFyZWFzIHRvIGV4cGxvcmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgaW50byBgbmV0L3RpcGMvbmFtZV9kaXN0ci5jYCBhbmQgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRob3NlIHR3byBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3RpcGMvbmFtZV9kaXN0ci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL25hbWVfZGlzdHIuYz0xNTA9c3RhdGljIGludCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbi0tXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjA3LS8qKlxubmV0L3RpcGMvbmFtZV9kaXN0ci5jOjIwODogKiB0aXBjX25hbWVkX25vZGVfdXAgLSB0ZWxsIHNwZWNpZmllZCBub2RlIGFib3V0IGFsbCBwdWJsaWNhdGlvbnMgYnkgdGhpcyBub2RlXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjA5LSAqIEBuZXQ6IHRoZSBhc3NvY2lhdGVkIG5ldHdvcmsgbmFtZXNwYWNlXG4tLVxubmV0L3RpcGMvbmFtZV9kaXN0ci5jLTIxMi0gKi9cbm5ldC90aXBjL25hbWVfZGlzdHIuYzoyMTM6aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbm5ldC90aXBjL25hbWVfZGlzdHIuYy0yMTQte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA5OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk3MDkKCQkJCQkJCW91dHB1dDogMTUwCgkJCQkJCQl0aG91Z2h0czogMjE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlRJUEMgU3Vic3lzdGVtIFJlZmluZW1lbnQ6IERlbGF5ZWQgQnVsayBEaXN0cmlidXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIFRJUEMgKFRyYW5zcGFyZW50IEludGVyLVByb2Nlc3MgQ29tbXVuaWNhdGlvbikgc3Vic3lzdGVtLiBUaGUgY29yZSBvZiB0aGlzIGNoYW5nZSBpbnZvbHZlcyBkZWZlcnJpbmcgdGhlIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGNsdXN0ZXItc2NvcGUgcHVibGljYXRpb25zLiBCYXNpY2FsbHksIHdlJiMzOTtyZSB3YWl0aW5nIHRvIGRvIHRoaXMgdW50aWwgdGhlIG5vZGUmIzM5O3Mgb3duIHN0YXRlIGhhcyBiZWVuIHB1Ymxpc2hlZC4gU2VlbXMgbGlrZSBhIHN5bmNocm9uaXphdGlvbiBpc3N1ZSBiZWluZyBhZGRyZXNzZWQuCgpJJiMzOTt2ZSBpZGVudGlmaWVkIGtleSBmdW5jdGlvbnM6IGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAuIFRoZXNlIGFyZSB0aGUgaGVhcnQgb2YgdGhlIGxvZ2ljIGJlaW5nIG1vZGlmaWVkLCB0aGUgcGxhY2VzIHdoZXJlIHRoaXMgZGVsYXllZCBkaXN0cmlidXRpb24gaXMgaW1wbGVtZW50ZWQuIEkmIzM5O20gYWxzbyBhZGRpbmcgYHRpcGNfbmV0X2ZpbmFsaXplYCBmb3IgY29tcGxldGVuZXNzLgoKVGhlIHByaW1hcnkgY29uZmlnIGluIHBsYXkgaGVyZSBpcyBgVElQQ2AsIHRoYXQmIzM5O3MgdGhlIGRyaXZlci4gSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRvIGVuc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBjb25maWdzIHRoYXQgYXJlIGFsc28gcmVsZXZhbnQsIGJ1dCBgVElQQ2AgaXMgdGhlIGJpZyBvbmUuCgpNeSByZWFzb25pbmc/IFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQmIzM5O3MgbW9kaWZ5aW5nIHRoZSBuZXR3b3JraW5nIGxvZ2ljIHdpdGhpbiBUSVBDLiBUaGlzIHdpbGwgYmUgcmVhY2hlZCBkdXJpbmcgdGhlIG5vcm1hbCBvcGVyYXRpb24gb2YgVElQQyBub2RlcyBjb25uZWN0aW5nIGFuZCBleGNoYW5naW5nIHJvdXRpbmcgYW5kIG5hbWUgdGFibGVzLCBzbyBpdCYjMzk7cyBhIGNyaXRpY2FsIGFyZWEuCgpUaGUgJiMzNDtXb3J0aEZ1enppbmcmIzM0OyBmbGFnIGlzIHNldCB0byB0cnVlOyBpdCYjMzk7cyBkZWZpbml0ZWx5IGEgY2hhbmdlIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb25zIEkmIzM5O3ZlIGxpc3RlZCBhcmUgdGhlIGZvY3VzIHN5bWJvbHMuIEkmIzM5O2xsIG5lZWQgdG8gZW5hYmxlIGBUSVBDYCBpbiBhbnkgdGVzdGluZy4KClJpZ2h0LCBsZXQmIzM5O3MgY2FsbCBgc2V0LXJlc3VsdHNgIGFuZCBsb2cgdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbmV0X2ZpbmFsaXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSYjMzk7cyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbmV0X2ZpbmFsaXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSYjMzk7cyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODowMC41MTc5MjQyMDRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDQxMzQ1OTgxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiLFxuICAgIFwidGlwY19uZXRfZmluYWxpemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA5OjU4OjAwLjUxNzkzMDE4NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjgxMzAxMjA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTM1N2E0MjBkMzVlNjUxODRmM2QwNzMyZmE3OGFiYTdlNjllMzQ2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAxOCAwOTo1Nzo1OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmMgYi9uZXQvdGlwYy9jb3JlLmNcXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvY29yZS5jXFxuKysrIGIvbmV0L3RpcGMvY29yZS5jXFxuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxcbiBcXHR0bi1cXHUwMDNldHJpYWxfYWRkciA9IDA7XFxuIFxcdHRuLVxcdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XFxuIFxcdHRuLVxcdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xcbitcXHRhdG9taWNfc2V0KFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkLCAwKTtcXG4gXFx0SU5JVF9XT1JLKFxcdTAwMjZ0bi1cXHUwMDNld29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7XFxuIFxcdG1lbXNldCh0bi1cXHUwMDNlbm9kZV9pZCwgMCwgc2l6ZW9mKHRuLVxcdTAwM2Vub2RlX2lkKSk7XFxuIFxcdG1lbXNldCh0bi1cXHUwMDNlbm9kZV9pZF9zdHJpbmcsIDAsIHNpemVvZih0bi1cXHUwMDNlbm9kZV9pZF9zdHJpbmcpKTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5oIGIvbmV0L3RpcGMvY29yZS5oXFxuaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL2NvcmUuaFxcbisrKyBiL25ldC90aXBjL2NvcmUuaFxcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcXG4gXFx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XFxuIFxcdC8qIFRoZSBudW1iZXJzIG9mIHdvcmsgcXVldWVzIGluIHNjaGVkdWxlICovXFxuIFxcdGF0b21pY190IHdxX2NvdW50O1xcbitcXHQvKiBmbGFnIHRvIGluZGljYXRlIHdvcmsgaGFzIGZpbmlzaGVkICovXFxuK1xcdGF0b21pY190IGZpbmFsaXplZDtcXG4gfTtcXG4gXFxuIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRpcGNfbmV0ICp0aXBjX25ldChzdHJ1Y3QgbmV0ICpuZXQpXFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuYyBiL25ldC90aXBjL25hbWVfZGlzdHIuY1xcbmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcXG4rKysgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcXG5AQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxcbiAgKiBAcGxzOiBsaW5rZWQgbGlzdCBvZiBwdWJsaWNhdGlvbiBpdGVtcyB0byBiZSBwYWNrZWQgaW50byBidWZmZXIgY2hhaW5cXG4gICogQHNlcW5vOiBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgbWVzc2FnZVxcbiAgKi9cXG4tc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuK3N0YXRpYyBpbnQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuIFxcdFxcdFxcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcXG4ge1xcbiBcXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XFxuQEAgLTE2NCw4ICsxNjQsOSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcXG4gXFx0XFx0XFx0c2tiID0gbmFtZWRfcHJlcGFyZV9idWYobmV0LCBQVUJMSUNBVElPTiwgbXNnX3JlbSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ZG5vZGUpO1xcbiBcXHRcXHRcXHRpZiAoIXNrYikge1xcbitcXHRcXHRcXHRcXHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcXG4gXFx0XFx0XFx0XFx0cHJfd2FybihcXFwiQnVsayBwdWJsaWNhdGlvbiBmYWlsdXJlXFxcXG5cXFwiKTtcXG4tXFx0XFx0XFx0XFx0cmV0dXJuO1xcbitcXHRcXHRcXHRcXHRyZXR1cm4gMTtcXG4gXFx0XFx0XFx0fVxcbiBcXHRcXHRcXHRoZHIgPSBidWZfbXNnKHNrYik7XFxuIFxcdFxcdFxcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcXG5AQCAtMTkyLDkgKzE5MywxNSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcXG4gXFx0XFx0c2tiX3RyaW0oc2tiLCBJTlRfSF9TSVpFICsgKG1zZ19kc3ogLSBtc2dfcmVtKSk7XFxuIFxcdFxcdF9fc2tiX3F1ZXVlX3RhaWwobGlzdCwgc2tiKTtcXG4gXFx0fVxcbitcXHRpZiAoc2tiX3F1ZXVlX2VtcHR5KGxpc3QpKSB7XFxuK1xcdFxcdHByX3dhcm4oXFxcIkJ1bGsgcHVibGljYXRpb24gbGlzdCBlbXB0eSwgbm90aGluZyB0byBkaXN0cmlidXRlXFxcXG5cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIDE7XFxuK1xcdH1cXG4gXFx0aGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTtcXG4gXFx0bXNnX3NldF9sYXN0X2J1bGsoaGRyKTtcXG4gXFx0bXNnX3NldF9uYW1lZF9zZXFubyhoZHIsIHNlcW5vKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbiB9XFxuIFxcbiAvKipcXG5AQCAtMjAzLDcgKzIxMCw3IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGVcXG4gICogQGNhcGFiaWxpdGllczogcGVlciBub2RlJ3MgY2FwYWJpbGl0aWVzXFxuICAqL1xcbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcXG4raW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcXG4ge1xcbiBcXHRzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTtcXG4gXFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XFxuQEAgLTIxOCw5ICsyMjUsNTMgQEAgdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXFxuIFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ0bi1cXHUwMDNlbmFtZXRibF9sb2NrKTtcXG4gXFxuIFxcdHJlYWRfbG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuLVxcdG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pO1xcbitcXHQvKiB0aXBjX25ldF9maW5hbGl6ZV93b3JrKCkgaGFzIG5vdCBmaW5pc2hlZCBpbnNlcnRpbmcgc2VsZiBhZGRyZXNzIHRvXFxuK1xcdCAqIG5hbWUgdGFibGUgeWV0LlxcbitcXHQgKi9cXG4rXFx0aWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcXG4rXFx0XFx0cmVhZF91bmxvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbitcXHRcXHRyZXR1cm4gMTtcXG4rXFx0fVxcbitcXG4rXFx0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIC1FTk9CVUZTO1xcbitcXHR9XFxuK1xcbiBcXHR0aXBjX25vZGVfeG1pdChuZXQsIFxcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XFxuIFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSlcXG4re1xcbitcXHRzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTtcXG4rXFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XFxuK1xcdHN0cnVjdCBza19idWZmX2hlYWQgaGVhZDtcXG4rXFx0dTE2IHNlcW5vO1xcbitcXG4rXFx0X19za2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZoZWFkKTtcXG4rXFx0d2FpdF92YXJfZXZlbnQoXFx1MDAyNnRuLVxcdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkKSk7XFxuK1xcdHNwaW5fbG9ja19iaChcXHUwMDI2dG4tXFx1MDAzZW5hbWV0YmxfbG9jayk7XFxuK1xcdHNlcW5vID0gbnQtXFx1MDAzZXNuZF9ueHQ7XFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ0bi1cXHUwMDNlbmFtZXRibF9sb2NrKTtcXG4rXFxuK1xcdHJlYWRfbG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSkpKSB7XFxuK1xcdFxcdC8qIGZpbmFsaXplIGlzIGRvbmUgYnV0IG5vdGhpbmcgd2FzIHB1Ymxpc2hlZCAocHVibGlzaFxcbitcXHRcXHQgKiBmYWlsZWQpOiBhIHBlcm1hbmVudCBzdGF0ZSwgbm90aGluZyB0byBzeW5jaHJvbml6ZS5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdH1cXG4rXFx0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIC1FTk9CVUZTO1xcbitcXHR9XFxuK1xcdHRpcGNfbm9kZV94bWl0KG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcXG4rXFx0cmVhZF91bmxvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbitcXG4rXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuIC8qKlxcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmggYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcXG5pbmRleCBjNjc3ZjZmMDgyZGZiNy4uY2FkZjRlOGMzZTY2YzIgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXFxuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXFxuQEAgLTY5LDcgKzY5LDggQEAgc3RydWN0IGRpc3RyX2l0ZW0ge1xcbiBcXG4gc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfcHVibGlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XFxuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcXG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xcbitpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTtcXG4raW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKTtcXG4gdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSxcXG4gXFx0XFx0ICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7XFxuIHZvaWQgdGlwY19uYW1lZF9yZWluaXQoc3RydWN0IG5ldCAqbmV0KTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmV0LmMgYi9uZXQvdGlwYy9uZXQuY1xcbmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9uZXQuY1xcbisrKyBiL25ldC90aXBjL25ldC5jXFxuQEAgLTEzOCw3ICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcXG4gXFx0dGlwY19uYW1lZF9yZWluaXQobmV0KTtcXG4gXFx0dGlwY19za19yZWluaXQobmV0KTtcXG4gXFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcXG4tXFx0dGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcXHUwMDI2dWEsIFxcdTAwMjZzaywgYWRkcik7XFxuK1xcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcXHUwMDI2dWEsIFxcdTAwMjZzaywgYWRkcikpXFxuK1xcdFxcdHByX3dhcm4oXFxcIkZhaWxlZCB0byBwdWJsaXNoIG93biBub2RlIHN0YXRlXFxcXG5cXFwiKTtcXG4rXFx0YXRvbWljX2luYyhcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCk7XFxuK1xcdHdha2VfdXBfdmFyKFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkKTtcXG4gfVxcbiBcXG4gdm9pZCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXFxuaW5kZXggOTdhYTk3MGEwZDgzY2EuLmY4MjYzNDdiNTg3MDkxIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25vZGUuY1xcbisrKyBiL25ldC90aXBjL25vZGUuY1xcbkBAIC0xMTEsNiArMTExLDcgQEAgc3RydWN0IHRpcGNfYmNsaW5rX2VudHJ5IHtcXG4gICogQHBlZXJfbmV0OiBwZWVyJ3MgbmV0IG5hbWVzcGFjZVxcbiAgKiBAcGVlcl9oYXNoX21peDogaGFzaCBmb3IgdGhpcyBwZWVyIChGSVhNRSlcXG4gICogQGNyeXB0b19yeDogUlggY3J5cHRvIGhhbmRsZXJcXG4rICogQHdvcms6IHdvcmsgaXRlbSBmb3IgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnNcXG4gICovXFxuIHN0cnVjdCB0aXBjX25vZGUge1xcbiBcXHR1MzIgYWRkcjtcXG5AQCAtMTQ1LDYgKzE0Niw3IEBAIHN0cnVjdCB0aXBjX25vZGUge1xcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXFxuIFxcdHN0cnVjdCB0aXBjX2NyeXB0byAqY3J5cHRvX3J4O1xcbiAjZW5kaWZcXG4rXFx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XFxuIH07XFxuIFxcbiAvKiBOb2RlIEZTTSBzdGF0ZXMgYW5kIGV2ZW50czpcXG5AQCAtMzAzLDYgKzMwNSw3IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcnApXFxuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cXG4gXFx0dGlwY19jcnlwdG9fc3RvcChcXHUwMDI2bi1cXHUwMDNlY3J5cHRvX3J4KTtcXG4gI2VuZGlmXFxuK1xcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNm4tXFx1MDAzZXdvcmspO1xcbiBcXHRrZnJlZShuKTtcXG4gfVxcbiBcXG5AQCAtMzkzLDYgKzM5NiwxOSBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qoc3RydWN0IHRpcGNfbm9kZSAqbilcXG4gXFx0d3JpdGVfdW5sb2NrX2JoKFxcdTAwMjZuLVxcdTAwM2Vsb2NrKTtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuK3tcXG4rXFx0c3RydWN0IHRpcGNfbm9kZSAqbm9kZSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19ub2RlLCB3b3JrKTtcXG4rXFxuK1xcdGlmICh0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShub2RlLVxcdTAwM2VuZXQsIG5vZGUtXFx1MDAzZWFkZHIpIFxcdTAwM2MgMCkge1xcbitcXHRcXHR1MzIgYmVhcmVyX2lkID0gbm9kZS1cXHUwMDNlbGlua19pZCBcXHUwMDI2IDB4ZmZmZjtcXG4rXFxuK1xcdFxcdHRpcGNfbm9kZV9saW5rX2Rvd24obm9kZSwgYmVhcmVyX2lkLCBmYWxzZSk7XFxuK1xcdH1cXG4rXFxuK1xcdHRpcGNfbm9kZV9wdXQobm9kZSk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcXG4gXFx0X19yZWxlYXNlcyhuLVxcdTAwM2Vsb2NrKVxcbiB7XFxuQEAgLTQyNCw4ICs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbiBcXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX0RPV04pXFxuIFxcdFxcdHRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tXFx1MDAzZWNhcGFiaWxpdGllcyk7XFxuIFxcbi1cXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKVxcbi1cXHRcXHR0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVxcdTAwM2VjYXBhYmlsaXRpZXMpO1xcbitcXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKSB7XFxuK1xcdFxcdGludCByYyA9IDA7XFxuK1xcbitcXHRcXHRyYyA9IHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXFx1MDAzZWNhcGFiaWxpdGllcyk7XFxuK1xcdFxcdC8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi9cXG4rXFx0XFx0aWYgKHJjIFxcdTAwM2UgMCkge1xcbitcXHRcXHRcXHR0aXBjX25vZGVfZ2V0KG4pO1xcbitcXHRcXHRcXHRpZiAoIXNjaGVkdWxlX3dvcmsoXFx1MDAyNm4tXFx1MDAzZXdvcmspKVxcbitcXHRcXHRcXHRcXHR0aXBjX25vZGVfcHV0KG4pO1xcbitcXHRcXHR9IGVsc2UgaWYgKHJjIFxcdTAwM2MgMCkge1xcbitcXHRcXHRcXHQvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb25cXG4rXFx0XFx0XFx0ICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi5cXG4rXFx0XFx0XFx0ICovXFxuK1xcdFxcdFxcdHRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbiBcXG4gXFx0aWYgKGZsYWdzIFxcdTAwMjYgVElQQ19OT1RJRllfTElOS19VUCkge1xcbiBcXHRcXHR0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTtcXG5AQCAtNTY0LDYgKzU5NCw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxuIFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZuLVxcdTAwM2VsaXN0KTtcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm4tXFx1MDAzZXB1YmxfbGlzdCk7XFxuIFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZuLVxcdTAwM2Vjb25uX3Nrcyk7XFxuK1xcdElOSVRfV09SSyhcXHUwMDI2bi1cXHUwMDNld29yaywgdGlwY19ub2RlX2Rpc3RfYnVsayk7XFxuIFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNm4tXFx1MDAzZWJjX2VudHJ5Lm5hbWVkcSk7XFxuIFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNm4tXFx1MDAzZWJjX2VudHJ5LmlucHV0cTEpO1xcbiBcXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNm4tXFx1MDAzZWJjX2VudHJ5LmFycnZxKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MDEuMTk5OTI1MTk5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMzczMTQ0Njg4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiLFxuICAgIFwidGlwY19uZXRfZmluYWxpemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTM1N2E0MjBkMzVlNjUxODRmM2QwNzMyZmE3OGFiYTdlNjllMzQ2NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDE4IDA5OjU3OjU4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmNcbisrKyBiL25ldC90aXBjL2NvcmUuY1xuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxuIFx0dG4tXHUwMDNldHJpYWxfYWRkciA9IDA7XG4gXHR0bi1cdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuK1x0YXRvbWljX3NldChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIDApO1xuIFx0SU5JVF9XT1JLKFx1MDAyNnRuLVx1MDAzZXdvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspO1xuIFx0bWVtc2V0KHRuLVx1MDAzZW5vZGVfaWQsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkKSk7XG4gXHRtZW1zZXQodG4tXHUwMDNlbm9kZV9pZF9zdHJpbmcsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkX3N0cmluZykpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL2NvcmUuaCBiL25ldC90aXBjL2NvcmUuaFxuaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvY29yZS5oXG4rKysgYi9uZXQvdGlwYy9jb3JlLmhcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcbiBcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIFx0LyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi9cbiBcdGF0b21pY190IHdxX2NvdW50O1xuK1x0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xuK1x0YXRvbWljX3QgZmluYWxpemVkO1xuIH07XG4gXG4gc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlwY19uZXQgKnRpcGNfbmV0KHN0cnVjdCBuZXQgKm5ldClcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuY1xuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG5AQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxuICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpblxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcbiAgKi9cbi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbitzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcbiB7XG4gXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XG5AQCAtMTY0LDggKzE2NCw5IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdHNrYiA9IG5hbWVkX3ByZXBhcmVfYnVmKG5ldCwgUFVCTElDQVRJT04sIG1zZ19yZW0sXG4gXHRcdFx0XHRcdFx0ZG5vZGUpO1xuIFx0XHRcdGlmICghc2tiKSB7XG4rXHRcdFx0XHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcbiBcdFx0XHRcdHByX3dhcm4oXCJCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcXG5cIik7XG4tXHRcdFx0XHRyZXR1cm47XG4rXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuIFx0XHRcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcbkBAIC0xOTIsOSArMTkzLDE1IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRza2JfdHJpbShza2IsIElOVF9IX1NJWkUgKyAobXNnX2RzeiAtIG1zZ19yZW0pKTtcbiBcdFx0X19za2JfcXVldWVfdGFpbChsaXN0LCBza2IpO1xuIFx0fVxuK1x0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xuK1x0XHRwcl93YXJuKFwiQnVsayBwdWJsaWNhdGlvbiBsaXN0IGVtcHR5LCBub3RoaW5nIHRvIGRpc3RyaWJ1dGVcXG5cIik7XG4rXHRcdHJldHVybiAxO1xuK1x0fVxuIFx0aGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTtcbiBcdG1zZ19zZXRfbGFzdF9idWxrKGhkcik7XG4gXHRtc2dfc2V0X25hbWVkX3NlcW5vKGhkciwgc2Vxbm8pO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuQEAgLTIwMyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGVcbiAgKiBAY2FwYWJpbGl0aWVzOiBwZWVyIG5vZGUncyBjYXBhYmlsaXRpZXNcbiAgKi9cbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbitpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIHtcbiBcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuIFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG5AQCAtMjE4LDkgKzIyNSw1MyBAQCB2b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4gXG4gXHRyZWFkX2xvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbi1cdG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pO1xuK1x0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xuK1x0ICogbmFtZSB0YWJsZSB5ZXQuXG4rXHQgKi9cbitcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gMTtcbitcdH1cbitcbitcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4rXHR9XG4rXG4gXHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiBcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4raW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKVxuK3tcbitcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuK1x0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG4rXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7XG4rXHR1MTYgc2Vxbm87XG4rXG4rXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2aGVhZCk7XG4rXHR3YWl0X3Zhcl9ldmVudChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCkpO1xuK1x0c3Bpbl9sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4rXHRzZXFubyA9IG50LVx1MDAzZXNuZF9ueHQ7XG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuK1xuK1x0cmVhZF9sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcbitcdFx0LyogZmluYWxpemUgaXMgZG9uZSBidXQgbm90aGluZyB3YXMgcHVibGlzaGVkIChwdWJsaXNoXG4rXHRcdCAqIGZhaWxlZCk6IGEgcGVybWFuZW50IHN0YXRlLCBub3RoaW5nIHRvIHN5bmNocm9uaXplLlxuK1x0XHQgKi9cbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIDA7XG4rXHR9XG4rXHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIC1FTk9CVUZTO1xuK1x0fVxuK1x0dGlwY19ub2RlX3htaXQobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XG4rXHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuaCBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxuaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG4rKysgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbkBAIC02OSw3ICs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcbiBcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7XG4gdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSxcbiBcdFx0ICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7XG4gdm9pZCB0aXBjX25hbWVkX3JlaW5pdChzdHJ1Y3QgbmV0ICpuZXQpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmNcbmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25ldC5jXG4rKysgYi9uZXQvdGlwYy9uZXQuY1xuQEAgLTEzOCw3ICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcbiBcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XG4gXHR0aXBjX3NrX3JlaW5pdChuZXQpO1xuIFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcbi1cdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKTtcbitcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpKVxuK1x0XHRwcl93YXJuKFwiRmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcXG5cIik7XG4rXHRhdG9taWNfaW5jKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCk7XG4rXHR3YWtlX3VwX3ZhcihcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuIH1cbiBcbiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLmY4MjYzNDdiNTg3MDkxIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xMTEsNiArMTExLDcgQEAgc3RydWN0IHRpcGNfYmNsaW5rX2VudHJ5IHtcbiAgKiBAcGVlcl9uZXQ6IHBlZXIncyBuZXQgbmFtZXNwYWNlXG4gICogQHBlZXJfaGFzaF9taXg6IGhhc2ggZm9yIHRoaXMgcGVlciAoRklYTUUpXG4gICogQGNyeXB0b19yeDogUlggY3J5cHRvIGhhbmRsZXJcbisgKiBAd29yazogd29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9uc1xuICAqL1xuIHN0cnVjdCB0aXBjX25vZGUge1xuIFx0dTMyIGFkZHI7XG5AQCAtMTQ1LDYgKzE0Niw3IEBAIHN0cnVjdCB0aXBjX25vZGUge1xuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cbiBcdHN0cnVjdCB0aXBjX2NyeXB0byAqY3J5cHRvX3J4O1xuICNlbmRpZlxuK1x0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XG4gfTtcbiBcbiAvKiBOb2RlIEZTTSBzdGF0ZXMgYW5kIGV2ZW50czpcbkBAIC0zMDMsNiArMzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycClcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXG4gXHR0aXBjX2NyeXB0b19zdG9wKFx1MDAyNm4tXHUwMDNlY3J5cHRvX3J4KTtcbiAjZW5kaWZcbitcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2bi1cdTAwM2V3b3JrKTtcbiBcdGtmcmVlKG4pO1xuIH1cbiBcbkBAIC0zOTMsNiArMzk2LDE5IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0d3JpdGVfdW5sb2NrX2JoKFx1MDAyNm4tXHUwMDNlbG9jayk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHRpcGNfbm9kZV9kaXN0X2J1bGsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuK3tcbitcdHN0cnVjdCB0aXBjX25vZGUgKm5vZGUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHRpcGNfbm9kZSwgd29yayk7XG4rXG4rXHRpZiAodGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUobm9kZS1cdTAwM2VuZXQsIG5vZGUtXHUwMDNlYWRkcikgXHUwMDNjIDApIHtcbitcdFx0dTMyIGJlYXJlcl9pZCA9IG5vZGUtXHUwMDNlbGlua19pZCBcdTAwMjYgMHhmZmZmO1xuK1xuK1x0XHR0aXBjX25vZGVfbGlua19kb3duKG5vZGUsIGJlYXJlcl9pZCwgZmFsc2UpO1xuK1x0fVxuK1xuK1x0dGlwY19ub2RlX3B1dChub2RlKTtcbit9XG4rXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0X19yZWxlYXNlcyhuLVx1MDAzZWxvY2spXG4ge1xuQEAgLTQyNCw4ICs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX0RPV04pXG4gXHRcdHRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiBcbi1cdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9VUClcbi1cdFx0dGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuK1x0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKSB7XG4rXHRcdGludCByYyA9IDA7XG4rXG4rXHRcdHJjID0gdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuK1x0XHQvKiBEZWZlciBidWxrIGRpc3RyaWJ1dGlvbiB0byB3b3JrIHF1ZXVlICovXG4rXHRcdGlmIChyYyBcdTAwM2UgMCkge1xuK1x0XHRcdHRpcGNfbm9kZV9nZXQobik7XG4rXHRcdFx0aWYgKCFzY2hlZHVsZV93b3JrKFx1MDAyNm4tXHUwMDNld29yaykpXG4rXHRcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuK1x0XHR9IGVsc2UgaWYgKHJjIFx1MDAzYyAwKSB7XG4rXHRcdFx0LyogQnJpbmcgdGhlIGxpbmsgZG93biB0byBzdGFydCBvdmVyIGJ1bGsgZGlzdHJpYnV0aW9uXG4rXHRcdFx0ICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi5cbitcdFx0XHQgKi9cbitcdFx0XHR0aXBjX25vZGVfbGlua19kb3duKG4sIGJlYXJlcl9pZCwgZmFsc2UpO1xuK1x0XHR9XG4rXHR9XG4gXG4gXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX0xJTktfVVApIHtcbiBcdFx0dGlwY19tb25fcGVlcl91cChuZXQsIG5vZGUsIGJlYXJlcl9pZCk7XG5AQCAtNTY0LDYgKzU5NCw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWxpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2VwdWJsX2xpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2Vjb25uX3Nrcyk7XG4rXHRJTklUX1dPUksoXHUwMDI2bi1cdTAwM2V3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTtcbiBcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5uYW1lZHEpO1xuIFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5LmlucHV0cTEpO1xuIFx0X19za2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkuYXJydnEpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MDEuMTk5OTI2NTI5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc0MDA1NzIzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBUSVBDIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIGZvciB0aGUgVElQQyBzdWJzeXN0ZW0sIGFuZCBpdCBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBpbXByb3ZlbWVudCwgbGlrZWx5IGFkZHJlc3NpbmcgYSByYWNlIGNvbmRpdGlvbiBvciBhdCBsZWFzdCBvcHRpbWl6aW5nIHRoZSBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyLXNjb3BlIHB1YmxpY2F0aW9ucy4gVGhlIGNoYW5nZXMgYXJlIHByZXR0eSBmb2N1c2VkLCB0b3VjaGluZyB0aGUgY29yZSBUSVBDIGNvZGUgd2l0aGluIHRoZSBrZXJuZWwsIHNwZWNpZmljYWxseSBmaWxlcyBsaWtlIGBjb3JlLmNgLCBgbmFtZV9kaXN0ci5jYCwgYG5ldC5jYCwgYW5kIGBub2RlLmNgLiBUaGlzIGlzIGFsbCB3aXRoaW4gdGhlIGhlYXJ0IG9mIHRoZSBUSVBDIGltcGxlbWVudGF0aW9uLlxuXG5UaGUga2V5IHNlZW1zIHRvIGJlIHRoaXMgbmV3IGBmaW5hbGl6ZWRgIGF0b21pYyBmbGFnIHdpdGhpbiBgc3RydWN0IHRpcGNfbmV0YC4gVGhhdCdzIHRoZSBzaWduYWwsIGFwcGFyZW50bHksIHRvIHRyYWNrIHdoZW4gdGhlIG5ldHdvcmsgZmluYWxpemF0aW9uIGlzIGNvbXBsZXRlLiBUaGUgY2hhbmdlcyB0byBgdGlwY19uYW1lZF9ub2RlX3VwYCBhbmQgaXRzIGludGVnZXIgcmV0dXJuLCBwbHVzIHRoZSBhZGRpdGlvbiBvZiBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBhcmUgZGVmaW5pdGVseSBjZW50cmFsIHRvIHRoZSBuZXcgbG9naWMuIEl0IGxvb2tzIGxpa2UgYHRpcGNfbm9kZV9kaXN0X2J1bGtgIGlzIG5vdyBiZWluZyBtYW5hZ2VkIHdpdGggYSB3b3JrIHF1ZXVlIGl0ZW0gd2l0aGluIGBzdHJ1Y3QgdGlwY19ub2RlYCwgYW5kIHRoYXQgdGhpcyBpcyB0cmlnZ2VyZWQgd2l0aGluIHRoZSBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgZnVuY3Rpb24gYmFzZWQgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBgdGlwY19uYW1lZF9ub2RlX3VwYC4gV2UncmUgdXNpbmcgYHdhaXRfdmFyX2V2ZW50YCB0byBlbnN1cmUgdGhhdCB0aGlzIGRlZmVycmVkIGJ1bGsgZGlzdHJpYnV0aW9uIHdhaXRzIGZvciB0aGUgYHRuLVx1MDAzZWZpbmFsaXplZGAgZmxhZyB0byBiZSBzZXQuXG5cbkZyb20gYSBxdWljayBnbGFuY2UsIGl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIGlzIGF0dGVtcHRpbmcgdG8gZW5zdXJlIHRoYXQgdGhlIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGluZm9ybWF0aW9uIGlzIGRlbGF5ZWQgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaGFzIGJlZW4gZnVsbHkgcHVibGlzaGVkLiBNYWtlcyBzZW5zZTsgYXZvaWQgcGFydGlhbCBvciBjb25mbGljdGluZyBzdGF0ZXMuIEdpdmVuIHRoaXMgbW9kaWZpY2F0aW9uIHRvIGNvcmUga2VybmVsIGxvZ2ljLCBhbmQgdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlLCBpdCdzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0aG9yb3VnaGx5LiBUaGUgcGF0Y2ggYXV0aG9ycyBldmVuIHRhZ2dlZCB0aGlzIGZvciBmdXp6aW5nLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBmb3IgYENPTkZJR19USVBDYCB3aXRoaW4gdGhlIGtlcm5lbCdzIEtjb25maWcgZmlsZXMuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIGNvbnRyb2wgdGhpcyBzdWJzeXN0ZW0gdG8gcHJvcGVybHkgdGVzdCB0aGUgY2hhbmdlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA5OCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA5OjU4OjA3LjkzOTk4NTg2OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjE2MzgzMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRJUENcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3RpcGMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90aXBjL0tjb25maWctNS1cXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXFxubmV0L3RpcGMvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgVElQQyBQcm90b2NvbFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjMtXFxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxcbm5ldC90aXBjL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiSW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTI5LVxcdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXFxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcXG5uZXQvdGlwYy9LY29uZmlnLTMxLVxcdGJvb2wgXFxcIklQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxcbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXFxubmV0L3RpcGMvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctNTItXFxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXFxubmV0L3RpcGMvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiVElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODowOC4wNjE2MzE1MDZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NjE0MDI1MDA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVElQQyBDb25maWd1cmF0aW9uIGFuZCBSZWxldmFudCBTeW1ib2xzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGUgbWFpbiBjb25maWd1cmF0aW9uIHNlZW1zIHRvIHJldm9sdmUgYXJvdW5kIGBUSVBDYC4gSSdtIGRvdWJsZS1jaGVja2luZyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHNwZWNpZmljLCBidXQgaXQgbG9va3MgbGlrZSBgVElQQ2AgaXMgc3VmZmljaWVudCBmb3Igbm93LiBHb29kLCBsZXQncyBtb3ZlIG9uLlxuXG5Ob3csIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgY3JpdGljYWwgc3ltYm9scyBhZmZlY3RlZCBieSB0aGlzIHBhdGNoLiBUaGUgZGlmZiBtb2RpZmllcyBhIGZhaXIgbnVtYmVyIG9mIGZ1bmN0aW9ucywgaW5jbHVkaW5nIGB0aXBjX2luaXRfbmV0YCwgYG5hbWVkX2Rpc3RyaWJ1dGVgLCBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYW5kIHNvIG9uLiBTcGVjaWZpY2FsbHksIEkgc2VlIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgYW5kIGB0aXBjX25vZGVfZGlzdF9idWxrYCBhcmUgbmV3LiBBZnRlciBleGFtaW5pbmcgdGhlIHBhdGNoLCBJJ3ZlIGlkZW50aWZpZWQgdGhlIGNvcmUgZnVuY3Rpb25zIHRoYXQgSSBzaG91bGQgYmUgZm9jdXNpbmcgb246IGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGB0aXBjX25ldF9maW5hbGl6ZWAsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBzY29wZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEkgc2VlIHRoYXQgYG5hbWVkX2Rpc3RyaWJ1dGVgIGlzIHN0YXRpYywgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBgdGlwY19uYW1lZF9ub2RlX3VwYCBpcyBleHBvcnRlZC9nbG9iYWwsIGFuZCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgIGlzIGFsc28gZ2xvYmFsLiBNZWFud2hpbGUsIGB0aXBjX25vZGVfZGlzdF9idWxrYCBhbmQgYHRpcGNfbmV0X2ZpbmFsaXplYCBhcmUgc3RhdGljLlxuXG5BbHJpZ2h0LCBmb3IgY29uY2lzZSByZXZpZXcsIEknbGwgbGlzdCB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zIHRoYXQgYXJlbid0IG92ZXJseSBnZW5lcmljOiBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYHRpcGNfbm9kZV9kaXN0X2J1bGtgLCBgdGlwY19uZXRfZmluYWxpemVgLCBhbmQgYG5hbWVkX2Rpc3RyaWJ1dGVgLlxuXG5XYWl0LCBJIG5lZWQgdG8gY2hlY2sgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgLiBJdCAqaXMqIG1vZGlmaWVkLCBhbmQgSSBuZWVkIHRvIGFzc2VzcyB3aGV0aGVyIHRoYXQncyBhIGhvdCBwYXRoLCBvciBpZiBpdCdzIGxlc3MgY3JpdGljYWwuIExldCBtZSB0YWtlIGEgbG9vayBhdCB0aGUgY2FsbHMuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NjE5NywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODoxNC42NzU2NTg4MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDgyNTA5MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGlwY19ub2RlX3dyaXRlX3VubG9ja1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGlwYy9ub2RlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvbm9kZS5jPTM4Nz1zdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfbG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTM5Mi1cXG5uZXQvdGlwYy9ub2RlLmM6MzkzOnN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbm5ldC90aXBjL25vZGUuYy0zOTQtXFx0X19yZWxlYXNlcyhuLVxcdTAwM2Vsb2NrKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTM5OT1zdGF0aWMgdm9pZCB0aXBjX25vZGVfZGlzdF9idWxrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC90aXBjL25vZGUuYy00MTEtXFxubmV0L3RpcGMvbm9kZS5jOjQxMjpzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXFxubmV0L3RpcGMvbm9kZS5jLTQxMy1cXHRfX3JlbGVhc2VzKG4tXFx1MDAzZWxvY2spXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9NDk4PXN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNTIzLVxcdFxcdFxcdHByX3dhcm4oXFxcIkJyb2FkY2FzdCByY3YgbGluayByZWZyZXNoIGZhaWxlZCwgbm8gbWVtb3J5XFxcXG5cXFwiKTtcXG5uZXQvdGlwYy9ub2RlLmM6NTI0OlxcdFxcdFxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChuKTtcXG5uZXQvdGlwYy9ub2RlLmMtNTI1LVxcdFxcdFxcdHRpcGNfbm9kZV9wdXQobik7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNTM5LVxcdFxcdGxpc3RfYWRkX3RhaWxfcmN1KFxcdTAwMjZuLVxcdTAwM2VsaXN0LCBcXHUwMDI2dGVtcF9ub2RlLVxcdTAwM2VsaXN0KTtcXG5uZXQvdGlwYy9ub2RlLmM6NTQwOlxcdFxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChuKTtcXG5uZXQvdGlwYy9ub2RlLmMtNTQxLVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTU1NC1cXHRcXHR9XFxubmV0L3RpcGMvbm9kZS5jOjU1NTpcXHRcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XFxubmV0L3RpcGMvbm9kZS5jLTU1Ni1cXG4tLVxcbm5ldC90aXBjL25vZGUuYz02ODc9dm9pZCB0aXBjX25vZGVfc3Vic2NyaWJlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqc3Vic2NyLCB1MzIgYWRkcilcXG4tLVxcbm5ldC90aXBjL25vZGUuYy03MDAtXFx0bGlzdF9hZGRfdGFpbChzdWJzY3IsIFxcdTAwMjZuLVxcdTAwM2VwdWJsX2xpc3QpO1xcbm5ldC90aXBjL25vZGUuYzo3MDE6XFx0dGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KG4pO1xcbm5ldC90aXBjL25vZGUuYy03MDItXFx0dGlwY19ub2RlX3B1dChuKTtcXG4tLVxcbm5ldC90aXBjL25vZGUuYz03MDU9dm9pZCB0aXBjX25vZGVfdW5zdWJzY3JpYmUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbGlzdF9oZWFkICpzdWJzY3IsIHUzMiBhZGRyKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTcxOC1cXHRsaXN0X2RlbF9pbml0KHN1YnNjcik7XFxubmV0L3RpcGMvbm9kZS5jOjcxOTpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XFxubmV0L3RpcGMvbm9kZS5jLTcyMC1cXHR0aXBjX25vZGVfcHV0KG4pO1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTcyMz1pbnQgdGlwY19ub2RlX2FkZF9jb25uKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MzIgcG9ydCwgdTMyIHBlZXJfcG9ydClcXG4tLVxcbm5ldC90aXBjL25vZGUuYy03NDctXFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2Y29ubi1cXHUwMDNlbGlzdCwgXFx1MDAyNm5vZGUtXFx1MDAzZWNvbm5fc2tzKTtcXG5uZXQvdGlwYy9ub2RlLmM6NzQ4OlxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobm9kZSk7XFxubmV0L3RpcGMvbm9kZS5jLTc0OS1leGl0Olxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTc1ND12b2lkIHRpcGNfbm9kZV9yZW1vdmVfY29ubihzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTMyIHBvcnQpXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNzcyLVxcdH1cXG5uZXQvdGlwYy9ub2RlLmM6NzczOlxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobm9kZSk7XFxubmV0L3RpcGMvbm9kZS5jLTc3NC1cXHR0aXBjX25vZGVfcHV0KG5vZGUpO1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTc5NT1zdGF0aWMgYm9vbCB0aXBjX25vZGVfY2xlYW51cChzdHJ1Y3QgdGlwY19ub2RlICpwZWVyKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTgxMS1cXHR9XFxubmV0L3RpcGMvbm9kZS5jOjgxMjpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHBlZXIpO1xcbm5ldC90aXBjL25vZGUuYy04MTMtXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9OTU2PXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9saW5rX3VwKHN0cnVjdCB0aXBjX25vZGUgKm4sIGludCBiZWFyZXJfaWQsXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtOTY0LVxcdHRpcGNfYmVhcmVyX3htaXQobi1cXHUwMDNlbmV0LCBiZWFyZXJfaWQsIHhtaXRxLCBtYWRkciwgbik7XFxubmV0L3RpcGMvbm9kZS5jOjk2NTpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG4pO1xcbm5ldC90aXBjL25vZGUuYy05NjYtfVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTEwOTM9c3RhdGljIHZvaWQgdGlwY19ub2RlX2xpbmtfZG93bihzdHJ1Y3QgdGlwY19ub2RlICpuLCBpbnQgYmVhcmVyX2lkLCBib29sIGRlbGV0ZSlcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0xMTE5LVxcdHRyYWNlX3RpcGNfbm9kZV9saW5rX2Rvd24obiwgdHJ1ZSwgXFxcIm5vZGUgbGluayBkb3duIG9yIGRlbGV0ZWQhXFxcIik7XFxubmV0L3RpcGMvbm9kZS5jOjExMjA6XFx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhuKTtcXG5uZXQvdGlwYy9ub2RlLmMtMTEyMS1cXHRpZiAoZGVsZXRlKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTExOTk9dm9pZCB0aXBjX25vZGVfY2hlY2tfZGVzdChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLFxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTEzMzctZXhpdDpcXG5uZXQvdGlwYy9ub2RlLmM6MTMzODpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG4pO1xcbm5ldC90aXBjL25vZGUuYy0xMzM5LVxcdGlmIChyZXNldCBcXHUwMDI2XFx1MDAyNiAhbGlua19pc19yZXNldClcXG4tLVxcbm5ldC90aXBjL25vZGUuYz0yMTE0PXZvaWQgdGlwY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGlwY19iZWFyZXIgKmIpXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtMjIwNi1cXHRcXHR9XFxubmV0L3RpcGMvbm9kZS5jOjIyMDc6XFx0XFx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhuKTtcXG5uZXQvdGlwYy9ub2RlLmMtMjIwOC1cXHR9XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9MjIzNj12b2lkIHRpcGNfbm9kZV9hcHBseV9wcm9wZXJ0eShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYixcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0yMjYyLVxcbm5ldC90aXBjL25vZGUuYzoyMjYzOlxcdFxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XFxubmV0L3RpcGMvbm9kZS5jLTIyNjQtXFx0XFx0dGlwY19iZWFyZXJfeG1pdChuZXQsIGJlYXJlcl9pZCwgXFx1MDAyNnhtaXRxLCBcXHUwMDI2ZS1cXHUwMDNlbWFkZHIsIE5VTEwpO1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTIyNzA9aW50IHRpcGNfbmxfcGVlcl9ybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTIzMjEtXFx0ICAgIHBlZXItXFx1MDAzZXN0YXRlICE9IFNFTEZfRE9XTl9QRUVSX0xFQVZJTkcpIHtcXG5uZXQvdGlwYy9ub2RlLmM6MjMyMjpcXHRcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHBlZXIpO1xcbm5ldC90aXBjL25vZGUuYy0yMzIzLVxcdFxcdGVyciA9IC1FQlVTWTtcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0yMzI3LVxcdHRpcGNfbm9kZV9jbGVhcl9saW5rcyhwZWVyKTtcXG5uZXQvdGlwYy9ub2RlLmM6MjMyODpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHBlZXIpO1xcbm5ldC90aXBjL25vZGUuYy0yMzI5LVxcdHRpcGNfbm9kZV9kZWxldGUocGVlcik7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9MzE2OD12b2lkIHRpcGNfbm9kZV9wcmVfY2xlYW51cF9uZXQoc3RydWN0IG5ldCAqZXhpdF9uZXQpXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtMzE4OS1cXHRcXHRcXHRuLVxcdTAwM2VwZWVyX2hhc2hfbWl4ID0gMDtcXG5uZXQvdGlwYy9ub2RlLmM6MzE5MDpcXHRcXHRcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XFxubmV0L3RpcGMvbm9kZS5jLTMxOTEtXFx0XFx0XFx0YnJlYWs7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA5OjU4OjE0Ljc4MzkxNDYyOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzA4MDIxOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFRJUEMgRnVuY3Rpb24gQ2FsbHMqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoZXNlIFRJUEMgZnVuY3Rpb25zLiBJJ3ZlIGFscmVhZHkgZGVjaWRlZCB0byBleGNsdWRlIGB0aXBjX25vZGVfd3JpdGVfdW5sb2NrYCBmcm9tIG15IGFuYWx5c2lzIGJlY2F1c2UgaXQncyBjbGVhcmx5IGEgaGlnaC1mcmVxdWVuY3kgZnVuY3Rpb24g4oCTIHByb2JhYmx5IHRvbyBub2lzeSB0byBiZSB3b3J0aCBmb2N1c2luZyBvbiBmb3IgdGhpcyBwYXJ0aWN1bGFyIGludmVzdGlnYXRpb24uIEknbSBhbHNvIHNraXBwaW5nIGB0aXBjX3JjdmAgYW5kIGB0aXBjX25vZGVfY2hlY2tfZGVzdGAsIGFzIHRoZXkncmUgcmVsYXRlZC5cblxuSSd2ZSBub3RlZCB0aGF0IGB0aXBjX25ldF9maW5hbGl6ZWAgaXMgdGllZCB0byBuZXR3b3JrIGluaXRpYWxpemF0aW9uLiBUaGF0J3MgZ29vZCBjb250ZXh0IHRvIGhhdmUsIGJ1dCBub3QgdGhlIGZvY3VzIHJpZ2h0IG5vdy4gU2ltaWxhcmx5LCBJIGtub3cgdGhhdCBgdGlwY19uYW1lZF9ub2RlX3VwYCBpcyB0cmlnZ2VyZWQgd2hlbiBhIG5vZGUgY29tZXMgb25saW5lLCBhbmQgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCBnZXRzIGNhbGxlZCBmcm9tIHRoZSB3b3JrIHF1ZXVlLCBhbG9uZyB3aXRoIHRoZSB3b3JrZXIgZnVuY3Rpb24gYHRpcGNfbm9kZV9kaXN0X2J1bGtgLlxuXG5TbywgZ2l2ZW4gd2hhdCBJJ3ZlIHNlZW4sIGl0IHNlZW1zIHRoYXQgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgYXJlIHRoZSBtb3JlIGludGVyZXN0aW5nIGFyZWFzIHRvIGV4cGxvcmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgaW50byBgbmV0L3RpcGMvbmFtZV9kaXN0ci5jYCBhbmQgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRob3NlIHR3byBmdW5jdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkwMzgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MTguOTU0NzE5MDI1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0OTQ0OTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRpcGNfbmFtZWRfbm9kZV91cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGlwYy9uYW1lX2Rpc3RyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvbmFtZV9kaXN0ci5jPTE1MD1zdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbi0tXFxubmV0L3RpcGMvbmFtZV9kaXN0ci5jLTIwNy0vKipcXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmM6MjA4OiAqIHRpcGNfbmFtZWRfbm9kZV91cCAtIHRlbGwgc3BlY2lmaWVkIG5vZGUgYWJvdXQgYWxsIHB1YmxpY2F0aW9ucyBieSB0aGlzIG5vZGVcXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjA5LSAqIEBuZXQ6IHRoZSBhc3NvY2lhdGVkIG5ldHdvcmsgbmFtZXNwYWNlXFxuLS1cXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjEyLSAqL1xcbm5ldC90aXBjL25hbWVfZGlzdHIuYzoyMTM6aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjE0LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MTkuMDI5NjY4NjI0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc1ODk0NTUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipUSVBDIFN1YnN5c3RlbSBSZWZpbmVtZW50OiBEZWxheWVkIEJ1bGsgRGlzdHJpYnV0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgVElQQyAoVHJhbnNwYXJlbnQgSW50ZXItUHJvY2VzcyBDb21tdW5pY2F0aW9uKSBzdWJzeXN0ZW0uIFRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGludm9sdmVzIGRlZmVycmluZyB0aGUgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3Rlci1zY29wZSBwdWJsaWNhdGlvbnMuIEJhc2ljYWxseSwgd2UncmUgd2FpdGluZyB0byBkbyB0aGlzIHVudGlsIHRoZSBub2RlJ3Mgb3duIHN0YXRlIGhhcyBiZWVuIHB1Ymxpc2hlZC4gU2VlbXMgbGlrZSBhIHN5bmNocm9uaXphdGlvbiBpc3N1ZSBiZWluZyBhZGRyZXNzZWQuXG5cbkkndmUgaWRlbnRpZmllZCBrZXkgZnVuY3Rpb25zOiBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYHRpcGNfbm9kZV9kaXN0X2J1bGtgLCBhbmQgYG5hbWVkX2Rpc3RyaWJ1dGVgLiBUaGVzZSBhcmUgdGhlIGhlYXJ0IG9mIHRoZSBsb2dpYyBiZWluZyBtb2RpZmllZCwgdGhlIHBsYWNlcyB3aGVyZSB0aGlzIGRlbGF5ZWQgZGlzdHJpYnV0aW9uIGlzIGltcGxlbWVudGVkLiBJJ20gYWxzbyBhZGRpbmcgYHRpcGNfbmV0X2ZpbmFsaXplYCBmb3IgY29tcGxldGVuZXNzLlxuXG5UaGUgcHJpbWFyeSBjb25maWcgaW4gcGxheSBoZXJlIGlzIGBUSVBDYCwgdGhhdCdzIHRoZSBkcml2ZXIuIEknbGwgZG91YmxlLWNoZWNrIHRvIGVuc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBhcmUgYWxzbyByZWxldmFudCwgYnV0IGBUSVBDYCBpcyB0aGUgYmlnIG9uZS5cblxuTXkgcmVhc29uaW5nPyBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0J3MgbW9kaWZ5aW5nIHRoZSBuZXR3b3JraW5nIGxvZ2ljIHdpdGhpbiBUSVBDLiBUaGlzIHdpbGwgYmUgcmVhY2hlZCBkdXJpbmcgdGhlIG5vcm1hbCBvcGVyYXRpb24gb2YgVElQQyBub2RlcyBjb25uZWN0aW5nIGFuZCBleGNoYW5naW5nIHJvdXRpbmcgYW5kIG5hbWUgdGFibGVzLCBzbyBpdCdzIGEgY3JpdGljYWwgYXJlYS5cblxuVGhlIFwiV29ydGhGdXp6aW5nXCIgZmxhZyBpcyBzZXQgdG8gdHJ1ZTsgaXQncyBkZWZpbml0ZWx5IGEgY2hhbmdlIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb25zIEkndmUgbGlzdGVkIGFyZSB0aGUgZm9jdXMgc3ltYm9scy4gSSdsbCBuZWVkIHRvIGVuYWJsZSBgVElQQ2AgaW4gYW55IHRlc3RpbmcuXG5cblJpZ2h0LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AgYW5kIGxvZyB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NzA5LCJPdXRwdXRUb2tlbnMiOjE1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODoyNC43ODg2MTYwNzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI3NDgxNTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCIsXG4gICAgXCJ0aXBjX25ldF9maW5hbGl6ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSdzIG93biBzdGF0ZSBpcyBwdWJsaXNoZWQuIEl0IGludHJvZHVjZXMgYSBuZXcgd29yayBpdGVtIGFuZCBhIHN5bmNocm9uaXphdGlvbiBmbGFnLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBsb2dpYyBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBuZXR3b3JraW5nIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIFRJUEMgbm9kZXMgY29ubmVjdCBhbmQgZXhjaGFuZ2Ugcm91dGluZy9uYW1lIHRhYmxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiLFxuICAgIFwidGlwY19uZXRfZmluYWxpemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-18 09:38:18 +0000 UTC FinishedAt: 2026-07-18 09:58:26 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "e8b64d09-1614-4089-bef2-974d09328afa" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_named_node_up", "tipc_named_dist_cluster_scope", "tipc_node_dist_bulk", "named_distribute", "tipc_net_finalize" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA5OjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbmV0X2ZpbmFsaXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSYjMzk7cyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMzU3YTQyMGQzNWU2NTE4NGYzZDA3MzJmYTc4YWJhN2U2OWUzNDY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTggMDk6NTc6NTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuY1xuQEAgLTYwLDYgJiM0Mzs2MCw3IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCB0aXBjX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldClcbiBcdHRuLVx1MDAzZXRyaWFsX2FkZHIgPSAwO1xuIFx0dG4tXHUwMDNlYWRkcl90cmlhbF9lbmQgPSAwO1xuIFx0dG4tXHUwMDNlY2FwYWJpbGl0aWVzID0gVElQQ19OT0RFX0NBUEFCSUxJVElFUztcbiYjNDM7XHRhdG9taWNfc2V0KFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCwgMCk7XG4gXHRJTklUX1dPUksoXHUwMDI2dG4tXHUwMDNld29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7XG4gXHRtZW1zZXQodG4tXHUwMDNlbm9kZV9pZCwgMCwgc2l6ZW9mKHRuLVx1MDAzZW5vZGVfaWQpKTtcbiBcdG1lbXNldCh0bi1cdTAwM2Vub2RlX2lkX3N0cmluZywgMCwgc2l6ZW9mKHRuLVx1MDAzZW5vZGVfaWRfc3RyaW5nKSk7XG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5oIGIvbmV0L3RpcGMvY29yZS5oXG5pbmRleCA5Y2U1ZjlmZjZjYzAzMS4uNzY3Njg4NDRjODA4MTQgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuaFxuQEAgLTE0NSw2ICYjNDM7MTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcbiBcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIFx0LyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi9cbiBcdGF0b21pY190IHdxX2NvdW50O1xuJiM0MztcdC8qIGZsYWcgdG8gaW5kaWNhdGUgd29yayBoYXMgZmluaXNoZWQgKi9cbiYjNDM7XHRhdG9taWNfdCBmaW5hbGl6ZWQ7XG4gfTtcbiBcbiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aXBjX25ldCAqdGlwY19uZXQoc3RydWN0IG5ldCAqbmV0KVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuYyBiL25ldC90aXBjL25hbWVfZGlzdHIuY1xuaW5kZXggMTkwYjQ5YzVjYmMzZWMuLjViMGZiMDkyMjZmYzY4IDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbkBAIC0xNDcsNyAmIzQzOzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxuICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpblxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcbiAgKi9cbi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiYjNDM7c3RhdGljIGludCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiBcdFx0XHQgICAgIHUzMiBkbm9kZSwgc3RydWN0IGxpc3RfaGVhZCAqcGxzLCB1MTYgc2Vxbm8pXG4ge1xuIFx0c3RydWN0IHB1YmxpY2F0aW9uICpwdWJsO1xuQEAgLTE2NCw4ICYjNDM7MTY0LDkgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXG4gXHRcdFx0c2tiID0gbmFtZWRfcHJlcGFyZV9idWYobmV0LCBQVUJMSUNBVElPTiwgbXNnX3JlbSxcbiBcdFx0XHRcdFx0XHRkbm9kZSk7XG4gXHRcdFx0aWYgKCFza2IpIHtcbiYjNDM7XHRcdFx0XHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcbiBcdFx0XHRcdHByX3dhcm4oXCYjMzQ7QnVsayBwdWJsaWNhdGlvbiBmYWlsdXJlXFxuXCYjMzQ7KTtcbi1cdFx0XHRcdHJldHVybjtcbiYjNDM7XHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuIFx0XHRcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcbkBAIC0xOTIsOSAmIzQzOzE5MywxNSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiBcdFx0c2tiX3RyaW0oc2tiLCBJTlRfSF9TSVpFICYjNDM7IChtc2dfZHN6IC0gbXNnX3JlbSkpO1xuIFx0XHRfX3NrYl9xdWV1ZV90YWlsKGxpc3QsIHNrYik7XG4gXHR9XG4mIzQzO1x0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xuJiM0MztcdFx0cHJfd2FybihcJiMzNDtCdWxrIHB1YmxpY2F0aW9uIGxpc3QgZW1wdHksIG5vdGhpbmcgdG8gZGlzdHJpYnV0ZVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRyZXR1cm4gMTtcbiYjNDM7XHR9XG4gXHRoZHIgPSBidWZfbXNnKHNrYl9wZWVrX3RhaWwobGlzdCkpO1xuIFx0bXNnX3NldF9sYXN0X2J1bGsoaGRyKTtcbiBcdG1zZ19zZXRfbmFtZWRfc2Vxbm8oaGRyLCBzZXFubyk7XG4mIzQzO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiAvKipcbkBAIC0yMDMsNyAmIzQzOzIxMCw3IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuICAqIEBkbm9kZTogZGVzdGluYXRpb24gbm9kZVxuICAqIEBjYXBhYmlsaXRpZXM6IHBlZXIgbm9kZSYjMzk7cyBjYXBhYmlsaXRpZXNcbiAgKi9cbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiYjNDM7aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiB7XG4gXHRzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTtcbiBcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xuQEAgLTIxOCw5ICYjNDM7MjI1LDUzIEBAIHZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dG4tXHUwMDNlbmFtZXRibF9sb2NrKTtcbiBcbiBcdHJlYWRfbG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuLVx0bmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubyk7XG4mIzQzO1x0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xuJiM0MztcdCAqIG5hbWUgdGFibGUgeWV0LlxuJiM0MztcdCAqL1xuJiM0MztcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuJiM0MztcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRcdHJldHVybiAxO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIC1FTk9CVUZTO1xuJiM0MztcdH1cbiYjNDM7XG4gXHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiBcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSlcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuJiM0MztcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xuJiM0MztcdHN0cnVjdCBza19idWZmX2hlYWQgaGVhZDtcbiYjNDM7XHR1MTYgc2Vxbm87XG4mIzQzO1xuJiM0MztcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZoZWFkKTtcbiYjNDM7XHR3YWl0X3Zhcl9ldmVudChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCkpO1xuJiM0MztcdHNwaW5fbG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuJiM0MztcdHNlcW5vID0gbnQtXHUwMDNlc25kX254dDtcbiYjNDM7XHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuJiM0MztcbiYjNDM7XHRyZWFkX2xvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcbiYjNDM7XHRcdC8qIGZpbmFsaXplIGlzIGRvbmUgYnV0IG5vdGhpbmcgd2FzIHB1Ymxpc2hlZCAocHVibGlzaFxuJiM0MztcdFx0ICogZmFpbGVkKTogYSBwZXJtYW5lbnQgc3RhdGUsIG5vdGhpbmcgdG8gc3luY2hyb25pemUuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0XHRyZXR1cm4gMDtcbiYjNDM7XHR9XG4mIzQzO1x0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIC1FTk9CVUZTO1xuJiM0MztcdH1cbiYjNDM7XHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiYjNDM7XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiB9XG4gXG4gLyoqXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG5pbmRleCBjNjc3ZjZmMDgyZGZiNy4uY2FkZjRlOGMzZTY2YzIgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxuQEAgLTY5LDcgJiM0Mzs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcbiBcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuJiM0MztpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTtcbiYjNDM7aW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKTtcbiB2b2lkIHRpcGNfbmFtZWRfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbmFtZWRxLFxuIFx0XHQgICAgdTE2ICpyY3Zfbnh0LCBib29sICpvcGVuKTtcbiB2b2lkIHRpcGNfbmFtZWRfcmVpbml0KHN0cnVjdCBuZXQgKm5ldCk7XG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmV0LmMgYi9uZXQvdGlwYy9uZXQuY1xuaW5kZXggN2U2NWQwYjBjNGE4ZDEuLjJhYTg4MTJjNTUxYWRkIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmV0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25ldC5jXG5AQCAtMTM4LDcgJiM0MzsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcbiBcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XG4gXHR0aXBjX3NrX3JlaW5pdChuZXQpO1xuIFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcbi1cdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKTtcbiYjNDM7XHRpZiAoIXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKSlcbiYjNDM7XHRcdHByX3dhcm4oXCYjMzQ7RmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcXG5cJiMzNDspO1xuJiM0MztcdGF0b21pY19pbmMoXHUwMDI2dG4tXHUwMDNlZmluYWxpemVkKTtcbiYjNDM7XHR3YWtlX3VwX3ZhcihcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuIH1cbiBcbiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLmY4MjYzNDdiNTg3MDkxIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xMTEsNiAmIzQzOzExMSw3IEBAIHN0cnVjdCB0aXBjX2JjbGlua19lbnRyeSB7XG4gICogQHBlZXJfbmV0OiBwZWVyJiMzOTtzIG5ldCBuYW1lc3BhY2VcbiAgKiBAcGVlcl9oYXNoX21peDogaGFzaCBmb3IgdGhpcyBwZWVyIChGSVhNRSlcbiAgKiBAY3J5cHRvX3J4OiBSWCBjcnlwdG8gaGFuZGxlclxuJiM0MzsgKiBAd29yazogd29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9uc1xuICAqL1xuIHN0cnVjdCB0aXBjX25vZGUge1xuIFx0dTMyIGFkZHI7XG5AQCAtMTQ1LDYgJiM0MzsxNDYsNyBAQCBzdHJ1Y3QgdGlwY19ub2RlIHtcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXG4gXHRzdHJ1Y3QgdGlwY19jcnlwdG8gKmNyeXB0b19yeDtcbiAjZW5kaWZcbiYjNDM7XHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcbiB9O1xuIFxuIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOlxuQEAgLTMwMyw2ICYjNDM7MzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycClcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXG4gXHR0aXBjX2NyeXB0b19zdG9wKFx1MDAyNm4tXHUwMDNlY3J5cHRvX3J4KTtcbiAjZW5kaWZcbiYjNDM7XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNm4tXHUwMDNld29yayk7XG4gXHRrZnJlZShuKTtcbiB9XG4gXG5AQCAtMzkzLDYgJiM0MzszOTYsMTkgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHR3cml0ZV91bmxvY2tfYmgoXHUwMDI2bi1cdTAwM2Vsb2NrKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHRpcGNfbm9kZV9kaXN0X2J1bGsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHRpcGNfbm9kZSAqbm9kZSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19ub2RlLCB3b3JrKTtcbiYjNDM7XG4mIzQzO1x0aWYgKHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKG5vZGUtXHUwMDNlbmV0LCBub2RlLVx1MDAzZWFkZHIpIFx1MDAzYyAwKSB7XG4mIzQzO1x0XHR1MzIgYmVhcmVyX2lkID0gbm9kZS1cdTAwM2VsaW5rX2lkIFx1MDAyNiAweGZmZmY7XG4mIzQzO1xuJiM0MztcdFx0dGlwY19ub2RlX2xpbmtfZG93bihub2RlLCBiZWFyZXJfaWQsIGZhbHNlKTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHRpcGNfbm9kZV9wdXQobm9kZSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0X19yZWxlYXNlcyhuLVx1MDAzZWxvY2spXG4ge1xuQEAgLTQyNCw4ICYjNDM7NDQwLDIyIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcbiBcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9ET1dOKVxuIFx0XHR0aXBjX3B1Ymxfbm90aWZ5KG5ldCwgcHVibF9saXN0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4gXG4tXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApXG4tXHRcdHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiYjNDM7XHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApIHtcbiYjNDM7XHRcdGludCByYyA9IDA7XG4mIzQzO1xuJiM0MztcdFx0cmMgPSB0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4mIzQzO1x0XHQvKiBEZWZlciBidWxrIGRpc3RyaWJ1dGlvbiB0byB3b3JrIHF1ZXVlICovXG4mIzQzO1x0XHRpZiAocmMgXHUwMDNlIDApIHtcbiYjNDM7XHRcdFx0dGlwY19ub2RlX2dldChuKTtcbiYjNDM7XHRcdFx0aWYgKCFzY2hlZHVsZV93b3JrKFx1MDAyNm4tXHUwMDNld29yaykpXG4mIzQzO1x0XHRcdFx0dGlwY19ub2RlX3B1dChuKTtcbiYjNDM7XHRcdH0gZWxzZSBpZiAocmMgXHUwMDNjIDApIHtcbiYjNDM7XHRcdFx0LyogQnJpbmcgdGhlIGxpbmsgZG93biB0byBzdGFydCBvdmVyIGJ1bGsgZGlzdHJpYnV0aW9uXG4mIzQzO1x0XHRcdCAqIHdoZW4gdGhlIGxpbmsgaXMgdXAgYWdhaW4uXG4mIzQzO1x0XHRcdCAqL1xuJiM0MztcdFx0XHR0aXBjX25vZGVfbGlua19kb3duKG4sIGJlYXJlcl9pZCwgZmFsc2UpO1xuJiM0MztcdFx0fVxuJiM0MztcdH1cbiBcbiBcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTElOS19VUCkge1xuIFx0XHR0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTtcbkBAIC01NjQsNiAmIzQzOzU5NCw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWxpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2VwdWJsX2xpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2Vjb25uX3Nrcyk7XG4mIzQzO1x0SU5JVF9XT1JLKFx1MDAyNm4tXHUwMDNld29yaywgdGlwY19ub2RlX2Rpc3RfYnVsayk7XG4gXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkubmFtZWRxKTtcbiBcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5pbnB1dHExKTtcbiBcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5LmFycnZxKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssCiAgICAmIzM0O3RpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kaXN0X2J1bGsmIzM0OywKICAgICYjMzQ7bmFtZWRfZGlzdHJpYnV0ZSYjMzQ7LAogICAgJiMzNDt0aXBjX25ldF9maW5hbGl6ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUmIzM5O3Mgb3duIHN0YXRlIGlzIHB1Ymxpc2hlZC4gSXQgaW50cm9kdWNlcyBhIG5ldyB3b3JrIGl0ZW0gYW5kIGEgc3luY2hyb25pemF0aW9uIGZsYWcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGxvZ2ljIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIG5ldHdvcmtpbmcgY29kZSB0aGF0IGNhbiBiZSByZWFjaGVkIHdoZW4gVElQQyBub2RlcyBjb25uZWN0IGFuZCBleGNoYW5nZSByb3V0aW5nL25hbWUgdGFibGVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhMzU3YTQyMGQzNWU2NTE4NGYzZDA3MzJmYTc4YWJhN2U2OWUzNDY1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTggMDk6NTc6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmMgYi9uZXQvdGlwYy9jb3JlLmMKaW5kZXggNDM0ZTcwZWFiZTA4MTIuLmNlMTY0NTA5ZDllMjdhIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5jCkBAIC02MCw2ICYjNDM7NjAsNyBAQCBzdGF0aWMgaW50IF9fbmV0X2luaXQgdGlwY19pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAJdG4tJmd0O3RyaWFsX2FkZHIgPSAwOwogCXRuLSZndDthZGRyX3RyaWFsX2VuZCA9IDA7CiAJdG4tJmd0O2NhcGFiaWxpdGllcyA9IFRJUENfTk9ERV9DQVBBQklMSVRJRVM7CiYjNDM7CWF0b21pY19zZXQoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkLCAwKTsKIAlJTklUX1dPUksoJmFtcDt0bi0mZ3Q7d29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7CiAJbWVtc2V0KHRuLSZndDtub2RlX2lkLCAwLCBzaXplb2YodG4tJmd0O25vZGVfaWQpKTsKIAltZW1zZXQodG4tJmd0O25vZGVfaWRfc3RyaW5nLCAwLCBzaXplb2YodG4tJmd0O25vZGVfaWRfc3RyaW5nKSk7CmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmggYi9uZXQvdGlwYy9jb3JlLmgKaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9jb3JlLmgKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5oCkBAIC0xNDUsNiAmIzQzOzE0NSw4IEBAIHN0cnVjdCB0aXBjX25ldCB7CiAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJLyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi8KIAlhdG9taWNfdCB3cV9jb3VudDsKJiM0MzsJLyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqLwomIzQzOwlhdG9taWNfdCBmaW5hbGl6ZWQ7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aXBjX25ldCAqdGlwY19uZXQoc3RydWN0IG5ldCAqbmV0KQpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jCmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuYwpAQCAtMTQ3LDcgJiM0MzsxNDcsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcCkKICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpbgogICogQHNlcW5vOiBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgbWVzc2FnZQogICovCi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCwKJiM0MztzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogCQkJICAgICB1MzIgZG5vZGUsIHN0cnVjdCBsaXN0X2hlYWQgKnBscywgdTE2IHNlcW5vKQogewogCXN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibDsKQEAgLTE2NCw4ICYjNDM7MTY0LDkgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAJCQlza2IgPSBuYW1lZF9wcmVwYXJlX2J1ZihuZXQsIFBVQkxJQ0FUSU9OLCBtc2dfcmVtLAogCQkJCQkJZG5vZGUpOwogCQkJaWYgKCFza2IpIHsKJiM0MzsJCQkJX19za2JfcXVldWVfcHVyZ2UobGlzdCk7CiAJCQkJcHJfd2FybigmIzM0O0J1bGsgcHVibGljYXRpb24gZmFpbHVyZVxuJiMzNDspOwotCQkJCXJldHVybjsKJiM0MzsJCQkJcmV0dXJuIDE7CiAJCQl9CiAJCQloZHIgPSBidWZfbXNnKHNrYik7CiAJCQltc2dfc2V0X2JjX2Fja19pbnZhbGlkKGhkciwgdHJ1ZSk7CkBAIC0xOTIsOSAmIzQzOzE5MywxNSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCwKIAkJc2tiX3RyaW0oc2tiLCBJTlRfSF9TSVpFICYjNDM7IChtc2dfZHN6IC0gbXNnX3JlbSkpOwogCQlfX3NrYl9xdWV1ZV90YWlsKGxpc3QsIHNrYik7CiAJfQomIzQzOwlpZiAoc2tiX3F1ZXVlX2VtcHR5KGxpc3QpKSB7CiYjNDM7CQlwcl93YXJuKCYjMzQ7QnVsayBwdWJsaWNhdGlvbiBsaXN0IGVtcHR5LCBub3RoaW5nIHRvIGRpc3RyaWJ1dGVcbiYjMzQ7KTsKJiM0MzsJCXJldHVybiAxOwomIzQzOwl9CiAJaGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTsKIAltc2dfc2V0X2xhc3RfYnVsayhoZHIpOwogCW1zZ19zZXRfbmFtZWRfc2Vxbm8oaGRyLCBzZXFubyk7CiYjNDM7CiYjNDM7CXJldHVybiAwOwogfQogCiAvKioKQEAgLTIwMyw3ICYjNDM7MjEwLDcgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGUKICAqIEBjYXBhYmlsaXRpZXM6IHBlZXIgbm9kZSYjMzk7cyBjYXBhYmlsaXRpZXMKICAqLwotdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpCiYjNDM7aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcykKIHsKIAlzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTsKIAlzdHJ1Y3QgdGlwY19uZXQgKnRuID0gdGlwY19uZXQobmV0KTsKQEAgLTIxOCw5ICYjNDM7MjI1LDUzIEBAIHZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKQogCXNwaW5fdW5sb2NrX2JoKCZhbXA7dG4tJmd0O25hbWV0YmxfbG9jayk7CiAKIAlyZWFkX2xvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKLQluYW1lZF9kaXN0cmlidXRlKG5ldCwgJmFtcDtoZWFkLCBkbm9kZSwgJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSwgc2Vxbm8pOwomIzQzOwkvKiB0aXBjX25ldF9maW5hbGl6ZV93b3JrKCkgaGFzIG5vdCBmaW5pc2hlZCBpbnNlcnRpbmcgc2VsZiBhZGRyZXNzIHRvCiYjNDM7CSAqIG5hbWUgdGFibGUgeWV0LgomIzQzOwkgKi8KJiM0MzsJaWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSkpKSB7CiYjNDM7CQlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwkJcmV0dXJuIDE7CiYjNDM7CX0KJiM0MzsKJiM0MzsJaWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlLCBzZXFubykpIHsKJiM0MzsJCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CQlyZXR1cm4gLUVOT0JVRlM7CiYjNDM7CX0KJiM0MzsKIAl0aXBjX25vZGVfeG1pdChuZXQsICZhbXA7aGVhZCwgZG5vZGUsIDApOwogCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTsKJiM0MzsJc3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7CiYjNDM7CXN0cnVjdCBza19idWZmX2hlYWQgaGVhZDsKJiM0MzsJdTE2IHNlcW5vOwomIzQzOwomIzQzOwlfX3NrYl9xdWV1ZV9oZWFkX2luaXQoJmFtcDtoZWFkKTsKJiM0MzsJd2FpdF92YXJfZXZlbnQoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkLCBhdG9taWNfcmVhZCgmYW1wO3RuLSZndDtmaW5hbGl6ZWQpKTsKJiM0MzsJc3Bpbl9sb2NrX2JoKCZhbXA7dG4tJmd0O25hbWV0YmxfbG9jayk7CiYjNDM7CXNlcW5vID0gbnQtJmd0O3NuZF9ueHQ7CiYjNDM7CXNwaW5fdW5sb2NrX2JoKCZhbXA7dG4tJmd0O25hbWV0YmxfbG9jayk7CiYjNDM7CiYjNDM7CXJlYWRfbG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwlpZiAodW5saWtlbHkobGlzdF9lbXB0eSgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlKSkpIHsKJiM0MzsJCS8qIGZpbmFsaXplIGlzIGRvbmUgYnV0IG5vdGhpbmcgd2FzIHB1Ymxpc2hlZCAocHVibGlzaAomIzQzOwkJICogZmFpbGVkKTogYSBwZXJtYW5lbnQgc3RhdGUsIG5vdGhpbmcgdG8gc3luY2hyb25pemUuCiYjNDM7CQkgKi8KJiM0MzsJCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsJfQomIzQzOwlpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsICZhbXA7aGVhZCwgZG5vZGUsICZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGUsIHNlcW5vKSkgewomIzQzOwkJcmVhZF91bmxvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsJCXJldHVybiAtRU5PQlVGUzsKJiM0MzsJfQomIzQzOwl0aXBjX25vZGVfeG1pdChuZXQsICZhbXA7aGVhZCwgZG5vZGUsIDApOwomIzQzOwlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmggYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmgKaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmgKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oCkBAIC02OSw3ICYjNDM7NjksOCBAQCBzdHJ1Y3QgZGlzdHJfaXRlbSB7CiAKIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3B1Ymxpc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpOwogc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfd2l0aGRyYXcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpOwotdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpOwomIzQzO2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpOwomIzQzO2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7CiB2b2lkIHRpcGNfbmFtZWRfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbmFtZWRxLAogCQkgICAgdTE2ICpyY3Zfbnh0LCBib29sICpvcGVuKTsKIHZvaWQgdGlwY19uYW1lZF9yZWluaXQoc3RydWN0IG5ldCAqbmV0KTsKZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmMKaW5kZXggN2U2NWQwYjBjNGE4ZDEuLjJhYTg4MTJjNTUxYWRkIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9uZXQuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9uZXQuYwpAQCAtMTM4LDcgJiM0MzsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcikKIAl0aXBjX25hbWVkX3JlaW5pdChuZXQpOwogCXRpcGNfc2tfcmVpbml0KG5ldCk7CiAJdGlwY19tb25fcmVpbml0X3NlbGYobmV0KTsKLQl0aXBjX25hbWV0YmxfcHVibGlzaChuZXQsICZhbXA7dWEsICZhbXA7c2ssIGFkZHIpOwomIzQzOwlpZiAoIXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgJmFtcDt1YSwgJmFtcDtzaywgYWRkcikpCiYjNDM7CQlwcl93YXJuKCYjMzQ7RmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcbiYjMzQ7KTsKJiM0MzsJYXRvbWljX2luYygmYW1wO3RuLSZndDtmaW5hbGl6ZWQpOwomIzQzOwl3YWtlX3VwX3ZhcigmYW1wO3RuLSZndDtmaW5hbGl6ZWQpOwogfQogCiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jCmluZGV4IDk3YWE5NzBhMGQ4M2NhLi5mODI2MzQ3YjU4NzA5MSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbm9kZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuYwpAQCAtMTExLDYgJiM0MzsxMTEsNyBAQCBzdHJ1Y3QgdGlwY19iY2xpbmtfZW50cnkgewogICogQHBlZXJfbmV0OiBwZWVyJiMzOTtzIG5ldCBuYW1lc3BhY2UKICAqIEBwZWVyX2hhc2hfbWl4OiBoYXNoIGZvciB0aGlzIHBlZXIgKEZJWE1FKQogICogQGNyeXB0b19yeDogUlggY3J5cHRvIGhhbmRsZXIKJiM0MzsgKiBAd29yazogd29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucwogICovCiBzdHJ1Y3QgdGlwY19ub2RlIHsKIAl1MzIgYWRkcjsKQEAgLTE0NSw2ICYjNDM7MTQ2LDcgQEAgc3RydWN0IHRpcGNfbm9kZSB7CiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPCiAJc3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7CiAjZW5kaWYKJiM0MzsJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiB9OwogCiAvKiBOb2RlIEZTTSBzdGF0ZXMgYW5kIGV2ZW50czoKQEAgLTMwMyw2ICYjNDM7MzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycCkKICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE8KIAl0aXBjX2NyeXB0b19zdG9wKCZhbXA7bi0mZ3Q7Y3J5cHRvX3J4KTsKICNlbmRpZgomIzQzOwljYW5jZWxfd29ya19zeW5jKCZhbXA7bi0mZ3Q7d29yayk7CiAJa2ZyZWUobik7CiB9CiAKQEAgLTM5Myw2ICYjNDM7Mzk2LDE5IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKQogCXdyaXRlX3VubG9ja19iaCgmYW1wO24tJmd0O2xvY2spOwogfQogCiYjNDM7c3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdGlwY19ub2RlICpub2RlID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25vZGUsIHdvcmspOwomIzQzOwomIzQzOwlpZiAodGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUobm9kZS0mZ3Q7bmV0LCBub2RlLSZndDthZGRyKSAmbHQ7IDApIHsKJiM0MzsJCXUzMiBiZWFyZXJfaWQgPSBub2RlLSZndDtsaW5rX2lkICZhbXA7IDB4ZmZmZjsKJiM0MzsKJiM0MzsJCXRpcGNfbm9kZV9saW5rX2Rvd24obm9kZSwgYmVhcmVyX2lkLCBmYWxzZSk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJdGlwY19ub2RlX3B1dChub2RlKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pCiAJX19yZWxlYXNlcyhuLSZndDtsb2NrKQogewpAQCAtNDI0LDggJiM0Mzs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKQogCWlmIChmbGFncyAmYW1wOyBUSVBDX05PVElGWV9OT0RFX0RPV04pCiAJCXRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tJmd0O2NhcGFiaWxpdGllcyk7CiAKLQlpZiAoZmxhZ3MgJmFtcDsgVElQQ19OT1RJRllfTk9ERV9VUCkKLQkJdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi0mZ3Q7Y2FwYWJpbGl0aWVzKTsKJiM0MzsJaWYgKGZsYWdzICZhbXA7IFRJUENfTk9USUZZX05PREVfVVApIHsKJiM0MzsJCWludCByYyA9IDA7CiYjNDM7CiYjNDM7CQlyYyA9IHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tJmd0O2NhcGFiaWxpdGllcyk7CiYjNDM7CQkvKiBEZWZlciBidWxrIGRpc3RyaWJ1dGlvbiB0byB3b3JrIHF1ZXVlICovCiYjNDM7CQlpZiAocmMgJmd0OyAwKSB7CiYjNDM7CQkJdGlwY19ub2RlX2dldChuKTsKJiM0MzsJCQlpZiAoIXNjaGVkdWxlX3dvcmsoJmFtcDtuLSZndDt3b3JrKSkKJiM0MzsJCQkJdGlwY19ub2RlX3B1dChuKTsKJiM0MzsJCX0gZWxzZSBpZiAocmMgJmx0OyAwKSB7CiYjNDM7CQkJLyogQnJpbmcgdGhlIGxpbmsgZG93biB0byBzdGFydCBvdmVyIGJ1bGsgZGlzdHJpYnV0aW9uCiYjNDM7CQkJICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi4KJiM0MzsJCQkgKi8KJiM0MzsJCQl0aXBjX25vZGVfbGlua19kb3duKG4sIGJlYXJlcl9pZCwgZmFsc2UpOwomIzQzOwkJfQomIzQzOwl9CiAKIAlpZiAoZmxhZ3MgJmFtcDsgVElQQ19OT1RJRllfTElOS19VUCkgewogCQl0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTsKQEAgLTU2NCw2ICYjNDM7NTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCwKIAlJTklUX0xJU1RfSEVBRCgmYW1wO24tJmd0O2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7bi0mZ3Q7cHVibF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmYW1wO24tJmd0O2Nvbm5fc2tzKTsKJiM0MzsJSU5JVF9XT1JLKCZhbXA7bi0mZ3Q7d29yaywgdGlwY19ub2RlX2Rpc3RfYnVsayk7CiAJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO24tJmd0O2JjX2VudHJ5Lm5hbWVkcSk7CiAJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO24tJmd0O2JjX2VudHJ5LmlucHV0cTEpOwogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO24tJmd0O2JjX2VudHJ5LmFycnZxKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA5OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDM1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBUSVBDIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgZm9yIHRoZSBUSVBDIHN1YnN5c3RlbSwgYW5kIGl0IGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGltcHJvdmVtZW50LCBsaWtlbHkgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIG9yIGF0IGxlYXN0IG9wdGltaXppbmcgdGhlIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGNsdXN0ZXItc2NvcGUgcHVibGljYXRpb25zLiBUaGUgY2hhbmdlcyBhcmUgcHJldHR5IGZvY3VzZWQsIHRvdWNoaW5nIHRoZSBjb3JlIFRJUEMgY29kZSB3aXRoaW4gdGhlIGtlcm5lbCwgc3BlY2lmaWNhbGx5IGZpbGVzIGxpa2UgYGNvcmUuY2AsIGBuYW1lX2Rpc3RyLmNgLCBgbmV0LmNgLCBhbmQgYG5vZGUuY2AuIFRoaXMgaXMgYWxsIHdpdGhpbiB0aGUgaGVhcnQgb2YgdGhlIFRJUEMgaW1wbGVtZW50YXRpb24uCgpUaGUga2V5IHNlZW1zIHRvIGJlIHRoaXMgbmV3IGBmaW5hbGl6ZWRgIGF0b21pYyBmbGFnIHdpdGhpbiBgc3RydWN0IHRpcGNfbmV0YC4gVGhhdCYjMzk7cyB0aGUgc2lnbmFsLCBhcHBhcmVudGx5LCB0byB0cmFjayB3aGVuIHRoZSBuZXR3b3JrIGZpbmFsaXphdGlvbiBpcyBjb21wbGV0ZS4gVGhlIGNoYW5nZXMgdG8gYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIGl0cyBpbnRlZ2VyIHJldHVybiwgcGx1cyB0aGUgYWRkaXRpb24gb2YgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYXJlIGRlZmluaXRlbHkgY2VudHJhbCB0byB0aGUgbmV3IGxvZ2ljLiBJdCBsb29rcyBsaWtlIGB0aXBjX25vZGVfZGlzdF9idWxrYCBpcyBub3cgYmVpbmcgbWFuYWdlZCB3aXRoIGEgd29yayBxdWV1ZSBpdGVtIHdpdGhpbiBgc3RydWN0IHRpcGNfbm9kZWAsIGFuZCB0aGF0IHRoaXMgaXMgdHJpZ2dlcmVkIHdpdGhpbiB0aGUgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgIGZ1bmN0aW9uIGJhc2VkIG9uIHRoZSByZXR1cm4gdmFsdWUgb2YgYHRpcGNfbmFtZWRfbm9kZV91cGAuIFdlJiMzOTtyZSB1c2luZyBgd2FpdF92YXJfZXZlbnRgIHRvIGVuc3VyZSB0aGF0IHRoaXMgZGVmZXJyZWQgYnVsayBkaXN0cmlidXRpb24gd2FpdHMgZm9yIHRoZSBgdG4tJmd0O2ZpbmFsaXplZGAgZmxhZyB0byBiZSBzZXQuCgpGcm9tIGEgcXVpY2sgZ2xhbmNlLCBpdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBhdHRlbXB0aW5nIHRvIGVuc3VyZSB0aGF0IHRoZSBidWxrIGRpc3RyaWJ1dGlvbiBvZiBpbmZvcm1hdGlvbiBpcyBkZWxheWVkIHVudGlsIHRoZSBub2RlJiMzOTtzIG93biBzdGF0ZSBoYXMgYmVlbiBmdWxseSBwdWJsaXNoZWQuIE1ha2VzIHNlbnNlOyBhdm9pZCBwYXJ0aWFsIG9yIGNvbmZsaWN0aW5nIHN0YXRlcy4gR2l2ZW4gdGhpcyBtb2RpZmljYXRpb24gdG8gY29yZSBrZXJuZWwgbG9naWMsIGFuZCB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2UsIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0aG9yb3VnaGx5LiBUaGUgcGF0Y2ggYXV0aG9ycyBldmVuIHRhZ2dlZCB0aGlzIGZvciBmdXp6aW5nLgoKTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaW1lIHRvIGZpcmUgdXAgYGdyZXBwZXJgIGFuZCBzZWFyY2ggZm9yIGBDT05GSUdfVElQQ2Agd2l0aGluIHRoZSBrZXJuZWwmIzM5O3MgS2NvbmZpZyBmaWxlcy4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIGNvbnRyb2wgdGhpcyBzdWJzeXN0ZW0gdG8gcHJvcGVybHkgdGVzdCB0aGUgY2hhbmdlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVElQQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC90aXBjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGlwYy9LY29uZmlnLTUtXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXG5uZXQvdGlwYy9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtUaGUgVElQQyBQcm90b2NvbFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMjMtXG5uZXQvdGlwYy9LY29uZmlnOjI0OmNvbmZpZyBUSVBDX01FRElBX0lCXG5uZXQvdGlwYy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtJbmZpbmlCYW5kIG1lZGlhIHR5cGUgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMjktXHQgIElQLW92ZXItSW5maW5pQmFuZCBkZXZpY2VzLlxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcbm5ldC90aXBjL0tjb25maWctMzEtXHRib29sIFwmIzM0O0lQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxubmV0L3RpcGMvS2NvbmZpZzozODpjb25maWcgVElQQ19DUllQVE9cbm5ldC90aXBjL0tjb25maWctMzktXHRib29sIFwmIzM0O1RJUEMgZW5jcnlwdGlvbiBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy01Mi1cbm5ldC90aXBjL0tjb25maWc6NTM6Y29uZmlnIFRJUENfRElBR1xubmV0L3RpcGMvS2NvbmZpZy01NC1cdHRyaXN0YXRlIFwmIzM0O1RJUEM6IHNvY2tldCBtb25pdG9yaW5nIGludGVyZmFjZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA5OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYxOTcKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAzODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBUSVBDIENvbmZpZ3VyYXRpb24gYW5kIFJlbGV2YW50IFN5bWJvbHMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgdGhlIG1haW4gY29uZmlndXJhdGlvbiBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBgVElQQ2AuIEkmIzM5O20gZG91YmxlLWNoZWNraW5nIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgc3BlY2lmaWMsIGJ1dCBpdCBsb29rcyBsaWtlIGBUSVBDYCBpcyBzdWZmaWNpZW50IGZvciBub3cuIEdvb2QsIGxldCYjMzk7cyBtb3ZlIG9uLgoKTm93LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGNyaXRpY2FsIHN5bWJvbHMgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaC4gVGhlIGRpZmYgbW9kaWZpZXMgYSBmYWlyIG51bWJlciBvZiBmdW5jdGlvbnMsIGluY2x1ZGluZyBgdGlwY19pbml0X25ldGAsIGBuYW1lZF9kaXN0cmlidXRlYCwgYHRpcGNfbmFtZWRfbm9kZV91cGAsIGFuZCBzbyBvbi4gU3BlY2lmaWNhbGx5LCBJIHNlZSBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgIGFuZCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AgYXJlIG5ldy4gQWZ0ZXIgZXhhbWluaW5nIHRoZSBwYXRjaCwgSSYjMzk7dmUgaWRlbnRpZmllZCB0aGUgY29yZSBmdW5jdGlvbnMgdGhhdCBJIHNob3VsZCBiZSBmb2N1c2luZyBvbjogYHRpcGNfbmFtZWRfbm9kZV91cGAsIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAsIGB0aXBjX25vZGVfZGlzdF9idWxrYCwgYHRpcGNfbmV0X2ZpbmFsaXplYCwgYW5kIGBuYW1lZF9kaXN0cmlidXRlYC4KCkkgbmVlZCB0byBjb25maXJtIHRoZSBzY29wZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEkgc2VlIHRoYXQgYG5hbWVkX2Rpc3RyaWJ1dGVgIGlzIHN0YXRpYywgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBgdGlwY19uYW1lZF9ub2RlX3VwYCBpcyBleHBvcnRlZC9nbG9iYWwsIGFuZCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgIGlzIGFsc28gZ2xvYmFsLiBNZWFud2hpbGUsIGB0aXBjX25vZGVfZGlzdF9idWxrYCBhbmQgYHRpcGNfbmV0X2ZpbmFsaXplYCBhcmUgc3RhdGljLgoKQWxyaWdodCwgZm9yIGNvbmNpc2UgcmV2aWV3LCBJJiMzOTtsbCBsaXN0IHRoZSBtb2RpZmllZCBmdW5jdGlvbnMgdGhhdCBhcmVuJiMzOTt0IG92ZXJseSBnZW5lcmljOiBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYHRpcGNfbm9kZV9kaXN0X2J1bGtgLCBgdGlwY19uZXRfZmluYWxpemVgLCBhbmQgYG5hbWVkX2Rpc3RyaWJ1dGVgLgoKV2FpdCwgSSBuZWVkIHRvIGNoZWNrIGB0aXBjX25vZGVfd3JpdGVfdW5sb2NrYC4gSXQgKmlzKiBtb2RpZmllZCwgYW5kIEkgbmVlZCB0byBhc3Nlc3Mgd2hldGhlciB0aGF0JiMzOTtzIGEgaG90IHBhdGgsIG9yIGlmIGl0JiMzOTtzIGxlc3MgY3JpdGljYWwuIExldCBtZSB0YWtlIGEgbG9vayBhdCB0aGUgY2FsbHMuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0aXBjX25vZGVfd3JpdGVfdW5sb2NrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3RpcGMvbm9kZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL25vZGUuYz0zODc9c3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX2xvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMzkyLVxubmV0L3RpcGMvbm9kZS5jOjM5MzpzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qoc3RydWN0IHRpcGNfbm9kZSAqbilcbm5ldC90aXBjL25vZGUuYy0zOTQtXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbi0tXG5uZXQvdGlwYy9ub2RlLmM9Mzk5PXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9kaXN0X2J1bGsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbm5ldC90aXBjL25vZGUuYy00MTEtXG5uZXQvdGlwYy9ub2RlLmM6NDEyOnN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcbm5ldC90aXBjL25vZGUuYy00MTMtXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbi0tXG5uZXQvdGlwYy9ub2RlLmM9NDk4PXN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4tLVxubmV0L3RpcGMvbm9kZS5jLTUyMy1cdFx0XHRwcl93YXJuKFwmIzM0O0Jyb2FkY2FzdCByY3YgbGluayByZWZyZXNoIGZhaWxlZCwgbm8gbWVtb3J5XFxuXCYjMzQ7KTtcbm5ldC90aXBjL25vZGUuYzo1MjQ6XHRcdFx0dGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KG4pO1xubmV0L3RpcGMvbm9kZS5jLTUyNS1cdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuLS1cbm5ldC90aXBjL25vZGUuYy01MzktXHRcdGxpc3RfYWRkX3RhaWxfcmN1KFx1MDAyNm4tXHUwMDNlbGlzdCwgXHUwMDI2dGVtcF9ub2RlLVx1MDAzZWxpc3QpO1xubmV0L3RpcGMvbm9kZS5jOjU0MDpcdFx0dGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KG4pO1xubmV0L3RpcGMvbm9kZS5jLTU0MS1cbi0tXG5uZXQvdGlwYy9ub2RlLmMtNTU0LVx0XHR9XG5uZXQvdGlwYy9ub2RlLmM6NTU1Olx0XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XG5uZXQvdGlwYy9ub2RlLmMtNTU2LVxuLS1cbm5ldC90aXBjL25vZGUuYz02ODc9dm9pZCB0aXBjX25vZGVfc3Vic2NyaWJlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqc3Vic2NyLCB1MzIgYWRkcilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtNzAwLVx0bGlzdF9hZGRfdGFpbChzdWJzY3IsIFx1MDAyNm4tXHUwMDNlcHVibF9saXN0KTtcbm5ldC90aXBjL25vZGUuYzo3MDE6XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XG5uZXQvdGlwYy9ub2RlLmMtNzAyLVx0dGlwY19ub2RlX3B1dChuKTtcbi0tXG5uZXQvdGlwYy9ub2RlLmM9NzA1PXZvaWQgdGlwY19ub2RlX3Vuc3Vic2NyaWJlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqc3Vic2NyLCB1MzIgYWRkcilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtNzE4LVx0bGlzdF9kZWxfaW5pdChzdWJzY3IpO1xubmV0L3RpcGMvbm9kZS5jOjcxOTpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChuKTtcbm5ldC90aXBjL25vZGUuYy03MjAtXHR0aXBjX25vZGVfcHV0KG4pO1xuLS1cbm5ldC90aXBjL25vZGUuYz03MjM9aW50IHRpcGNfbm9kZV9hZGRfY29ubihzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTMyIHBvcnQsIHUzMiBwZWVyX3BvcnQpXG4tLVxubmV0L3RpcGMvbm9kZS5jLTc0Ny1cdGxpc3RfYWRkX3RhaWwoXHUwMDI2Y29ubi1cdTAwM2VsaXN0LCBcdTAwMjZub2RlLVx1MDAzZWNvbm5fc2tzKTtcbm5ldC90aXBjL25vZGUuYzo3NDg6XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG5vZGUpO1xubmV0L3RpcGMvbm9kZS5jLTc0OS1leGl0OlxuLS1cbm5ldC90aXBjL25vZGUuYz03NTQ9dm9pZCB0aXBjX25vZGVfcmVtb3ZlX2Nvbm4oc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUzMiBwb3J0KVxuLS1cbm5ldC90aXBjL25vZGUuYy03NzItXHR9XG5uZXQvdGlwYy9ub2RlLmM6NzczOlx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhub2RlKTtcbm5ldC90aXBjL25vZGUuYy03NzQtXHR0aXBjX25vZGVfcHV0KG5vZGUpO1xuLS1cbm5ldC90aXBjL25vZGUuYz03OTU9c3RhdGljIGJvb2wgdGlwY19ub2RlX2NsZWFudXAoc3RydWN0IHRpcGNfbm9kZSAqcGVlcilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtODExLVx0fVxubmV0L3RpcGMvbm9kZS5jOjgxMjpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2socGVlcik7XG5uZXQvdGlwYy9ub2RlLmMtODEzLVxuLS1cbm5ldC90aXBjL25vZGUuYz05NTY9c3RhdGljIHZvaWQgdGlwY19ub2RlX2xpbmtfdXAoc3RydWN0IHRpcGNfbm9kZSAqbiwgaW50IGJlYXJlcl9pZCxcbi0tXG5uZXQvdGlwYy9ub2RlLmMtOTY0LVx0dGlwY19iZWFyZXJfeG1pdChuLVx1MDAzZW5ldCwgYmVhcmVyX2lkLCB4bWl0cSwgbWFkZHIsIG4pO1xubmV0L3RpcGMvbm9kZS5jOjk2NTpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtOTY2LX1cbi0tXG5uZXQvdGlwYy9ub2RlLmM9MTA5Mz1zdGF0aWMgdm9pZCB0aXBjX25vZGVfbGlua19kb3duKHN0cnVjdCB0aXBjX25vZGUgKm4sIGludCBiZWFyZXJfaWQsIGJvb2wgZGVsZXRlKVxuLS1cbm5ldC90aXBjL25vZGUuYy0xMTE5LVx0dHJhY2VfdGlwY19ub2RlX2xpbmtfZG93bihuLCB0cnVlLCBcJiMzNDtub2RlIGxpbmsgZG93biBvciBkZWxldGVkIVwmIzM0Oyk7XG5uZXQvdGlwYy9ub2RlLmM6MTEyMDpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtMTEyMS1cdGlmIChkZWxldGUpXG4tLVxubmV0L3RpcGMvbm9kZS5jPTExOTk9dm9pZCB0aXBjX25vZGVfY2hlY2tfZGVzdChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLFxuLS1cbm5ldC90aXBjL25vZGUuYy0xMzM3LWV4aXQ6XG5uZXQvdGlwYy9ub2RlLmM6MTMzODpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtMTMzOS1cdGlmIChyZXNldCBcdTAwMjZcdTAwMjYgIWxpbmtfaXNfcmVzZXQpXG4tLVxubmV0L3RpcGMvbm9kZS5jPTIxMTQ9dm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMjIwNi1cdFx0fVxubmV0L3RpcGMvbm9kZS5jOjIyMDc6XHRcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XG5uZXQvdGlwYy9ub2RlLmMtMjIwOC1cdH1cbi0tXG5uZXQvdGlwYy9ub2RlLmM9MjIzNj12b2lkIHRpcGNfbm9kZV9hcHBseV9wcm9wZXJ0eShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYixcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMjI2Mi1cbm5ldC90aXBjL25vZGUuYzoyMjYzOlx0XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG4pO1xubmV0L3RpcGMvbm9kZS5jLTIyNjQtXHRcdHRpcGNfYmVhcmVyX3htaXQobmV0LCBiZWFyZXJfaWQsIFx1MDAyNnhtaXRxLCBcdTAwMjZlLVx1MDAzZW1hZGRyLCBOVUxMKTtcbi0tXG5uZXQvdGlwYy9ub2RlLmM9MjI3MD1pbnQgdGlwY19ubF9wZWVyX3JtKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxubmV0L3RpcGMvbm9kZS5jLTIzMjEtXHQgICAgcGVlci1cdTAwM2VzdGF0ZSAhPSBTRUxGX0RPV05fUEVFUl9MRUFWSU5HKSB7XG5uZXQvdGlwYy9ub2RlLmM6MjMyMjpcdFx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhwZWVyKTtcbm5ldC90aXBjL25vZGUuYy0yMzIzLVx0XHRlcnIgPSAtRUJVU1k7XG4tLVxubmV0L3RpcGMvbm9kZS5jLTIzMjctXHR0aXBjX25vZGVfY2xlYXJfbGlua3MocGVlcik7XG5uZXQvdGlwYy9ub2RlLmM6MjMyODpcdHRpcGNfbm9kZV93cml0ZV91bmxvY2socGVlcik7XG5uZXQvdGlwYy9ub2RlLmMtMjMyOS1cdHRpcGNfbm9kZV9kZWxldGUocGVlcik7XG4tLVxubmV0L3RpcGMvbm9kZS5jPTMxNjg9dm9pZCB0aXBjX25vZGVfcHJlX2NsZWFudXBfbmV0KHN0cnVjdCBuZXQgKmV4aXRfbmV0KVxuLS1cbm5ldC90aXBjL25vZGUuYy0zMTg5LVx0XHRcdG4tXHUwMDNlcGVlcl9oYXNoX21peCA9IDA7XG5uZXQvdGlwYy9ub2RlLmM6MzE5MDpcdFx0XHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XG5uZXQvdGlwYy9ub2RlLmMtMzE5MS1cdFx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwOTo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MDM4CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUSVBDIEZ1bmN0aW9uIENhbGxzKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoZXNlIFRJUEMgZnVuY3Rpb25zLiBJJiMzOTt2ZSBhbHJlYWR5IGRlY2lkZWQgdG8gZXhjbHVkZSBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgZnJvbSBteSBhbmFseXNpcyBiZWNhdXNlIGl0JiMzOTtzIGNsZWFybHkgYSBoaWdoLWZyZXF1ZW5jeSBmdW5jdGlvbiDigJMgcHJvYmFibHkgdG9vIG5vaXN5IHRvIGJlIHdvcnRoIGZvY3VzaW5nIG9uIGZvciB0aGlzIHBhcnRpY3VsYXIgaW52ZXN0aWdhdGlvbi4gSSYjMzk7bSBhbHNvIHNraXBwaW5nIGB0aXBjX3JjdmAgYW5kIGB0aXBjX25vZGVfY2hlY2tfZGVzdGAsIGFzIHRoZXkmIzM5O3JlIHJlbGF0ZWQuCgpJJiMzOTt2ZSBub3RlZCB0aGF0IGB0aXBjX25ldF9maW5hbGl6ZWAgaXMgdGllZCB0byBuZXR3b3JrIGluaXRpYWxpemF0aW9uLiBUaGF0JiMzOTtzIGdvb2QgY29udGV4dCB0byBoYXZlLCBidXQgbm90IHRoZSBmb2N1cyByaWdodCBub3cuIFNpbWlsYXJseSwgSSBrbm93IHRoYXQgYHRpcGNfbmFtZWRfbm9kZV91cGAgaXMgdHJpZ2dlcmVkIHdoZW4gYSBub2RlIGNvbWVzIG9ubGluZSwgYW5kIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgZ2V0cyBjYWxsZWQgZnJvbSB0aGUgd29yayBxdWV1ZSwgYWxvbmcgd2l0aCB0aGUgd29ya2VyIGZ1bmN0aW9uIGB0aXBjX25vZGVfZGlzdF9idWxrYC4KClNvLCBnaXZlbiB3aGF0IEkmIzM5O3ZlIHNlZW4sIGl0IHNlZW1zIHRoYXQgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgYXJlIHRoZSBtb3JlIGludGVyZXN0aW5nIGFyZWFzIHRvIGV4cGxvcmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgaW50byBgbmV0L3RpcGMvbmFtZV9kaXN0ci5jYCBhbmQgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRob3NlIHR3byBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3RpcGMvbmFtZV9kaXN0ci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL25hbWVfZGlzdHIuYz0xNTA9c3RhdGljIGludCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbi0tXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjA3LS8qKlxubmV0L3RpcGMvbmFtZV9kaXN0ci5jOjIwODogKiB0aXBjX25hbWVkX25vZGVfdXAgLSB0ZWxsIHNwZWNpZmllZCBub2RlIGFib3V0IGFsbCBwdWJsaWNhdGlvbnMgYnkgdGhpcyBub2RlXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjA5LSAqIEBuZXQ6IHRoZSBhc3NvY2lhdGVkIG5ldHdvcmsgbmFtZXNwYWNlXG4tLVxubmV0L3RpcGMvbmFtZV9kaXN0ci5jLTIxMi0gKi9cbm5ldC90aXBjL25hbWVfZGlzdHIuYzoyMTM6aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbm5ldC90aXBjL25hbWVfZGlzdHIuYy0yMTQte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA5OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk3MDkKCQkJCQkJCW91dHB1dDogMTUwCgkJCQkJCQl0aG91Z2h0czogMjE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlRJUEMgU3Vic3lzdGVtIFJlZmluZW1lbnQ6IERlbGF5ZWQgQnVsayBEaXN0cmlidXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIFRJUEMgKFRyYW5zcGFyZW50IEludGVyLVByb2Nlc3MgQ29tbXVuaWNhdGlvbikgc3Vic3lzdGVtLiBUaGUgY29yZSBvZiB0aGlzIGNoYW5nZSBpbnZvbHZlcyBkZWZlcnJpbmcgdGhlIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGNsdXN0ZXItc2NvcGUgcHVibGljYXRpb25zLiBCYXNpY2FsbHksIHdlJiMzOTtyZSB3YWl0aW5nIHRvIGRvIHRoaXMgdW50aWwgdGhlIG5vZGUmIzM5O3Mgb3duIHN0YXRlIGhhcyBiZWVuIHB1Ymxpc2hlZC4gU2VlbXMgbGlrZSBhIHN5bmNocm9uaXphdGlvbiBpc3N1ZSBiZWluZyBhZGRyZXNzZWQuCgpJJiMzOTt2ZSBpZGVudGlmaWVkIGtleSBmdW5jdGlvbnM6IGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAuIFRoZXNlIGFyZSB0aGUgaGVhcnQgb2YgdGhlIGxvZ2ljIGJlaW5nIG1vZGlmaWVkLCB0aGUgcGxhY2VzIHdoZXJlIHRoaXMgZGVsYXllZCBkaXN0cmlidXRpb24gaXMgaW1wbGVtZW50ZWQuIEkmIzM5O20gYWxzbyBhZGRpbmcgYHRpcGNfbmV0X2ZpbmFsaXplYCBmb3IgY29tcGxldGVuZXNzLgoKVGhlIHByaW1hcnkgY29uZmlnIGluIHBsYXkgaGVyZSBpcyBgVElQQ2AsIHRoYXQmIzM5O3MgdGhlIGRyaXZlci4gSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRvIGVuc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBjb25maWdzIHRoYXQgYXJlIGFsc28gcmVsZXZhbnQsIGJ1dCBgVElQQ2AgaXMgdGhlIGJpZyBvbmUuCgpNeSByZWFzb25pbmc/IFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQmIzM5O3MgbW9kaWZ5aW5nIHRoZSBuZXR3b3JraW5nIGxvZ2ljIHdpdGhpbiBUSVBDLiBUaGlzIHdpbGwgYmUgcmVhY2hlZCBkdXJpbmcgdGhlIG5vcm1hbCBvcGVyYXRpb24gb2YgVElQQyBub2RlcyBjb25uZWN0aW5nIGFuZCBleGNoYW5naW5nIHJvdXRpbmcgYW5kIG5hbWUgdGFibGVzLCBzbyBpdCYjMzk7cyBhIGNyaXRpY2FsIGFyZWEuCgpUaGUgJiMzNDtXb3J0aEZ1enppbmcmIzM0OyBmbGFnIGlzIHNldCB0byB0cnVlOyBpdCYjMzk7cyBkZWZpbml0ZWx5IGEgY2hhbmdlIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb25zIEkmIzM5O3ZlIGxpc3RlZCBhcmUgdGhlIGZvY3VzIHN5bWJvbHMuIEkmIzM5O2xsIG5lZWQgdG8gZW5hYmxlIGBUSVBDYCBpbiBhbnkgdGVzdGluZy4KClJpZ2h0LCBsZXQmIzM5O3MgY2FsbCBgc2V0LXJlc3VsdHNgIGFuZCBsb2cgdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDk6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbmV0X2ZpbmFsaXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSYjMzk7cyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbmV0X2ZpbmFsaXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSYjMzk7cyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODowMC41MTc5MjQyMDRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDQxMzQ1OTgxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiLFxuICAgIFwidGlwY19uZXRfZmluYWxpemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA5OjU4OjAwLjUxNzkzMDE4NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjgxMzAxMjA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTM1N2E0MjBkMzVlNjUxODRmM2QwNzMyZmE3OGFiYTdlNjllMzQ2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAxOCAwOTo1Nzo1OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmMgYi9uZXQvdGlwYy9jb3JlLmNcXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvY29yZS5jXFxuKysrIGIvbmV0L3RpcGMvY29yZS5jXFxuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxcbiBcXHR0bi1cXHUwMDNldHJpYWxfYWRkciA9IDA7XFxuIFxcdHRuLVxcdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XFxuIFxcdHRuLVxcdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xcbitcXHRhdG9taWNfc2V0KFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkLCAwKTtcXG4gXFx0SU5JVF9XT1JLKFxcdTAwMjZ0bi1cXHUwMDNld29yaywgdGlwY19uZXRfZmluYWxpemVfd29yayk7XFxuIFxcdG1lbXNldCh0bi1cXHUwMDNlbm9kZV9pZCwgMCwgc2l6ZW9mKHRuLVxcdTAwM2Vub2RlX2lkKSk7XFxuIFxcdG1lbXNldCh0bi1cXHUwMDNlbm9kZV9pZF9zdHJpbmcsIDAsIHNpemVvZih0bi1cXHUwMDNlbm9kZV9pZF9zdHJpbmcpKTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5oIGIvbmV0L3RpcGMvY29yZS5oXFxuaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL2NvcmUuaFxcbisrKyBiL25ldC90aXBjL2NvcmUuaFxcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcXG4gXFx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XFxuIFxcdC8qIFRoZSBudW1iZXJzIG9mIHdvcmsgcXVldWVzIGluIHNjaGVkdWxlICovXFxuIFxcdGF0b21pY190IHdxX2NvdW50O1xcbitcXHQvKiBmbGFnIHRvIGluZGljYXRlIHdvcmsgaGFzIGZpbmlzaGVkICovXFxuK1xcdGF0b21pY190IGZpbmFsaXplZDtcXG4gfTtcXG4gXFxuIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRpcGNfbmV0ICp0aXBjX25ldChzdHJ1Y3QgbmV0ICpuZXQpXFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuYyBiL25ldC90aXBjL25hbWVfZGlzdHIuY1xcbmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcXG4rKysgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcXG5AQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxcbiAgKiBAcGxzOiBsaW5rZWQgbGlzdCBvZiBwdWJsaWNhdGlvbiBpdGVtcyB0byBiZSBwYWNrZWQgaW50byBidWZmZXIgY2hhaW5cXG4gICogQHNlcW5vOiBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgbWVzc2FnZVxcbiAgKi9cXG4tc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuK3N0YXRpYyBpbnQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuIFxcdFxcdFxcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcXG4ge1xcbiBcXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XFxuQEAgLTE2NCw4ICsxNjQsOSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcXG4gXFx0XFx0XFx0c2tiID0gbmFtZWRfcHJlcGFyZV9idWYobmV0LCBQVUJMSUNBVElPTiwgbXNnX3JlbSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ZG5vZGUpO1xcbiBcXHRcXHRcXHRpZiAoIXNrYikge1xcbitcXHRcXHRcXHRcXHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcXG4gXFx0XFx0XFx0XFx0cHJfd2FybihcXFwiQnVsayBwdWJsaWNhdGlvbiBmYWlsdXJlXFxcXG5cXFwiKTtcXG4tXFx0XFx0XFx0XFx0cmV0dXJuO1xcbitcXHRcXHRcXHRcXHRyZXR1cm4gMTtcXG4gXFx0XFx0XFx0fVxcbiBcXHRcXHRcXHRoZHIgPSBidWZfbXNnKHNrYik7XFxuIFxcdFxcdFxcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcXG5AQCAtMTkyLDkgKzE5MywxNSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcXG4gXFx0XFx0c2tiX3RyaW0oc2tiLCBJTlRfSF9TSVpFICsgKG1zZ19kc3ogLSBtc2dfcmVtKSk7XFxuIFxcdFxcdF9fc2tiX3F1ZXVlX3RhaWwobGlzdCwgc2tiKTtcXG4gXFx0fVxcbitcXHRpZiAoc2tiX3F1ZXVlX2VtcHR5KGxpc3QpKSB7XFxuK1xcdFxcdHByX3dhcm4oXFxcIkJ1bGsgcHVibGljYXRpb24gbGlzdCBlbXB0eSwgbm90aGluZyB0byBkaXN0cmlidXRlXFxcXG5cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIDE7XFxuK1xcdH1cXG4gXFx0aGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTtcXG4gXFx0bXNnX3NldF9sYXN0X2J1bGsoaGRyKTtcXG4gXFx0bXNnX3NldF9uYW1lZF9zZXFubyhoZHIsIHNlcW5vKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbiB9XFxuIFxcbiAvKipcXG5AQCAtMjAzLDcgKzIxMCw3IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGVcXG4gICogQGNhcGFiaWxpdGllczogcGVlciBub2RlJ3MgY2FwYWJpbGl0aWVzXFxuICAqL1xcbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcXG4raW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcXG4ge1xcbiBcXHRzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTtcXG4gXFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XFxuQEAgLTIxOCw5ICsyMjUsNTMgQEAgdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXFxuIFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ0bi1cXHUwMDNlbmFtZXRibF9sb2NrKTtcXG4gXFxuIFxcdHJlYWRfbG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuLVxcdG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pO1xcbitcXHQvKiB0aXBjX25ldF9maW5hbGl6ZV93b3JrKCkgaGFzIG5vdCBmaW5pc2hlZCBpbnNlcnRpbmcgc2VsZiBhZGRyZXNzIHRvXFxuK1xcdCAqIG5hbWUgdGFibGUgeWV0LlxcbitcXHQgKi9cXG4rXFx0aWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcXG4rXFx0XFx0cmVhZF91bmxvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbitcXHRcXHRyZXR1cm4gMTtcXG4rXFx0fVxcbitcXG4rXFx0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIC1FTk9CVUZTO1xcbitcXHR9XFxuK1xcbiBcXHR0aXBjX25vZGVfeG1pdChuZXQsIFxcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XFxuIFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSlcXG4re1xcbitcXHRzdHJ1Y3QgbmFtZV90YWJsZSAqbnQgPSB0aXBjX25hbWVfdGFibGUobmV0KTtcXG4rXFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XFxuK1xcdHN0cnVjdCBza19idWZmX2hlYWQgaGVhZDtcXG4rXFx0dTE2IHNlcW5vO1xcbitcXG4rXFx0X19za2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZoZWFkKTtcXG4rXFx0d2FpdF92YXJfZXZlbnQoXFx1MDAyNnRuLVxcdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkKSk7XFxuK1xcdHNwaW5fbG9ja19iaChcXHUwMDI2dG4tXFx1MDAzZW5hbWV0YmxfbG9jayk7XFxuK1xcdHNlcW5vID0gbnQtXFx1MDAzZXNuZF9ueHQ7XFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ0bi1cXHUwMDNlbmFtZXRibF9sb2NrKTtcXG4rXFxuK1xcdHJlYWRfbG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSkpKSB7XFxuK1xcdFxcdC8qIGZpbmFsaXplIGlzIGRvbmUgYnV0IG5vdGhpbmcgd2FzIHB1Ymxpc2hlZCAocHVibGlzaFxcbitcXHRcXHQgKiBmYWlsZWQpOiBhIHBlcm1hbmVudCBzdGF0ZSwgbm90aGluZyB0byBzeW5jaHJvbml6ZS5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdH1cXG4rXFx0aWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIC1FTk9CVUZTO1xcbitcXHR9XFxuK1xcdHRpcGNfbm9kZV94bWl0KG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcXG4rXFx0cmVhZF91bmxvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbitcXG4rXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuIC8qKlxcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmggYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcXG5pbmRleCBjNjc3ZjZmMDgyZGZiNy4uY2FkZjRlOGMzZTY2YzIgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXFxuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXFxuQEAgLTY5LDcgKzY5LDggQEAgc3RydWN0IGRpc3RyX2l0ZW0ge1xcbiBcXG4gc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfcHVibGlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XFxuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcXG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xcbitpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTtcXG4raW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKTtcXG4gdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSxcXG4gXFx0XFx0ICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7XFxuIHZvaWQgdGlwY19uYW1lZF9yZWluaXQoc3RydWN0IG5ldCAqbmV0KTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmV0LmMgYi9uZXQvdGlwYy9uZXQuY1xcbmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9uZXQuY1xcbisrKyBiL25ldC90aXBjL25ldC5jXFxuQEAgLTEzOCw3ICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcXG4gXFx0dGlwY19uYW1lZF9yZWluaXQobmV0KTtcXG4gXFx0dGlwY19za19yZWluaXQobmV0KTtcXG4gXFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcXG4tXFx0dGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcXHUwMDI2dWEsIFxcdTAwMjZzaywgYWRkcik7XFxuK1xcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcXHUwMDI2dWEsIFxcdTAwMjZzaywgYWRkcikpXFxuK1xcdFxcdHByX3dhcm4oXFxcIkZhaWxlZCB0byBwdWJsaXNoIG93biBub2RlIHN0YXRlXFxcXG5cXFwiKTtcXG4rXFx0YXRvbWljX2luYyhcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCk7XFxuK1xcdHdha2VfdXBfdmFyKFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkKTtcXG4gfVxcbiBcXG4gdm9pZCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXFxuaW5kZXggOTdhYTk3MGEwZDgzY2EuLmY4MjYzNDdiNTg3MDkxIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25vZGUuY1xcbisrKyBiL25ldC90aXBjL25vZGUuY1xcbkBAIC0xMTEsNiArMTExLDcgQEAgc3RydWN0IHRpcGNfYmNsaW5rX2VudHJ5IHtcXG4gICogQHBlZXJfbmV0OiBwZWVyJ3MgbmV0IG5hbWVzcGFjZVxcbiAgKiBAcGVlcl9oYXNoX21peDogaGFzaCBmb3IgdGhpcyBwZWVyIChGSVhNRSlcXG4gICogQGNyeXB0b19yeDogUlggY3J5cHRvIGhhbmRsZXJcXG4rICogQHdvcms6IHdvcmsgaXRlbSBmb3IgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnNcXG4gICovXFxuIHN0cnVjdCB0aXBjX25vZGUge1xcbiBcXHR1MzIgYWRkcjtcXG5AQCAtMTQ1LDYgKzE0Niw3IEBAIHN0cnVjdCB0aXBjX25vZGUge1xcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXFxuIFxcdHN0cnVjdCB0aXBjX2NyeXB0byAqY3J5cHRvX3J4O1xcbiAjZW5kaWZcXG4rXFx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XFxuIH07XFxuIFxcbiAvKiBOb2RlIEZTTSBzdGF0ZXMgYW5kIGV2ZW50czpcXG5AQCAtMzAzLDYgKzMwNSw3IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcnApXFxuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cXG4gXFx0dGlwY19jcnlwdG9fc3RvcChcXHUwMDI2bi1cXHUwMDNlY3J5cHRvX3J4KTtcXG4gI2VuZGlmXFxuK1xcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNm4tXFx1MDAzZXdvcmspO1xcbiBcXHRrZnJlZShuKTtcXG4gfVxcbiBcXG5AQCAtMzkzLDYgKzM5NiwxOSBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qoc3RydWN0IHRpcGNfbm9kZSAqbilcXG4gXFx0d3JpdGVfdW5sb2NrX2JoKFxcdTAwMjZuLVxcdTAwM2Vsb2NrKTtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuK3tcXG4rXFx0c3RydWN0IHRpcGNfbm9kZSAqbm9kZSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19ub2RlLCB3b3JrKTtcXG4rXFxuK1xcdGlmICh0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShub2RlLVxcdTAwM2VuZXQsIG5vZGUtXFx1MDAzZWFkZHIpIFxcdTAwM2MgMCkge1xcbitcXHRcXHR1MzIgYmVhcmVyX2lkID0gbm9kZS1cXHUwMDNlbGlua19pZCBcXHUwMDI2IDB4ZmZmZjtcXG4rXFxuK1xcdFxcdHRpcGNfbm9kZV9saW5rX2Rvd24obm9kZSwgYmVhcmVyX2lkLCBmYWxzZSk7XFxuK1xcdH1cXG4rXFxuK1xcdHRpcGNfbm9kZV9wdXQobm9kZSk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbilcXG4gXFx0X19yZWxlYXNlcyhuLVxcdTAwM2Vsb2NrKVxcbiB7XFxuQEAgLTQyNCw4ICs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbiBcXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX0RPV04pXFxuIFxcdFxcdHRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tXFx1MDAzZWNhcGFiaWxpdGllcyk7XFxuIFxcbi1cXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKVxcbi1cXHRcXHR0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVxcdTAwM2VjYXBhYmlsaXRpZXMpO1xcbitcXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKSB7XFxuK1xcdFxcdGludCByYyA9IDA7XFxuK1xcbitcXHRcXHRyYyA9IHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXFx1MDAzZWNhcGFiaWxpdGllcyk7XFxuK1xcdFxcdC8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi9cXG4rXFx0XFx0aWYgKHJjIFxcdTAwM2UgMCkge1xcbitcXHRcXHRcXHR0aXBjX25vZGVfZ2V0KG4pO1xcbitcXHRcXHRcXHRpZiAoIXNjaGVkdWxlX3dvcmsoXFx1MDAyNm4tXFx1MDAzZXdvcmspKVxcbitcXHRcXHRcXHRcXHR0aXBjX25vZGVfcHV0KG4pO1xcbitcXHRcXHR9IGVsc2UgaWYgKHJjIFxcdTAwM2MgMCkge1xcbitcXHRcXHRcXHQvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb25cXG4rXFx0XFx0XFx0ICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi5cXG4rXFx0XFx0XFx0ICovXFxuK1xcdFxcdFxcdHRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbiBcXG4gXFx0aWYgKGZsYWdzIFxcdTAwMjYgVElQQ19OT1RJRllfTElOS19VUCkge1xcbiBcXHRcXHR0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTtcXG5AQCAtNTY0LDYgKzU5NCw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxuIFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZuLVxcdTAwM2VsaXN0KTtcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm4tXFx1MDAzZXB1YmxfbGlzdCk7XFxuIFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZuLVxcdTAwM2Vjb25uX3Nrcyk7XFxuK1xcdElOSVRfV09SSyhcXHUwMDI2bi1cXHUwMDNld29yaywgdGlwY19ub2RlX2Rpc3RfYnVsayk7XFxuIFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNm4tXFx1MDAzZWJjX2VudHJ5Lm5hbWVkcSk7XFxuIFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNm4tXFx1MDAzZWJjX2VudHJ5LmlucHV0cTEpO1xcbiBcXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNm4tXFx1MDAzZWJjX2VudHJ5LmFycnZxKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MDEuMTk5OTI1MTk5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMzczMTQ0Njg4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiLFxuICAgIFwidGlwY19uZXRfZmluYWxpemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTM1N2E0MjBkMzVlNjUxODRmM2QwNzMyZmE3OGFiYTdlNjllMzQ2NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDE4IDA5OjU3OjU4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmNcbisrKyBiL25ldC90aXBjL2NvcmUuY1xuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxuIFx0dG4tXHUwMDNldHJpYWxfYWRkciA9IDA7XG4gXHR0bi1cdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuK1x0YXRvbWljX3NldChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIDApO1xuIFx0SU5JVF9XT1JLKFx1MDAyNnRuLVx1MDAzZXdvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspO1xuIFx0bWVtc2V0KHRuLVx1MDAzZW5vZGVfaWQsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkKSk7XG4gXHRtZW1zZXQodG4tXHUwMDNlbm9kZV9pZF9zdHJpbmcsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkX3N0cmluZykpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL2NvcmUuaCBiL25ldC90aXBjL2NvcmUuaFxuaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvY29yZS5oXG4rKysgYi9uZXQvdGlwYy9jb3JlLmhcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcbiBcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIFx0LyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi9cbiBcdGF0b21pY190IHdxX2NvdW50O1xuK1x0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xuK1x0YXRvbWljX3QgZmluYWxpemVkO1xuIH07XG4gXG4gc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlwY19uZXQgKnRpcGNfbmV0KHN0cnVjdCBuZXQgKm5ldClcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuY1xuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG5AQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxuICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpblxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcbiAgKi9cbi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbitzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcbiB7XG4gXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XG5AQCAtMTY0LDggKzE2NCw5IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdHNrYiA9IG5hbWVkX3ByZXBhcmVfYnVmKG5ldCwgUFVCTElDQVRJT04sIG1zZ19yZW0sXG4gXHRcdFx0XHRcdFx0ZG5vZGUpO1xuIFx0XHRcdGlmICghc2tiKSB7XG4rXHRcdFx0XHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcbiBcdFx0XHRcdHByX3dhcm4oXCJCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcXG5cIik7XG4tXHRcdFx0XHRyZXR1cm47XG4rXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuIFx0XHRcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcbkBAIC0xOTIsOSArMTkzLDE1IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRza2JfdHJpbShza2IsIElOVF9IX1NJWkUgKyAobXNnX2RzeiAtIG1zZ19yZW0pKTtcbiBcdFx0X19za2JfcXVldWVfdGFpbChsaXN0LCBza2IpO1xuIFx0fVxuK1x0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xuK1x0XHRwcl93YXJuKFwiQnVsayBwdWJsaWNhdGlvbiBsaXN0IGVtcHR5LCBub3RoaW5nIHRvIGRpc3RyaWJ1dGVcXG5cIik7XG4rXHRcdHJldHVybiAxO1xuK1x0fVxuIFx0aGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTtcbiBcdG1zZ19zZXRfbGFzdF9idWxrKGhkcik7XG4gXHRtc2dfc2V0X25hbWVkX3NlcW5vKGhkciwgc2Vxbm8pO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuQEAgLTIwMyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGVcbiAgKiBAY2FwYWJpbGl0aWVzOiBwZWVyIG5vZGUncyBjYXBhYmlsaXRpZXNcbiAgKi9cbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbitpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIHtcbiBcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuIFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG5AQCAtMjE4LDkgKzIyNSw1MyBAQCB2b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4gXG4gXHRyZWFkX2xvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbi1cdG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pO1xuK1x0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xuK1x0ICogbmFtZSB0YWJsZSB5ZXQuXG4rXHQgKi9cbitcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gMTtcbitcdH1cbitcbitcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4rXHR9XG4rXG4gXHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiBcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4raW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKVxuK3tcbitcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuK1x0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG4rXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7XG4rXHR1MTYgc2Vxbm87XG4rXG4rXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2aGVhZCk7XG4rXHR3YWl0X3Zhcl9ldmVudChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCkpO1xuK1x0c3Bpbl9sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4rXHRzZXFubyA9IG50LVx1MDAzZXNuZF9ueHQ7XG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuK1xuK1x0cmVhZF9sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcbitcdFx0LyogZmluYWxpemUgaXMgZG9uZSBidXQgbm90aGluZyB3YXMgcHVibGlzaGVkIChwdWJsaXNoXG4rXHRcdCAqIGZhaWxlZCk6IGEgcGVybWFuZW50IHN0YXRlLCBub3RoaW5nIHRvIHN5bmNocm9uaXplLlxuK1x0XHQgKi9cbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIDA7XG4rXHR9XG4rXHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIC1FTk9CVUZTO1xuK1x0fVxuK1x0dGlwY19ub2RlX3htaXQobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XG4rXHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuaCBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxuaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG4rKysgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbkBAIC02OSw3ICs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcbiBcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7XG4gdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSxcbiBcdFx0ICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7XG4gdm9pZCB0aXBjX25hbWVkX3JlaW5pdChzdHJ1Y3QgbmV0ICpuZXQpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmNcbmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25ldC5jXG4rKysgYi9uZXQvdGlwYy9uZXQuY1xuQEAgLTEzOCw3ICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcbiBcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XG4gXHR0aXBjX3NrX3JlaW5pdChuZXQpO1xuIFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcbi1cdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKTtcbitcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpKVxuK1x0XHRwcl93YXJuKFwiRmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcXG5cIik7XG4rXHRhdG9taWNfaW5jKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCk7XG4rXHR3YWtlX3VwX3ZhcihcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuIH1cbiBcbiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLmY4MjYzNDdiNTg3MDkxIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xMTEsNiArMTExLDcgQEAgc3RydWN0IHRpcGNfYmNsaW5rX2VudHJ5IHtcbiAgKiBAcGVlcl9uZXQ6IHBlZXIncyBuZXQgbmFtZXNwYWNlXG4gICogQHBlZXJfaGFzaF9taXg6IGhhc2ggZm9yIHRoaXMgcGVlciAoRklYTUUpXG4gICogQGNyeXB0b19yeDogUlggY3J5cHRvIGhhbmRsZXJcbisgKiBAd29yazogd29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9uc1xuICAqL1xuIHN0cnVjdCB0aXBjX25vZGUge1xuIFx0dTMyIGFkZHI7XG5AQCAtMTQ1LDYgKzE0Niw3IEBAIHN0cnVjdCB0aXBjX25vZGUge1xuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cbiBcdHN0cnVjdCB0aXBjX2NyeXB0byAqY3J5cHRvX3J4O1xuICNlbmRpZlxuK1x0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XG4gfTtcbiBcbiAvKiBOb2RlIEZTTSBzdGF0ZXMgYW5kIGV2ZW50czpcbkBAIC0zMDMsNiArMzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycClcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXG4gXHR0aXBjX2NyeXB0b19zdG9wKFx1MDAyNm4tXHUwMDNlY3J5cHRvX3J4KTtcbiAjZW5kaWZcbitcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2bi1cdTAwM2V3b3JrKTtcbiBcdGtmcmVlKG4pO1xuIH1cbiBcbkBAIC0zOTMsNiArMzk2LDE5IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0d3JpdGVfdW5sb2NrX2JoKFx1MDAyNm4tXHUwMDNlbG9jayk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHRpcGNfbm9kZV9kaXN0X2J1bGsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuK3tcbitcdHN0cnVjdCB0aXBjX25vZGUgKm5vZGUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHRpcGNfbm9kZSwgd29yayk7XG4rXG4rXHRpZiAodGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUobm9kZS1cdTAwM2VuZXQsIG5vZGUtXHUwMDNlYWRkcikgXHUwMDNjIDApIHtcbitcdFx0dTMyIGJlYXJlcl9pZCA9IG5vZGUtXHUwMDNlbGlua19pZCBcdTAwMjYgMHhmZmZmO1xuK1xuK1x0XHR0aXBjX25vZGVfbGlua19kb3duKG5vZGUsIGJlYXJlcl9pZCwgZmFsc2UpO1xuK1x0fVxuK1xuK1x0dGlwY19ub2RlX3B1dChub2RlKTtcbit9XG4rXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0X19yZWxlYXNlcyhuLVx1MDAzZWxvY2spXG4ge1xuQEAgLTQyNCw4ICs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX0RPV04pXG4gXHRcdHRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiBcbi1cdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9VUClcbi1cdFx0dGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuK1x0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKSB7XG4rXHRcdGludCByYyA9IDA7XG4rXG4rXHRcdHJjID0gdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuK1x0XHQvKiBEZWZlciBidWxrIGRpc3RyaWJ1dGlvbiB0byB3b3JrIHF1ZXVlICovXG4rXHRcdGlmIChyYyBcdTAwM2UgMCkge1xuK1x0XHRcdHRpcGNfbm9kZV9nZXQobik7XG4rXHRcdFx0aWYgKCFzY2hlZHVsZV93b3JrKFx1MDAyNm4tXHUwMDNld29yaykpXG4rXHRcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuK1x0XHR9IGVsc2UgaWYgKHJjIFx1MDAzYyAwKSB7XG4rXHRcdFx0LyogQnJpbmcgdGhlIGxpbmsgZG93biB0byBzdGFydCBvdmVyIGJ1bGsgZGlzdHJpYnV0aW9uXG4rXHRcdFx0ICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi5cbitcdFx0XHQgKi9cbitcdFx0XHR0aXBjX25vZGVfbGlua19kb3duKG4sIGJlYXJlcl9pZCwgZmFsc2UpO1xuK1x0XHR9XG4rXHR9XG4gXG4gXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX0xJTktfVVApIHtcbiBcdFx0dGlwY19tb25fcGVlcl91cChuZXQsIG5vZGUsIGJlYXJlcl9pZCk7XG5AQCAtNTY0LDYgKzU5NCw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWxpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2VwdWJsX2xpc3QpO1xuIFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bi1cdTAwM2Vjb25uX3Nrcyk7XG4rXHRJTklUX1dPUksoXHUwMDI2bi1cdTAwM2V3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTtcbiBcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5uYW1lZHEpO1xuIFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5LmlucHV0cTEpO1xuIFx0X19za2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkuYXJydnEpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MDEuMTk5OTI2NTI5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc0MDA1NzIzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBUSVBDIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIGZvciB0aGUgVElQQyBzdWJzeXN0ZW0sIGFuZCBpdCBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBpbXByb3ZlbWVudCwgbGlrZWx5IGFkZHJlc3NpbmcgYSByYWNlIGNvbmRpdGlvbiBvciBhdCBsZWFzdCBvcHRpbWl6aW5nIHRoZSBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyLXNjb3BlIHB1YmxpY2F0aW9ucy4gVGhlIGNoYW5nZXMgYXJlIHByZXR0eSBmb2N1c2VkLCB0b3VjaGluZyB0aGUgY29yZSBUSVBDIGNvZGUgd2l0aGluIHRoZSBrZXJuZWwsIHNwZWNpZmljYWxseSBmaWxlcyBsaWtlIGBjb3JlLmNgLCBgbmFtZV9kaXN0ci5jYCwgYG5ldC5jYCwgYW5kIGBub2RlLmNgLiBUaGlzIGlzIGFsbCB3aXRoaW4gdGhlIGhlYXJ0IG9mIHRoZSBUSVBDIGltcGxlbWVudGF0aW9uLlxuXG5UaGUga2V5IHNlZW1zIHRvIGJlIHRoaXMgbmV3IGBmaW5hbGl6ZWRgIGF0b21pYyBmbGFnIHdpdGhpbiBgc3RydWN0IHRpcGNfbmV0YC4gVGhhdCdzIHRoZSBzaWduYWwsIGFwcGFyZW50bHksIHRvIHRyYWNrIHdoZW4gdGhlIG5ldHdvcmsgZmluYWxpemF0aW9uIGlzIGNvbXBsZXRlLiBUaGUgY2hhbmdlcyB0byBgdGlwY19uYW1lZF9ub2RlX3VwYCBhbmQgaXRzIGludGVnZXIgcmV0dXJuLCBwbHVzIHRoZSBhZGRpdGlvbiBvZiBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBhcmUgZGVmaW5pdGVseSBjZW50cmFsIHRvIHRoZSBuZXcgbG9naWMuIEl0IGxvb2tzIGxpa2UgYHRpcGNfbm9kZV9kaXN0X2J1bGtgIGlzIG5vdyBiZWluZyBtYW5hZ2VkIHdpdGggYSB3b3JrIHF1ZXVlIGl0ZW0gd2l0aGluIGBzdHJ1Y3QgdGlwY19ub2RlYCwgYW5kIHRoYXQgdGhpcyBpcyB0cmlnZ2VyZWQgd2l0aGluIHRoZSBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgZnVuY3Rpb24gYmFzZWQgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBgdGlwY19uYW1lZF9ub2RlX3VwYC4gV2UncmUgdXNpbmcgYHdhaXRfdmFyX2V2ZW50YCB0byBlbnN1cmUgdGhhdCB0aGlzIGRlZmVycmVkIGJ1bGsgZGlzdHJpYnV0aW9uIHdhaXRzIGZvciB0aGUgYHRuLVx1MDAzZWZpbmFsaXplZGAgZmxhZyB0byBiZSBzZXQuXG5cbkZyb20gYSBxdWljayBnbGFuY2UsIGl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIGlzIGF0dGVtcHRpbmcgdG8gZW5zdXJlIHRoYXQgdGhlIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGluZm9ybWF0aW9uIGlzIGRlbGF5ZWQgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaGFzIGJlZW4gZnVsbHkgcHVibGlzaGVkLiBNYWtlcyBzZW5zZTsgYXZvaWQgcGFydGlhbCBvciBjb25mbGljdGluZyBzdGF0ZXMuIEdpdmVuIHRoaXMgbW9kaWZpY2F0aW9uIHRvIGNvcmUga2VybmVsIGxvZ2ljLCBhbmQgdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlLCBpdCdzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0aG9yb3VnaGx5LiBUaGUgcGF0Y2ggYXV0aG9ycyBldmVuIHRhZ2dlZCB0aGlzIGZvciBmdXp6aW5nLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBmb3IgYENPTkZJR19USVBDYCB3aXRoaW4gdGhlIGtlcm5lbCdzIEtjb25maWcgZmlsZXMuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIGNvbnRyb2wgdGhpcyBzdWJzeXN0ZW0gdG8gcHJvcGVybHkgdGVzdCB0aGUgY2hhbmdlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA5OCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA5OjU4OjA3LjkzOTk4NTg2OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjE2MzgzMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRJUENcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3RpcGMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90aXBjL0tjb25maWctNS1cXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXFxubmV0L3RpcGMvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgVElQQyBQcm90b2NvbFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjMtXFxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxcbm5ldC90aXBjL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiSW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTI5LVxcdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXFxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcXG5uZXQvdGlwYy9LY29uZmlnLTMxLVxcdGJvb2wgXFxcIklQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxcbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXFxubmV0L3RpcGMvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctNTItXFxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXFxubmV0L3RpcGMvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiVElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODowOC4wNjE2MzE1MDZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NjE0MDI1MDA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVElQQyBDb25maWd1cmF0aW9uIGFuZCBSZWxldmFudCBTeW1ib2xzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGUgbWFpbiBjb25maWd1cmF0aW9uIHNlZW1zIHRvIHJldm9sdmUgYXJvdW5kIGBUSVBDYC4gSSdtIGRvdWJsZS1jaGVja2luZyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHNwZWNpZmljLCBidXQgaXQgbG9va3MgbGlrZSBgVElQQ2AgaXMgc3VmZmljaWVudCBmb3Igbm93LiBHb29kLCBsZXQncyBtb3ZlIG9uLlxuXG5Ob3csIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgY3JpdGljYWwgc3ltYm9scyBhZmZlY3RlZCBieSB0aGlzIHBhdGNoLiBUaGUgZGlmZiBtb2RpZmllcyBhIGZhaXIgbnVtYmVyIG9mIGZ1bmN0aW9ucywgaW5jbHVkaW5nIGB0aXBjX2luaXRfbmV0YCwgYG5hbWVkX2Rpc3RyaWJ1dGVgLCBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYW5kIHNvIG9uLiBTcGVjaWZpY2FsbHksIEkgc2VlIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgYW5kIGB0aXBjX25vZGVfZGlzdF9idWxrYCBhcmUgbmV3LiBBZnRlciBleGFtaW5pbmcgdGhlIHBhdGNoLCBJJ3ZlIGlkZW50aWZpZWQgdGhlIGNvcmUgZnVuY3Rpb25zIHRoYXQgSSBzaG91bGQgYmUgZm9jdXNpbmcgb246IGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGB0aXBjX25ldF9maW5hbGl6ZWAsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBzY29wZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEkgc2VlIHRoYXQgYG5hbWVkX2Rpc3RyaWJ1dGVgIGlzIHN0YXRpYywgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBgdGlwY19uYW1lZF9ub2RlX3VwYCBpcyBleHBvcnRlZC9nbG9iYWwsIGFuZCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgIGlzIGFsc28gZ2xvYmFsLiBNZWFud2hpbGUsIGB0aXBjX25vZGVfZGlzdF9idWxrYCBhbmQgYHRpcGNfbmV0X2ZpbmFsaXplYCBhcmUgc3RhdGljLlxuXG5BbHJpZ2h0LCBmb3IgY29uY2lzZSByZXZpZXcsIEknbGwgbGlzdCB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zIHRoYXQgYXJlbid0IG92ZXJseSBnZW5lcmljOiBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYHRpcGNfbm9kZV9kaXN0X2J1bGtgLCBgdGlwY19uZXRfZmluYWxpemVgLCBhbmQgYG5hbWVkX2Rpc3RyaWJ1dGVgLlxuXG5XYWl0LCBJIG5lZWQgdG8gY2hlY2sgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgLiBJdCAqaXMqIG1vZGlmaWVkLCBhbmQgSSBuZWVkIHRvIGFzc2VzcyB3aGV0aGVyIHRoYXQncyBhIGhvdCBwYXRoLCBvciBpZiBpdCdzIGxlc3MgY3JpdGljYWwuIExldCBtZSB0YWtlIGEgbG9vayBhdCB0aGUgY2FsbHMuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NjE5NywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODoxNC42NzU2NTg4MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDgyNTA5MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGlwY19ub2RlX3dyaXRlX3VubG9ja1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGlwYy9ub2RlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvbm9kZS5jPTM4Nz1zdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfbG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTM5Mi1cXG5uZXQvdGlwYy9ub2RlLmM6MzkzOnN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbm5ldC90aXBjL25vZGUuYy0zOTQtXFx0X19yZWxlYXNlcyhuLVxcdTAwM2Vsb2NrKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTM5OT1zdGF0aWMgdm9pZCB0aXBjX25vZGVfZGlzdF9idWxrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC90aXBjL25vZGUuYy00MTEtXFxubmV0L3RpcGMvbm9kZS5jOjQxMjpzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXFxubmV0L3RpcGMvbm9kZS5jLTQxMy1cXHRfX3JlbGVhc2VzKG4tXFx1MDAzZWxvY2spXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9NDk4PXN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNTIzLVxcdFxcdFxcdHByX3dhcm4oXFxcIkJyb2FkY2FzdCByY3YgbGluayByZWZyZXNoIGZhaWxlZCwgbm8gbWVtb3J5XFxcXG5cXFwiKTtcXG5uZXQvdGlwYy9ub2RlLmM6NTI0OlxcdFxcdFxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChuKTtcXG5uZXQvdGlwYy9ub2RlLmMtNTI1LVxcdFxcdFxcdHRpcGNfbm9kZV9wdXQobik7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNTM5LVxcdFxcdGxpc3RfYWRkX3RhaWxfcmN1KFxcdTAwMjZuLVxcdTAwM2VsaXN0LCBcXHUwMDI2dGVtcF9ub2RlLVxcdTAwM2VsaXN0KTtcXG5uZXQvdGlwYy9ub2RlLmM6NTQwOlxcdFxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChuKTtcXG5uZXQvdGlwYy9ub2RlLmMtNTQxLVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTU1NC1cXHRcXHR9XFxubmV0L3RpcGMvbm9kZS5jOjU1NTpcXHRcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XFxubmV0L3RpcGMvbm9kZS5jLTU1Ni1cXG4tLVxcbm5ldC90aXBjL25vZGUuYz02ODc9dm9pZCB0aXBjX25vZGVfc3Vic2NyaWJlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqc3Vic2NyLCB1MzIgYWRkcilcXG4tLVxcbm5ldC90aXBjL25vZGUuYy03MDAtXFx0bGlzdF9hZGRfdGFpbChzdWJzY3IsIFxcdTAwMjZuLVxcdTAwM2VwdWJsX2xpc3QpO1xcbm5ldC90aXBjL25vZGUuYzo3MDE6XFx0dGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KG4pO1xcbm5ldC90aXBjL25vZGUuYy03MDItXFx0dGlwY19ub2RlX3B1dChuKTtcXG4tLVxcbm5ldC90aXBjL25vZGUuYz03MDU9dm9pZCB0aXBjX25vZGVfdW5zdWJzY3JpYmUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbGlzdF9oZWFkICpzdWJzY3IsIHUzMiBhZGRyKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTcxOC1cXHRsaXN0X2RlbF9pbml0KHN1YnNjcik7XFxubmV0L3RpcGMvbm9kZS5jOjcxOTpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XFxubmV0L3RpcGMvbm9kZS5jLTcyMC1cXHR0aXBjX25vZGVfcHV0KG4pO1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTcyMz1pbnQgdGlwY19ub2RlX2FkZF9jb25uKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MzIgcG9ydCwgdTMyIHBlZXJfcG9ydClcXG4tLVxcbm5ldC90aXBjL25vZGUuYy03NDctXFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2Y29ubi1cXHUwMDNlbGlzdCwgXFx1MDAyNm5vZGUtXFx1MDAzZWNvbm5fc2tzKTtcXG5uZXQvdGlwYy9ub2RlLmM6NzQ4OlxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobm9kZSk7XFxubmV0L3RpcGMvbm9kZS5jLTc0OS1leGl0Olxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTc1ND12b2lkIHRpcGNfbm9kZV9yZW1vdmVfY29ubihzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTMyIHBvcnQpXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNzcyLVxcdH1cXG5uZXQvdGlwYy9ub2RlLmM6NzczOlxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobm9kZSk7XFxubmV0L3RpcGMvbm9kZS5jLTc3NC1cXHR0aXBjX25vZGVfcHV0KG5vZGUpO1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTc5NT1zdGF0aWMgYm9vbCB0aXBjX25vZGVfY2xlYW51cChzdHJ1Y3QgdGlwY19ub2RlICpwZWVyKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTgxMS1cXHR9XFxubmV0L3RpcGMvbm9kZS5jOjgxMjpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHBlZXIpO1xcbm5ldC90aXBjL25vZGUuYy04MTMtXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9OTU2PXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9saW5rX3VwKHN0cnVjdCB0aXBjX25vZGUgKm4sIGludCBiZWFyZXJfaWQsXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtOTY0LVxcdHRpcGNfYmVhcmVyX3htaXQobi1cXHUwMDNlbmV0LCBiZWFyZXJfaWQsIHhtaXRxLCBtYWRkciwgbik7XFxubmV0L3RpcGMvbm9kZS5jOjk2NTpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG4pO1xcbm5ldC90aXBjL25vZGUuYy05NjYtfVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTEwOTM9c3RhdGljIHZvaWQgdGlwY19ub2RlX2xpbmtfZG93bihzdHJ1Y3QgdGlwY19ub2RlICpuLCBpbnQgYmVhcmVyX2lkLCBib29sIGRlbGV0ZSlcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0xMTE5LVxcdHRyYWNlX3RpcGNfbm9kZV9saW5rX2Rvd24obiwgdHJ1ZSwgXFxcIm5vZGUgbGluayBkb3duIG9yIGRlbGV0ZWQhXFxcIik7XFxubmV0L3RpcGMvbm9kZS5jOjExMjA6XFx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhuKTtcXG5uZXQvdGlwYy9ub2RlLmMtMTEyMS1cXHRpZiAoZGVsZXRlKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTExOTk9dm9pZCB0aXBjX25vZGVfY2hlY2tfZGVzdChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLFxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTEzMzctZXhpdDpcXG5uZXQvdGlwYy9ub2RlLmM6MTMzODpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKG4pO1xcbm5ldC90aXBjL25vZGUuYy0xMzM5LVxcdGlmIChyZXNldCBcXHUwMDI2XFx1MDAyNiAhbGlua19pc19yZXNldClcXG4tLVxcbm5ldC90aXBjL25vZGUuYz0yMTE0PXZvaWQgdGlwY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGlwY19iZWFyZXIgKmIpXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtMjIwNi1cXHRcXHR9XFxubmV0L3RpcGMvbm9kZS5jOjIyMDc6XFx0XFx0dGlwY19ub2RlX3dyaXRlX3VubG9jayhuKTtcXG5uZXQvdGlwYy9ub2RlLmMtMjIwOC1cXHR9XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9MjIzNj12b2lkIHRpcGNfbm9kZV9hcHBseV9wcm9wZXJ0eShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYixcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0yMjYyLVxcbm5ldC90aXBjL25vZGUuYzoyMjYzOlxcdFxcdHRpcGNfbm9kZV93cml0ZV91bmxvY2sobik7XFxubmV0L3RpcGMvbm9kZS5jLTIyNjQtXFx0XFx0dGlwY19iZWFyZXJfeG1pdChuZXQsIGJlYXJlcl9pZCwgXFx1MDAyNnhtaXRxLCBcXHUwMDI2ZS1cXHUwMDNlbWFkZHIsIE5VTEwpO1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTIyNzA9aW50IHRpcGNfbmxfcGVlcl9ybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTIzMjEtXFx0ICAgIHBlZXItXFx1MDAzZXN0YXRlICE9IFNFTEZfRE9XTl9QRUVSX0xFQVZJTkcpIHtcXG5uZXQvdGlwYy9ub2RlLmM6MjMyMjpcXHRcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHBlZXIpO1xcbm5ldC90aXBjL25vZGUuYy0yMzIzLVxcdFxcdGVyciA9IC1FQlVTWTtcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0yMzI3LVxcdHRpcGNfbm9kZV9jbGVhcl9saW5rcyhwZWVyKTtcXG5uZXQvdGlwYy9ub2RlLmM6MjMyODpcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHBlZXIpO1xcbm5ldC90aXBjL25vZGUuYy0yMzI5LVxcdHRpcGNfbm9kZV9kZWxldGUocGVlcik7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9MzE2OD12b2lkIHRpcGNfbm9kZV9wcmVfY2xlYW51cF9uZXQoc3RydWN0IG5ldCAqZXhpdF9uZXQpXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtMzE4OS1cXHRcXHRcXHRuLVxcdTAwM2VwZWVyX2hhc2hfbWl4ID0gMDtcXG5uZXQvdGlwYy9ub2RlLmM6MzE5MDpcXHRcXHRcXHR0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qobik7XFxubmV0L3RpcGMvbm9kZS5jLTMxOTEtXFx0XFx0XFx0YnJlYWs7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA5OjU4OjE0Ljc4MzkxNDYyOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzA4MDIxOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFRJUEMgRnVuY3Rpb24gQ2FsbHMqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoZXNlIFRJUEMgZnVuY3Rpb25zLiBJJ3ZlIGFscmVhZHkgZGVjaWRlZCB0byBleGNsdWRlIGB0aXBjX25vZGVfd3JpdGVfdW5sb2NrYCBmcm9tIG15IGFuYWx5c2lzIGJlY2F1c2UgaXQncyBjbGVhcmx5IGEgaGlnaC1mcmVxdWVuY3kgZnVuY3Rpb24g4oCTIHByb2JhYmx5IHRvbyBub2lzeSB0byBiZSB3b3J0aCBmb2N1c2luZyBvbiBmb3IgdGhpcyBwYXJ0aWN1bGFyIGludmVzdGlnYXRpb24uIEknbSBhbHNvIHNraXBwaW5nIGB0aXBjX3JjdmAgYW5kIGB0aXBjX25vZGVfY2hlY2tfZGVzdGAsIGFzIHRoZXkncmUgcmVsYXRlZC5cblxuSSd2ZSBub3RlZCB0aGF0IGB0aXBjX25ldF9maW5hbGl6ZWAgaXMgdGllZCB0byBuZXR3b3JrIGluaXRpYWxpemF0aW9uLiBUaGF0J3MgZ29vZCBjb250ZXh0IHRvIGhhdmUsIGJ1dCBub3QgdGhlIGZvY3VzIHJpZ2h0IG5vdy4gU2ltaWxhcmx5LCBJIGtub3cgdGhhdCBgdGlwY19uYW1lZF9ub2RlX3VwYCBpcyB0cmlnZ2VyZWQgd2hlbiBhIG5vZGUgY29tZXMgb25saW5lLCBhbmQgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCBnZXRzIGNhbGxlZCBmcm9tIHRoZSB3b3JrIHF1ZXVlLCBhbG9uZyB3aXRoIHRoZSB3b3JrZXIgZnVuY3Rpb24gYHRpcGNfbm9kZV9kaXN0X2J1bGtgLlxuXG5TbywgZ2l2ZW4gd2hhdCBJJ3ZlIHNlZW4sIGl0IHNlZW1zIHRoYXQgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgYXJlIHRoZSBtb3JlIGludGVyZXN0aW5nIGFyZWFzIHRvIGV4cGxvcmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGRpdmUgaW50byBgbmV0L3RpcGMvbmFtZV9kaXN0ci5jYCBhbmQgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRob3NlIHR3byBmdW5jdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkwMzgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MTguOTU0NzE5MDI1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0OTQ0OTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRpcGNfbmFtZWRfbm9kZV91cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGlwYy9uYW1lX2Rpc3RyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvbmFtZV9kaXN0ci5jPTE1MD1zdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbi0tXFxubmV0L3RpcGMvbmFtZV9kaXN0ci5jLTIwNy0vKipcXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmM6MjA4OiAqIHRpcGNfbmFtZWRfbm9kZV91cCAtIHRlbGwgc3BlY2lmaWVkIG5vZGUgYWJvdXQgYWxsIHB1YmxpY2F0aW9ucyBieSB0aGlzIG5vZGVcXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjA5LSAqIEBuZXQ6IHRoZSBhc3NvY2lhdGVkIG5ldHdvcmsgbmFtZXNwYWNlXFxuLS1cXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjEyLSAqL1xcbm5ldC90aXBjL25hbWVfZGlzdHIuYzoyMTM6aW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcXG5uZXQvdGlwYy9uYW1lX2Rpc3RyLmMtMjE0LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDk6NTg6MTkuMDI5NjY4NjI0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc1ODk0NTUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipUSVBDIFN1YnN5c3RlbSBSZWZpbmVtZW50OiBEZWxheWVkIEJ1bGsgRGlzdHJpYnV0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgVElQQyAoVHJhbnNwYXJlbnQgSW50ZXItUHJvY2VzcyBDb21tdW5pY2F0aW9uKSBzdWJzeXN0ZW0uIFRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGludm9sdmVzIGRlZmVycmluZyB0aGUgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3Rlci1zY29wZSBwdWJsaWNhdGlvbnMuIEJhc2ljYWxseSwgd2UncmUgd2FpdGluZyB0byBkbyB0aGlzIHVudGlsIHRoZSBub2RlJ3Mgb3duIHN0YXRlIGhhcyBiZWVuIHB1Ymxpc2hlZC4gU2VlbXMgbGlrZSBhIHN5bmNocm9uaXphdGlvbiBpc3N1ZSBiZWluZyBhZGRyZXNzZWQuXG5cbkkndmUgaWRlbnRpZmllZCBrZXkgZnVuY3Rpb25zOiBgdGlwY19uYW1lZF9ub2RlX3VwYCwgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCwgYHRpcGNfbm9kZV9kaXN0X2J1bGtgLCBhbmQgYG5hbWVkX2Rpc3RyaWJ1dGVgLiBUaGVzZSBhcmUgdGhlIGhlYXJ0IG9mIHRoZSBsb2dpYyBiZWluZyBtb2RpZmllZCwgdGhlIHBsYWNlcyB3aGVyZSB0aGlzIGRlbGF5ZWQgZGlzdHJpYnV0aW9uIGlzIGltcGxlbWVudGVkLiBJJ20gYWxzbyBhZGRpbmcgYHRpcGNfbmV0X2ZpbmFsaXplYCBmb3IgY29tcGxldGVuZXNzLlxuXG5UaGUgcHJpbWFyeSBjb25maWcgaW4gcGxheSBoZXJlIGlzIGBUSVBDYCwgdGhhdCdzIHRoZSBkcml2ZXIuIEknbGwgZG91YmxlLWNoZWNrIHRvIGVuc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBhcmUgYWxzbyByZWxldmFudCwgYnV0IGBUSVBDYCBpcyB0aGUgYmlnIG9uZS5cblxuTXkgcmVhc29uaW5nPyBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0J3MgbW9kaWZ5aW5nIHRoZSBuZXR3b3JraW5nIGxvZ2ljIHdpdGhpbiBUSVBDLiBUaGlzIHdpbGwgYmUgcmVhY2hlZCBkdXJpbmcgdGhlIG5vcm1hbCBvcGVyYXRpb24gb2YgVElQQyBub2RlcyBjb25uZWN0aW5nIGFuZCBleGNoYW5naW5nIHJvdXRpbmcgYW5kIG5hbWUgdGFibGVzLCBzbyBpdCdzIGEgY3JpdGljYWwgYXJlYS5cblxuVGhlIFwiV29ydGhGdXp6aW5nXCIgZmxhZyBpcyBzZXQgdG8gdHJ1ZTsgaXQncyBkZWZpbml0ZWx5IGEgY2hhbmdlIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb25zIEkndmUgbGlzdGVkIGFyZSB0aGUgZm9jdXMgc3ltYm9scy4gSSdsbCBuZWVkIHRvIGVuYWJsZSBgVElQQ2AgaW4gYW55IHRlc3RpbmcuXG5cblJpZ2h0LCBsZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AgYW5kIGxvZyB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NzA5LCJPdXRwdXRUb2tlbnMiOjE1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwOTo1ODoyNC43ODg2MTYwNzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI3NDgxNTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCIsXG4gICAgXCJ0aXBjX25ldF9maW5hbGl6ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHN1YnN5c3RlbSB0byBkZWZlciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyB1bnRpbCB0aGUgbm9kZSdzIG93biBzdGF0ZSBpcyBwdWJsaXNoZWQuIEl0IGludHJvZHVjZXMgYSBuZXcgd29yayBpdGVtIGFuZCBhIHN5bmNocm9uaXphdGlvbiBmbGFnLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBsb2dpYyBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBuZXR3b3JraW5nIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIFRJUEMgbm9kZXMgY29ubmVjdCBhbmQgZXhjaGFuZ2Ugcm91dGluZy9uYW1lIHRhYmxlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiLFxuICAgIFwidGlwY19uZXRfZmluYWxpemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBzdWJzeXN0ZW0gdG8gZGVmZXIgYnVsayBkaXN0cmlidXRpb24gb2YgY2x1c3RlciBzY29wZSBwdWJsaWNhdGlvbnMgdW50aWwgdGhlIG5vZGUncyBvd24gc3RhdGUgaXMgcHVibGlzaGVkLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IHdvcmsgaXRlbSBhbmQgYSBzeW5jaHJvbml6YXRpb24gZmxhZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbG9naWMgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbmV0d29ya2luZyBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBUSVBDIG5vZGVzIGNvbm5lY3QgYW5kIGV4Y2hhbmdlIHJvdXRpbmcvbmFtZSB0YWJsZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[1] Phase: Succeeded StartedAt: 2026-07-18 09:58:36 +0000 UTC FinishedAt: 2026-07-18 09:58:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-18 09:58:36 +0000 UTC FinishedAt: 2026-07-18 09:58:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2] Phase: Succeeded StartedAt: 2026-07-18 09:58:36 +0000 UTC FinishedAt: 2026-07-18 13:56:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-18 09:58:36 +0000 UTC FinishedAt: 2026-07-18 13:56:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-18 09:58:36 +0000 UTC FinishedAt: 2026-07-18 09:58:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-18 09:58:36 +0000 UTC FinishedAt: 2026-07-18 09:58:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowh8njs/series-workflowh8njs-convert-artifact-2242846851/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-18 09:58:46 +0000 UTC FinishedAt: 2026-07-18 10:25:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-18 09:58:46 +0000 UTC FinishedAt: 2026-07-18 10:25:54 +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:*ea38273f-982e-4019-a74c-2218cb17e788,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-workflowh8njs/series-workflowh8njs-convert-artifact-2242846851/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": "8ccd03bc-0958-4c60-aa06-a2332e12ec12", "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-workflowh8njs/series-workflowh8njs-build-action-333566193/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-18 09:58:46 +0000 UTC FinishedAt: 2026-07-18 10:25:44 +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:*ea38273f-982e-4019-a74c-2218cb17e788,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-workflowh8njs/series-workflowh8njs-convert-artifact-2242846851/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": "8ccd03bc-0958-4c60-aa06-a2332e12ec12", "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-workflowh8njs/series-workflowh8njs-build-action-333566193/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-18 10:25:54 +0000 UTC FinishedAt: 2026-07-18 10:25:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-18 10:25:54 +0000 UTC FinishedAt: 2026-07-18 10:25:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-18 10:25:54 +0000 UTC FinishedAt: 2026-07-18 10:26:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-18 10:25:54 +0000 UTC FinishedAt: 2026-07-18 10:25:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowh8njs/series-workflowh8njs-convert-artifact-775147578/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-18 10:26:04 +0000 UTC FinishedAt: 2026-07-18 10:28:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-18 10:26:04 +0000 UTC FinishedAt: 2026-07-18 10:28:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8ccd03bc-0958-4c60-aa06-a2332e12ec12,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-workflowh8njs/series-workflowh8njs-build-action-333566193/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-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-18 10:28:19 +0000 UTC FinishedAt: 2026-07-18 10:28:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-18 10:28:19 +0000 UTC FinishedAt: 2026-07-18 10:28:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-18 10:28:19 +0000 UTC FinishedAt: 2026-07-18 10:51:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-18 10:28:19 +0000 UTC FinishedAt: 2026-07-18 10:51:34 +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:*ea38273f-982e-4019-a74c-2218cb17e788,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-workflowh8njs/series-workflowh8njs-convert-artifact-775147578/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": "5247e76a-6f20-4268-a9ce-a7dd8d507153", "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-workflowh8njs/series-workflowh8njs-build-action-3244457630/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-18 10:28:19 +0000 UTC FinishedAt: 2026-07-18 10:51:24 +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:*ea38273f-982e-4019-a74c-2218cb17e788,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-workflowh8njs/series-workflowh8njs-convert-artifact-775147578/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": "5247e76a-6f20-4268-a9ce-a7dd8d507153", "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-workflowh8njs/series-workflowh8njs-build-action-3244457630/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-18 10:51:34 +0000 UTC FinishedAt: 2026-07-18 10:51:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-18 10:51:34 +0000 UTC FinishedAt: 2026-07-18 10:51:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-18 10:51:34 +0000 UTC FinishedAt: 2026-07-18 10:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-18 10:51:34 +0000 UTC FinishedAt: 2026-07-18 10:53:35 +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:*5247e76a-6f20-4268-a9ce-a7dd8d507153,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-workflowh8njs/series-workflowh8njs-build-action-3244457630/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-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 13:56:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 13:56:54 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"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:*8ccd03bc-0958-4c60-aa06-a2332e12ec12,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5247e76a-6f20-4268-a9ce-a7dd8d507153,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-workflowh8njs/series-workflowh8njs-build-action-333566193/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-workflowh8njs/series-workflowh8njs-build-action-3244457630/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 10:53:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 10:53:52 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"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-workflowh8njs/series-workflowh8njs-convert-artifact-1829998959/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 10:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 10:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-18 10:53:45 +0000 UTC FinishedAt: 2026-07-18 10:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-18 10:53:56 +0000 UTC FinishedAt: 2026-07-18 13:56:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh8njs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute","tipc_net_finalize"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"e8b64d09-1614-4089-bef2-974d09328afa","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-18 10:53:56 +0000 UTC FinishedAt: 2026-07-18 13:56:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8ccd03bc-0958-4c60-aa06-a2332e12ec12,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5247e76a-6f20-4268-a9ce-a7dd8d507153,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-workflowh8njs/series-workflowh8njs-build-action-333566193/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-workflowh8njs/series-workflowh8njs-build-action-3244457630/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-workflowh8njs/series-workflowh8njs-convert-artifact-1829998959/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,}