Name: series-workflowh848k Phase: Succeeded StartedAt: 2026-06-24 14:06:04 +0000 UTC FinishedAt: 2026-06-24 18:10:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[0] Phase: Succeeded StartedAt: 2026-06-24 14:06:04 +0000 UTC FinishedAt: 2026-06-24 14:16:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[0].run-triage Phase: Succeeded StartedAt: 2026-06-24 14:06:04 +0000 UTC FinishedAt: 2026-06-24 14:16:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "a986fde914d88af47eb78fd29c5d1af7952c3500", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC", "TIPC_MEDIA_UDP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "a986fde914d88af47eb78fd29c5d1af7952c3500", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC", "TIPC_MEDIA_UDP" ], "series_id": "846df91b-2e8c-4001-98a9-2b68a8a28ad3" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_bcast_sync_rcv", "tipc_node_bc_sync_rcv" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI0IDE0OjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OywKICAgICYjMzQ7VElQQ19NRURJQV9VRFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX2JjYXN0X3N5bmNfcmN2JiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9iY19zeW5jX3JjdiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gZm9yIEdhcCBBQ0sgYmxvY2tzIGluIFRJUEMgYnJvYWRjYXN0IHN5bmMgcmVjZWl2ZSB0byBwcmV2ZW50IHByb2Nlc3Npbmcgb2YgbWFsZm9ybWVkIG1lc3NhZ2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgcHJvdG9jb2wgaGFuZGxpbmcgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgdmFsaWRhdGlvbiBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2MDBiZjdhYTU4NzY2YzhiNzVjMmE4N2JjYjQ1ODdiN2M4NjEwOWI5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMTQ6MTY6MDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuYyBiL25ldC90aXBjL2JjYXN0LmNcbmluZGV4IDc2YTE1ODVkM2Y2YjZkLi4wODYzN2MzYzlkYjBmYiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2JjYXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2JjYXN0LmNcbkBAIC00OTcsMTEgJiM0Mzs0OTcsMTIgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuICAqL1xuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSlcbiYjNDM7XHRcdFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqcmV0cnEsIGJvb2wgKnZhbGlkKVxuIHtcbiBcdHN0cnVjdCBza19idWZmX2hlYWQgKmlucHV0cSA9IFx1MDAyNnRpcGNfYmNfYmFzZShuZXQpLVx1MDAzZWlucHV0cTtcbiBcdHN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqZ2E7XG4gXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHhtaXRxO1xuJiM0MztcdHUxNiBnbGVuO1xuIFx0aW50IHJjID0gMDtcbiBcbiBcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZ4bWl0cSk7XG5AQCAtNTEwLDEzICYjNDM7NTExLDE4IEBAIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdGlmIChtc2dfdHlwZShoZHIpICE9IFNUQVRFX01TRykge1xuIFx0XHR0aXBjX2xpbmtfYmNfaW5pdF9yY3YobCwgaGRyKTtcbiBcdH0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7XG4tXHRcdHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XG4tXHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbi1cdFx0XHRyZXRycSA9IFx1MDAyNnhtaXRxO1xuLVx0XHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcbi1cdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbi1cdFx0XHRcdFx0ICByZXRycSk7XG4tXHRcdHJjIHw9IHRpcGNfbGlua19iY19zeW5jX3JjdihsLCBoZHIsIFx1MDAyNnhtaXRxKTtcbiYjNDM7XHRcdGdsZW4gPSB0aXBjX2dldF9nYXBfYWNrX2Jsa3MoXHUwMDI2Z2EsIGwsIGhkciwgZmFsc2UpO1xuJiM0MztcdFx0aWYgKGdsZW4gXHUwMDNlIG1zZ19kYXRhX3N6KGhkcikpIHtcbiYjNDM7XHRcdFx0LyogTWFsZm9ybWVkIEdhcCBBQ0sgYmxvY2tzOyBjYWxsZXIgZHJvcHMgdGhlIG1zZyAqL1xuJiM0MztcdFx0XHQqdmFsaWQgPSBmYWxzZTtcbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbiYjNDM7XHRcdFx0XHRyZXRycSA9IFx1MDAyNnhtaXRxO1xuJiM0MztcdFx0XHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcbiYjNDM7XHRcdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbiYjNDM7XHRcdFx0XHRcdFx0ICByZXRycSk7XG4mIzQzO1x0XHRcdHJjIHw9IHRpcGNfbGlua19iY19zeW5jX3JjdihsLCBoZHIsIFx1MDAyNnhtaXRxKTtcbiYjNDM7XHRcdH1cbiBcdH1cbiBcdHRpcGNfYmNhc3RfdW5sb2NrKG5ldCk7XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuaCBiL25ldC90aXBjL2JjYXN0LmhcbmluZGV4IDJkOTM1MmRjN2IwZTZlLi41NWQxN2I1NDEzZTE2YiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2JjYXN0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2JjYXN0LmhcbkBAIC05Nyw3ICYjNDM7OTcsNyBAQCB2b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG4gXHRcdFx0c3RydWN0IHRpcGNfbXNnICpoZHIpO1xuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSk7XG4mIzQzO1x0XHRcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxLCBib29sICp2YWxpZCk7XG4gaW50IHRpcGNfbmxfYWRkX2JjX2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19ubF9tc2cgKm1zZyxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19saW5rICpiY2wpO1xuIGludCB0aXBjX25sX2JjX2xpbmtfc2V0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqYXR0cnNbXSk7XG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXG5pbmRleCA5N2FhOTcwYTBkODNjYS4uMjg4N2Y5NGVlMjhmYWEgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9ub2RlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuY1xuQEAgLTE4MzEsMTIgJiM0MzsxODMxLDEzIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9tY2FzdF9yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbilcbiB9XG4gXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX2JjX3N5bmNfcmN2KHN0cnVjdCB0aXBjX25vZGUgKm4sIHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLVx0XHRcdFx0ICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSlcbiYjNDM7XHRcdFx0XHQgIGludCBiZWFyZXJfaWQsIHN0cnVjdCBza19idWZmX2hlYWQgKnhtaXRxLFxuJiM0MztcdFx0XHRcdCAgYm9vbCAqdmFsaWQpXG4ge1xuIFx0c3RydWN0IHRpcGNfbGluayAqdWNsO1xuIFx0aW50IHJjO1xuIFxuLVx0cmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tXHUwMDNlbmV0LCBuLVx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEpO1xuJiM0MztcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVx1MDAzZW5ldCwgbi1cdTAwM2ViY19lbnRyeS5saW5rLCBoZHIsIHhtaXRxLCB2YWxpZCk7XG4gXG4gXHRpZiAocmMgXHUwMDI2IFRJUENfTElOS19ET1dOX0VWVCkge1xuIFx0XHR0aXBjX25vZGVfcmVzZXRfbGlua3Mobik7XG5AQCAtMjE0MCwxMiAmIzQzOzIxNDEsMTggQEAgdm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcbiBcbiBcdC8qIEVuc3VyZSBicm9hZGNhc3QgcmVjZXB0aW9uIGlzIGluIHN5bmNoIHdpdGggcGVlciYjMzk7cyBzZW5kIHN0YXRlICovXG4gXHRpZiAodW5saWtlbHkodXNyID09IExJTktfUFJPVE9DT0wpKSB7XG4mIzQzO1x0XHRib29sIHZhbGlkID0gdHJ1ZTtcbiYjNDM7XG4gXHRcdGlmICh1bmxpa2VseShza2JfbGluZWFyaXplKHNrYikpKSB7XG4gXHRcdFx0dGlwY19ub2RlX3B1dChuKTtcbiBcdFx0XHRnb3RvIGRpc2NhcmQ7XG4gXHRcdH1cbiBcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuLVx0XHR0aXBjX25vZGVfYmNfc3luY19yY3YobiwgaGRyLCBiZWFyZXJfaWQsIFx1MDAyNnhtaXRxKTtcbiYjNDM7XHRcdHRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgXHUwMDI2eG1pdHEsIFx1MDAyNnZhbGlkKTtcbiYjNDM7XHRcdGlmICghdmFsaWQpIHtcbiYjNDM7XHRcdFx0dGlwY19ub2RlX3B1dChuKTtcbiYjNDM7XHRcdFx0Z290byBkaXNjYXJkO1xuJiM0MztcdFx0fVxuIFx0fSBlbHNlIGlmICh1bmxpa2VseSh0aXBjX2xpbmtfYWNrZWQobi1cdTAwM2ViY19lbnRyeS5saW5rKSAhPSBiY19hY2spKSB7XG4gXHRcdHRpcGNfYmNhc3RfYWNrX3JjdihuZXQsIG4tXHUwMDNlYmNfZW50cnkubGluaywgaGRyKTtcbiBcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDssCiAgICAmIzM0O1RJUENfTUVESUFfVURQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19iY2FzdF9zeW5jX3JjdiYjMzQ7LAogICAgJiMzNDt0aXBjX25vZGVfYmNfc3luY19yY3YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGZvciBHYXAgQUNLIGJsb2NrcyBpbiBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUgdG8gcHJldmVudCBwcm9jZXNzaW5nIG9mIG1hbGZvcm1lZCBtZXNzYWdlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHByb3RvY29sIGhhbmRsaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIHZhbGlkYXRpb24gY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2MDBiZjdhYTU4NzY2YzhiNzVjMmE4N2JjYjQ1ODdiN2M4NjEwOWI5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdW4gMjQgMTQ6MTY6MDMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9iY2FzdC5jIGIvbmV0L3RpcGMvYmNhc3QuYwppbmRleCA3NmExNTg1ZDNmNmI2ZC4uMDg2MzdjM2M5ZGIwZmIgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL2JjYXN0LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvYmNhc3QuYwpAQCAtNDk3LDExICYjNDM7NDk3LDEyIEBAIHZvaWQgdGlwY19iY2FzdF9hY2tfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCwKICAqLwogaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLAogCQkJc3RydWN0IHRpcGNfbXNnICpoZHIsCi0JCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSkKJiM0MzsJCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpCiB7CiAJc3RydWN0IHNrX2J1ZmZfaGVhZCAqaW5wdXRxID0gJmFtcDt0aXBjX2JjX2Jhc2UobmV0KS0mZ3Q7aW5wdXRxOwogCXN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqZ2E7CiAJc3RydWN0IHNrX2J1ZmZfaGVhZCB4bWl0cTsKJiM0MzsJdTE2IGdsZW47CiAJaW50IHJjID0gMDsKIAogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO3htaXRxKTsKQEAgLTUxMCwxMyAmIzQzOzUxMSwxOCBAQCBpbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsCiAJaWYgKG1zZ190eXBlKGhkcikgIT0gU1RBVEVfTVNHKSB7CiAJCXRpcGNfbGlua19iY19pbml0X3JjdihsLCBoZHIpOwogCX0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7Ci0JCXRpcGNfZ2V0X2dhcF9hY2tfYmxrcygmYW1wO2dhLCBsLCBoZHIsIGZhbHNlKTsKLQkJaWYgKCFzeXNjdGxfdGlwY19iY19yZXRydW5pKQotCQkJcmV0cnEgPSAmYW1wO3htaXRxOwotCQlyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSwKLQkJCQkJICBtc2dfYmNfZ2FwKGhkciksIGdhLCAmYW1wO3htaXRxLAotCQkJCQkgIHJldHJxKTsKLQkJcmMgfD0gdGlwY19saW5rX2JjX3N5bmNfcmN2KGwsIGhkciwgJmFtcDt4bWl0cSk7CiYjNDM7CQlnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKCZhbXA7Z2EsIGwsIGhkciwgZmFsc2UpOwomIzQzOwkJaWYgKGdsZW4gJmd0OyBtc2dfZGF0YV9zeihoZHIpKSB7CiYjNDM7CQkJLyogTWFsZm9ybWVkIEdhcCBBQ0sgYmxvY2tzOyBjYWxsZXIgZHJvcHMgdGhlIG1zZyAqLwomIzQzOwkJCSp2YWxpZCA9IGZhbHNlOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQlpZiAoIXN5c2N0bF90aXBjX2JjX3JldHJ1bmkpCiYjNDM7CQkJCXJldHJxID0gJmFtcDt4bWl0cTsKJiM0MzsJCQlyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSwKJiM0MzsJCQkJCQkgIG1zZ19iY19nYXAoaGRyKSwgZ2EsICZhbXA7eG1pdHEsCiYjNDM7CQkJCQkJICByZXRycSk7CiYjNDM7CQkJcmMgfD0gdGlwY19saW5rX2JjX3N5bmNfcmN2KGwsIGhkciwgJmFtcDt4bWl0cSk7CiYjNDM7CQl9CiAJfQogCXRpcGNfYmNhc3RfdW5sb2NrKG5ldCk7CiAKZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmggYi9uZXQvdGlwYy9iY2FzdC5oCmluZGV4IDJkOTM1MmRjN2IwZTZlLi41NWQxN2I1NDEzZTE2YiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvYmNhc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9iY2FzdC5oCkBAIC05Nyw3ICYjNDM7OTcsNyBAQCB2b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsCiAJCQlzdHJ1Y3QgdGlwY19tc2cgKmhkcik7CiBpbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsCiAJCQlzdHJ1Y3QgdGlwY19tc2cgKmhkciwKLQkJCXN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxKTsKJiM0MzsJCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpOwogaW50IHRpcGNfbmxfYWRkX2JjX2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19ubF9tc2cgKm1zZywKIAkJCXN0cnVjdCB0aXBjX2xpbmsgKmJjbCk7CiBpbnQgdGlwY19ubF9iY19saW5rX3NldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKmF0dHJzW10pOwpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jCmluZGV4IDk3YWE5NzBhMGQ4M2NhLi4yODg3Zjk0ZWUyOGZhYSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbm9kZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuYwpAQCAtMTgzMSwxMiAmIzQzOzE4MzEsMTMgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX21jYXN0X3JjdihzdHJ1Y3QgdGlwY19ub2RlICpuKQogfQogCiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfYmNfc3luY19yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbiwgc3RydWN0IHRpcGNfbXNnICpoZHIsCi0JCQkJICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSkKJiM0MzsJCQkJICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSwKJiM0MzsJCQkJICBib29sICp2YWxpZCkKIHsKIAlzdHJ1Y3QgdGlwY19saW5rICp1Y2w7CiAJaW50IHJjOwogCi0JcmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tJmd0O25ldCwgbi0mZ3Q7YmNfZW50cnkubGluaywgaGRyLCB4bWl0cSk7CiYjNDM7CXJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLSZndDtuZXQsIG4tJmd0O2JjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTsKIAogCWlmIChyYyAmYW1wOyBUSVBDX0xJTktfRE9XTl9FVlQpIHsKIAkJdGlwY19ub2RlX3Jlc2V0X2xpbmtzKG4pOwpAQCAtMjE0MCwxMiAmIzQzOzIxNDEsMTggQEAgdm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYikKIAogCS8qIEVuc3VyZSBicm9hZGNhc3QgcmVjZXB0aW9uIGlzIGluIHN5bmNoIHdpdGggcGVlciYjMzk7cyBzZW5kIHN0YXRlICovCiAJaWYgKHVubGlrZWx5KHVzciA9PSBMSU5LX1BST1RPQ09MKSkgewomIzQzOwkJYm9vbCB2YWxpZCA9IHRydWU7CiYjNDM7CiAJCWlmICh1bmxpa2VseShza2JfbGluZWFyaXplKHNrYikpKSB7CiAJCQl0aXBjX25vZGVfcHV0KG4pOwogCQkJZ290byBkaXNjYXJkOwogCQl9CiAJCWhkciA9IGJ1Zl9tc2coc2tiKTsKLQkJdGlwY19ub2RlX2JjX3N5bmNfcmN2KG4sIGhkciwgYmVhcmVyX2lkLCAmYW1wO3htaXRxKTsKJiM0MzsJCXRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgJmFtcDt4bWl0cSwgJmFtcDt2YWxpZCk7CiYjNDM7CQlpZiAoIXZhbGlkKSB7CiYjNDM7CQkJdGlwY19ub2RlX3B1dChuKTsKJiM0MzsJCQlnb3RvIGRpc2NhcmQ7CiYjNDM7CQl9CiAJfSBlbHNlIGlmICh1bmxpa2VseSh0aXBjX2xpbmtfYWNrZWQobi0mZ3Q7YmNfZW50cnkubGluaykgIT0gYmNfYWNrKSkgewogCQl0aXBjX2JjYXN0X2Fja19yY3YobmV0LCBuLSZndDtiY19lbnRyeS5saW5rLCBoZHIpOwogCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI0MQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDIyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUSVBDIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBUSVBDLCBhbmQgaXQgbG9va3MgbGlrZSBhIHRhcmdldGVkIGZpeCByZWxhdGVkIHRvIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24uIFRoZXkmIzM5O3ZlIHVwZGF0ZWQgYG5ldC90aXBjL2JjYXN0LmNgLCBgbmV0L3RpcGMvYmNhc3QuaGAsIGFuZCBgbmV0L3RpcGMvbm9kZS5jYC4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgaW4gYHRpcGNfYmNhc3Rfc3luY19yY3ZgLiBUaGV5JiMzOTt2ZSBhZGRlZCBhIGBib29sICp2YWxpZGAgYXJndW1lbnQsIGFuZCBub3cgdGhleSYjMzk7cmUgdmFsaWRhdGluZyB0aGUgR2FwIEFDSyBibG9ja3MuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgdGhleSYjMzk7cmUgY2hlY2tpbmcgaWYgdGhlIHJlY2VpdmVkIGRhdGEgc2l6ZSAoYGdsZW5gKSBpcyBsYXJnZXIgdGhhbiB3aGF0JiMzOTtzIGV4cGVjdGVkIChgbXNnX2RhdGFfc3ooaGRyKWApLiBJZiB0aGVyZSYjMzk7cyBhbiBpc3N1ZSB3aXRoIHRoZSBzaXplLCBgdmFsaWRgIGdldHMgc2V0IHRvIGBmYWxzZWAsIGFuZCB0aGUgcHJvY2Vzc2luZyBpcyBza2lwcGVkLiBUaGlzIGB2YWxpZGAgZmxhZyBpcyB0aGVuIHByb3BhZ2F0ZWQgdXAgdGhyb3VnaCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBhbmQgZXZlbnR1YWxseSBjaGVja2VkIGluIGB0aXBjX3JjdmAsIHdoaWNoIGRpc2NhcmRzIHRoZSBgc2tiYCBpZiBpdCYjMzk7cyBpbnZhbGlkLgoKRXNzZW50aWFsbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGVuaGFuY2VtZW50IOKAkyBhZGRpbmcgc29tZSB2YWxpZGF0aW9uIHRvIHRoZSBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHByb2Nlc3MgaW4gVElQQy4gSSYjMzk7bSBhc3N1bWluZyB0aGlzIGlzIHRvIHByZXZlbnQgYnVmZmVyIG92ZXJmbG93cyBvciBvdGhlciByZWxhdGVkIGlzc3VlcyBpbiB0aGUgcmVjZWl2ZSBwcm9jZXNzLiBJdCYjMzk7cyBhIHNtYXJ0IGFkZGl0aW9uIGFuZCB2ZXJ5IGxpa2VseSB0byBiZSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nLiBJIGNhbiBkZWZpbml0ZWx5IHNlZSBob3cgbWFsZm9ybWVkIEdhcCBBQ0tzIGNvdWxkIGJlIGV4cGxvaXRlZCBpZiB0aGV5IHdlcmVuJiMzOTt0IHZhbGlkYXRlZC4KCk5vdywgbGV0JiMzOTtzIHRyYWNrIGRvd24gdGhlIFRJUEMgY29uZmlndXJhdGlvbi4gSSBiZXQgYENPTkZJR19USVBDYCBpcyB0aGUgcHJpbWFyeSBvbmUsIGJ1dCBJIHNob3VsZCBwcm9iYWJseSB0YWtlIGEgbG9vayBhdCBgbmV0L3RpcGMvS2NvbmZpZ2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzIG9yIGFueSBvdGhlciBtb2R1bGVzIEkgc2hvdWxkIGNvbnNpZGVyIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFRJUEMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL0tjb25maWctNS1cbm5ldC90aXBjL0tjb25maWc6NjptZW51Y29uZmlnIFRJUENcbm5ldC90aXBjL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1RoZSBUSVBDIFByb3RvY29sXCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yMy1cbm5ldC90aXBjL0tjb25maWc6MjQ6Y29uZmlnIFRJUENfTUVESUFfSUJcbm5ldC90aXBjL0tjb25maWctMjUtXHRib29sIFwmIzM0O0luZmluaUJhbmQgbWVkaWEgdHlwZSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yOS1cdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXG5uZXQvdGlwYy9LY29uZmlnOjMwOmNvbmZpZyBUSVBDX01FRElBX1VEUFxubmV0L3RpcGMvS2NvbmZpZy0zMS1cdGJvb2wgXCYjMzQ7SVAvVURQIG1lZGlhIHR5cGUgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMzctXG5uZXQvdGlwYy9LY29uZmlnOjM4OmNvbmZpZyBUSVBDX0NSWVBUT1xubmV0L3RpcGMvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7VElQQyBlbmNyeXB0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTUyLVxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXG5uZXQvdGlwYy9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7VElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE0NAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBUSVBDIFZ1bG5lcmFiaWxpdGllcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgVElQQywgc3BlY2lmaWNhbGx5IGl0cyBjb25maWd1cmF0aW9uLiBUaGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gaXMgYFRJUENgLCBvYnZpb3VzbHkuIEkgc2VlIHdlIGNhbiBhbHNvIGVuYWJsZSBgVElQQ19NRURJQV9VRFBgIHdoaWNoIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhhdCBtZWFucyB3ZSBjYW4gb3BlbiBpdCB1cCBmb3IgZnV6emluZyBvdmVyIFVEUC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgZmlndXJlIG91dCB3aGVyZSB0aGUgYmVzdCBwbGFjZXMgdG8gZm9jdXMgb3VyIGVmZm9ydHMgYXJlLgoKSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zLiBJbW1lZGlhdGVseSwgYHRpcGNfYmNhc3Rfc3luY19yY3ZgLCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCwgYW5kIG1vc3QgaW1wb3J0YW50bHksIGB0aXBjX3JjdmAsIGp1bXAgb3V0IGF0IG1lLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0sIGJ1dCBgdGlwY19yY3ZgIHNlZW1zIGxpa2UgdGhlIGNlbnRyYWwgcmVjZWl2ZSBmdW5jdGlvbiBmb3IgVElQQywgc28gaXQmIzM5O3MgbGlrZWx5IGEgaG90LXBhdGggZnVuY3Rpb24gYW5kIHRoZSBtb3N0IGltcG9ydGFudC4KCmB0aXBjX2JjYXN0X3N5bmNfcmN2YCBoYW5kbGVzIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVzc2FnZXMsIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBsb29rcyBsaWtlIGEgc3RhdGljIGZ1bmN0aW9uIHJlc2lkaW5nIGluIGBuZXQvdGlwYy9ub2RlLmNgLiBOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgYm90aCBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIHRob3JvdWdobHkuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhvc2UgYW5kIHNlZSB3aGVyZSB0aGV5IGxlYWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGlwY19iY2FzdF9zeW5jX3JjdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC90aXBjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGlwYy9iY2FzdC5jPTQ3MD12b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG4tLVxubmV0L3RpcGMvYmNhc3QuYy00OTctICovXG5uZXQvdGlwYy9iY2FzdC5jOjQ5ODppbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG5uZXQvdGlwYy9iY2FzdC5jLTQ5OS1cdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi0tXG5uZXQvdGlwYy9iY2FzdC5oPTk2PXZvaWQgdGlwY19iY2FzdF9hY2tfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbm5ldC90aXBjL2JjYXN0LmgtOTctXHRcdFx0c3RydWN0IHRpcGNfbXNnICpoZHIpO1xubmV0L3RpcGMvYmNhc3QuaDo5ODppbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG5uZXQvdGlwYy9iY2FzdC5oLTk5LVx0XHRcdHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLS1cbm5ldC90aXBjL25vZGUuYz0xODMzPXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9iY19zeW5jX3JjdihzdHJ1Y3QgdGlwY19ub2RlICpuLCBzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMTgzOS1cbm5ldC90aXBjL25vZGUuYzoxODQwOlx0cmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tXHUwMDNlbmV0LCBuLVx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTtcbm5ldC90aXBjL25vZGUuYy0xODQxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE0OjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMzQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdW5kZXJzdGFuZGluZywgY29uc2lkZXJpbmcgSSYjMzk7bSB0cnlpbmcgdG8gcGlucG9pbnQgdGhlIGtleSBhcmVhcyBmb3IgYW5hbHlzaXM6CgoqKkZvY3VzaW5nIG9uIFRJUEMgQnJvYWRjYXN0IFN5bmNocm9uaXphdGlvbioqCgpSaWdodCwgc28gSSYjMzk7bSBob25pbmcgaW4gb24gdGhlIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcyB3aXRoaW4gdGhlIFRJUEMgKFRyYW5zcGFyZW50IEludGVyLVByb2Nlc3MgQ29tbXVuaWNhdGlvbikgc3lzdGVtLiBJJiMzOTt2ZSBpZGVudGlmaWVkIGB0aXBjX2JjYXN0X3N5bmNfcmN2YCBhcyBhIHN0cm9uZyBjYW5kaWRhdGUgZm9yIGNsb3NlciBpbnNwZWN0aW9uLCBhbmQgYHRpcGNfbm9kZV9iY19zeW5jX3JjdmAgc2VlbXMgZXF1YWxseSBwcm9taXNpbmcuIEl0IGxvb2tzIGxpa2UgYHRpcGNfcmN2YCBpcyB0aGUgY2VudHJhbCByZWNlaXZpbmcgZnVuY3Rpb24sIHdoaWNoIGNvdWxkIGJlIGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjayDigJMgaXQmIzM5O3MgbGlrZWx5IGEgaG90IHNwb3QuIEhvd2V2ZXIsIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIGlzIGludm9rZWQgZnJvbSB3aXRoaW4gYHRpcGNfcmN2YCBzcGVjaWZpY2FsbHkgd2hlbiB0aGUgYHVzcmAgcGFyYW1ldGVyIGluZGljYXRlcyBhIGBMSU5LX1BST1RPQ09MYCBjb250ZXh0LCBzdWdnZXN0aW5nIGl0IGhhbmRsZXMgbm9kZS1sZXZlbCBicm9hZGNhc3Qgc3luY2hyb25pemF0aW9uLgoKTm93LCBhIHJlbGF0ZWQgYXJlYSB0aGF0IHNwcmluZ3MgdG8gbWluZCBpcyBob3cgVElQQyBkZWFscyB3aXRoIGFja25vd2xlZGdlbWVudHMgYW5kIGdhcHMgaW4gcmVjZWl2ZWQgZGF0YS4gSSBzaG91bGQgaW52ZXN0aWdhdGUgYHRpcGNfZ2V0X2dhcF9hY2tfYmxrc2AgdG8gc2VlIGlmIGl0IHBsYXlzIGEgc2lnbmlmaWNhbnQgcm9sZSBpbiB0aGUgYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbiBwcm9jZXNzLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gdGhlIGhhbmRsaW5nIG9mIGxvc3Qgb3IgZnJhZ21lbnRlZCBicm9hZGNhc3QgcGFja2V0cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgaXTigJlzIGludm9sdmVkIGluIHRoZSBzeW5jaHJvbml6YXRpb24gc3RyYXRlZ3ksIG9yIG9ubHkgY29uY2VybnMgZGF0YSByZWxpYWJpbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0aXBjX2dldF9nYXBfYWNrX2Jsa3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3RpcGMvYmNhc3QuYz00OTg9aW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuLS1cbm5ldC90aXBjL2JjYXN0LmMtNTEzLVx0fSBlbHNlIGlmICghbXNnX2JjX2Fja19pbnZhbGlkKGhkcikpIHtcbm5ldC90aXBjL2JjYXN0LmM6NTE0Olx0XHRnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKFx1MDAyNmdhLCBsLCBoZHIsIGZhbHNlKTtcbm5ldC90aXBjL2JjYXN0LmMtNTE1LVx0XHRpZiAoZ2xlbiBcdTAwM2UgbXNnX2RhdGFfc3ooaGRyKSkge1xuLS1cbm5ldC90aXBjL2xpbmsuYz0xMzQwPXN0YXRpYyBpbnQgdGlwY19saW5rX3RubF9yY3Yoc3RydWN0IHRpcGNfbGluayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvdGlwYy9saW5rLmMtMTQwNS0vKipcbm5ldC90aXBjL2xpbmsuYzoxNDA2OiAqIHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyAtIGdldCBHYXAgQUNLIGJsb2NrcyBmcm9tIFBST1RPQ09ML1NUQVRFX01TR1xubmV0L3RpcGMvbGluay5jLTE0MDctICogQGdhOiByZXR1cm5lZCBwb2ludGVyIHRvIHRoZSBHYXAgQUNLIGJsb2NrcyBpZiBhbnlcbi0tXG5uZXQvdGlwYy9saW5rLmMtMTQxMy0gKi9cbm5ldC90aXBjL2xpbmsuYzoxNDE0OnUxNiB0aXBjX2dldF9nYXBfYWNrX2Jsa3Moc3RydWN0IHRpcGNfZ2FwX2Fja19ibGtzICoqZ2EsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG5uZXQvdGlwYy9saW5rLmMtMTQxNS1cdFx0XHQgIHN0cnVjdCB0aXBjX21zZyAqaGRyLCBib29sIHVjKVxuLS1cbm5ldC90aXBjL2xpbmsuYz0yMTc0PXN0YXRpYyBpbnQgdGlwY19saW5rX3Byb3RvX3JjdihzdHJ1Y3QgdGlwY19saW5rICpsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC90aXBjL2xpbmsuYy0yMjcxLVx0XHQvKiBWYWxpZGF0ZSBHYXAgQUNLIGJsb2NrcywgZHJvcCBpZiBpbnZhbGlkICovXG5uZXQvdGlwYy9saW5rLmM6MjI3MjpcdFx0Z2xlbiA9IHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCB0cnVlKTtcbm5ldC90aXBjL2xpbmsuYy0yMjczLVx0XHRpZiAoZ2xlbiBcdTAwM2UgZGxlbilcbi0tXG5uZXQvdGlwYy9saW5rLmg9MTQ0PWludCB0aXBjX2xpbmtfbXNzKHN0cnVjdCB0aXBjX2xpbmsgKmwpO1xubmV0L3RpcGMvbGluay5oOjE0NTp1MTYgdGlwY19nZXRfZ2FwX2Fja19ibGtzKHN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqKmdhLCBzdHJ1Y3QgdGlwY19saW5rICpsLFxubmV0L3RpcGMvbGluay5oLTE0Ni1cdFx0XHQgIHN0cnVjdCB0aXBjX21zZyAqaGRyLCBib29sIHVjKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MDcwCgkJCQkJCQlvdXRwdXQ6IDEyMQoJCQkJCQkJdGhvdWdodHM6IDE3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVElQQyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgbmV3IHZhbGlkYXRpb24gY2hlY2ssIHNwZWNpZmljYWxseSBgZ2xlbiAmZ3Q7IG1zZ19kYXRhX3N6KGhkcilgLCBhbmQgaXQmIzM5O3MgYmVpbmcgaW5zZXJ0ZWQgYWZ0ZXIgYSBjYWxsIHRvIGB0aXBjX2dldF9nYXBfYWNrX2Jsa3NgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBhbmQgaW1tZWRpYXRlbHkgcG9pbnRzIG1lIHRvIHRoZSBjb3JlIGxvZ2ljIG9mIGB0aXBjX2JjYXN0X3N5bmNfcmN2YCBhbmQgYHRpcGNfbm9kZV9iY19zeW5jX3JjdmAuIFRob3NlIGFyZSBkZWZpbml0ZWx5IHRoZSBmdW5jdGlvbnMgSSBuZWVkIHRvIHNjcnV0aW5pemUuIFRoZXkgYXJlIHRoZSBjbGVhciBmb2N1cyBzeW1ib2xzIGhlcmUuIEkmIzM5O20gdGhpbmtpbmcgdGhleSBhcmUgdGhlIGJlc3QgcG9pbnRzIHRvIGJlZ2luIHRoZSBhbmFseXNpcy4KCk5vdywgbGV0IG1lIHB1dCB0b2dldGhlciBhIGNvbmNpc2Ugc3VtbWFyeSBvZiBteSBmaW5kaW5ncy4gVGhpcyBpcyBjbGVhcmx5IGEgc2l0dWF0aW9uIHdoZXJlIGZ1enppbmcgaXMgd2FycmFudGVkIOKAkyAqKldvcnRoRnV6emluZzogdHJ1ZSoqLiBNeSBhbmFseXNpcyBpbmRpY2F0ZXMgdGhlIGJlc3QgZnV6emluZyB0YXJnZXQgc3ltYm9scyBhcmUgYHRpcGNfYmNhc3Rfc3luY19yY3ZgIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCDigJMgKipGb2N1c1N5bWJvbHM6IHRpcGNfYmNhc3Rfc3luY19yY3YsIHRpcGNfbm9kZV9iY19zeW5jX3JjdioqLiBJJiMzOTtkIGFsc28gZXhwZWN0IHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlndXJhdGlvbnMgd2lsbCBpbmNsdWRlIGBUSVBDYCBhbmQgbGlrZWx5IGBUSVBDX01FRElBX1VEUGAgLSAqKkVuYWJsZUNvbmZpZ3M6IFRJUEMsIFRJUENfTUVESUFfVURQKiouCgpNeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGlzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaW1wcm92aW5nIHRoZSByb2J1c3RuZXNzIG9mIHRoZSBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUuIFRoZSBuZXcgdmFsaWRhdGlvbiBpcyBkaXJlY3RseSBhaW1lZCBhdCBwcmV2ZW50aW5nIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIHRoZSBwcm9jZXNzaW5nIG9mIG1hbGljaW91c2x5IGNyYWZ0ZWQgb3IgbWFsZm9ybWVkIG1lc3NhZ2VzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBHYXAgQUNLIGJsb2Nrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRpcmVjdCBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBuZXR3b3JrIHByb3RvY29sIGlzIGhhbmRsZWQuIFRoZXJlZm9yZSwgZnV6emluZyB0aGUgbG9naWMgaW1wYWN0ZWQgYnkgdGhpcyBjaGVjaywgZXNwZWNpYWxseSB0aGUgdHdvIGZ1bmN0aW9ucyBpZGVudGlmaWVkLCBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGZvciBzZWN1cml0eSBhbmQgc3RhYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VElQQyYjMzQ7LAogICAgJiMzNDtUSVBDX01FRElBX1VEUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3RpcGNfYmNhc3Rfc3luY19yY3YmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2JjX3N5bmNfcmN2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VElQQyYjMzQ7LAogICAgJiMzNDtUSVBDX01FRElBX1VEUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3RpcGNfYmNhc3Rfc3luY19yY3YmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2JjX3N5bmNfcmN2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE0OjE2OjA1LjE5MDE0MzE1NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MzExMjY3NDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIixcbiAgICBcIlRJUENfTUVESUFfVURQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19iY2FzdF9zeW5jX3JjdlwiLFxuICAgIFwidGlwY19ub2RlX2JjX3N5bmNfcmN2XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGZvciBHYXAgQUNLIGJsb2NrcyBpbiBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUgdG8gcHJldmVudCBwcm9jZXNzaW5nIG9mIG1hbGZvcm1lZCBtZXNzYWdlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHByb3RvY29sIGhhbmRsaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIHZhbGlkYXRpb24gY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjowNS4xOTAxNDgyNzRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MjIxNzIxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDYwMGJmN2FhNTg3NjZjOGI3NWMyYTg3YmNiNDU4N2I3Yzg2MTA5YjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdW4gMjQgMTQ6MTY6MDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuYyBiL25ldC90aXBjL2JjYXN0LmNcXG5pbmRleCA3NmExNTg1ZDNmNmI2ZC4uMDg2MzdjM2M5ZGIwZmIgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvYmNhc3QuY1xcbisrKyBiL25ldC90aXBjL2JjYXN0LmNcXG5AQCAtNDk3LDExICs0OTcsMTIgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiAgKi9cXG4gaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiBcXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcXG4tXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqcmV0cnEpXFxuK1xcdFxcdFxcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxLCBib29sICp2YWxpZClcXG4ge1xcbiBcXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICppbnB1dHEgPSBcXHUwMDI2dGlwY19iY19iYXNlKG5ldCktXFx1MDAzZWlucHV0cTtcXG4gXFx0c3RydWN0IHRpcGNfZ2FwX2Fja19ibGtzICpnYTtcXG4gXFx0c3RydWN0IHNrX2J1ZmZfaGVhZCB4bWl0cTtcXG4rXFx0dTE2IGdsZW47XFxuIFxcdGludCByYyA9IDA7XFxuIFxcbiBcXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNnhtaXRxKTtcXG5AQCAtNTEwLDEzICs1MTEsMTggQEAgaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiBcXHRpZiAobXNnX3R5cGUoaGRyKSAhPSBTVEFURV9NU0cpIHtcXG4gXFx0XFx0dGlwY19saW5rX2JjX2luaXRfcmN2KGwsIGhkcik7XFxuIFxcdH0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7XFxuLVxcdFxcdHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcXHUwMDI2Z2EsIGwsIGhkciwgZmFsc2UpO1xcbi1cXHRcXHRpZiAoIXN5c2N0bF90aXBjX2JjX3JldHJ1bmkpXFxuLVxcdFxcdFxcdHJldHJxID0gXFx1MDAyNnhtaXRxO1xcbi1cXHRcXHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcXG4tXFx0XFx0XFx0XFx0XFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcXHUwMDI2eG1pdHEsXFxuLVxcdFxcdFxcdFxcdFxcdCAgcmV0cnEpO1xcbi1cXHRcXHRyYyB8PSB0aXBjX2xpbmtfYmNfc3luY19yY3YobCwgaGRyLCBcXHUwMDI2eG1pdHEpO1xcbitcXHRcXHRnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKFxcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XFxuK1xcdFxcdGlmIChnbGVuIFxcdTAwM2UgbXNnX2RhdGFfc3ooaGRyKSkge1xcbitcXHRcXHRcXHQvKiBNYWxmb3JtZWQgR2FwIEFDSyBibG9ja3M7IGNhbGxlciBkcm9wcyB0aGUgbXNnICovXFxuK1xcdFxcdFxcdCp2YWxpZCA9IGZhbHNlO1xcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRpZiAoIXN5c2N0bF90aXBjX2JjX3JldHJ1bmkpXFxuK1xcdFxcdFxcdFxcdHJldHJxID0gXFx1MDAyNnhtaXRxO1xcbitcXHRcXHRcXHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcXHUwMDI2eG1pdHEsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgcmV0cnEpO1xcbitcXHRcXHRcXHRyYyB8PSB0aXBjX2xpbmtfYmNfc3luY19yY3YobCwgaGRyLCBcXHUwMDI2eG1pdHEpO1xcbitcXHRcXHR9XFxuIFxcdH1cXG4gXFx0dGlwY19iY2FzdF91bmxvY2sobmV0KTtcXG4gXFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmggYi9uZXQvdGlwYy9iY2FzdC5oXFxuaW5kZXggMmQ5MzUyZGM3YjBlNmUuLjU1ZDE3YjU0MTNlMTZiIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL2JjYXN0LmhcXG4rKysgYi9uZXQvdGlwYy9iY2FzdC5oXFxuQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiBcXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcik7XFxuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcXG4gXFx0XFx0XFx0c3RydWN0IHRpcGNfbXNnICpoZHIsXFxuLVxcdFxcdFxcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxKTtcXG4rXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqcmV0cnEsIGJvb2wgKnZhbGlkKTtcXG4gaW50IHRpcGNfbmxfYWRkX2JjX2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19ubF9tc2cgKm1zZyxcXG4gXFx0XFx0XFx0c3RydWN0IHRpcGNfbGluayAqYmNsKTtcXG4gaW50IHRpcGNfbmxfYmNfbGlua19zZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICphdHRyc1tdKTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXFxuaW5kZXggOTdhYTk3MGEwZDgzY2EuLjI4ODdmOTRlZTI4ZmFhIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25vZGUuY1xcbisrKyBiL25ldC90aXBjL25vZGUuY1xcbkBAIC0xODMxLDEyICsxODMxLDEzIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9tY2FzdF9yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbilcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX2JjX3N5bmNfcmN2KHN0cnVjdCB0aXBjX25vZGUgKm4sIHN0cnVjdCB0aXBjX21zZyAqaGRyLFxcbi1cXHRcXHRcXHRcXHQgIGludCBiZWFyZXJfaWQsIHN0cnVjdCBza19idWZmX2hlYWQgKnhtaXRxKVxcbitcXHRcXHRcXHRcXHQgIGludCBiZWFyZXJfaWQsIHN0cnVjdCBza19idWZmX2hlYWQgKnhtaXRxLFxcbitcXHRcXHRcXHRcXHQgIGJvb2wgKnZhbGlkKVxcbiB7XFxuIFxcdHN0cnVjdCB0aXBjX2xpbmsgKnVjbDtcXG4gXFx0aW50IHJjO1xcbiBcXG4tXFx0cmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tXFx1MDAzZW5ldCwgbi1cXHUwMDNlYmNfZW50cnkubGluaywgaGRyLCB4bWl0cSk7XFxuK1xcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVxcdTAwM2VuZXQsIG4tXFx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTtcXG4gXFxuIFxcdGlmIChyYyBcXHUwMDI2IFRJUENfTElOS19ET1dOX0VWVCkge1xcbiBcXHRcXHR0aXBjX25vZGVfcmVzZXRfbGlua3Mobik7XFxuQEAgLTIxNDAsMTIgKzIxNDEsMTggQEAgdm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcXG4gXFxuIFxcdC8qIEVuc3VyZSBicm9hZGNhc3QgcmVjZXB0aW9uIGlzIGluIHN5bmNoIHdpdGggcGVlcidzIHNlbmQgc3RhdGUgKi9cXG4gXFx0aWYgKHVubGlrZWx5KHVzciA9PSBMSU5LX1BST1RPQ09MKSkge1xcbitcXHRcXHRib29sIHZhbGlkID0gdHJ1ZTtcXG4rXFxuIFxcdFxcdGlmICh1bmxpa2VseShza2JfbGluZWFyaXplKHNrYikpKSB7XFxuIFxcdFxcdFxcdHRpcGNfbm9kZV9wdXQobik7XFxuIFxcdFxcdFxcdGdvdG8gZGlzY2FyZDtcXG4gXFx0XFx0fVxcbiBcXHRcXHRoZHIgPSBidWZfbXNnKHNrYik7XFxuLVxcdFxcdHRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgXFx1MDAyNnhtaXRxKTtcXG4rXFx0XFx0dGlwY19ub2RlX2JjX3N5bmNfcmN2KG4sIGhkciwgYmVhcmVyX2lkLCBcXHUwMDI2eG1pdHEsIFxcdTAwMjZ2YWxpZCk7XFxuK1xcdFxcdGlmICghdmFsaWQpIHtcXG4rXFx0XFx0XFx0dGlwY19ub2RlX3B1dChuKTtcXG4rXFx0XFx0XFx0Z290byBkaXNjYXJkO1xcbitcXHRcXHR9XFxuIFxcdH0gZWxzZSBpZiAodW5saWtlbHkodGlwY19saW5rX2Fja2VkKG4tXFx1MDAzZWJjX2VudHJ5LmxpbmspICE9IGJjX2FjaykpIHtcXG4gXFx0XFx0dGlwY19iY2FzdF9hY2tfcmN2KG5ldCwgbi1cXHUwMDNlYmNfZW50cnkubGluaywgaGRyKTtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjowNS42MzMwNjk5MDNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0ODY4MzMxNzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIixcbiAgICBcIlRJUENfTUVESUFfVURQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19iY2FzdF9zeW5jX3JjdlwiLFxuICAgIFwidGlwY19ub2RlX2JjX3N5bmNfcmN2XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGZvciBHYXAgQUNLIGJsb2NrcyBpbiBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUgdG8gcHJldmVudCBwcm9jZXNzaW5nIG9mIG1hbGZvcm1lZCBtZXNzYWdlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHByb3RvY29sIGhhbmRsaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIHZhbGlkYXRpb24gY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDYwMGJmN2FhNTg3NjZjOGI3NWMyYTg3YmNiNDU4N2I3Yzg2MTA5YjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxNDoxNjowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmMgYi9uZXQvdGlwYy9iY2FzdC5jXG5pbmRleCA3NmExNTg1ZDNmNmI2ZC4uMDg2MzdjM2M5ZGIwZmIgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9iY2FzdC5jXG4rKysgYi9uZXQvdGlwYy9iY2FzdC5jXG5AQCAtNDk3LDExICs0OTcsMTIgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuICAqL1xuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSlcbitcdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpXG4ge1xuIFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqaW5wdXRxID0gXHUwMDI2dGlwY19iY19iYXNlKG5ldCktXHUwMDNlaW5wdXRxO1xuIFx0c3RydWN0IHRpcGNfZ2FwX2Fja19ibGtzICpnYTtcbiBcdHN0cnVjdCBza19idWZmX2hlYWQgeG1pdHE7XG4rXHR1MTYgZ2xlbjtcbiBcdGludCByYyA9IDA7XG4gXG4gXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2eG1pdHEpO1xuQEAgLTUxMCwxMyArNTExLDE4IEBAIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdGlmIChtc2dfdHlwZShoZHIpICE9IFNUQVRFX01TRykge1xuIFx0XHR0aXBjX2xpbmtfYmNfaW5pdF9yY3YobCwgaGRyKTtcbiBcdH0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7XG4tXHRcdHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XG4tXHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbi1cdFx0XHRyZXRycSA9IFx1MDAyNnhtaXRxO1xuLVx0XHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcbi1cdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbi1cdFx0XHRcdFx0ICByZXRycSk7XG4tXHRcdHJjIHw9IHRpcGNfbGlua19iY19zeW5jX3JjdihsLCBoZHIsIFx1MDAyNnhtaXRxKTtcbitcdFx0Z2xlbiA9IHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XG4rXHRcdGlmIChnbGVuIFx1MDAzZSBtc2dfZGF0YV9zeihoZHIpKSB7XG4rXHRcdFx0LyogTWFsZm9ybWVkIEdhcCBBQ0sgYmxvY2tzOyBjYWxsZXIgZHJvcHMgdGhlIG1zZyAqL1xuK1x0XHRcdCp2YWxpZCA9IGZhbHNlO1xuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbitcdFx0XHRcdHJldHJxID0gXHUwMDI2eG1pdHE7XG4rXHRcdFx0cmMgPSB0aXBjX2xpbmtfYmNfYWNrX3JjdihsLCBtc2dfYmNhc3RfYWNrKGhkciksXG4rXHRcdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbitcdFx0XHRcdFx0XHQgIHJldHJxKTtcbitcdFx0XHRyYyB8PSB0aXBjX2xpbmtfYmNfc3luY19yY3YobCwgaGRyLCBcdTAwMjZ4bWl0cSk7XG4rXHRcdH1cbiBcdH1cbiBcdHRpcGNfYmNhc3RfdW5sb2NrKG5ldCk7XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuaCBiL25ldC90aXBjL2JjYXN0LmhcbmluZGV4IDJkOTM1MmRjN2IwZTZlLi41NWQxN2I1NDEzZTE2YiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2JjYXN0LmhcbisrKyBiL25ldC90aXBjL2JjYXN0LmhcbkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgdGlwY19iY2FzdF9hY2tfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcik7XG4gaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuIFx0XHRcdHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLVx0XHRcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxKTtcbitcdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpO1xuIGludCB0aXBjX25sX2FkZF9iY19saW5rKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbmxfbXNnICptc2csXG4gXHRcdFx0c3RydWN0IHRpcGNfbGluayAqYmNsKTtcbiBpbnQgdGlwY19ubF9iY19saW5rX3NldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKmF0dHJzW10pO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLjI4ODdmOTRlZTI4ZmFhIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xODMxLDEyICsxODMxLDEzIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9tY2FzdF9yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbilcbiB9XG4gXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX2JjX3N5bmNfcmN2KHN0cnVjdCB0aXBjX25vZGUgKm4sIHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLVx0XHRcdFx0ICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSlcbitcdFx0XHRcdCAgaW50IGJlYXJlcl9pZCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqeG1pdHEsXG4rXHRcdFx0XHQgIGJvb2wgKnZhbGlkKVxuIHtcbiBcdHN0cnVjdCB0aXBjX2xpbmsgKnVjbDtcbiBcdGludCByYztcbiBcbi1cdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVx1MDAzZW5ldCwgbi1cdTAwM2ViY19lbnRyeS5saW5rLCBoZHIsIHhtaXRxKTtcbitcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVx1MDAzZW5ldCwgbi1cdTAwM2ViY19lbnRyeS5saW5rLCBoZHIsIHhtaXRxLCB2YWxpZCk7XG4gXG4gXHRpZiAocmMgXHUwMDI2IFRJUENfTElOS19ET1dOX0VWVCkge1xuIFx0XHR0aXBjX25vZGVfcmVzZXRfbGlua3Mobik7XG5AQCAtMjE0MCwxMiArMjE0MSwxOCBAQCB2b2lkIHRpcGNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRpcGNfYmVhcmVyICpiKVxuIFxuIFx0LyogRW5zdXJlIGJyb2FkY2FzdCByZWNlcHRpb24gaXMgaW4gc3luY2ggd2l0aCBwZWVyJ3Mgc2VuZCBzdGF0ZSAqL1xuIFx0aWYgKHVubGlrZWx5KHVzciA9PSBMSU5LX1BST1RPQ09MKSkge1xuK1x0XHRib29sIHZhbGlkID0gdHJ1ZTtcbitcbiBcdFx0aWYgKHVubGlrZWx5KHNrYl9saW5lYXJpemUoc2tiKSkpIHtcbiBcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuIFx0XHRcdGdvdG8gZGlzY2FyZDtcbiBcdFx0fVxuIFx0XHRoZHIgPSBidWZfbXNnKHNrYik7XG4tXHRcdHRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgXHUwMDI2eG1pdHEpO1xuK1x0XHR0aXBjX25vZGVfYmNfc3luY19yY3YobiwgaGRyLCBiZWFyZXJfaWQsIFx1MDAyNnhtaXRxLCBcdTAwMjZ2YWxpZCk7XG4rXHRcdGlmICghdmFsaWQpIHtcbitcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuK1x0XHRcdGdvdG8gZGlzY2FyZDtcbitcdFx0fVxuIFx0fSBlbHNlIGlmICh1bmxpa2VseSh0aXBjX2xpbmtfYWNrZWQobi1cdTAwM2ViY19lbnRyeS5saW5rKSAhPSBiY19hY2spKSB7XG4gXHRcdHRpcGNfYmNhc3RfYWNrX3JjdihuZXQsIG4tXHUwMDNlYmNfZW50cnkubGluaywgaGRyKTtcbiBcdH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE0OjE2OjA1LjYzMzA3MTMxM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NTQzMjQzOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgVElQQyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIFRJUEMsIGFuZCBpdCBsb29rcyBsaWtlIGEgdGFyZ2V0ZWQgZml4IHJlbGF0ZWQgdG8gYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbi4gVGhleSd2ZSB1cGRhdGVkIGBuZXQvdGlwYy9iY2FzdC5jYCwgYG5ldC90aXBjL2JjYXN0LmhgLCBhbmQgYG5ldC90aXBjL25vZGUuY2AuIFRoZSBrZXkgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGB0aXBjX2JjYXN0X3N5bmNfcmN2YC4gVGhleSd2ZSBhZGRlZCBhIGBib29sICp2YWxpZGAgYXJndW1lbnQsIGFuZCBub3cgdGhleSdyZSB2YWxpZGF0aW5nIHRoZSBHYXAgQUNLIGJsb2Nrcy4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyB0aGV5J3JlIGNoZWNraW5nIGlmIHRoZSByZWNlaXZlZCBkYXRhIHNpemUgKGBnbGVuYCkgaXMgbGFyZ2VyIHRoYW4gd2hhdCdzIGV4cGVjdGVkIChgbXNnX2RhdGFfc3ooaGRyKWApLiBJZiB0aGVyZSdzIGFuIGlzc3VlIHdpdGggdGhlIHNpemUsIGB2YWxpZGAgZ2V0cyBzZXQgdG8gYGZhbHNlYCwgYW5kIHRoZSBwcm9jZXNzaW5nIGlzIHNraXBwZWQuIFRoaXMgYHZhbGlkYCBmbGFnIGlzIHRoZW4gcHJvcGFnYXRlZCB1cCB0aHJvdWdoIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIGFuZCBldmVudHVhbGx5IGNoZWNrZWQgaW4gYHRpcGNfcmN2YCwgd2hpY2ggZGlzY2FyZHMgdGhlIGBza2JgIGlmIGl0J3MgaW52YWxpZC5cblxuRXNzZW50aWFsbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGVuaGFuY2VtZW50IOKAkyBhZGRpbmcgc29tZSB2YWxpZGF0aW9uIHRvIHRoZSBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHByb2Nlc3MgaW4gVElQQy4gSSdtIGFzc3VtaW5nIHRoaXMgaXMgdG8gcHJldmVudCBidWZmZXIgb3ZlcmZsb3dzIG9yIG90aGVyIHJlbGF0ZWQgaXNzdWVzIGluIHRoZSByZWNlaXZlIHByb2Nlc3MuIEl0J3MgYSBzbWFydCBhZGRpdGlvbiBhbmQgdmVyeSBsaWtlbHkgdG8gYmUgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gSSBjYW4gZGVmaW5pdGVseSBzZWUgaG93IG1hbGZvcm1lZCBHYXAgQUNLcyBjb3VsZCBiZSBleHBsb2l0ZWQgaWYgdGhleSB3ZXJlbid0IHZhbGlkYXRlZC5cblxuTm93LCBsZXQncyB0cmFjayBkb3duIHRoZSBUSVBDIGNvbmZpZ3VyYXRpb24uIEkgYmV0IGBDT05GSUdfVElQQ2AgaXMgdGhlIHByaW1hcnkgb25lLCBidXQgSSBzaG91bGQgcHJvYmFibHkgdGFrZSBhIGxvb2sgYXQgYG5ldC90aXBjL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBvciBhbnkgb3RoZXIgbW9kdWxlcyBJIHNob3VsZCBjb25zaWRlciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjQxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTQ6MTY6MTEuMDg3Mzk3MzY3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NjYzMDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUSVBDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvS2NvbmZpZy01LVxcbm5ldC90aXBjL0tjb25maWc6NjptZW51Y29uZmlnIFRJUENcXG5uZXQvdGlwYy9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBUSVBDIFByb3RvY29sXFxcIlxcbi0tXFxubmV0L3RpcGMvS2NvbmZpZy0yMy1cXG5uZXQvdGlwYy9LY29uZmlnOjI0OmNvbmZpZyBUSVBDX01FRElBX0lCXFxubmV0L3RpcGMvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJJbmZpbmlCYW5kIG1lZGlhIHR5cGUgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjktXFx0ICBJUC1vdmVyLUluZmluaUJhbmQgZGV2aWNlcy5cXG5uZXQvdGlwYy9LY29uZmlnOjMwOmNvbmZpZyBUSVBDX01FRElBX1VEUFxcbm5ldC90aXBjL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiSVAvVURQIG1lZGlhIHR5cGUgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMzctXFxubmV0L3RpcGMvS2NvbmZpZzozODpjb25maWcgVElQQ19DUllQVE9cXG5uZXQvdGlwYy9LY29uZmlnLTM5LVxcdGJvb2wgXFxcIlRJUEMgZW5jcnlwdGlvbiBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3RpcGMvS2NvbmZpZy01Mi1cXG5uZXQvdGlwYy9LY29uZmlnOjUzOmNvbmZpZyBUSVBDX0RJQUdcXG5uZXQvdGlwYy9LY29uZmlnLTU0LVxcdHRyaXN0YXRlIFxcXCJUSVBDOiBzb2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2VcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE0OjE2OjExLjE0NTA3MDUyNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNjAzNDc3MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gVElQQyBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBUSVBDLCBzcGVjaWZpY2FsbHkgaXRzIGNvbmZpZ3VyYXRpb24uIFRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaXRlbSBpcyBgVElQQ2AsIG9idmlvdXNseS4gSSBzZWUgd2UgY2FuIGFsc28gZW5hYmxlIGBUSVBDX01FRElBX1VEUGAgd2hpY2ggaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSB0aGF0IG1lYW5zIHdlIGNhbiBvcGVuIGl0IHVwIGZvciBmdXp6aW5nIG92ZXIgVURQLiBMZXQncyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIGJlc3QgcGxhY2VzIHRvIGZvY3VzIG91ciBlZmZvcnRzIGFyZS5cblxuSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zLiBJbW1lZGlhdGVseSwgYHRpcGNfYmNhc3Rfc3luY19yY3ZgLCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCwgYW5kIG1vc3QgaW1wb3J0YW50bHksIGB0aXBjX3JjdmAsIGp1bXAgb3V0IGF0IG1lLiBJJ2xsIG5lZWQgdG8gY29uZmlybSwgYnV0IGB0aXBjX3JjdmAgc2VlbXMgbGlrZSB0aGUgY2VudHJhbCByZWNlaXZlIGZ1bmN0aW9uIGZvciBUSVBDLCBzbyBpdCdzIGxpa2VseSBhIGhvdC1wYXRoIGZ1bmN0aW9uIGFuZCB0aGUgbW9zdCBpbXBvcnRhbnQuXG5cbmB0aXBjX2JjYXN0X3N5bmNfcmN2YCBoYW5kbGVzIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVzc2FnZXMsIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBsb29rcyBsaWtlIGEgc3RhdGljIGZ1bmN0aW9uIHJlc2lkaW5nIGluIGBuZXQvdGlwYy9ub2RlLmNgLiBOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgYm90aCBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIHRob3JvdWdobHkuIEknbGwgc3RhcnQgd2l0aCB0aG9zZSBhbmQgc2VlIHdoZXJlIHRoZXkgbGVhZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE0NCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjoxNi4zMDU0MjAyMjZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU1MDI1ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGlwY19iY2FzdF9zeW5jX3JjdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGlwYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvYmNhc3QuYz00NzA9dm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbi0tXFxubmV0L3RpcGMvYmNhc3QuYy00OTctICovXFxubmV0L3RpcGMvYmNhc3QuYzo0OTg6aW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbm5ldC90aXBjL2JjYXN0LmMtNDk5LVxcdFxcdFxcdHN0cnVjdCB0aXBjX21zZyAqaGRyLFxcbi0tXFxubmV0L3RpcGMvYmNhc3QuaD05Nj12b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXFxubmV0L3RpcGMvYmNhc3QuaC05Ny1cXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcik7XFxubmV0L3RpcGMvYmNhc3QuaDo5ODppbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXFxubmV0L3RpcGMvYmNhc3QuaC05OS1cXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcXG4tLVxcbm5ldC90aXBjL25vZGUuYz0xODMzPXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9iY19zeW5jX3JjdihzdHJ1Y3QgdGlwY19ub2RlICpuLCBzdHJ1Y3QgdGlwY19tc2cgKmhkcixcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0xODM5LVxcbm5ldC90aXBjL25vZGUuYzoxODQwOlxcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVxcdTAwM2VuZXQsIG4tXFx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTtcXG5uZXQvdGlwYy9ub2RlLmMtMTg0MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTQ6MTY6MTYuMzYwOTI4NTM1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODE5MDQzNjEwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEknbSB0cnlpbmcgdG8gcGlucG9pbnQgdGhlIGtleSBhcmVhcyBmb3IgYW5hbHlzaXM6XG5cbioqRm9jdXNpbmcgb24gVElQQyBCcm9hZGNhc3QgU3luY2hyb25pemF0aW9uKipcblxuUmlnaHQsIHNvIEknbSBob25pbmcgaW4gb24gdGhlIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcyB3aXRoaW4gdGhlIFRJUEMgKFRyYW5zcGFyZW50IEludGVyLVByb2Nlc3MgQ29tbXVuaWNhdGlvbikgc3lzdGVtLiBJJ3ZlIGlkZW50aWZpZWQgYHRpcGNfYmNhc3Rfc3luY19yY3ZgIGFzIGEgc3Ryb25nIGNhbmRpZGF0ZSBmb3IgY2xvc2VyIGluc3BlY3Rpb24sIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBzZWVtcyBlcXVhbGx5IHByb21pc2luZy4gSXQgbG9va3MgbGlrZSBgdGlwY19yY3ZgIGlzIHRoZSBjZW50cmFsIHJlY2VpdmluZyBmdW5jdGlvbiwgd2hpY2ggY291bGQgYmUgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrIOKAkyBpdCdzIGxpa2VseSBhIGhvdCBzcG90LiBIb3dldmVyLCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBpcyBpbnZva2VkIGZyb20gd2l0aGluIGB0aXBjX3JjdmAgc3BlY2lmaWNhbGx5IHdoZW4gdGhlIGB1c3JgIHBhcmFtZXRlciBpbmRpY2F0ZXMgYSBgTElOS19QUk9UT0NPTGAgY29udGV4dCwgc3VnZ2VzdGluZyBpdCBoYW5kbGVzIG5vZGUtbGV2ZWwgYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbi5cblxuTm93LCBhIHJlbGF0ZWQgYXJlYSB0aGF0IHNwcmluZ3MgdG8gbWluZCBpcyBob3cgVElQQyBkZWFscyB3aXRoIGFja25vd2xlZGdlbWVudHMgYW5kIGdhcHMgaW4gcmVjZWl2ZWQgZGF0YS4gSSBzaG91bGQgaW52ZXN0aWdhdGUgYHRpcGNfZ2V0X2dhcF9hY2tfYmxrc2AgdG8gc2VlIGlmIGl0IHBsYXlzIGEgc2lnbmlmaWNhbnQgcm9sZSBpbiB0aGUgYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbiBwcm9jZXNzLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gdGhlIGhhbmRsaW5nIG9mIGxvc3Qgb3IgZnJhZ21lbnRlZCBicm9hZGNhc3QgcGFja2V0cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgaXTigJlzIGludm9sdmVkIGluIHRoZSBzeW5jaHJvbml6YXRpb24gc3RyYXRlZ3ksIG9yIG9ubHkgY29uY2VybnMgZGF0YSByZWxpYWJpbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzNCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjoyNC41NTEzNjcxMjVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYyMzMxMjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGlwY19nZXRfZ2FwX2Fja19ibGtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdGlwYy9iY2FzdC5jPTQ5OD1pbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXFxuLS1cXG5uZXQvdGlwYy9iY2FzdC5jLTUxMy1cXHR9IGVsc2UgaWYgKCFtc2dfYmNfYWNrX2ludmFsaWQoaGRyKSkge1xcbm5ldC90aXBjL2JjYXN0LmM6NTE0OlxcdFxcdGdsZW4gPSB0aXBjX2dldF9nYXBfYWNrX2Jsa3MoXFx1MDAyNmdhLCBsLCBoZHIsIGZhbHNlKTtcXG5uZXQvdGlwYy9iY2FzdC5jLTUxNS1cXHRcXHRpZiAoZ2xlbiBcXHUwMDNlIG1zZ19kYXRhX3N6KGhkcikpIHtcXG4tLVxcbm5ldC90aXBjL2xpbmsuYz0xMzQwPXN0YXRpYyBpbnQgdGlwY19saW5rX3RubF9yY3Yoc3RydWN0IHRpcGNfbGluayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC90aXBjL2xpbmsuYy0xNDA1LS8qKlxcbm5ldC90aXBjL2xpbmsuYzoxNDA2OiAqIHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyAtIGdldCBHYXAgQUNLIGJsb2NrcyBmcm9tIFBST1RPQ09ML1NUQVRFX01TR1xcbm5ldC90aXBjL2xpbmsuYy0xNDA3LSAqIEBnYTogcmV0dXJuZWQgcG9pbnRlciB0byB0aGUgR2FwIEFDSyBibG9ja3MgaWYgYW55XFxuLS1cXG5uZXQvdGlwYy9saW5rLmMtMTQxMy0gKi9cXG5uZXQvdGlwYy9saW5rLmM6MTQxNDp1MTYgdGlwY19nZXRfZ2FwX2Fja19ibGtzKHN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqKmdhLCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbm5ldC90aXBjL2xpbmsuYy0xNDE1LVxcdFxcdFxcdCAgc3RydWN0IHRpcGNfbXNnICpoZHIsIGJvb2wgdWMpXFxuLS1cXG5uZXQvdGlwYy9saW5rLmM9MjE3ND1zdGF0aWMgaW50IHRpcGNfbGlua19wcm90b19yY3Yoc3RydWN0IHRpcGNfbGluayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC90aXBjL2xpbmsuYy0yMjcxLVxcdFxcdC8qIFZhbGlkYXRlIEdhcCBBQ0sgYmxvY2tzLCBkcm9wIGlmIGludmFsaWQgKi9cXG5uZXQvdGlwYy9saW5rLmM6MjI3MjpcXHRcXHRnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKFxcdTAwMjZnYSwgbCwgaGRyLCB0cnVlKTtcXG5uZXQvdGlwYy9saW5rLmMtMjI3My1cXHRcXHRpZiAoZ2xlbiBcXHUwMDNlIGRsZW4pXFxuLS1cXG5uZXQvdGlwYy9saW5rLmg9MTQ0PWludCB0aXBjX2xpbmtfbXNzKHN0cnVjdCB0aXBjX2xpbmsgKmwpO1xcbm5ldC90aXBjL2xpbmsuaDoxNDU6dTE2IHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhzdHJ1Y3QgdGlwY19nYXBfYWNrX2Jsa3MgKipnYSwgc3RydWN0IHRpcGNfbGluayAqbCxcXG5uZXQvdGlwYy9saW5rLmgtMTQ2LVxcdFxcdFxcdCAgc3RydWN0IHRpcGNfbXNnICpoZHIsIGJvb2wgdWMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjoyNC42MDc2MDkzOTRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODA5NjgxODY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBUSVBDIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIG5ldyB2YWxpZGF0aW9uIGNoZWNrLCBzcGVjaWZpY2FsbHkgYGdsZW4gXHUwMDNlIG1zZ19kYXRhX3N6KGhkcilgLCBhbmQgaXQncyBiZWluZyBpbnNlcnRlZCBhZnRlciBhIGNhbGwgdG8gYHRpcGNfZ2V0X2dhcF9hY2tfYmxrc2AuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIGltbWVkaWF0ZWx5IHBvaW50cyBtZSB0byB0aGUgY29yZSBsb2dpYyBvZiBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgLiBUaG9zZSBhcmUgZGVmaW5pdGVseSB0aGUgZnVuY3Rpb25zIEkgbmVlZCB0byBzY3J1dGluaXplLiBUaGV5IGFyZSB0aGUgY2xlYXIgZm9jdXMgc3ltYm9scyBoZXJlLiBJJ20gdGhpbmtpbmcgdGhleSBhcmUgdGhlIGJlc3QgcG9pbnRzIHRvIGJlZ2luIHRoZSBhbmFseXNpcy5cblxuTm93LCBsZXQgbWUgcHV0IHRvZ2V0aGVyIGEgY29uY2lzZSBzdW1tYXJ5IG9mIG15IGZpbmRpbmdzLiBUaGlzIGlzIGNsZWFybHkgYSBzaXR1YXRpb24gd2hlcmUgZnV6emluZyBpcyB3YXJyYW50ZWQg4oCTICoqV29ydGhGdXp6aW5nOiB0cnVlKiouIE15IGFuYWx5c2lzIGluZGljYXRlcyB0aGUgYmVzdCBmdXp6aW5nIHRhcmdldCBzeW1ib2xzIGFyZSBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIOKAkyAqKkZvY3VzU3ltYm9sczogdGlwY19iY2FzdF9zeW5jX3JjdiwgdGlwY19ub2RlX2JjX3N5bmNfcmN2KiouIEknZCBhbHNvIGV4cGVjdCB0aGUgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIHdpbGwgaW5jbHVkZSBgVElQQ2AgYW5kIGxpa2VseSBgVElQQ19NRURJQV9VRFBgIC0gKipFbmFibGVDb25maWdzOiBUSVBDLCBUSVBDX01FRElBX1VEUCoqLlxuXG5NeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGlzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaW1wcm92aW5nIHRoZSByb2J1c3RuZXNzIG9mIHRoZSBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUuIFRoZSBuZXcgdmFsaWRhdGlvbiBpcyBkaXJlY3RseSBhaW1lZCBhdCBwcmV2ZW50aW5nIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIHRoZSBwcm9jZXNzaW5nIG9mIG1hbGljaW91c2x5IGNyYWZ0ZWQgb3IgbWFsZm9ybWVkIG1lc3NhZ2VzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBHYXAgQUNLIGJsb2Nrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRpcmVjdCBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBuZXR3b3JrIHByb3RvY29sIGlzIGhhbmRsZWQuIFRoZXJlZm9yZSwgZnV6emluZyB0aGUgbG9naWMgaW1wYWN0ZWQgYnkgdGhpcyBjaGVjaywgZXNwZWNpYWxseSB0aGUgdHdvIGZ1bmN0aW9ucyBpZGVudGlmaWVkLCBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGZvciBzZWN1cml0eSBhbmQgc3RhYmlsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDcwLCJPdXRwdXRUb2tlbnMiOjEyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjozMC40MTcyOTQwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0MTAyNTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCIsXG4gICAgXCJUSVBDX01FRElBX1VEUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRpcGNfYmNhc3Rfc3luY19yY3ZcIixcbiAgICBcInRpcGNfbm9kZV9iY19zeW5jX3JjdlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCIsXG4gICAgXCJUSVBDX01FRElBX1VEUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRpcGNfYmNhc3Rfc3luY19yY3ZcIixcbiAgICBcInRpcGNfbm9kZV9iY19zeW5jX3JjdlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowh848k[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-24 14:06:04 +0000 UTC FinishedAt: 2026-06-24 14:16:31 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "a986fde914d88af47eb78fd29c5d1af7952c3500", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC", "TIPC_MEDIA_UDP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "a986fde914d88af47eb78fd29c5d1af7952c3500", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC", "TIPC_MEDIA_UDP" ], "series_id": "846df91b-2e8c-4001-98a9-2b68a8a28ad3" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_bcast_sync_rcv", "tipc_node_bc_sync_rcv" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI0IDE0OjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OywKICAgICYjMzQ7VElQQ19NRURJQV9VRFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX2JjYXN0X3N5bmNfcmN2JiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9iY19zeW5jX3JjdiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gZm9yIEdhcCBBQ0sgYmxvY2tzIGluIFRJUEMgYnJvYWRjYXN0IHN5bmMgcmVjZWl2ZSB0byBwcmV2ZW50IHByb2Nlc3Npbmcgb2YgbWFsZm9ybWVkIG1lc3NhZ2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgcHJvdG9jb2wgaGFuZGxpbmcgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgdmFsaWRhdGlvbiBjb3JyZWN0bHkgaGFuZGxlcyBtYWxmb3JtZWQgcGFja2V0cyB3aXRob3V0IGNhdXNpbmcgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2MDBiZjdhYTU4NzY2YzhiNzVjMmE4N2JjYjQ1ODdiN2M4NjEwOWI5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMTQ6MTY6MDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuYyBiL25ldC90aXBjL2JjYXN0LmNcbmluZGV4IDc2YTE1ODVkM2Y2YjZkLi4wODYzN2MzYzlkYjBmYiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2JjYXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2JjYXN0LmNcbkBAIC00OTcsMTEgJiM0Mzs0OTcsMTIgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuICAqL1xuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSlcbiYjNDM7XHRcdFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqcmV0cnEsIGJvb2wgKnZhbGlkKVxuIHtcbiBcdHN0cnVjdCBza19idWZmX2hlYWQgKmlucHV0cSA9IFx1MDAyNnRpcGNfYmNfYmFzZShuZXQpLVx1MDAzZWlucHV0cTtcbiBcdHN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqZ2E7XG4gXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHhtaXRxO1xuJiM0MztcdHUxNiBnbGVuO1xuIFx0aW50IHJjID0gMDtcbiBcbiBcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZ4bWl0cSk7XG5AQCAtNTEwLDEzICYjNDM7NTExLDE4IEBAIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdGlmIChtc2dfdHlwZShoZHIpICE9IFNUQVRFX01TRykge1xuIFx0XHR0aXBjX2xpbmtfYmNfaW5pdF9yY3YobCwgaGRyKTtcbiBcdH0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7XG4tXHRcdHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XG4tXHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbi1cdFx0XHRyZXRycSA9IFx1MDAyNnhtaXRxO1xuLVx0XHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcbi1cdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbi1cdFx0XHRcdFx0ICByZXRycSk7XG4tXHRcdHJjIHw9IHRpcGNfbGlua19iY19zeW5jX3JjdihsLCBoZHIsIFx1MDAyNnhtaXRxKTtcbiYjNDM7XHRcdGdsZW4gPSB0aXBjX2dldF9nYXBfYWNrX2Jsa3MoXHUwMDI2Z2EsIGwsIGhkciwgZmFsc2UpO1xuJiM0MztcdFx0aWYgKGdsZW4gXHUwMDNlIG1zZ19kYXRhX3N6KGhkcikpIHtcbiYjNDM7XHRcdFx0LyogTWFsZm9ybWVkIEdhcCBBQ0sgYmxvY2tzOyBjYWxsZXIgZHJvcHMgdGhlIG1zZyAqL1xuJiM0MztcdFx0XHQqdmFsaWQgPSBmYWxzZTtcbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbiYjNDM7XHRcdFx0XHRyZXRycSA9IFx1MDAyNnhtaXRxO1xuJiM0MztcdFx0XHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcbiYjNDM7XHRcdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbiYjNDM7XHRcdFx0XHRcdFx0ICByZXRycSk7XG4mIzQzO1x0XHRcdHJjIHw9IHRpcGNfbGlua19iY19zeW5jX3JjdihsLCBoZHIsIFx1MDAyNnhtaXRxKTtcbiYjNDM7XHRcdH1cbiBcdH1cbiBcdHRpcGNfYmNhc3RfdW5sb2NrKG5ldCk7XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuaCBiL25ldC90aXBjL2JjYXN0LmhcbmluZGV4IDJkOTM1MmRjN2IwZTZlLi41NWQxN2I1NDEzZTE2YiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2JjYXN0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2JjYXN0LmhcbkBAIC05Nyw3ICYjNDM7OTcsNyBAQCB2b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG4gXHRcdFx0c3RydWN0IHRpcGNfbXNnICpoZHIpO1xuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSk7XG4mIzQzO1x0XHRcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxLCBib29sICp2YWxpZCk7XG4gaW50IHRpcGNfbmxfYWRkX2JjX2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19ubF9tc2cgKm1zZyxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19saW5rICpiY2wpO1xuIGludCB0aXBjX25sX2JjX2xpbmtfc2V0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqYXR0cnNbXSk7XG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXG5pbmRleCA5N2FhOTcwYTBkODNjYS4uMjg4N2Y5NGVlMjhmYWEgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9ub2RlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuY1xuQEAgLTE4MzEsMTIgJiM0MzsxODMxLDEzIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9tY2FzdF9yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbilcbiB9XG4gXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX2JjX3N5bmNfcmN2KHN0cnVjdCB0aXBjX25vZGUgKm4sIHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLVx0XHRcdFx0ICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSlcbiYjNDM7XHRcdFx0XHQgIGludCBiZWFyZXJfaWQsIHN0cnVjdCBza19idWZmX2hlYWQgKnhtaXRxLFxuJiM0MztcdFx0XHRcdCAgYm9vbCAqdmFsaWQpXG4ge1xuIFx0c3RydWN0IHRpcGNfbGluayAqdWNsO1xuIFx0aW50IHJjO1xuIFxuLVx0cmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tXHUwMDNlbmV0LCBuLVx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEpO1xuJiM0MztcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVx1MDAzZW5ldCwgbi1cdTAwM2ViY19lbnRyeS5saW5rLCBoZHIsIHhtaXRxLCB2YWxpZCk7XG4gXG4gXHRpZiAocmMgXHUwMDI2IFRJUENfTElOS19ET1dOX0VWVCkge1xuIFx0XHR0aXBjX25vZGVfcmVzZXRfbGlua3Mobik7XG5AQCAtMjE0MCwxMiAmIzQzOzIxNDEsMTggQEAgdm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcbiBcbiBcdC8qIEVuc3VyZSBicm9hZGNhc3QgcmVjZXB0aW9uIGlzIGluIHN5bmNoIHdpdGggcGVlciYjMzk7cyBzZW5kIHN0YXRlICovXG4gXHRpZiAodW5saWtlbHkodXNyID09IExJTktfUFJPVE9DT0wpKSB7XG4mIzQzO1x0XHRib29sIHZhbGlkID0gdHJ1ZTtcbiYjNDM7XG4gXHRcdGlmICh1bmxpa2VseShza2JfbGluZWFyaXplKHNrYikpKSB7XG4gXHRcdFx0dGlwY19ub2RlX3B1dChuKTtcbiBcdFx0XHRnb3RvIGRpc2NhcmQ7XG4gXHRcdH1cbiBcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuLVx0XHR0aXBjX25vZGVfYmNfc3luY19yY3YobiwgaGRyLCBiZWFyZXJfaWQsIFx1MDAyNnhtaXRxKTtcbiYjNDM7XHRcdHRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgXHUwMDI2eG1pdHEsIFx1MDAyNnZhbGlkKTtcbiYjNDM7XHRcdGlmICghdmFsaWQpIHtcbiYjNDM7XHRcdFx0dGlwY19ub2RlX3B1dChuKTtcbiYjNDM7XHRcdFx0Z290byBkaXNjYXJkO1xuJiM0MztcdFx0fVxuIFx0fSBlbHNlIGlmICh1bmxpa2VseSh0aXBjX2xpbmtfYWNrZWQobi1cdTAwM2ViY19lbnRyeS5saW5rKSAhPSBiY19hY2spKSB7XG4gXHRcdHRpcGNfYmNhc3RfYWNrX3JjdihuZXQsIG4tXHUwMDNlYmNfZW50cnkubGluaywgaGRyKTtcbiBcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDssCiAgICAmIzM0O1RJUENfTUVESUFfVURQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19iY2FzdF9zeW5jX3JjdiYjMzQ7LAogICAgJiMzNDt0aXBjX25vZGVfYmNfc3luY19yY3YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGZvciBHYXAgQUNLIGJsb2NrcyBpbiBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUgdG8gcHJldmVudCBwcm9jZXNzaW5nIG9mIG1hbGZvcm1lZCBtZXNzYWdlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHByb3RvY29sIGhhbmRsaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIHZhbGlkYXRpb24gY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2MDBiZjdhYTU4NzY2YzhiNzVjMmE4N2JjYjQ1ODdiN2M4NjEwOWI5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdW4gMjQgMTQ6MTY6MDMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9iY2FzdC5jIGIvbmV0L3RpcGMvYmNhc3QuYwppbmRleCA3NmExNTg1ZDNmNmI2ZC4uMDg2MzdjM2M5ZGIwZmIgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL2JjYXN0LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvYmNhc3QuYwpAQCAtNDk3LDExICYjNDM7NDk3LDEyIEBAIHZvaWQgdGlwY19iY2FzdF9hY2tfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCwKICAqLwogaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLAogCQkJc3RydWN0IHRpcGNfbXNnICpoZHIsCi0JCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSkKJiM0MzsJCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpCiB7CiAJc3RydWN0IHNrX2J1ZmZfaGVhZCAqaW5wdXRxID0gJmFtcDt0aXBjX2JjX2Jhc2UobmV0KS0mZ3Q7aW5wdXRxOwogCXN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqZ2E7CiAJc3RydWN0IHNrX2J1ZmZfaGVhZCB4bWl0cTsKJiM0MzsJdTE2IGdsZW47CiAJaW50IHJjID0gMDsKIAogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmYW1wO3htaXRxKTsKQEAgLTUxMCwxMyAmIzQzOzUxMSwxOCBAQCBpbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsCiAJaWYgKG1zZ190eXBlKGhkcikgIT0gU1RBVEVfTVNHKSB7CiAJCXRpcGNfbGlua19iY19pbml0X3JjdihsLCBoZHIpOwogCX0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7Ci0JCXRpcGNfZ2V0X2dhcF9hY2tfYmxrcygmYW1wO2dhLCBsLCBoZHIsIGZhbHNlKTsKLQkJaWYgKCFzeXNjdGxfdGlwY19iY19yZXRydW5pKQotCQkJcmV0cnEgPSAmYW1wO3htaXRxOwotCQlyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSwKLQkJCQkJICBtc2dfYmNfZ2FwKGhkciksIGdhLCAmYW1wO3htaXRxLAotCQkJCQkgIHJldHJxKTsKLQkJcmMgfD0gdGlwY19saW5rX2JjX3N5bmNfcmN2KGwsIGhkciwgJmFtcDt4bWl0cSk7CiYjNDM7CQlnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKCZhbXA7Z2EsIGwsIGhkciwgZmFsc2UpOwomIzQzOwkJaWYgKGdsZW4gJmd0OyBtc2dfZGF0YV9zeihoZHIpKSB7CiYjNDM7CQkJLyogTWFsZm9ybWVkIEdhcCBBQ0sgYmxvY2tzOyBjYWxsZXIgZHJvcHMgdGhlIG1zZyAqLwomIzQzOwkJCSp2YWxpZCA9IGZhbHNlOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQlpZiAoIXN5c2N0bF90aXBjX2JjX3JldHJ1bmkpCiYjNDM7CQkJCXJldHJxID0gJmFtcDt4bWl0cTsKJiM0MzsJCQlyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSwKJiM0MzsJCQkJCQkgIG1zZ19iY19nYXAoaGRyKSwgZ2EsICZhbXA7eG1pdHEsCiYjNDM7CQkJCQkJICByZXRycSk7CiYjNDM7CQkJcmMgfD0gdGlwY19saW5rX2JjX3N5bmNfcmN2KGwsIGhkciwgJmFtcDt4bWl0cSk7CiYjNDM7CQl9CiAJfQogCXRpcGNfYmNhc3RfdW5sb2NrKG5ldCk7CiAKZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmggYi9uZXQvdGlwYy9iY2FzdC5oCmluZGV4IDJkOTM1MmRjN2IwZTZlLi41NWQxN2I1NDEzZTE2YiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvYmNhc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9iY2FzdC5oCkBAIC05Nyw3ICYjNDM7OTcsNyBAQCB2b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsCiAJCQlzdHJ1Y3QgdGlwY19tc2cgKmhkcik7CiBpbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsCiAJCQlzdHJ1Y3QgdGlwY19tc2cgKmhkciwKLQkJCXN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxKTsKJiM0MzsJCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpOwogaW50IHRpcGNfbmxfYWRkX2JjX2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19ubF9tc2cgKm1zZywKIAkJCXN0cnVjdCB0aXBjX2xpbmsgKmJjbCk7CiBpbnQgdGlwY19ubF9iY19saW5rX3NldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKmF0dHJzW10pOwpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jCmluZGV4IDk3YWE5NzBhMGQ4M2NhLi4yODg3Zjk0ZWUyOGZhYSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbm9kZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuYwpAQCAtMTgzMSwxMiAmIzQzOzE4MzEsMTMgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX21jYXN0X3JjdihzdHJ1Y3QgdGlwY19ub2RlICpuKQogfQogCiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfYmNfc3luY19yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbiwgc3RydWN0IHRpcGNfbXNnICpoZHIsCi0JCQkJICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSkKJiM0MzsJCQkJICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSwKJiM0MzsJCQkJICBib29sICp2YWxpZCkKIHsKIAlzdHJ1Y3QgdGlwY19saW5rICp1Y2w7CiAJaW50IHJjOwogCi0JcmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tJmd0O25ldCwgbi0mZ3Q7YmNfZW50cnkubGluaywgaGRyLCB4bWl0cSk7CiYjNDM7CXJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLSZndDtuZXQsIG4tJmd0O2JjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTsKIAogCWlmIChyYyAmYW1wOyBUSVBDX0xJTktfRE9XTl9FVlQpIHsKIAkJdGlwY19ub2RlX3Jlc2V0X2xpbmtzKG4pOwpAQCAtMjE0MCwxMiAmIzQzOzIxNDEsMTggQEAgdm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYikKIAogCS8qIEVuc3VyZSBicm9hZGNhc3QgcmVjZXB0aW9uIGlzIGluIHN5bmNoIHdpdGggcGVlciYjMzk7cyBzZW5kIHN0YXRlICovCiAJaWYgKHVubGlrZWx5KHVzciA9PSBMSU5LX1BST1RPQ09MKSkgewomIzQzOwkJYm9vbCB2YWxpZCA9IHRydWU7CiYjNDM7CiAJCWlmICh1bmxpa2VseShza2JfbGluZWFyaXplKHNrYikpKSB7CiAJCQl0aXBjX25vZGVfcHV0KG4pOwogCQkJZ290byBkaXNjYXJkOwogCQl9CiAJCWhkciA9IGJ1Zl9tc2coc2tiKTsKLQkJdGlwY19ub2RlX2JjX3N5bmNfcmN2KG4sIGhkciwgYmVhcmVyX2lkLCAmYW1wO3htaXRxKTsKJiM0MzsJCXRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgJmFtcDt4bWl0cSwgJmFtcDt2YWxpZCk7CiYjNDM7CQlpZiAoIXZhbGlkKSB7CiYjNDM7CQkJdGlwY19ub2RlX3B1dChuKTsKJiM0MzsJCQlnb3RvIGRpc2NhcmQ7CiYjNDM7CQl9CiAJfSBlbHNlIGlmICh1bmxpa2VseSh0aXBjX2xpbmtfYWNrZWQobi0mZ3Q7YmNfZW50cnkubGluaykgIT0gYmNfYWNrKSkgewogCQl0aXBjX2JjYXN0X2Fja19yY3YobmV0LCBuLSZndDtiY19lbnRyeS5saW5rLCBoZHIpOwogCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI0MQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDIyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUSVBDIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBUSVBDLCBhbmQgaXQgbG9va3MgbGlrZSBhIHRhcmdldGVkIGZpeCByZWxhdGVkIHRvIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24uIFRoZXkmIzM5O3ZlIHVwZGF0ZWQgYG5ldC90aXBjL2JjYXN0LmNgLCBgbmV0L3RpcGMvYmNhc3QuaGAsIGFuZCBgbmV0L3RpcGMvbm9kZS5jYC4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgaW4gYHRpcGNfYmNhc3Rfc3luY19yY3ZgLiBUaGV5JiMzOTt2ZSBhZGRlZCBhIGBib29sICp2YWxpZGAgYXJndW1lbnQsIGFuZCBub3cgdGhleSYjMzk7cmUgdmFsaWRhdGluZyB0aGUgR2FwIEFDSyBibG9ja3MuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgdGhleSYjMzk7cmUgY2hlY2tpbmcgaWYgdGhlIHJlY2VpdmVkIGRhdGEgc2l6ZSAoYGdsZW5gKSBpcyBsYXJnZXIgdGhhbiB3aGF0JiMzOTtzIGV4cGVjdGVkIChgbXNnX2RhdGFfc3ooaGRyKWApLiBJZiB0aGVyZSYjMzk7cyBhbiBpc3N1ZSB3aXRoIHRoZSBzaXplLCBgdmFsaWRgIGdldHMgc2V0IHRvIGBmYWxzZWAsIGFuZCB0aGUgcHJvY2Vzc2luZyBpcyBza2lwcGVkLiBUaGlzIGB2YWxpZGAgZmxhZyBpcyB0aGVuIHByb3BhZ2F0ZWQgdXAgdGhyb3VnaCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBhbmQgZXZlbnR1YWxseSBjaGVja2VkIGluIGB0aXBjX3JjdmAsIHdoaWNoIGRpc2NhcmRzIHRoZSBgc2tiYCBpZiBpdCYjMzk7cyBpbnZhbGlkLgoKRXNzZW50aWFsbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGVuaGFuY2VtZW50IOKAkyBhZGRpbmcgc29tZSB2YWxpZGF0aW9uIHRvIHRoZSBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHByb2Nlc3MgaW4gVElQQy4gSSYjMzk7bSBhc3N1bWluZyB0aGlzIGlzIHRvIHByZXZlbnQgYnVmZmVyIG92ZXJmbG93cyBvciBvdGhlciByZWxhdGVkIGlzc3VlcyBpbiB0aGUgcmVjZWl2ZSBwcm9jZXNzLiBJdCYjMzk7cyBhIHNtYXJ0IGFkZGl0aW9uIGFuZCB2ZXJ5IGxpa2VseSB0byBiZSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nLiBJIGNhbiBkZWZpbml0ZWx5IHNlZSBob3cgbWFsZm9ybWVkIEdhcCBBQ0tzIGNvdWxkIGJlIGV4cGxvaXRlZCBpZiB0aGV5IHdlcmVuJiMzOTt0IHZhbGlkYXRlZC4KCk5vdywgbGV0JiMzOTtzIHRyYWNrIGRvd24gdGhlIFRJUEMgY29uZmlndXJhdGlvbi4gSSBiZXQgYENPTkZJR19USVBDYCBpcyB0aGUgcHJpbWFyeSBvbmUsIGJ1dCBJIHNob3VsZCBwcm9iYWJseSB0YWtlIGEgbG9vayBhdCBgbmV0L3RpcGMvS2NvbmZpZ2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzIG9yIGFueSBvdGhlciBtb2R1bGVzIEkgc2hvdWxkIGNvbnNpZGVyIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFRJUEMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL0tjb25maWctNS1cbm5ldC90aXBjL0tjb25maWc6NjptZW51Y29uZmlnIFRJUENcbm5ldC90aXBjL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1RoZSBUSVBDIFByb3RvY29sXCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yMy1cbm5ldC90aXBjL0tjb25maWc6MjQ6Y29uZmlnIFRJUENfTUVESUFfSUJcbm5ldC90aXBjL0tjb25maWctMjUtXHRib29sIFwmIzM0O0luZmluaUJhbmQgbWVkaWEgdHlwZSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yOS1cdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXG5uZXQvdGlwYy9LY29uZmlnOjMwOmNvbmZpZyBUSVBDX01FRElBX1VEUFxubmV0L3RpcGMvS2NvbmZpZy0zMS1cdGJvb2wgXCYjMzQ7SVAvVURQIG1lZGlhIHR5cGUgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMzctXG5uZXQvdGlwYy9LY29uZmlnOjM4OmNvbmZpZyBUSVBDX0NSWVBUT1xubmV0L3RpcGMvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7VElQQyBlbmNyeXB0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTUyLVxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXG5uZXQvdGlwYy9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7VElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE0NAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBUSVBDIFZ1bG5lcmFiaWxpdGllcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgVElQQywgc3BlY2lmaWNhbGx5IGl0cyBjb25maWd1cmF0aW9uLiBUaGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gaXMgYFRJUENgLCBvYnZpb3VzbHkuIEkgc2VlIHdlIGNhbiBhbHNvIGVuYWJsZSBgVElQQ19NRURJQV9VRFBgIHdoaWNoIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhhdCBtZWFucyB3ZSBjYW4gb3BlbiBpdCB1cCBmb3IgZnV6emluZyBvdmVyIFVEUC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgZmlndXJlIG91dCB3aGVyZSB0aGUgYmVzdCBwbGFjZXMgdG8gZm9jdXMgb3VyIGVmZm9ydHMgYXJlLgoKSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zLiBJbW1lZGlhdGVseSwgYHRpcGNfYmNhc3Rfc3luY19yY3ZgLCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCwgYW5kIG1vc3QgaW1wb3J0YW50bHksIGB0aXBjX3JjdmAsIGp1bXAgb3V0IGF0IG1lLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0sIGJ1dCBgdGlwY19yY3ZgIHNlZW1zIGxpa2UgdGhlIGNlbnRyYWwgcmVjZWl2ZSBmdW5jdGlvbiBmb3IgVElQQywgc28gaXQmIzM5O3MgbGlrZWx5IGEgaG90LXBhdGggZnVuY3Rpb24gYW5kIHRoZSBtb3N0IGltcG9ydGFudC4KCmB0aXBjX2JjYXN0X3N5bmNfcmN2YCBoYW5kbGVzIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVzc2FnZXMsIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBsb29rcyBsaWtlIGEgc3RhdGljIGZ1bmN0aW9uIHJlc2lkaW5nIGluIGBuZXQvdGlwYy9ub2RlLmNgLiBOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgYm90aCBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIHRob3JvdWdobHkuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhvc2UgYW5kIHNlZSB3aGVyZSB0aGV5IGxlYWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTQ6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGlwY19iY2FzdF9zeW5jX3JjdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC90aXBjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGlwYy9iY2FzdC5jPTQ3MD12b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG4tLVxubmV0L3RpcGMvYmNhc3QuYy00OTctICovXG5uZXQvdGlwYy9iY2FzdC5jOjQ5ODppbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG5uZXQvdGlwYy9iY2FzdC5jLTQ5OS1cdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi0tXG5uZXQvdGlwYy9iY2FzdC5oPTk2PXZvaWQgdGlwY19iY2FzdF9hY2tfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbm5ldC90aXBjL2JjYXN0LmgtOTctXHRcdFx0c3RydWN0IHRpcGNfbXNnICpoZHIpO1xubmV0L3RpcGMvYmNhc3QuaDo5ODppbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG5uZXQvdGlwYy9iY2FzdC5oLTk5LVx0XHRcdHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLS1cbm5ldC90aXBjL25vZGUuYz0xODMzPXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9iY19zeW5jX3JjdihzdHJ1Y3QgdGlwY19ub2RlICpuLCBzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi0tXG5uZXQvdGlwYy9ub2RlLmMtMTgzOS1cbm5ldC90aXBjL25vZGUuYzoxODQwOlx0cmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tXHUwMDNlbmV0LCBuLVx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTtcbm5ldC90aXBjL25vZGUuYy0xODQxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDE0OjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMzQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdW5kZXJzdGFuZGluZywgY29uc2lkZXJpbmcgSSYjMzk7bSB0cnlpbmcgdG8gcGlucG9pbnQgdGhlIGtleSBhcmVhcyBmb3IgYW5hbHlzaXM6CgoqKkZvY3VzaW5nIG9uIFRJUEMgQnJvYWRjYXN0IFN5bmNocm9uaXphdGlvbioqCgpSaWdodCwgc28gSSYjMzk7bSBob25pbmcgaW4gb24gdGhlIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcyB3aXRoaW4gdGhlIFRJUEMgKFRyYW5zcGFyZW50IEludGVyLVByb2Nlc3MgQ29tbXVuaWNhdGlvbikgc3lzdGVtLiBJJiMzOTt2ZSBpZGVudGlmaWVkIGB0aXBjX2JjYXN0X3N5bmNfcmN2YCBhcyBhIHN0cm9uZyBjYW5kaWRhdGUgZm9yIGNsb3NlciBpbnNwZWN0aW9uLCBhbmQgYHRpcGNfbm9kZV9iY19zeW5jX3JjdmAgc2VlbXMgZXF1YWxseSBwcm9taXNpbmcuIEl0IGxvb2tzIGxpa2UgYHRpcGNfcmN2YCBpcyB0aGUgY2VudHJhbCByZWNlaXZpbmcgZnVuY3Rpb24sIHdoaWNoIGNvdWxkIGJlIGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjayDigJMgaXQmIzM5O3MgbGlrZWx5IGEgaG90IHNwb3QuIEhvd2V2ZXIsIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIGlzIGludm9rZWQgZnJvbSB3aXRoaW4gYHRpcGNfcmN2YCBzcGVjaWZpY2FsbHkgd2hlbiB0aGUgYHVzcmAgcGFyYW1ldGVyIGluZGljYXRlcyBhIGBMSU5LX1BST1RPQ09MYCBjb250ZXh0LCBzdWdnZXN0aW5nIGl0IGhhbmRsZXMgbm9kZS1sZXZlbCBicm9hZGNhc3Qgc3luY2hyb25pemF0aW9uLgoKTm93LCBhIHJlbGF0ZWQgYXJlYSB0aGF0IHNwcmluZ3MgdG8gbWluZCBpcyBob3cgVElQQyBkZWFscyB3aXRoIGFja25vd2xlZGdlbWVudHMgYW5kIGdhcHMgaW4gcmVjZWl2ZWQgZGF0YS4gSSBzaG91bGQgaW52ZXN0aWdhdGUgYHRpcGNfZ2V0X2dhcF9hY2tfYmxrc2AgdG8gc2VlIGlmIGl0IHBsYXlzIGEgc2lnbmlmaWNhbnQgcm9sZSBpbiB0aGUgYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbiBwcm9jZXNzLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gdGhlIGhhbmRsaW5nIG9mIGxvc3Qgb3IgZnJhZ21lbnRlZCBicm9hZGNhc3QgcGFja2V0cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgaXTigJlzIGludm9sdmVkIGluIHRoZSBzeW5jaHJvbml6YXRpb24gc3RyYXRlZ3ksIG9yIG9ubHkgY29uY2VybnMgZGF0YSByZWxpYWJpbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0aXBjX2dldF9nYXBfYWNrX2Jsa3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3RpcGMvYmNhc3QuYz00OTg9aW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuLS1cbm5ldC90aXBjL2JjYXN0LmMtNTEzLVx0fSBlbHNlIGlmICghbXNnX2JjX2Fja19pbnZhbGlkKGhkcikpIHtcbm5ldC90aXBjL2JjYXN0LmM6NTE0Olx0XHRnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKFx1MDAyNmdhLCBsLCBoZHIsIGZhbHNlKTtcbm5ldC90aXBjL2JjYXN0LmMtNTE1LVx0XHRpZiAoZ2xlbiBcdTAwM2UgbXNnX2RhdGFfc3ooaGRyKSkge1xuLS1cbm5ldC90aXBjL2xpbmsuYz0xMzQwPXN0YXRpYyBpbnQgdGlwY19saW5rX3RubF9yY3Yoc3RydWN0IHRpcGNfbGluayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvdGlwYy9saW5rLmMtMTQwNS0vKipcbm5ldC90aXBjL2xpbmsuYzoxNDA2OiAqIHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyAtIGdldCBHYXAgQUNLIGJsb2NrcyBmcm9tIFBST1RPQ09ML1NUQVRFX01TR1xubmV0L3RpcGMvbGluay5jLTE0MDctICogQGdhOiByZXR1cm5lZCBwb2ludGVyIHRvIHRoZSBHYXAgQUNLIGJsb2NrcyBpZiBhbnlcbi0tXG5uZXQvdGlwYy9saW5rLmMtMTQxMy0gKi9cbm5ldC90aXBjL2xpbmsuYzoxNDE0OnUxNiB0aXBjX2dldF9nYXBfYWNrX2Jsa3Moc3RydWN0IHRpcGNfZ2FwX2Fja19ibGtzICoqZ2EsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXG5uZXQvdGlwYy9saW5rLmMtMTQxNS1cdFx0XHQgIHN0cnVjdCB0aXBjX21zZyAqaGRyLCBib29sIHVjKVxuLS1cbm5ldC90aXBjL2xpbmsuYz0yMTc0PXN0YXRpYyBpbnQgdGlwY19saW5rX3Byb3RvX3JjdihzdHJ1Y3QgdGlwY19saW5rICpsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC90aXBjL2xpbmsuYy0yMjcxLVx0XHQvKiBWYWxpZGF0ZSBHYXAgQUNLIGJsb2NrcywgZHJvcCBpZiBpbnZhbGlkICovXG5uZXQvdGlwYy9saW5rLmM6MjI3MjpcdFx0Z2xlbiA9IHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCB0cnVlKTtcbm5ldC90aXBjL2xpbmsuYy0yMjczLVx0XHRpZiAoZ2xlbiBcdTAwM2UgZGxlbilcbi0tXG5uZXQvdGlwYy9saW5rLmg9MTQ0PWludCB0aXBjX2xpbmtfbXNzKHN0cnVjdCB0aXBjX2xpbmsgKmwpO1xubmV0L3RpcGMvbGluay5oOjE0NTp1MTYgdGlwY19nZXRfZ2FwX2Fja19ibGtzKHN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqKmdhLCBzdHJ1Y3QgdGlwY19saW5rICpsLFxubmV0L3RpcGMvbGluay5oLTE0Ni1cdFx0XHQgIHN0cnVjdCB0aXBjX21zZyAqaGRyLCBib29sIHVjKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MDcwCgkJCQkJCQlvdXRwdXQ6IDEyMQoJCQkJCQkJdGhvdWdodHM6IDE3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVElQQyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgbmV3IHZhbGlkYXRpb24gY2hlY2ssIHNwZWNpZmljYWxseSBgZ2xlbiAmZ3Q7IG1zZ19kYXRhX3N6KGhkcilgLCBhbmQgaXQmIzM5O3MgYmVpbmcgaW5zZXJ0ZWQgYWZ0ZXIgYSBjYWxsIHRvIGB0aXBjX2dldF9nYXBfYWNrX2Jsa3NgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBhbmQgaW1tZWRpYXRlbHkgcG9pbnRzIG1lIHRvIHRoZSBjb3JlIGxvZ2ljIG9mIGB0aXBjX2JjYXN0X3N5bmNfcmN2YCBhbmQgYHRpcGNfbm9kZV9iY19zeW5jX3JjdmAuIFRob3NlIGFyZSBkZWZpbml0ZWx5IHRoZSBmdW5jdGlvbnMgSSBuZWVkIHRvIHNjcnV0aW5pemUuIFRoZXkgYXJlIHRoZSBjbGVhciBmb2N1cyBzeW1ib2xzIGhlcmUuIEkmIzM5O20gdGhpbmtpbmcgdGhleSBhcmUgdGhlIGJlc3QgcG9pbnRzIHRvIGJlZ2luIHRoZSBhbmFseXNpcy4KCk5vdywgbGV0IG1lIHB1dCB0b2dldGhlciBhIGNvbmNpc2Ugc3VtbWFyeSBvZiBteSBmaW5kaW5ncy4gVGhpcyBpcyBjbGVhcmx5IGEgc2l0dWF0aW9uIHdoZXJlIGZ1enppbmcgaXMgd2FycmFudGVkIOKAkyAqKldvcnRoRnV6emluZzogdHJ1ZSoqLiBNeSBhbmFseXNpcyBpbmRpY2F0ZXMgdGhlIGJlc3QgZnV6emluZyB0YXJnZXQgc3ltYm9scyBhcmUgYHRpcGNfYmNhc3Rfc3luY19yY3ZgIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCDigJMgKipGb2N1c1N5bWJvbHM6IHRpcGNfYmNhc3Rfc3luY19yY3YsIHRpcGNfbm9kZV9iY19zeW5jX3JjdioqLiBJJiMzOTtkIGFsc28gZXhwZWN0IHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlndXJhdGlvbnMgd2lsbCBpbmNsdWRlIGBUSVBDYCBhbmQgbGlrZWx5IGBUSVBDX01FRElBX1VEUGAgLSAqKkVuYWJsZUNvbmZpZ3M6IFRJUEMsIFRJUENfTUVESUFfVURQKiouCgpNeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGlzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaW1wcm92aW5nIHRoZSByb2J1c3RuZXNzIG9mIHRoZSBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUuIFRoZSBuZXcgdmFsaWRhdGlvbiBpcyBkaXJlY3RseSBhaW1lZCBhdCBwcmV2ZW50aW5nIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIHRoZSBwcm9jZXNzaW5nIG9mIG1hbGljaW91c2x5IGNyYWZ0ZWQgb3IgbWFsZm9ybWVkIG1lc3NhZ2VzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBHYXAgQUNLIGJsb2Nrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRpcmVjdCBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBuZXR3b3JrIHByb3RvY29sIGlzIGhhbmRsZWQuIFRoZXJlZm9yZSwgZnV6emluZyB0aGUgbG9naWMgaW1wYWN0ZWQgYnkgdGhpcyBjaGVjaywgZXNwZWNpYWxseSB0aGUgdHdvIGZ1bmN0aW9ucyBpZGVudGlmaWVkLCBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGZvciBzZWN1cml0eSBhbmQgc3RhYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxNDoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VElQQyYjMzQ7LAogICAgJiMzNDtUSVBDX01FRElBX1VEUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3RpcGNfYmNhc3Rfc3luY19yY3YmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2JjX3N5bmNfcmN2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VElQQyYjMzQ7LAogICAgJiMzNDtUSVBDX01FRElBX1VEUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3RpcGNfYmNhc3Rfc3luY19yY3YmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2JjX3N5bmNfcmN2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE0OjE2OjA1LjE5MDE0MzE1NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MzExMjY3NDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIixcbiAgICBcIlRJUENfTUVESUFfVURQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19iY2FzdF9zeW5jX3JjdlwiLFxuICAgIFwidGlwY19ub2RlX2JjX3N5bmNfcmN2XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGZvciBHYXAgQUNLIGJsb2NrcyBpbiBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUgdG8gcHJldmVudCBwcm9jZXNzaW5nIG9mIG1hbGZvcm1lZCBtZXNzYWdlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHByb3RvY29sIGhhbmRsaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIHZhbGlkYXRpb24gY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjowNS4xOTAxNDgyNzRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MjIxNzIxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDYwMGJmN2FhNTg3NjZjOGI3NWMyYTg3YmNiNDU4N2I3Yzg2MTA5YjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdW4gMjQgMTQ6MTY6MDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuYyBiL25ldC90aXBjL2JjYXN0LmNcXG5pbmRleCA3NmExNTg1ZDNmNmI2ZC4uMDg2MzdjM2M5ZGIwZmIgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvYmNhc3QuY1xcbisrKyBiL25ldC90aXBjL2JjYXN0LmNcXG5AQCAtNDk3LDExICs0OTcsMTIgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiAgKi9cXG4gaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiBcXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcXG4tXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqcmV0cnEpXFxuK1xcdFxcdFxcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxLCBib29sICp2YWxpZClcXG4ge1xcbiBcXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICppbnB1dHEgPSBcXHUwMDI2dGlwY19iY19iYXNlKG5ldCktXFx1MDAzZWlucHV0cTtcXG4gXFx0c3RydWN0IHRpcGNfZ2FwX2Fja19ibGtzICpnYTtcXG4gXFx0c3RydWN0IHNrX2J1ZmZfaGVhZCB4bWl0cTtcXG4rXFx0dTE2IGdsZW47XFxuIFxcdGludCByYyA9IDA7XFxuIFxcbiBcXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNnhtaXRxKTtcXG5AQCAtNTEwLDEzICs1MTEsMTggQEAgaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiBcXHRpZiAobXNnX3R5cGUoaGRyKSAhPSBTVEFURV9NU0cpIHtcXG4gXFx0XFx0dGlwY19saW5rX2JjX2luaXRfcmN2KGwsIGhkcik7XFxuIFxcdH0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7XFxuLVxcdFxcdHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcXHUwMDI2Z2EsIGwsIGhkciwgZmFsc2UpO1xcbi1cXHRcXHRpZiAoIXN5c2N0bF90aXBjX2JjX3JldHJ1bmkpXFxuLVxcdFxcdFxcdHJldHJxID0gXFx1MDAyNnhtaXRxO1xcbi1cXHRcXHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcXG4tXFx0XFx0XFx0XFx0XFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcXHUwMDI2eG1pdHEsXFxuLVxcdFxcdFxcdFxcdFxcdCAgcmV0cnEpO1xcbi1cXHRcXHRyYyB8PSB0aXBjX2xpbmtfYmNfc3luY19yY3YobCwgaGRyLCBcXHUwMDI2eG1pdHEpO1xcbitcXHRcXHRnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKFxcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XFxuK1xcdFxcdGlmIChnbGVuIFxcdTAwM2UgbXNnX2RhdGFfc3ooaGRyKSkge1xcbitcXHRcXHRcXHQvKiBNYWxmb3JtZWQgR2FwIEFDSyBibG9ja3M7IGNhbGxlciBkcm9wcyB0aGUgbXNnICovXFxuK1xcdFxcdFxcdCp2YWxpZCA9IGZhbHNlO1xcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHRpZiAoIXN5c2N0bF90aXBjX2JjX3JldHJ1bmkpXFxuK1xcdFxcdFxcdFxcdHJldHJxID0gXFx1MDAyNnhtaXRxO1xcbitcXHRcXHRcXHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcXHUwMDI2eG1pdHEsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgcmV0cnEpO1xcbitcXHRcXHRcXHRyYyB8PSB0aXBjX2xpbmtfYmNfc3luY19yY3YobCwgaGRyLCBcXHUwMDI2eG1pdHEpO1xcbitcXHRcXHR9XFxuIFxcdH1cXG4gXFx0dGlwY19iY2FzdF91bmxvY2sobmV0KTtcXG4gXFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmggYi9uZXQvdGlwYy9iY2FzdC5oXFxuaW5kZXggMmQ5MzUyZGM3YjBlNmUuLjU1ZDE3YjU0MTNlMTZiIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL2JjYXN0LmhcXG4rKysgYi9uZXQvdGlwYy9iY2FzdC5oXFxuQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbiBcXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcik7XFxuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcXG4gXFx0XFx0XFx0c3RydWN0IHRpcGNfbXNnICpoZHIsXFxuLVxcdFxcdFxcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxKTtcXG4rXFx0XFx0XFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqcmV0cnEsIGJvb2wgKnZhbGlkKTtcXG4gaW50IHRpcGNfbmxfYWRkX2JjX2xpbmsoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19ubF9tc2cgKm1zZyxcXG4gXFx0XFx0XFx0c3RydWN0IHRpcGNfbGluayAqYmNsKTtcXG4gaW50IHRpcGNfbmxfYmNfbGlua19zZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICphdHRyc1tdKTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXFxuaW5kZXggOTdhYTk3MGEwZDgzY2EuLjI4ODdmOTRlZTI4ZmFhIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25vZGUuY1xcbisrKyBiL25ldC90aXBjL25vZGUuY1xcbkBAIC0xODMxLDEyICsxODMxLDEzIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9tY2FzdF9yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbilcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX2JjX3N5bmNfcmN2KHN0cnVjdCB0aXBjX25vZGUgKm4sIHN0cnVjdCB0aXBjX21zZyAqaGRyLFxcbi1cXHRcXHRcXHRcXHQgIGludCBiZWFyZXJfaWQsIHN0cnVjdCBza19idWZmX2hlYWQgKnhtaXRxKVxcbitcXHRcXHRcXHRcXHQgIGludCBiZWFyZXJfaWQsIHN0cnVjdCBza19idWZmX2hlYWQgKnhtaXRxLFxcbitcXHRcXHRcXHRcXHQgIGJvb2wgKnZhbGlkKVxcbiB7XFxuIFxcdHN0cnVjdCB0aXBjX2xpbmsgKnVjbDtcXG4gXFx0aW50IHJjO1xcbiBcXG4tXFx0cmMgPSB0aXBjX2JjYXN0X3N5bmNfcmN2KG4tXFx1MDAzZW5ldCwgbi1cXHUwMDNlYmNfZW50cnkubGluaywgaGRyLCB4bWl0cSk7XFxuK1xcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVxcdTAwM2VuZXQsIG4tXFx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTtcXG4gXFxuIFxcdGlmIChyYyBcXHUwMDI2IFRJUENfTElOS19ET1dOX0VWVCkge1xcbiBcXHRcXHR0aXBjX25vZGVfcmVzZXRfbGlua3Mobik7XFxuQEAgLTIxNDAsMTIgKzIxNDEsMTggQEAgdm9pZCB0aXBjX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcXG4gXFxuIFxcdC8qIEVuc3VyZSBicm9hZGNhc3QgcmVjZXB0aW9uIGlzIGluIHN5bmNoIHdpdGggcGVlcidzIHNlbmQgc3RhdGUgKi9cXG4gXFx0aWYgKHVubGlrZWx5KHVzciA9PSBMSU5LX1BST1RPQ09MKSkge1xcbitcXHRcXHRib29sIHZhbGlkID0gdHJ1ZTtcXG4rXFxuIFxcdFxcdGlmICh1bmxpa2VseShza2JfbGluZWFyaXplKHNrYikpKSB7XFxuIFxcdFxcdFxcdHRpcGNfbm9kZV9wdXQobik7XFxuIFxcdFxcdFxcdGdvdG8gZGlzY2FyZDtcXG4gXFx0XFx0fVxcbiBcXHRcXHRoZHIgPSBidWZfbXNnKHNrYik7XFxuLVxcdFxcdHRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgXFx1MDAyNnhtaXRxKTtcXG4rXFx0XFx0dGlwY19ub2RlX2JjX3N5bmNfcmN2KG4sIGhkciwgYmVhcmVyX2lkLCBcXHUwMDI2eG1pdHEsIFxcdTAwMjZ2YWxpZCk7XFxuK1xcdFxcdGlmICghdmFsaWQpIHtcXG4rXFx0XFx0XFx0dGlwY19ub2RlX3B1dChuKTtcXG4rXFx0XFx0XFx0Z290byBkaXNjYXJkO1xcbitcXHRcXHR9XFxuIFxcdH0gZWxzZSBpZiAodW5saWtlbHkodGlwY19saW5rX2Fja2VkKG4tXFx1MDAzZWJjX2VudHJ5LmxpbmspICE9IGJjX2FjaykpIHtcXG4gXFx0XFx0dGlwY19iY2FzdF9hY2tfcmN2KG5ldCwgbi1cXHUwMDNlYmNfZW50cnkubGluaywgaGRyKTtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjowNS42MzMwNjk5MDNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0ODY4MzMxNzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIixcbiAgICBcIlRJUENfTUVESUFfVURQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19iY2FzdF9zeW5jX3JjdlwiLFxuICAgIFwidGlwY19ub2RlX2JjX3N5bmNfcmN2XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGZvciBHYXAgQUNLIGJsb2NrcyBpbiBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUgdG8gcHJldmVudCBwcm9jZXNzaW5nIG9mIG1hbGZvcm1lZCBtZXNzYWdlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHByb3RvY29sIGhhbmRsaW5nIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIHZhbGlkYXRpb24gY29ycmVjdGx5IGhhbmRsZXMgbWFsZm9ybWVkIHBhY2tldHMgd2l0aG91dCBjYXVzaW5nIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDYwMGJmN2FhNTg3NjZjOGI3NWMyYTg3YmNiNDU4N2I3Yzg2MTA5YjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxNDoxNjowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90aXBjL2JjYXN0LmMgYi9uZXQvdGlwYy9iY2FzdC5jXG5pbmRleCA3NmExNTg1ZDNmNmI2ZC4uMDg2MzdjM2M5ZGIwZmIgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9iY2FzdC5jXG4rKysgYi9uZXQvdGlwYy9iY2FzdC5jXG5AQCAtNDk3LDExICs0OTcsMTIgQEAgdm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuICAqL1xuIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcbi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSlcbitcdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpXG4ge1xuIFx0c3RydWN0IHNrX2J1ZmZfaGVhZCAqaW5wdXRxID0gXHUwMDI2dGlwY19iY19iYXNlKG5ldCktXHUwMDNlaW5wdXRxO1xuIFx0c3RydWN0IHRpcGNfZ2FwX2Fja19ibGtzICpnYTtcbiBcdHN0cnVjdCBza19idWZmX2hlYWQgeG1pdHE7XG4rXHR1MTYgZ2xlbjtcbiBcdGludCByYyA9IDA7XG4gXG4gXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2eG1pdHEpO1xuQEAgLTUxMCwxMyArNTExLDE4IEBAIGludCB0aXBjX2JjYXN0X3N5bmNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdGlmIChtc2dfdHlwZShoZHIpICE9IFNUQVRFX01TRykge1xuIFx0XHR0aXBjX2xpbmtfYmNfaW5pdF9yY3YobCwgaGRyKTtcbiBcdH0gZWxzZSBpZiAoIW1zZ19iY19hY2tfaW52YWxpZChoZHIpKSB7XG4tXHRcdHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XG4tXHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbi1cdFx0XHRyZXRycSA9IFx1MDAyNnhtaXRxO1xuLVx0XHRyYyA9IHRpcGNfbGlua19iY19hY2tfcmN2KGwsIG1zZ19iY2FzdF9hY2soaGRyKSxcbi1cdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbi1cdFx0XHRcdFx0ICByZXRycSk7XG4tXHRcdHJjIHw9IHRpcGNfbGlua19iY19zeW5jX3JjdihsLCBoZHIsIFx1MDAyNnhtaXRxKTtcbitcdFx0Z2xlbiA9IHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhcdTAwMjZnYSwgbCwgaGRyLCBmYWxzZSk7XG4rXHRcdGlmIChnbGVuIFx1MDAzZSBtc2dfZGF0YV9zeihoZHIpKSB7XG4rXHRcdFx0LyogTWFsZm9ybWVkIEdhcCBBQ0sgYmxvY2tzOyBjYWxsZXIgZHJvcHMgdGhlIG1zZyAqL1xuK1x0XHRcdCp2YWxpZCA9IGZhbHNlO1xuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdGlmICghc3lzY3RsX3RpcGNfYmNfcmV0cnVuaSlcbitcdFx0XHRcdHJldHJxID0gXHUwMDI2eG1pdHE7XG4rXHRcdFx0cmMgPSB0aXBjX2xpbmtfYmNfYWNrX3JjdihsLCBtc2dfYmNhc3RfYWNrKGhkciksXG4rXHRcdFx0XHRcdFx0ICBtc2dfYmNfZ2FwKGhkciksIGdhLCBcdTAwMjZ4bWl0cSxcbitcdFx0XHRcdFx0XHQgIHJldHJxKTtcbitcdFx0XHRyYyB8PSB0aXBjX2xpbmtfYmNfc3luY19yY3YobCwgaGRyLCBcdTAwMjZ4bWl0cSk7XG4rXHRcdH1cbiBcdH1cbiBcdHRpcGNfYmNhc3RfdW5sb2NrKG5ldCk7XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmNhc3QuaCBiL25ldC90aXBjL2JjYXN0LmhcbmluZGV4IDJkOTM1MmRjN2IwZTZlLi41NWQxN2I1NDEzZTE2YiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2JjYXN0LmhcbisrKyBiL25ldC90aXBjL2JjYXN0LmhcbkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgdGlwY19iY2FzdF9hY2tfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbGluayAqbCxcbiBcdFx0XHRzdHJ1Y3QgdGlwY19tc2cgKmhkcik7XG4gaW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxuIFx0XHRcdHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLVx0XHRcdHN0cnVjdCBza19idWZmX2hlYWQgKnJldHJxKTtcbitcdFx0XHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpyZXRycSwgYm9vbCAqdmFsaWQpO1xuIGludCB0aXBjX25sX2FkZF9iY19saW5rKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfbmxfbXNnICptc2csXG4gXHRcdFx0c3RydWN0IHRpcGNfbGluayAqYmNsKTtcbiBpbnQgdGlwY19ubF9iY19saW5rX3NldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKmF0dHJzW10pO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLjI4ODdmOTRlZTI4ZmFhIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xODMxLDEyICsxODMxLDEzIEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9tY2FzdF9yY3Yoc3RydWN0IHRpcGNfbm9kZSAqbilcbiB9XG4gXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX2JjX3N5bmNfcmN2KHN0cnVjdCB0aXBjX25vZGUgKm4sIHN0cnVjdCB0aXBjX21zZyAqaGRyLFxuLVx0XHRcdFx0ICBpbnQgYmVhcmVyX2lkLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICp4bWl0cSlcbitcdFx0XHRcdCAgaW50IGJlYXJlcl9pZCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqeG1pdHEsXG4rXHRcdFx0XHQgIGJvb2wgKnZhbGlkKVxuIHtcbiBcdHN0cnVjdCB0aXBjX2xpbmsgKnVjbDtcbiBcdGludCByYztcbiBcbi1cdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVx1MDAzZW5ldCwgbi1cdTAwM2ViY19lbnRyeS5saW5rLCBoZHIsIHhtaXRxKTtcbitcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVx1MDAzZW5ldCwgbi1cdTAwM2ViY19lbnRyeS5saW5rLCBoZHIsIHhtaXRxLCB2YWxpZCk7XG4gXG4gXHRpZiAocmMgXHUwMDI2IFRJUENfTElOS19ET1dOX0VWVCkge1xuIFx0XHR0aXBjX25vZGVfcmVzZXRfbGlua3Mobik7XG5AQCAtMjE0MCwxMiArMjE0MSwxOCBAQCB2b2lkIHRpcGNfcmN2KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRpcGNfYmVhcmVyICpiKVxuIFxuIFx0LyogRW5zdXJlIGJyb2FkY2FzdCByZWNlcHRpb24gaXMgaW4gc3luY2ggd2l0aCBwZWVyJ3Mgc2VuZCBzdGF0ZSAqL1xuIFx0aWYgKHVubGlrZWx5KHVzciA9PSBMSU5LX1BST1RPQ09MKSkge1xuK1x0XHRib29sIHZhbGlkID0gdHJ1ZTtcbitcbiBcdFx0aWYgKHVubGlrZWx5KHNrYl9saW5lYXJpemUoc2tiKSkpIHtcbiBcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuIFx0XHRcdGdvdG8gZGlzY2FyZDtcbiBcdFx0fVxuIFx0XHRoZHIgPSBidWZfbXNnKHNrYik7XG4tXHRcdHRpcGNfbm9kZV9iY19zeW5jX3JjdihuLCBoZHIsIGJlYXJlcl9pZCwgXHUwMDI2eG1pdHEpO1xuK1x0XHR0aXBjX25vZGVfYmNfc3luY19yY3YobiwgaGRyLCBiZWFyZXJfaWQsIFx1MDAyNnhtaXRxLCBcdTAwMjZ2YWxpZCk7XG4rXHRcdGlmICghdmFsaWQpIHtcbitcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuK1x0XHRcdGdvdG8gZGlzY2FyZDtcbitcdFx0fVxuIFx0fSBlbHNlIGlmICh1bmxpa2VseSh0aXBjX2xpbmtfYWNrZWQobi1cdTAwM2ViY19lbnRyeS5saW5rKSAhPSBiY19hY2spKSB7XG4gXHRcdHRpcGNfYmNhc3RfYWNrX3JjdihuZXQsIG4tXHUwMDNlYmNfZW50cnkubGluaywgaGRyKTtcbiBcdH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE0OjE2OjA1LjYzMzA3MTMxM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NTQzMjQzOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgVElQQyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIFRJUEMsIGFuZCBpdCBsb29rcyBsaWtlIGEgdGFyZ2V0ZWQgZml4IHJlbGF0ZWQgdG8gYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbi4gVGhleSd2ZSB1cGRhdGVkIGBuZXQvdGlwYy9iY2FzdC5jYCwgYG5ldC90aXBjL2JjYXN0LmhgLCBhbmQgYG5ldC90aXBjL25vZGUuY2AuIFRoZSBrZXkgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGB0aXBjX2JjYXN0X3N5bmNfcmN2YC4gVGhleSd2ZSBhZGRlZCBhIGBib29sICp2YWxpZGAgYXJndW1lbnQsIGFuZCBub3cgdGhleSdyZSB2YWxpZGF0aW5nIHRoZSBHYXAgQUNLIGJsb2Nrcy4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyB0aGV5J3JlIGNoZWNraW5nIGlmIHRoZSByZWNlaXZlZCBkYXRhIHNpemUgKGBnbGVuYCkgaXMgbGFyZ2VyIHRoYW4gd2hhdCdzIGV4cGVjdGVkIChgbXNnX2RhdGFfc3ooaGRyKWApLiBJZiB0aGVyZSdzIGFuIGlzc3VlIHdpdGggdGhlIHNpemUsIGB2YWxpZGAgZ2V0cyBzZXQgdG8gYGZhbHNlYCwgYW5kIHRoZSBwcm9jZXNzaW5nIGlzIHNraXBwZWQuIFRoaXMgYHZhbGlkYCBmbGFnIGlzIHRoZW4gcHJvcGFnYXRlZCB1cCB0aHJvdWdoIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIGFuZCBldmVudHVhbGx5IGNoZWNrZWQgaW4gYHRpcGNfcmN2YCwgd2hpY2ggZGlzY2FyZHMgdGhlIGBza2JgIGlmIGl0J3MgaW52YWxpZC5cblxuRXNzZW50aWFsbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGVuaGFuY2VtZW50IOKAkyBhZGRpbmcgc29tZSB2YWxpZGF0aW9uIHRvIHRoZSBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHByb2Nlc3MgaW4gVElQQy4gSSdtIGFzc3VtaW5nIHRoaXMgaXMgdG8gcHJldmVudCBidWZmZXIgb3ZlcmZsb3dzIG9yIG90aGVyIHJlbGF0ZWQgaXNzdWVzIGluIHRoZSByZWNlaXZlIHByb2Nlc3MuIEl0J3MgYSBzbWFydCBhZGRpdGlvbiBhbmQgdmVyeSBsaWtlbHkgdG8gYmUgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gSSBjYW4gZGVmaW5pdGVseSBzZWUgaG93IG1hbGZvcm1lZCBHYXAgQUNLcyBjb3VsZCBiZSBleHBsb2l0ZWQgaWYgdGhleSB3ZXJlbid0IHZhbGlkYXRlZC5cblxuTm93LCBsZXQncyB0cmFjayBkb3duIHRoZSBUSVBDIGNvbmZpZ3VyYXRpb24uIEkgYmV0IGBDT05GSUdfVElQQ2AgaXMgdGhlIHByaW1hcnkgb25lLCBidXQgSSBzaG91bGQgcHJvYmFibHkgdGFrZSBhIGxvb2sgYXQgYG5ldC90aXBjL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBvciBhbnkgb3RoZXIgbW9kdWxlcyBJIHNob3VsZCBjb25zaWRlciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjQxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTQ6MTY6MTEuMDg3Mzk3MzY3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NjYzMDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUSVBDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvS2NvbmZpZy01LVxcbm5ldC90aXBjL0tjb25maWc6NjptZW51Y29uZmlnIFRJUENcXG5uZXQvdGlwYy9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBUSVBDIFByb3RvY29sXFxcIlxcbi0tXFxubmV0L3RpcGMvS2NvbmZpZy0yMy1cXG5uZXQvdGlwYy9LY29uZmlnOjI0OmNvbmZpZyBUSVBDX01FRElBX0lCXFxubmV0L3RpcGMvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJJbmZpbmlCYW5kIG1lZGlhIHR5cGUgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjktXFx0ICBJUC1vdmVyLUluZmluaUJhbmQgZGV2aWNlcy5cXG5uZXQvdGlwYy9LY29uZmlnOjMwOmNvbmZpZyBUSVBDX01FRElBX1VEUFxcbm5ldC90aXBjL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiSVAvVURQIG1lZGlhIHR5cGUgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMzctXFxubmV0L3RpcGMvS2NvbmZpZzozODpjb25maWcgVElQQ19DUllQVE9cXG5uZXQvdGlwYy9LY29uZmlnLTM5LVxcdGJvb2wgXFxcIlRJUEMgZW5jcnlwdGlvbiBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3RpcGMvS2NvbmZpZy01Mi1cXG5uZXQvdGlwYy9LY29uZmlnOjUzOmNvbmZpZyBUSVBDX0RJQUdcXG5uZXQvdGlwYy9LY29uZmlnLTU0LVxcdHRyaXN0YXRlIFxcXCJUSVBDOiBzb2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2VcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDE0OjE2OjExLjE0NTA3MDUyNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxNjAzNDc3MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gVElQQyBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBUSVBDLCBzcGVjaWZpY2FsbHkgaXRzIGNvbmZpZ3VyYXRpb24uIFRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaXRlbSBpcyBgVElQQ2AsIG9idmlvdXNseS4gSSBzZWUgd2UgY2FuIGFsc28gZW5hYmxlIGBUSVBDX01FRElBX1VEUGAgd2hpY2ggaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSB0aGF0IG1lYW5zIHdlIGNhbiBvcGVuIGl0IHVwIGZvciBmdXp6aW5nIG92ZXIgVURQLiBMZXQncyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIGJlc3QgcGxhY2VzIHRvIGZvY3VzIG91ciBlZmZvcnRzIGFyZS5cblxuSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zLiBJbW1lZGlhdGVseSwgYHRpcGNfYmNhc3Rfc3luY19yY3ZgLCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCwgYW5kIG1vc3QgaW1wb3J0YW50bHksIGB0aXBjX3JjdmAsIGp1bXAgb3V0IGF0IG1lLiBJJ2xsIG5lZWQgdG8gY29uZmlybSwgYnV0IGB0aXBjX3JjdmAgc2VlbXMgbGlrZSB0aGUgY2VudHJhbCByZWNlaXZlIGZ1bmN0aW9uIGZvciBUSVBDLCBzbyBpdCdzIGxpa2VseSBhIGhvdC1wYXRoIGZ1bmN0aW9uIGFuZCB0aGUgbW9zdCBpbXBvcnRhbnQuXG5cbmB0aXBjX2JjYXN0X3N5bmNfcmN2YCBoYW5kbGVzIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVzc2FnZXMsIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBsb29rcyBsaWtlIGEgc3RhdGljIGZ1bmN0aW9uIHJlc2lkaW5nIGluIGBuZXQvdGlwYy9ub2RlLmNgLiBOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgYm90aCBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIHRob3JvdWdobHkuIEknbGwgc3RhcnQgd2l0aCB0aG9zZSBhbmQgc2VlIHdoZXJlIHRoZXkgbGVhZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE0NCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjoxNi4zMDU0MjAyMjZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU1MDI1ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGlwY19iY2FzdF9zeW5jX3JjdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGlwYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3RpcGMvYmNhc3QuYz00NzA9dm9pZCB0aXBjX2JjYXN0X2Fja19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbi0tXFxubmV0L3RpcGMvYmNhc3QuYy00OTctICovXFxubmV0L3RpcGMvYmNhc3QuYzo0OTg6aW50IHRpcGNfYmNhc3Rfc3luY19yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbm5ldC90aXBjL2JjYXN0LmMtNDk5LVxcdFxcdFxcdHN0cnVjdCB0aXBjX21zZyAqaGRyLFxcbi0tXFxubmV0L3RpcGMvYmNhc3QuaD05Nj12b2lkIHRpcGNfYmNhc3RfYWNrX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXFxubmV0L3RpcGMvYmNhc3QuaC05Ny1cXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcik7XFxubmV0L3RpcGMvYmNhc3QuaDo5ODppbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXFxubmV0L3RpcGMvYmNhc3QuaC05OS1cXHRcXHRcXHRzdHJ1Y3QgdGlwY19tc2cgKmhkcixcXG4tLVxcbm5ldC90aXBjL25vZGUuYz0xODMzPXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9iY19zeW5jX3JjdihzdHJ1Y3QgdGlwY19ub2RlICpuLCBzdHJ1Y3QgdGlwY19tc2cgKmhkcixcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0xODM5LVxcbm5ldC90aXBjL25vZGUuYzoxODQwOlxcdHJjID0gdGlwY19iY2FzdF9zeW5jX3JjdihuLVxcdTAwM2VuZXQsIG4tXFx1MDAzZWJjX2VudHJ5LmxpbmssIGhkciwgeG1pdHEsIHZhbGlkKTtcXG5uZXQvdGlwYy9ub2RlLmMtMTg0MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTQ6MTY6MTYuMzYwOTI4NTM1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODE5MDQzNjEwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEknbSB0cnlpbmcgdG8gcGlucG9pbnQgdGhlIGtleSBhcmVhcyBmb3IgYW5hbHlzaXM6XG5cbioqRm9jdXNpbmcgb24gVElQQyBCcm9hZGNhc3QgU3luY2hyb25pemF0aW9uKipcblxuUmlnaHQsIHNvIEknbSBob25pbmcgaW4gb24gdGhlIGJyb2FkY2FzdCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcyB3aXRoaW4gdGhlIFRJUEMgKFRyYW5zcGFyZW50IEludGVyLVByb2Nlc3MgQ29tbXVuaWNhdGlvbikgc3lzdGVtLiBJJ3ZlIGlkZW50aWZpZWQgYHRpcGNfYmNhc3Rfc3luY19yY3ZgIGFzIGEgc3Ryb25nIGNhbmRpZGF0ZSBmb3IgY2xvc2VyIGluc3BlY3Rpb24sIGFuZCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBzZWVtcyBlcXVhbGx5IHByb21pc2luZy4gSXQgbG9va3MgbGlrZSBgdGlwY19yY3ZgIGlzIHRoZSBjZW50cmFsIHJlY2VpdmluZyBmdW5jdGlvbiwgd2hpY2ggY291bGQgYmUgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrIOKAkyBpdCdzIGxpa2VseSBhIGhvdCBzcG90LiBIb3dldmVyLCBgdGlwY19ub2RlX2JjX3N5bmNfcmN2YCBpcyBpbnZva2VkIGZyb20gd2l0aGluIGB0aXBjX3JjdmAgc3BlY2lmaWNhbGx5IHdoZW4gdGhlIGB1c3JgIHBhcmFtZXRlciBpbmRpY2F0ZXMgYSBgTElOS19QUk9UT0NPTGAgY29udGV4dCwgc3VnZ2VzdGluZyBpdCBoYW5kbGVzIG5vZGUtbGV2ZWwgYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbi5cblxuTm93LCBhIHJlbGF0ZWQgYXJlYSB0aGF0IHNwcmluZ3MgdG8gbWluZCBpcyBob3cgVElQQyBkZWFscyB3aXRoIGFja25vd2xlZGdlbWVudHMgYW5kIGdhcHMgaW4gcmVjZWl2ZWQgZGF0YS4gSSBzaG91bGQgaW52ZXN0aWdhdGUgYHRpcGNfZ2V0X2dhcF9hY2tfYmxrc2AgdG8gc2VlIGlmIGl0IHBsYXlzIGEgc2lnbmlmaWNhbnQgcm9sZSBpbiB0aGUgYnJvYWRjYXN0IHN5bmNocm9uaXphdGlvbiBwcm9jZXNzLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gdGhlIGhhbmRsaW5nIG9mIGxvc3Qgb3IgZnJhZ21lbnRlZCBicm9hZGNhc3QgcGFja2V0cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgaXTigJlzIGludm9sdmVkIGluIHRoZSBzeW5jaHJvbml6YXRpb24gc3RyYXRlZ3ksIG9yIG9ubHkgY29uY2VybnMgZGF0YSByZWxpYWJpbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzNCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjoyNC41NTEzNjcxMjVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYyMzMxMjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGlwY19nZXRfZ2FwX2Fja19ibGtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdGlwYy9iY2FzdC5jPTQ5OD1pbnQgdGlwY19iY2FzdF9zeW5jX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2xpbmsgKmwsXFxuLS1cXG5uZXQvdGlwYy9iY2FzdC5jLTUxMy1cXHR9IGVsc2UgaWYgKCFtc2dfYmNfYWNrX2ludmFsaWQoaGRyKSkge1xcbm5ldC90aXBjL2JjYXN0LmM6NTE0OlxcdFxcdGdsZW4gPSB0aXBjX2dldF9nYXBfYWNrX2Jsa3MoXFx1MDAyNmdhLCBsLCBoZHIsIGZhbHNlKTtcXG5uZXQvdGlwYy9iY2FzdC5jLTUxNS1cXHRcXHRpZiAoZ2xlbiBcXHUwMDNlIG1zZ19kYXRhX3N6KGhkcikpIHtcXG4tLVxcbm5ldC90aXBjL2xpbmsuYz0xMzQwPXN0YXRpYyBpbnQgdGlwY19saW5rX3RubF9yY3Yoc3RydWN0IHRpcGNfbGluayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC90aXBjL2xpbmsuYy0xNDA1LS8qKlxcbm5ldC90aXBjL2xpbmsuYzoxNDA2OiAqIHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyAtIGdldCBHYXAgQUNLIGJsb2NrcyBmcm9tIFBST1RPQ09ML1NUQVRFX01TR1xcbm5ldC90aXBjL2xpbmsuYy0xNDA3LSAqIEBnYTogcmV0dXJuZWQgcG9pbnRlciB0byB0aGUgR2FwIEFDSyBibG9ja3MgaWYgYW55XFxuLS1cXG5uZXQvdGlwYy9saW5rLmMtMTQxMy0gKi9cXG5uZXQvdGlwYy9saW5rLmM6MTQxNDp1MTYgdGlwY19nZXRfZ2FwX2Fja19ibGtzKHN0cnVjdCB0aXBjX2dhcF9hY2tfYmxrcyAqKmdhLCBzdHJ1Y3QgdGlwY19saW5rICpsLFxcbm5ldC90aXBjL2xpbmsuYy0xNDE1LVxcdFxcdFxcdCAgc3RydWN0IHRpcGNfbXNnICpoZHIsIGJvb2wgdWMpXFxuLS1cXG5uZXQvdGlwYy9saW5rLmM9MjE3ND1zdGF0aWMgaW50IHRpcGNfbGlua19wcm90b19yY3Yoc3RydWN0IHRpcGNfbGluayAqbCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC90aXBjL2xpbmsuYy0yMjcxLVxcdFxcdC8qIFZhbGlkYXRlIEdhcCBBQ0sgYmxvY2tzLCBkcm9wIGlmIGludmFsaWQgKi9cXG5uZXQvdGlwYy9saW5rLmM6MjI3MjpcXHRcXHRnbGVuID0gdGlwY19nZXRfZ2FwX2Fja19ibGtzKFxcdTAwMjZnYSwgbCwgaGRyLCB0cnVlKTtcXG5uZXQvdGlwYy9saW5rLmMtMjI3My1cXHRcXHRpZiAoZ2xlbiBcXHUwMDNlIGRsZW4pXFxuLS1cXG5uZXQvdGlwYy9saW5rLmg9MTQ0PWludCB0aXBjX2xpbmtfbXNzKHN0cnVjdCB0aXBjX2xpbmsgKmwpO1xcbm5ldC90aXBjL2xpbmsuaDoxNDU6dTE2IHRpcGNfZ2V0X2dhcF9hY2tfYmxrcyhzdHJ1Y3QgdGlwY19nYXBfYWNrX2Jsa3MgKipnYSwgc3RydWN0IHRpcGNfbGluayAqbCxcXG5uZXQvdGlwYy9saW5rLmgtMTQ2LVxcdFxcdFxcdCAgc3RydWN0IHRpcGNfbXNnICpoZHIsIGJvb2wgdWMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjoyNC42MDc2MDkzOTRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODA5NjgxODY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBUSVBDIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIG5ldyB2YWxpZGF0aW9uIGNoZWNrLCBzcGVjaWZpY2FsbHkgYGdsZW4gXHUwMDNlIG1zZ19kYXRhX3N6KGhkcilgLCBhbmQgaXQncyBiZWluZyBpbnNlcnRlZCBhZnRlciBhIGNhbGwgdG8gYHRpcGNfZ2V0X2dhcF9hY2tfYmxrc2AuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIGltbWVkaWF0ZWx5IHBvaW50cyBtZSB0byB0aGUgY29yZSBsb2dpYyBvZiBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgLiBUaG9zZSBhcmUgZGVmaW5pdGVseSB0aGUgZnVuY3Rpb25zIEkgbmVlZCB0byBzY3J1dGluaXplLiBUaGV5IGFyZSB0aGUgY2xlYXIgZm9jdXMgc3ltYm9scyBoZXJlLiBJJ20gdGhpbmtpbmcgdGhleSBhcmUgdGhlIGJlc3QgcG9pbnRzIHRvIGJlZ2luIHRoZSBhbmFseXNpcy5cblxuTm93LCBsZXQgbWUgcHV0IHRvZ2V0aGVyIGEgY29uY2lzZSBzdW1tYXJ5IG9mIG15IGZpbmRpbmdzLiBUaGlzIGlzIGNsZWFybHkgYSBzaXR1YXRpb24gd2hlcmUgZnV6emluZyBpcyB3YXJyYW50ZWQg4oCTICoqV29ydGhGdXp6aW5nOiB0cnVlKiouIE15IGFuYWx5c2lzIGluZGljYXRlcyB0aGUgYmVzdCBmdXp6aW5nIHRhcmdldCBzeW1ib2xzIGFyZSBgdGlwY19iY2FzdF9zeW5jX3JjdmAgYW5kIGB0aXBjX25vZGVfYmNfc3luY19yY3ZgIOKAkyAqKkZvY3VzU3ltYm9sczogdGlwY19iY2FzdF9zeW5jX3JjdiwgdGlwY19ub2RlX2JjX3N5bmNfcmN2KiouIEknZCBhbHNvIGV4cGVjdCB0aGUgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIHdpbGwgaW5jbHVkZSBgVElQQ2AgYW5kIGxpa2VseSBgVElQQ19NRURJQV9VRFBgIC0gKipFbmFibGVDb25maWdzOiBUSVBDLCBUSVBDX01FRElBX1VEUCoqLlxuXG5NeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGlzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaW1wcm92aW5nIHRoZSByb2J1c3RuZXNzIG9mIHRoZSBUSVBDIGJyb2FkY2FzdCBzeW5jIHJlY2VpdmUuIFRoZSBuZXcgdmFsaWRhdGlvbiBpcyBkaXJlY3RseSBhaW1lZCBhdCBwcmV2ZW50aW5nIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIHRoZSBwcm9jZXNzaW5nIG9mIG1hbGljaW91c2x5IGNyYWZ0ZWQgb3IgbWFsZm9ybWVkIG1lc3NhZ2VzLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBHYXAgQUNLIGJsb2Nrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRpcmVjdCBtb2RpZmljYXRpb24gdG8gaG93IHRoZSBuZXR3b3JrIHByb3RvY29sIGlzIGhhbmRsZWQuIFRoZXJlZm9yZSwgZnV6emluZyB0aGUgbG9naWMgaW1wYWN0ZWQgYnkgdGhpcyBjaGVjaywgZXNwZWNpYWxseSB0aGUgdHdvIGZ1bmN0aW9ucyBpZGVudGlmaWVkLCBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGZvciBzZWN1cml0eSBhbmQgc3RhYmlsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDcwLCJPdXRwdXRUb2tlbnMiOjEyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxNDoxNjozMC40MTcyOTQwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0MTAyNTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCIsXG4gICAgXCJUSVBDX01FRElBX1VEUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRpcGNfYmNhc3Rfc3luY19yY3ZcIixcbiAgICBcInRpcGNfbm9kZV9iY19zeW5jX3JjdlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCIsXG4gICAgXCJUSVBDX01FRElBX1VEUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInRpcGNfYmNhc3Rfc3luY19yY3ZcIixcbiAgICBcInRpcGNfbm9kZV9iY19zeW5jX3JjdlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBmb3IgR2FwIEFDSyBibG9ja3MgaW4gVElQQyBicm9hZGNhc3Qgc3luYyByZWNlaXZlIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBvZiBtYWxmb3JtZWQgbWVzc2FnZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwcm90b2NvbCBoYW5kbGluZyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSB2YWxpZGF0aW9uIGNvcnJlY3RseSBoYW5kbGVzIG1hbGZvcm1lZCBwYWNrZXRzIHdpdGhvdXQgY2F1c2luZyByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowh848k[1] Phase: Succeeded StartedAt: 2026-06-24 14:16:41 +0000 UTC FinishedAt: 2026-06-24 14:16:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-24 14:16:41 +0000 UTC FinishedAt: 2026-06-24 14:16:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2] Phase: Succeeded StartedAt: 2026-06-24 14:16:41 +0000 UTC FinishedAt: 2026-06-24 18:10:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-24 14:16:41 +0000 UTC FinishedAt: 2026-06-24 18:10:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-24 14:16:41 +0000 UTC FinishedAt: 2026-06-24 14:16:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-24 14:16:41 +0000 UTC FinishedAt: 2026-06-24 14:16:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowh848k/series-workflowh848k-convert-artifact-1075502249/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-24 14:16:51 +0000 UTC FinishedAt: 2026-06-24 14:39:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-24 14:16:51 +0000 UTC FinishedAt: 2026-06-24 14:39:22 +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:*ecb0235d-4db5-4fca-9d82-33dd9fc1028c,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-workflowh848k/series-workflowh848k-convert-artifact-1075502249/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": "01670e2d-8517-4cbb-87e9-ea1fcb87aa29", "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-workflowh848k/series-workflowh848k-build-action-957433095/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-24 14:16:51 +0000 UTC FinishedAt: 2026-06-24 14:39:12 +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:*ecb0235d-4db5-4fca-9d82-33dd9fc1028c,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-workflowh848k/series-workflowh848k-convert-artifact-1075502249/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": "01670e2d-8517-4cbb-87e9-ea1fcb87aa29", "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-workflowh848k/series-workflowh848k-build-action-957433095/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-24 14:39:22 +0000 UTC FinishedAt: 2026-06-24 14:39:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-24 14:39:22 +0000 UTC FinishedAt: 2026-06-24 14:39:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-24 14:39:22 +0000 UTC FinishedAt: 2026-06-24 14:40:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-24 14:39:22 +0000 UTC FinishedAt: 2026-06-24 14:40:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowh848k/series-workflowh848k-convert-artifact-171940156/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-24 14:40:49 +0000 UTC FinishedAt: 2026-06-24 14:42:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-24 14:40:49 +0000 UTC FinishedAt: 2026-06-24 14:42:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*01670e2d-8517-4cbb-87e9-ea1fcb87aa29,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-workflowh848k/series-workflowh848k-build-action-957433095/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-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-24 14:42:43 +0000 UTC FinishedAt: 2026-06-24 14:42:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-24 14:42:43 +0000 UTC FinishedAt: 2026-06-24 14:42:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-24 14:42:43 +0000 UTC FinishedAt: 2026-06-24 15:05:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-24 14:42:43 +0000 UTC FinishedAt: 2026-06-24 15:05:08 +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:*ecb0235d-4db5-4fca-9d82-33dd9fc1028c,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-workflowh848k/series-workflowh848k-convert-artifact-171940156/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": "d1610f18-9406-4d69-b30d-3d6fedf83d57", "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-workflowh848k/series-workflowh848k-build-action-3660800920/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-24 14:42:43 +0000 UTC FinishedAt: 2026-06-24 15:04:58 +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:*ecb0235d-4db5-4fca-9d82-33dd9fc1028c,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-workflowh848k/series-workflowh848k-convert-artifact-171940156/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": "d1610f18-9406-4d69-b30d-3d6fedf83d57", "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-workflowh848k/series-workflowh848k-build-action-3660800920/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-24 15:05:08 +0000 UTC FinishedAt: 2026-06-24 15:05:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-24 15:05:08 +0000 UTC FinishedAt: 2026-06-24 15:05:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-24 15:05:08 +0000 UTC FinishedAt: 2026-06-24 15:07:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-24 15:05:08 +0000 UTC FinishedAt: 2026-06-24 15:06:50 +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:*d1610f18-9406-4d69-b30d-3d6fedf83d57,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-workflowh848k/series-workflowh848k-build-action-3660800920/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-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 18:10:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 18:10:16 +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_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"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:*01670e2d-8517-4cbb-87e9-ea1fcb87aa29,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d1610f18-9406-4d69-b30d-3d6fedf83d57,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-workflowh848k/series-workflowh848k-build-action-957433095/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-workflowh848k/series-workflowh848k-build-action-3660800920/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 15:08:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 15:08:06 +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_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"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-workflowh848k/series-workflowh848k-convert-artifact-2570773765/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 15:07:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 15:07:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-24 15:07:01 +0000 UTC FinishedAt: 2026-06-24 15:07:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-24 15:08:52 +0000 UTC FinishedAt: 2026-06-24 18:10:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh848k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_bcast_sync_rcv","tipc_node_bc_sync_rcv"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a986fde914d88af47eb78fd29c5d1af7952c3500","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC","TIPC_MEDIA_UDP"],"series_id":"846df91b-2e8c-4001-98a9-2b68a8a28ad3","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-24 15:08:52 +0000 UTC FinishedAt: 2026-06-24 18:10:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*01670e2d-8517-4cbb-87e9-ea1fcb87aa29,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d1610f18-9406-4d69-b30d-3d6fedf83d57,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-workflowh848k/series-workflowh848k-build-action-957433095/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-workflowh848k/series-workflowh848k-build-action-3660800920/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-workflowh848k/series-workflowh848k-convert-artifact-2570773765/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,}