Name: series-workflowhr7bz Phase: Succeeded StartedAt: 2026-07-16 21:48:57 +0000 UTC FinishedAt: 2026-07-17 02:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[0] Phase: Succeeded StartedAt: 2026-07-16 21:48:57 +0000 UTC FinishedAt: 2026-07-16 22:03:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 21:48:57 +0000 UTC FinishedAt: 2026-07-16 22:03:25 +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", "KVM_INTEL" ], "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", "KVM_INTEL" ], "series_id": "2e95d9ad-46e9-4c06-8253-617f0e5b2b9a" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vt_vcpu_postcreate", "vmx_vcpu_postcreate" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2dF92Y3B1X3Bvc3RjcmVhdGUmIzM0OywKICAgICYjMzQ7dm14X3ZjcHVfcG9zdGNyZWF0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgaW4gS1ZNIHg4NiBvcGVyYXRpb25zIGFuZCBpbXBsZW1lbnRzIGl0IGZvciBJbnRlbCBWTVggdG8gaGFuZGxlIFBJRCB0YWJsZSBpbml0aWFsaXphdGlvbiBmb3IgSVBJIHZpcnR1YWxpemF0aW9uLiBUaGlzIG1vZGlmaWVzIHRoZSBWQ1BVIGNyZWF0aW9uIGZsb3cgYW5kIGlzIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDUzZjliYWE1YjQwZGFhM2YzYzMzODllMDczMDkxOTBhMzIwNDVkNWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAyMjowMjozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggODNkYzUwODYxMzhiMzkuLmFlY2JlOWM1NDAwNGY5IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuQEAgLTI1LDYgJiM0MzsyNSw3IEBAIEtWTV9YODZfT1BfT1BUSU9OQUwodm1fZGVzdHJveSlcbiBLVk1fWDg2X09QX09QVElPTkFMKHZtX3ByZV9kZXN0cm95KVxuIEtWTV9YODZfT1BfT1BUSU9OQUxfUkVUMCh2Y3B1X3ByZWNyZWF0ZSlcbiBLVk1fWDg2X09QKHZjcHVfY3JlYXRlKVxuJiM0MztLVk1fWDg2X09QX09QVElPTkFMKHZjcHVfcG9zdGNyZWF0ZSlcbiBLVk1fWDg2X09QKHZjcHVfZnJlZSlcbiBLVk1fWDg2X09QKHZjcHVfcmVzZXQpXG4gS1ZNX1g4Nl9PUChwcmVwYXJlX3N3aXRjaF90b19ndWVzdClcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggNWY2YzFjZTk2NzNiN2YuLjNlZDlkOGZjM2I5NjEwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE4MDMsNiAmIzQzOzE4MDMsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMge1xuIFx0LyogQ3JlYXRlLCBidXQgZG8gbm90IGF0dGFjaCB0aGlzIFZDUFUgKi9cbiBcdGludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pO1xuIFx0aW50ICgqdmNwdV9jcmVhdGUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4mIzQzO1x0dm9pZCAoKnZjcHVfcG9zdGNyZWF0ZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdHZvaWQgKCp2Y3B1X2ZyZWUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHR2b2lkICgqdmNwdV9yZXNldCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGluaXRfZXZlbnQpO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDgzZDk5MjEyNzdlYWMyLi5iZGY1YmEzMTU1ZjY2NyAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuQEAgLTc4LDYgJiM0Mzs3OCwxNCBAQCBzdGF0aWMgaW50IHZ0X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdHJldHVybiB2bXhfdmNwdV9jcmVhdGUodmNwdSk7XG4gfVxuIFxuJiM0MztzdGF0aWMgdm9pZCB2dF92Y3B1X3Bvc3RjcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuJiM0Mzt7XG4mIzQzO1x0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuJiM0MztcdHZteF92Y3B1X3Bvc3RjcmVhdGUodmNwdSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdnRfdmNwdV9mcmVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSkge1xuQEAgLTg5OCw2ICYjNDM7OTA2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcbiBcbiBcdC52Y3B1X3ByZWNyZWF0ZSA9IHZ0X29wKHZjcHVfcHJlY3JlYXRlKSxcbiBcdC52Y3B1X2NyZWF0ZSA9IHZ0X29wKHZjcHVfY3JlYXRlKSxcbiYjNDM7XHQudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSxcbiBcdC52Y3B1X2ZyZWUgPSB2dF9vcCh2Y3B1X2ZyZWUpLFxuIFx0LnZjcHVfcmVzZXQgPSB2dF9vcCh2Y3B1X3Jlc2V0KSxcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuaW5kZXggY2M3NWZlZWMwNWRhYTQuLmFlNmNlZjljMTNlMDI1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTc3NTIsMTAgJiM0Mzs3NzUyLDYgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRcdHZteC1cdTAwM2V2ZV9pbmZvID0gcGFnZV90b192aXJ0KHBhZ2UpO1xuIFx0fVxuIFxuLVx0aWYgKHZteF9jYW5fdXNlX2lwaXYodmNwdSkpXG4tXHRcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVx1MDAzZWt2bSktXHUwMDNlcGlkX3RhYmxlW3ZjcHUtXHUwMDNldmNwdV9pZF0sXG4tXHRcdFx0ICAgX19wYShcdTAwMjZ2bXgtXHUwMDNldnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpO1xuLVxuIFx0cmV0dXJuIDA7XG4gXG4gZnJlZV92bWNzOlxuQEAgLTc3NjcsNiAmIzQzOzc3NjMsMTMgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiYjNDM7dm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiYjNDM7e1xuJiM0MztcdGlmICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpKVxuJiM0MztcdFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXHUwMDNla3ZtKS1cdTAwM2VwaWRfdGFibGVbdmNwdS1cdTAwM2V2Y3B1X2lkXSxcbiYjNDM7XHRcdFx0ICAgX19wYShcdTAwMjZ0b192bXgodmNwdSktXHUwMDNldnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpO1xuJiM0Mzt9XG4mIzQzO1xuICNkZWZpbmUgTDFURl9NU0dfU01UIFwmIzM0O0wxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCBTTVQgb24sIGRhdGEgbGVhayBwb3NzaWJsZS4gU2VlIENWRS0yMDE4LTM2NDYgYW5kIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L2FkbWluLWd1aWRlL2h3LXZ1bG4vbDF0Zi5odG1sIGZvciBkZXRhaWxzLlxcblwmIzM0O1xuICNkZWZpbmUgTDFURl9NU0dfTDFEIFwmIzM0O0wxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCB2aXJ0dWFsaXphdGlvbiBtaXRpZ2F0aW9uIGRpc2FibGVkLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXG5cJiMzNDtcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCA0MDk4NTgwNzQyNDYyYy4uZGVmYzJjM2EzN2M4NDcgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbkBAIC0yMSw2ICYjNDM7MjEsNyBAQCBpbnQgdm14X3ZtX2luaXQoc3RydWN0IGt2bSAqa3ZtKTtcbiB2b2lkIHZteF92bV9kZXN0cm95KHN0cnVjdCBrdm0gKmt2bSk7XG4gaW50IHZteF92Y3B1X3ByZWNyZWF0ZShzdHJ1Y3Qga3ZtICprdm0pO1xuIGludCB2bXhfdmNwdV9jcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiYjNDM7dm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBmYXN0cGF0aF90IHZteF92Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBydW5fZmxhZ3MpO1xuIHZvaWQgdm14X3ZjcHVfZnJlZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggYWZjYWMxMDQyOTQ3YTUuLmM5ZjUxMmEzMGZlYzA2IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC0xMjg3Myw2ICYjNDM7MTI4NzMsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRcdHJldHVybjtcbiBcdHZjcHVfbG9hZCh2Y3B1KTtcbiBcdGt2bV9zeW5jaHJvbml6ZV90c2ModmNwdSwgTlVMTCk7XG4mIzQzO1x0a3ZtX3g4Nl9jYWxsKHZjcHVfcG9zdGNyZWF0ZSkodmNwdSk7XG4gXHR2Y3B1X3B1dCh2Y3B1KTtcbiBcbiBcdC8qIHBvbGwgY29udHJvbCBlbmFibGVkIGJ5IGRlZmF1bHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OywKICAgICYjMzQ7S1ZNX0lOVEVMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnRfdmNwdV9wb3N0Y3JlYXRlJiMzNDssCiAgICAmIzM0O3ZteF92Y3B1X3Bvc3RjcmVhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGluIEtWTSB4ODYgb3BlcmF0aW9ucyBhbmQgaW1wbGVtZW50cyBpdCBmb3IgSW50ZWwgVk1YIHRvIGhhbmRsZSBQSUQgdGFibGUgaW5pdGlhbGl6YXRpb24gZm9yIElQSSB2aXJ0dWFsaXphdGlvbi4gVGhpcyBtb2RpZmllcyB0aGUgVkNQVSBjcmVhdGlvbiBmbG93IGFuZCBpcyByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDUzZjliYWE1YjQwZGFhM2YzYzMzODllMDczMDkxOTBhMzIwNDVkNWUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAxNiAyMjowMjozMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCmluZGV4IDgzZGM1MDg2MTM4YjM5Li5hZWNiZTljNTQwMDRmOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCkBAIC0yNSw2ICYjNDM7MjUsNyBAQCBLVk1fWDg2X09QX09QVElPTkFMKHZtX2Rlc3Ryb3kpCiBLVk1fWDg2X09QX09QVElPTkFMKHZtX3ByZV9kZXN0cm95KQogS1ZNX1g4Nl9PUF9PUFRJT05BTF9SRVQwKHZjcHVfcHJlY3JlYXRlKQogS1ZNX1g4Nl9PUCh2Y3B1X2NyZWF0ZSkKJiM0MztLVk1fWDg2X09QX09QVElPTkFMKHZjcHVfcG9zdGNyZWF0ZSkKIEtWTV9YODZfT1AodmNwdV9mcmVlKQogS1ZNX1g4Nl9PUCh2Y3B1X3Jlc2V0KQogS1ZNX1g4Nl9PUChwcmVwYXJlX3N3aXRjaF90b19ndWVzdCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDVmNmMxY2U5NjczYjdmLi4zZWQ5ZDhmYzNiOTYxMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0xODAzLDYgJiM0MzsxODAzLDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHsKIAkvKiBDcmVhdGUsIGJ1dCBkbyBub3QgYXR0YWNoIHRoaXMgVkNQVSAqLwogCWludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pOwogCWludCAoKnZjcHVfY3JlYXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwomIzQzOwl2b2lkICgqdmNwdV9wb3N0Y3JlYXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCXZvaWQgKCp2Y3B1X2ZyZWUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJdm9pZCAoKnZjcHVfcmVzZXQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBpbml0X2V2ZW50KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwppbmRleCA4M2Q5OTIxMjc3ZWFjMi4uYmRmNWJhMzE1NWY2NjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCkBAIC03OCw2ICYjNDM7NzgsMTQgQEAgc3RhdGljIGludCB2dF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIHZteF92Y3B1X2NyZWF0ZSh2Y3B1KTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHZ0X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwlpZiAoaXNfdGRfdmNwdSh2Y3B1KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJdm14X3ZjcHVfcG9zdGNyZWF0ZSh2Y3B1KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB2dF92Y3B1X2ZyZWUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCWlmIChpc190ZF92Y3B1KHZjcHUpKSB7CkBAIC04OTgsNiAmIzQzOzkwNiw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7CiAKIAkudmNwdV9wcmVjcmVhdGUgPSB2dF9vcCh2Y3B1X3ByZWNyZWF0ZSksCiAJLnZjcHVfY3JlYXRlID0gdnRfb3AodmNwdV9jcmVhdGUpLAomIzQzOwkudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSwKIAkudmNwdV9mcmVlID0gdnRfb3AodmNwdV9mcmVlKSwKIAkudmNwdV9yZXNldCA9IHZ0X29wKHZjcHVfcmVzZXQpLAogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwppbmRleCBjYzc1ZmVlYzA1ZGFhNC4uYWU2Y2VmOWMxM2UwMjUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtNzc1MiwxMCAmIzQzOzc3NTIsNiBAQCBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJdm14LSZndDt2ZV9pbmZvID0gcGFnZV90b192aXJ0KHBhZ2UpOwogCX0KIAotCWlmICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpKQotCQlXUklURV9PTkNFKHRvX2t2bV92bXgodmNwdS0mZ3Q7a3ZtKS0mZ3Q7cGlkX3RhYmxlW3ZjcHUtJmd0O3ZjcHVfaWRdLAotCQkJICAgX19wYSgmYW1wO3ZteC0mZ3Q7dnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpOwotCiAJcmV0dXJuIDA7CiAKIGZyZWVfdm1jczoKQEAgLTc3NjcsNiAmIzQzOzc3NjMsMTMgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIGVycjsKIH0KIAomIzQzO3ZvaWQgdm14X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwlpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSkKJiM0MzsJCVdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LSZndDtrdm0pLSZndDtwaWRfdGFibGVbdmNwdS0mZ3Q7dmNwdV9pZF0sCiYjNDM7CQkJICAgX19wYSgmYW1wO3RvX3ZteCh2Y3B1KS0mZ3Q7dnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpOwomIzQzO30KJiM0MzsKICNkZWZpbmUgTDFURl9NU0dfU01UICYjMzQ7TDFURiBDUFUgYnVnIHByZXNlbnQgYW5kIFNNVCBvbiwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgQ1ZFLTIwMTgtMzY0NiBhbmQgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9sMXRmLmh0bWwgZm9yIGRldGFpbHMuXG4mIzM0OwogI2RlZmluZSBMMVRGX01TR19MMUQgJiMzNDtMMVRGIENQVSBidWcgcHJlc2VudCBhbmQgdmlydHVhbGl6YXRpb24gbWl0aWdhdGlvbiBkaXNhYmxlZCwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgQ1ZFLTIwMTgtMzY0NiBhbmQgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9sMXRmLmh0bWwgZm9yIGRldGFpbHMuXG4mIzM0OwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCmluZGV4IDQwOTg1ODA3NDI0NjJjLi5kZWZjMmMzYTM3Yzg0NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKQEAgLTIxLDYgJiM0MzsyMSw3IEBAIGludCB2bXhfdm1faW5pdChzdHJ1Y3Qga3ZtICprdm0pOwogdm9pZCB2bXhfdm1fZGVzdHJveShzdHJ1Y3Qga3ZtICprdm0pOwogaW50IHZteF92Y3B1X3ByZWNyZWF0ZShzdHJ1Y3Qga3ZtICprdm0pOwogaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwomIzQzO3ZvaWQgdm14X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIGZhc3RwYXRoX3Qgdm14X3ZjcHVfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHJ1bl9mbGFncyk7CiB2b2lkIHZteF92Y3B1X2ZyZWUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBhZmNhYzEwNDI5NDdhNS4uYzlmNTEyYTMwZmVjMDYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTEyODczLDYgJiM0MzsxMjg3Myw3IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJcmV0dXJuOwogCXZjcHVfbG9hZCh2Y3B1KTsKIAlrdm1fc3luY2hyb25pemVfdHNjKHZjcHUsIE5VTEwpOwomIzQzOwlrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KTsKIAl2Y3B1X3B1dCh2Y3B1KTsKIAogCS8qIHBvbGwgY29udHJvbCBlbmFibGVkIGJ5IGRlZmF1bHQgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY3MQoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDMxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtWTSB4ODYgVk1YIFJlZmFjdG9yaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBhcHBlYXJzIHRoZXkmIzM5O3ZlIGFkZGVkIGEgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayB3aXRoaW4gdGhlIGBrdm1feDg2X29wc2Agc3RydWN0dXJlLiBUaGUgZ29hbCBzZWVtcyB0byBiZSB0byBjbGVhbiB1cCBgdm14X3ZjcHVfY3JlYXRlYCBieSBtb3Zpbmcgc29tZSBjb2RlIGludG8gdGhpcyBuZXcgaG9vayBmdW5jdGlvbiwgYHZteF92Y3B1X3Bvc3RjcmVhdGVgLiBTcGVjaWZpY2FsbHksIHRoZSBjb2RlIHRoZXkmIzM5O3ZlIG1vdmVkIGRlYWxzIHdpdGggc2V0dGluZyB1cCB0aGUgYHBpZF90YWJsZWAgZW50cnk6CgpgYGBjCglpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSkKCQlXUklURV9PTkNFKHRvX2t2bV92bXgodmNwdS0mZ3Q7a3ZtKS0mZ3Q7cGlkX3RhYmxlW3ZjcHUtJmd0O3ZjcHVfaWRdLAoJCQkgICBfX3BhKCZhbXA7dG9fdm14KHZjcHUpLSZndDt2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7CmBgYAoKVGhpcyBpcyB0aGVuIGNhbGxlZCB0aHJvdWdoIHRoZSBga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlYCBwYXRoLCB3aGljaCB1c2VzIHRoZSBnZW5lcmljIGBrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KWAgbWVjaGFuaXNtLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgYWN0dWFsbHkgcmVhY2hhYmxlIGFuZCBmdW5jdGlvbmluZyBjb3JyZWN0bHkuIFRoaXMgaXMgZXNzZW50aWFsbHkgYSByZWZhY3RvcmluZyB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhIGhvb2ssIHNvIGxldCYjMzk7cyB0cmVhdCBpdCBhY2NvcmRpbmdseS4KCldvcnRoIGZ1enppbmc/IEFic29sdXRlbHkuIEl04oCZcyBmdW5jdGlvbmFsIEtWTSBjb2RlLCBhbmQgYW55IGNoYW5nZSBpbiB0aGlzIGFyZWEgd2FycmFudHMgYSBmdXp6aW5nIGNhbXBhaWduIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gc3VidGxlIHJlZ3Jlc3Npb25zLgoKTXkga2V5IGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgYHZteF92Y3B1X3Bvc3RjcmVhdGVgIGFuZCB0aGUgYW5hbG9nb3VzIGB2dF92Y3B1X3Bvc3RjcmVhdGVgIGZ1bmN0aW9uLiBJIHdpbGwgbmVlZCB0byBlbmFibGUgYm90aCB0aGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb25zIHRvIGVuc3VyZSBjb21wcmVoZW5zaXZlIGNvdmVyYWdlLgoKTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgdm14X2Nhbl91c2VfaXBpdmAgZnVuY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBiZWhhdmlvciBhbmQgcG90ZW50aWFsIGVkZ2UgY2FzZXMgYmVjYXVzZSBpdCBkaWN0YXRlcyB3aGV0aGVyIHRoYXQgY3JpdGljYWwgYHBpZF90YWJsZWAgZW50cnkgaXMgd3JpdHRlbi4gVGltZSB0byBmaXJlIHVwIGdyZXBwZXIgYW5kIGh1bnQgZm9yIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBhbmQgaG93IGl04oCZcyBkZWZpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZteF9jYW5fdXNlX2lwaXYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC9wb3N0ZWRfaW50ci5jPTIwOT1zdGF0aWMgYm9vbCB2bXhfbmVlZHNfcGlfd2FrZXVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3Bvc3RlZF9pbnRyLmMtMjE4LVx0ICovXG5hcmNoL3g4Ni9rdm0vdm14L3Bvc3RlZF9pbnRyLmM6MjE5Olx0cmV0dXJuICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpIFx1MDAyNlx1MDAyNiAhaXNfdGRfdmNwdSh2Y3B1KSkgfHxcbmFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYy0yMjAtXHRcdHZteF9jYW5fdXNlX3Z0ZF9waSh2Y3B1LVx1MDAzZWt2bSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz00ODY3PXN0YXRpYyB2b2lkIGluaXRfdm1jcyhzdHJ1Y3QgdmNwdV92bXggKnZteClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTQ5MDYtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjQ5MDc6XHRpZiAodm14X2Nhbl91c2VfaXBpdihcdTAwMjZ2bXgtXHUwMDNldmNwdSkpIHtcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNDkwOC1cdFx0dm1jc193cml0ZTY0KFBJRF9QT0lOVEVSX1RBQkxFLCBfX3BhKGt2bV92bXgtXHUwMDNlcGlkX3RhYmxlKSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz03NzY2PXZvaWQgdm14X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3Njcte1xuYXJjaC94ODYva3ZtL3ZteC92bXguYzo3NzY4Olx0aWYgKHZteF9jYW5fdXNlX2lwaXYodmNwdSkpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3NjktXHRcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVx1MDAzZWt2bSktXHUwMDNlcGlkX3RhYmxlW3ZjcHUtXHUwMDNldmNwdV9pZF0sXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguaD03MTc9c3RhdGljIGlubGluZSBpbnQgdm14X2dldF9pbnN0cl9pbmZvX3JlZzIodTMyIHZteF9pbnN0cl9pbmZvKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmgtNzIxLVxuYXJjaC94ODYva3ZtL3ZteC92bXguaDo3MjI6c3RhdGljIGlubGluZSBib29sIHZteF9jYW5fdXNlX2lwaXYoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3ZteC92bXguaC03MjMte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwODIKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAxNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWNlbnQgQ29kZSBDaGFuZ2UqKgoKT2theSwgc28gYHZteF9jYW5fdXNlX2lwaXZgIC0gdGhhdCYjMzk7cyBhICpyZWFsKiBmdW5jdGlvbiwgbm90IHNvbWUgaHlwb3RoZXRpY2FsIHBsYWNlaG9sZGVyLiBHb29kLiBUaGUgY2hhbmdlcyBhcmUgaW4gYGFyY2gveDg2L2t2bS92bXgvdm14LmNgIGFuZCBgYXJjaC94ODYva3ZtL3ZteC9tYWluLmNgLCBjb25maXJtaW5nIHRoYXQgdGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwsIHJlYWwtd29ybGQgY29kZS4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBhbmQsIGltcG9ydGFudGx5LCBpbXBsZW1lbnRzIGl0IHNwZWNpZmljYWxseSBmb3IgVk1YLiBUaGF04oCZcyBpbnRlcmVzdGluZyAtIGl0IHN1Z2dlc3RzIHNvbWUgbmV3IGZ1bmN0aW9uYWxpdHkgb3IgcmVmaW5lbWVudCBoYXBwZW5pbmcgYWZ0ZXIgdGhlIFZDUFUgY3JlYXRpb24uCgpHaXZlbiB0aGF0IGl0JiMzOTtzIGFsdGVyaW5nIHRoZSBWTVggY29udGV4dCBwb3N0LWNyZWF0aW9uLCB0aGlzIGlzICphYnNvbHV0ZWx5KiB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSYjMzk7bGwgYmUgdGFyZ2V0aW5nIGFyZSBgdnRfdmNwdV9wb3N0Y3JlYXRlYCBhbmQgYHZteF92Y3B1X3Bvc3RjcmVhdGVgLiBUaG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cyB0byB3YXRjaC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4KCk5vdywgbGV0JiMzOTtzIHNlZSwgdGhlIG9idmlvdXMgZW5hYmxlZCBjb25maWdzIGFyZSBgS1ZNYCBhbmQgYEtWTV9JTlRFTGAuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgKm90aGVyKiByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoaXMgYmVoYXZpb3IsIG9yIGlmIG90aGVyIGRlcGVuZGVuY2llcyBleGlzdCB0aGF0IGNvdWxkIGFmZmVjdCBmdXp6aW5nLiBJJiMzOTtsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEtWTV9JTlRFTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vS2NvbmZpZz04Mz1jb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTA3OmNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O0ludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODI4CgkJCQkJCQlvdXRwdXQ6IDEzMAoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUGF0Y2ggYW5kIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgd2l0aGluIHRoZSBLVk0geDg2IG9wZXJhdGlvbnMsIHNwZWNpZmljYWxseSBmb3IgVk1YLiBNeSBndXQgZmVlbGluZyBpcyB0aGlzIGlzIGdvaW5nIHRvIGJlIGNlbnRyYWwgdG8gSVBJIHZpcnR1YWxpemF0aW9uIGFuZCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBjb3JlIEtWTSBtb2RpZmljYXRpb25zLCBpdCBkZW1hbmRzIGEgcm9idXN0IGZ1enppbmcgY2FtcGFpZ24uIFRoaXMgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpcyBjcnVjaWFsIGJlY2F1c2UgaXQmIzM5O3MgaW52b2x2ZWQgaW4gaW5pdGlhbGl6aW5nIHRoZSBQSUQgdGFibGUgZHVyaW5nIFZDUFUgY3JlYXRpb24uIFRoaXMgaXMgcHJlY2lzZWx5IHRoZSBraW5kIG9mIGxvdy1sZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgY2FuIGVhc2lseSBoYXJib3IgcmVncmVzc2lvbnMgb3Igc3VidGxlIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IG9ubHkgc3VyZmFjZSB1bmRlciBzcGVjaWZpYywgb2Z0ZW4gdW5wcmVkaWN0YWJsZSwgc3lzdGVtIGxvYWRzLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgcGF0Y2ggaXRzZWxmIHNlZW1zIHNvdW5kLCB0YXJnZXRpbmcgYSB3ZWxsLWRlZmluZWQgcHJvYmxlbSBhbmQgcHJvdmlkaW5nIGEgY2xlYXIgaW1wbGVtZW50YXRpb24gcGF0aC4gSG93ZXZlciwgdGhlIGludHJvZHVjdGlvbiBvZiB0aGlzIGhvb2ssIGVzc2VudGlhbGx5IGFsdGVyaW5nIHRoZSBWQ1BVIGluaXRpYWxpemF0aW9uIGZsb3csIG5lY2Vzc2l0YXRlcyByaWdvcm91cyB0ZXN0aW5nLiBJIG5lZWQgdG8gZW5zdXJlIHRoZSBzeXN0ZW0gYmVoYXZlcyByZWxpYWJseSBhZnRlciB0aGlzIHBhdGNoIGlzIGFwcGxpZWQuIFRoZSBuZXh0IHN0ZXAgaXMgY2xlYXI6IEkgbmVlZCB0byBpbml0aWF0ZSB0aGUgc2V0LXJlc3VsdHMgY2FsbCB0byB0cmFjayBhbmQgdmFsaWRhdGUgdGhlIGZ1enppbmcgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDssCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Z0X3ZjcHVfcG9zdGNyZWF0ZSYjMzQ7LAogICAgJiMzNDt2bXhfdmNwdV9wb3N0Y3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpbiBLVk0geDg2IG9wZXJhdGlvbnMgYW5kIGltcGxlbWVudHMgaXQgZm9yIEludGVsIFZNWCB0byBoYW5kbGUgUElEIHRhYmxlIGluaXRpYWxpemF0aW9uIGZvciBJUEkgdmlydHVhbGl6YXRpb24uIFRoaXMgbW9kaWZpZXMgdGhlIFZDUFUgY3JlYXRpb24gZmxvdyBhbmQgaXMgcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OywKICAgICYjMzQ7S1ZNX0lOVEVMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnRfdmNwdV9wb3N0Y3JlYXRlJiMzNDssCiAgICAmIzM0O3ZteF92Y3B1X3Bvc3RjcmVhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGluIEtWTSB4ODYgb3BlcmF0aW9ucyBhbmQgaW1wbGVtZW50cyBpdCBmb3IgSW50ZWwgVk1YIHRvIGhhbmRsZSBQSUQgdGFibGUgaW5pdGlhbGl6YXRpb24gZm9yIElQSSB2aXJ0dWFsaXphdGlvbi4gVGhpcyBtb2RpZmllcyB0aGUgVkNQVSBjcmVhdGlvbiBmbG93IGFuZCBpcyByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozMi4zNzI1MjUxMzVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzYxNzE4NTYyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ0X3ZjcHVfcG9zdGNyZWF0ZVwiLFxuICAgIFwidm14X3ZjcHVfcG9zdGNyZWF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpbiBLVk0geDg2IG9wZXJhdGlvbnMgYW5kIGltcGxlbWVudHMgaXQgZm9yIEludGVsIFZNWCB0byBoYW5kbGUgUElEIHRhYmxlIGluaXRpYWxpemF0aW9uIGZvciBJUEkgdmlydHVhbGl6YXRpb24uIFRoaXMgbW9kaWZpZXMgdGhlIFZDUFUgY3JlYXRpb24gZmxvdyBhbmQgaXMgcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozMi4zNzI1MzAwMTVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjI5OTcxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDUzZjliYWE1YjQwZGFhM2YzYzMzODllMDczMDkxOTBhMzIwNDVkNWVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6MDI6MzEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcXG5pbmRleCA4M2RjNTA4NjEzOGIzOS4uYWVjYmU5YzU0MDA0ZjkgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcXG5AQCAtMjUsNiArMjUsNyBAQCBLVk1fWDg2X09QX09QVElPTkFMKHZtX2Rlc3Ryb3kpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUwodm1fcHJlX2Rlc3Ryb3kpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUxfUkVUMCh2Y3B1X3ByZWNyZWF0ZSlcXG4gS1ZNX1g4Nl9PUCh2Y3B1X2NyZWF0ZSlcXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTCh2Y3B1X3Bvc3RjcmVhdGUpXFxuIEtWTV9YODZfT1AodmNwdV9mcmVlKVxcbiBLVk1fWDg2X09QKHZjcHVfcmVzZXQpXFxuIEtWTV9YODZfT1AocHJlcGFyZV9zd2l0Y2hfdG9fZ3Vlc3QpXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggNWY2YzFjZTk2NzNiN2YuLjNlZDlkOGZjM2I5NjEwIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTE4MDMsNiArMTgwMyw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB7XFxuIFxcdC8qIENyZWF0ZSwgYnV0IGRvIG5vdCBhdHRhY2ggdGhpcyBWQ1BVICovXFxuIFxcdGludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pO1xcbiBcXHRpbnQgKCp2Y3B1X2NyZWF0ZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4rXFx0dm9pZCAoKnZjcHVfcG9zdGNyZWF0ZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnZjcHVfZnJlZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnZjcHVfcmVzZXQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBpbml0X2V2ZW50KTtcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG5pbmRleCA4M2Q5OTIxMjc3ZWFjMi4uYmRmNWJhMzE1NWY2NjcgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbkBAIC03OCw2ICs3OCwxNCBAQCBzdGF0aWMgaW50IHZ0X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4gXFx0cmV0dXJuIHZteF92Y3B1X2NyZWF0ZSh2Y3B1KTtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgdnRfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4re1xcbitcXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0dm14X3ZjcHVfcG9zdGNyZWF0ZSh2Y3B1KTtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdnRfdmNwdV9mcmVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSkge1xcbkBAIC04OTgsNiArOTA2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcXG4gXFxuIFxcdC52Y3B1X3ByZWNyZWF0ZSA9IHZ0X29wKHZjcHVfcHJlY3JlYXRlKSxcXG4gXFx0LnZjcHVfY3JlYXRlID0gdnRfb3AodmNwdV9jcmVhdGUpLFxcbitcXHQudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSxcXG4gXFx0LnZjcHVfZnJlZSA9IHZ0X29wKHZjcHVfZnJlZSksXFxuIFxcdC52Y3B1X3Jlc2V0ID0gdnRfb3AodmNwdV9yZXNldCksXFxuIFxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbmluZGV4IGNjNzVmZWVjMDVkYWE0Li5hZTZjZWY5YzEzZTAyNSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbkBAIC03NzUyLDEwICs3NzUyLDYgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdFxcdHZteC1cXHUwMDNldmVfaW5mbyA9IHBhZ2VfdG9fdmlydChwYWdlKTtcXG4gXFx0fVxcbiBcXG4tXFx0aWYgKHZteF9jYW5fdXNlX2lwaXYodmNwdSkpXFxuLVxcdFxcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVxcdTAwM2Vrdm0pLVxcdTAwM2VwaWRfdGFibGVbdmNwdS1cXHUwMDNldmNwdV9pZF0sXFxuLVxcdFxcdFxcdCAgIF9fcGEoXFx1MDAyNnZteC1cXHUwMDNldnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpO1xcbi1cXG4gXFx0cmV0dXJuIDA7XFxuIFxcbiBmcmVlX3ZtY3M6XFxuQEAgLTc3NjcsNiArNzc2MywxMyBAQCBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4gXFx0cmV0dXJuIGVycjtcXG4gfVxcbiBcXG4rdm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4re1xcbitcXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcXG4rXFx0XFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXFx1MDAzZWt2bSktXFx1MDAzZXBpZF90YWJsZVt2Y3B1LVxcdTAwM2V2Y3B1X2lkXSxcXG4rXFx0XFx0XFx0ICAgX19wYShcXHUwMDI2dG9fdm14KHZjcHUpLVxcdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XFxuK31cXG4rXFxuICNkZWZpbmUgTDFURl9NU0dfU01UIFxcXCJMMVRGIENQVSBidWcgcHJlc2VudCBhbmQgU01UIG9uLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXFxcblxcXCJcXG4gI2RlZmluZSBMMVRGX01TR19MMUQgXFxcIkwxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCB2aXJ0dWFsaXphdGlvbiBtaXRpZ2F0aW9uIGRpc2FibGVkLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXFxcblxcXCJcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcXG5pbmRleCA0MDk4NTgwNzQyNDYyYy4uZGVmYzJjM2EzN2M4NDcgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxcbkBAIC0yMSw2ICsyMSw3IEBAIGludCB2bXhfdm1faW5pdChzdHJ1Y3Qga3ZtICprdm0pO1xcbiB2b2lkIHZteF92bV9kZXN0cm95KHN0cnVjdCBrdm0gKmt2bSk7XFxuIGludCB2bXhfdmNwdV9wcmVjcmVhdGUoc3RydWN0IGt2bSAqa3ZtKTtcXG4gaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbit2b2lkIHZteF92Y3B1X3Bvc3RjcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gZmFzdHBhdGhfdCB2bXhfdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcnVuX2ZsYWdzKTtcXG4gdm9pZCB2bXhfdmNwdV9mcmVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbmluZGV4IGFmY2FjMTA0Mjk0N2E1Li5jOWY1MTJhMzBmZWMwNiAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5AQCAtMTI4NzMsNiArMTI4NzMsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdFxcdHJldHVybjtcXG4gXFx0dmNwdV9sb2FkKHZjcHUpO1xcbiBcXHRrdm1fc3luY2hyb25pemVfdHNjKHZjcHUsIE5VTEwpO1xcbitcXHRrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KTtcXG4gXFx0dmNwdV9wdXQodmNwdSk7XFxuIFxcbiBcXHQvKiBwb2xsIGNvbnRyb2wgZW5hYmxlZCBieSBkZWZhdWx0ICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAyOjMyLjg3OTQ4NTA1NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMxMTAyMTA4MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dF92Y3B1X3Bvc3RjcmVhdGVcIixcbiAgICBcInZteF92Y3B1X3Bvc3RjcmVhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgaW4gS1ZNIHg4NiBvcGVyYXRpb25zIGFuZCBpbXBsZW1lbnRzIGl0IGZvciBJbnRlbCBWTVggdG8gaGFuZGxlIFBJRCB0YWJsZSBpbml0aWFsaXphdGlvbiBmb3IgSVBJIHZpcnR1YWxpemF0aW9uLiBUaGlzIG1vZGlmaWVzIHRoZSBWQ1BVIGNyZWF0aW9uIGZsb3cgYW5kIGlzIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1M2Y5YmFhNWI0MGRhYTNmM2MzMzg5ZTA3MzA5MTkwYTMyMDQ1ZDVlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6MDI6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggODNkYzUwODYxMzhiMzkuLmFlY2JlOWM1NDAwNGY5IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuQEAgLTI1LDYgKzI1LDcgQEAgS1ZNX1g4Nl9PUF9PUFRJT05BTCh2bV9kZXN0cm95KVxuIEtWTV9YODZfT1BfT1BUSU9OQUwodm1fcHJlX2Rlc3Ryb3kpXG4gS1ZNX1g4Nl9PUF9PUFRJT05BTF9SRVQwKHZjcHVfcHJlY3JlYXRlKVxuIEtWTV9YODZfT1AodmNwdV9jcmVhdGUpXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTCh2Y3B1X3Bvc3RjcmVhdGUpXG4gS1ZNX1g4Nl9PUCh2Y3B1X2ZyZWUpXG4gS1ZNX1g4Nl9PUCh2Y3B1X3Jlc2V0KVxuIEtWTV9YODZfT1AocHJlcGFyZV9zd2l0Y2hfdG9fZ3Vlc3QpXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbmluZGV4IDVmNmMxY2U5NjczYjdmLi4zZWQ5ZDhmYzNiOTYxMCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC0xODAzLDYgKzE4MDMsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMge1xuIFx0LyogQ3JlYXRlLCBidXQgZG8gbm90IGF0dGFjaCB0aGlzIFZDUFUgKi9cbiBcdGludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pO1xuIFx0aW50ICgqdmNwdV9jcmVhdGUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4rXHR2b2lkICgqdmNwdV9wb3N0Y3JlYXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnZjcHVfZnJlZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdHZvaWQgKCp2Y3B1X3Jlc2V0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgaW5pdF9ldmVudCk7XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuaW5kZXggODNkOTkyMTI3N2VhYzIuLmJkZjViYTMxNTVmNjY3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbisrKyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG5AQCAtNzgsNiArNzgsMTQgQEAgc3RhdGljIGludCB2dF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRyZXR1cm4gdm14X3ZjcHVfY3JlYXRlKHZjcHUpO1xuIH1cbiBcbitzdGF0aWMgdm9pZCB2dF92Y3B1X3Bvc3RjcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuK3tcbitcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHR2bXhfdmNwdV9wb3N0Y3JlYXRlKHZjcHUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2dF92Y3B1X2ZyZWUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdGlmIChpc190ZF92Y3B1KHZjcHUpKSB7XG5AQCAtODk4LDYgKzkwNiw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXG4gXHQudmNwdV9wcmVjcmVhdGUgPSB2dF9vcCh2Y3B1X3ByZWNyZWF0ZSksXG4gXHQudmNwdV9jcmVhdGUgPSB2dF9vcCh2Y3B1X2NyZWF0ZSksXG4rXHQudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSxcbiBcdC52Y3B1X2ZyZWUgPSB2dF9vcCh2Y3B1X2ZyZWUpLFxuIFx0LnZjcHVfcmVzZXQgPSB2dF9vcCh2Y3B1X3Jlc2V0KSxcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuaW5kZXggY2M3NWZlZWMwNWRhYTQuLmFlNmNlZjljMTNlMDI1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTc3NTIsMTAgKzc3NTIsNiBAQCBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdFx0dm14LVx1MDAzZXZlX2luZm8gPSBwYWdlX3RvX3ZpcnQocGFnZSk7XG4gXHR9XG4gXG4tXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcbi1cdFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXHUwMDNla3ZtKS1cdTAwM2VwaWRfdGFibGVbdmNwdS1cdTAwM2V2Y3B1X2lkXSxcbi1cdFx0XHQgICBfX3BhKFx1MDAyNnZteC1cdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XG4tXG4gXHRyZXR1cm4gMDtcbiBcbiBmcmVlX3ZtY3M6XG5AQCAtNzc2Nyw2ICs3NzYzLDEzIEBAIGludCB2bXhfdmNwdV9jcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIGVycjtcbiB9XG4gXG4rdm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit7XG4rXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcbitcdFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXHUwMDNla3ZtKS1cdTAwM2VwaWRfdGFibGVbdmNwdS1cdTAwM2V2Y3B1X2lkXSxcbitcdFx0XHQgICBfX3BhKFx1MDAyNnRvX3ZteCh2Y3B1KS1cdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XG4rfVxuK1xuICNkZWZpbmUgTDFURl9NU0dfU01UIFwiTDFURiBDUFUgYnVnIHByZXNlbnQgYW5kIFNNVCBvbiwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgQ1ZFLTIwMTgtMzY0NiBhbmQgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9sMXRmLmh0bWwgZm9yIGRldGFpbHMuXFxuXCJcbiAjZGVmaW5lIEwxVEZfTVNHX0wxRCBcIkwxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCB2aXJ0dWFsaXphdGlvbiBtaXRpZ2F0aW9uIGRpc2FibGVkLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXG5cIlxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbmluZGV4IDQwOTg1ODA3NDI0NjJjLi5kZWZjMmMzYTM3Yzg0NyAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuQEAgLTIxLDYgKzIxLDcgQEAgaW50IHZteF92bV9pbml0KHN0cnVjdCBrdm0gKmt2bSk7XG4gdm9pZCB2bXhfdm1fZGVzdHJveShzdHJ1Y3Qga3ZtICprdm0pO1xuIGludCB2bXhfdmNwdV9wcmVjcmVhdGUoc3RydWN0IGt2bSAqa3ZtKTtcbiBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4rdm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBmYXN0cGF0aF90IHZteF92Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBydW5fZmxhZ3MpO1xuIHZvaWQgdm14X3ZjcHVfZnJlZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggYWZjYWMxMDQyOTQ3YTUuLmM5ZjUxMmEzMGZlYzA2IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC0xMjg3Myw2ICsxMjg3Myw3IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdFx0cmV0dXJuO1xuIFx0dmNwdV9sb2FkKHZjcHUpO1xuIFx0a3ZtX3N5bmNocm9uaXplX3RzYyh2Y3B1LCBOVUxMKTtcbitcdGt2bV94ODZfY2FsbCh2Y3B1X3Bvc3RjcmVhdGUpKHZjcHUpO1xuIFx0dmNwdV9wdXQodmNwdSk7XG4gXG4gXHQvKiBwb2xsIGNvbnRyb2wgZW5hYmxlZCBieSBkZWZhdWx0ICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozMi44Nzk0ODYxMDVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTcxNjM0NDY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIHg4NiBWTVggUmVmYWN0b3JpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBhcHBlYXJzIHRoZXkndmUgYWRkZWQgYSBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIHdpdGhpbiB0aGUgYGt2bV94ODZfb3BzYCBzdHJ1Y3R1cmUuIFRoZSBnb2FsIHNlZW1zIHRvIGJlIHRvIGNsZWFuIHVwIGB2bXhfdmNwdV9jcmVhdGVgIGJ5IG1vdmluZyBzb21lIGNvZGUgaW50byB0aGlzIG5ldyBob29rIGZ1bmN0aW9uLCBgdm14X3ZjcHVfcG9zdGNyZWF0ZWAuIFNwZWNpZmljYWxseSwgdGhlIGNvZGUgdGhleSd2ZSBtb3ZlZCBkZWFscyB3aXRoIHNldHRpbmcgdXAgdGhlIGBwaWRfdGFibGVgIGVudHJ5OlxuXG5gYGBjXG5cdGlmICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpKVxuXHRcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVx1MDAzZWt2bSktXHUwMDNlcGlkX3RhYmxlW3ZjcHUtXHUwMDNldmNwdV9pZF0sXG5cdFx0XHQgICBfX3BhKFx1MDAyNnRvX3ZteCh2Y3B1KS1cdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XG5gYGBcblxuVGhpcyBpcyB0aGVuIGNhbGxlZCB0aHJvdWdoIHRoZSBga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlYCBwYXRoLCB3aGljaCB1c2VzIHRoZSBnZW5lcmljIGBrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KWAgbWVjaGFuaXNtLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgYWN0dWFsbHkgcmVhY2hhYmxlIGFuZCBmdW5jdGlvbmluZyBjb3JyZWN0bHkuIFRoaXMgaXMgZXNzZW50aWFsbHkgYSByZWZhY3RvcmluZyB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhIGhvb2ssIHNvIGxldCdzIHRyZWF0IGl0IGFjY29yZGluZ2x5LlxuXG5Xb3J0aCBmdXp6aW5nPyBBYnNvbHV0ZWx5LiBJdOKAmXMgZnVuY3Rpb25hbCBLVk0gY29kZSwgYW5kIGFueSBjaGFuZ2UgaW4gdGhpcyBhcmVhIHdhcnJhbnRzIGEgZnV6emluZyBjYW1wYWlnbiB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1YnRsZSByZWdyZXNzaW9ucy5cblxuTXkga2V5IGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgYHZteF92Y3B1X3Bvc3RjcmVhdGVgIGFuZCB0aGUgYW5hbG9nb3VzIGB2dF92Y3B1X3Bvc3RjcmVhdGVgIGZ1bmN0aW9uLiBJIHdpbGwgbmVlZCB0byBlbmFibGUgYm90aCB0aGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb25zIHRvIGVuc3VyZSBjb21wcmVoZW5zaXZlIGNvdmVyYWdlLlxuXG5Ob3csIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIGB2bXhfY2FuX3VzZV9pcGl2YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGJlaGF2aW9yIGFuZCBwb3RlbnRpYWwgZWRnZSBjYXNlcyBiZWNhdXNlIGl0IGRpY3RhdGVzIHdoZXRoZXIgdGhhdCBjcml0aWNhbCBgcGlkX3RhYmxlYCBlbnRyeSBpcyB3cml0dGVuLiBUaW1lIHRvIGZpcmUgdXAgZ3JlcHBlciBhbmQgaHVudCBmb3Igd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyB1c2VkIGFuZCBob3cgaXTigJlzIGRlZmluZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NzEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozOS4wNTExMjI1OTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjExMjA2NzY2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2bXhfY2FuX3VzZV9pcGl2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYz0yMDk9c3RhdGljIGJvb2wgdm14X25lZWRzX3BpX3dha2V1cChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3Bvc3RlZF9pbnRyLmMtMjE4LVxcdCAqL1xcbmFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYzoyMTk6XFx0cmV0dXJuICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpIFxcdTAwMjZcXHUwMDI2ICFpc190ZF92Y3B1KHZjcHUpKSB8fFxcbmFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYy0yMjAtXFx0XFx0dm14X2Nhbl91c2VfdnRkX3BpKHZjcHUtXFx1MDAzZWt2bSk7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTQ4Njc9c3RhdGljIHZvaWQgaW5pdF92bWNzKHN0cnVjdCB2Y3B1X3ZteCAqdm14KVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy00OTA2LVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NDkwNzpcXHRpZiAodm14X2Nhbl91c2VfaXBpdihcXHUwMDI2dm14LVxcdTAwM2V2Y3B1KSkge1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNDkwOC1cXHRcXHR2bWNzX3dyaXRlNjQoUElEX1BPSU5URVJfVEFCTEUsIF9fcGEoa3ZtX3ZteC1cXHUwMDNlcGlkX3RhYmxlKSk7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTc3NjY9dm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3Njcte1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6Nzc2ODpcXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3NjktXFx0XFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXFx1MDAzZWt2bSktXFx1MDAzZXBpZF90YWJsZVt2Y3B1LVxcdTAwM2V2Y3B1X2lkXSxcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14Lmg9NzE3PXN0YXRpYyBpbmxpbmUgaW50IHZteF9nZXRfaW5zdHJfaW5mb19yZWcyKHUzMiB2bXhfaW5zdHJfaW5mbylcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmgtNzIxLVxcbmFyY2gveDg2L2t2bS92bXgvdm14Lmg6NzIyOnN0YXRpYyBpbmxpbmUgYm9vbCB2bXhfY2FuX3VzZV9pcGl2KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5oLTcyMy17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAyOjQxLjE2MzE5NTU5OVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MzIwMzQ2NzExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVjZW50IENvZGUgQ2hhbmdlKipcblxuT2theSwgc28gYHZteF9jYW5fdXNlX2lwaXZgIC0gdGhhdCdzIGEgKnJlYWwqIGZ1bmN0aW9uLCBub3Qgc29tZSBoeXBvdGhldGljYWwgcGxhY2Vob2xkZXIuIEdvb2QuIFRoZSBjaGFuZ2VzIGFyZSBpbiBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgYW5kIGBhcmNoL3g4Ni9rdm0vdm14L21haW4uY2AsIGNvbmZpcm1pbmcgdGhhdCB0aGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCwgcmVhbC13b3JsZCBjb2RlLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGFuZCwgaW1wb3J0YW50bHksIGltcGxlbWVudHMgaXQgc3BlY2lmaWNhbGx5IGZvciBWTVguIFRoYXTigJlzIGludGVyZXN0aW5nIC0gaXQgc3VnZ2VzdHMgc29tZSBuZXcgZnVuY3Rpb25hbGl0eSBvciByZWZpbmVtZW50IGhhcHBlbmluZyBhZnRlciB0aGUgVkNQVSBjcmVhdGlvbi5cblxuR2l2ZW4gdGhhdCBpdCdzIGFsdGVyaW5nIHRoZSBWTVggY29udGV4dCBwb3N0LWNyZWF0aW9uLCB0aGlzIGlzICphYnNvbHV0ZWx5KiB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSdsbCBiZSB0YXJnZXRpbmcgYXJlIGB2dF92Y3B1X3Bvc3RjcmVhdGVgIGFuZCBgdm14X3ZjcHVfcG9zdGNyZWF0ZWAuIFRob3NlIGFyZSB0aGUgZW50cnkgcG9pbnRzIHRvIHdhdGNoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgaGFwcGVuaW5nIHdpdGhpbiB0aG9zZSBmdW5jdGlvbnMuXG5cbk5vdywgbGV0J3Mgc2VlLCB0aGUgb2J2aW91cyBlbmFibGVkIGNvbmZpZ3MgYXJlIGBLVk1gIGFuZCBgS1ZNX0lOVEVMYC4gSSdsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogcmVsYXRlZCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGlzIGJlaGF2aW9yLCBvciBpZiBvdGhlciBkZXBlbmRlbmNpZXMgZXhpc3QgdGhhdCBjb3VsZCBhZmZlY3QgZnV6emluZy4gSSdsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gdG8gbWFrZSBzdXJlIEkgZG9uJ3QgbWlzcyBhbnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA4MiwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMzowOS40ODM1NDM4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzE4NjU5NzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTV9JTlRFTFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz04Mz1jb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAzOjExLjYxNTQxNTc0NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTI0OTc1MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEtWTSBQYXRjaCBhbmQgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgd2l0aGluIHRoZSBLVk0geDg2IG9wZXJhdGlvbnMsIHNwZWNpZmljYWxseSBmb3IgVk1YLiBNeSBndXQgZmVlbGluZyBpcyB0aGlzIGlzIGdvaW5nIHRvIGJlIGNlbnRyYWwgdG8gSVBJIHZpcnR1YWxpemF0aW9uIGFuZCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBjb3JlIEtWTSBtb2RpZmljYXRpb25zLCBpdCBkZW1hbmRzIGEgcm9idXN0IGZ1enppbmcgY2FtcGFpZ24uIFRoaXMgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpcyBjcnVjaWFsIGJlY2F1c2UgaXQncyBpbnZvbHZlZCBpbiBpbml0aWFsaXppbmcgdGhlIFBJRCB0YWJsZSBkdXJpbmcgVkNQVSBjcmVhdGlvbi4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgbG93LWxldmVsIGZ1bmN0aW9uYWxpdHkgdGhhdCBjYW4gZWFzaWx5IGhhcmJvciByZWdyZXNzaW9ucyBvciBzdWJ0bGUgcmFjZSBjb25kaXRpb25zIHRoYXQgbWlnaHQgb25seSBzdXJmYWNlIHVuZGVyIHNwZWNpZmljLCBvZnRlbiB1bnByZWRpY3RhYmxlLCBzeXN0ZW0gbG9hZHMuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgc291bmQsIHRhcmdldGluZyBhIHdlbGwtZGVmaW5lZCBwcm9ibGVtIGFuZCBwcm92aWRpbmcgYSBjbGVhciBpbXBsZW1lbnRhdGlvbiBwYXRoLiBIb3dldmVyLCB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgaG9vaywgZXNzZW50aWFsbHkgYWx0ZXJpbmcgdGhlIFZDUFUgaW5pdGlhbGl6YXRpb24gZmxvdywgbmVjZXNzaXRhdGVzIHJpZ29yb3VzIHRlc3RpbmcuIEkgbmVlZCB0byBlbnN1cmUgdGhlIHN5c3RlbSBiZWhhdmVzIHJlbGlhYmx5IGFmdGVyIHRoaXMgcGF0Y2ggaXMgYXBwbGllZC4gVGhlIG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGluaXRpYXRlIHRoZSBzZXQtcmVzdWx0cyBjYWxsIHRvIHRyYWNrIGFuZCB2YWxpZGF0ZSB0aGUgZnV6emluZyByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODI4LCJPdXRwdXRUb2tlbnMiOjEzMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAzOjE1LjkwNzkxNTAxM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE3NzcxNDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiLFxuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnRfdmNwdV9wb3N0Y3JlYXRlXCIsXG4gICAgXCJ2bXhfdmNwdV9wb3N0Y3JlYXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGluIEtWTSB4ODYgb3BlcmF0aW9ucyBhbmQgaW1wbGVtZW50cyBpdCBmb3IgSW50ZWwgVk1YIHRvIGhhbmRsZSBQSUQgdGFibGUgaW5pdGlhbGl6YXRpb24gZm9yIElQSSB2aXJ0dWFsaXphdGlvbi4gVGhpcyBtb2RpZmllcyB0aGUgVkNQVSBjcmVhdGlvbiBmbG93IGFuZCBpcyByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dF92Y3B1X3Bvc3RjcmVhdGVcIixcbiAgICBcInZteF92Y3B1X3Bvc3RjcmVhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgaW4gS1ZNIHg4NiBvcGVyYXRpb25zIGFuZCBpbXBsZW1lbnRzIGl0IGZvciBJbnRlbCBWTVggdG8gaGFuZGxlIFBJRCB0YWJsZSBpbml0aWFsaXphdGlvbiBmb3IgSVBJIHZpcnR1YWxpemF0aW9uLiBUaGlzIG1vZGlmaWVzIHRoZSBWQ1BVIGNyZWF0aW9uIGZsb3cgYW5kIGlzIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 21:48:57 +0000 UTC FinishedAt: 2026-07-16 22:03:18 +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", "KVM_INTEL" ], "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", "KVM_INTEL" ], "series_id": "2e95d9ad-46e9-4c06-8253-617f0e5b2b9a" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vt_vcpu_postcreate", "vmx_vcpu_postcreate" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2dF92Y3B1X3Bvc3RjcmVhdGUmIzM0OywKICAgICYjMzQ7dm14X3ZjcHVfcG9zdGNyZWF0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgaW4gS1ZNIHg4NiBvcGVyYXRpb25zIGFuZCBpbXBsZW1lbnRzIGl0IGZvciBJbnRlbCBWTVggdG8gaGFuZGxlIFBJRCB0YWJsZSBpbml0aWFsaXphdGlvbiBmb3IgSVBJIHZpcnR1YWxpemF0aW9uLiBUaGlzIG1vZGlmaWVzIHRoZSBWQ1BVIGNyZWF0aW9uIGZsb3cgYW5kIGlzIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDUzZjliYWE1YjQwZGFhM2YzYzMzODllMDczMDkxOTBhMzIwNDVkNWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAyMjowMjozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggODNkYzUwODYxMzhiMzkuLmFlY2JlOWM1NDAwNGY5IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuQEAgLTI1LDYgJiM0MzsyNSw3IEBAIEtWTV9YODZfT1BfT1BUSU9OQUwodm1fZGVzdHJveSlcbiBLVk1fWDg2X09QX09QVElPTkFMKHZtX3ByZV9kZXN0cm95KVxuIEtWTV9YODZfT1BfT1BUSU9OQUxfUkVUMCh2Y3B1X3ByZWNyZWF0ZSlcbiBLVk1fWDg2X09QKHZjcHVfY3JlYXRlKVxuJiM0MztLVk1fWDg2X09QX09QVElPTkFMKHZjcHVfcG9zdGNyZWF0ZSlcbiBLVk1fWDg2X09QKHZjcHVfZnJlZSlcbiBLVk1fWDg2X09QKHZjcHVfcmVzZXQpXG4gS1ZNX1g4Nl9PUChwcmVwYXJlX3N3aXRjaF90b19ndWVzdClcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggNWY2YzFjZTk2NzNiN2YuLjNlZDlkOGZjM2I5NjEwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE4MDMsNiAmIzQzOzE4MDMsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMge1xuIFx0LyogQ3JlYXRlLCBidXQgZG8gbm90IGF0dGFjaCB0aGlzIFZDUFUgKi9cbiBcdGludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pO1xuIFx0aW50ICgqdmNwdV9jcmVhdGUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4mIzQzO1x0dm9pZCAoKnZjcHVfcG9zdGNyZWF0ZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdHZvaWQgKCp2Y3B1X2ZyZWUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHR2b2lkICgqdmNwdV9yZXNldCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGluaXRfZXZlbnQpO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDgzZDk5MjEyNzdlYWMyLi5iZGY1YmEzMTU1ZjY2NyAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuQEAgLTc4LDYgJiM0Mzs3OCwxNCBAQCBzdGF0aWMgaW50IHZ0X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdHJldHVybiB2bXhfdmNwdV9jcmVhdGUodmNwdSk7XG4gfVxuIFxuJiM0MztzdGF0aWMgdm9pZCB2dF92Y3B1X3Bvc3RjcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuJiM0Mzt7XG4mIzQzO1x0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuJiM0MztcdHZteF92Y3B1X3Bvc3RjcmVhdGUodmNwdSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdnRfdmNwdV9mcmVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSkge1xuQEAgLTg5OCw2ICYjNDM7OTA2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcbiBcbiBcdC52Y3B1X3ByZWNyZWF0ZSA9IHZ0X29wKHZjcHVfcHJlY3JlYXRlKSxcbiBcdC52Y3B1X2NyZWF0ZSA9IHZ0X29wKHZjcHVfY3JlYXRlKSxcbiYjNDM7XHQudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSxcbiBcdC52Y3B1X2ZyZWUgPSB2dF9vcCh2Y3B1X2ZyZWUpLFxuIFx0LnZjcHVfcmVzZXQgPSB2dF9vcCh2Y3B1X3Jlc2V0KSxcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuaW5kZXggY2M3NWZlZWMwNWRhYTQuLmFlNmNlZjljMTNlMDI1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTc3NTIsMTAgJiM0Mzs3NzUyLDYgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRcdHZteC1cdTAwM2V2ZV9pbmZvID0gcGFnZV90b192aXJ0KHBhZ2UpO1xuIFx0fVxuIFxuLVx0aWYgKHZteF9jYW5fdXNlX2lwaXYodmNwdSkpXG4tXHRcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVx1MDAzZWt2bSktXHUwMDNlcGlkX3RhYmxlW3ZjcHUtXHUwMDNldmNwdV9pZF0sXG4tXHRcdFx0ICAgX19wYShcdTAwMjZ2bXgtXHUwMDNldnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpO1xuLVxuIFx0cmV0dXJuIDA7XG4gXG4gZnJlZV92bWNzOlxuQEAgLTc3NjcsNiAmIzQzOzc3NjMsMTMgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiYjNDM7dm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiYjNDM7e1xuJiM0MztcdGlmICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpKVxuJiM0MztcdFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXHUwMDNla3ZtKS1cdTAwM2VwaWRfdGFibGVbdmNwdS1cdTAwM2V2Y3B1X2lkXSxcbiYjNDM7XHRcdFx0ICAgX19wYShcdTAwMjZ0b192bXgodmNwdSktXHUwMDNldnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpO1xuJiM0Mzt9XG4mIzQzO1xuICNkZWZpbmUgTDFURl9NU0dfU01UIFwmIzM0O0wxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCBTTVQgb24sIGRhdGEgbGVhayBwb3NzaWJsZS4gU2VlIENWRS0yMDE4LTM2NDYgYW5kIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L2FkbWluLWd1aWRlL2h3LXZ1bG4vbDF0Zi5odG1sIGZvciBkZXRhaWxzLlxcblwmIzM0O1xuICNkZWZpbmUgTDFURl9NU0dfTDFEIFwmIzM0O0wxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCB2aXJ0dWFsaXphdGlvbiBtaXRpZ2F0aW9uIGRpc2FibGVkLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXG5cJiMzNDtcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCA0MDk4NTgwNzQyNDYyYy4uZGVmYzJjM2EzN2M4NDcgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbkBAIC0yMSw2ICYjNDM7MjEsNyBAQCBpbnQgdm14X3ZtX2luaXQoc3RydWN0IGt2bSAqa3ZtKTtcbiB2b2lkIHZteF92bV9kZXN0cm95KHN0cnVjdCBrdm0gKmt2bSk7XG4gaW50IHZteF92Y3B1X3ByZWNyZWF0ZShzdHJ1Y3Qga3ZtICprdm0pO1xuIGludCB2bXhfdmNwdV9jcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiYjNDM7dm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBmYXN0cGF0aF90IHZteF92Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBydW5fZmxhZ3MpO1xuIHZvaWQgdm14X3ZjcHVfZnJlZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggYWZjYWMxMDQyOTQ3YTUuLmM5ZjUxMmEzMGZlYzA2IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC0xMjg3Myw2ICYjNDM7MTI4NzMsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRcdHJldHVybjtcbiBcdHZjcHVfbG9hZCh2Y3B1KTtcbiBcdGt2bV9zeW5jaHJvbml6ZV90c2ModmNwdSwgTlVMTCk7XG4mIzQzO1x0a3ZtX3g4Nl9jYWxsKHZjcHVfcG9zdGNyZWF0ZSkodmNwdSk7XG4gXHR2Y3B1X3B1dCh2Y3B1KTtcbiBcbiBcdC8qIHBvbGwgY29udHJvbCBlbmFibGVkIGJ5IGRlZmF1bHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OywKICAgICYjMzQ7S1ZNX0lOVEVMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnRfdmNwdV9wb3N0Y3JlYXRlJiMzNDssCiAgICAmIzM0O3ZteF92Y3B1X3Bvc3RjcmVhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGluIEtWTSB4ODYgb3BlcmF0aW9ucyBhbmQgaW1wbGVtZW50cyBpdCBmb3IgSW50ZWwgVk1YIHRvIGhhbmRsZSBQSUQgdGFibGUgaW5pdGlhbGl6YXRpb24gZm9yIElQSSB2aXJ0dWFsaXphdGlvbi4gVGhpcyBtb2RpZmllcyB0aGUgVkNQVSBjcmVhdGlvbiBmbG93IGFuZCBpcyByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDUzZjliYWE1YjQwZGFhM2YzYzMzODllMDczMDkxOTBhMzIwNDVkNWUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAxNiAyMjowMjozMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCmluZGV4IDgzZGM1MDg2MTM4YjM5Li5hZWNiZTljNTQwMDRmOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCkBAIC0yNSw2ICYjNDM7MjUsNyBAQCBLVk1fWDg2X09QX09QVElPTkFMKHZtX2Rlc3Ryb3kpCiBLVk1fWDg2X09QX09QVElPTkFMKHZtX3ByZV9kZXN0cm95KQogS1ZNX1g4Nl9PUF9PUFRJT05BTF9SRVQwKHZjcHVfcHJlY3JlYXRlKQogS1ZNX1g4Nl9PUCh2Y3B1X2NyZWF0ZSkKJiM0MztLVk1fWDg2X09QX09QVElPTkFMKHZjcHVfcG9zdGNyZWF0ZSkKIEtWTV9YODZfT1AodmNwdV9mcmVlKQogS1ZNX1g4Nl9PUCh2Y3B1X3Jlc2V0KQogS1ZNX1g4Nl9PUChwcmVwYXJlX3N3aXRjaF90b19ndWVzdCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDVmNmMxY2U5NjczYjdmLi4zZWQ5ZDhmYzNiOTYxMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0xODAzLDYgJiM0MzsxODAzLDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHsKIAkvKiBDcmVhdGUsIGJ1dCBkbyBub3QgYXR0YWNoIHRoaXMgVkNQVSAqLwogCWludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pOwogCWludCAoKnZjcHVfY3JlYXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwomIzQzOwl2b2lkICgqdmNwdV9wb3N0Y3JlYXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCXZvaWQgKCp2Y3B1X2ZyZWUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJdm9pZCAoKnZjcHVfcmVzZXQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBpbml0X2V2ZW50KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwppbmRleCA4M2Q5OTIxMjc3ZWFjMi4uYmRmNWJhMzE1NWY2NjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCkBAIC03OCw2ICYjNDM7NzgsMTQgQEAgc3RhdGljIGludCB2dF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIHZteF92Y3B1X2NyZWF0ZSh2Y3B1KTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHZ0X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwlpZiAoaXNfdGRfdmNwdSh2Y3B1KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJdm14X3ZjcHVfcG9zdGNyZWF0ZSh2Y3B1KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB2dF92Y3B1X2ZyZWUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCWlmIChpc190ZF92Y3B1KHZjcHUpKSB7CkBAIC04OTgsNiAmIzQzOzkwNiw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7CiAKIAkudmNwdV9wcmVjcmVhdGUgPSB2dF9vcCh2Y3B1X3ByZWNyZWF0ZSksCiAJLnZjcHVfY3JlYXRlID0gdnRfb3AodmNwdV9jcmVhdGUpLAomIzQzOwkudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSwKIAkudmNwdV9mcmVlID0gdnRfb3AodmNwdV9mcmVlKSwKIAkudmNwdV9yZXNldCA9IHZ0X29wKHZjcHVfcmVzZXQpLAogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwppbmRleCBjYzc1ZmVlYzA1ZGFhNC4uYWU2Y2VmOWMxM2UwMjUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtNzc1MiwxMCAmIzQzOzc3NTIsNiBAQCBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJdm14LSZndDt2ZV9pbmZvID0gcGFnZV90b192aXJ0KHBhZ2UpOwogCX0KIAotCWlmICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpKQotCQlXUklURV9PTkNFKHRvX2t2bV92bXgodmNwdS0mZ3Q7a3ZtKS0mZ3Q7cGlkX3RhYmxlW3ZjcHUtJmd0O3ZjcHVfaWRdLAotCQkJICAgX19wYSgmYW1wO3ZteC0mZ3Q7dnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpOwotCiAJcmV0dXJuIDA7CiAKIGZyZWVfdm1jczoKQEAgLTc3NjcsNiAmIzQzOzc3NjMsMTMgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIGVycjsKIH0KIAomIzQzO3ZvaWQgdm14X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwlpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSkKJiM0MzsJCVdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LSZndDtrdm0pLSZndDtwaWRfdGFibGVbdmNwdS0mZ3Q7dmNwdV9pZF0sCiYjNDM7CQkJICAgX19wYSgmYW1wO3RvX3ZteCh2Y3B1KS0mZ3Q7dnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpOwomIzQzO30KJiM0MzsKICNkZWZpbmUgTDFURl9NU0dfU01UICYjMzQ7TDFURiBDUFUgYnVnIHByZXNlbnQgYW5kIFNNVCBvbiwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgQ1ZFLTIwMTgtMzY0NiBhbmQgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9sMXRmLmh0bWwgZm9yIGRldGFpbHMuXG4mIzM0OwogI2RlZmluZSBMMVRGX01TR19MMUQgJiMzNDtMMVRGIENQVSBidWcgcHJlc2VudCBhbmQgdmlydHVhbGl6YXRpb24gbWl0aWdhdGlvbiBkaXNhYmxlZCwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgQ1ZFLTIwMTgtMzY0NiBhbmQgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9sMXRmLmh0bWwgZm9yIGRldGFpbHMuXG4mIzM0OwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCmluZGV4IDQwOTg1ODA3NDI0NjJjLi5kZWZjMmMzYTM3Yzg0NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKQEAgLTIxLDYgJiM0MzsyMSw3IEBAIGludCB2bXhfdm1faW5pdChzdHJ1Y3Qga3ZtICprdm0pOwogdm9pZCB2bXhfdm1fZGVzdHJveShzdHJ1Y3Qga3ZtICprdm0pOwogaW50IHZteF92Y3B1X3ByZWNyZWF0ZShzdHJ1Y3Qga3ZtICprdm0pOwogaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwomIzQzO3ZvaWQgdm14X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIGZhc3RwYXRoX3Qgdm14X3ZjcHVfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHJ1bl9mbGFncyk7CiB2b2lkIHZteF92Y3B1X2ZyZWUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBhZmNhYzEwNDI5NDdhNS4uYzlmNTEyYTMwZmVjMDYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTEyODczLDYgJiM0MzsxMjg3Myw3IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJcmV0dXJuOwogCXZjcHVfbG9hZCh2Y3B1KTsKIAlrdm1fc3luY2hyb25pemVfdHNjKHZjcHUsIE5VTEwpOwomIzQzOwlrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KTsKIAl2Y3B1X3B1dCh2Y3B1KTsKIAogCS8qIHBvbGwgY29udHJvbCBlbmFibGVkIGJ5IGRlZmF1bHQgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY3MQoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDMxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtWTSB4ODYgVk1YIFJlZmFjdG9yaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBhcHBlYXJzIHRoZXkmIzM5O3ZlIGFkZGVkIGEgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayB3aXRoaW4gdGhlIGBrdm1feDg2X29wc2Agc3RydWN0dXJlLiBUaGUgZ29hbCBzZWVtcyB0byBiZSB0byBjbGVhbiB1cCBgdm14X3ZjcHVfY3JlYXRlYCBieSBtb3Zpbmcgc29tZSBjb2RlIGludG8gdGhpcyBuZXcgaG9vayBmdW5jdGlvbiwgYHZteF92Y3B1X3Bvc3RjcmVhdGVgLiBTcGVjaWZpY2FsbHksIHRoZSBjb2RlIHRoZXkmIzM5O3ZlIG1vdmVkIGRlYWxzIHdpdGggc2V0dGluZyB1cCB0aGUgYHBpZF90YWJsZWAgZW50cnk6CgpgYGBjCglpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSkKCQlXUklURV9PTkNFKHRvX2t2bV92bXgodmNwdS0mZ3Q7a3ZtKS0mZ3Q7cGlkX3RhYmxlW3ZjcHUtJmd0O3ZjcHVfaWRdLAoJCQkgICBfX3BhKCZhbXA7dG9fdm14KHZjcHUpLSZndDt2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7CmBgYAoKVGhpcyBpcyB0aGVuIGNhbGxlZCB0aHJvdWdoIHRoZSBga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlYCBwYXRoLCB3aGljaCB1c2VzIHRoZSBnZW5lcmljIGBrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KWAgbWVjaGFuaXNtLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgYWN0dWFsbHkgcmVhY2hhYmxlIGFuZCBmdW5jdGlvbmluZyBjb3JyZWN0bHkuIFRoaXMgaXMgZXNzZW50aWFsbHkgYSByZWZhY3RvcmluZyB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhIGhvb2ssIHNvIGxldCYjMzk7cyB0cmVhdCBpdCBhY2NvcmRpbmdseS4KCldvcnRoIGZ1enppbmc/IEFic29sdXRlbHkuIEl04oCZcyBmdW5jdGlvbmFsIEtWTSBjb2RlLCBhbmQgYW55IGNoYW5nZSBpbiB0aGlzIGFyZWEgd2FycmFudHMgYSBmdXp6aW5nIGNhbXBhaWduIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gc3VidGxlIHJlZ3Jlc3Npb25zLgoKTXkga2V5IGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgYHZteF92Y3B1X3Bvc3RjcmVhdGVgIGFuZCB0aGUgYW5hbG9nb3VzIGB2dF92Y3B1X3Bvc3RjcmVhdGVgIGZ1bmN0aW9uLiBJIHdpbGwgbmVlZCB0byBlbmFibGUgYm90aCB0aGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb25zIHRvIGVuc3VyZSBjb21wcmVoZW5zaXZlIGNvdmVyYWdlLgoKTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgdm14X2Nhbl91c2VfaXBpdmAgZnVuY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBiZWhhdmlvciBhbmQgcG90ZW50aWFsIGVkZ2UgY2FzZXMgYmVjYXVzZSBpdCBkaWN0YXRlcyB3aGV0aGVyIHRoYXQgY3JpdGljYWwgYHBpZF90YWJsZWAgZW50cnkgaXMgd3JpdHRlbi4gVGltZSB0byBmaXJlIHVwIGdyZXBwZXIgYW5kIGh1bnQgZm9yIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBhbmQgaG93IGl04oCZcyBkZWZpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZteF9jYW5fdXNlX2lwaXYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC9wb3N0ZWRfaW50ci5jPTIwOT1zdGF0aWMgYm9vbCB2bXhfbmVlZHNfcGlfd2FrZXVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3Bvc3RlZF9pbnRyLmMtMjE4LVx0ICovXG5hcmNoL3g4Ni9rdm0vdm14L3Bvc3RlZF9pbnRyLmM6MjE5Olx0cmV0dXJuICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpIFx1MDAyNlx1MDAyNiAhaXNfdGRfdmNwdSh2Y3B1KSkgfHxcbmFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYy0yMjAtXHRcdHZteF9jYW5fdXNlX3Z0ZF9waSh2Y3B1LVx1MDAzZWt2bSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz00ODY3PXN0YXRpYyB2b2lkIGluaXRfdm1jcyhzdHJ1Y3QgdmNwdV92bXggKnZteClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTQ5MDYtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjQ5MDc6XHRpZiAodm14X2Nhbl91c2VfaXBpdihcdTAwMjZ2bXgtXHUwMDNldmNwdSkpIHtcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNDkwOC1cdFx0dm1jc193cml0ZTY0KFBJRF9QT0lOVEVSX1RBQkxFLCBfX3BhKGt2bV92bXgtXHUwMDNlcGlkX3RhYmxlKSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz03NzY2PXZvaWQgdm14X3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3Njcte1xuYXJjaC94ODYva3ZtL3ZteC92bXguYzo3NzY4Olx0aWYgKHZteF9jYW5fdXNlX2lwaXYodmNwdSkpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3NjktXHRcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVx1MDAzZWt2bSktXHUwMDNlcGlkX3RhYmxlW3ZjcHUtXHUwMDNldmNwdV9pZF0sXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguaD03MTc9c3RhdGljIGlubGluZSBpbnQgdm14X2dldF9pbnN0cl9pbmZvX3JlZzIodTMyIHZteF9pbnN0cl9pbmZvKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmgtNzIxLVxuYXJjaC94ODYva3ZtL3ZteC92bXguaDo3MjI6c3RhdGljIGlubGluZSBib29sIHZteF9jYW5fdXNlX2lwaXYoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3ZteC92bXguaC03MjMte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwODIKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAxNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWNlbnQgQ29kZSBDaGFuZ2UqKgoKT2theSwgc28gYHZteF9jYW5fdXNlX2lwaXZgIC0gdGhhdCYjMzk7cyBhICpyZWFsKiBmdW5jdGlvbiwgbm90IHNvbWUgaHlwb3RoZXRpY2FsIHBsYWNlaG9sZGVyLiBHb29kLiBUaGUgY2hhbmdlcyBhcmUgaW4gYGFyY2gveDg2L2t2bS92bXgvdm14LmNgIGFuZCBgYXJjaC94ODYva3ZtL3ZteC9tYWluLmNgLCBjb25maXJtaW5nIHRoYXQgdGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWwsIHJlYWwtd29ybGQgY29kZS4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBhbmQsIGltcG9ydGFudGx5LCBpbXBsZW1lbnRzIGl0IHNwZWNpZmljYWxseSBmb3IgVk1YLiBUaGF04oCZcyBpbnRlcmVzdGluZyAtIGl0IHN1Z2dlc3RzIHNvbWUgbmV3IGZ1bmN0aW9uYWxpdHkgb3IgcmVmaW5lbWVudCBoYXBwZW5pbmcgYWZ0ZXIgdGhlIFZDUFUgY3JlYXRpb24uCgpHaXZlbiB0aGF0IGl0JiMzOTtzIGFsdGVyaW5nIHRoZSBWTVggY29udGV4dCBwb3N0LWNyZWF0aW9uLCB0aGlzIGlzICphYnNvbHV0ZWx5KiB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSYjMzk7bGwgYmUgdGFyZ2V0aW5nIGFyZSBgdnRfdmNwdV9wb3N0Y3JlYXRlYCBhbmQgYHZteF92Y3B1X3Bvc3RjcmVhdGVgLiBUaG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cyB0byB3YXRjaC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBoYXBwZW5pbmcgd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4KCk5vdywgbGV0JiMzOTtzIHNlZSwgdGhlIG9idmlvdXMgZW5hYmxlZCBjb25maWdzIGFyZSBgS1ZNYCBhbmQgYEtWTV9JTlRFTGAuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgKm90aGVyKiByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoaXMgYmVoYXZpb3IsIG9yIGlmIG90aGVyIGRlcGVuZGVuY2llcyBleGlzdCB0aGF0IGNvdWxkIGFmZmVjdCBmdXp6aW5nLiBJJiMzOTtsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEtWTV9JTlRFTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vS2NvbmZpZz04Mz1jb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTA3OmNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O0ludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODI4CgkJCQkJCQlvdXRwdXQ6IDEzMAoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUGF0Y2ggYW5kIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgd2l0aGluIHRoZSBLVk0geDg2IG9wZXJhdGlvbnMsIHNwZWNpZmljYWxseSBmb3IgVk1YLiBNeSBndXQgZmVlbGluZyBpcyB0aGlzIGlzIGdvaW5nIHRvIGJlIGNlbnRyYWwgdG8gSVBJIHZpcnR1YWxpemF0aW9uIGFuZCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBjb3JlIEtWTSBtb2RpZmljYXRpb25zLCBpdCBkZW1hbmRzIGEgcm9idXN0IGZ1enppbmcgY2FtcGFpZ24uIFRoaXMgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpcyBjcnVjaWFsIGJlY2F1c2UgaXQmIzM5O3MgaW52b2x2ZWQgaW4gaW5pdGlhbGl6aW5nIHRoZSBQSUQgdGFibGUgZHVyaW5nIFZDUFUgY3JlYXRpb24uIFRoaXMgaXMgcHJlY2lzZWx5IHRoZSBraW5kIG9mIGxvdy1sZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgY2FuIGVhc2lseSBoYXJib3IgcmVncmVzc2lvbnMgb3Igc3VidGxlIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IG9ubHkgc3VyZmFjZSB1bmRlciBzcGVjaWZpYywgb2Z0ZW4gdW5wcmVkaWN0YWJsZSwgc3lzdGVtIGxvYWRzLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgcGF0Y2ggaXRzZWxmIHNlZW1zIHNvdW5kLCB0YXJnZXRpbmcgYSB3ZWxsLWRlZmluZWQgcHJvYmxlbSBhbmQgcHJvdmlkaW5nIGEgY2xlYXIgaW1wbGVtZW50YXRpb24gcGF0aC4gSG93ZXZlciwgdGhlIGludHJvZHVjdGlvbiBvZiB0aGlzIGhvb2ssIGVzc2VudGlhbGx5IGFsdGVyaW5nIHRoZSBWQ1BVIGluaXRpYWxpemF0aW9uIGZsb3csIG5lY2Vzc2l0YXRlcyByaWdvcm91cyB0ZXN0aW5nLiBJIG5lZWQgdG8gZW5zdXJlIHRoZSBzeXN0ZW0gYmVoYXZlcyByZWxpYWJseSBhZnRlciB0aGlzIHBhdGNoIGlzIGFwcGxpZWQuIFRoZSBuZXh0IHN0ZXAgaXMgY2xlYXI6IEkgbmVlZCB0byBpbml0aWF0ZSB0aGUgc2V0LXJlc3VsdHMgY2FsbCB0byB0cmFjayBhbmQgdmFsaWRhdGUgdGhlIGZ1enppbmcgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjowMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDssCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Z0X3ZjcHVfcG9zdGNyZWF0ZSYjMzQ7LAogICAgJiMzNDt2bXhfdmNwdV9wb3N0Y3JlYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpbiBLVk0geDg2IG9wZXJhdGlvbnMgYW5kIGltcGxlbWVudHMgaXQgZm9yIEludGVsIFZNWCB0byBoYW5kbGUgUElEIHRhYmxlIGluaXRpYWxpemF0aW9uIGZvciBJUEkgdmlydHVhbGl6YXRpb24uIFRoaXMgbW9kaWZpZXMgdGhlIFZDUFUgY3JlYXRpb24gZmxvdyBhbmQgaXMgcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OywKICAgICYjMzQ7S1ZNX0lOVEVMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnRfdmNwdV9wb3N0Y3JlYXRlJiMzNDssCiAgICAmIzM0O3ZteF92Y3B1X3Bvc3RjcmVhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGluIEtWTSB4ODYgb3BlcmF0aW9ucyBhbmQgaW1wbGVtZW50cyBpdCBmb3IgSW50ZWwgVk1YIHRvIGhhbmRsZSBQSUQgdGFibGUgaW5pdGlhbGl6YXRpb24gZm9yIElQSSB2aXJ0dWFsaXphdGlvbi4gVGhpcyBtb2RpZmllcyB0aGUgVkNQVSBjcmVhdGlvbiBmbG93IGFuZCBpcyByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozMi4zNzI1MjUxMzVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzYxNzE4NTYyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ0X3ZjcHVfcG9zdGNyZWF0ZVwiLFxuICAgIFwidm14X3ZjcHVfcG9zdGNyZWF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpbiBLVk0geDg2IG9wZXJhdGlvbnMgYW5kIGltcGxlbWVudHMgaXQgZm9yIEludGVsIFZNWCB0byBoYW5kbGUgUElEIHRhYmxlIGluaXRpYWxpemF0aW9uIGZvciBJUEkgdmlydHVhbGl6YXRpb24uIFRoaXMgbW9kaWZpZXMgdGhlIFZDUFUgY3JlYXRpb24gZmxvdyBhbmQgaXMgcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozMi4zNzI1MzAwMTVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjI5OTcxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDUzZjliYWE1YjQwZGFhM2YzYzMzODllMDczMDkxOTBhMzIwNDVkNWVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6MDI6MzEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcXG5pbmRleCA4M2RjNTA4NjEzOGIzOS4uYWVjYmU5YzU0MDA0ZjkgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcXG5AQCAtMjUsNiArMjUsNyBAQCBLVk1fWDg2X09QX09QVElPTkFMKHZtX2Rlc3Ryb3kpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUwodm1fcHJlX2Rlc3Ryb3kpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUxfUkVUMCh2Y3B1X3ByZWNyZWF0ZSlcXG4gS1ZNX1g4Nl9PUCh2Y3B1X2NyZWF0ZSlcXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTCh2Y3B1X3Bvc3RjcmVhdGUpXFxuIEtWTV9YODZfT1AodmNwdV9mcmVlKVxcbiBLVk1fWDg2X09QKHZjcHVfcmVzZXQpXFxuIEtWTV9YODZfT1AocHJlcGFyZV9zd2l0Y2hfdG9fZ3Vlc3QpXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggNWY2YzFjZTk2NzNiN2YuLjNlZDlkOGZjM2I5NjEwIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTE4MDMsNiArMTgwMyw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB7XFxuIFxcdC8qIENyZWF0ZSwgYnV0IGRvIG5vdCBhdHRhY2ggdGhpcyBWQ1BVICovXFxuIFxcdGludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pO1xcbiBcXHRpbnQgKCp2Y3B1X2NyZWF0ZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4rXFx0dm9pZCAoKnZjcHVfcG9zdGNyZWF0ZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnZjcHVfZnJlZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnZjcHVfcmVzZXQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBpbml0X2V2ZW50KTtcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG5pbmRleCA4M2Q5OTIxMjc3ZWFjMi4uYmRmNWJhMzE1NWY2NjcgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbkBAIC03OCw2ICs3OCwxNCBAQCBzdGF0aWMgaW50IHZ0X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4gXFx0cmV0dXJuIHZteF92Y3B1X2NyZWF0ZSh2Y3B1KTtcXG4gfVxcbiBcXG4rc3RhdGljIHZvaWQgdnRfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4re1xcbitcXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0dm14X3ZjcHVfcG9zdGNyZWF0ZSh2Y3B1KTtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdnRfdmNwdV9mcmVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSkge1xcbkBAIC04OTgsNiArOTA2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcXG4gXFxuIFxcdC52Y3B1X3ByZWNyZWF0ZSA9IHZ0X29wKHZjcHVfcHJlY3JlYXRlKSxcXG4gXFx0LnZjcHVfY3JlYXRlID0gdnRfb3AodmNwdV9jcmVhdGUpLFxcbitcXHQudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSxcXG4gXFx0LnZjcHVfZnJlZSA9IHZ0X29wKHZjcHVfZnJlZSksXFxuIFxcdC52Y3B1X3Jlc2V0ID0gdnRfb3AodmNwdV9yZXNldCksXFxuIFxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbmluZGV4IGNjNzVmZWVjMDVkYWE0Li5hZTZjZWY5YzEzZTAyNSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbkBAIC03NzUyLDEwICs3NzUyLDYgQEAgaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdFxcdHZteC1cXHUwMDNldmVfaW5mbyA9IHBhZ2VfdG9fdmlydChwYWdlKTtcXG4gXFx0fVxcbiBcXG4tXFx0aWYgKHZteF9jYW5fdXNlX2lwaXYodmNwdSkpXFxuLVxcdFxcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVxcdTAwM2Vrdm0pLVxcdTAwM2VwaWRfdGFibGVbdmNwdS1cXHUwMDNldmNwdV9pZF0sXFxuLVxcdFxcdFxcdCAgIF9fcGEoXFx1MDAyNnZteC1cXHUwMDNldnQucGlfZGVzYykgfCBQSURfVEFCTEVfRU5UUllfVkFMSUQpO1xcbi1cXG4gXFx0cmV0dXJuIDA7XFxuIFxcbiBmcmVlX3ZtY3M6XFxuQEAgLTc3NjcsNiArNzc2MywxMyBAQCBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4gXFx0cmV0dXJuIGVycjtcXG4gfVxcbiBcXG4rdm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4re1xcbitcXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcXG4rXFx0XFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXFx1MDAzZWt2bSktXFx1MDAzZXBpZF90YWJsZVt2Y3B1LVxcdTAwM2V2Y3B1X2lkXSxcXG4rXFx0XFx0XFx0ICAgX19wYShcXHUwMDI2dG9fdm14KHZjcHUpLVxcdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XFxuK31cXG4rXFxuICNkZWZpbmUgTDFURl9NU0dfU01UIFxcXCJMMVRGIENQVSBidWcgcHJlc2VudCBhbmQgU01UIG9uLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXFxcblxcXCJcXG4gI2RlZmluZSBMMVRGX01TR19MMUQgXFxcIkwxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCB2aXJ0dWFsaXphdGlvbiBtaXRpZ2F0aW9uIGRpc2FibGVkLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXFxcblxcXCJcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcXG5pbmRleCA0MDk4NTgwNzQyNDYyYy4uZGVmYzJjM2EzN2M4NDcgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxcbkBAIC0yMSw2ICsyMSw3IEBAIGludCB2bXhfdm1faW5pdChzdHJ1Y3Qga3ZtICprdm0pO1xcbiB2b2lkIHZteF92bV9kZXN0cm95KHN0cnVjdCBrdm0gKmt2bSk7XFxuIGludCB2bXhfdmNwdV9wcmVjcmVhdGUoc3RydWN0IGt2bSAqa3ZtKTtcXG4gaW50IHZteF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbit2b2lkIHZteF92Y3B1X3Bvc3RjcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gZmFzdHBhdGhfdCB2bXhfdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcnVuX2ZsYWdzKTtcXG4gdm9pZCB2bXhfdmNwdV9mcmVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbmluZGV4IGFmY2FjMTA0Mjk0N2E1Li5jOWY1MTJhMzBmZWMwNiAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5AQCAtMTI4NzMsNiArMTI4NzMsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfcG9zdGNyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdFxcdHJldHVybjtcXG4gXFx0dmNwdV9sb2FkKHZjcHUpO1xcbiBcXHRrdm1fc3luY2hyb25pemVfdHNjKHZjcHUsIE5VTEwpO1xcbitcXHRrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KTtcXG4gXFx0dmNwdV9wdXQodmNwdSk7XFxuIFxcbiBcXHQvKiBwb2xsIGNvbnRyb2wgZW5hYmxlZCBieSBkZWZhdWx0ICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAyOjMyLjg3OTQ4NTA1NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMxMTAyMTA4MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dF92Y3B1X3Bvc3RjcmVhdGVcIixcbiAgICBcInZteF92Y3B1X3Bvc3RjcmVhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgaW4gS1ZNIHg4NiBvcGVyYXRpb25zIGFuZCBpbXBsZW1lbnRzIGl0IGZvciBJbnRlbCBWTVggdG8gaGFuZGxlIFBJRCB0YWJsZSBpbml0aWFsaXphdGlvbiBmb3IgSVBJIHZpcnR1YWxpemF0aW9uLiBUaGlzIG1vZGlmaWVzIHRoZSBWQ1BVIGNyZWF0aW9uIGZsb3cgYW5kIGlzIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1M2Y5YmFhNWI0MGRhYTNmM2MzMzg5ZTA3MzA5MTkwYTMyMDQ1ZDVlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6MDI6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggODNkYzUwODYxMzhiMzkuLmFlY2JlOWM1NDAwNGY5IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuQEAgLTI1LDYgKzI1LDcgQEAgS1ZNX1g4Nl9PUF9PUFRJT05BTCh2bV9kZXN0cm95KVxuIEtWTV9YODZfT1BfT1BUSU9OQUwodm1fcHJlX2Rlc3Ryb3kpXG4gS1ZNX1g4Nl9PUF9PUFRJT05BTF9SRVQwKHZjcHVfcHJlY3JlYXRlKVxuIEtWTV9YODZfT1AodmNwdV9jcmVhdGUpXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTCh2Y3B1X3Bvc3RjcmVhdGUpXG4gS1ZNX1g4Nl9PUCh2Y3B1X2ZyZWUpXG4gS1ZNX1g4Nl9PUCh2Y3B1X3Jlc2V0KVxuIEtWTV9YODZfT1AocHJlcGFyZV9zd2l0Y2hfdG9fZ3Vlc3QpXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbmluZGV4IDVmNmMxY2U5NjczYjdmLi4zZWQ5ZDhmYzNiOTYxMCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC0xODAzLDYgKzE4MDMsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMge1xuIFx0LyogQ3JlYXRlLCBidXQgZG8gbm90IGF0dGFjaCB0aGlzIFZDUFUgKi9cbiBcdGludCAoKnZjcHVfcHJlY3JlYXRlKShzdHJ1Y3Qga3ZtICprdm0pO1xuIFx0aW50ICgqdmNwdV9jcmVhdGUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4rXHR2b2lkICgqdmNwdV9wb3N0Y3JlYXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnZjcHVfZnJlZSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdHZvaWQgKCp2Y3B1X3Jlc2V0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgaW5pdF9ldmVudCk7XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuaW5kZXggODNkOTkyMTI3N2VhYzIuLmJkZjViYTMxNTVmNjY3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbisrKyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG5AQCAtNzgsNiArNzgsMTQgQEAgc3RhdGljIGludCB2dF92Y3B1X2NyZWF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRyZXR1cm4gdm14X3ZjcHVfY3JlYXRlKHZjcHUpO1xuIH1cbiBcbitzdGF0aWMgdm9pZCB2dF92Y3B1X3Bvc3RjcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuK3tcbitcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHR2bXhfdmNwdV9wb3N0Y3JlYXRlKHZjcHUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2dF92Y3B1X2ZyZWUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdGlmIChpc190ZF92Y3B1KHZjcHUpKSB7XG5AQCAtODk4LDYgKzkwNiw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXG4gXHQudmNwdV9wcmVjcmVhdGUgPSB2dF9vcCh2Y3B1X3ByZWNyZWF0ZSksXG4gXHQudmNwdV9jcmVhdGUgPSB2dF9vcCh2Y3B1X2NyZWF0ZSksXG4rXHQudmNwdV9wb3N0Y3JlYXRlID0gdnRfb3AodmNwdV9wb3N0Y3JlYXRlKSxcbiBcdC52Y3B1X2ZyZWUgPSB2dF9vcCh2Y3B1X2ZyZWUpLFxuIFx0LnZjcHVfcmVzZXQgPSB2dF9vcCh2Y3B1X3Jlc2V0KSxcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuaW5kZXggY2M3NWZlZWMwNWRhYTQuLmFlNmNlZjljMTNlMDI1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTc3NTIsMTAgKzc3NTIsNiBAQCBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdFx0dm14LVx1MDAzZXZlX2luZm8gPSBwYWdlX3RvX3ZpcnQocGFnZSk7XG4gXHR9XG4gXG4tXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcbi1cdFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXHUwMDNla3ZtKS1cdTAwM2VwaWRfdGFibGVbdmNwdS1cdTAwM2V2Y3B1X2lkXSxcbi1cdFx0XHQgICBfX3BhKFx1MDAyNnZteC1cdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XG4tXG4gXHRyZXR1cm4gMDtcbiBcbiBmcmVlX3ZtY3M6XG5AQCAtNzc2Nyw2ICs3NzYzLDEzIEBAIGludCB2bXhfdmNwdV9jcmVhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIGVycjtcbiB9XG4gXG4rdm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit7XG4rXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcbitcdFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXHUwMDNla3ZtKS1cdTAwM2VwaWRfdGFibGVbdmNwdS1cdTAwM2V2Y3B1X2lkXSxcbitcdFx0XHQgICBfX3BhKFx1MDAyNnRvX3ZteCh2Y3B1KS1cdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XG4rfVxuK1xuICNkZWZpbmUgTDFURl9NU0dfU01UIFwiTDFURiBDUFUgYnVnIHByZXNlbnQgYW5kIFNNVCBvbiwgZGF0YSBsZWFrIHBvc3NpYmxlLiBTZWUgQ1ZFLTIwMTgtMzY0NiBhbmQgaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC9sYXRlc3QvYWRtaW4tZ3VpZGUvaHctdnVsbi9sMXRmLmh0bWwgZm9yIGRldGFpbHMuXFxuXCJcbiAjZGVmaW5lIEwxVEZfTVNHX0wxRCBcIkwxVEYgQ1BVIGJ1ZyBwcmVzZW50IGFuZCB2aXJ0dWFsaXphdGlvbiBtaXRpZ2F0aW9uIGRpc2FibGVkLCBkYXRhIGxlYWsgcG9zc2libGUuIFNlZSBDVkUtMjAxOC0zNjQ2IGFuZCBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9hZG1pbi1ndWlkZS9ody12dWxuL2wxdGYuaHRtbCBmb3IgZGV0YWlscy5cXG5cIlxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbmluZGV4IDQwOTg1ODA3NDI0NjJjLi5kZWZjMmMzYTM3Yzg0NyAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuQEAgLTIxLDYgKzIxLDcgQEAgaW50IHZteF92bV9pbml0KHN0cnVjdCBrdm0gKmt2bSk7XG4gdm9pZCB2bXhfdm1fZGVzdHJveShzdHJ1Y3Qga3ZtICprdm0pO1xuIGludCB2bXhfdmNwdV9wcmVjcmVhdGUoc3RydWN0IGt2bSAqa3ZtKTtcbiBpbnQgdm14X3ZjcHVfY3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4rdm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gaW50IHZteF92Y3B1X3ByZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBmYXN0cGF0aF90IHZteF92Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBydW5fZmxhZ3MpO1xuIHZvaWQgdm14X3ZjcHVfZnJlZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggYWZjYWMxMDQyOTQ3YTUuLmM5ZjUxMmEzMGZlYzA2IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC0xMjg3Myw2ICsxMjg3Myw3IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdFx0cmV0dXJuO1xuIFx0dmNwdV9sb2FkKHZjcHUpO1xuIFx0a3ZtX3N5bmNocm9uaXplX3RzYyh2Y3B1LCBOVUxMKTtcbitcdGt2bV94ODZfY2FsbCh2Y3B1X3Bvc3RjcmVhdGUpKHZjcHUpO1xuIFx0dmNwdV9wdXQodmNwdSk7XG4gXG4gXHQvKiBwb2xsIGNvbnRyb2wgZW5hYmxlZCBieSBkZWZhdWx0ICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozMi44Nzk0ODYxMDVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTcxNjM0NDY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIHg4NiBWTVggUmVmYWN0b3JpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBhcHBlYXJzIHRoZXkndmUgYWRkZWQgYSBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIHdpdGhpbiB0aGUgYGt2bV94ODZfb3BzYCBzdHJ1Y3R1cmUuIFRoZSBnb2FsIHNlZW1zIHRvIGJlIHRvIGNsZWFuIHVwIGB2bXhfdmNwdV9jcmVhdGVgIGJ5IG1vdmluZyBzb21lIGNvZGUgaW50byB0aGlzIG5ldyBob29rIGZ1bmN0aW9uLCBgdm14X3ZjcHVfcG9zdGNyZWF0ZWAuIFNwZWNpZmljYWxseSwgdGhlIGNvZGUgdGhleSd2ZSBtb3ZlZCBkZWFscyB3aXRoIHNldHRpbmcgdXAgdGhlIGBwaWRfdGFibGVgIGVudHJ5OlxuXG5gYGBjXG5cdGlmICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpKVxuXHRcdFdSSVRFX09OQ0UodG9fa3ZtX3ZteCh2Y3B1LVx1MDAzZWt2bSktXHUwMDNlcGlkX3RhYmxlW3ZjcHUtXHUwMDNldmNwdV9pZF0sXG5cdFx0XHQgICBfX3BhKFx1MDAyNnRvX3ZteCh2Y3B1KS1cdTAwM2V2dC5waV9kZXNjKSB8IFBJRF9UQUJMRV9FTlRSWV9WQUxJRCk7XG5gYGBcblxuVGhpcyBpcyB0aGVuIGNhbGxlZCB0aHJvdWdoIHRoZSBga3ZtX2FyY2hfdmNwdV9wb3N0Y3JlYXRlYCBwYXRoLCB3aGljaCB1c2VzIHRoZSBnZW5lcmljIGBrdm1feDg2X2NhbGwodmNwdV9wb3N0Y3JlYXRlKSh2Y3B1KWAgbWVjaGFuaXNtLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgYWN0dWFsbHkgcmVhY2hhYmxlIGFuZCBmdW5jdGlvbmluZyBjb3JyZWN0bHkuIFRoaXMgaXMgZXNzZW50aWFsbHkgYSByZWZhY3RvcmluZyB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhIGhvb2ssIHNvIGxldCdzIHRyZWF0IGl0IGFjY29yZGluZ2x5LlxuXG5Xb3J0aCBmdXp6aW5nPyBBYnNvbHV0ZWx5LiBJdOKAmXMgZnVuY3Rpb25hbCBLVk0gY29kZSwgYW5kIGFueSBjaGFuZ2UgaW4gdGhpcyBhcmVhIHdhcnJhbnRzIGEgZnV6emluZyBjYW1wYWlnbiB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1YnRsZSByZWdyZXNzaW9ucy5cblxuTXkga2V5IGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgYHZteF92Y3B1X3Bvc3RjcmVhdGVgIGFuZCB0aGUgYW5hbG9nb3VzIGB2dF92Y3B1X3Bvc3RjcmVhdGVgIGZ1bmN0aW9uLiBJIHdpbGwgbmVlZCB0byBlbmFibGUgYm90aCB0aGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb25zIHRvIGVuc3VyZSBjb21wcmVoZW5zaXZlIGNvdmVyYWdlLlxuXG5Ob3csIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIGB2bXhfY2FuX3VzZV9pcGl2YCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGJlaGF2aW9yIGFuZCBwb3RlbnRpYWwgZWRnZSBjYXNlcyBiZWNhdXNlIGl0IGRpY3RhdGVzIHdoZXRoZXIgdGhhdCBjcml0aWNhbCBgcGlkX3RhYmxlYCBlbnRyeSBpcyB3cml0dGVuLiBUaW1lIHRvIGZpcmUgdXAgZ3JlcHBlciBhbmQgaHVudCBmb3Igd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyB1c2VkIGFuZCBob3cgaXTigJlzIGRlZmluZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NzEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMjozOS4wNTExMjI1OTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjExMjA2NzY2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2bXhfY2FuX3VzZV9pcGl2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYz0yMDk9c3RhdGljIGJvb2wgdm14X25lZWRzX3BpX3dha2V1cChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3Bvc3RlZF9pbnRyLmMtMjE4LVxcdCAqL1xcbmFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYzoyMTk6XFx0cmV0dXJuICh2bXhfY2FuX3VzZV9pcGl2KHZjcHUpIFxcdTAwMjZcXHUwMDI2ICFpc190ZF92Y3B1KHZjcHUpKSB8fFxcbmFyY2gveDg2L2t2bS92bXgvcG9zdGVkX2ludHIuYy0yMjAtXFx0XFx0dm14X2Nhbl91c2VfdnRkX3BpKHZjcHUtXFx1MDAzZWt2bSk7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTQ4Njc9c3RhdGljIHZvaWQgaW5pdF92bWNzKHN0cnVjdCB2Y3B1X3ZteCAqdm14KVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy00OTA2LVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NDkwNzpcXHRpZiAodm14X2Nhbl91c2VfaXBpdihcXHUwMDI2dm14LVxcdTAwM2V2Y3B1KSkge1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNDkwOC1cXHRcXHR2bWNzX3dyaXRlNjQoUElEX1BPSU5URVJfVEFCTEUsIF9fcGEoa3ZtX3ZteC1cXHUwMDNlcGlkX3RhYmxlKSk7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTc3NjY9dm9pZCB2bXhfdmNwdV9wb3N0Y3JlYXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3Njcte1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6Nzc2ODpcXHRpZiAodm14X2Nhbl91c2VfaXBpdih2Y3B1KSlcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc3NjktXFx0XFx0V1JJVEVfT05DRSh0b19rdm1fdm14KHZjcHUtXFx1MDAzZWt2bSktXFx1MDAzZXBpZF90YWJsZVt2Y3B1LVxcdTAwM2V2Y3B1X2lkXSxcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14Lmg9NzE3PXN0YXRpYyBpbmxpbmUgaW50IHZteF9nZXRfaW5zdHJfaW5mb19yZWcyKHUzMiB2bXhfaW5zdHJfaW5mbylcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmgtNzIxLVxcbmFyY2gveDg2L2t2bS92bXgvdm14Lmg6NzIyOnN0YXRpYyBpbmxpbmUgYm9vbCB2bXhfY2FuX3VzZV9pcGl2KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5oLTcyMy17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAyOjQxLjE2MzE5NTU5OVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MzIwMzQ2NzExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVjZW50IENvZGUgQ2hhbmdlKipcblxuT2theSwgc28gYHZteF9jYW5fdXNlX2lwaXZgIC0gdGhhdCdzIGEgKnJlYWwqIGZ1bmN0aW9uLCBub3Qgc29tZSBoeXBvdGhldGljYWwgcGxhY2Vob2xkZXIuIEdvb2QuIFRoZSBjaGFuZ2VzIGFyZSBpbiBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgYW5kIGBhcmNoL3g4Ni9rdm0vdm14L21haW4uY2AsIGNvbmZpcm1pbmcgdGhhdCB0aGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCwgcmVhbC13b3JsZCBjb2RlLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGFuZCwgaW1wb3J0YW50bHksIGltcGxlbWVudHMgaXQgc3BlY2lmaWNhbGx5IGZvciBWTVguIFRoYXTigJlzIGludGVyZXN0aW5nIC0gaXQgc3VnZ2VzdHMgc29tZSBuZXcgZnVuY3Rpb25hbGl0eSBvciByZWZpbmVtZW50IGhhcHBlbmluZyBhZnRlciB0aGUgVkNQVSBjcmVhdGlvbi5cblxuR2l2ZW4gdGhhdCBpdCdzIGFsdGVyaW5nIHRoZSBWTVggY29udGV4dCBwb3N0LWNyZWF0aW9uLCB0aGlzIGlzICphYnNvbHV0ZWx5KiB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IHN5bWJvbHMgSSdsbCBiZSB0YXJnZXRpbmcgYXJlIGB2dF92Y3B1X3Bvc3RjcmVhdGVgIGFuZCBgdm14X3ZjcHVfcG9zdGNyZWF0ZWAuIFRob3NlIGFyZSB0aGUgZW50cnkgcG9pbnRzIHRvIHdhdGNoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgaGFwcGVuaW5nIHdpdGhpbiB0aG9zZSBmdW5jdGlvbnMuXG5cbk5vdywgbGV0J3Mgc2VlLCB0aGUgb2J2aW91cyBlbmFibGVkIGNvbmZpZ3MgYXJlIGBLVk1gIGFuZCBgS1ZNX0lOVEVMYC4gSSdsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogcmVsYXRlZCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGlzIGJlaGF2aW9yLCBvciBpZiBvdGhlciBkZXBlbmRlbmNpZXMgZXhpc3QgdGhhdCBjb3VsZCBhZmZlY3QgZnV6emluZy4gSSdsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gdG8gbWFrZSBzdXJlIEkgZG9uJ3QgbWlzcyBhbnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA4MiwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjowMzowOS40ODM1NDM4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzE4NjU5NzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTV9JTlRFTFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz04Mz1jb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAzOjExLjYxNTQxNTc0NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTI0OTc1MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEtWTSBQYXRjaCBhbmQgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgd2l0aGluIHRoZSBLVk0geDg2IG9wZXJhdGlvbnMsIHNwZWNpZmljYWxseSBmb3IgVk1YLiBNeSBndXQgZmVlbGluZyBpcyB0aGlzIGlzIGdvaW5nIHRvIGJlIGNlbnRyYWwgdG8gSVBJIHZpcnR1YWxpemF0aW9uIGFuZCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBjb3JlIEtWTSBtb2RpZmljYXRpb25zLCBpdCBkZW1hbmRzIGEgcm9idXN0IGZ1enppbmcgY2FtcGFpZ24uIFRoaXMgYHZjcHVfcG9zdGNyZWF0ZWAgaG9vayBpcyBjcnVjaWFsIGJlY2F1c2UgaXQncyBpbnZvbHZlZCBpbiBpbml0aWFsaXppbmcgdGhlIFBJRCB0YWJsZSBkdXJpbmcgVkNQVSBjcmVhdGlvbi4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgbG93LWxldmVsIGZ1bmN0aW9uYWxpdHkgdGhhdCBjYW4gZWFzaWx5IGhhcmJvciByZWdyZXNzaW9ucyBvciBzdWJ0bGUgcmFjZSBjb25kaXRpb25zIHRoYXQgbWlnaHQgb25seSBzdXJmYWNlIHVuZGVyIHNwZWNpZmljLCBvZnRlbiB1bnByZWRpY3RhYmxlLCBzeXN0ZW0gbG9hZHMuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgc291bmQsIHRhcmdldGluZyBhIHdlbGwtZGVmaW5lZCBwcm9ibGVtIGFuZCBwcm92aWRpbmcgYSBjbGVhciBpbXBsZW1lbnRhdGlvbiBwYXRoLiBIb3dldmVyLCB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgaG9vaywgZXNzZW50aWFsbHkgYWx0ZXJpbmcgdGhlIFZDUFUgaW5pdGlhbGl6YXRpb24gZmxvdywgbmVjZXNzaXRhdGVzIHJpZ29yb3VzIHRlc3RpbmcuIEkgbmVlZCB0byBlbnN1cmUgdGhlIHN5c3RlbSBiZWhhdmVzIHJlbGlhYmx5IGFmdGVyIHRoaXMgcGF0Y2ggaXMgYXBwbGllZC4gVGhlIG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGluaXRpYXRlIHRoZSBzZXQtcmVzdWx0cyBjYWxsIHRvIHRyYWNrIGFuZCB2YWxpZGF0ZSB0aGUgZnV6emluZyByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODI4LCJPdXRwdXRUb2tlbnMiOjEzMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjAzOjE1LjkwNzkxNTAxM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE3NzcxNDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiLFxuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnRfdmNwdV9wb3N0Y3JlYXRlXCIsXG4gICAgXCJ2bXhfdmNwdV9wb3N0Y3JlYXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgdmNwdV9wb3N0Y3JlYXRlYCBob29rIGluIEtWTSB4ODYgb3BlcmF0aW9ucyBhbmQgaW1wbGVtZW50cyBpdCBmb3IgSW50ZWwgVk1YIHRvIGhhbmRsZSBQSUQgdGFibGUgaW5pdGlhbGl6YXRpb24gZm9yIElQSSB2aXJ0dWFsaXphdGlvbi4gVGhpcyBtb2RpZmllcyB0aGUgVkNQVSBjcmVhdGlvbiBmbG93IGFuZCBpcyByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dF92Y3B1X3Bvc3RjcmVhdGVcIixcbiAgICBcInZteF92Y3B1X3Bvc3RjcmVhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGB2Y3B1X3Bvc3RjcmVhdGVgIGhvb2sgaW4gS1ZNIHg4NiBvcGVyYXRpb25zIGFuZCBpbXBsZW1lbnRzIGl0IGZvciBJbnRlbCBWTVggdG8gaGFuZGxlIFBJRCB0YWJsZSBpbml0aWFsaXphdGlvbiBmb3IgSVBJIHZpcnR1YWxpemF0aW9uLiBUaGlzIG1vZGlmaWVzIHRoZSBWQ1BVIGNyZWF0aW9uIGZsb3cgYW5kIGlzIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[1] Phase: Succeeded StartedAt: 2026-07-16 22:03:25 +0000 UTC FinishedAt: 2026-07-16 22:03:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-16 22:03:25 +0000 UTC FinishedAt: 2026-07-16 22:03:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2] Phase: Succeeded StartedAt: 2026-07-16 22:03:25 +0000 UTC FinishedAt: 2026-07-17 02:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-16 22:03:25 +0000 UTC FinishedAt: 2026-07-17 02:01:59 +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","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:03:25 +0000 UTC FinishedAt: 2026-07-16 22:03:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:03:25 +0000 UTC FinishedAt: 2026-07-16 22:03:30 +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","KVM_INTEL"],"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-workflowhr7bz/series-workflowhr7bz-convert-artifact-4095972017/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:03:35 +0000 UTC FinishedAt: 2026-07-16 22:32:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:03:35 +0000 UTC FinishedAt: 2026-07-16 22:32:58 +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:*54b0cfbb-5d60-4b3e-a219-8e453f82d014,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-workflowhr7bz/series-workflowhr7bz-convert-artifact-4095972017/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": "f6b23268-93f3-44ae-8d53-d1cbae2fb34f", "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-workflowhr7bz/series-workflowhr7bz-build-action-68694239/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:03:35 +0000 UTC FinishedAt: 2026-07-16 22:32:48 +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:*54b0cfbb-5d60-4b3e-a219-8e453f82d014,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-workflowhr7bz/series-workflowhr7bz-convert-artifact-4095972017/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": "f6b23268-93f3-44ae-8d53-d1cbae2fb34f", "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-workflowhr7bz/series-workflowhr7bz-build-action-68694239/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:32:58 +0000 UTC FinishedAt: 2026-07-16 22:32:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:32:58 +0000 UTC FinishedAt: 2026-07-16 22:32:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:32:58 +0000 UTC FinishedAt: 2026-07-16 22:33:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:32:58 +0000 UTC FinishedAt: 2026-07-16 22:33:11 +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","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-workflowhr7bz/series-workflowhr7bz-convert-artifact-2900809476/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:33:19 +0000 UTC FinishedAt: 2026-07-16 22:35:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:33:19 +0000 UTC FinishedAt: 2026-07-16 22:35:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f6b23268-93f3-44ae-8d53-d1cbae2fb34f,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-workflowhr7bz/series-workflowhr7bz-build-action-68694239/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-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:35:32 +0000 UTC FinishedAt: 2026-07-16 22:35:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:35:32 +0000 UTC FinishedAt: 2026-07-16 22:35:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:35:32 +0000 UTC FinishedAt: 2026-07-16 22:57:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:35:32 +0000 UTC FinishedAt: 2026-07-16 22:57:00 +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:*54b0cfbb-5d60-4b3e-a219-8e453f82d014,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-workflowhr7bz/series-workflowhr7bz-convert-artifact-2900809476/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": "f660bbd5-1d1a-4977-9937-f1e72db09f30", "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-workflowhr7bz/series-workflowhr7bz-build-action-2386350352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:35:32 +0000 UTC FinishedAt: 2026-07-16 22:56:50 +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:*54b0cfbb-5d60-4b3e-a219-8e453f82d014,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-workflowhr7bz/series-workflowhr7bz-convert-artifact-2900809476/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": "f660bbd5-1d1a-4977-9937-f1e72db09f30", "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-workflowhr7bz/series-workflowhr7bz-build-action-2386350352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:57:00 +0000 UTC FinishedAt: 2026-07-16 22:57:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:57:00 +0000 UTC FinishedAt: 2026-07-16 22:57:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:57:00 +0000 UTC FinishedAt: 2026-07-16 22:59:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:57:00 +0000 UTC FinishedAt: 2026-07-16 22:59:01 +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:*f660bbd5-1d1a-4977-9937-f1e72db09f30,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-workflowhr7bz/series-workflowhr7bz-build-action-2386350352/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-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-17 02:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-17 02:01:59 +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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"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:*f6b23268-93f3-44ae-8d53-d1cbae2fb34f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f660bbd5-1d1a-4977-9937-f1e72db09f30,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-workflowhr7bz/series-workflowhr7bz-build-action-68694239/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-workflowhr7bz/series-workflowhr7bz-build-action-2386350352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-16 22:59:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-16 22:59:16 +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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"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-workflowhr7bz/series-workflowhr7bz-convert-artifact-979050253/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-16 22:59:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-16 22:59:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:11 +0000 UTC FinishedAt: 2026-07-16 22:59:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:21 +0000 UTC FinishedAt: 2026-07-17 02:01:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhr7bz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"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":["vt_vcpu_postcreate","vmx_vcpu_postcreate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"2e95d9ad-46e9-4c06-8253-617f0e5b2b9a","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-16 22:59:21 +0000 UTC FinishedAt: 2026-07-17 02:01:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f6b23268-93f3-44ae-8d53-d1cbae2fb34f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f660bbd5-1d1a-4977-9937-f1e72db09f30,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-workflowhr7bz/series-workflowhr7bz-build-action-68694239/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-workflowhr7bz/series-workflowhr7bz-build-action-2386350352/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-workflowhr7bz/series-workflowhr7bz-convert-artifact-979050253/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,}