Name: series-workflow892bl Phase: Succeeded StartedAt: 2026-07-17 09:58:59 +0000 UTC FinishedAt: 2026-07-17 11:47:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[0] Phase: Succeeded StartedAt: 2026-07-17 09:58:59 +0000 UTC FinishedAt: 2026-07-17 10:12:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 09:58:59 +0000 UTC FinishedAt: 2026-07-17 10:12:58 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "98a43658-4258-4a41-b87e-e7d15077716d" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_riscv_gstage_wp_pt_masked", "kvm_arch_mmu_enable_log_dirty_pt_masked" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMGRiMzY2MDkyOTZkMTE0NDYzMTQ2NmY5MmZhYmM2OTdjZGIwNTEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMTA6MTE6NDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaFxuaW5kZXggMjFlMjAxOWRmMGNmNTcuLjUwYzc0NTI3ZGRkMjk3IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oXG5AQCAtODIsNiAmIzQzOzgyLDkgQEAgYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3VubWFwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsXG4gXG4gYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdwYV90IHN0YXJ0LCBncGFfdCBlbmQpO1xuIFxuJiM0Mztib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdmbl90IGJhc2VfZ2ZuLFxuJiM0MztcdFx0XHRcdCAgIHVuc2lnbmVkIGxvbmcgbWFzayk7XG4mIzQzO1xuIHZvaWQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKTtcbiBcbiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlKHVuc2lnbmVkIGxvbmcgcGdkX2xldmVscylcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXG5pbmRleCBjNGMzYjc5NTY3ZjEwZC4uOWFmODZiMWM1ZTNjM2QgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNcbkBAIC00NzIsNiAmIzQzOzQ3Miw2NSBAQCBib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2Uoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ3BhX3Qgc3RhcnQsIGdwYV90IGVuZFxuIFx0cmV0dXJuIGZsdXNoO1xuIH1cbiBcbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2h1Z2VfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSxcbiYjNDM7XHRcdFx0XHQgICBnZm5fdCBiYXNlX2dmbiwgZ3BhX3QgYWRkcilcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgc3RhcnRfaW5kZXggPSAwO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgZW5kX2luZGV4ID0gQklUU19QRVJfTE9ORyAtIDE7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBlbmRfZ2ZuID0gYmFzZV9nZm4gJiM0MzsgZW5kX2luZGV4O1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgYWxpZ25lZF9zdGFydF9nZm4gPSBhZGRyIFx1MDAzZVx1MDAzZSBQQUdFX1NISUZUO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgYWxpZ25lZF9lbmRfZ2ZuID0gYWxpZ25lZF9zdGFydF9nZm4gJiM0MzsgKHBhZ2Vfc2l6ZSBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVCkgLSAxO1xuJiM0MztcdHVuc2lnbmVkIGludCBuYml0cyA9IDA7XG4mIzQzO1xuJiM0MztcdGlmIChhbGlnbmVkX3N0YXJ0X2dmbiBcdTAwM2UgYmFzZV9nZm4pXG4mIzQzO1x0XHRzdGFydF9pbmRleCA9IGFsaWduZWRfc3RhcnRfZ2ZuIC0gYmFzZV9nZm47XG4mIzQzO1xuJiM0MztcdGlmIChhbGlnbmVkX2VuZF9nZm4gXHUwMDNjIGVuZF9nZm4pXG4mIzQzO1x0XHRlbmRfaW5kZXggPSBhbGlnbmVkX2VuZF9nZm4gLSBiYXNlX2dmbjtcbiYjNDM7XG4mIzQzO1x0bmJpdHMgPSBlbmRfaW5kZXggLSBzdGFydF9pbmRleCAmIzQzOyAxO1xuJiM0MztcdGJpdG1hcF9jbGVhcihtYXNrLCBzdGFydF9pbmRleCwgbmJpdHMpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdmbl90IGJhc2VfZ2ZuLFxuJiM0MztcdFx0XHRcdCAgIHVuc2lnbmVkIGxvbmcgbWFzaylcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplO1xuJiM0MztcdGJvb2wgZmx1c2ggPSBmYWxzZTtcbiYjNDM7XHRib29sIGZvdW5kX2xlYWY7XG4mIzQzO1x0dTMyIHB0ZXBfbGV2ZWw7XG4mIzQzO1x0cHRlX3QgKnB0ZXA7XG4mIzQzO1x0Z3BhX3QgYWRkciA9IDA7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0d2hpbGUgKG1hc2spIHtcbiYjNDM7XHRcdGFkZHIgPSAoYmFzZV9nZm4gJiM0MzsgX19mZnMobWFzaykpIFx1MDAzY1x1MDAzYyBQQUdFX1NISUZUO1xuJiM0MztcbiYjNDM7XHRcdGZvdW5kX2xlYWYgPSBrdm1fcmlzY3ZfZ3N0YWdlX2dldF9sZWFmKGdzdGFnZSwgYWRkciwgXHUwMDI2cHRlcCwgXHUwMDI2cHRlcF9sZXZlbCk7XG4mIzQzO1x0XHRyZXQgPSBnc3RhZ2VfbGV2ZWxfdG9fcGFnZV9zaXplKGdzdGFnZSwgcHRlcF9sZXZlbCwgXHUwMDI2cGFnZV9zaXplKTtcbiYjNDM7XHRcdGlmIChyZXQpXG4mIzQzO1x0XHRcdGJyZWFrO1xuJiM0MztcbiYjNDM7XHRcdGlmIChmb3VuZF9sZWFmKSB7XG4mIzQzO1x0XHRcdGlmIChwdGVwX2xldmVsKSB7XG4mIzQzO1x0XHRcdFx0YWRkciA9IEFMSUdOX0RPV04oYWRkciwgcGFnZV9zaXplKTtcbiYjNDM7XHRcdFx0XHRjbGVhcl9odWdlX21hc2soXHUwMDI2bWFzaywgcGFnZV9zaXplLCBiYXNlX2dmbiwgYWRkcik7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XG4mIzQzO1x0XHRcdGZsdXNoIHw9IGt2bV9yaXNjdl9nc3RhZ2Vfb3BfcHRlKGdzdGFnZSwgYWRkciwgcHRlcCxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgcHRlcF9sZXZlbCwgR1NUQUdFX09QX1dQKTtcbiYjNDM7XG4mIzQzO1x0XHRcdGlmIChwdGVwX2xldmVsKVxuJiM0MztcdFx0XHRcdGNvbnRpbnVlO1xuJiM0MztcdFx0fVxuJiM0MztcbiYjNDM7XHRcdC8qIGNsZWFyIHRoZSBmaXJzdCBzZXQgYml0Ki9cbiYjNDM7XHRcdG1hc2sgXHUwMDI2PSBtYXNrIC0gMTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHJldHVybiBmbHVzaDtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIF9faW5pdCBrdm1fcmlzY3ZfZ3N0YWdlX21vZGVfZGV0ZWN0KHZvaWQpXG4ge1xuICNpZmRlZiBDT05GSUdfNjRCSVRcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9tbXUuYyBiL2FyY2gvcmlzY3Yva3ZtL21tdS5jXG5pbmRleCAwODJmOWIyNjE3MzM4Ny4uN2VhYjU4ZmY2M2Y5ZWEgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9tbXUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vbW11LmNcbkBAIC0xMTAsNyAmIzQzOzExMCw3IEBAIHZvaWQga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKHN0cnVjdCBrdm0gKmt2bSxcbiBcbiBcdGt2bV9yaXNjdl9nc3RhZ2VfaW5pdChcdTAwMjZnc3RhZ2UsIGt2bSk7XG4gXG4tXHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2UoXHUwMDI2Z3N0YWdlLCBzdGFydCwgZW5kKTtcbiYjNDM7XHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKFx1MDAyNmdzdGFnZSwgYmFzZV9nZm4sIG1hc2spO1xuIFx0aWYgKGZsdXNoKVxuIFx0XHRrdm1fZmx1c2hfcmVtb3RlX3RsYnNfcmFuZ2Uoa3ZtLCBzdGFydCBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVCxcbiBcdFx0XHRcdFx0ICAgIChlbmQgLSBzdGFydCkgXHUwMDNlXHUwMDNlIFBBR0VfU0hJRlQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDAwZGIzNjYwOTI5NmQxMTQ0NjMxNDY2ZjkyZmFiYzY5N2NkYjA1MTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxNyAxMDoxMTo0MCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmgKaW5kZXggMjFlMjAxOWRmMGNmNTcuLjUwYzc0NTI3ZGRkMjk3IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaApAQCAtODIsNiAmIzQzOzgyLDkgQEAgYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3VubWFwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsCiAKIGJvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9yYW5nZShzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBncGFfdCBzdGFydCwgZ3BhX3QgZW5kKTsKIAomIzQzO2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sCiYjNDM7CQkJCSAgIHVuc2lnbmVkIGxvbmcgbWFzayk7CiYjNDM7CiB2b2lkIGt2bV9yaXNjdl9nc3RhZ2VfbW9kZV9kZXRlY3Qodm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBrdm1fcmlzY3ZfZ3N0YWdlX21vZGUodW5zaWduZWQgbG9uZyBwZ2RfbGV2ZWxzKQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmMgYi9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYwppbmRleCBjNGMzYjc5NTY3ZjEwZC4uOWFmODZiMWM1ZTNjM2QgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jCkBAIC00NzIsNiAmIzQzOzQ3Miw2NSBAQCBib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2Uoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ3BhX3Qgc3RhcnQsIGdwYV90IGVuZAogCXJldHVybiBmbHVzaDsKIH0KIAomIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9odWdlX21hc2sodW5zaWduZWQgbG9uZyAqbWFzaywgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsCiYjNDM7CQkJCSAgIGdmbl90IGJhc2VfZ2ZuLCBncGFfdCBhZGRyKQomIzQzO3sKJiM0MzsJdW5zaWduZWQgbG9uZyBzdGFydF9pbmRleCA9IDA7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZW5kX2luZGV4ID0gQklUU19QRVJfTE9ORyAtIDE7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZW5kX2dmbiA9IGJhc2VfZ2ZuICYjNDM7IGVuZF9pbmRleDsKJiM0MzsJdW5zaWduZWQgbG9uZyBhbGlnbmVkX3N0YXJ0X2dmbiA9IGFkZHIgJmd0OyZndDsgUEFHRV9TSElGVDsKJiM0MzsJdW5zaWduZWQgbG9uZyBhbGlnbmVkX2VuZF9nZm4gPSBhbGlnbmVkX3N0YXJ0X2dmbiAmIzQzOyAocGFnZV9zaXplICZndDsmZ3Q7IFBBR0VfU0hJRlQpIC0gMTsKJiM0MzsJdW5zaWduZWQgaW50IG5iaXRzID0gMDsKJiM0MzsKJiM0MzsJaWYgKGFsaWduZWRfc3RhcnRfZ2ZuICZndDsgYmFzZV9nZm4pCiYjNDM7CQlzdGFydF9pbmRleCA9IGFsaWduZWRfc3RhcnRfZ2ZuIC0gYmFzZV9nZm47CiYjNDM7CiYjNDM7CWlmIChhbGlnbmVkX2VuZF9nZm4gJmx0OyBlbmRfZ2ZuKQomIzQzOwkJZW5kX2luZGV4ID0gYWxpZ25lZF9lbmRfZ2ZuIC0gYmFzZV9nZm47CiYjNDM7CiYjNDM7CW5iaXRzID0gZW5kX2luZGV4IC0gc3RhcnRfaW5kZXggJiM0MzsgMTsKJiM0MzsJYml0bWFwX2NsZWFyKG1hc2ssIHN0YXJ0X2luZGV4LCBuYml0cyk7CiYjNDM7fQomIzQzOwomIzQzO2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sCiYjNDM7CQkJCSAgIHVuc2lnbmVkIGxvbmcgbWFzaykKJiM0Mzt7CiYjNDM7CXVuc2lnbmVkIGxvbmcgcGFnZV9zaXplOwomIzQzOwlib29sIGZsdXNoID0gZmFsc2U7CiYjNDM7CWJvb2wgZm91bmRfbGVhZjsKJiM0MzsJdTMyIHB0ZXBfbGV2ZWw7CiYjNDM7CXB0ZV90ICpwdGVwOwomIzQzOwlncGFfdCBhZGRyID0gMDsKJiM0MzsJaW50IHJldDsKJiM0MzsKJiM0MzsJd2hpbGUgKG1hc2spIHsKJiM0MzsJCWFkZHIgPSAoYmFzZV9nZm4gJiM0MzsgX19mZnMobWFzaykpICZsdDsmbHQ7IFBBR0VfU0hJRlQ7CiYjNDM7CiYjNDM7CQlmb3VuZF9sZWFmID0ga3ZtX3Jpc2N2X2dzdGFnZV9nZXRfbGVhZihnc3RhZ2UsIGFkZHIsICZhbXA7cHRlcCwgJmFtcDtwdGVwX2xldmVsKTsKJiM0MzsJCXJldCA9IGdzdGFnZV9sZXZlbF90b19wYWdlX3NpemUoZ3N0YWdlLCBwdGVwX2xldmVsLCAmYW1wO3BhZ2Vfc2l6ZSk7CiYjNDM7CQlpZiAocmV0KQomIzQzOwkJCWJyZWFrOwomIzQzOwomIzQzOwkJaWYgKGZvdW5kX2xlYWYpIHsKJiM0MzsJCQlpZiAocHRlcF9sZXZlbCkgewomIzQzOwkJCQlhZGRyID0gQUxJR05fRE9XTihhZGRyLCBwYWdlX3NpemUpOwomIzQzOwkJCQljbGVhcl9odWdlX21hc2soJmFtcDttYXNrLCBwYWdlX3NpemUsIGJhc2VfZ2ZuLCBhZGRyKTsKJiM0MzsJCQl9CiYjNDM7CiYjNDM7CQkJZmx1c2ggfD0ga3ZtX3Jpc2N2X2dzdGFnZV9vcF9wdGUoZ3N0YWdlLCBhZGRyLCBwdGVwLAomIzQzOwkJCQkJCQkgcHRlcF9sZXZlbCwgR1NUQUdFX09QX1dQKTsKJiM0MzsKJiM0MzsJCQlpZiAocHRlcF9sZXZlbCkKJiM0MzsJCQkJY29udGludWU7CiYjNDM7CQl9CiYjNDM7CiYjNDM7CQkvKiBjbGVhciB0aGUgZmlyc3Qgc2V0IGJpdCovCiYjNDM7CQltYXNrICZhbXA7PSBtYXNrIC0gMTsKJiM0MzsJfQomIzQzOwomIzQzOwlyZXR1cm4gZmx1c2g7CiYjNDM7fQomIzQzOwogdm9pZCBfX2luaXQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKQogewogI2lmZGVmIENPTkZJR182NEJJVApkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vbW11LmMgYi9hcmNoL3Jpc2N2L2t2bS9tbXUuYwppbmRleCAwODJmOWIyNjE3MzM4Ny4uN2VhYjU4ZmY2M2Y5ZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3Yva3ZtL21tdS5jCkBAIC0xMTAsNyAmIzQzOzExMCw3IEBAIHZvaWQga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKHN0cnVjdCBrdm0gKmt2bSwKIAogCWt2bV9yaXNjdl9nc3RhZ2VfaW5pdCgmYW1wO2dzdGFnZSwga3ZtKTsKIAotCWZsdXNoID0ga3ZtX3Jpc2N2X2dzdGFnZV93cF9yYW5nZSgmYW1wO2dzdGFnZSwgc3RhcnQsIGVuZCk7CiYjNDM7CWZsdXNoID0ga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoJmFtcDtnc3RhZ2UsIGJhc2VfZ2ZuLCBtYXNrKTsKIAlpZiAoZmx1c2gpCiAJCWt2bV9mbHVzaF9yZW1vdGVfdGxic19yYW5nZShrdm0sIHN0YXJ0ICZndDsmZ3Q7IFBBR0VfU0hJRlQsCiAJCQkJCSAgICAoZW5kIC0gc3RhcnQpICZndDsmZ3Q7IFBBR0VfU0hJRlQpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDI0CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJJU0MtViBLVk0gTU1VIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIHRvdWNoaW5nIGBhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY2AgYW5kIGBhcmNoL3Jpc2N2L2t2bS9tbXUuY2AsIHdoaWNoIGltbWVkaWF0ZWx5IGZsYWdzIG15IGF0dGVudGlvbi4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIGFuZCBpbmNvcnBvcmF0ZXMgaXQgaW50byBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYC4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbW9kaWZpY2F0aW9uIHdpdGhpbiB0aGUgUklTQy1WIEtWTSBNZW1vcnkgTWFuYWdlbWVudCBVbml0IChNTVUpIGNvZGUsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0hvdyByZWFjaGFibGUgaXMgdGhpcyBjb2RlIHBhdGg/JiMzNDsgYW5kICYjMzQ7V2hhdCBjb25maWd1cmF0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgYWN0aXZlPyYjMzQ7IEkmIzM5O2xsIHN0YXJ0IGJ5IHRyYWNpbmcgdGhlIGNhbGxzIGFuZCBkZXBlbmRlbmNpZXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dCBvZiB0aGlzIGZ1bmN0aW9uLiBHaXZlbiB0aGUgZmlsZSBsb2NhdGlvbnMgYXJlIHdpdGhpbiBgYXJjaC9yaXNjdi9rdm0vYCwgSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cywgdGhlIGJhc2UgY29uZmlndXJhdGlvbiBgQ09ORklHX0tWTWAgZm9yIFJJU0MtViBzeXN0ZW1zLiBUaGF0IHdpbGwgYmUgdGhlIGZvdW5kYXRpb24uCgpOb3csIGxldCYjMzk7cyBsb2NhdGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgIHdpdGhpbiBgYXJjaC9yaXNjdi9rdm0vbW11LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQgaXMgY2hhbmdlZCBvciBpbnRyb2R1Y2VkLCBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBNTVUgbG9naWMuIEZyb20gdGhlcmUsIEkgY2FuIGRldGVybWluZSB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLCBpZiBpdCBoYXMgYW55IHBlcmZvcm1hbmNlIG9yIHNlY3VyaXR5IGltcGxpY2F0aW9ucywgYW5kIGRldGVybWluZSBob3cgdG8gdmVyaWZ5IHRoZSBtb2RpZmljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL21tdS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL21tdS5jPTg0PXZvaWQga3ZtX3Jpc2N2X21tdV9pb3VubWFwKHN0cnVjdCBrdm0gKmt2bSwgZ3BhX3QgZ3BhLCB1bnNpZ25lZCBsb25nIHNpemUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vbW11LmMtOTktXG5hcmNoL3Jpc2N2L2t2bS9tbXUuYzoxMDA6dm9pZCBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQoc3RydWN0IGt2bSAqa3ZtLFxuYXJjaC9yaXNjdi9rdm0vbW11LmMtMTAxLVx0XHRcdFx0XHQgICAgIHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKnNsb3QsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzczNwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgYXJjaC9yaXNjdi9rdm0vbW11LmNgIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zIGZvciBgYXJjaC9yaXNjdi9rdm0vbW11LmNgLiBSaWdodCwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIG1lbW9yeSBtYW5hZ2VtZW50IHVuaXQgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGUgS1ZNIGNvbnRleHQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBHaXZlbiB0aGUgZmlsZSBuYW1lLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBhIGNvcmUgcGllY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZGVmaW5lcyB0aGUgY3JpdGljYWwgZGVwZW5kZW5jaWVzLgoKTXkgcHJpbWFyeSBmb2N1cyB3aWxsIGJlIG9uIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGluIHRoZSBLY29uZmlnIGFuZCBkZWZjb25maWcgZmlsZXMuIEkga25vdyBSSVNDLVYgS1ZNIGlzIHN0aWxsIGV2b2x2aW5nLiBBcmUgdGhlcmUgdmFyaW91cyBNTVUgaW1wbGVtZW50YXRpb25zIHN1cHBvcnRlZCBvciBhIHNpbmdsZSwgc3RhbmRhcmRpemVkIG9uZSB0aGF0IHRoaXMgZmlsZSBpbXBsZW1lbnRzPyBXaGF0IGZlYXR1cmVzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGFuZCBob3cgY2FuIHRob3NlIGJlIG1vZGlmaWVkIGZvciBjdXN0b20gY29uZmlndXJhdGlvbnMuIFRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpbmdzIGxpa2UgcGFnZSB0YWJsZSBmb3JtYXRzLCBhZGRyZXNzIHNwYWNlIGxheW91dHMsIGFuZCBuZXN0ZWQgdmlydHVhbGl6YXRpb24gLSB3aGljaCBzZXR0aW5ncyBpbmZsdWVuY2UgdGhvc2UgYXNwZWN0cz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBNTVUgY29uZmlndXJhdGlvbiB0aWVzIGluIHdpdGggdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUmIzM5O3MgdmlydHVhbCBtZW1vcnkgZXh0ZW5zaW9ucyBhbmQgYW55IGN1c3RvbSBleHRlbnNpb25zIHJlbGV2YW50IHRvIEtWTS4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQga2V5IGRlZmluZXMgYXJlIHJlbGV2YW50IGFuZCB3aGljaCBvbmVzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgYnVpbGQgcHJvY2Vzcy4gSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHJlbGF0ZWQgZmlsZXMgdG8gZW5zdXJlIEkgZ2V0IGEgZnVsbCBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21tdS5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU9MTk9a3ZtLXkgJiM0Mzs9IG1haW4ub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6MjA6a3ZtLXkgJiM0Mzs9IG1tdS5vXG5hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZS0yMS1rdm0teSAmIzQzOz0gbmFjbC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE1NwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIGZvciBLVk0gKFJJU0MtVikqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gc29tZXRoaW5nIHJlbGF0ZWQgdG8gYGt2bS15YCDigJMgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgS1ZNIHN1cHBvcnQgaXMgaW1wbGljYXRlZCBoZXJlLiBOYXR1cmFsbHksIHRoYXQgbWVhbnMgYENPTkZJR19LVk1gIG5lZWRzIHRvIGJlIGVuYWJsZWQuIEkgY2FuJiMzOTt0IGltYWdpbmUgdGhpcyBiZWluZyBhbnl0aGluZyAqb3RoZXIqIHRoYW4gS1ZNLXJlbGF0ZWQgaWYgaXQmIzM5O3MgZ290IHRoYXQgbmFtaW5nIGNvbnZlbnRpb24uCgpUbyBjb25maXJtIGFuZCB1bmRlcnN0YW5kIHRoZSBwcmVjaXNlIGRlcGVuZGVuY2llcywgSSBzaG91bGQgaW1tZWRpYXRlbHkgbG9vayBhdCB0aGUgS2NvbmZpZyBmaWxlIHNwZWNpZmljIHRvIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtsbCBmaW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHJlbGF0aW9uc2hpcHMuIEkgYW50aWNpcGF0ZSBpdCYjMzk7bGwgc2hlZCBsaWdodCBvbiB0aGUgZmluZXIgcG9pbnRzIG9mIGhvdyBLVk0gc3VwcG9ydCBpcyBpbnRlZ3JhdGVkIHdpdGhpbiB0aGUgUklTQy1WIGtlcm5lbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUxNwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gcmVhc29uaW5nLCBhbmQgdGFpbG9yZWQgZm9yIGEgZmVsbG93IGV4cGVydDoKCioqS1ZNIERpcnR5IFBhZ2UgTG9nZ2luZyAtIENvbnRleHQgYW5kIFZlcmlmaWNhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgaW5pdGlhbCBhc3N1bXB0aW9uIGlzIHRoYXQgd2UgbmVlZCB0byBiZSBkZWFsaW5nIHdpdGggYEtWTWAuIEdvdCBpdC4gTm93LCBJJiMzOTttIHNlZWluZyB0aGF0IGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgIGlzIGEgZnVuY3Rpb24gYmVpbmcgY2FsbGVkLCBhbmQgaXQmIzM5O3MgY29taW5nIGZyb20gdGhlIGdlbmVyaWMgS1ZNIGxheWVyLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgbmVlZCBmb3IgZGVlcGVyIHNjcnV0aW55LiBJdCYjMzk7cyBhIHN0YW5kYXJkIHByYWN0aWNlIGF0IHRoaXMgbGV2ZWwgdG8gZW5zdXJlIGNvbXBsZXRlIHVuZGVyc3RhbmRpbmcuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSBleGFjdCBjYWxsIHNpdGVzIG9mIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgLiBJIG5lZWQgdG8gcHJlY2lzZWx5IGRldGVybWluZSAqd2hlcmUqIGl0JiMzOTtzIGJlaW5nIGludm9rZWQgd2l0aGluIHRoZSBicm9hZGVyIEtWTSBhcmNoaXRlY3R1cmUuIFRoYXQmIzM5O3MgYWJzb2x1dGVseSBjcml0aWNhbCBmb3IgY29tcHJlaGVuZGluZyB0aGUgaW50ZW5kZWQgYmVoYXZpb3IgYW5kIHBvdGVudGlhbCBzaWRlIGVmZmVjdHMgaW4gb3VyIGFyZWEgb2YgaW50ZXJlc3QuIExvY2F0aW5nIHRob3NlIGNhbGwgc2l0ZXMgd2lsbCBwcm92aWRlIHRoZSBuZWNlc3NhcnkgY29udGV4dCB0byBkZXRlcm1pbmUgaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDt2aXJ0L2t2bS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7dmlydC9rdm0vZGlydHlfcmluZy5jPTUzPXN0YXRpYyB2b2lkIGt2bV9yZXNldF9kaXJ0eV9nZm4oc3RydWN0IGt2bSAqa3ZtLCB1MzIgc2xvdCwgdTY0IG9mZnNldCwgdTY0IG1hc2spXG4tLVxudmlydC9rdm0vZGlydHlfcmluZy5jLTcwLVx0S1ZNX01NVV9MT0NLKGt2bSk7XG52aXJ0L2t2bS9kaXJ0eV9yaW5nLmM6NzE6XHRrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQoa3ZtLCBtZW1zbG90LCBvZmZzZXQsIG1hc2spO1xudmlydC9rdm0vZGlydHlfcmluZy5jLTcyLVx0S1ZNX01NVV9VTkxPQ0soa3ZtKTtcbi0tXG52aXJ0L2t2bS9rdm1fbWFpbi5jPTIyMjE9c3RhdGljIGludCBrdm1fZ2V0X2RpcnR5X2xvZ19wcm90ZWN0KHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9kaXJ0eV9sb2cgKmxvZylcbi0tXG52aXJ0L2t2bS9rdm1fbWFpbi5jLTIyNzctXHRcdFx0b2Zmc2V0ID0gaSAqIEJJVFNfUEVSX0xPTkc7XG52aXJ0L2t2bS9rdm1fbWFpbi5jOjIyNzg6XHRcdFx0a3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKGt2bSwgbWVtc2xvdCxcbnZpcnQva3ZtL2t2bV9tYWluLmMtMjI3OS1cdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LCBtYXNrKTtcbi0tXG52aXJ0L2t2bS9rdm1fbWFpbi5jPTIzMzE9c3RhdGljIGludCBrdm1fY2xlYXJfZGlydHlfbG9nX3Byb3RlY3Qoc3RydWN0IGt2bSAqa3ZtLFxuLS1cbnZpcnQva3ZtL2t2bV9tYWluLmMtMjM5NC1cdFx0XHRmbHVzaCA9IHRydWU7XG52aXJ0L2t2bS9rdm1fbWFpbi5jOjIzOTU6XHRcdFx0a3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKGt2bSwgbWVtc2xvdCxcbnZpcnQva3ZtL2t2bV9tYWluLmMtMjM5Ni1cdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LCBtYXNrKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI2MQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDI0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgVGhpcyBLVk0gRGlydHkgTG9nZ2luZyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgdGllZCB0byBLVk0mIzM5O3MgZGlydHkgbG9nZ2luZywgd2hpY2ggSSYjMzk7bSBmYW1pbGlhciB3aXRoLiBJIHNlZSBpdCBpbnRyb2R1Y2VzIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgYW5kIGBjbGVhcl9odWdlX21hc2tgLiBUaG9zZSBhcmUgdGhlIGtleSBzeW1ib2xzIHRvIGtlZXAgYW4gZXllIG9uLCBhbG9uZyB3aXRoIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgLiBXYWl0LCBgY2xlYXJfaHVnZV9tYXNrYCBpcyBzdGF0aWMgaW5saW5lLi4ucmlnaHQsIHNvIGl0IG1pZ2h0IG5vdCBldmVuIGJlIGEgc3ltYm9sLCBtYWtpbmcgaXQgaGFyZGVyIHRvIHRyYWNrIGRpcmVjdGx5LgoKSSBzaG91bGQgY2hlY2sgaWYgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBpcyBleHBvcnRlZCwgb3IganVzdCBhIHJlZ3VsYXIgZnVuY3Rpb24uIEkgcmVtZW1iZXIgc2VlaW5nIGBhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY2AgaW4gdGhlIHBhdGNoLiBJJiMzOTtsbCB0YWtlIGEgcXVpY2sgbG9vayB0aGVyZS4KClJlZ2FyZGluZyBjb25maWd1cmF0aW9ucywgYENPTkZJR19LVk1gIGlzIG9idmlvdXNseSB0aGUgbWFpbiBvbmUgdGhhdCBtYXR0ZXJzIGhlcmUuIGBDT05GSUdfUklTQ1ZgIGlzIGFscmVhZHkgaW1wbGljaXRseSBlbmFibGVkIGJlY2F1c2Ugb2YgdGhlIGFyY2hpdGVjdHVyZS4gSSBkb24mIzM5O3QgdGhpbmsgSSBuZWVkIHRvIHdvcnJ5IGFib3V0IGFueSBvdGhlciBjb25maWdzLiBJdCBsb29rcyBsaWtlIGp1c3QgYEtWTWAgaXMgYWxsIHRoYXQmIzM5O3MgcmVxdWlyZWQuCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgcHJlc2VuY2UgYW5kIHB1cnBvc2Ugb2YgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBpbiBgYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNgLiBMZXQmIzM5O3MganVzdCBkb3VibGUtY2hlY2sgdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYz00NzU9c3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2h1Z2VfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSxcbi0tXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYy00OTQtXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYzo0OTU6Ym9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcbmFyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jLTQ5Ni1cdFx0XHRcdCAgIHVuc2lnbmVkIGxvbmcgbWFzaylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk5NwoJCQkJCQkJb3V0cHV0OiAxMzgKCQkJCQkJCXRob3VnaHRzOiAxNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIFJJU0MtViBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkgc2VlIGl0JiMzOTtzIGEgbmV3IGZ1bmN0aW9uLCBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhpcyBpcyBzcGVjaWZpY2FsbHkgZm9yIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMsIGFuZCwgaW1wb3J0YW50bHksIGl0JiMzOTtzIHV0aWxpemluZyBhIG1hc2suIFRoaXMgcG9pbnRzIGRpcmVjdGx5IHRvIFJJU0MtViYjMzk7cyBLVk0gaW1wbGVtZW50YXRpb24sIGFuZCB0aGUgY29udGV4dCBjbGVhcmx5IGluZGljYXRlcyBpdCYjMzk7cyBjb25uZWN0ZWQgdG8gZGlydHkgcGFnZSBsb2dnaW5nLgoKVGhlcmVmb3JlLCBteSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHdpdGhpbiBLVk0mIzM5O3MgTU1VIGxvZ2ljLiBJdCYjMzk7cyBhIGNsZWFyIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhlIGtleSBlbGVtZW50cyB0aGF0IGNvbmZpcm0gdGhpcyBhcmU6CgoqICAgYFdvcnRoRnV6emluZzogdHJ1ZWAgLSBJIGFncmVlLiBBbnkgY2hhbmdlIHRvIE1NVS1sZXZlbCBmdW5jdGlvbmFsaXR5LCBlc3BlY2lhbGx5IG9uZSB0aGF0JiMzOTtzIGhhbmRsaW5nIHBhZ2UgdGFibGVzIGFuZCBkaXJ0eSBsb2dnaW5nLCBkZXNlcnZlcyB0aG9yb3VnaCBmdXp6aW5nLiBUaGVzZSBhcmUgY3JpdGljYWwgY29tcG9uZW50cyBwcm9uZSB0byBlcnJvcnMsIGVzcGVjaWFsbHkgd2l0aGluIHZpcnR1YWxpemF0aW9uLgoqICAgYEZvY3VzU3ltYm9sczoga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgLCBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYCAtIFNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIG5ldyBmdW5jdGlvbiBhbmQgdGhlIHJlbGF0ZWQgTU1VIGVuYWJsaW5nIGZ1bmN0aW9uIGlzIGV4YWN0bHkgd2hhdCBJIHdvdWxkIHJlY29tbWVuZC4gRnV6emluZyBib3RoIHByb3ZpZGVzIGEgdGhvcm91Z2ggdGVzdCBvZiBpbnRlcmFjdGlvbi4KKiAgIGBFbmFibGVDb25maWdzOiBLVk1gIC0gVGhlIGZvY3VzIG9uIEtWTSBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhlIGZ1bmN0aW9uJiMzOTtzIG5hbWUgYW5kIHB1cnBvc2UuCgpJbiBzaG9ydCwgaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoIGNsZWFyIHNlY3VyaXR5IGltcGxpY2F0aW9ucywgdGhhdCBpcyByZWxhdGVkIHRvIGEgdml0YWwgY29tcG9uZW50LiBJdCB3YXJyYW50cyB0aGUgZnV6emluZyB0aGF0IGlzIHN1Z2dlc3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo0MS41MDQ5Mjg4NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NDE3Nzc0NDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkXCIsXG4gICAgXCJrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEwOjExOjQxLjUwNDkzMzIyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjUwMzg2OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwMGRiMzY2MDkyOTZkMTE0NDYzMTQ2NmY5MmZhYmM2OTdjZGIwNTEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDE3IDEwOjExOjQwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcXG5pbmRleCAyMWUyMDE5ZGYwY2Y1Ny4uNTBjNzQ1MjdkZGQyOTcgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaFxcbkBAIC04Miw2ICs4Miw5IEBAIGJvb2wga3ZtX3Jpc2N2X2dzdGFnZV91bm1hcF9yYW5nZShzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLFxcbiBcXG4gYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdwYV90IHN0YXJ0LCBncGFfdCBlbmQpO1xcbiBcXG4rYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcXG4rXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgbG9uZyBtYXNrKTtcXG4rXFxuIHZvaWQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKTtcXG4gXFxuIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBrdm1fcmlzY3ZfZ3N0YWdlX21vZGUodW5zaWduZWQgbG9uZyBwZ2RfbGV2ZWxzKVxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXFxuaW5kZXggYzRjM2I3OTU2N2YxMGQuLjlhZjg2YjFjNWUzYzNkIDEwMDY0NFxcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXFxuKysrIGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNcXG5AQCAtNDcyLDYgKzQ3Miw2NSBAQCBib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2Uoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ3BhX3Qgc3RhcnQsIGdwYV90IGVuZFxcbiBcXHRyZXR1cm4gZmx1c2g7XFxuIH1cXG4gXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9odWdlX21hc2sodW5zaWduZWQgbG9uZyAqbWFzaywgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsXFxuK1xcdFxcdFxcdFxcdCAgIGdmbl90IGJhc2VfZ2ZuLCBncGFfdCBhZGRyKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgc3RhcnRfaW5kZXggPSAwO1xcbitcXHR1bnNpZ25lZCBsb25nIGVuZF9pbmRleCA9IEJJVFNfUEVSX0xPTkcgLSAxO1xcbitcXHR1bnNpZ25lZCBsb25nIGVuZF9nZm4gPSBiYXNlX2dmbiArIGVuZF9pbmRleDtcXG4rXFx0dW5zaWduZWQgbG9uZyBhbGlnbmVkX3N0YXJ0X2dmbiA9IGFkZHIgXFx1MDAzZVxcdTAwM2UgUEFHRV9TSElGVDtcXG4rXFx0dW5zaWduZWQgbG9uZyBhbGlnbmVkX2VuZF9nZm4gPSBhbGlnbmVkX3N0YXJ0X2dmbiArIChwYWdlX3NpemUgXFx1MDAzZVxcdTAwM2UgUEFHRV9TSElGVCkgLSAxO1xcbitcXHR1bnNpZ25lZCBpbnQgbmJpdHMgPSAwO1xcbitcXG4rXFx0aWYgKGFsaWduZWRfc3RhcnRfZ2ZuIFxcdTAwM2UgYmFzZV9nZm4pXFxuK1xcdFxcdHN0YXJ0X2luZGV4ID0gYWxpZ25lZF9zdGFydF9nZm4gLSBiYXNlX2dmbjtcXG4rXFxuK1xcdGlmIChhbGlnbmVkX2VuZF9nZm4gXFx1MDAzYyBlbmRfZ2ZuKVxcbitcXHRcXHRlbmRfaW5kZXggPSBhbGlnbmVkX2VuZF9nZm4gLSBiYXNlX2dmbjtcXG4rXFxuK1xcdG5iaXRzID0gZW5kX2luZGV4IC0gc3RhcnRfaW5kZXggKyAxO1xcbitcXHRiaXRtYXBfY2xlYXIobWFzaywgc3RhcnRfaW5kZXgsIG5iaXRzKTtcXG4rfVxcbitcXG4rYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcXG4rXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgbG9uZyBtYXNrKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplO1xcbitcXHRib29sIGZsdXNoID0gZmFsc2U7XFxuK1xcdGJvb2wgZm91bmRfbGVhZjtcXG4rXFx0dTMyIHB0ZXBfbGV2ZWw7XFxuK1xcdHB0ZV90ICpwdGVwO1xcbitcXHRncGFfdCBhZGRyID0gMDtcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdHdoaWxlIChtYXNrKSB7XFxuK1xcdFxcdGFkZHIgPSAoYmFzZV9nZm4gKyBfX2ZmcyhtYXNrKSkgXFx1MDAzY1xcdTAwM2MgUEFHRV9TSElGVDtcXG4rXFxuK1xcdFxcdGZvdW5kX2xlYWYgPSBrdm1fcmlzY3ZfZ3N0YWdlX2dldF9sZWFmKGdzdGFnZSwgYWRkciwgXFx1MDAyNnB0ZXAsIFxcdTAwMjZwdGVwX2xldmVsKTtcXG4rXFx0XFx0cmV0ID0gZ3N0YWdlX2xldmVsX3RvX3BhZ2Vfc2l6ZShnc3RhZ2UsIHB0ZXBfbGV2ZWwsIFxcdTAwMjZwYWdlX3NpemUpO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRicmVhaztcXG4rXFxuK1xcdFxcdGlmIChmb3VuZF9sZWFmKSB7XFxuK1xcdFxcdFxcdGlmIChwdGVwX2xldmVsKSB7XFxuK1xcdFxcdFxcdFxcdGFkZHIgPSBBTElHTl9ET1dOKGFkZHIsIHBhZ2Vfc2l6ZSk7XFxuK1xcdFxcdFxcdFxcdGNsZWFyX2h1Z2VfbWFzayhcXHUwMDI2bWFzaywgcGFnZV9zaXplLCBiYXNlX2dmbiwgYWRkcik7XFxuK1xcdFxcdFxcdH1cXG4rXFxuK1xcdFxcdFxcdGZsdXNoIHw9IGt2bV9yaXNjdl9nc3RhZ2Vfb3BfcHRlKGdzdGFnZSwgYWRkciwgcHRlcCxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHB0ZXBfbGV2ZWwsIEdTVEFHRV9PUF9XUCk7XFxuK1xcbitcXHRcXHRcXHRpZiAocHRlcF9sZXZlbClcXG4rXFx0XFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdH1cXG4rXFxuK1xcdFxcdC8qIGNsZWFyIHRoZSBmaXJzdCBzZXQgYml0Ki9cXG4rXFx0XFx0bWFzayBcXHUwMDI2PSBtYXNrIC0gMTtcXG4rXFx0fVxcbitcXG4rXFx0cmV0dXJuIGZsdXNoO1xcbit9XFxuK1xcbiB2b2lkIF9faW5pdCBrdm1fcmlzY3ZfZ3N0YWdlX21vZGVfZGV0ZWN0KHZvaWQpXFxuIHtcXG4gI2lmZGVmIENPTkZJR182NEJJVFxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9tbXUuYyBiL2FyY2gvcmlzY3Yva3ZtL21tdS5jXFxuaW5kZXggMDgyZjliMjYxNzMzODcuLjdlYWI1OGZmNjNmOWVhIDEwMDY0NFxcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jXFxuKysrIGIvYXJjaC9yaXNjdi9rdm0vbW11LmNcXG5AQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKHN0cnVjdCBrdm0gKmt2bSxcXG4gXFxuIFxcdGt2bV9yaXNjdl9nc3RhZ2VfaW5pdChcXHUwMDI2Z3N0YWdlLCBrdm0pO1xcbiBcXG4tXFx0Zmx1c2ggPSBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKFxcdTAwMjZnc3RhZ2UsIHN0YXJ0LCBlbmQpO1xcbitcXHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKFxcdTAwMjZnc3RhZ2UsIGJhc2VfZ2ZuLCBtYXNrKTtcXG4gXFx0aWYgKGZsdXNoKVxcbiBcXHRcXHRrdm1fZmx1c2hfcmVtb3RlX3RsYnNfcmFuZ2Uoa3ZtLCBzdGFydCBcXHUwMDNlXFx1MDAzZSBQQUdFX1NISUZULFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgKGVuZCAtIHN0YXJ0KSBcXHUwMDNlXFx1MDAzZSBQQUdFX1NISUZUKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NDIuMDMwNjc3Njk4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODg5MjAxNjY5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZFwiLFxuICAgIFwia3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIHRvIGhhbmRsZSB3cml0ZS1wcm90ZWN0aW5nIHBhZ2UgdGFibGVzIHdpdGggYSBtYXNrIGZvciBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c2VkIGR1cmluZyBkaXJ0eSBwYWdlIGxvZ2dpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gTU1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDAwZGIzNjYwOTI5NmQxMTQ0NjMxNDY2ZjkyZmFiYzY5N2NkYjA1MTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAxMDoxMTo0MCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcbmluZGV4IDIxZTIwMTlkZjBjZjU3Li41MGM3NDUyN2RkZDI5NyAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaFxuQEAgLTgyLDYgKzgyLDkgQEAgYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3VubWFwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsXG4gXG4gYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdwYV90IHN0YXJ0LCBncGFfdCBlbmQpO1xuIFxuK2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sXG4rXHRcdFx0XHQgICB1bnNpZ25lZCBsb25nIG1hc2spO1xuK1xuIHZvaWQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKTtcbiBcbiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlKHVuc2lnbmVkIGxvbmcgcGdkX2xldmVscylcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXG5pbmRleCBjNGMzYjc5NTY3ZjEwZC4uOWFmODZiMWM1ZTNjM2QgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY1xuKysrIGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNcbkBAIC00NzIsNiArNDcyLDY1IEBAIGJvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9yYW5nZShzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBncGFfdCBzdGFydCwgZ3BhX3QgZW5kXG4gXHRyZXR1cm4gZmx1c2g7XG4gfVxuIFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9odWdlX21hc2sodW5zaWduZWQgbG9uZyAqbWFzaywgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsXG4rXHRcdFx0XHQgICBnZm5fdCBiYXNlX2dmbiwgZ3BhX3QgYWRkcilcbit7XG4rXHR1bnNpZ25lZCBsb25nIHN0YXJ0X2luZGV4ID0gMDtcbitcdHVuc2lnbmVkIGxvbmcgZW5kX2luZGV4ID0gQklUU19QRVJfTE9ORyAtIDE7XG4rXHR1bnNpZ25lZCBsb25nIGVuZF9nZm4gPSBiYXNlX2dmbiArIGVuZF9pbmRleDtcbitcdHVuc2lnbmVkIGxvbmcgYWxpZ25lZF9zdGFydF9nZm4gPSBhZGRyIFx1MDAzZVx1MDAzZSBQQUdFX1NISUZUO1xuK1x0dW5zaWduZWQgbG9uZyBhbGlnbmVkX2VuZF9nZm4gPSBhbGlnbmVkX3N0YXJ0X2dmbiArIChwYWdlX3NpemUgXHUwMDNlXHUwMDNlIFBBR0VfU0hJRlQpIC0gMTtcbitcdHVuc2lnbmVkIGludCBuYml0cyA9IDA7XG4rXG4rXHRpZiAoYWxpZ25lZF9zdGFydF9nZm4gXHUwMDNlIGJhc2VfZ2ZuKVxuK1x0XHRzdGFydF9pbmRleCA9IGFsaWduZWRfc3RhcnRfZ2ZuIC0gYmFzZV9nZm47XG4rXG4rXHRpZiAoYWxpZ25lZF9lbmRfZ2ZuIFx1MDAzYyBlbmRfZ2ZuKVxuK1x0XHRlbmRfaW5kZXggPSBhbGlnbmVkX2VuZF9nZm4gLSBiYXNlX2dmbjtcbitcbitcdG5iaXRzID0gZW5kX2luZGV4IC0gc3RhcnRfaW5kZXggKyAxO1xuK1x0Yml0bWFwX2NsZWFyKG1hc2ssIHN0YXJ0X2luZGV4LCBuYml0cyk7XG4rfVxuK1xuK2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sXG4rXHRcdFx0XHQgICB1bnNpZ25lZCBsb25nIG1hc2spXG4re1xuK1x0dW5zaWduZWQgbG9uZyBwYWdlX3NpemU7XG4rXHRib29sIGZsdXNoID0gZmFsc2U7XG4rXHRib29sIGZvdW5kX2xlYWY7XG4rXHR1MzIgcHRlcF9sZXZlbDtcbitcdHB0ZV90ICpwdGVwO1xuK1x0Z3BhX3QgYWRkciA9IDA7XG4rXHRpbnQgcmV0O1xuK1xuK1x0d2hpbGUgKG1hc2spIHtcbitcdFx0YWRkciA9IChiYXNlX2dmbiArIF9fZmZzKG1hc2spKSBcdTAwM2NcdTAwM2MgUEFHRV9TSElGVDtcbitcbitcdFx0Zm91bmRfbGVhZiA9IGt2bV9yaXNjdl9nc3RhZ2VfZ2V0X2xlYWYoZ3N0YWdlLCBhZGRyLCBcdTAwMjZwdGVwLCBcdTAwMjZwdGVwX2xldmVsKTtcbitcdFx0cmV0ID0gZ3N0YWdlX2xldmVsX3RvX3BhZ2Vfc2l6ZShnc3RhZ2UsIHB0ZXBfbGV2ZWwsIFx1MDAyNnBhZ2Vfc2l6ZSk7XG4rXHRcdGlmIChyZXQpXG4rXHRcdFx0YnJlYWs7XG4rXG4rXHRcdGlmIChmb3VuZF9sZWFmKSB7XG4rXHRcdFx0aWYgKHB0ZXBfbGV2ZWwpIHtcbitcdFx0XHRcdGFkZHIgPSBBTElHTl9ET1dOKGFkZHIsIHBhZ2Vfc2l6ZSk7XG4rXHRcdFx0XHRjbGVhcl9odWdlX21hc2soXHUwMDI2bWFzaywgcGFnZV9zaXplLCBiYXNlX2dmbiwgYWRkcik7XG4rXHRcdFx0fVxuK1xuK1x0XHRcdGZsdXNoIHw9IGt2bV9yaXNjdl9nc3RhZ2Vfb3BfcHRlKGdzdGFnZSwgYWRkciwgcHRlcCxcbitcdFx0XHRcdFx0XHRcdCBwdGVwX2xldmVsLCBHU1RBR0VfT1BfV1ApO1xuK1xuK1x0XHRcdGlmIChwdGVwX2xldmVsKVxuK1x0XHRcdFx0Y29udGludWU7XG4rXHRcdH1cbitcbitcdFx0LyogY2xlYXIgdGhlIGZpcnN0IHNldCBiaXQqL1xuK1x0XHRtYXNrIFx1MDAyNj0gbWFzayAtIDE7XG4rXHR9XG4rXG4rXHRyZXR1cm4gZmx1c2g7XG4rfVxuK1xuIHZvaWQgX19pbml0IGt2bV9yaXNjdl9nc3RhZ2VfbW9kZV9kZXRlY3Qodm9pZClcbiB7XG4gI2lmZGVmIENPTkZJR182NEJJVFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jIGIvYXJjaC9yaXNjdi9rdm0vbW11LmNcbmluZGV4IDA4MmY5YjI2MTczMzg3Li43ZWFiNThmZjYzZjllYSAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jXG4rKysgYi9hcmNoL3Jpc2N2L2t2bS9tbXUuY1xuQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZChzdHJ1Y3Qga3ZtICprdm0sXG4gXG4gXHRrdm1fcmlzY3ZfZ3N0YWdlX2luaXQoXHUwMDI2Z3N0YWdlLCBrdm0pO1xuIFxuLVx0Zmx1c2ggPSBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKFx1MDAyNmdzdGFnZSwgc3RhcnQsIGVuZCk7XG4rXHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKFx1MDAyNmdzdGFnZSwgYmFzZV9nZm4sIG1hc2spO1xuIFx0aWYgKGZsdXNoKVxuIFx0XHRrdm1fZmx1c2hfcmVtb3RlX3RsYnNfcmFuZ2Uoa3ZtLCBzdGFydCBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVCxcbiBcdFx0XHRcdFx0ICAgIChlbmQgLSBzdGFydCkgXHUwMDNlXHUwMDNlIFBBR0VfU0hJRlQpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NDIuMDMwNjgwODE4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQzNjI5NjE5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIE1NVSBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2gg4oCTIGl0IGxvb2tzIGxpa2UgaXQncyB0b3VjaGluZyBgYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNgIGFuZCBgYXJjaC9yaXNjdi9rdm0vbW11LmNgLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBteSBhdHRlbnRpb24uIFNwZWNpZmljYWxseSwgdGhlIHBhdGNoIGludHJvZHVjZXMgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBhbmQgaW5jb3Jwb3JhdGVzIGl0IGludG8gYGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZGAuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIG1vZGlmaWNhdGlvbiB3aXRoaW4gdGhlIFJJU0MtViBLVk0gTWVtb3J5IE1hbmFnZW1lbnQgVW5pdCAoTU1VKSBjb2RlLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCBmdWxseS5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkhvdyByZWFjaGFibGUgaXMgdGhpcyBjb2RlIHBhdGg/XCIgYW5kIFwiV2hhdCBjb25maWd1cmF0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgYWN0aXZlP1wiIEknbGwgc3RhcnQgYnkgdHJhY2luZyB0aGUgY2FsbHMgYW5kIGRlcGVuZGVuY2llcyB0byBmaWd1cmUgb3V0IHRoZSBjb250ZXh0IG9mIHRoaXMgZnVuY3Rpb24uIEdpdmVuIHRoZSBmaWxlIGxvY2F0aW9ucyBhcmUgd2l0aGluIGBhcmNoL3Jpc2N2L2t2bS9gLCBJJ2xsIHN0YXJ0IHdpdGggdGhlIG9idmlvdXMsIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gYENPTkZJR19LVk1gIGZvciBSSVNDLVYgc3lzdGVtcy4gVGhhdCB3aWxsIGJlIHRoZSBmb3VuZGF0aW9uLlxuXG5Ob3csIGxldCdzIGxvY2F0ZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgYGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZGAgd2l0aGluIGBhcmNoL3Jpc2N2L2t2bS9tbXUuY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCBpcyBjaGFuZ2VkIG9yIGludHJvZHVjZWQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIE1NVSBsb2dpYy4gRnJvbSB0aGVyZSwgSSBjYW4gZGV0ZXJtaW5lIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UsIGlmIGl0IGhhcyBhbnkgcGVyZm9ybWFuY2Ugb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zLCBhbmQgZGV0ZXJtaW5lIGhvdyB0byB2ZXJpZnkgdGhlIG1vZGlmaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMjQsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo0Ny40NjY5NzkyODZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIwNDU0Njk1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vbW11LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vbW11LmM9ODQ9dm9pZCBrdm1fcmlzY3ZfbW11X2lvdW5tYXAoc3RydWN0IGt2bSAqa3ZtLCBncGFfdCBncGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL21tdS5jLTk5LVxcbmFyY2gvcmlzY3Yva3ZtL21tdS5jOjEwMDp2b2lkIGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZChzdHJ1Y3Qga3ZtICprdm0sXFxuYXJjaC9yaXNjdi9rdm0vbW11LmMtMTAxLVxcdFxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqc2xvdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NDguNjcxNTMxMjc4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2Nzg0NzA4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBhcmNoL3Jpc2N2L2t2bS9tbXUuY2AgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucyBmb3IgYGFyY2gvcmlzY3Yva3ZtL21tdS5jYC4gUmlnaHQsIEknbSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIG1lbW9yeSBtYW5hZ2VtZW50IHVuaXQgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGUgS1ZNIGNvbnRleHQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBHaXZlbiB0aGUgZmlsZSBuYW1lLCBpdCdzIHByZXR0eSBjbGVhciB0aGlzIGlzIGEgY29yZSBwaWVjZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBkZWZpbmVzIHRoZSBjcml0aWNhbCBkZXBlbmRlbmNpZXMuXG5cbk15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgS2NvbmZpZyBhbmQgZGVmY29uZmlnIGZpbGVzLiBJIGtub3cgUklTQy1WIEtWTSBpcyBzdGlsbCBldm9sdmluZy4gQXJlIHRoZXJlIHZhcmlvdXMgTU1VIGltcGxlbWVudGF0aW9ucyBzdXBwb3J0ZWQgb3IgYSBzaW5nbGUsIHN0YW5kYXJkaXplZCBvbmUgdGhhdCB0aGlzIGZpbGUgaW1wbGVtZW50cz8gV2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCBhbmQgaG93IGNhbiB0aG9zZSBiZSBtb2RpZmllZCBmb3IgY3VzdG9tIGNvbmZpZ3VyYXRpb25zLiBUaGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaW5ncyBsaWtlIHBhZ2UgdGFibGUgZm9ybWF0cywgYWRkcmVzcyBzcGFjZSBsYXlvdXRzLCBhbmQgbmVzdGVkIHZpcnR1YWxpemF0aW9uIC0gd2hpY2ggc2V0dGluZ3MgaW5mbHVlbmNlIHRob3NlIGFzcGVjdHM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgTU1VIGNvbmZpZ3VyYXRpb24gdGllcyBpbiB3aXRoIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlJ3MgdmlydHVhbCBtZW1vcnkgZXh0ZW5zaW9ucyBhbmQgYW55IGN1c3RvbSBleHRlbnNpb25zIHJlbGV2YW50IHRvIEtWTS4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBrZXkgZGVmaW5lcyBhcmUgcmVsZXZhbnQgYW5kIHdoaWNoIG9uZXMgbXVzdCBiZSBkZWZpbmVkIGluIHRoZSBidWlsZCBwcm9jZXNzLiBJJ20gZ29pbmcgdG8gbG9vayBhdCByZWxhdGVkIGZpbGVzIHRvIGVuc3VyZSBJIGdldCBhIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzczNywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEwOjExOjUyLjMzOTM4MDI1NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTk4NjAyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbXUub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT0xOT1rdm0teSArPSBtYWluLm9cXG5hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZToyMDprdm0teSArPSBtbXUub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlLTIxLWt2bS15ICs9IG5hY2wub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo1Mi4zOTkzNzE1OTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ3MTY1MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyBmb3IgS1ZNIChSSVNDLVYpKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byBzb21ldGhpbmcgcmVsYXRlZCB0byBga3ZtLXlgIOKAkyB3aGljaCBzdHJvbmdseSBzdWdnZXN0cyBLVk0gc3VwcG9ydCBpcyBpbXBsaWNhdGVkIGhlcmUuIE5hdHVyYWxseSwgdGhhdCBtZWFucyBgQ09ORklHX0tWTWAgbmVlZHMgdG8gYmUgZW5hYmxlZC4gSSBjYW4ndCBpbWFnaW5lIHRoaXMgYmVpbmcgYW55dGhpbmcgKm90aGVyKiB0aGFuIEtWTS1yZWxhdGVkIGlmIGl0J3MgZ290IHRoYXQgbmFtaW5nIGNvbnZlbnRpb24uXG5cblRvIGNvbmZpcm0gYW5kIHVuZGVyc3RhbmQgdGhlIHByZWNpc2UgZGVwZW5kZW5jaWVzLCBJIHNob3VsZCBpbW1lZGlhdGVseSBsb29rIGF0IHRoZSBLY29uZmlnIGZpbGUgc3BlY2lmaWMgdG8gdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUuIEknbGwgbmVlZCB0byBjaGVjayBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBJJ2xsIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgcmVsYXRpb25zaGlwcy4gSSBhbnRpY2lwYXRlIGl0J2xsIHNoZWQgbGlnaHQgb24gdGhlIGZpbmVyIHBvaW50cyBvZiBob3cgS1ZNIHN1cHBvcnQgaXMgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIFJJU0MtViBrZXJuZWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNTcsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo1NS43NDY1MzgzOTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyMTMwODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEwOjExOjU1LjkxODY3MzQzNVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MzU2NjM5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZywgYW5kIHRhaWxvcmVkIGZvciBhIGZlbGxvdyBleHBlcnQ6XG5cbioqS1ZNIERpcnR5IFBhZ2UgTG9nZ2luZyAtIENvbnRleHQgYW5kIFZlcmlmaWNhdGlvbioqXG5cbkFscmlnaHQsIHNvIHRoZSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhhdCB3ZSBuZWVkIHRvIGJlIGRlYWxpbmcgd2l0aCBgS1ZNYC4gR290IGl0LiBOb3csIEknbSBzZWVpbmcgdGhhdCBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYCBpcyBhIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCwgYW5kIGl0J3MgY29taW5nIGZyb20gdGhlIGdlbmVyaWMgS1ZNIGxheWVyLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgbmVlZCBmb3IgZGVlcGVyIHNjcnV0aW55LiBJdCdzIGEgc3RhbmRhcmQgcHJhY3RpY2UgYXQgdGhpcyBsZXZlbCB0byBlbnN1cmUgY29tcGxldGUgdW5kZXJzdGFuZGluZy5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgZXhhY3QgY2FsbCBzaXRlcyBvZiBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYC4gSSBuZWVkIHRvIHByZWNpc2VseSBkZXRlcm1pbmUgKndoZXJlKiBpdCdzIGJlaW5nIGludm9rZWQgd2l0aGluIHRoZSBicm9hZGVyIEtWTSBhcmNoaXRlY3R1cmUuIFRoYXQncyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGZvciBjb21wcmVoZW5kaW5nIHRoZSBpbnRlbmRlZCBiZWhhdmlvciBhbmQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBpbiBvdXIgYXJlYSBvZiBpbnRlcmVzdC4gTG9jYXRpbmcgdGhvc2UgY2FsbCBzaXRlcyB3aWxsIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBjb250ZXh0IHRvIGRldGVybWluZSBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MTcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo1OS42NTQzMzkyOTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzY3NjU2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwidmlydC9rdm0vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcInZpcnQva3ZtL2RpcnR5X3JpbmcuYz01Mz1zdGF0aWMgdm9pZCBrdm1fcmVzZXRfZGlydHlfZ2ZuKHN0cnVjdCBrdm0gKmt2bSwgdTMyIHNsb3QsIHU2NCBvZmZzZXQsIHU2NCBtYXNrKVxcbi0tXFxudmlydC9rdm0vZGlydHlfcmluZy5jLTcwLVxcdEtWTV9NTVVfTE9DSyhrdm0pO1xcbnZpcnQva3ZtL2RpcnR5X3JpbmcuYzo3MTpcXHRrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQoa3ZtLCBtZW1zbG90LCBvZmZzZXQsIG1hc2spO1xcbnZpcnQva3ZtL2RpcnR5X3JpbmcuYy03Mi1cXHRLVk1fTU1VX1VOTE9DSyhrdm0pO1xcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYz0yMjIxPXN0YXRpYyBpbnQga3ZtX2dldF9kaXJ0eV9sb2dfcHJvdGVjdChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fZGlydHlfbG9nICpsb2cpXFxuLS1cXG52aXJ0L2t2bS9rdm1fbWFpbi5jLTIyNzctXFx0XFx0XFx0b2Zmc2V0ID0gaSAqIEJJVFNfUEVSX0xPTkc7XFxudmlydC9rdm0va3ZtX21haW4uYzoyMjc4OlxcdFxcdFxcdGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZChrdm0sIG1lbXNsb3QsXFxudmlydC9rdm0va3ZtX21haW4uYy0yMjc5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG9mZnNldCwgbWFzayk7XFxuLS1cXG52aXJ0L2t2bS9rdm1fbWFpbi5jPTIzMzE9c3RhdGljIGludCBrdm1fY2xlYXJfZGlydHlfbG9nX3Byb3RlY3Qoc3RydWN0IGt2bSAqa3ZtLFxcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYy0yMzk0LVxcdFxcdFxcdGZsdXNoID0gdHJ1ZTtcXG52aXJ0L2t2bS9rdm1fbWFpbi5jOjIzOTU6XFx0XFx0XFx0a3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKGt2bSwgbWVtc2xvdCxcXG52aXJ0L2t2bS9rdm1fbWFpbi5jLTIzOTYtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0b2Zmc2V0LCBtYXNrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NTkuNzYyMDIxODc5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxOTkwNTI1NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFRoaXMgS1ZNIERpcnR5IExvZ2dpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgdGllZCB0byBLVk0ncyBkaXJ0eSBsb2dnaW5nLCB3aGljaCBJJ20gZmFtaWxpYXIgd2l0aC4gSSBzZWUgaXQgaW50cm9kdWNlcyBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIGFuZCBgY2xlYXJfaHVnZV9tYXNrYC4gVGhvc2UgYXJlIHRoZSBrZXkgc3ltYm9scyB0byBrZWVwIGFuIGV5ZSBvbiwgYWxvbmcgd2l0aCBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYC4gV2FpdCwgYGNsZWFyX2h1Z2VfbWFza2AgaXMgc3RhdGljIGlubGluZS4uLnJpZ2h0LCBzbyBpdCBtaWdodCBub3QgZXZlbiBiZSBhIHN5bWJvbCwgbWFraW5nIGl0IGhhcmRlciB0byB0cmFjayBkaXJlY3RseS5cblxuSSBzaG91bGQgY2hlY2sgaWYgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBpcyBleHBvcnRlZCwgb3IganVzdCBhIHJlZ3VsYXIgZnVuY3Rpb24uIEkgcmVtZW1iZXIgc2VlaW5nIGBhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY2AgaW4gdGhlIHBhdGNoLiBJJ2xsIHRha2UgYSBxdWljayBsb29rIHRoZXJlLlxuXG5SZWdhcmRpbmcgY29uZmlndXJhdGlvbnMsIGBDT05GSUdfS1ZNYCBpcyBvYnZpb3VzbHkgdGhlIG1haW4gb25lIHRoYXQgbWF0dGVycyBoZXJlLiBgQ09ORklHX1JJU0NWYCBpcyBhbHJlYWR5IGltcGxpY2l0bHkgZW5hYmxlZCBiZWNhdXNlIG9mIHRoZSBhcmNoaXRlY3R1cmUuIEkgZG9uJ3QgdGhpbmsgSSBuZWVkIHRvIHdvcnJ5IGFib3V0IGFueSBvdGhlciBjb25maWdzLiBJdCBsb29rcyBsaWtlIGp1c3QgYEtWTWAgaXMgYWxsIHRoYXQncyByZXF1aXJlZC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHByZXNlbmNlIGFuZCBwdXJwb3NlIG9mIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgaW4gYGFyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jYC4gTGV0J3MganVzdCBkb3VibGUtY2hlY2sgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI2MSwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMjowNC45NjEwNzY2MzJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MDkwODQxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYz00NzU9c3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2h1Z2VfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jLTQ5NC1cXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYzo0OTU6Ym9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYy00OTYtXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgbG9uZyBtYXNrKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMjowNS4xNDE5OTAwNThaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY5NzQ1MjYxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBLVk0gUklTQy1WIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBJIHNlZSBpdCdzIGEgbmV3IGZ1bmN0aW9uLCBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhpcyBpcyBzcGVjaWZpY2FsbHkgZm9yIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMsIGFuZCwgaW1wb3J0YW50bHksIGl0J3MgdXRpbGl6aW5nIGEgbWFzay4gVGhpcyBwb2ludHMgZGlyZWN0bHkgdG8gUklTQy1WJ3MgS1ZNIGltcGxlbWVudGF0aW9uLCBhbmQgdGhlIGNvbnRleHQgY2xlYXJseSBpbmRpY2F0ZXMgaXQncyBjb25uZWN0ZWQgdG8gZGlydHkgcGFnZSBsb2dnaW5nLlxuXG5UaGVyZWZvcmUsIG15IGNvbmNsdXNpb24gaXMgdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gd2l0aGluIEtWTSdzIE1NVSBsb2dpYy4gSXQncyBhIGNsZWFyIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhlIGtleSBlbGVtZW50cyB0aGF0IGNvbmZpcm0gdGhpcyBhcmU6XG5cbiogICBgV29ydGhGdXp6aW5nOiB0cnVlYCAtIEkgYWdyZWUuIEFueSBjaGFuZ2UgdG8gTU1VLWxldmVsIGZ1bmN0aW9uYWxpdHksIGVzcGVjaWFsbHkgb25lIHRoYXQncyBoYW5kbGluZyBwYWdlIHRhYmxlcyBhbmQgZGlydHkgbG9nZ2luZywgZGVzZXJ2ZXMgdGhvcm91Z2ggZnV6emluZy4gVGhlc2UgYXJlIGNyaXRpY2FsIGNvbXBvbmVudHMgcHJvbmUgdG8gZXJyb3JzLCBlc3BlY2lhbGx5IHdpdGhpbiB2aXJ0dWFsaXphdGlvbi5cbiogICBgRm9jdXNTeW1ib2xzOiBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAsIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgIC0gU3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgbmV3IGZ1bmN0aW9uIGFuZCB0aGUgcmVsYXRlZCBNTVUgZW5hYmxpbmcgZnVuY3Rpb24gaXMgZXhhY3RseSB3aGF0IEkgd291bGQgcmVjb21tZW5kLiBGdXp6aW5nIGJvdGggcHJvdmlkZXMgYSB0aG9yb3VnaCB0ZXN0IG9mIGludGVyYWN0aW9uLlxuKiAgIGBFbmFibGVDb25maWdzOiBLVk1gIC0gVGhlIGZvY3VzIG9uIEtWTSBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhlIGZ1bmN0aW9uJ3MgbmFtZSBhbmQgcHVycG9zZS5cblxuSW4gc2hvcnQsIGl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoIGNsZWFyIHNlY3VyaXR5IGltcGxpY2F0aW9ucywgdGhhdCBpcyByZWxhdGVkIHRvIGEgdml0YWwgY29tcG9uZW50LiBJdCB3YXJyYW50cyB0aGUgZnV6emluZyB0aGF0IGlzIHN1Z2dlc3RlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk5NywiT3V0cHV0VG9rZW5zIjoxMzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTI6MTAuODM5NDQ0OTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzI0NDQ1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRcIixcbiAgICBcImt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCB0byBoYW5kbGUgd3JpdGUtcHJvdGVjdGluZyBwYWdlIHRhYmxlcyB3aXRoIGEgbWFzayBmb3IgUklTQy1WIEtWTSwgd2hpY2ggaXMgdXNlZCBkdXJpbmcgZGlydHkgcGFnZSBsb2dnaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIE1NVSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZFwiLFxuICAgIFwia3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIHRvIGhhbmRsZSB3cml0ZS1wcm90ZWN0aW5nIHBhZ2UgdGFibGVzIHdpdGggYSBtYXNrIGZvciBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c2VkIGR1cmluZyBkaXJ0eSBwYWdlIGxvZ2dpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gTU1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 09:58:59 +0000 UTC FinishedAt: 2026-07-17 10:12:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "98a43658-4258-4a41-b87e-e7d15077716d" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_riscv_gstage_wp_pt_masked", "kvm_arch_mmu_enable_log_dirty_pt_masked" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMGRiMzY2MDkyOTZkMTE0NDYzMTQ2NmY5MmZhYmM2OTdjZGIwNTEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMTA6MTE6NDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaFxuaW5kZXggMjFlMjAxOWRmMGNmNTcuLjUwYzc0NTI3ZGRkMjk3IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oXG5AQCAtODIsNiAmIzQzOzgyLDkgQEAgYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3VubWFwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsXG4gXG4gYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdwYV90IHN0YXJ0LCBncGFfdCBlbmQpO1xuIFxuJiM0Mztib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdmbl90IGJhc2VfZ2ZuLFxuJiM0MztcdFx0XHRcdCAgIHVuc2lnbmVkIGxvbmcgbWFzayk7XG4mIzQzO1xuIHZvaWQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKTtcbiBcbiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlKHVuc2lnbmVkIGxvbmcgcGdkX2xldmVscylcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXG5pbmRleCBjNGMzYjc5NTY3ZjEwZC4uOWFmODZiMWM1ZTNjM2QgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNcbkBAIC00NzIsNiAmIzQzOzQ3Miw2NSBAQCBib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2Uoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ3BhX3Qgc3RhcnQsIGdwYV90IGVuZFxuIFx0cmV0dXJuIGZsdXNoO1xuIH1cbiBcbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2h1Z2VfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSxcbiYjNDM7XHRcdFx0XHQgICBnZm5fdCBiYXNlX2dmbiwgZ3BhX3QgYWRkcilcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgc3RhcnRfaW5kZXggPSAwO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgZW5kX2luZGV4ID0gQklUU19QRVJfTE9ORyAtIDE7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBlbmRfZ2ZuID0gYmFzZV9nZm4gJiM0MzsgZW5kX2luZGV4O1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgYWxpZ25lZF9zdGFydF9nZm4gPSBhZGRyIFx1MDAzZVx1MDAzZSBQQUdFX1NISUZUO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgYWxpZ25lZF9lbmRfZ2ZuID0gYWxpZ25lZF9zdGFydF9nZm4gJiM0MzsgKHBhZ2Vfc2l6ZSBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVCkgLSAxO1xuJiM0MztcdHVuc2lnbmVkIGludCBuYml0cyA9IDA7XG4mIzQzO1xuJiM0MztcdGlmIChhbGlnbmVkX3N0YXJ0X2dmbiBcdTAwM2UgYmFzZV9nZm4pXG4mIzQzO1x0XHRzdGFydF9pbmRleCA9IGFsaWduZWRfc3RhcnRfZ2ZuIC0gYmFzZV9nZm47XG4mIzQzO1xuJiM0MztcdGlmIChhbGlnbmVkX2VuZF9nZm4gXHUwMDNjIGVuZF9nZm4pXG4mIzQzO1x0XHRlbmRfaW5kZXggPSBhbGlnbmVkX2VuZF9nZm4gLSBiYXNlX2dmbjtcbiYjNDM7XG4mIzQzO1x0bmJpdHMgPSBlbmRfaW5kZXggLSBzdGFydF9pbmRleCAmIzQzOyAxO1xuJiM0MztcdGJpdG1hcF9jbGVhcihtYXNrLCBzdGFydF9pbmRleCwgbmJpdHMpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdmbl90IGJhc2VfZ2ZuLFxuJiM0MztcdFx0XHRcdCAgIHVuc2lnbmVkIGxvbmcgbWFzaylcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplO1xuJiM0MztcdGJvb2wgZmx1c2ggPSBmYWxzZTtcbiYjNDM7XHRib29sIGZvdW5kX2xlYWY7XG4mIzQzO1x0dTMyIHB0ZXBfbGV2ZWw7XG4mIzQzO1x0cHRlX3QgKnB0ZXA7XG4mIzQzO1x0Z3BhX3QgYWRkciA9IDA7XG4mIzQzO1x0aW50IHJldDtcbiYjNDM7XG4mIzQzO1x0d2hpbGUgKG1hc2spIHtcbiYjNDM7XHRcdGFkZHIgPSAoYmFzZV9nZm4gJiM0MzsgX19mZnMobWFzaykpIFx1MDAzY1x1MDAzYyBQQUdFX1NISUZUO1xuJiM0MztcbiYjNDM7XHRcdGZvdW5kX2xlYWYgPSBrdm1fcmlzY3ZfZ3N0YWdlX2dldF9sZWFmKGdzdGFnZSwgYWRkciwgXHUwMDI2cHRlcCwgXHUwMDI2cHRlcF9sZXZlbCk7XG4mIzQzO1x0XHRyZXQgPSBnc3RhZ2VfbGV2ZWxfdG9fcGFnZV9zaXplKGdzdGFnZSwgcHRlcF9sZXZlbCwgXHUwMDI2cGFnZV9zaXplKTtcbiYjNDM7XHRcdGlmIChyZXQpXG4mIzQzO1x0XHRcdGJyZWFrO1xuJiM0MztcbiYjNDM7XHRcdGlmIChmb3VuZF9sZWFmKSB7XG4mIzQzO1x0XHRcdGlmIChwdGVwX2xldmVsKSB7XG4mIzQzO1x0XHRcdFx0YWRkciA9IEFMSUdOX0RPV04oYWRkciwgcGFnZV9zaXplKTtcbiYjNDM7XHRcdFx0XHRjbGVhcl9odWdlX21hc2soXHUwMDI2bWFzaywgcGFnZV9zaXplLCBiYXNlX2dmbiwgYWRkcik7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XG4mIzQzO1x0XHRcdGZsdXNoIHw9IGt2bV9yaXNjdl9nc3RhZ2Vfb3BfcHRlKGdzdGFnZSwgYWRkciwgcHRlcCxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgcHRlcF9sZXZlbCwgR1NUQUdFX09QX1dQKTtcbiYjNDM7XG4mIzQzO1x0XHRcdGlmIChwdGVwX2xldmVsKVxuJiM0MztcdFx0XHRcdGNvbnRpbnVlO1xuJiM0MztcdFx0fVxuJiM0MztcbiYjNDM7XHRcdC8qIGNsZWFyIHRoZSBmaXJzdCBzZXQgYml0Ki9cbiYjNDM7XHRcdG1hc2sgXHUwMDI2PSBtYXNrIC0gMTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHJldHVybiBmbHVzaDtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIF9faW5pdCBrdm1fcmlzY3ZfZ3N0YWdlX21vZGVfZGV0ZWN0KHZvaWQpXG4ge1xuICNpZmRlZiBDT05GSUdfNjRCSVRcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9tbXUuYyBiL2FyY2gvcmlzY3Yva3ZtL21tdS5jXG5pbmRleCAwODJmOWIyNjE3MzM4Ny4uN2VhYjU4ZmY2M2Y5ZWEgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9tbXUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vbW11LmNcbkBAIC0xMTAsNyAmIzQzOzExMCw3IEBAIHZvaWQga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKHN0cnVjdCBrdm0gKmt2bSxcbiBcbiBcdGt2bV9yaXNjdl9nc3RhZ2VfaW5pdChcdTAwMjZnc3RhZ2UsIGt2bSk7XG4gXG4tXHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2UoXHUwMDI2Z3N0YWdlLCBzdGFydCwgZW5kKTtcbiYjNDM7XHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKFx1MDAyNmdzdGFnZSwgYmFzZV9nZm4sIG1hc2spO1xuIFx0aWYgKGZsdXNoKVxuIFx0XHRrdm1fZmx1c2hfcmVtb3RlX3RsYnNfcmFuZ2Uoa3ZtLCBzdGFydCBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVCxcbiBcdFx0XHRcdFx0ICAgIChlbmQgLSBzdGFydCkgXHUwMDNlXHUwMDNlIFBBR0VfU0hJRlQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDAwZGIzNjYwOTI5NmQxMTQ0NjMxNDY2ZjkyZmFiYzY5N2NkYjA1MTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxNyAxMDoxMTo0MCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmgKaW5kZXggMjFlMjAxOWRmMGNmNTcuLjUwYzc0NTI3ZGRkMjk3IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaApAQCAtODIsNiAmIzQzOzgyLDkgQEAgYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3VubWFwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsCiAKIGJvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9yYW5nZShzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBncGFfdCBzdGFydCwgZ3BhX3QgZW5kKTsKIAomIzQzO2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sCiYjNDM7CQkJCSAgIHVuc2lnbmVkIGxvbmcgbWFzayk7CiYjNDM7CiB2b2lkIGt2bV9yaXNjdl9nc3RhZ2VfbW9kZV9kZXRlY3Qodm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBrdm1fcmlzY3ZfZ3N0YWdlX21vZGUodW5zaWduZWQgbG9uZyBwZ2RfbGV2ZWxzKQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmMgYi9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYwppbmRleCBjNGMzYjc5NTY3ZjEwZC4uOWFmODZiMWM1ZTNjM2QgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jCkBAIC00NzIsNiAmIzQzOzQ3Miw2NSBAQCBib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2Uoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ3BhX3Qgc3RhcnQsIGdwYV90IGVuZAogCXJldHVybiBmbHVzaDsKIH0KIAomIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9odWdlX21hc2sodW5zaWduZWQgbG9uZyAqbWFzaywgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsCiYjNDM7CQkJCSAgIGdmbl90IGJhc2VfZ2ZuLCBncGFfdCBhZGRyKQomIzQzO3sKJiM0MzsJdW5zaWduZWQgbG9uZyBzdGFydF9pbmRleCA9IDA7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZW5kX2luZGV4ID0gQklUU19QRVJfTE9ORyAtIDE7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZW5kX2dmbiA9IGJhc2VfZ2ZuICYjNDM7IGVuZF9pbmRleDsKJiM0MzsJdW5zaWduZWQgbG9uZyBhbGlnbmVkX3N0YXJ0X2dmbiA9IGFkZHIgJmd0OyZndDsgUEFHRV9TSElGVDsKJiM0MzsJdW5zaWduZWQgbG9uZyBhbGlnbmVkX2VuZF9nZm4gPSBhbGlnbmVkX3N0YXJ0X2dmbiAmIzQzOyAocGFnZV9zaXplICZndDsmZ3Q7IFBBR0VfU0hJRlQpIC0gMTsKJiM0MzsJdW5zaWduZWQgaW50IG5iaXRzID0gMDsKJiM0MzsKJiM0MzsJaWYgKGFsaWduZWRfc3RhcnRfZ2ZuICZndDsgYmFzZV9nZm4pCiYjNDM7CQlzdGFydF9pbmRleCA9IGFsaWduZWRfc3RhcnRfZ2ZuIC0gYmFzZV9nZm47CiYjNDM7CiYjNDM7CWlmIChhbGlnbmVkX2VuZF9nZm4gJmx0OyBlbmRfZ2ZuKQomIzQzOwkJZW5kX2luZGV4ID0gYWxpZ25lZF9lbmRfZ2ZuIC0gYmFzZV9nZm47CiYjNDM7CiYjNDM7CW5iaXRzID0gZW5kX2luZGV4IC0gc3RhcnRfaW5kZXggJiM0MzsgMTsKJiM0MzsJYml0bWFwX2NsZWFyKG1hc2ssIHN0YXJ0X2luZGV4LCBuYml0cyk7CiYjNDM7fQomIzQzOwomIzQzO2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sCiYjNDM7CQkJCSAgIHVuc2lnbmVkIGxvbmcgbWFzaykKJiM0Mzt7CiYjNDM7CXVuc2lnbmVkIGxvbmcgcGFnZV9zaXplOwomIzQzOwlib29sIGZsdXNoID0gZmFsc2U7CiYjNDM7CWJvb2wgZm91bmRfbGVhZjsKJiM0MzsJdTMyIHB0ZXBfbGV2ZWw7CiYjNDM7CXB0ZV90ICpwdGVwOwomIzQzOwlncGFfdCBhZGRyID0gMDsKJiM0MzsJaW50IHJldDsKJiM0MzsKJiM0MzsJd2hpbGUgKG1hc2spIHsKJiM0MzsJCWFkZHIgPSAoYmFzZV9nZm4gJiM0MzsgX19mZnMobWFzaykpICZsdDsmbHQ7IFBBR0VfU0hJRlQ7CiYjNDM7CiYjNDM7CQlmb3VuZF9sZWFmID0ga3ZtX3Jpc2N2X2dzdGFnZV9nZXRfbGVhZihnc3RhZ2UsIGFkZHIsICZhbXA7cHRlcCwgJmFtcDtwdGVwX2xldmVsKTsKJiM0MzsJCXJldCA9IGdzdGFnZV9sZXZlbF90b19wYWdlX3NpemUoZ3N0YWdlLCBwdGVwX2xldmVsLCAmYW1wO3BhZ2Vfc2l6ZSk7CiYjNDM7CQlpZiAocmV0KQomIzQzOwkJCWJyZWFrOwomIzQzOwomIzQzOwkJaWYgKGZvdW5kX2xlYWYpIHsKJiM0MzsJCQlpZiAocHRlcF9sZXZlbCkgewomIzQzOwkJCQlhZGRyID0gQUxJR05fRE9XTihhZGRyLCBwYWdlX3NpemUpOwomIzQzOwkJCQljbGVhcl9odWdlX21hc2soJmFtcDttYXNrLCBwYWdlX3NpemUsIGJhc2VfZ2ZuLCBhZGRyKTsKJiM0MzsJCQl9CiYjNDM7CiYjNDM7CQkJZmx1c2ggfD0ga3ZtX3Jpc2N2X2dzdGFnZV9vcF9wdGUoZ3N0YWdlLCBhZGRyLCBwdGVwLAomIzQzOwkJCQkJCQkgcHRlcF9sZXZlbCwgR1NUQUdFX09QX1dQKTsKJiM0MzsKJiM0MzsJCQlpZiAocHRlcF9sZXZlbCkKJiM0MzsJCQkJY29udGludWU7CiYjNDM7CQl9CiYjNDM7CiYjNDM7CQkvKiBjbGVhciB0aGUgZmlyc3Qgc2V0IGJpdCovCiYjNDM7CQltYXNrICZhbXA7PSBtYXNrIC0gMTsKJiM0MzsJfQomIzQzOwomIzQzOwlyZXR1cm4gZmx1c2g7CiYjNDM7fQomIzQzOwogdm9pZCBfX2luaXQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKQogewogI2lmZGVmIENPTkZJR182NEJJVApkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vbW11LmMgYi9hcmNoL3Jpc2N2L2t2bS9tbXUuYwppbmRleCAwODJmOWIyNjE3MzM4Ny4uN2VhYjU4ZmY2M2Y5ZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3Yva3ZtL21tdS5jCkBAIC0xMTAsNyAmIzQzOzExMCw3IEBAIHZvaWQga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKHN0cnVjdCBrdm0gKmt2bSwKIAogCWt2bV9yaXNjdl9nc3RhZ2VfaW5pdCgmYW1wO2dzdGFnZSwga3ZtKTsKIAotCWZsdXNoID0ga3ZtX3Jpc2N2X2dzdGFnZV93cF9yYW5nZSgmYW1wO2dzdGFnZSwgc3RhcnQsIGVuZCk7CiYjNDM7CWZsdXNoID0ga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoJmFtcDtnc3RhZ2UsIGJhc2VfZ2ZuLCBtYXNrKTsKIAlpZiAoZmx1c2gpCiAJCWt2bV9mbHVzaF9yZW1vdGVfdGxic19yYW5nZShrdm0sIHN0YXJ0ICZndDsmZ3Q7IFBBR0VfU0hJRlQsCiAJCQkJCSAgICAoZW5kIC0gc3RhcnQpICZndDsmZ3Q7IFBBR0VfU0hJRlQpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDI0CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJJU0MtViBLVk0gTU1VIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIHRvdWNoaW5nIGBhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY2AgYW5kIGBhcmNoL3Jpc2N2L2t2bS9tbXUuY2AsIHdoaWNoIGltbWVkaWF0ZWx5IGZsYWdzIG15IGF0dGVudGlvbi4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIGFuZCBpbmNvcnBvcmF0ZXMgaXQgaW50byBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYC4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbW9kaWZpY2F0aW9uIHdpdGhpbiB0aGUgUklTQy1WIEtWTSBNZW1vcnkgTWFuYWdlbWVudCBVbml0IChNTVUpIGNvZGUsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0hvdyByZWFjaGFibGUgaXMgdGhpcyBjb2RlIHBhdGg/JiMzNDsgYW5kICYjMzQ7V2hhdCBjb25maWd1cmF0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgYWN0aXZlPyYjMzQ7IEkmIzM5O2xsIHN0YXJ0IGJ5IHRyYWNpbmcgdGhlIGNhbGxzIGFuZCBkZXBlbmRlbmNpZXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dCBvZiB0aGlzIGZ1bmN0aW9uLiBHaXZlbiB0aGUgZmlsZSBsb2NhdGlvbnMgYXJlIHdpdGhpbiBgYXJjaC9yaXNjdi9rdm0vYCwgSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cywgdGhlIGJhc2UgY29uZmlndXJhdGlvbiBgQ09ORklHX0tWTWAgZm9yIFJJU0MtViBzeXN0ZW1zLiBUaGF0IHdpbGwgYmUgdGhlIGZvdW5kYXRpb24uCgpOb3csIGxldCYjMzk7cyBsb2NhdGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgIHdpdGhpbiBgYXJjaC9yaXNjdi9rdm0vbW11LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQgaXMgY2hhbmdlZCBvciBpbnRyb2R1Y2VkLCBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBNTVUgbG9naWMuIEZyb20gdGhlcmUsIEkgY2FuIGRldGVybWluZSB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLCBpZiBpdCBoYXMgYW55IHBlcmZvcm1hbmNlIG9yIHNlY3VyaXR5IGltcGxpY2F0aW9ucywgYW5kIGRldGVybWluZSBob3cgdG8gdmVyaWZ5IHRoZSBtb2RpZmljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL21tdS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL21tdS5jPTg0PXZvaWQga3ZtX3Jpc2N2X21tdV9pb3VubWFwKHN0cnVjdCBrdm0gKmt2bSwgZ3BhX3QgZ3BhLCB1bnNpZ25lZCBsb25nIHNpemUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vbW11LmMtOTktXG5hcmNoL3Jpc2N2L2t2bS9tbXUuYzoxMDA6dm9pZCBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQoc3RydWN0IGt2bSAqa3ZtLFxuYXJjaC9yaXNjdi9rdm0vbW11LmMtMTAxLVx0XHRcdFx0XHQgICAgIHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKnNsb3QsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzczNwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgYXJjaC9yaXNjdi9rdm0vbW11LmNgIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zIGZvciBgYXJjaC9yaXNjdi9rdm0vbW11LmNgLiBSaWdodCwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIG1lbW9yeSBtYW5hZ2VtZW50IHVuaXQgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGUgS1ZNIGNvbnRleHQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBHaXZlbiB0aGUgZmlsZSBuYW1lLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBhIGNvcmUgcGllY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZGVmaW5lcyB0aGUgY3JpdGljYWwgZGVwZW5kZW5jaWVzLgoKTXkgcHJpbWFyeSBmb2N1cyB3aWxsIGJlIG9uIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGluIHRoZSBLY29uZmlnIGFuZCBkZWZjb25maWcgZmlsZXMuIEkga25vdyBSSVNDLVYgS1ZNIGlzIHN0aWxsIGV2b2x2aW5nLiBBcmUgdGhlcmUgdmFyaW91cyBNTVUgaW1wbGVtZW50YXRpb25zIHN1cHBvcnRlZCBvciBhIHNpbmdsZSwgc3RhbmRhcmRpemVkIG9uZSB0aGF0IHRoaXMgZmlsZSBpbXBsZW1lbnRzPyBXaGF0IGZlYXR1cmVzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGFuZCBob3cgY2FuIHRob3NlIGJlIG1vZGlmaWVkIGZvciBjdXN0b20gY29uZmlndXJhdGlvbnMuIFRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpbmdzIGxpa2UgcGFnZSB0YWJsZSBmb3JtYXRzLCBhZGRyZXNzIHNwYWNlIGxheW91dHMsIGFuZCBuZXN0ZWQgdmlydHVhbGl6YXRpb24gLSB3aGljaCBzZXR0aW5ncyBpbmZsdWVuY2UgdGhvc2UgYXNwZWN0cz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBNTVUgY29uZmlndXJhdGlvbiB0aWVzIGluIHdpdGggdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUmIzM5O3MgdmlydHVhbCBtZW1vcnkgZXh0ZW5zaW9ucyBhbmQgYW55IGN1c3RvbSBleHRlbnNpb25zIHJlbGV2YW50IHRvIEtWTS4gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQga2V5IGRlZmluZXMgYXJlIHJlbGV2YW50IGFuZCB3aGljaCBvbmVzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgYnVpbGQgcHJvY2Vzcy4gSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHJlbGF0ZWQgZmlsZXMgdG8gZW5zdXJlIEkgZ2V0IGEgZnVsbCBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21tdS5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU9MTk9a3ZtLXkgJiM0Mzs9IG1haW4ub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6MjA6a3ZtLXkgJiM0Mzs9IG1tdS5vXG5hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZS0yMS1rdm0teSAmIzQzOz0gbmFjbC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE1NwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIGZvciBLVk0gKFJJU0MtVikqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gc29tZXRoaW5nIHJlbGF0ZWQgdG8gYGt2bS15YCDigJMgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgS1ZNIHN1cHBvcnQgaXMgaW1wbGljYXRlZCBoZXJlLiBOYXR1cmFsbHksIHRoYXQgbWVhbnMgYENPTkZJR19LVk1gIG5lZWRzIHRvIGJlIGVuYWJsZWQuIEkgY2FuJiMzOTt0IGltYWdpbmUgdGhpcyBiZWluZyBhbnl0aGluZyAqb3RoZXIqIHRoYW4gS1ZNLXJlbGF0ZWQgaWYgaXQmIzM5O3MgZ290IHRoYXQgbmFtaW5nIGNvbnZlbnRpb24uCgpUbyBjb25maXJtIGFuZCB1bmRlcnN0YW5kIHRoZSBwcmVjaXNlIGRlcGVuZGVuY2llcywgSSBzaG91bGQgaW1tZWRpYXRlbHkgbG9vayBhdCB0aGUgS2NvbmZpZyBmaWxlIHNwZWNpZmljIHRvIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtsbCBmaW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHJlbGF0aW9uc2hpcHMuIEkgYW50aWNpcGF0ZSBpdCYjMzk7bGwgc2hlZCBsaWdodCBvbiB0aGUgZmluZXIgcG9pbnRzIG9mIGhvdyBLVk0gc3VwcG9ydCBpcyBpbnRlZ3JhdGVkIHdpdGhpbiB0aGUgUklTQy1WIGtlcm5lbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUxNwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gcmVhc29uaW5nLCBhbmQgdGFpbG9yZWQgZm9yIGEgZmVsbG93IGV4cGVydDoKCioqS1ZNIERpcnR5IFBhZ2UgTG9nZ2luZyAtIENvbnRleHQgYW5kIFZlcmlmaWNhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgaW5pdGlhbCBhc3N1bXB0aW9uIGlzIHRoYXQgd2UgbmVlZCB0byBiZSBkZWFsaW5nIHdpdGggYEtWTWAuIEdvdCBpdC4gTm93LCBJJiMzOTttIHNlZWluZyB0aGF0IGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgIGlzIGEgZnVuY3Rpb24gYmVpbmcgY2FsbGVkLCBhbmQgaXQmIzM5O3MgY29taW5nIGZyb20gdGhlIGdlbmVyaWMgS1ZNIGxheWVyLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgbmVlZCBmb3IgZGVlcGVyIHNjcnV0aW55LiBJdCYjMzk7cyBhIHN0YW5kYXJkIHByYWN0aWNlIGF0IHRoaXMgbGV2ZWwgdG8gZW5zdXJlIGNvbXBsZXRlIHVuZGVyc3RhbmRpbmcuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHRoZSBleGFjdCBjYWxsIHNpdGVzIG9mIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgLiBJIG5lZWQgdG8gcHJlY2lzZWx5IGRldGVybWluZSAqd2hlcmUqIGl0JiMzOTtzIGJlaW5nIGludm9rZWQgd2l0aGluIHRoZSBicm9hZGVyIEtWTSBhcmNoaXRlY3R1cmUuIFRoYXQmIzM5O3MgYWJzb2x1dGVseSBjcml0aWNhbCBmb3IgY29tcHJlaGVuZGluZyB0aGUgaW50ZW5kZWQgYmVoYXZpb3IgYW5kIHBvdGVudGlhbCBzaWRlIGVmZmVjdHMgaW4gb3VyIGFyZWEgb2YgaW50ZXJlc3QuIExvY2F0aW5nIHRob3NlIGNhbGwgc2l0ZXMgd2lsbCBwcm92aWRlIHRoZSBuZWNlc3NhcnkgY29udGV4dCB0byBkZXRlcm1pbmUgaW1wYWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDt2aXJ0L2t2bS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7dmlydC9rdm0vZGlydHlfcmluZy5jPTUzPXN0YXRpYyB2b2lkIGt2bV9yZXNldF9kaXJ0eV9nZm4oc3RydWN0IGt2bSAqa3ZtLCB1MzIgc2xvdCwgdTY0IG9mZnNldCwgdTY0IG1hc2spXG4tLVxudmlydC9rdm0vZGlydHlfcmluZy5jLTcwLVx0S1ZNX01NVV9MT0NLKGt2bSk7XG52aXJ0L2t2bS9kaXJ0eV9yaW5nLmM6NzE6XHRrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQoa3ZtLCBtZW1zbG90LCBvZmZzZXQsIG1hc2spO1xudmlydC9rdm0vZGlydHlfcmluZy5jLTcyLVx0S1ZNX01NVV9VTkxPQ0soa3ZtKTtcbi0tXG52aXJ0L2t2bS9rdm1fbWFpbi5jPTIyMjE9c3RhdGljIGludCBrdm1fZ2V0X2RpcnR5X2xvZ19wcm90ZWN0KHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9kaXJ0eV9sb2cgKmxvZylcbi0tXG52aXJ0L2t2bS9rdm1fbWFpbi5jLTIyNzctXHRcdFx0b2Zmc2V0ID0gaSAqIEJJVFNfUEVSX0xPTkc7XG52aXJ0L2t2bS9rdm1fbWFpbi5jOjIyNzg6XHRcdFx0a3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKGt2bSwgbWVtc2xvdCxcbnZpcnQva3ZtL2t2bV9tYWluLmMtMjI3OS1cdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LCBtYXNrKTtcbi0tXG52aXJ0L2t2bS9rdm1fbWFpbi5jPTIzMzE9c3RhdGljIGludCBrdm1fY2xlYXJfZGlydHlfbG9nX3Byb3RlY3Qoc3RydWN0IGt2bSAqa3ZtLFxuLS1cbnZpcnQva3ZtL2t2bV9tYWluLmMtMjM5NC1cdFx0XHRmbHVzaCA9IHRydWU7XG52aXJ0L2t2bS9rdm1fbWFpbi5jOjIzOTU6XHRcdFx0a3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKGt2bSwgbWVtc2xvdCxcbnZpcnQva3ZtL2t2bV9tYWluLmMtMjM5Ni1cdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LCBtYXNrKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI2MQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDI0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgVGhpcyBLVk0gRGlydHkgTG9nZ2luZyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgdGllZCB0byBLVk0mIzM5O3MgZGlydHkgbG9nZ2luZywgd2hpY2ggSSYjMzk7bSBmYW1pbGlhciB3aXRoLiBJIHNlZSBpdCBpbnRyb2R1Y2VzIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgYW5kIGBjbGVhcl9odWdlX21hc2tgLiBUaG9zZSBhcmUgdGhlIGtleSBzeW1ib2xzIHRvIGtlZXAgYW4gZXllIG9uLCBhbG9uZyB3aXRoIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgLiBXYWl0LCBgY2xlYXJfaHVnZV9tYXNrYCBpcyBzdGF0aWMgaW5saW5lLi4ucmlnaHQsIHNvIGl0IG1pZ2h0IG5vdCBldmVuIGJlIGEgc3ltYm9sLCBtYWtpbmcgaXQgaGFyZGVyIHRvIHRyYWNrIGRpcmVjdGx5LgoKSSBzaG91bGQgY2hlY2sgaWYgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBpcyBleHBvcnRlZCwgb3IganVzdCBhIHJlZ3VsYXIgZnVuY3Rpb24uIEkgcmVtZW1iZXIgc2VlaW5nIGBhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY2AgaW4gdGhlIHBhdGNoLiBJJiMzOTtsbCB0YWtlIGEgcXVpY2sgbG9vayB0aGVyZS4KClJlZ2FyZGluZyBjb25maWd1cmF0aW9ucywgYENPTkZJR19LVk1gIGlzIG9idmlvdXNseSB0aGUgbWFpbiBvbmUgdGhhdCBtYXR0ZXJzIGhlcmUuIGBDT05GSUdfUklTQ1ZgIGlzIGFscmVhZHkgaW1wbGljaXRseSBlbmFibGVkIGJlY2F1c2Ugb2YgdGhlIGFyY2hpdGVjdHVyZS4gSSBkb24mIzM5O3QgdGhpbmsgSSBuZWVkIHRvIHdvcnJ5IGFib3V0IGFueSBvdGhlciBjb25maWdzLiBJdCBsb29rcyBsaWtlIGp1c3QgYEtWTWAgaXMgYWxsIHRoYXQmIzM5O3MgcmVxdWlyZWQuCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgcHJlc2VuY2UgYW5kIHB1cnBvc2Ugb2YgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBpbiBgYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNgLiBMZXQmIzM5O3MganVzdCBkb3VibGUtY2hlY2sgdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYz00NzU9c3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2h1Z2VfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSxcbi0tXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYy00OTQtXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYzo0OTU6Ym9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcbmFyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jLTQ5Ni1cdFx0XHRcdCAgIHVuc2lnbmVkIGxvbmcgbWFzaylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk5NwoJCQkJCQkJb3V0cHV0OiAxMzgKCQkJCQkJCXRob3VnaHRzOiAxNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIFJJU0MtViBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkgc2VlIGl0JiMzOTtzIGEgbmV3IGZ1bmN0aW9uLCBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhpcyBpcyBzcGVjaWZpY2FsbHkgZm9yIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMsIGFuZCwgaW1wb3J0YW50bHksIGl0JiMzOTtzIHV0aWxpemluZyBhIG1hc2suIFRoaXMgcG9pbnRzIGRpcmVjdGx5IHRvIFJJU0MtViYjMzk7cyBLVk0gaW1wbGVtZW50YXRpb24sIGFuZCB0aGUgY29udGV4dCBjbGVhcmx5IGluZGljYXRlcyBpdCYjMzk7cyBjb25uZWN0ZWQgdG8gZGlydHkgcGFnZSBsb2dnaW5nLgoKVGhlcmVmb3JlLCBteSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHdpdGhpbiBLVk0mIzM5O3MgTU1VIGxvZ2ljLiBJdCYjMzk7cyBhIGNsZWFyIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhlIGtleSBlbGVtZW50cyB0aGF0IGNvbmZpcm0gdGhpcyBhcmU6CgoqICAgYFdvcnRoRnV6emluZzogdHJ1ZWAgLSBJIGFncmVlLiBBbnkgY2hhbmdlIHRvIE1NVS1sZXZlbCBmdW5jdGlvbmFsaXR5LCBlc3BlY2lhbGx5IG9uZSB0aGF0JiMzOTtzIGhhbmRsaW5nIHBhZ2UgdGFibGVzIGFuZCBkaXJ0eSBsb2dnaW5nLCBkZXNlcnZlcyB0aG9yb3VnaCBmdXp6aW5nLiBUaGVzZSBhcmUgY3JpdGljYWwgY29tcG9uZW50cyBwcm9uZSB0byBlcnJvcnMsIGVzcGVjaWFsbHkgd2l0aGluIHZpcnR1YWxpemF0aW9uLgoqICAgYEZvY3VzU3ltYm9sczoga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgLCBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYCAtIFNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIG5ldyBmdW5jdGlvbiBhbmQgdGhlIHJlbGF0ZWQgTU1VIGVuYWJsaW5nIGZ1bmN0aW9uIGlzIGV4YWN0bHkgd2hhdCBJIHdvdWxkIHJlY29tbWVuZC4gRnV6emluZyBib3RoIHByb3ZpZGVzIGEgdGhvcm91Z2ggdGVzdCBvZiBpbnRlcmFjdGlvbi4KKiAgIGBFbmFibGVDb25maWdzOiBLVk1gIC0gVGhlIGZvY3VzIG9uIEtWTSBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhlIGZ1bmN0aW9uJiMzOTtzIG5hbWUgYW5kIHB1cnBvc2UuCgpJbiBzaG9ydCwgaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoIGNsZWFyIHNlY3VyaXR5IGltcGxpY2F0aW9ucywgdGhhdCBpcyByZWxhdGVkIHRvIGEgdml0YWwgY29tcG9uZW50LiBJdCB3YXJyYW50cyB0aGUgZnV6emluZyB0aGF0IGlzIHN1Z2dlc3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTA6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkJiMzNDssCiAgICAmIzM0O2t2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo0MS41MDQ5Mjg4NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NDE3Nzc0NDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkXCIsXG4gICAgXCJrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgdG8gaGFuZGxlIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMgd2l0aCBhIG1hc2sgZm9yIFJJU0MtViBLVk0sIHdoaWNoIGlzIHVzZWQgZHVyaW5nIGRpcnR5IHBhZ2UgbG9nZ2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSBNTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEwOjExOjQxLjUwNDkzMzIyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjUwMzg2OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwMGRiMzY2MDkyOTZkMTE0NDYzMTQ2NmY5MmZhYmM2OTdjZGIwNTEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDE3IDEwOjExOjQwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcXG5pbmRleCAyMWUyMDE5ZGYwY2Y1Ny4uNTBjNzQ1MjdkZGQyOTcgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaFxcbkBAIC04Miw2ICs4Miw5IEBAIGJvb2wga3ZtX3Jpc2N2X2dzdGFnZV91bm1hcF9yYW5nZShzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLFxcbiBcXG4gYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdwYV90IHN0YXJ0LCBncGFfdCBlbmQpO1xcbiBcXG4rYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcXG4rXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgbG9uZyBtYXNrKTtcXG4rXFxuIHZvaWQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKTtcXG4gXFxuIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBrdm1fcmlzY3ZfZ3N0YWdlX21vZGUodW5zaWduZWQgbG9uZyBwZ2RfbGV2ZWxzKVxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXFxuaW5kZXggYzRjM2I3OTU2N2YxMGQuLjlhZjg2YjFjNWUzYzNkIDEwMDY0NFxcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXFxuKysrIGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNcXG5AQCAtNDcyLDYgKzQ3Miw2NSBAQCBib29sIGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcmFuZ2Uoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ3BhX3Qgc3RhcnQsIGdwYV90IGVuZFxcbiBcXHRyZXR1cm4gZmx1c2g7XFxuIH1cXG4gXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9odWdlX21hc2sodW5zaWduZWQgbG9uZyAqbWFzaywgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsXFxuK1xcdFxcdFxcdFxcdCAgIGdmbl90IGJhc2VfZ2ZuLCBncGFfdCBhZGRyKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgc3RhcnRfaW5kZXggPSAwO1xcbitcXHR1bnNpZ25lZCBsb25nIGVuZF9pbmRleCA9IEJJVFNfUEVSX0xPTkcgLSAxO1xcbitcXHR1bnNpZ25lZCBsb25nIGVuZF9nZm4gPSBiYXNlX2dmbiArIGVuZF9pbmRleDtcXG4rXFx0dW5zaWduZWQgbG9uZyBhbGlnbmVkX3N0YXJ0X2dmbiA9IGFkZHIgXFx1MDAzZVxcdTAwM2UgUEFHRV9TSElGVDtcXG4rXFx0dW5zaWduZWQgbG9uZyBhbGlnbmVkX2VuZF9nZm4gPSBhbGlnbmVkX3N0YXJ0X2dmbiArIChwYWdlX3NpemUgXFx1MDAzZVxcdTAwM2UgUEFHRV9TSElGVCkgLSAxO1xcbitcXHR1bnNpZ25lZCBpbnQgbmJpdHMgPSAwO1xcbitcXG4rXFx0aWYgKGFsaWduZWRfc3RhcnRfZ2ZuIFxcdTAwM2UgYmFzZV9nZm4pXFxuK1xcdFxcdHN0YXJ0X2luZGV4ID0gYWxpZ25lZF9zdGFydF9nZm4gLSBiYXNlX2dmbjtcXG4rXFxuK1xcdGlmIChhbGlnbmVkX2VuZF9nZm4gXFx1MDAzYyBlbmRfZ2ZuKVxcbitcXHRcXHRlbmRfaW5kZXggPSBhbGlnbmVkX2VuZF9nZm4gLSBiYXNlX2dmbjtcXG4rXFxuK1xcdG5iaXRzID0gZW5kX2luZGV4IC0gc3RhcnRfaW5kZXggKyAxO1xcbitcXHRiaXRtYXBfY2xlYXIobWFzaywgc3RhcnRfaW5kZXgsIG5iaXRzKTtcXG4rfVxcbitcXG4rYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcXG4rXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgbG9uZyBtYXNrKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplO1xcbitcXHRib29sIGZsdXNoID0gZmFsc2U7XFxuK1xcdGJvb2wgZm91bmRfbGVhZjtcXG4rXFx0dTMyIHB0ZXBfbGV2ZWw7XFxuK1xcdHB0ZV90ICpwdGVwO1xcbitcXHRncGFfdCBhZGRyID0gMDtcXG4rXFx0aW50IHJldDtcXG4rXFxuK1xcdHdoaWxlIChtYXNrKSB7XFxuK1xcdFxcdGFkZHIgPSAoYmFzZV9nZm4gKyBfX2ZmcyhtYXNrKSkgXFx1MDAzY1xcdTAwM2MgUEFHRV9TSElGVDtcXG4rXFxuK1xcdFxcdGZvdW5kX2xlYWYgPSBrdm1fcmlzY3ZfZ3N0YWdlX2dldF9sZWFmKGdzdGFnZSwgYWRkciwgXFx1MDAyNnB0ZXAsIFxcdTAwMjZwdGVwX2xldmVsKTtcXG4rXFx0XFx0cmV0ID0gZ3N0YWdlX2xldmVsX3RvX3BhZ2Vfc2l6ZShnc3RhZ2UsIHB0ZXBfbGV2ZWwsIFxcdTAwMjZwYWdlX3NpemUpO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRicmVhaztcXG4rXFxuK1xcdFxcdGlmIChmb3VuZF9sZWFmKSB7XFxuK1xcdFxcdFxcdGlmIChwdGVwX2xldmVsKSB7XFxuK1xcdFxcdFxcdFxcdGFkZHIgPSBBTElHTl9ET1dOKGFkZHIsIHBhZ2Vfc2l6ZSk7XFxuK1xcdFxcdFxcdFxcdGNsZWFyX2h1Z2VfbWFzayhcXHUwMDI2bWFzaywgcGFnZV9zaXplLCBiYXNlX2dmbiwgYWRkcik7XFxuK1xcdFxcdFxcdH1cXG4rXFxuK1xcdFxcdFxcdGZsdXNoIHw9IGt2bV9yaXNjdl9nc3RhZ2Vfb3BfcHRlKGdzdGFnZSwgYWRkciwgcHRlcCxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHB0ZXBfbGV2ZWwsIEdTVEFHRV9PUF9XUCk7XFxuK1xcbitcXHRcXHRcXHRpZiAocHRlcF9sZXZlbClcXG4rXFx0XFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdH1cXG4rXFxuK1xcdFxcdC8qIGNsZWFyIHRoZSBmaXJzdCBzZXQgYml0Ki9cXG4rXFx0XFx0bWFzayBcXHUwMDI2PSBtYXNrIC0gMTtcXG4rXFx0fVxcbitcXG4rXFx0cmV0dXJuIGZsdXNoO1xcbit9XFxuK1xcbiB2b2lkIF9faW5pdCBrdm1fcmlzY3ZfZ3N0YWdlX21vZGVfZGV0ZWN0KHZvaWQpXFxuIHtcXG4gI2lmZGVmIENPTkZJR182NEJJVFxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9tbXUuYyBiL2FyY2gvcmlzY3Yva3ZtL21tdS5jXFxuaW5kZXggMDgyZjliMjYxNzMzODcuLjdlYWI1OGZmNjNmOWVhIDEwMDY0NFxcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jXFxuKysrIGIvYXJjaC9yaXNjdi9rdm0vbW11LmNcXG5AQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKHN0cnVjdCBrdm0gKmt2bSxcXG4gXFxuIFxcdGt2bV9yaXNjdl9nc3RhZ2VfaW5pdChcXHUwMDI2Z3N0YWdlLCBrdm0pO1xcbiBcXG4tXFx0Zmx1c2ggPSBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKFxcdTAwMjZnc3RhZ2UsIHN0YXJ0LCBlbmQpO1xcbitcXHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKFxcdTAwMjZnc3RhZ2UsIGJhc2VfZ2ZuLCBtYXNrKTtcXG4gXFx0aWYgKGZsdXNoKVxcbiBcXHRcXHRrdm1fZmx1c2hfcmVtb3RlX3RsYnNfcmFuZ2Uoa3ZtLCBzdGFydCBcXHUwMDNlXFx1MDAzZSBQQUdFX1NISUZULFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgKGVuZCAtIHN0YXJ0KSBcXHUwMDNlXFx1MDAzZSBQQUdFX1NISUZUKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NDIuMDMwNjc3Njk4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODg5MjAxNjY5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZFwiLFxuICAgIFwia3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIHRvIGhhbmRsZSB3cml0ZS1wcm90ZWN0aW5nIHBhZ2UgdGFibGVzIHdpdGggYSBtYXNrIGZvciBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c2VkIGR1cmluZyBkaXJ0eSBwYWdlIGxvZ2dpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gTU1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDAwZGIzNjYwOTI5NmQxMTQ0NjMxNDY2ZjkyZmFiYzY5N2NkYjA1MTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAxMDoxMTo0MCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fZ3N0YWdlLmhcbmluZGV4IDIxZTIwMTlkZjBjZjU3Li41MGM3NDUyN2RkZDI5NyAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2dzdGFnZS5oXG4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9nc3RhZ2UuaFxuQEAgLTgyLDYgKzgyLDkgQEAgYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3VubWFwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsXG4gXG4gYm9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKHN0cnVjdCBrdm1fZ3N0YWdlICpnc3RhZ2UsIGdwYV90IHN0YXJ0LCBncGFfdCBlbmQpO1xuIFxuK2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sXG4rXHRcdFx0XHQgICB1bnNpZ25lZCBsb25nIG1hc2spO1xuK1xuIHZvaWQga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlX2RldGVjdCh2b2lkKTtcbiBcbiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcga3ZtX3Jpc2N2X2dzdGFnZV9tb2RlKHVuc2lnbmVkIGxvbmcgcGdkX2xldmVscylcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jXG5pbmRleCBjNGMzYjc5NTY3ZjEwZC4uOWFmODZiMWM1ZTNjM2QgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY1xuKysrIGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNcbkBAIC00NzIsNiArNDcyLDY1IEBAIGJvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9yYW5nZShzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBncGFfdCBzdGFydCwgZ3BhX3QgZW5kXG4gXHRyZXR1cm4gZmx1c2g7XG4gfVxuIFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9odWdlX21hc2sodW5zaWduZWQgbG9uZyAqbWFzaywgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsXG4rXHRcdFx0XHQgICBnZm5fdCBiYXNlX2dmbiwgZ3BhX3QgYWRkcilcbit7XG4rXHR1bnNpZ25lZCBsb25nIHN0YXJ0X2luZGV4ID0gMDtcbitcdHVuc2lnbmVkIGxvbmcgZW5kX2luZGV4ID0gQklUU19QRVJfTE9ORyAtIDE7XG4rXHR1bnNpZ25lZCBsb25nIGVuZF9nZm4gPSBiYXNlX2dmbiArIGVuZF9pbmRleDtcbitcdHVuc2lnbmVkIGxvbmcgYWxpZ25lZF9zdGFydF9nZm4gPSBhZGRyIFx1MDAzZVx1MDAzZSBQQUdFX1NISUZUO1xuK1x0dW5zaWduZWQgbG9uZyBhbGlnbmVkX2VuZF9nZm4gPSBhbGlnbmVkX3N0YXJ0X2dmbiArIChwYWdlX3NpemUgXHUwMDNlXHUwMDNlIFBBR0VfU0hJRlQpIC0gMTtcbitcdHVuc2lnbmVkIGludCBuYml0cyA9IDA7XG4rXG4rXHRpZiAoYWxpZ25lZF9zdGFydF9nZm4gXHUwMDNlIGJhc2VfZ2ZuKVxuK1x0XHRzdGFydF9pbmRleCA9IGFsaWduZWRfc3RhcnRfZ2ZuIC0gYmFzZV9nZm47XG4rXG4rXHRpZiAoYWxpZ25lZF9lbmRfZ2ZuIFx1MDAzYyBlbmRfZ2ZuKVxuK1x0XHRlbmRfaW5kZXggPSBhbGlnbmVkX2VuZF9nZm4gLSBiYXNlX2dmbjtcbitcbitcdG5iaXRzID0gZW5kX2luZGV4IC0gc3RhcnRfaW5kZXggKyAxO1xuK1x0Yml0bWFwX2NsZWFyKG1hc2ssIHN0YXJ0X2luZGV4LCBuYml0cyk7XG4rfVxuK1xuK2Jvb2wga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWQoc3RydWN0IGt2bV9nc3RhZ2UgKmdzdGFnZSwgZ2ZuX3QgYmFzZV9nZm4sXG4rXHRcdFx0XHQgICB1bnNpZ25lZCBsb25nIG1hc2spXG4re1xuK1x0dW5zaWduZWQgbG9uZyBwYWdlX3NpemU7XG4rXHRib29sIGZsdXNoID0gZmFsc2U7XG4rXHRib29sIGZvdW5kX2xlYWY7XG4rXHR1MzIgcHRlcF9sZXZlbDtcbitcdHB0ZV90ICpwdGVwO1xuK1x0Z3BhX3QgYWRkciA9IDA7XG4rXHRpbnQgcmV0O1xuK1xuK1x0d2hpbGUgKG1hc2spIHtcbitcdFx0YWRkciA9IChiYXNlX2dmbiArIF9fZmZzKG1hc2spKSBcdTAwM2NcdTAwM2MgUEFHRV9TSElGVDtcbitcbitcdFx0Zm91bmRfbGVhZiA9IGt2bV9yaXNjdl9nc3RhZ2VfZ2V0X2xlYWYoZ3N0YWdlLCBhZGRyLCBcdTAwMjZwdGVwLCBcdTAwMjZwdGVwX2xldmVsKTtcbitcdFx0cmV0ID0gZ3N0YWdlX2xldmVsX3RvX3BhZ2Vfc2l6ZShnc3RhZ2UsIHB0ZXBfbGV2ZWwsIFx1MDAyNnBhZ2Vfc2l6ZSk7XG4rXHRcdGlmIChyZXQpXG4rXHRcdFx0YnJlYWs7XG4rXG4rXHRcdGlmIChmb3VuZF9sZWFmKSB7XG4rXHRcdFx0aWYgKHB0ZXBfbGV2ZWwpIHtcbitcdFx0XHRcdGFkZHIgPSBBTElHTl9ET1dOKGFkZHIsIHBhZ2Vfc2l6ZSk7XG4rXHRcdFx0XHRjbGVhcl9odWdlX21hc2soXHUwMDI2bWFzaywgcGFnZV9zaXplLCBiYXNlX2dmbiwgYWRkcik7XG4rXHRcdFx0fVxuK1xuK1x0XHRcdGZsdXNoIHw9IGt2bV9yaXNjdl9nc3RhZ2Vfb3BfcHRlKGdzdGFnZSwgYWRkciwgcHRlcCxcbitcdFx0XHRcdFx0XHRcdCBwdGVwX2xldmVsLCBHU1RBR0VfT1BfV1ApO1xuK1xuK1x0XHRcdGlmIChwdGVwX2xldmVsKVxuK1x0XHRcdFx0Y29udGludWU7XG4rXHRcdH1cbitcbitcdFx0LyogY2xlYXIgdGhlIGZpcnN0IHNldCBiaXQqL1xuK1x0XHRtYXNrIFx1MDAyNj0gbWFzayAtIDE7XG4rXHR9XG4rXG4rXHRyZXR1cm4gZmx1c2g7XG4rfVxuK1xuIHZvaWQgX19pbml0IGt2bV9yaXNjdl9nc3RhZ2VfbW9kZV9kZXRlY3Qodm9pZClcbiB7XG4gI2lmZGVmIENPTkZJR182NEJJVFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jIGIvYXJjaC9yaXNjdi9rdm0vbW11LmNcbmluZGV4IDA4MmY5YjI2MTczMzg3Li43ZWFiNThmZjYzZjllYSAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL21tdS5jXG4rKysgYi9hcmNoL3Jpc2N2L2t2bS9tbXUuY1xuQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZChzdHJ1Y3Qga3ZtICprdm0sXG4gXG4gXHRrdm1fcmlzY3ZfZ3N0YWdlX2luaXQoXHUwMDI2Z3N0YWdlLCBrdm0pO1xuIFxuLVx0Zmx1c2ggPSBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3JhbmdlKFx1MDAyNmdzdGFnZSwgc3RhcnQsIGVuZCk7XG4rXHRmbHVzaCA9IGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkKFx1MDAyNmdzdGFnZSwgYmFzZV9nZm4sIG1hc2spO1xuIFx0aWYgKGZsdXNoKVxuIFx0XHRrdm1fZmx1c2hfcmVtb3RlX3RsYnNfcmFuZ2Uoa3ZtLCBzdGFydCBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVCxcbiBcdFx0XHRcdFx0ICAgIChlbmQgLSBzdGFydCkgXHUwMDNlXHUwMDNlIFBBR0VfU0hJRlQpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NDIuMDMwNjgwODE4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQzNjI5NjE5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIE1NVSBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2gg4oCTIGl0IGxvb2tzIGxpa2UgaXQncyB0b3VjaGluZyBgYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmNgIGFuZCBgYXJjaC9yaXNjdi9rdm0vbW11LmNgLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBteSBhdHRlbnRpb24uIFNwZWNpZmljYWxseSwgdGhlIHBhdGNoIGludHJvZHVjZXMgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBhbmQgaW5jb3Jwb3JhdGVzIGl0IGludG8gYGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZGAuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIG1vZGlmaWNhdGlvbiB3aXRoaW4gdGhlIFJJU0MtViBLVk0gTWVtb3J5IE1hbmFnZW1lbnQgVW5pdCAoTU1VKSBjb2RlLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCBmdWxseS5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkhvdyByZWFjaGFibGUgaXMgdGhpcyBjb2RlIHBhdGg/XCIgYW5kIFwiV2hhdCBjb25maWd1cmF0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgYWN0aXZlP1wiIEknbGwgc3RhcnQgYnkgdHJhY2luZyB0aGUgY2FsbHMgYW5kIGRlcGVuZGVuY2llcyB0byBmaWd1cmUgb3V0IHRoZSBjb250ZXh0IG9mIHRoaXMgZnVuY3Rpb24uIEdpdmVuIHRoZSBmaWxlIGxvY2F0aW9ucyBhcmUgd2l0aGluIGBhcmNoL3Jpc2N2L2t2bS9gLCBJJ2xsIHN0YXJ0IHdpdGggdGhlIG9idmlvdXMsIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gYENPTkZJR19LVk1gIGZvciBSSVNDLVYgc3lzdGVtcy4gVGhhdCB3aWxsIGJlIHRoZSBmb3VuZGF0aW9uLlxuXG5Ob3csIGxldCdzIGxvY2F0ZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgYGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZGAgd2l0aGluIGBhcmNoL3Jpc2N2L2t2bS9tbXUuY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCBpcyBjaGFuZ2VkIG9yIGludHJvZHVjZWQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIE1NVSBsb2dpYy4gRnJvbSB0aGVyZSwgSSBjYW4gZGV0ZXJtaW5lIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UsIGlmIGl0IGhhcyBhbnkgcGVyZm9ybWFuY2Ugb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zLCBhbmQgZGV0ZXJtaW5lIGhvdyB0byB2ZXJpZnkgdGhlIG1vZGlmaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMjQsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo0Ny40NjY5NzkyODZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIwNDU0Njk1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vbW11LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vbW11LmM9ODQ9dm9pZCBrdm1fcmlzY3ZfbW11X2lvdW5tYXAoc3RydWN0IGt2bSAqa3ZtLCBncGFfdCBncGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL21tdS5jLTk5LVxcbmFyY2gvcmlzY3Yva3ZtL21tdS5jOjEwMDp2b2lkIGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZChzdHJ1Y3Qga3ZtICprdm0sXFxuYXJjaC9yaXNjdi9rdm0vbW11LmMtMTAxLVxcdFxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqc2xvdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NDguNjcxNTMxMjc4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2Nzg0NzA4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBhcmNoL3Jpc2N2L2t2bS9tbXUuY2AgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucyBmb3IgYGFyY2gvcmlzY3Yva3ZtL21tdS5jYC4gUmlnaHQsIEknbSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIG1lbW9yeSBtYW5hZ2VtZW50IHVuaXQgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGUgS1ZNIGNvbnRleHQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBHaXZlbiB0aGUgZmlsZSBuYW1lLCBpdCdzIHByZXR0eSBjbGVhciB0aGlzIGlzIGEgY29yZSBwaWVjZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBkZWZpbmVzIHRoZSBjcml0aWNhbCBkZXBlbmRlbmNpZXMuXG5cbk15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgS2NvbmZpZyBhbmQgZGVmY29uZmlnIGZpbGVzLiBJIGtub3cgUklTQy1WIEtWTSBpcyBzdGlsbCBldm9sdmluZy4gQXJlIHRoZXJlIHZhcmlvdXMgTU1VIGltcGxlbWVudGF0aW9ucyBzdXBwb3J0ZWQgb3IgYSBzaW5nbGUsIHN0YW5kYXJkaXplZCBvbmUgdGhhdCB0aGlzIGZpbGUgaW1wbGVtZW50cz8gV2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCBhbmQgaG93IGNhbiB0aG9zZSBiZSBtb2RpZmllZCBmb3IgY3VzdG9tIGNvbmZpZ3VyYXRpb25zLiBUaGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaW5ncyBsaWtlIHBhZ2UgdGFibGUgZm9ybWF0cywgYWRkcmVzcyBzcGFjZSBsYXlvdXRzLCBhbmQgbmVzdGVkIHZpcnR1YWxpemF0aW9uIC0gd2hpY2ggc2V0dGluZ3MgaW5mbHVlbmNlIHRob3NlIGFzcGVjdHM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgTU1VIGNvbmZpZ3VyYXRpb24gdGllcyBpbiB3aXRoIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlJ3MgdmlydHVhbCBtZW1vcnkgZXh0ZW5zaW9ucyBhbmQgYW55IGN1c3RvbSBleHRlbnNpb25zIHJlbGV2YW50IHRvIEtWTS4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBrZXkgZGVmaW5lcyBhcmUgcmVsZXZhbnQgYW5kIHdoaWNoIG9uZXMgbXVzdCBiZSBkZWZpbmVkIGluIHRoZSBidWlsZCBwcm9jZXNzLiBJJ20gZ29pbmcgdG8gbG9vayBhdCByZWxhdGVkIGZpbGVzIHRvIGVuc3VyZSBJIGdldCBhIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzczNywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEwOjExOjUyLjMzOTM4MDI1NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTk4NjAyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbXUub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT0xOT1rdm0teSArPSBtYWluLm9cXG5hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZToyMDprdm0teSArPSBtbXUub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlLTIxLWt2bS15ICs9IG5hY2wub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo1Mi4zOTkzNzE1OTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ3MTY1MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyBmb3IgS1ZNIChSSVNDLVYpKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byBzb21ldGhpbmcgcmVsYXRlZCB0byBga3ZtLXlgIOKAkyB3aGljaCBzdHJvbmdseSBzdWdnZXN0cyBLVk0gc3VwcG9ydCBpcyBpbXBsaWNhdGVkIGhlcmUuIE5hdHVyYWxseSwgdGhhdCBtZWFucyBgQ09ORklHX0tWTWAgbmVlZHMgdG8gYmUgZW5hYmxlZC4gSSBjYW4ndCBpbWFnaW5lIHRoaXMgYmVpbmcgYW55dGhpbmcgKm90aGVyKiB0aGFuIEtWTS1yZWxhdGVkIGlmIGl0J3MgZ290IHRoYXQgbmFtaW5nIGNvbnZlbnRpb24uXG5cblRvIGNvbmZpcm0gYW5kIHVuZGVyc3RhbmQgdGhlIHByZWNpc2UgZGVwZW5kZW5jaWVzLCBJIHNob3VsZCBpbW1lZGlhdGVseSBsb29rIGF0IHRoZSBLY29uZmlnIGZpbGUgc3BlY2lmaWMgdG8gdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUuIEknbGwgbmVlZCB0byBjaGVjayBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBJJ2xsIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgcmVsYXRpb25zaGlwcy4gSSBhbnRpY2lwYXRlIGl0J2xsIHNoZWQgbGlnaHQgb24gdGhlIGZpbmVyIHBvaW50cyBvZiBob3cgS1ZNIHN1cHBvcnQgaXMgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIFJJU0MtViBrZXJuZWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNTcsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo1NS43NDY1MzgzOTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyMTMwODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEwOjExOjU1LjkxODY3MzQzNVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MzU2NjM5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZywgYW5kIHRhaWxvcmVkIGZvciBhIGZlbGxvdyBleHBlcnQ6XG5cbioqS1ZNIERpcnR5IFBhZ2UgTG9nZ2luZyAtIENvbnRleHQgYW5kIFZlcmlmaWNhdGlvbioqXG5cbkFscmlnaHQsIHNvIHRoZSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhhdCB3ZSBuZWVkIHRvIGJlIGRlYWxpbmcgd2l0aCBgS1ZNYC4gR290IGl0LiBOb3csIEknbSBzZWVpbmcgdGhhdCBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYCBpcyBhIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCwgYW5kIGl0J3MgY29taW5nIGZyb20gdGhlIGdlbmVyaWMgS1ZNIGxheWVyLiBUaGF0IGltbWVkaWF0ZWx5IGZsYWdzIGEgbmVlZCBmb3IgZGVlcGVyIHNjcnV0aW55LiBJdCdzIGEgc3RhbmRhcmQgcHJhY3RpY2UgYXQgdGhpcyBsZXZlbCB0byBlbnN1cmUgY29tcGxldGUgdW5kZXJzdGFuZGluZy5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIG5haWwgZG93biB0aGUgZXhhY3QgY2FsbCBzaXRlcyBvZiBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYC4gSSBuZWVkIHRvIHByZWNpc2VseSBkZXRlcm1pbmUgKndoZXJlKiBpdCdzIGJlaW5nIGludm9rZWQgd2l0aGluIHRoZSBicm9hZGVyIEtWTSBhcmNoaXRlY3R1cmUuIFRoYXQncyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGZvciBjb21wcmVoZW5kaW5nIHRoZSBpbnRlbmRlZCBiZWhhdmlvciBhbmQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBpbiBvdXIgYXJlYSBvZiBpbnRlcmVzdC4gTG9jYXRpbmcgdGhvc2UgY2FsbCBzaXRlcyB3aWxsIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBjb250ZXh0IHRvIGRldGVybWluZSBpbXBhY3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1MTcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMTo1OS42NTQzMzkyOTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzY3NjU2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwidmlydC9rdm0vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcInZpcnQva3ZtL2RpcnR5X3JpbmcuYz01Mz1zdGF0aWMgdm9pZCBrdm1fcmVzZXRfZGlydHlfZ2ZuKHN0cnVjdCBrdm0gKmt2bSwgdTMyIHNsb3QsIHU2NCBvZmZzZXQsIHU2NCBtYXNrKVxcbi0tXFxudmlydC9rdm0vZGlydHlfcmluZy5jLTcwLVxcdEtWTV9NTVVfTE9DSyhrdm0pO1xcbnZpcnQva3ZtL2RpcnR5X3JpbmcuYzo3MTpcXHRrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWQoa3ZtLCBtZW1zbG90LCBvZmZzZXQsIG1hc2spO1xcbnZpcnQva3ZtL2RpcnR5X3JpbmcuYy03Mi1cXHRLVk1fTU1VX1VOTE9DSyhrdm0pO1xcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYz0yMjIxPXN0YXRpYyBpbnQga3ZtX2dldF9kaXJ0eV9sb2dfcHJvdGVjdChzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fZGlydHlfbG9nICpsb2cpXFxuLS1cXG52aXJ0L2t2bS9rdm1fbWFpbi5jLTIyNzctXFx0XFx0XFx0b2Zmc2V0ID0gaSAqIEJJVFNfUEVSX0xPTkc7XFxudmlydC9rdm0va3ZtX21haW4uYzoyMjc4OlxcdFxcdFxcdGt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZChrdm0sIG1lbXNsb3QsXFxudmlydC9rdm0va3ZtX21haW4uYy0yMjc5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG9mZnNldCwgbWFzayk7XFxuLS1cXG52aXJ0L2t2bS9rdm1fbWFpbi5jPTIzMzE9c3RhdGljIGludCBrdm1fY2xlYXJfZGlydHlfbG9nX3Byb3RlY3Qoc3RydWN0IGt2bSAqa3ZtLFxcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYy0yMzk0LVxcdFxcdFxcdGZsdXNoID0gdHJ1ZTtcXG52aXJ0L2t2bS9rdm1fbWFpbi5jOjIzOTU6XFx0XFx0XFx0a3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkKGt2bSwgbWVtc2xvdCxcXG52aXJ0L2t2bS9rdm1fbWFpbi5jLTIzOTYtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0b2Zmc2V0LCBtYXNrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTE6NTkuNzYyMDIxODc5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxOTkwNTI1NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFRoaXMgS1ZNIERpcnR5IExvZ2dpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgdGllZCB0byBLVk0ncyBkaXJ0eSBsb2dnaW5nLCB3aGljaCBJJ20gZmFtaWxpYXIgd2l0aC4gSSBzZWUgaXQgaW50cm9kdWNlcyBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIGFuZCBgY2xlYXJfaHVnZV9tYXNrYC4gVGhvc2UgYXJlIHRoZSBrZXkgc3ltYm9scyB0byBrZWVwIGFuIGV5ZSBvbiwgYWxvbmcgd2l0aCBga3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkYC4gV2FpdCwgYGNsZWFyX2h1Z2VfbWFza2AgaXMgc3RhdGljIGlubGluZS4uLnJpZ2h0LCBzbyBpdCBtaWdodCBub3QgZXZlbiBiZSBhIHN5bWJvbCwgbWFraW5nIGl0IGhhcmRlciB0byB0cmFjayBkaXJlY3RseS5cblxuSSBzaG91bGQgY2hlY2sgaWYgYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCBpcyBleHBvcnRlZCwgb3IganVzdCBhIHJlZ3VsYXIgZnVuY3Rpb24uIEkgcmVtZW1iZXIgc2VlaW5nIGBhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY2AgaW4gdGhlIHBhdGNoLiBJJ2xsIHRha2UgYSBxdWljayBsb29rIHRoZXJlLlxuXG5SZWdhcmRpbmcgY29uZmlndXJhdGlvbnMsIGBDT05GSUdfS1ZNYCBpcyBvYnZpb3VzbHkgdGhlIG1haW4gb25lIHRoYXQgbWF0dGVycyBoZXJlLiBgQ09ORklHX1JJU0NWYCBpcyBhbHJlYWR5IGltcGxpY2l0bHkgZW5hYmxlZCBiZWNhdXNlIG9mIHRoZSBhcmNoaXRlY3R1cmUuIEkgZG9uJ3QgdGhpbmsgSSBuZWVkIHRvIHdvcnJ5IGFib3V0IGFueSBvdGhlciBjb25maWdzLiBJdCBsb29rcyBsaWtlIGp1c3QgYEtWTWAgaXMgYWxsIHRoYXQncyByZXF1aXJlZC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHByZXNlbmNlIGFuZCBwdXJwb3NlIG9mIGBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAgaW4gYGFyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jYC4gTGV0J3MganVzdCBkb3VibGUtY2hlY2sgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI2MSwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMjowNC45NjEwNzY2MzJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MDkwODQxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYz00NzU9c3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2h1Z2VfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jLTQ5NC1cXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYzo0OTU6Ym9vbCBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZChzdHJ1Y3Qga3ZtX2dzdGFnZSAqZ3N0YWdlLCBnZm5fdCBiYXNlX2dmbixcXG5hcmNoL3Jpc2N2L2t2bS9nc3RhZ2UuYy00OTYtXFx0XFx0XFx0XFx0ICAgdW5zaWduZWQgbG9uZyBtYXNrKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMDoxMjowNS4xNDE5OTAwNThaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY5NzQ1MjYxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBLVk0gUklTQy1WIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBJIHNlZSBpdCdzIGEgbmV3IGZ1bmN0aW9uLCBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhpcyBpcyBzcGVjaWZpY2FsbHkgZm9yIHdyaXRlLXByb3RlY3RpbmcgcGFnZSB0YWJsZXMsIGFuZCwgaW1wb3J0YW50bHksIGl0J3MgdXRpbGl6aW5nIGEgbWFzay4gVGhpcyBwb2ludHMgZGlyZWN0bHkgdG8gUklTQy1WJ3MgS1ZNIGltcGxlbWVudGF0aW9uLCBhbmQgdGhlIGNvbnRleHQgY2xlYXJseSBpbmRpY2F0ZXMgaXQncyBjb25uZWN0ZWQgdG8gZGlydHkgcGFnZSBsb2dnaW5nLlxuXG5UaGVyZWZvcmUsIG15IGNvbmNsdXNpb24gaXMgdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gd2l0aGluIEtWTSdzIE1NVSBsb2dpYy4gSXQncyBhIGNsZWFyIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhlIGtleSBlbGVtZW50cyB0aGF0IGNvbmZpcm0gdGhpcyBhcmU6XG5cbiogICBgV29ydGhGdXp6aW5nOiB0cnVlYCAtIEkgYWdyZWUuIEFueSBjaGFuZ2UgdG8gTU1VLWxldmVsIGZ1bmN0aW9uYWxpdHksIGVzcGVjaWFsbHkgb25lIHRoYXQncyBoYW5kbGluZyBwYWdlIHRhYmxlcyBhbmQgZGlydHkgbG9nZ2luZywgZGVzZXJ2ZXMgdGhvcm91Z2ggZnV6emluZy4gVGhlc2UgYXJlIGNyaXRpY2FsIGNvbXBvbmVudHMgcHJvbmUgdG8gZXJyb3JzLCBlc3BlY2lhbGx5IHdpdGhpbiB2aXJ0dWFsaXphdGlvbi5cbiogICBgRm9jdXNTeW1ib2xzOiBrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZGAsIGBrdm1fYXJjaF9tbXVfZW5hYmxlX2xvZ19kaXJ0eV9wdF9tYXNrZWRgIC0gU3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgbmV3IGZ1bmN0aW9uIGFuZCB0aGUgcmVsYXRlZCBNTVUgZW5hYmxpbmcgZnVuY3Rpb24gaXMgZXhhY3RseSB3aGF0IEkgd291bGQgcmVjb21tZW5kLiBGdXp6aW5nIGJvdGggcHJvdmlkZXMgYSB0aG9yb3VnaCB0ZXN0IG9mIGludGVyYWN0aW9uLlxuKiAgIGBFbmFibGVDb25maWdzOiBLVk1gIC0gVGhlIGZvY3VzIG9uIEtWTSBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhlIGZ1bmN0aW9uJ3MgbmFtZSBhbmQgcHVycG9zZS5cblxuSW4gc2hvcnQsIGl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoIGNsZWFyIHNlY3VyaXR5IGltcGxpY2F0aW9ucywgdGhhdCBpcyByZWxhdGVkIHRvIGEgdml0YWwgY29tcG9uZW50LiBJdCB3YXJyYW50cyB0aGUgZnV6emluZyB0aGF0IGlzIHN1Z2dlc3RlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk5NywiT3V0cHV0VG9rZW5zIjoxMzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTA6MTI6MTAuODM5NDQ0OTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzI0NDQ1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRcIixcbiAgICBcImt2bV9hcmNoX21tdV9lbmFibGVfbG9nX2RpcnR5X3B0X21hc2tlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGt2bV9yaXNjdl9nc3RhZ2Vfd3BfcHRfbWFza2VkYCB0byBoYW5kbGUgd3JpdGUtcHJvdGVjdGluZyBwYWdlIHRhYmxlcyB3aXRoIGEgbWFzayBmb3IgUklTQy1WIEtWTSwgd2hpY2ggaXMgdXNlZCBkdXJpbmcgZGlydHkgcGFnZSBsb2dnaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIE1NVSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfZ3N0YWdlX3dwX3B0X21hc2tlZFwiLFxuICAgIFwia3ZtX2FyY2hfbW11X2VuYWJsZV9sb2dfZGlydHlfcHRfbWFza2VkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBga3ZtX3Jpc2N2X2dzdGFnZV93cF9wdF9tYXNrZWRgIHRvIGhhbmRsZSB3cml0ZS1wcm90ZWN0aW5nIHBhZ2UgdGFibGVzIHdpdGggYSBtYXNrIGZvciBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c2VkIGR1cmluZyBkaXJ0eSBwYWdlIGxvZ2dpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gTU1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[1] Phase: Succeeded StartedAt: 2026-07-17 10:12:58 +0000 UTC FinishedAt: 2026-07-17 10:12:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-17 10:12:58 +0000 UTC FinishedAt: 2026-07-17 10:12:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2] Phase: Succeeded StartedAt: 2026-07-17 10:12:58 +0000 UTC FinishedAt: 2026-07-17 11:47:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-17 10:12:58 +0000 UTC FinishedAt: 2026-07-17 11:47:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-17 10:12:58 +0000 UTC FinishedAt: 2026-07-17 10:13:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-17 10:12:58 +0000 UTC FinishedAt: 2026-07-17 10:13:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflow892bl/series-workflow892bl-convert-artifact-3473402900/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-17 10:13:08 +0000 UTC FinishedAt: 2026-07-17 10:42:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-17 10:13:08 +0000 UTC FinishedAt: 2026-07-17 10:42:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*298c004e-a232-460f-855c-6b1d0ae1a320,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-workflow892bl/series-workflow892bl-convert-artifact-3473402900/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": "5cad4a44-59f4-4b7c-b84c-bca96e5e1463", "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-workflow892bl/series-workflow892bl-build-action-1047230610/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-17 10:13:08 +0000 UTC FinishedAt: 2026-07-17 10:42:27 +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:*298c004e-a232-460f-855c-6b1d0ae1a320,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-workflow892bl/series-workflow892bl-convert-artifact-3473402900/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": "5cad4a44-59f4-4b7c-b84c-bca96e5e1463", "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-workflow892bl/series-workflow892bl-build-action-1047230610/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-17 10:42:45 +0000 UTC FinishedAt: 2026-07-17 10:42:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-17 10:42:46 +0000 UTC FinishedAt: 2026-07-17 10:42:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-17 10:42:46 +0000 UTC FinishedAt: 2026-07-17 10:43:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-17 10:42:46 +0000 UTC FinishedAt: 2026-07-17 10:43:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflow892bl/series-workflow892bl-convert-artifact-2832988115/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-17 10:43:19 +0000 UTC FinishedAt: 2026-07-17 10:45:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-17 10:43:19 +0000 UTC FinishedAt: 2026-07-17 10:45:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5cad4a44-59f4-4b7c-b84c-bca96e5e1463,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-workflow892bl/series-workflow892bl-build-action-1047230610/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-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-17 10:45:33 +0000 UTC FinishedAt: 2026-07-17 10:45:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-17 10:45:33 +0000 UTC FinishedAt: 2026-07-17 10:45:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-17 10:45:33 +0000 UTC FinishedAt: 2026-07-17 11:42:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-17 10:45:33 +0000 UTC FinishedAt: 2026-07-17 11:42:46 +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:*298c004e-a232-460f-855c-6b1d0ae1a320,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-workflow892bl/series-workflow892bl-convert-artifact-2832988115/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": "9e223e96-bcfa-4441-94ed-c5386aec2e32", "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-workflow892bl/series-workflow892bl-build-action-3721538823/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-17 10:45:33 +0000 UTC FinishedAt: 2026-07-17 11:42:36 +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:*298c004e-a232-460f-855c-6b1d0ae1a320,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-workflow892bl/series-workflow892bl-convert-artifact-2832988115/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": "9e223e96-bcfa-4441-94ed-c5386aec2e32", "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-workflow892bl/series-workflow892bl-build-action-3721538823/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-17 11:42:46 +0000 UTC FinishedAt: 2026-07-17 11:42:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-17 11:42:46 +0000 UTC FinishedAt: 2026-07-17 11:42:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-17 11:42:46 +0000 UTC FinishedAt: 2026-07-17 11:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-17 11:42:46 +0000 UTC FinishedAt: 2026-07-17 11:44:15 +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:*9e223e96-bcfa-4441-94ed-c5386aec2e32,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-workflow892bl/series-workflow892bl-build-action-3721538823/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-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:47:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:47:25 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"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:*5cad4a44-59f4-4b7c-b84c-bca96e5e1463,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*9e223e96-bcfa-4441-94ed-c5386aec2e32,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-workflow892bl/series-workflow892bl-build-action-1047230610/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-workflow892bl/series-workflow892bl-build-action-3721538823/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:44:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:44:42 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"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-workflow892bl/series-workflow892bl-convert-artifact-681533772/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-17 11:44:25 +0000 UTC FinishedAt: 2026-07-17 11:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-17 11:44:49 +0000 UTC FinishedAt: 2026-07-17 11:47:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow892bl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_gstage_wp_pt_masked","kvm_arch_mmu_enable_log_dirty_pt_masked"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"98a43658-4258-4a41-b87e-e7d15077716d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-17 11:44:49 +0000 UTC FinishedAt: 2026-07-17 11:47:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5cad4a44-59f4-4b7c-b84c-bca96e5e1463,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*9e223e96-bcfa-4441-94ed-c5386aec2e32,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-workflow892bl/series-workflow892bl-build-action-1047230610/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-workflow892bl/series-workflow892bl-build-action-3721538823/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-workflow892bl/series-workflow892bl-convert-artifact-681533772/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,}