Name: series-workflowwqqtw Phase: Succeeded StartedAt: 2026-08-04 06:22:35 +0000 UTC FinishedAt: 2026-08-04 08:06:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[0] Phase: Succeeded StartedAt: 2026-08-04 06:22:35 +0000 UTC FinishedAt: 2026-08-04 06:45:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[0].run-triage Phase: Succeeded StartedAt: 2026-08-04 06:22:35 +0000 UTC FinishedAt: 2026-08-04 06:45:43 +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": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VHOST_SCSI", "TARGET_CORE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VHOST_SCSI", "TARGET_CORE" ], "series_id": "d357ef81-0005-477f-bcc2-91c9d687ef89" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vhost_scsi_ioctl" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZIT1NUX1NDU0kmIzM0OywKICAgICYjMzQ7VEFSR0VUX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aG9zdF9zY3NpX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHZob3N0X3Njc2lfZmx1c2goKSBpbiB2aG9zdF9zY3NpX2lvY3RsKCkgYWZ0ZXIgdmhvc3RfZGV2X2lvY3RsKCkgdG8gZW5zdXJlIHRoZSBiYWNrZW5kIGlzIGZsdXNoZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmhvc3Qtc2NzaSBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2M2M2ZTczMmM4ODgzYjc4NDVkNDQyYTU1OTU0NGQ1ODU0MWIyNWU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwNjo0NDowOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L3Njc2kuYyBiL2RyaXZlcnMvdmhvc3Qvc2NzaS5jXG5pbmRleCA5YTEyNTNiOWQ4YzUwLi4zOTM3ZWI1MDEzMjRhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy92aG9zdC9zY3NpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdmhvc3Qvc2NzaS5jXG5AQCAtMjQyNiw5ICYjNDM7MjQyNiwxMCBAQCB2aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLFxuIFx0ZGVmYXVsdDpcbiBcdFx0bXV0ZXhfbG9jayhcdTAwMjZ2cy1cdTAwM2VkZXYubXV0ZXgpO1xuIFx0XHRyID0gdmhvc3RfZGV2X2lvY3RsKFx1MDAyNnZzLVx1MDAzZWRldiwgaW9jdGwsIGFyZ3ApO1xuLVx0XHQvKiBUT0RPOiBmbHVzaCBiYWNrZW5kIGFmdGVyIGRldiBpb2N0bC4gKi9cbiBcdFx0aWYgKHIgPT0gLUVOT0lPQ1RMQ01EKVxuIFx0XHRcdHIgPSB2aG9zdF92cmluZ19pb2N0bChcdTAwMjZ2cy1cdTAwM2VkZXYsIGlvY3RsLCBhcmdwKTtcbiYjNDM7XHRcdGVsc2VcbiYjNDM7XHRcdFx0dmhvc3Rfc2NzaV9mbHVzaCh2cyk7XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZ2cy1cdTAwM2VkZXYubXV0ZXgpO1xuIFx0XHRyZXR1cm4gcjtcbiBcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkhPU1RfU0NTSSYjMzQ7LAogICAgJiMzNDtUQVJHRVRfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gdmhvc3Rfc2NzaV9mbHVzaCgpIGluIHZob3N0X3Njc2lfaW9jdGwoKSBhZnRlciB2aG9zdF9kZXZfaW9jdGwoKSB0byBlbnN1cmUgdGhlIGJhY2tlbmQgaXMgZmx1c2hlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2aG9zdC1zY3NpIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDYzYzZlNzMyYzg4ODNiNzg0NWQ0NDJhNTU5NTQ0ZDU4NTQxYjI1ZTcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyA0IDA2OjQ0OjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC9zY3NpLmMgYi9kcml2ZXJzL3Zob3N0L3Njc2kuYwppbmRleCA5YTEyNTNiOWQ4YzUwLi4zOTM3ZWI1MDEzMjRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L3Njc2kuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Zob3N0L3Njc2kuYwpAQCAtMjQyNiw5ICYjNDM7MjQyNiwxMCBAQCB2aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLAogCWRlZmF1bHQ6CiAJCW11dGV4X2xvY2soJmFtcDt2cy0mZ3Q7ZGV2Lm11dGV4KTsKIAkJciA9IHZob3N0X2Rldl9pb2N0bCgmYW1wO3ZzLSZndDtkZXYsIGlvY3RsLCBhcmdwKTsKLQkJLyogVE9ETzogZmx1c2ggYmFja2VuZCBhZnRlciBkZXYgaW9jdGwuICovCiAJCWlmIChyID09IC1FTk9JT0NUTENNRCkKIAkJCXIgPSB2aG9zdF92cmluZ19pb2N0bCgmYW1wO3ZzLSZndDtkZXYsIGlvY3RsLCBhcmdwKTsKJiM0MzsJCWVsc2UKJiM0MzsJCQl2aG9zdF9zY3NpX2ZsdXNoKHZzKTsKIAkJbXV0ZXhfdW5sb2NrKCZhbXA7dnMtJmd0O2Rldi5tdXRleCk7CiAJCXJldHVybiByOwogCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5OAoJCQkJCQkJb3V0cHV0OiAxMDMKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgYHZob3N0X3Njc2kuY2AgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYC4gSXQgc2VlbXMgdG8gbW9kaWZ5IHRoZSBgdmhvc3Rfc2NzaV9pb2N0bGAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWRkaW5nIGEgYHZob3N0X3Njc2lfZmx1c2godnMpYCBjYWxsIGFmdGVyIGB2aG9zdF9kZXZfaW9jdGxgICppZiogdGhlIGB2aG9zdF9kZXZfaW9jdGxgIGNhbGwgZG9lc24mIzM5O3QgcmV0dXJuIGAtRU5PSU9DVExDTURgLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGJldHRlci4KCkZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHZob3N0X3Njc2lfaW9jdGxgIGlzIGFjdHVhbGx5IHJlYWNoYWJsZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBjb25maWcgb3B0aW9ucyBhcmUgcmVxdWlyZWQgdG8gZ2V0IHRoYXQgZnVuY3Rpb24gaW5jbHVkZWQuIFNpbmNlIHRoZSByZWxldmFudCBjb2RlIGlzIGluIGBkcml2ZXJzL3Zob3N0L3Njc2kuY2AsIEkmIzM5O2xsIGdvIGNoZWNrIHRoZSBgZHJpdmVycy92aG9zdC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbGxpbmcgdGhhdCBwYXJ0IG9mIHRoZSB2aG9zdCBzdWJzeXN0ZW0gd2lsbCBiZSBkZWZpbmVkLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gbm90ZSBkb3duIGFueSBkZXBlbmRlbmNpZXMgb3IgcmVsZXZhbnQgS2NvbmZpZyBzeW1ib2xzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L3Njc2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L3Njc2kuYz0xOTE5PXN0YXRpYyBpbnQgdmhvc3Rfc2NzaV9zZXR1cF92cV9jbWRzKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCBpbnQgbWF4X2NtZHMpXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTk3My0vKlxuZHJpdmVycy92aG9zdC9zY3NpLmM6MTk3NDogKiBDYWxsZWQgZnJvbSB2aG9zdF9zY3NpX2lvY3RsKCkgY29udGV4dCB0byB3YWxrIHRoZSBsaXN0IG9mIGF2YWlsYWJsZVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTk3NS0gKiB2aG9zdF9zY3NpX3RwZyB3aXRoIGFuIGFjdGl2ZSBzdHJ1Y3Qgdmhvc3Rfc2NzaV9uZXh1c1xuLS1cbmRyaXZlcnMvdmhvc3Qvc2NzaS5jPTIzNjE9c3RhdGljIGxvbmdcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjIzNjI6dmhvc3Rfc2NzaV9pb2N0bChzdHJ1Y3QgZmlsZSAqZixcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIzNjMtXHRcdCB1bnNpZ25lZCBpbnQgaW9jdGwsXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmM9MjQzOD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2aG9zdF9zY3NpX2ZvcHMgPSB7XG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQ0MC1cdC5yZWxlYXNlICAgICAgICA9IHZob3N0X3Njc2lfcmVsZWFzZSxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjI0NDE6XHQudW5sb2NrZWRfaW9jdGwgPSB2aG9zdF9zY3NpX2lvY3RsLFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQ0Mi1cdC5jb21wYXRfaW9jdGxcdD0gY29tcGF0X3B0cl9pb2N0bCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aG9zdF9zY3NpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L01ha2VmaWxlPTM9dmhvc3RfbmV0LXkgOj0gbmV0Lm9cbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGUtNC1cbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfVkhPU1RfU0NTSSkgJiM0Mzs9IHZob3N0X3Njc2kub1xuZHJpdmVycy92aG9zdC9NYWtlZmlsZTo2OnZob3N0X3Njc2kteSA6PSBzY3NpLm9cbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGUtNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aG9zdF9zY3NpX2ZsdXNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9zY3NpLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9zY3NpLmM9MTg0ND1zdGF0aWMgdm9pZCB2aG9zdF9zY3NpX2hhbmRsZV9raWNrKHN0cnVjdCB2aG9zdF93b3JrICp3b3JrKVxuLS1cbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTE4NTMtLyogQ2FsbGVycyBtdXN0IGhvbGQgZGV2IG11dGV4ICovXG5kcml2ZXJzL3Zob3N0L3Njc2kuYzoxODU0OnN0YXRpYyB2b2lkIHZob3N0X3Njc2lfZmx1c2goc3RydWN0IHZob3N0X3Njc2kgKnZzKVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTg1NS17XG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmM9MTk4MT12aG9zdF9zY3NpX3NldF9lbmRwb2ludChzdHJ1Y3Qgdmhvc3Rfc2NzaSAqdnMsXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjA4NC1cdCAqL1xuZHJpdmVycy92aG9zdC9zY3NpLmM6MjA4NTpcdHZob3N0X3Njc2lfZmx1c2godnMpO1xuZHJpdmVycy92aG9zdC9zY3NpLmMtMjA4Ni1cdHZzLVx1MDAzZXZzX3RwZyA9IHZzX3RwZztcbi0tXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMTEzPXZob3N0X3Njc2lfY2xlYXJfZW5kcG9pbnQoc3RydWN0IHZob3N0X3Njc2kgKnZzLFxuLS1cbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIxNzAtXHQvKiBNYWtlIHN1cmUgY21kcyBhcmUgbm90IHJ1bm5pbmcgYmVmb3JlIHRlYXJpbmcgdGhlbSBkb3duLiAqL1xuZHJpdmVycy92aG9zdC9zY3NpLmM6MjE3MTpcdHZob3N0X3Njc2lfZmx1c2godnMpO1xuZHJpdmVycy92aG9zdC9zY3NpLmMtMjE3Mi1cbi0tXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMjA0LVx0ICovXG5kcml2ZXJzL3Zob3N0L3Njc2kuYzoyMjA1Olx0dmhvc3Rfc2NzaV9mbHVzaCh2cyk7XG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMjA2LVx0a2ZyZWUodnMtXHUwMDNldnNfdHBnKTtcbi0tXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMzYyPXZob3N0X3Njc2lfaW9jdGwoc3RydWN0IGZpbGUgKmYsXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQzMS1cdFx0ZWxzZVxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjQzMjpcdFx0XHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTI0MzMtXHRcdG11dGV4X3VubG9jayhcdTAwMjZ2cy1cdTAwM2VkZXYubXV0ZXgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MzAKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5ldyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjYWxsIHRvIGB2aG9zdF9zY3NpX2ZsdXNoYCB3aXRoaW4gdGhlIGB2aG9zdF9zY3NpX2lvY3RsYCBmdW5jdGlvbi4gVGhhdCYjMzk7cyBhIGtleSBkZXRhaWwgdG8gdW5kZXJzdGFuZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGF0IGZsdXNoaW5nIG9wZXJhdGlvbiBlbnRhaWxzIGluIHRoaXMgY29udGV4dC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBjb25uZWN0ZWQgdG8gYENPTkZJR19WSE9TVF9TQ1NJYCwgd2hpY2ggcHJvYmFibHkgbWVhbnMgdGhpcyBuZXcgY29kZSBpcyBjb25kaXRpb25hbCBvbiB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGJlaW5nIGVuYWJsZWQuIFRvIGZ1bGx5IGdyYXNwIHRoaXMgY2hhbmdlIGFuZCBpdHMgaW1wbGljYXRpb25zLCBJIG5lZWQgdG8gdmVyaWZ5IGhvdyBgVkhPU1RfU0NTSWAgaXMgZGVmaW5lZCBhbmQgdXNlZC4gSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7bGwgdGVsbCBtZSBpZiBgVkhPU1RfU0NTSWAgaXMgYSBtb2R1bGUsIGJ1aWx0LWluLCBvciB3aGF0IHRoZSBkZXBlbmRlbmNpZXMgbWlnaHQgYmUuIFdpdGggdGhpcyBpbmZvcm1hdGlvbiwgSSBjYW4gYXNzZXNzIHRoZSBzY29wZSBvZiB0aGlzIG5ldyBjYWxsIGFuZCB0aGUgZW52aXJvbm1lbnRzIGluIHdoaWNoIGl0IHdpbGwgYmUgYWN0aXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1ZIT1NUX1NDU0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9LY29uZmlnPTM0PWNvbmZpZyBWSE9TVF9ORVRcbi0tXG5kcml2ZXJzL3Zob3N0L0tjb25maWctNDUtXG5kcml2ZXJzL3Zob3N0L0tjb25maWc6NDY6Y29uZmlnIFZIT1NUX1NDU0lcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0NzpcdHRyaXN0YXRlIFwmIzM0O1ZIT1NUX1NDU0kgVENNIGZhYnJpYyBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZy00OC1cdGRlcGVuZHMgb24gVEFSR0VUX0NPUkUgXHUwMDI2XHUwMDI2IEVWRU5URkRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTE4CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGV4cHJlc3NlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeToKCioqRGlnZ2luZyBpbnRvIENvbmRpdGlvbmFsIERlcGVuZGVuY2llcyoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgd2hvc2UgYmVoYXZpb3IgaGluZ2VzIG9uIHRoZXNlIHR3byBjcnVjaWFsIGNvbmZpZ3VyYXRpb25zOiBgVEFSR0VUX0NPUkVgIGFuZCBgRVZFTlRGRGAuIE15IGZpcnN0IHN0ZXAsIGFzIGFsd2F5cywgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gU2luY2Ugd2UmIzM5O3JlIGluIHRoZSBkcml2ZXJzIGRpcmVjdG9yeSwgYW5kIHNwZWNpZmljYWxseSB0YXJnZXQtcmVsYXRlZCwgaXQgc2VlbXMgbG9naWNhbCB0aGF0IGBUQVJHRVRfQ09SRWAgaXMgc29tZSBmdW5kYW1lbnRhbCBzZXR0aW5nIGZvciBob3cgdGhlIHRhcmdldCBkcml2ZXJzIGFyZSBidWlsdCBvciBlbmFibGVkLiBUbyBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGVzZSB2YXJpYWJsZXMgaW50ZXJyZWxhdGUsIEkgbmVlZCB0byBjb25zdWx0IHRoZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZWlyIGRlZmluaXRpb25zIGFuZCBwb3NzaWJsZSB2YWx1ZXMuIExldCYjMzk7cyBzdGFydCB3aXRoIGBUQVJHRVRfQ09SRWAuIEkmIzM5O2xsIGhlYWQgb3ZlciB0byB0aGUgYGRyaXZlcnMvdGFyZ2V0L0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvbmRpdGlvbmFsIGRlcGVuZGVuY2llcyBhbmQgb3B0aW9ucyBmb3IgdGhlc2UgYXJlIHVzdWFsbHkgZGVmaW5lZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcHMgYW5kIGNvbnN0cmFpbnRzIGltcG9zZWQgYnkgdGhlc2UgdmFyaWFibGVzIGJlZm9yZSBkcmF3aW5nIGFueSBjb25jbHVzaW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VEFSR0VUX0NPUkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3RhcmdldC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdGFyZ2V0L0tjb25maWctMi1cbmRyaXZlcnMvdGFyZ2V0L0tjb25maWc6MzptZW51Y29uZmlnIFRBUkdFVF9DT1JFXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTQtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIFRhcmdldCBDb3JlIE1vZCAoVENNKSBhbmQgQ29uZmlnRlMgSW5mcmFzdHJ1Y3R1cmVcJiMzNDtcbi0tXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTE1LVxuZHJpdmVycy90YXJnZXQvS2NvbmZpZzoxNjppZiBUQVJHRVRfQ09SRVxuZHJpdmVycy90YXJnZXQvS2NvbmZpZy0xNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI3OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDQxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVmhvc3QgU0NTSSBEcml2ZXImIzM5O3MgS2V5IEZ1bmN0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIHZob3N0IFNDU0kgZHJpdmVyLCBhbmQgSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBjcnVjaWFsIGVsZW1lbnRzLiAgRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgYFZIT1NUX1NDU0lgIGFuZCBgVEFSR0VUX0NPUkVgIOKAkyB0aGVzZSBzZWVtIGZ1bmRhbWVudGFsLiBOb3csIHdoaWNoIGZ1bmN0aW9uIHNob3VsZCBJIGZvY3VzIG9uPyAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGB2aG9zdF9zY3NpX2lvY3RsYC4KCkhvbGQgb24uLi4gSSBuZWVkIHRvIGJlIHN1cmUgSSYjMzk7bSBwaWNraW5nIHRoZSByaWdodCB0aGluZy4gSSBzaG91bGQgZXhjbHVkZSBzdGF0aWMgZnVuY3Rpb25zIHRoYXQgYXJlIGxpa2VseSBpbmxpbmVkLiBgdmhvc3Rfc2NzaV9mbHVzaGAgaXMgc3RhdGljLCBzbyBJIGNvdWxkIHJlbW92ZSBpdCBmcm9tIGNvbnNpZGVyYXRpb24sIGJ1dCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgKmFsc28qIHN0YXRpYyEgQnV0IHdhaXQsIGl0JiMzOTtzIGFuIGlvY3RsIGhhbmRsZXIhIFNvIGl0JiMzOTtzIHN0aWxsIGEgZ29vZCBjYW5kaWRhdGUuCgpJJiMzOTttIHRoaW5raW5nIG5vdyBhYm91dCB3aGV0aGVyIGl0IGNvdWxkIGJlIGlubGluZWQuIElmIGl0JiMzOTtzIHN0YXRpYywgaXQgY291bGQgYmUuIExldCBtZSBjaGVjay4uLiBBaCwgYnV0IGl0JiMzOTtzICphc3NpZ25lZCogdG8gYGZpbGVfb3BlcmF0aW9uc2AsIGxpa2UgYC51bmxvY2tlZF9pb2N0bCA9IHZob3N0X3Njc2lfaW9jdGxgLiBPa2F5LCB0aGlzIG1ha2VzIGFsbCB0aGUgZGlmZmVyZW5jZSEgSWYgaXRzIGFkZHJlc3MgaXMgdGFrZW4sIHRoZW4gaXQmIzM5O3Mgbm90IGlubGluZWQsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJJiMzOTttIGxvb2tpbmcgZm9yLgoKSSYjMzk7bSBjaGVja2luZyB0aGUgaW5zdHJ1Y3Rpb25zIGFuZCB0aGV5IHNheSB0byBwcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnRzLiAqQnV0KiwgZXZlbiB0aG91Z2ggYHZob3N0X3Njc2lfaW9jdGxgIGlzIHN0YXRpYywgaXQmIzM5O3Mgbm90IGlubGluZWQgYmVjYXVzZSBpdHMgYWRkcmVzcyBpcyB0YWtlbi4gRXhjZWxsZW50LCBpdCYjMzk7cyBhIGdvb2Qgb25lIHRvIGxpc3QhCgpKdXN0IHRvIGJlIHN1cmUsIEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSBvdGhlciBmdW5jdGlvbnMuIGB2aG9zdF9zY3NpX2ZsdXNoYCBpcyBzdGF0aWMsIHNvIGl0ICptaWdodCogYmUgaW5saW5lZC4gSSBhbSBnb2luZyB0byBsaXN0IGB2aG9zdF9zY3NpX2lvY3RsYC4KCkxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gSXMganVzdCBgVkhPU1RfU0NTSWAgc3VmZmljaWVudD8gSXQgcmVsaWVzIG9uIGBUQVJHRVRfQ09SRWAgYW5kIGBFVkVOVEZEYC4gT2theSwgYFRBUkdFVF9DT1JFYCBpcyBgQ09ORklHX1RBUkdFVF9DT1JFYC4gU28sIGBWSE9TVF9TQ1NJYCBhbmQgYFRBUkdFVF9DT1JFYCBhcmUgdGhlIGtleSBkZXBlbmRlbmNpZXMuCgpGaW5hbGx5LCBJJiMzOTtsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBgdmhvc3Rfc2NzaV9mbHVzaGAgaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYCBqdXN0IHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9zY3NpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxODUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE4NTA6XHRcdHZob3N0X3Njc2lfaGFuZGxlX3ZxKHZzLCB2cSk7XG4xODUxOlx0fVxuMTg1MjpcdFxuMTg1MzpcdC8qIENhbGxlcnMgbXVzdCBob2xkIGRldiBtdXRleCAqL1xuMTg1NDpcdHN0YXRpYyB2b2lkIHZob3N0X3Njc2lfZmx1c2goc3RydWN0IHZob3N0X3Njc2kgKnZzKVxuMTg1NTpcdHtcbjE4NTY6XHRcdGludCBpO1xuMTg1NzpcdFxuMTg1ODpcdFx0LyogSW5pdCBuZXcgaW5mbGlnaHQgYW5kIHJlbWVtYmVyIHRoZSBvbGQgaW5mbGlnaHQgKi9cbjE4NTk6XHRcdHZob3N0X3Njc2lfaW5pdF9pbmZsaWdodCh2cywgdnMtXHUwMDNlb2xkX2luZmxpZ2h0KTtcbjE4NjA6XHRcbjE4NjE6XHRcdC8qXG4xODYyOlx0XHQgKiBUaGUgaW5mbGlnaHQtXHUwMDNla3JlZiB3YXMgaW5pdGlhbGl6ZWQgdG8gMS4gV2UgZGVjcmVtZW50IGl0IGhlcmUgdG9cbjE4NjM6XHRcdCAqIGluZGljYXRlIHRoZSBzdGFydCBvZiB0aGUgZmx1c2ggb3BlcmF0aW9uIHNvIHRoYXQgaXQgd2lsbCByZWFjaCAwXG4xODY0Olx0XHQgKiB3aGVuIGFsbCB0aGUgcmVxcyBhcmUgZmluaXNoZWQuXG4xODY1Olx0XHQgKi9cbjE4NjY6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHZzLVx1MDAzZWRldi5udnFzOyBpJiM0MzsmIzQzOylcbjE4Njc6XHRcdFx0a3JlZl9wdXQoXHUwMDI2dnMtXHUwMDNlb2xkX2luZmxpZ2h0W2ldLVx1MDAzZWtyZWYsIHZob3N0X3Njc2lfZG9uZV9pbmZsaWdodCk7XG4xODY4Olx0XG4xODY5Olx0XHQvKiBGbHVzaCBib3RoIHRoZSB2aG9zdCBwb2xsIGFuZCB2aG9zdCB3b3JrICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NDgKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQcm9wb3NlZCBWaG9zdCBTQ1NJIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNhbGwgdG8gYHZob3N0X3Njc2lfZmx1c2hgIHdpdGhpbiB0aGUgYHZob3N0X3Njc2lfaW9jdGxgIGZ1bmN0aW9uLiBUaGlzIGNsZWFybHkgcmVwcmVzZW50cyBhIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCB3aGljaCBpcyB0aGUgbWFpbiBwb2ludCBvZiB0aGlzIHdob2xlIHRoaW5nLCBJIHN1cHBvc2UuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBoZXJlIGFyZSBgVkhPU1RfU0NTSWAgYW5kIGBUQVJHRVRfQ09SRWAsIHdoaWNoIGFyZSBjb21tb24gZm9yIFNDU0kgdGFyZ2V0cyBhbmQgdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzLCByZXNwZWN0aXZlbHkuCgpNeSBpbml0aWFsIGZvY3VzIG5lZWRzIHRvIGJlIG9uIGB2aG9zdF9zY3NpX2lvY3RsYC4gSSB3YW50IHRvIHF1aWNrbHkgdmVyaWZ5IGlmIGBWSE9TVGAgaXMgZXhwbGljaXRseSByZXF1aXJlZCBvciBpZiB0aGUgaW5jbHVzaW9uIGlzIHRocm91Z2ggYSBkZXBlbmRlbmN5LiBBaCwgYFZIT1NUX1NDU0lgICpzZWxlY3RzKiBgVkhPU1RgLCBzbyB0aGF0JiMzOTtzIGhhbmRsZWQuIE5vdywgbGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBkZXBlbmRlbmN5IG1ha2VzIHNlbnNlIHdpdGhpbiB0aGUgb3ZlcmFsbCBmcmFtZXdvcmssIEkmIzM5O2xsIHRha2UgYSBxdWljayBwZWVrIGF0IHRoZSBgZHJpdmVycy92aG9zdC9LY29uZmlnYCBmaWxlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVkhPU1RfU0NTSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmhvc3QvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L0tjb25maWc9MzQ9Y29uZmlnIFZIT1NUX05FVFxuLS1cbmRyaXZlcnMvdmhvc3QvS2NvbmZpZy00NS1cbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0Njpjb25maWcgVkhPU1RfU0NTSVxuZHJpdmVycy92aG9zdC9LY29uZmlnLTQ3LVx0dHJpc3RhdGUgXCYjMzQ7VkhPU1RfU0NTSSBUQ00gZmFicmljIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTY5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIHRoZSB2aG9zdCBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB2aG9zdCBjb25maWd1cmF0aW9uIGEgYml0IGJldHRlciwgYW5kIGxpbmUgNDYgb2YgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2Agc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkmIzM5O20gaG9waW5nIHRvIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhpcyBzZWN0aW9uIG9mIHRoZSBrZXJuZWwgaXMgc2V0IHVwLiBUaW1lIHRvIHNlZSB3aGF0JiMzOTtzIHdoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0MDpcdFx0ICBndWVzdCBuZXR3b3JraW5nIHdpdGggdmlydGlvX25ldC4gTm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggdmlydGlvX25ldFxuICA0MTpcdFx0ICBtb2R1bGUgaXRzZWxmIHdoaWNoIG5lZWRzIHRvIGJlIGxvYWRlZCBpbiBndWVzdCBrZXJuZWwuXG4gIDQyOlx0XG4gIDQzOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbFxuICA0NDpcdFx0ICBiZSBjYWxsZWQgdmhvc3RfbmV0LlxuICA0NTpcdFxuICA0NjpcdGNvbmZpZyBWSE9TVF9TQ1NJXG4gIDQ3Olx0XHR0cmlzdGF0ZSBcJiMzNDtWSE9TVF9TQ1NJIFRDTSBmYWJyaWMgZHJpdmVyXCYjMzQ7XG4gIDQ4Olx0XHRkZXBlbmRzIG9uIFRBUkdFVF9DT1JFIFx1MDAyNlx1MDAyNiBFVkVOVEZEXG4gIDQ5Olx0XHRzZWxlY3QgVkhPU1RcbiAgNTA6XHRcdHNlbGVjdCBTR19QT09MXG4gIDUxOlx0XHRkZWZhdWx0IG5cbiAgNTI6XHRcdGhlbHBcbiAgNTM6XHRcdFNheSBNIGhlcmUgdG8gZW5hYmxlIHRoZSB2aG9zdF9zY3NpIFRDTSBmYWJyaWMgbW9kdWxlXG4gIDU0Olx0XHRmb3IgdXNlIHdpdGggdmlydGlvLXNjc2kgZ3Vlc3RzXG4gIDU1Olx0XG4gIDU2Olx0Y29uZmlnIFZIT1NUX1ZTT0NLXG4gIDU3Olx0XHR0cmlzdGF0ZSBcJiMzNDt2aG9zdCB2aXJ0aW8tdnNvY2sgZHJpdmVyXCYjMzQ7XG4gIDU4Olx0XHRkZXBlbmRzIG9uIFZTT0NLRVRTIFx1MDAyNlx1MDAyNiBFVkVOVEZEXG4gIDU5Olx0XHRzZWxlY3QgVkhPU1RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjM5OQoJCQkJCQkJb3V0cHV0OiAxMDUKCQkJCQkJCXRob3VnaHRzOiA3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nLCBicmVha2luZyBkb3duIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkVuYWJsaW5nIFZIT1NUX1NDU0kgZm9yIFNDU0kgVGFyZ2V0IEZ1bmN0aW9uYWxpdHkqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4gTXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgdGhpcyBzZXR1cCBpcyB0aGF0IHNlbGVjdGluZyBgVkhPU1RfU0NTSWAgYWxzbyBhdXRvbWF0aWNhbGx5IGltcGxpZXMgc2VsZWN0aW5nIGJvdGggYFZIT1NUYCBhbmQgYFNHX1BPT0xgLiBHb29kLCBnb29kLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0OyBJIGRvbiYjMzk7dCBuZWVkIHRvIG1hbnVhbGx5IHZlcmlmeSB0aG9zZSBkZXBlbmRlbmNpZXMuIE5vdywgdG8gbWFrZSB0aGlzIHdvcmssIEkgbmVlZCB0byBlbnN1cmUgdGhhdCBib3RoIGBWSE9TVF9TQ1NJYCAqYW5kKiBgVEFSR0VUX0NPUkVgIGFyZSBhY3R1YWxseSBlbmFibGVkIGluIHRoZSBjb25maWd1cmF0aW9uLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4KCk5leHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBleHRlbnQgb2YgdGhpcyBjaGFuZ2UuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgZm9jdXMgaGVyZSBpcyBgdmhvc3Rfc2NzaV9pb2N0bGAuIExldCYjMzk7cyBjb25maXJtOiBJcyBgdmhvc3Rfc2NzaV9pb2N0bGAgdGhlICpvbmx5KiBmdW5jdGlvbiB0aGF0JiMzOTtzIGJlZW4gbW9kaWZpZWQgYXMgcGFydCBvZiB0aGlzIGltcGxlbWVudGF0aW9uPyAqQ2hlY2tpbmcuLi4gY2hlY2tpbmcuLi4qIFllcywgaXQgZG9lcyBhcHBlYXIgdG8gYmUuIE9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSByZWxhdGl2ZWx5IGNvbnRhaW5lZCBtb2RpZmljYXRpb24sIHdoaWNoIGdpdmVzIG1lIGEgY2xlYXJlciBoYW5kbGUgb24gdGhlIHNjb3BlIG9mIGNoYW5nZXMuCgpGaW5hbGx5LCBsZXQmIzM5O3MgY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkhPU1RfU0NTSSYjMzQ7LAogICAgJiMzNDtUQVJHRVRfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gdmhvc3Rfc2NzaV9mbHVzaCgpIGluIHZob3N0X3Njc2lfaW9jdGwoKSBhZnRlciB2aG9zdF9kZXZfaW9jdGwoKSB0byBlbnN1cmUgdGhlIGJhY2tlbmQgaXMgZmx1c2hlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2aG9zdC1zY3NpIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkhPU1RfU0NTSSYjMzQ7LAogICAgJiMzNDtUQVJHRVRfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gdmhvc3Rfc2NzaV9mbHVzaCgpIGluIHZob3N0X3Njc2lfaW9jdGwoKSBhZnRlciB2aG9zdF9kZXZfaW9jdGwoKSB0byBlbnN1cmUgdGhlIGJhY2tlbmQgaXMgZmx1c2hlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2aG9zdC1zY3NpIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjA5LjgxODI3NDEzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODYyNjgzNzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZIT1NUX1NDU0lcIixcbiAgICBcIlRBUkdFVF9DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmhvc3Rfc2NzaV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHZob3N0X3Njc2lfZmx1c2goKSBpbiB2aG9zdF9zY3NpX2lvY3RsKCkgYWZ0ZXIgdmhvc3RfZGV2X2lvY3RsKCkgdG8gZW5zdXJlIHRoZSBiYWNrZW5kIGlzIGZsdXNoZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmhvc3Qtc2NzaSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjA5LjgxODI4MDI1N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzY2Nzc3NjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjNjNmU3MzJjODg4M2I3ODQ1ZDQ0MmE1NTk1NDRkNTg1NDFiMjVlN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEF1ZyA0IDA2OjQ0OjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvc2NzaS5jIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcXG5pbmRleCA5YTEyNTNiOWQ4YzUwLi4zOTM3ZWI1MDEzMjRhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdmhvc3Qvc2NzaS5jXFxuKysrIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcXG5AQCAtMjQyNiw5ICsyNDI2LDEwIEBAIHZob3N0X3Njc2lfaW9jdGwoc3RydWN0IGZpbGUgKmYsXFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnZzLVxcdTAwM2VkZXYubXV0ZXgpO1xcbiBcXHRcXHRyID0gdmhvc3RfZGV2X2lvY3RsKFxcdTAwMjZ2cy1cXHUwMDNlZGV2LCBpb2N0bCwgYXJncCk7XFxuLVxcdFxcdC8qIFRPRE86IGZsdXNoIGJhY2tlbmQgYWZ0ZXIgZGV2IGlvY3RsLiAqL1xcbiBcXHRcXHRpZiAociA9PSAtRU5PSU9DVExDTUQpXFxuIFxcdFxcdFxcdHIgPSB2aG9zdF92cmluZ19pb2N0bChcXHUwMDI2dnMtXFx1MDAzZWRldiwgaW9jdGwsIGFyZ3ApO1xcbitcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdHZob3N0X3Njc2lfZmx1c2godnMpO1xcbiBcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNnZzLVxcdTAwM2VkZXYubXV0ZXgpO1xcbiBcXHRcXHRyZXR1cm4gcjtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDoxMC4xODU3NTY4MjZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0OTQ5NTE5Mjc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSE9TVF9TQ1NJXCIsXG4gICAgXCJUQVJHRVRfQ09SRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZob3N0X3Njc2lfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2FsbCB0byB2aG9zdF9zY3NpX2ZsdXNoKCkgaW4gdmhvc3Rfc2NzaV9pb2N0bCgpIGFmdGVyIHZob3N0X2Rldl9pb2N0bCgpIHRvIGVuc3VyZSB0aGUgYmFja2VuZCBpcyBmbHVzaGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZob3N0LXNjc2kgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2M2M2ZTczMmM4ODgzYjc4NDVkNDQyYTU1OTU0NGQ1ODU0MWIyNWU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwNjo0NDowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvc2NzaS5jIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcbmluZGV4IDlhMTI1M2I5ZDhjNTAuLjM5MzdlYjUwMTMyNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Zob3N0L3Njc2kuY1xuKysrIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcbkBAIC0yNDI2LDkgKzI0MjYsMTAgQEAgdmhvc3Rfc2NzaV9pb2N0bChzdHJ1Y3QgZmlsZSAqZixcbiBcdGRlZmF1bHQ6XG4gXHRcdG11dGV4X2xvY2soXHUwMDI2dnMtXHUwMDNlZGV2Lm11dGV4KTtcbiBcdFx0ciA9IHZob3N0X2Rldl9pb2N0bChcdTAwMjZ2cy1cdTAwM2VkZXYsIGlvY3RsLCBhcmdwKTtcbi1cdFx0LyogVE9ETzogZmx1c2ggYmFja2VuZCBhZnRlciBkZXYgaW9jdGwuICovXG4gXHRcdGlmIChyID09IC1FTk9JT0NUTENNRClcbiBcdFx0XHRyID0gdmhvc3RfdnJpbmdfaW9jdGwoXHUwMDI2dnMtXHUwMDNlZGV2LCBpb2N0bCwgYXJncCk7XG4rXHRcdGVsc2VcbitcdFx0XHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcbiBcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZzLVx1MDAzZWRldi5tdXRleCk7XG4gXHRcdHJldHVybiByO1xuIFx0fVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTAuMTg1NzU4MzM1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY4NTY3MDEyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBgdmhvc3Rfc2NzaS5jYCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYC4gSXQgc2VlbXMgdG8gbW9kaWZ5IHRoZSBgdmhvc3Rfc2NzaV9pb2N0bGAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYSBgdmhvc3Rfc2NzaV9mbHVzaCh2cylgIGNhbGwgYWZ0ZXIgYHZob3N0X2Rldl9pb2N0bGAgKmlmKiB0aGUgYHZob3N0X2Rldl9pb2N0bGAgY2FsbCBkb2Vzbid0IHJldHVybiBgLUVOT0lPQ1RMQ01EYC4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGJldHRlci5cblxuRmlyc3QsIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgYWN0dWFsbHkgcmVhY2hhYmxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb25zIGFyZSByZXF1aXJlZCB0byBnZXQgdGhhdCBmdW5jdGlvbiBpbmNsdWRlZC4gU2luY2UgdGhlIHJlbGV2YW50IGNvZGUgaXMgaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYCwgSSdsbCBnbyBjaGVjayB0aGUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbGxpbmcgdGhhdCBwYXJ0IG9mIHRoZSB2aG9zdCBzdWJzeXN0ZW0gd2lsbCBiZSBkZWZpbmVkLiBJJ2xsIG1ha2Ugc3VyZSB0byBub3RlIGRvd24gYW55IGRlcGVuZGVuY2llcyBvciByZWxldmFudCBLY29uZmlnIHN5bWJvbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwOTgsIk91dHB1dFRva2VucyI6MTAzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTQuODcxNDMwNTQzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxOTYwOTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZob3N0X3Njc2lfaW9jdGxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92aG9zdC9zY3NpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aG9zdC9zY3NpLmM9MTkxOT1zdGF0aWMgaW50IHZob3N0X3Njc2lfc2V0dXBfdnFfY21kcyhzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgaW50IG1heF9jbWRzKVxcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTk3My0vKlxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjE5NzQ6ICogQ2FsbGVkIGZyb20gdmhvc3Rfc2NzaV9pb2N0bCgpIGNvbnRleHQgdG8gd2FsayB0aGUgbGlzdCBvZiBhdmFpbGFibGVcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0xOTc1LSAqIHZob3N0X3Njc2lfdHBnIHdpdGggYW4gYWN0aXZlIHN0cnVjdCB2aG9zdF9zY3NpX25leHVzXFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMzYxPXN0YXRpYyBsb25nXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjM2Mjp2aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLFxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIzNjMtXFx0XFx0IHVuc2lnbmVkIGludCBpb2N0bCxcXG4tLVxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jPTI0Mzg9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmhvc3Rfc2NzaV9mb3BzID0ge1xcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQ0MC1cXHQucmVsZWFzZSAgICAgICAgPSB2aG9zdF9zY3NpX3JlbGVhc2UsXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjQ0MTpcXHQudW5sb2NrZWRfaW9jdGwgPSB2aG9zdF9zY3NpX2lvY3RsLFxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTI0NDItXFx0LmNvbXBhdF9pb2N0bFxcdD0gY29tcGF0X3B0cl9pb2N0bCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTQuOTMzMzk1MzYyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODc4NTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZob3N0X3Njc2lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92aG9zdC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3Zob3N0L01ha2VmaWxlPTM9dmhvc3RfbmV0LXkgOj0gbmV0Lm9cXG5kcml2ZXJzL3Zob3N0L01ha2VmaWxlLTQtXFxuZHJpdmVycy92aG9zdC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19WSE9TVF9TQ1NJKSArPSB2aG9zdF9zY3NpLm9cXG5kcml2ZXJzL3Zob3N0L01ha2VmaWxlOjY6dmhvc3Rfc2NzaS15IDo9IHNjc2kub1xcbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGUtNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTQuOTc1Mjc3NDlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI5MzU2ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmhvc3Rfc2NzaV9mbHVzaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Zob3N0L3Njc2kuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3Zob3N0L3Njc2kuYz0xODQ0PXN0YXRpYyB2b2lkIHZob3N0X3Njc2lfaGFuZGxlX2tpY2soc3RydWN0IHZob3N0X3dvcmsgKndvcmspXFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0xODUzLS8qIENhbGxlcnMgbXVzdCBob2xkIGRldiBtdXRleCAqL1xcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjE4NTQ6c3RhdGljIHZvaWQgdmhvc3Rfc2NzaV9mbHVzaChzdHJ1Y3Qgdmhvc3Rfc2NzaSAqdnMpXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTg1NS17XFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0xOTgxPXZob3N0X3Njc2lfc2V0X2VuZHBvaW50KHN0cnVjdCB2aG9zdF9zY3NpICp2cyxcXG4tLVxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIwODQtXFx0ICovXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjA4NTpcXHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMDg2LVxcdHZzLVxcdTAwM2V2c190cGcgPSB2c190cGc7XFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMTEzPXZob3N0X3Njc2lfY2xlYXJfZW5kcG9pbnQoc3RydWN0IHZob3N0X3Njc2kgKnZzLFxcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjE3MC1cXHQvKiBNYWtlIHN1cmUgY21kcyBhcmUgbm90IHJ1bm5pbmcgYmVmb3JlIHRlYXJpbmcgdGhlbSBkb3duLiAqL1xcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjIxNzE6XFx0dmhvc3Rfc2NzaV9mbHVzaCh2cyk7XFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjE3Mi1cXG4tLVxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIyMDQtXFx0ICovXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjIwNTpcXHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMjA2LVxcdGtmcmVlKHZzLVxcdTAwM2V2c190cGcpO1xcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmM9MjM2Mj12aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLFxcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQzMS1cXHRcXHRlbHNlXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjQzMjpcXHRcXHRcXHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yNDMzLVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnMtXFx1MDAzZWRldi5tdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjE1LjAxODIxODM2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MjYyNjk1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjYWxsIHRvIGB2aG9zdF9zY3NpX2ZsdXNoYCB3aXRoaW4gdGhlIGB2aG9zdF9zY3NpX2lvY3RsYCBmdW5jdGlvbi4gVGhhdCdzIGEga2V5IGRldGFpbCB0byB1bmRlcnN0YW5kLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRoYXQgZmx1c2hpbmcgb3BlcmF0aW9uIGVudGFpbHMgaW4gdGhpcyBjb250ZXh0LiBJdCBzZWVtcyBsaWtlIGl0J3MgY29ubmVjdGVkIHRvIGBDT05GSUdfVkhPU1RfU0NTSWAsIHdoaWNoIHByb2JhYmx5IG1lYW5zIHRoaXMgbmV3IGNvZGUgaXMgY29uZGl0aW9uYWwgb24gdGhhdCBjb25maWd1cmF0aW9uIG9wdGlvbiBiZWluZyBlbmFibGVkLiBUbyBmdWxseSBncmFzcCB0aGlzIGNoYW5nZSBhbmQgaXRzIGltcGxpY2F0aW9ucywgSSBuZWVkIHRvIHZlcmlmeSBob3cgYFZIT1NUX1NDU0lgIGlzIGRlZmluZWQgYW5kIHVzZWQuIEknbGwgcXVpY2tseSBjaGVjayB0aGUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2AgZmlsZS4gVGhhdCdsbCB0ZWxsIG1lIGlmIGBWSE9TVF9TQ1NJYCBpcyBhIG1vZHVsZSwgYnVpbHQtaW4sIG9yIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBtaWdodCBiZS4gV2l0aCB0aGlzIGluZm9ybWF0aW9uLCBJIGNhbiBhc3Nlc3MgdGhlIHNjb3BlIG9mIHRoaXMgbmV3IGNhbGwgYW5kIHRoZSBlbnZpcm9ubWVudHMgaW4gd2hpY2ggaXQgd2lsbCBiZSBhY3RpdmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MzAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiLCJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjE4Ljc0NDQ4OTcwNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjkxNjc4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJWSE9TVF9TQ1NJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdmhvc3QvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3Zob3N0L0tjb25maWc9MzQ9Y29uZmlnIFZIT1NUX05FVFxcbi0tXFxuZHJpdmVycy92aG9zdC9LY29uZmlnLTQ1LVxcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0Njpjb25maWcgVkhPU1RfU0NTSVxcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0NzpcXHR0cmlzdGF0ZSBcXFwiVkhPU1RfU0NTSSBUQ00gZmFicmljIGRyaXZlclxcXCJcXG5kcml2ZXJzL3Zob3N0L0tjb25maWctNDgtXFx0ZGVwZW5kcyBvbiBUQVJHRVRfQ09SRSBcXHUwMDI2XFx1MDAyNiBFVkVOVEZEXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjE4Ljc4NzQxNjUwNVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTg1MjI0MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZXhwcmVzc2VkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OlxuXG4qKkRpZ2dpbmcgaW50byBDb25kaXRpb25hbCBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gd2UncmUgZGVhbGluZyB3aXRoIHNvbWV0aGluZyB3aG9zZSBiZWhhdmlvciBoaW5nZXMgb24gdGhlc2UgdHdvIGNydWNpYWwgY29uZmlndXJhdGlvbnM6IGBUQVJHRVRfQ09SRWAgYW5kIGBFVkVOVEZEYC4gTXkgZmlyc3Qgc3RlcCwgYXMgYWx3YXlzLCBpcyB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBTaW5jZSB3ZSdyZSBpbiB0aGUgZHJpdmVycyBkaXJlY3RvcnksIGFuZCBzcGVjaWZpY2FsbHkgdGFyZ2V0LXJlbGF0ZWQsIGl0IHNlZW1zIGxvZ2ljYWwgdGhhdCBgVEFSR0VUX0NPUkVgIGlzIHNvbWUgZnVuZGFtZW50YWwgc2V0dGluZyBmb3IgaG93IHRoZSB0YXJnZXQgZHJpdmVycyBhcmUgYnVpbHQgb3IgZW5hYmxlZC4gVG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiBob3cgdGhlc2UgdmFyaWFibGVzIGludGVycmVsYXRlLCBJIG5lZWQgdG8gY29uc3VsdCB0aGUgc291cmNlIG9mIHRydXRoIGZvciB0aGVpciBkZWZpbml0aW9ucyBhbmQgcG9zc2libGUgdmFsdWVzLiBMZXQncyBzdGFydCB3aXRoIGBUQVJHRVRfQ09SRWAuIEknbGwgaGVhZCBvdmVyIHRvIHRoZSBgZHJpdmVycy90YXJnZXQvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIHRoZSBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgYW5kIG9wdGlvbnMgZm9yIHRoZXNlIGFyZSB1c3VhbGx5IGRlZmluZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXBzIGFuZCBjb25zdHJhaW50cyBpbXBvc2VkIGJ5IHRoZXNlIHZhcmlhYmxlcyBiZWZvcmUgZHJhd2luZyBhbnkgY29uY2x1c2lvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTgsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDoyMi44NDU5NDE1MDFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MTg1ODM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlRBUkdFVF9DT1JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdGFyZ2V0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy90YXJnZXQvS2NvbmZpZy0yLVxcbmRyaXZlcnMvdGFyZ2V0L0tjb25maWc6MzptZW51Y29uZmlnIFRBUkdFVF9DT1JFXFxuZHJpdmVycy90YXJnZXQvS2NvbmZpZy00LVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIFRhcmdldCBDb3JlIE1vZCAoVENNKSBhbmQgQ29uZmlnRlMgSW5mcmFzdHJ1Y3R1cmVcXFwiXFxuLS1cXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTE1LVxcbmRyaXZlcnMvdGFyZ2V0L0tjb25maWc6MTY6aWYgVEFSR0VUX0NPUkVcXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTE3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDoyMi44OTAxMzE2NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODU1NTQ1NTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBWaG9zdCBTQ1NJIERyaXZlcidzIEtleSBGdW5jdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgdmhvc3QgU0NTSSBkcml2ZXIsIGFuZCBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGNydWNpYWwgZWxlbWVudHMuICBGaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCBgVkhPU1RfU0NTSWAgYW5kIGBUQVJHRVRfQ09SRWAg4oCTIHRoZXNlIHNlZW0gZnVuZGFtZW50YWwuIE5vdywgd2hpY2ggZnVuY3Rpb24gc2hvdWxkIEkgZm9jdXMgb24/ICBNeSBpbml0aWFsIHRob3VnaHQgaXMgYHZob3N0X3Njc2lfaW9jdGxgLlxuXG5Ib2xkIG9uLi4uIEkgbmVlZCB0byBiZSBzdXJlIEknbSBwaWNraW5nIHRoZSByaWdodCB0aGluZy4gSSBzaG91bGQgZXhjbHVkZSBzdGF0aWMgZnVuY3Rpb25zIHRoYXQgYXJlIGxpa2VseSBpbmxpbmVkLiBgdmhvc3Rfc2NzaV9mbHVzaGAgaXMgc3RhdGljLCBzbyBJIGNvdWxkIHJlbW92ZSBpdCBmcm9tIGNvbnNpZGVyYXRpb24sIGJ1dCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgKmFsc28qIHN0YXRpYyEgQnV0IHdhaXQsIGl0J3MgYW4gaW9jdGwgaGFuZGxlciEgU28gaXQncyBzdGlsbCBhIGdvb2QgY2FuZGlkYXRlLlxuXG5JJ20gdGhpbmtpbmcgbm93IGFib3V0IHdoZXRoZXIgaXQgY291bGQgYmUgaW5saW5lZC4gSWYgaXQncyBzdGF0aWMsIGl0IGNvdWxkIGJlLiBMZXQgbWUgY2hlY2suLi4gQWgsIGJ1dCBpdCdzICphc3NpZ25lZCogdG8gYGZpbGVfb3BlcmF0aW9uc2AsIGxpa2UgYC51bmxvY2tlZF9pb2N0bCA9IHZob3N0X3Njc2lfaW9jdGxgLiBPa2F5LCB0aGlzIG1ha2VzIGFsbCB0aGUgZGlmZmVyZW5jZSEgSWYgaXRzIGFkZHJlc3MgaXMgdGFrZW4sIHRoZW4gaXQncyBub3QgaW5saW5lZCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEknbSBsb29raW5nIGZvci5cblxuSSdtIGNoZWNraW5nIHRoZSBpbnN0cnVjdGlvbnMgYW5kIHRoZXkgc2F5IHRvIHByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMuICpCdXQqLCBldmVuIHRob3VnaCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgc3RhdGljLCBpdCdzIG5vdCBpbmxpbmVkIGJlY2F1c2UgaXRzIGFkZHJlc3MgaXMgdGFrZW4uIEV4Y2VsbGVudCwgaXQncyBhIGdvb2Qgb25lIHRvIGxpc3QhXG5cbkp1c3QgdG8gYmUgc3VyZSwgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucy4gYHZob3N0X3Njc2lfZmx1c2hgIGlzIHN0YXRpYywgc28gaXQgKm1pZ2h0KiBiZSBpbmxpbmVkLiBJIGFtIGdvaW5nIHRvIGxpc3QgYHZob3N0X3Njc2lfaW9jdGxgLlxuXG5MZXQncyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gSXMganVzdCBgVkhPU1RfU0NTSWAgc3VmZmljaWVudD8gSXQgcmVsaWVzIG9uIGBUQVJHRVRfQ09SRWAgYW5kIGBFVkVOVEZEYC4gT2theSwgYFRBUkdFVF9DT1JFYCBpcyBgQ09ORklHX1RBUkdFVF9DT1JFYC4gU28sIGBWSE9TVF9TQ1NJYCBhbmQgYFRBUkdFVF9DT1JFYCBhcmUgdGhlIGtleSBkZXBlbmRlbmNpZXMuXG5cbkZpbmFsbHksIEknbGwgdGFrZSBhIHF1aWNrIGxvb2sgYXQgYHZob3N0X3Njc2lfZmx1c2hgIGluIGBkcml2ZXJzL3Zob3N0L3Njc2kuY2AganVzdCB0byBiZSBjZXJ0YWluLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjc5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjMwLjc0NTY4MDM2MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy92aG9zdC9zY3NpLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTg1MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTg1MDpcXHRcXHR2aG9zdF9zY3NpX2hhbmRsZV92cSh2cywgdnEpO1xcbjE4NTE6XFx0fVxcbjE4NTI6XFx0XFxuMTg1MzpcXHQvKiBDYWxsZXJzIG11c3QgaG9sZCBkZXYgbXV0ZXggKi9cXG4xODU0OlxcdHN0YXRpYyB2b2lkIHZob3N0X3Njc2lfZmx1c2goc3RydWN0IHZob3N0X3Njc2kgKnZzKVxcbjE4NTU6XFx0e1xcbjE4NTY6XFx0XFx0aW50IGk7XFxuMTg1NzpcXHRcXG4xODU4OlxcdFxcdC8qIEluaXQgbmV3IGluZmxpZ2h0IGFuZCByZW1lbWJlciB0aGUgb2xkIGluZmxpZ2h0ICovXFxuMTg1OTpcXHRcXHR2aG9zdF9zY3NpX2luaXRfaW5mbGlnaHQodnMsIHZzLVxcdTAwM2VvbGRfaW5mbGlnaHQpO1xcbjE4NjA6XFx0XFxuMTg2MTpcXHRcXHQvKlxcbjE4NjI6XFx0XFx0ICogVGhlIGluZmxpZ2h0LVxcdTAwM2VrcmVmIHdhcyBpbml0aWFsaXplZCB0byAxLiBXZSBkZWNyZW1lbnQgaXQgaGVyZSB0b1xcbjE4NjM6XFx0XFx0ICogaW5kaWNhdGUgdGhlIHN0YXJ0IG9mIHRoZSBmbHVzaCBvcGVyYXRpb24gc28gdGhhdCBpdCB3aWxsIHJlYWNoIDBcXG4xODY0OlxcdFxcdCAqIHdoZW4gYWxsIHRoZSByZXFzIGFyZSBmaW5pc2hlZC5cXG4xODY1OlxcdFxcdCAqL1xcbjE4NjY6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHZzLVxcdTAwM2VkZXYubnZxczsgaSsrKVxcbjE4Njc6XFx0XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZzLVxcdTAwM2VvbGRfaW5mbGlnaHRbaV0tXFx1MDAzZWtyZWYsIHZob3N0X3Njc2lfZG9uZV9pbmZsaWdodCk7XFxuMTg2ODpcXHRcXG4xODY5OlxcdFxcdC8qIEZsdXNoIGJvdGggdGhlIHZob3N0IHBvbGwgYW5kIHZob3N0IHdvcmsgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MzAuNzQ1ODI3NTcyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTE4OTkwMjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgVmhvc3QgU0NTSSBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNhbGwgdG8gYHZob3N0X3Njc2lfZmx1c2hgIHdpdGhpbiB0aGUgYHZob3N0X3Njc2lfaW9jdGxgIGZ1bmN0aW9uLiBUaGlzIGNsZWFybHkgcmVwcmVzZW50cyBhIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCB3aGljaCBpcyB0aGUgbWFpbiBwb2ludCBvZiB0aGlzIHdob2xlIHRoaW5nLCBJIHN1cHBvc2UuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBoZXJlIGFyZSBgVkhPU1RfU0NTSWAgYW5kIGBUQVJHRVRfQ09SRWAsIHdoaWNoIGFyZSBjb21tb24gZm9yIFNDU0kgdGFyZ2V0cyBhbmQgdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzLCByZXNwZWN0aXZlbHkuXG5cbk15IGluaXRpYWwgZm9jdXMgbmVlZHMgdG8gYmUgb24gYHZob3N0X3Njc2lfaW9jdGxgLiBJIHdhbnQgdG8gcXVpY2tseSB2ZXJpZnkgaWYgYFZIT1NUYCBpcyBleHBsaWNpdGx5IHJlcXVpcmVkIG9yIGlmIHRoZSBpbmNsdXNpb24gaXMgdGhyb3VnaCBhIGRlcGVuZGVuY3kuIEFoLCBgVkhPU1RfU0NTSWAgKnNlbGVjdHMqIGBWSE9TVGAsIHNvIHRoYXQncyBoYW5kbGVkLiBOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgZGVwZW5kZW5jeSBtYWtlcyBzZW5zZSB3aXRoaW4gdGhlIG92ZXJhbGwgZnJhbWV3b3JrLCBJJ2xsIHRha2UgYSBxdWljayBwZWVrIGF0IHRoZSBgZHJpdmVycy92aG9zdC9LY29uZmlnYCBmaWxlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTQ4LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6NDAuODY0ODIwMTI1WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTIxODM3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVkhPU1RfU0NTSVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Zob3N0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aG9zdC9LY29uZmlnPTM0PWNvbmZpZyBWSE9TVF9ORVRcXG4tLVxcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZy00NS1cXG5kcml2ZXJzL3Zob3N0L0tjb25maWc6NDY6Y29uZmlnIFZIT1NUX1NDU0lcXG5kcml2ZXJzL3Zob3N0L0tjb25maWctNDctXFx0dHJpc3RhdGUgXFxcIlZIT1NUX1NDU0kgVENNIGZhYnJpYyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjQwLjkxMDA0NjI2M1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk5NDQ4NzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gdGhlIHZob3N0IEtjb25maWcqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB2aG9zdCBjb25maWd1cmF0aW9uIGEgYml0IGJldHRlciwgYW5kIGxpbmUgNDYgb2YgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2Agc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEknbSBob3BpbmcgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyB0aGlzIHNlY3Rpb24gb2YgdGhlIGtlcm5lbCBpcyBzZXQgdXAuIFRpbWUgdG8gc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTY5LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6NDQuODA5NDk3Njg1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvdmhvc3QvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA0MDpcXHRcXHQgIGd1ZXN0IG5ldHdvcmtpbmcgd2l0aCB2aXJ0aW9fbmV0LiBOb3QgdG8gYmUgY29uZnVzZWQgd2l0aCB2aXJ0aW9fbmV0XFxuICA0MTpcXHRcXHQgIG1vZHVsZSBpdHNlbGYgd2hpY2ggbmVlZHMgdG8gYmUgbG9hZGVkIGluIGd1ZXN0IGtlcm5lbC5cXG4gIDQyOlxcdFxcbiAgNDM6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGxcXG4gIDQ0OlxcdFxcdCAgYmUgY2FsbGVkIHZob3N0X25ldC5cXG4gIDQ1OlxcdFxcbiAgNDY6XFx0Y29uZmlnIFZIT1NUX1NDU0lcXG4gIDQ3OlxcdFxcdHRyaXN0YXRlIFxcXCJWSE9TVF9TQ1NJIFRDTSBmYWJyaWMgZHJpdmVyXFxcIlxcbiAgNDg6XFx0XFx0ZGVwZW5kcyBvbiBUQVJHRVRfQ09SRSBcXHUwMDI2XFx1MDAyNiBFVkVOVEZEXFxuICA0OTpcXHRcXHRzZWxlY3QgVkhPU1RcXG4gIDUwOlxcdFxcdHNlbGVjdCBTR19QT09MXFxuICA1MTpcXHRcXHRkZWZhdWx0IG5cXG4gIDUyOlxcdFxcdGhlbHBcXG4gIDUzOlxcdFxcdFNheSBNIGhlcmUgdG8gZW5hYmxlIHRoZSB2aG9zdF9zY3NpIFRDTSBmYWJyaWMgbW9kdWxlXFxuICA1NDpcXHRcXHRmb3IgdXNlIHdpdGggdmlydGlvLXNjc2kgZ3Vlc3RzXFxuICA1NTpcXHRcXG4gIDU2OlxcdGNvbmZpZyBWSE9TVF9WU09DS1xcbiAgNTc6XFx0XFx0dHJpc3RhdGUgXFxcInZob3N0IHZpcnRpby12c29jayBkcml2ZXJcXFwiXFxuICA1ODpcXHRcXHRkZXBlbmRzIG9uIFZTT0NLRVRTIFxcdTAwMjZcXHUwMDI2IEVWRU5URkRcXG4gIDU5OlxcdFxcdHNlbGVjdCBWSE9TVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDo0NC44MDk1NTgxNTVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ3NzM0NjEyMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nLCBicmVha2luZyBkb3duIHRoZSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRW5hYmxpbmcgVkhPU1RfU0NTSSBmb3IgU0NTSSBUYXJnZXQgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4gTXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgdGhpcyBzZXR1cCBpcyB0aGF0IHNlbGVjdGluZyBgVkhPU1RfU0NTSWAgYWxzbyBhdXRvbWF0aWNhbGx5IGltcGxpZXMgc2VsZWN0aW5nIGJvdGggYFZIT1NUYCBhbmQgYFNHX1BPT0xgLiBHb29kLCBnb29kLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0OyBJIGRvbid0IG5lZWQgdG8gbWFudWFsbHkgdmVyaWZ5IHRob3NlIGRlcGVuZGVuY2llcy4gTm93LCB0byBtYWtlIHRoaXMgd29yaywgSSBuZWVkIHRvIGVuc3VyZSB0aGF0IGJvdGggYFZIT1NUX1NDU0lgICphbmQqIGBUQVJHRVRfQ09SRWAgYXJlIGFjdHVhbGx5IGVuYWJsZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIFRoYXQncyB0aGUgYmFzZWxpbmUuXG5cbk5leHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBleHRlbnQgb2YgdGhpcyBjaGFuZ2UuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgZm9jdXMgaGVyZSBpcyBgdmhvc3Rfc2NzaV9pb2N0bGAuIExldCdzIGNvbmZpcm06IElzIGB2aG9zdF9zY3NpX2lvY3RsYCB0aGUgKm9ubHkqIGZ1bmN0aW9uIHRoYXQncyBiZWVuIG1vZGlmaWVkIGFzIHBhcnQgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbj8gKkNoZWNraW5nLi4uIGNoZWNraW5nLi4uKiBZZXMsIGl0IGRvZXMgYXBwZWFyIHRvIGJlLiBPa2F5LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSByZWxhdGl2ZWx5IGNvbnRhaW5lZCBtb2RpZmljYXRpb24sIHdoaWNoIGdpdmVzIG1lIGEgY2xlYXJlciBoYW5kbGUgb24gdGhlIHNjb3BlIG9mIGNoYW5nZXMuXG5cbkZpbmFsbHksIGxldCdzIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjM5OSwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjU5LjU4MzAyNDAwN1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3OTIyODU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSE9TVF9TQ1NJXCIsXG4gICAgXCJUQVJHRVRfQ09SRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZob3N0X3Njc2lfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2FsbCB0byB2aG9zdF9zY3NpX2ZsdXNoKCkgaW4gdmhvc3Rfc2NzaV9pb2N0bCgpIGFmdGVyIHZob3N0X2Rldl9pb2N0bCgpIHRvIGVuc3VyZSB0aGUgYmFja2VuZCBpcyBmbHVzaGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZob3N0LXNjc2kgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZIT1NUX1NDU0lcIixcbiAgICBcIlRBUkdFVF9DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmhvc3Rfc2NzaV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHZob3N0X3Njc2lfZmx1c2goKSBpbiB2aG9zdF9zY3NpX2lvY3RsKCkgYWZ0ZXIgdmhvc3RfZGV2X2lvY3RsKCkgdG8gZW5zdXJlIHRoZSBiYWNrZW5kIGlzIGZsdXNoZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmhvc3Qtc2NzaSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-04 06:22:35 +0000 UTC FinishedAt: 2026-08-04 06:45:00 +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": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VHOST_SCSI", "TARGET_CORE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VHOST_SCSI", "TARGET_CORE" ], "series_id": "d357ef81-0005-477f-bcc2-91c9d687ef89" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vhost_scsi_ioctl" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZIT1NUX1NDU0kmIzM0OywKICAgICYjMzQ7VEFSR0VUX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aG9zdF9zY3NpX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHZob3N0X3Njc2lfZmx1c2goKSBpbiB2aG9zdF9zY3NpX2lvY3RsKCkgYWZ0ZXIgdmhvc3RfZGV2X2lvY3RsKCkgdG8gZW5zdXJlIHRoZSBiYWNrZW5kIGlzIGZsdXNoZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmhvc3Qtc2NzaSBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2M2M2ZTczMmM4ODgzYjc4NDVkNDQyYTU1OTU0NGQ1ODU0MWIyNWU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwNjo0NDowOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L3Njc2kuYyBiL2RyaXZlcnMvdmhvc3Qvc2NzaS5jXG5pbmRleCA5YTEyNTNiOWQ4YzUwLi4zOTM3ZWI1MDEzMjRhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy92aG9zdC9zY3NpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdmhvc3Qvc2NzaS5jXG5AQCAtMjQyNiw5ICYjNDM7MjQyNiwxMCBAQCB2aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLFxuIFx0ZGVmYXVsdDpcbiBcdFx0bXV0ZXhfbG9jayhcdTAwMjZ2cy1cdTAwM2VkZXYubXV0ZXgpO1xuIFx0XHRyID0gdmhvc3RfZGV2X2lvY3RsKFx1MDAyNnZzLVx1MDAzZWRldiwgaW9jdGwsIGFyZ3ApO1xuLVx0XHQvKiBUT0RPOiBmbHVzaCBiYWNrZW5kIGFmdGVyIGRldiBpb2N0bC4gKi9cbiBcdFx0aWYgKHIgPT0gLUVOT0lPQ1RMQ01EKVxuIFx0XHRcdHIgPSB2aG9zdF92cmluZ19pb2N0bChcdTAwMjZ2cy1cdTAwM2VkZXYsIGlvY3RsLCBhcmdwKTtcbiYjNDM7XHRcdGVsc2VcbiYjNDM7XHRcdFx0dmhvc3Rfc2NzaV9mbHVzaCh2cyk7XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZ2cy1cdTAwM2VkZXYubXV0ZXgpO1xuIFx0XHRyZXR1cm4gcjtcbiBcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkhPU1RfU0NTSSYjMzQ7LAogICAgJiMzNDtUQVJHRVRfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gdmhvc3Rfc2NzaV9mbHVzaCgpIGluIHZob3N0X3Njc2lfaW9jdGwoKSBhZnRlciB2aG9zdF9kZXZfaW9jdGwoKSB0byBlbnN1cmUgdGhlIGJhY2tlbmQgaXMgZmx1c2hlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2aG9zdC1zY3NpIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDYzYzZlNzMyYzg4ODNiNzg0NWQ0NDJhNTU5NTQ0ZDU4NTQxYjI1ZTcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyA0IDA2OjQ0OjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC9zY3NpLmMgYi9kcml2ZXJzL3Zob3N0L3Njc2kuYwppbmRleCA5YTEyNTNiOWQ4YzUwLi4zOTM3ZWI1MDEzMjRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L3Njc2kuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Zob3N0L3Njc2kuYwpAQCAtMjQyNiw5ICYjNDM7MjQyNiwxMCBAQCB2aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLAogCWRlZmF1bHQ6CiAJCW11dGV4X2xvY2soJmFtcDt2cy0mZ3Q7ZGV2Lm11dGV4KTsKIAkJciA9IHZob3N0X2Rldl9pb2N0bCgmYW1wO3ZzLSZndDtkZXYsIGlvY3RsLCBhcmdwKTsKLQkJLyogVE9ETzogZmx1c2ggYmFja2VuZCBhZnRlciBkZXYgaW9jdGwuICovCiAJCWlmIChyID09IC1FTk9JT0NUTENNRCkKIAkJCXIgPSB2aG9zdF92cmluZ19pb2N0bCgmYW1wO3ZzLSZndDtkZXYsIGlvY3RsLCBhcmdwKTsKJiM0MzsJCWVsc2UKJiM0MzsJCQl2aG9zdF9zY3NpX2ZsdXNoKHZzKTsKIAkJbXV0ZXhfdW5sb2NrKCZhbXA7dnMtJmd0O2Rldi5tdXRleCk7CiAJCXJldHVybiByOwogCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5OAoJCQkJCQkJb3V0cHV0OiAxMDMKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgYHZob3N0X3Njc2kuY2AgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYC4gSXQgc2VlbXMgdG8gbW9kaWZ5IHRoZSBgdmhvc3Rfc2NzaV9pb2N0bGAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWRkaW5nIGEgYHZob3N0X3Njc2lfZmx1c2godnMpYCBjYWxsIGFmdGVyIGB2aG9zdF9kZXZfaW9jdGxgICppZiogdGhlIGB2aG9zdF9kZXZfaW9jdGxgIGNhbGwgZG9lc24mIzM5O3QgcmV0dXJuIGAtRU5PSU9DVExDTURgLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGJldHRlci4KCkZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHZob3N0X3Njc2lfaW9jdGxgIGlzIGFjdHVhbGx5IHJlYWNoYWJsZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBjb25maWcgb3B0aW9ucyBhcmUgcmVxdWlyZWQgdG8gZ2V0IHRoYXQgZnVuY3Rpb24gaW5jbHVkZWQuIFNpbmNlIHRoZSByZWxldmFudCBjb2RlIGlzIGluIGBkcml2ZXJzL3Zob3N0L3Njc2kuY2AsIEkmIzM5O2xsIGdvIGNoZWNrIHRoZSBgZHJpdmVycy92aG9zdC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbGxpbmcgdGhhdCBwYXJ0IG9mIHRoZSB2aG9zdCBzdWJzeXN0ZW0gd2lsbCBiZSBkZWZpbmVkLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gbm90ZSBkb3duIGFueSBkZXBlbmRlbmNpZXMgb3IgcmVsZXZhbnQgS2NvbmZpZyBzeW1ib2xzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L3Njc2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L3Njc2kuYz0xOTE5PXN0YXRpYyBpbnQgdmhvc3Rfc2NzaV9zZXR1cF92cV9jbWRzKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCBpbnQgbWF4X2NtZHMpXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTk3My0vKlxuZHJpdmVycy92aG9zdC9zY3NpLmM6MTk3NDogKiBDYWxsZWQgZnJvbSB2aG9zdF9zY3NpX2lvY3RsKCkgY29udGV4dCB0byB3YWxrIHRoZSBsaXN0IG9mIGF2YWlsYWJsZVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTk3NS0gKiB2aG9zdF9zY3NpX3RwZyB3aXRoIGFuIGFjdGl2ZSBzdHJ1Y3Qgdmhvc3Rfc2NzaV9uZXh1c1xuLS1cbmRyaXZlcnMvdmhvc3Qvc2NzaS5jPTIzNjE9c3RhdGljIGxvbmdcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjIzNjI6dmhvc3Rfc2NzaV9pb2N0bChzdHJ1Y3QgZmlsZSAqZixcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIzNjMtXHRcdCB1bnNpZ25lZCBpbnQgaW9jdGwsXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmM9MjQzOD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2aG9zdF9zY3NpX2ZvcHMgPSB7XG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQ0MC1cdC5yZWxlYXNlICAgICAgICA9IHZob3N0X3Njc2lfcmVsZWFzZSxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjI0NDE6XHQudW5sb2NrZWRfaW9jdGwgPSB2aG9zdF9zY3NpX2lvY3RsLFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQ0Mi1cdC5jb21wYXRfaW9jdGxcdD0gY29tcGF0X3B0cl9pb2N0bCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aG9zdF9zY3NpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L01ha2VmaWxlPTM9dmhvc3RfbmV0LXkgOj0gbmV0Lm9cbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGUtNC1cbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfVkhPU1RfU0NTSSkgJiM0Mzs9IHZob3N0X3Njc2kub1xuZHJpdmVycy92aG9zdC9NYWtlZmlsZTo2OnZob3N0X3Njc2kteSA6PSBzY3NpLm9cbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGUtNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aG9zdF9zY3NpX2ZsdXNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9zY3NpLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9zY3NpLmM9MTg0ND1zdGF0aWMgdm9pZCB2aG9zdF9zY3NpX2hhbmRsZV9raWNrKHN0cnVjdCB2aG9zdF93b3JrICp3b3JrKVxuLS1cbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTE4NTMtLyogQ2FsbGVycyBtdXN0IGhvbGQgZGV2IG11dGV4ICovXG5kcml2ZXJzL3Zob3N0L3Njc2kuYzoxODU0OnN0YXRpYyB2b2lkIHZob3N0X3Njc2lfZmx1c2goc3RydWN0IHZob3N0X3Njc2kgKnZzKVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTg1NS17XG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmM9MTk4MT12aG9zdF9zY3NpX3NldF9lbmRwb2ludChzdHJ1Y3Qgdmhvc3Rfc2NzaSAqdnMsXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjA4NC1cdCAqL1xuZHJpdmVycy92aG9zdC9zY3NpLmM6MjA4NTpcdHZob3N0X3Njc2lfZmx1c2godnMpO1xuZHJpdmVycy92aG9zdC9zY3NpLmMtMjA4Ni1cdHZzLVx1MDAzZXZzX3RwZyA9IHZzX3RwZztcbi0tXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMTEzPXZob3N0X3Njc2lfY2xlYXJfZW5kcG9pbnQoc3RydWN0IHZob3N0X3Njc2kgKnZzLFxuLS1cbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIxNzAtXHQvKiBNYWtlIHN1cmUgY21kcyBhcmUgbm90IHJ1bm5pbmcgYmVmb3JlIHRlYXJpbmcgdGhlbSBkb3duLiAqL1xuZHJpdmVycy92aG9zdC9zY3NpLmM6MjE3MTpcdHZob3N0X3Njc2lfZmx1c2godnMpO1xuZHJpdmVycy92aG9zdC9zY3NpLmMtMjE3Mi1cbi0tXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMjA0LVx0ICovXG5kcml2ZXJzL3Zob3N0L3Njc2kuYzoyMjA1Olx0dmhvc3Rfc2NzaV9mbHVzaCh2cyk7XG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMjA2LVx0a2ZyZWUodnMtXHUwMDNldnNfdHBnKTtcbi0tXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMzYyPXZob3N0X3Njc2lfaW9jdGwoc3RydWN0IGZpbGUgKmYsXG4tLVxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQzMS1cdFx0ZWxzZVxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjQzMjpcdFx0XHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTI0MzMtXHRcdG11dGV4X3VubG9jayhcdTAwMjZ2cy1cdTAwM2VkZXYubXV0ZXgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MzAKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5ldyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjYWxsIHRvIGB2aG9zdF9zY3NpX2ZsdXNoYCB3aXRoaW4gdGhlIGB2aG9zdF9zY3NpX2lvY3RsYCBmdW5jdGlvbi4gVGhhdCYjMzk7cyBhIGtleSBkZXRhaWwgdG8gdW5kZXJzdGFuZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGF0IGZsdXNoaW5nIG9wZXJhdGlvbiBlbnRhaWxzIGluIHRoaXMgY29udGV4dC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBjb25uZWN0ZWQgdG8gYENPTkZJR19WSE9TVF9TQ1NJYCwgd2hpY2ggcHJvYmFibHkgbWVhbnMgdGhpcyBuZXcgY29kZSBpcyBjb25kaXRpb25hbCBvbiB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGJlaW5nIGVuYWJsZWQuIFRvIGZ1bGx5IGdyYXNwIHRoaXMgY2hhbmdlIGFuZCBpdHMgaW1wbGljYXRpb25zLCBJIG5lZWQgdG8gdmVyaWZ5IGhvdyBgVkhPU1RfU0NTSWAgaXMgZGVmaW5lZCBhbmQgdXNlZC4gSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7bGwgdGVsbCBtZSBpZiBgVkhPU1RfU0NTSWAgaXMgYSBtb2R1bGUsIGJ1aWx0LWluLCBvciB3aGF0IHRoZSBkZXBlbmRlbmNpZXMgbWlnaHQgYmUuIFdpdGggdGhpcyBpbmZvcm1hdGlvbiwgSSBjYW4gYXNzZXNzIHRoZSBzY29wZSBvZiB0aGlzIG5ldyBjYWxsIGFuZCB0aGUgZW52aXJvbm1lbnRzIGluIHdoaWNoIGl0IHdpbGwgYmUgYWN0aXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1ZIT1NUX1NDU0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9LY29uZmlnPTM0PWNvbmZpZyBWSE9TVF9ORVRcbi0tXG5kcml2ZXJzL3Zob3N0L0tjb25maWctNDUtXG5kcml2ZXJzL3Zob3N0L0tjb25maWc6NDY6Y29uZmlnIFZIT1NUX1NDU0lcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0NzpcdHRyaXN0YXRlIFwmIzM0O1ZIT1NUX1NDU0kgVENNIGZhYnJpYyBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZy00OC1cdGRlcGVuZHMgb24gVEFSR0VUX0NPUkUgXHUwMDI2XHUwMDI2IEVWRU5URkRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTE4CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGV4cHJlc3NlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeToKCioqRGlnZ2luZyBpbnRvIENvbmRpdGlvbmFsIERlcGVuZGVuY2llcyoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgd2hvc2UgYmVoYXZpb3IgaGluZ2VzIG9uIHRoZXNlIHR3byBjcnVjaWFsIGNvbmZpZ3VyYXRpb25zOiBgVEFSR0VUX0NPUkVgIGFuZCBgRVZFTlRGRGAuIE15IGZpcnN0IHN0ZXAsIGFzIGFsd2F5cywgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gU2luY2Ugd2UmIzM5O3JlIGluIHRoZSBkcml2ZXJzIGRpcmVjdG9yeSwgYW5kIHNwZWNpZmljYWxseSB0YXJnZXQtcmVsYXRlZCwgaXQgc2VlbXMgbG9naWNhbCB0aGF0IGBUQVJHRVRfQ09SRWAgaXMgc29tZSBmdW5kYW1lbnRhbCBzZXR0aW5nIGZvciBob3cgdGhlIHRhcmdldCBkcml2ZXJzIGFyZSBidWlsdCBvciBlbmFibGVkLiBUbyBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGVzZSB2YXJpYWJsZXMgaW50ZXJyZWxhdGUsIEkgbmVlZCB0byBjb25zdWx0IHRoZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZWlyIGRlZmluaXRpb25zIGFuZCBwb3NzaWJsZSB2YWx1ZXMuIExldCYjMzk7cyBzdGFydCB3aXRoIGBUQVJHRVRfQ09SRWAuIEkmIzM5O2xsIGhlYWQgb3ZlciB0byB0aGUgYGRyaXZlcnMvdGFyZ2V0L0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvbmRpdGlvbmFsIGRlcGVuZGVuY2llcyBhbmQgb3B0aW9ucyBmb3IgdGhlc2UgYXJlIHVzdWFsbHkgZGVmaW5lZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcHMgYW5kIGNvbnN0cmFpbnRzIGltcG9zZWQgYnkgdGhlc2UgdmFyaWFibGVzIGJlZm9yZSBkcmF3aW5nIGFueSBjb25jbHVzaW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VEFSR0VUX0NPUkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3RhcmdldC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdGFyZ2V0L0tjb25maWctMi1cbmRyaXZlcnMvdGFyZ2V0L0tjb25maWc6MzptZW51Y29uZmlnIFRBUkdFVF9DT1JFXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTQtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIFRhcmdldCBDb3JlIE1vZCAoVENNKSBhbmQgQ29uZmlnRlMgSW5mcmFzdHJ1Y3R1cmVcJiMzNDtcbi0tXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTE1LVxuZHJpdmVycy90YXJnZXQvS2NvbmZpZzoxNjppZiBUQVJHRVRfQ09SRVxuZHJpdmVycy90YXJnZXQvS2NvbmZpZy0xNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI3OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDQxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVmhvc3QgU0NTSSBEcml2ZXImIzM5O3MgS2V5IEZ1bmN0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIHZob3N0IFNDU0kgZHJpdmVyLCBhbmQgSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBjcnVjaWFsIGVsZW1lbnRzLiAgRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgYFZIT1NUX1NDU0lgIGFuZCBgVEFSR0VUX0NPUkVgIOKAkyB0aGVzZSBzZWVtIGZ1bmRhbWVudGFsLiBOb3csIHdoaWNoIGZ1bmN0aW9uIHNob3VsZCBJIGZvY3VzIG9uPyAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGB2aG9zdF9zY3NpX2lvY3RsYC4KCkhvbGQgb24uLi4gSSBuZWVkIHRvIGJlIHN1cmUgSSYjMzk7bSBwaWNraW5nIHRoZSByaWdodCB0aGluZy4gSSBzaG91bGQgZXhjbHVkZSBzdGF0aWMgZnVuY3Rpb25zIHRoYXQgYXJlIGxpa2VseSBpbmxpbmVkLiBgdmhvc3Rfc2NzaV9mbHVzaGAgaXMgc3RhdGljLCBzbyBJIGNvdWxkIHJlbW92ZSBpdCBmcm9tIGNvbnNpZGVyYXRpb24sIGJ1dCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgKmFsc28qIHN0YXRpYyEgQnV0IHdhaXQsIGl0JiMzOTtzIGFuIGlvY3RsIGhhbmRsZXIhIFNvIGl0JiMzOTtzIHN0aWxsIGEgZ29vZCBjYW5kaWRhdGUuCgpJJiMzOTttIHRoaW5raW5nIG5vdyBhYm91dCB3aGV0aGVyIGl0IGNvdWxkIGJlIGlubGluZWQuIElmIGl0JiMzOTtzIHN0YXRpYywgaXQgY291bGQgYmUuIExldCBtZSBjaGVjay4uLiBBaCwgYnV0IGl0JiMzOTtzICphc3NpZ25lZCogdG8gYGZpbGVfb3BlcmF0aW9uc2AsIGxpa2UgYC51bmxvY2tlZF9pb2N0bCA9IHZob3N0X3Njc2lfaW9jdGxgLiBPa2F5LCB0aGlzIG1ha2VzIGFsbCB0aGUgZGlmZmVyZW5jZSEgSWYgaXRzIGFkZHJlc3MgaXMgdGFrZW4sIHRoZW4gaXQmIzM5O3Mgbm90IGlubGluZWQsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJJiMzOTttIGxvb2tpbmcgZm9yLgoKSSYjMzk7bSBjaGVja2luZyB0aGUgaW5zdHJ1Y3Rpb25zIGFuZCB0aGV5IHNheSB0byBwcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnRzLiAqQnV0KiwgZXZlbiB0aG91Z2ggYHZob3N0X3Njc2lfaW9jdGxgIGlzIHN0YXRpYywgaXQmIzM5O3Mgbm90IGlubGluZWQgYmVjYXVzZSBpdHMgYWRkcmVzcyBpcyB0YWtlbi4gRXhjZWxsZW50LCBpdCYjMzk7cyBhIGdvb2Qgb25lIHRvIGxpc3QhCgpKdXN0IHRvIGJlIHN1cmUsIEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSBvdGhlciBmdW5jdGlvbnMuIGB2aG9zdF9zY3NpX2ZsdXNoYCBpcyBzdGF0aWMsIHNvIGl0ICptaWdodCogYmUgaW5saW5lZC4gSSBhbSBnb2luZyB0byBsaXN0IGB2aG9zdF9zY3NpX2lvY3RsYC4KCkxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gSXMganVzdCBgVkhPU1RfU0NTSWAgc3VmZmljaWVudD8gSXQgcmVsaWVzIG9uIGBUQVJHRVRfQ09SRWAgYW5kIGBFVkVOVEZEYC4gT2theSwgYFRBUkdFVF9DT1JFYCBpcyBgQ09ORklHX1RBUkdFVF9DT1JFYC4gU28sIGBWSE9TVF9TQ1NJYCBhbmQgYFRBUkdFVF9DT1JFYCBhcmUgdGhlIGtleSBkZXBlbmRlbmNpZXMuCgpGaW5hbGx5LCBJJiMzOTtsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBgdmhvc3Rfc2NzaV9mbHVzaGAgaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYCBqdXN0IHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9zY3NpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxODUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE4NTA6XHRcdHZob3N0X3Njc2lfaGFuZGxlX3ZxKHZzLCB2cSk7XG4xODUxOlx0fVxuMTg1MjpcdFxuMTg1MzpcdC8qIENhbGxlcnMgbXVzdCBob2xkIGRldiBtdXRleCAqL1xuMTg1NDpcdHN0YXRpYyB2b2lkIHZob3N0X3Njc2lfZmx1c2goc3RydWN0IHZob3N0X3Njc2kgKnZzKVxuMTg1NTpcdHtcbjE4NTY6XHRcdGludCBpO1xuMTg1NzpcdFxuMTg1ODpcdFx0LyogSW5pdCBuZXcgaW5mbGlnaHQgYW5kIHJlbWVtYmVyIHRoZSBvbGQgaW5mbGlnaHQgKi9cbjE4NTk6XHRcdHZob3N0X3Njc2lfaW5pdF9pbmZsaWdodCh2cywgdnMtXHUwMDNlb2xkX2luZmxpZ2h0KTtcbjE4NjA6XHRcbjE4NjE6XHRcdC8qXG4xODYyOlx0XHQgKiBUaGUgaW5mbGlnaHQtXHUwMDNla3JlZiB3YXMgaW5pdGlhbGl6ZWQgdG8gMS4gV2UgZGVjcmVtZW50IGl0IGhlcmUgdG9cbjE4NjM6XHRcdCAqIGluZGljYXRlIHRoZSBzdGFydCBvZiB0aGUgZmx1c2ggb3BlcmF0aW9uIHNvIHRoYXQgaXQgd2lsbCByZWFjaCAwXG4xODY0Olx0XHQgKiB3aGVuIGFsbCB0aGUgcmVxcyBhcmUgZmluaXNoZWQuXG4xODY1Olx0XHQgKi9cbjE4NjY6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHZzLVx1MDAzZWRldi5udnFzOyBpJiM0MzsmIzQzOylcbjE4Njc6XHRcdFx0a3JlZl9wdXQoXHUwMDI2dnMtXHUwMDNlb2xkX2luZmxpZ2h0W2ldLVx1MDAzZWtyZWYsIHZob3N0X3Njc2lfZG9uZV9pbmZsaWdodCk7XG4xODY4Olx0XG4xODY5Olx0XHQvKiBGbHVzaCBib3RoIHRoZSB2aG9zdCBwb2xsIGFuZCB2aG9zdCB3b3JrICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NDgKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQcm9wb3NlZCBWaG9zdCBTQ1NJIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNhbGwgdG8gYHZob3N0X3Njc2lfZmx1c2hgIHdpdGhpbiB0aGUgYHZob3N0X3Njc2lfaW9jdGxgIGZ1bmN0aW9uLiBUaGlzIGNsZWFybHkgcmVwcmVzZW50cyBhIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCB3aGljaCBpcyB0aGUgbWFpbiBwb2ludCBvZiB0aGlzIHdob2xlIHRoaW5nLCBJIHN1cHBvc2UuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBoZXJlIGFyZSBgVkhPU1RfU0NTSWAgYW5kIGBUQVJHRVRfQ09SRWAsIHdoaWNoIGFyZSBjb21tb24gZm9yIFNDU0kgdGFyZ2V0cyBhbmQgdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzLCByZXNwZWN0aXZlbHkuCgpNeSBpbml0aWFsIGZvY3VzIG5lZWRzIHRvIGJlIG9uIGB2aG9zdF9zY3NpX2lvY3RsYC4gSSB3YW50IHRvIHF1aWNrbHkgdmVyaWZ5IGlmIGBWSE9TVGAgaXMgZXhwbGljaXRseSByZXF1aXJlZCBvciBpZiB0aGUgaW5jbHVzaW9uIGlzIHRocm91Z2ggYSBkZXBlbmRlbmN5LiBBaCwgYFZIT1NUX1NDU0lgICpzZWxlY3RzKiBgVkhPU1RgLCBzbyB0aGF0JiMzOTtzIGhhbmRsZWQuIE5vdywgbGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBkZXBlbmRlbmN5IG1ha2VzIHNlbnNlIHdpdGhpbiB0aGUgb3ZlcmFsbCBmcmFtZXdvcmssIEkmIzM5O2xsIHRha2UgYSBxdWljayBwZWVrIGF0IHRoZSBgZHJpdmVycy92aG9zdC9LY29uZmlnYCBmaWxlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVkhPU1RfU0NTSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmhvc3QvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3Zob3N0L0tjb25maWc9MzQ9Y29uZmlnIFZIT1NUX05FVFxuLS1cbmRyaXZlcnMvdmhvc3QvS2NvbmZpZy00NS1cbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0Njpjb25maWcgVkhPU1RfU0NTSVxuZHJpdmVycy92aG9zdC9LY29uZmlnLTQ3LVx0dHJpc3RhdGUgXCYjMzQ7VkhPU1RfU0NTSSBUQ00gZmFicmljIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTY5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIHRoZSB2aG9zdCBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB2aG9zdCBjb25maWd1cmF0aW9uIGEgYml0IGJldHRlciwgYW5kIGxpbmUgNDYgb2YgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2Agc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkmIzM5O20gaG9waW5nIHRvIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhpcyBzZWN0aW9uIG9mIHRoZSBrZXJuZWwgaXMgc2V0IHVwLiBUaW1lIHRvIHNlZSB3aGF0JiMzOTtzIHdoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA2OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy92aG9zdC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0MDpcdFx0ICBndWVzdCBuZXR3b3JraW5nIHdpdGggdmlydGlvX25ldC4gTm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggdmlydGlvX25ldFxuICA0MTpcdFx0ICBtb2R1bGUgaXRzZWxmIHdoaWNoIG5lZWRzIHRvIGJlIGxvYWRlZCBpbiBndWVzdCBrZXJuZWwuXG4gIDQyOlx0XG4gIDQzOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbFxuICA0NDpcdFx0ICBiZSBjYWxsZWQgdmhvc3RfbmV0LlxuICA0NTpcdFxuICA0NjpcdGNvbmZpZyBWSE9TVF9TQ1NJXG4gIDQ3Olx0XHR0cmlzdGF0ZSBcJiMzNDtWSE9TVF9TQ1NJIFRDTSBmYWJyaWMgZHJpdmVyXCYjMzQ7XG4gIDQ4Olx0XHRkZXBlbmRzIG9uIFRBUkdFVF9DT1JFIFx1MDAyNlx1MDAyNiBFVkVOVEZEXG4gIDQ5Olx0XHRzZWxlY3QgVkhPU1RcbiAgNTA6XHRcdHNlbGVjdCBTR19QT09MXG4gIDUxOlx0XHRkZWZhdWx0IG5cbiAgNTI6XHRcdGhlbHBcbiAgNTM6XHRcdFNheSBNIGhlcmUgdG8gZW5hYmxlIHRoZSB2aG9zdF9zY3NpIFRDTSBmYWJyaWMgbW9kdWxlXG4gIDU0Olx0XHRmb3IgdXNlIHdpdGggdmlydGlvLXNjc2kgZ3Vlc3RzXG4gIDU1Olx0XG4gIDU2Olx0Y29uZmlnIFZIT1NUX1ZTT0NLXG4gIDU3Olx0XHR0cmlzdGF0ZSBcJiMzNDt2aG9zdCB2aXJ0aW8tdnNvY2sgZHJpdmVyXCYjMzQ7XG4gIDU4Olx0XHRkZXBlbmRzIG9uIFZTT0NLRVRTIFx1MDAyNlx1MDAyNiBFVkVOVEZEXG4gIDU5Olx0XHRzZWxlY3QgVkhPU1RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDY6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjM5OQoJCQkJCQkJb3V0cHV0OiAxMDUKCQkJCQkJCXRob3VnaHRzOiA3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nLCBicmVha2luZyBkb3duIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkVuYWJsaW5nIFZIT1NUX1NDU0kgZm9yIFNDU0kgVGFyZ2V0IEZ1bmN0aW9uYWxpdHkqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4gTXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgdGhpcyBzZXR1cCBpcyB0aGF0IHNlbGVjdGluZyBgVkhPU1RfU0NTSWAgYWxzbyBhdXRvbWF0aWNhbGx5IGltcGxpZXMgc2VsZWN0aW5nIGJvdGggYFZIT1NUYCBhbmQgYFNHX1BPT0xgLiBHb29kLCBnb29kLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0OyBJIGRvbiYjMzk7dCBuZWVkIHRvIG1hbnVhbGx5IHZlcmlmeSB0aG9zZSBkZXBlbmRlbmNpZXMuIE5vdywgdG8gbWFrZSB0aGlzIHdvcmssIEkgbmVlZCB0byBlbnN1cmUgdGhhdCBib3RoIGBWSE9TVF9TQ1NJYCAqYW5kKiBgVEFSR0VUX0NPUkVgIGFyZSBhY3R1YWxseSBlbmFibGVkIGluIHRoZSBjb25maWd1cmF0aW9uLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4KCk5leHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBleHRlbnQgb2YgdGhpcyBjaGFuZ2UuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgZm9jdXMgaGVyZSBpcyBgdmhvc3Rfc2NzaV9pb2N0bGAuIExldCYjMzk7cyBjb25maXJtOiBJcyBgdmhvc3Rfc2NzaV9pb2N0bGAgdGhlICpvbmx5KiBmdW5jdGlvbiB0aGF0JiMzOTtzIGJlZW4gbW9kaWZpZWQgYXMgcGFydCBvZiB0aGlzIGltcGxlbWVudGF0aW9uPyAqQ2hlY2tpbmcuLi4gY2hlY2tpbmcuLi4qIFllcywgaXQgZG9lcyBhcHBlYXIgdG8gYmUuIE9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSByZWxhdGl2ZWx5IGNvbnRhaW5lZCBtb2RpZmljYXRpb24sIHdoaWNoIGdpdmVzIG1lIGEgY2xlYXJlciBoYW5kbGUgb24gdGhlIHNjb3BlIG9mIGNoYW5nZXMuCgpGaW5hbGx5LCBsZXQmIzM5O3MgY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwNjo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkhPU1RfU0NTSSYjMzQ7LAogICAgJiMzNDtUQVJHRVRfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gdmhvc3Rfc2NzaV9mbHVzaCgpIGluIHZob3N0X3Njc2lfaW9jdGwoKSBhZnRlciB2aG9zdF9kZXZfaW9jdGwoKSB0byBlbnN1cmUgdGhlIGJhY2tlbmQgaXMgZmx1c2hlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2aG9zdC1zY3NpIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VkhPU1RfU0NTSSYjMzQ7LAogICAgJiMzNDtUQVJHRVRfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Zob3N0X3Njc2lfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNhbGwgdG8gdmhvc3Rfc2NzaV9mbHVzaCgpIGluIHZob3N0X3Njc2lfaW9jdGwoKSBhZnRlciB2aG9zdF9kZXZfaW9jdGwoKSB0byBlbnN1cmUgdGhlIGJhY2tlbmQgaXMgZmx1c2hlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2aG9zdC1zY3NpIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjA5LjgxODI3NDEzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODYyNjgzNzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZIT1NUX1NDU0lcIixcbiAgICBcIlRBUkdFVF9DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmhvc3Rfc2NzaV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHZob3N0X3Njc2lfZmx1c2goKSBpbiB2aG9zdF9zY3NpX2lvY3RsKCkgYWZ0ZXIgdmhvc3RfZGV2X2lvY3RsKCkgdG8gZW5zdXJlIHRoZSBiYWNrZW5kIGlzIGZsdXNoZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmhvc3Qtc2NzaSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjA5LjgxODI4MDI1N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzY2Nzc3NjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjNjNmU3MzJjODg4M2I3ODQ1ZDQ0MmE1NTk1NDRkNTg1NDFiMjVlN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEF1ZyA0IDA2OjQ0OjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvc2NzaS5jIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcXG5pbmRleCA5YTEyNTNiOWQ4YzUwLi4zOTM3ZWI1MDEzMjRhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdmhvc3Qvc2NzaS5jXFxuKysrIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcXG5AQCAtMjQyNiw5ICsyNDI2LDEwIEBAIHZob3N0X3Njc2lfaW9jdGwoc3RydWN0IGZpbGUgKmYsXFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnZzLVxcdTAwM2VkZXYubXV0ZXgpO1xcbiBcXHRcXHRyID0gdmhvc3RfZGV2X2lvY3RsKFxcdTAwMjZ2cy1cXHUwMDNlZGV2LCBpb2N0bCwgYXJncCk7XFxuLVxcdFxcdC8qIFRPRE86IGZsdXNoIGJhY2tlbmQgYWZ0ZXIgZGV2IGlvY3RsLiAqL1xcbiBcXHRcXHRpZiAociA9PSAtRU5PSU9DVExDTUQpXFxuIFxcdFxcdFxcdHIgPSB2aG9zdF92cmluZ19pb2N0bChcXHUwMDI2dnMtXFx1MDAzZWRldiwgaW9jdGwsIGFyZ3ApO1xcbitcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdHZob3N0X3Njc2lfZmx1c2godnMpO1xcbiBcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNnZzLVxcdTAwM2VkZXYubXV0ZXgpO1xcbiBcXHRcXHRyZXR1cm4gcjtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDoxMC4xODU3NTY4MjZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0OTQ5NTE5Mjc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSE9TVF9TQ1NJXCIsXG4gICAgXCJUQVJHRVRfQ09SRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZob3N0X3Njc2lfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2FsbCB0byB2aG9zdF9zY3NpX2ZsdXNoKCkgaW4gdmhvc3Rfc2NzaV9pb2N0bCgpIGFmdGVyIHZob3N0X2Rldl9pb2N0bCgpIHRvIGVuc3VyZSB0aGUgYmFja2VuZCBpcyBmbHVzaGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZob3N0LXNjc2kgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2M2M2ZTczMmM4ODgzYjc4NDVkNDQyYTU1OTU0NGQ1ODU0MWIyNWU3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwNjo0NDowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvc2NzaS5jIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcbmluZGV4IDlhMTI1M2I5ZDhjNTAuLjM5MzdlYjUwMTMyNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Zob3N0L3Njc2kuY1xuKysrIGIvZHJpdmVycy92aG9zdC9zY3NpLmNcbkBAIC0yNDI2LDkgKzI0MjYsMTAgQEAgdmhvc3Rfc2NzaV9pb2N0bChzdHJ1Y3QgZmlsZSAqZixcbiBcdGRlZmF1bHQ6XG4gXHRcdG11dGV4X2xvY2soXHUwMDI2dnMtXHUwMDNlZGV2Lm11dGV4KTtcbiBcdFx0ciA9IHZob3N0X2Rldl9pb2N0bChcdTAwMjZ2cy1cdTAwM2VkZXYsIGlvY3RsLCBhcmdwKTtcbi1cdFx0LyogVE9ETzogZmx1c2ggYmFja2VuZCBhZnRlciBkZXYgaW9jdGwuICovXG4gXHRcdGlmIChyID09IC1FTk9JT0NUTENNRClcbiBcdFx0XHRyID0gdmhvc3RfdnJpbmdfaW9jdGwoXHUwMDI2dnMtXHUwMDNlZGV2LCBpb2N0bCwgYXJncCk7XG4rXHRcdGVsc2VcbitcdFx0XHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcbiBcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZzLVx1MDAzZWRldi5tdXRleCk7XG4gXHRcdHJldHVybiByO1xuIFx0fVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTAuMTg1NzU4MzM1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY4NTY3MDEyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBgdmhvc3Rfc2NzaS5jYCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYC4gSXQgc2VlbXMgdG8gbW9kaWZ5IHRoZSBgdmhvc3Rfc2NzaV9pb2N0bGAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYSBgdmhvc3Rfc2NzaV9mbHVzaCh2cylgIGNhbGwgYWZ0ZXIgYHZob3N0X2Rldl9pb2N0bGAgKmlmKiB0aGUgYHZob3N0X2Rldl9pb2N0bGAgY2FsbCBkb2Vzbid0IHJldHVybiBgLUVOT0lPQ1RMQ01EYC4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGJldHRlci5cblxuRmlyc3QsIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgYWN0dWFsbHkgcmVhY2hhYmxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb25zIGFyZSByZXF1aXJlZCB0byBnZXQgdGhhdCBmdW5jdGlvbiBpbmNsdWRlZC4gU2luY2UgdGhlIHJlbGV2YW50IGNvZGUgaXMgaW4gYGRyaXZlcnMvdmhvc3Qvc2NzaS5jYCwgSSdsbCBnbyBjaGVjayB0aGUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29udHJvbGxpbmcgdGhhdCBwYXJ0IG9mIHRoZSB2aG9zdCBzdWJzeXN0ZW0gd2lsbCBiZSBkZWZpbmVkLiBJJ2xsIG1ha2Ugc3VyZSB0byBub3RlIGRvd24gYW55IGRlcGVuZGVuY2llcyBvciByZWxldmFudCBLY29uZmlnIHN5bWJvbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwOTgsIk91dHB1dFRva2VucyI6MTAzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTQuODcxNDMwNTQzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxOTYwOTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZob3N0X3Njc2lfaW9jdGxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92aG9zdC9zY3NpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aG9zdC9zY3NpLmM9MTkxOT1zdGF0aWMgaW50IHZob3N0X3Njc2lfc2V0dXBfdnFfY21kcyhzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgaW50IG1heF9jbWRzKVxcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTk3My0vKlxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjE5NzQ6ICogQ2FsbGVkIGZyb20gdmhvc3Rfc2NzaV9pb2N0bCgpIGNvbnRleHQgdG8gd2FsayB0aGUgbGlzdCBvZiBhdmFpbGFibGVcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0xOTc1LSAqIHZob3N0X3Njc2lfdHBnIHdpdGggYW4gYWN0aXZlIHN0cnVjdCB2aG9zdF9zY3NpX25leHVzXFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMzYxPXN0YXRpYyBsb25nXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjM2Mjp2aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLFxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIzNjMtXFx0XFx0IHVuc2lnbmVkIGludCBpb2N0bCxcXG4tLVxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jPTI0Mzg9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmhvc3Rfc2NzaV9mb3BzID0ge1xcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQ0MC1cXHQucmVsZWFzZSAgICAgICAgPSB2aG9zdF9zY3NpX3JlbGVhc2UsXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjQ0MTpcXHQudW5sb2NrZWRfaW9jdGwgPSB2aG9zdF9zY3NpX2lvY3RsLFxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTI0NDItXFx0LmNvbXBhdF9pb2N0bFxcdD0gY29tcGF0X3B0cl9pb2N0bCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTQuOTMzMzk1MzYyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODc4NTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZob3N0X3Njc2lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92aG9zdC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3Zob3N0L01ha2VmaWxlPTM9dmhvc3RfbmV0LXkgOj0gbmV0Lm9cXG5kcml2ZXJzL3Zob3N0L01ha2VmaWxlLTQtXFxuZHJpdmVycy92aG9zdC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19WSE9TVF9TQ1NJKSArPSB2aG9zdF9zY3NpLm9cXG5kcml2ZXJzL3Zob3N0L01ha2VmaWxlOjY6dmhvc3Rfc2NzaS15IDo9IHNjc2kub1xcbmRyaXZlcnMvdmhvc3QvTWFrZWZpbGUtNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MTQuOTc1Mjc3NDlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI5MzU2ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmhvc3Rfc2NzaV9mbHVzaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Zob3N0L3Njc2kuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3Zob3N0L3Njc2kuYz0xODQ0PXN0YXRpYyB2b2lkIHZob3N0X3Njc2lfaGFuZGxlX2tpY2soc3RydWN0IHZob3N0X3dvcmsgKndvcmspXFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0xODUzLS8qIENhbGxlcnMgbXVzdCBob2xkIGRldiBtdXRleCAqL1xcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjE4NTQ6c3RhdGljIHZvaWQgdmhvc3Rfc2NzaV9mbHVzaChzdHJ1Y3Qgdmhvc3Rfc2NzaSAqdnMpXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMTg1NS17XFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0xOTgxPXZob3N0X3Njc2lfc2V0X2VuZHBvaW50KHN0cnVjdCB2aG9zdF9zY3NpICp2cyxcXG4tLVxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIwODQtXFx0ICovXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjA4NTpcXHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMDg2LVxcdHZzLVxcdTAwM2V2c190cGcgPSB2c190cGc7XFxuLS1cXG5kcml2ZXJzL3Zob3N0L3Njc2kuYz0yMTEzPXZob3N0X3Njc2lfY2xlYXJfZW5kcG9pbnQoc3RydWN0IHZob3N0X3Njc2kgKnZzLFxcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjE3MC1cXHQvKiBNYWtlIHN1cmUgY21kcyBhcmUgbm90IHJ1bm5pbmcgYmVmb3JlIHRlYXJpbmcgdGhlbSBkb3duLiAqL1xcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jOjIxNzE6XFx0dmhvc3Rfc2NzaV9mbHVzaCh2cyk7XFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjE3Mi1cXG4tLVxcbmRyaXZlcnMvdmhvc3Qvc2NzaS5jLTIyMDQtXFx0ICovXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjIwNTpcXHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yMjA2LVxcdGtmcmVlKHZzLVxcdTAwM2V2c190cGcpO1xcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmM9MjM2Mj12aG9zdF9zY3NpX2lvY3RsKHN0cnVjdCBmaWxlICpmLFxcbi0tXFxuZHJpdmVycy92aG9zdC9zY3NpLmMtMjQzMS1cXHRcXHRlbHNlXFxuZHJpdmVycy92aG9zdC9zY3NpLmM6MjQzMjpcXHRcXHRcXHR2aG9zdF9zY3NpX2ZsdXNoKHZzKTtcXG5kcml2ZXJzL3Zob3N0L3Njc2kuYy0yNDMzLVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnMtXFx1MDAzZWRldi5tdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjE1LjAxODIxODM2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MjYyNjk1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjYWxsIHRvIGB2aG9zdF9zY3NpX2ZsdXNoYCB3aXRoaW4gdGhlIGB2aG9zdF9zY3NpX2lvY3RsYCBmdW5jdGlvbi4gVGhhdCdzIGEga2V5IGRldGFpbCB0byB1bmRlcnN0YW5kLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRoYXQgZmx1c2hpbmcgb3BlcmF0aW9uIGVudGFpbHMgaW4gdGhpcyBjb250ZXh0LiBJdCBzZWVtcyBsaWtlIGl0J3MgY29ubmVjdGVkIHRvIGBDT05GSUdfVkhPU1RfU0NTSWAsIHdoaWNoIHByb2JhYmx5IG1lYW5zIHRoaXMgbmV3IGNvZGUgaXMgY29uZGl0aW9uYWwgb24gdGhhdCBjb25maWd1cmF0aW9uIG9wdGlvbiBiZWluZyBlbmFibGVkLiBUbyBmdWxseSBncmFzcCB0aGlzIGNoYW5nZSBhbmQgaXRzIGltcGxpY2F0aW9ucywgSSBuZWVkIHRvIHZlcmlmeSBob3cgYFZIT1NUX1NDU0lgIGlzIGRlZmluZWQgYW5kIHVzZWQuIEknbGwgcXVpY2tseSBjaGVjayB0aGUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2AgZmlsZS4gVGhhdCdsbCB0ZWxsIG1lIGlmIGBWSE9TVF9TQ1NJYCBpcyBhIG1vZHVsZSwgYnVpbHQtaW4sIG9yIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBtaWdodCBiZS4gV2l0aCB0aGlzIGluZm9ybWF0aW9uLCBJIGNhbiBhc3Nlc3MgdGhlIHNjb3BlIG9mIHRoaXMgbmV3IGNhbGwgYW5kIHRoZSBlbnZpcm9ubWVudHMgaW4gd2hpY2ggaXQgd2lsbCBiZSBhY3RpdmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MzAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiLCJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjE4Ljc0NDQ4OTcwNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjkxNjc4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJWSE9TVF9TQ1NJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdmhvc3QvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3Zob3N0L0tjb25maWc9MzQ9Y29uZmlnIFZIT1NUX05FVFxcbi0tXFxuZHJpdmVycy92aG9zdC9LY29uZmlnLTQ1LVxcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0Njpjb25maWcgVkhPU1RfU0NTSVxcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZzo0NzpcXHR0cmlzdGF0ZSBcXFwiVkhPU1RfU0NTSSBUQ00gZmFicmljIGRyaXZlclxcXCJcXG5kcml2ZXJzL3Zob3N0L0tjb25maWctNDgtXFx0ZGVwZW5kcyBvbiBUQVJHRVRfQ09SRSBcXHUwMDI2XFx1MDAyNiBFVkVOVEZEXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjE4Ljc4NzQxNjUwNVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTg1MjI0MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZXhwcmVzc2VkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OlxuXG4qKkRpZ2dpbmcgaW50byBDb25kaXRpb25hbCBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gd2UncmUgZGVhbGluZyB3aXRoIHNvbWV0aGluZyB3aG9zZSBiZWhhdmlvciBoaW5nZXMgb24gdGhlc2UgdHdvIGNydWNpYWwgY29uZmlndXJhdGlvbnM6IGBUQVJHRVRfQ09SRWAgYW5kIGBFVkVOVEZEYC4gTXkgZmlyc3Qgc3RlcCwgYXMgYWx3YXlzLCBpcyB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBTaW5jZSB3ZSdyZSBpbiB0aGUgZHJpdmVycyBkaXJlY3RvcnksIGFuZCBzcGVjaWZpY2FsbHkgdGFyZ2V0LXJlbGF0ZWQsIGl0IHNlZW1zIGxvZ2ljYWwgdGhhdCBgVEFSR0VUX0NPUkVgIGlzIHNvbWUgZnVuZGFtZW50YWwgc2V0dGluZyBmb3IgaG93IHRoZSB0YXJnZXQgZHJpdmVycyBhcmUgYnVpbHQgb3IgZW5hYmxlZC4gVG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiBob3cgdGhlc2UgdmFyaWFibGVzIGludGVycmVsYXRlLCBJIG5lZWQgdG8gY29uc3VsdCB0aGUgc291cmNlIG9mIHRydXRoIGZvciB0aGVpciBkZWZpbml0aW9ucyBhbmQgcG9zc2libGUgdmFsdWVzLiBMZXQncyBzdGFydCB3aXRoIGBUQVJHRVRfQ09SRWAuIEknbGwgaGVhZCBvdmVyIHRvIHRoZSBgZHJpdmVycy90YXJnZXQvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIHRoZSBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgYW5kIG9wdGlvbnMgZm9yIHRoZXNlIGFyZSB1c3VhbGx5IGRlZmluZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXBzIGFuZCBjb25zdHJhaW50cyBpbXBvc2VkIGJ5IHRoZXNlIHZhcmlhYmxlcyBiZWZvcmUgZHJhd2luZyBhbnkgY29uY2x1c2lvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTgsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDoyMi44NDU5NDE1MDFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MTg1ODM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlRBUkdFVF9DT1JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdGFyZ2V0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy90YXJnZXQvS2NvbmZpZy0yLVxcbmRyaXZlcnMvdGFyZ2V0L0tjb25maWc6MzptZW51Y29uZmlnIFRBUkdFVF9DT1JFXFxuZHJpdmVycy90YXJnZXQvS2NvbmZpZy00LVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIFRhcmdldCBDb3JlIE1vZCAoVENNKSBhbmQgQ29uZmlnRlMgSW5mcmFzdHJ1Y3R1cmVcXFwiXFxuLS1cXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTE1LVxcbmRyaXZlcnMvdGFyZ2V0L0tjb25maWc6MTY6aWYgVEFSR0VUX0NPUkVcXG5kcml2ZXJzL3RhcmdldC9LY29uZmlnLTE3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDoyMi44OTAxMzE2NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODU1NTQ1NTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBWaG9zdCBTQ1NJIERyaXZlcidzIEtleSBGdW5jdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgdmhvc3QgU0NTSSBkcml2ZXIsIGFuZCBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGNydWNpYWwgZWxlbWVudHMuICBGaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCBgVkhPU1RfU0NTSWAgYW5kIGBUQVJHRVRfQ09SRWAg4oCTIHRoZXNlIHNlZW0gZnVuZGFtZW50YWwuIE5vdywgd2hpY2ggZnVuY3Rpb24gc2hvdWxkIEkgZm9jdXMgb24/ICBNeSBpbml0aWFsIHRob3VnaHQgaXMgYHZob3N0X3Njc2lfaW9jdGxgLlxuXG5Ib2xkIG9uLi4uIEkgbmVlZCB0byBiZSBzdXJlIEknbSBwaWNraW5nIHRoZSByaWdodCB0aGluZy4gSSBzaG91bGQgZXhjbHVkZSBzdGF0aWMgZnVuY3Rpb25zIHRoYXQgYXJlIGxpa2VseSBpbmxpbmVkLiBgdmhvc3Rfc2NzaV9mbHVzaGAgaXMgc3RhdGljLCBzbyBJIGNvdWxkIHJlbW92ZSBpdCBmcm9tIGNvbnNpZGVyYXRpb24sIGJ1dCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgKmFsc28qIHN0YXRpYyEgQnV0IHdhaXQsIGl0J3MgYW4gaW9jdGwgaGFuZGxlciEgU28gaXQncyBzdGlsbCBhIGdvb2QgY2FuZGlkYXRlLlxuXG5JJ20gdGhpbmtpbmcgbm93IGFib3V0IHdoZXRoZXIgaXQgY291bGQgYmUgaW5saW5lZC4gSWYgaXQncyBzdGF0aWMsIGl0IGNvdWxkIGJlLiBMZXQgbWUgY2hlY2suLi4gQWgsIGJ1dCBpdCdzICphc3NpZ25lZCogdG8gYGZpbGVfb3BlcmF0aW9uc2AsIGxpa2UgYC51bmxvY2tlZF9pb2N0bCA9IHZob3N0X3Njc2lfaW9jdGxgLiBPa2F5LCB0aGlzIG1ha2VzIGFsbCB0aGUgZGlmZmVyZW5jZSEgSWYgaXRzIGFkZHJlc3MgaXMgdGFrZW4sIHRoZW4gaXQncyBub3QgaW5saW5lZCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEknbSBsb29raW5nIGZvci5cblxuSSdtIGNoZWNraW5nIHRoZSBpbnN0cnVjdGlvbnMgYW5kIHRoZXkgc2F5IHRvIHByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMuICpCdXQqLCBldmVuIHRob3VnaCBgdmhvc3Rfc2NzaV9pb2N0bGAgaXMgc3RhdGljLCBpdCdzIG5vdCBpbmxpbmVkIGJlY2F1c2UgaXRzIGFkZHJlc3MgaXMgdGFrZW4uIEV4Y2VsbGVudCwgaXQncyBhIGdvb2Qgb25lIHRvIGxpc3QhXG5cbkp1c3QgdG8gYmUgc3VyZSwgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIGZ1bmN0aW9ucy4gYHZob3N0X3Njc2lfZmx1c2hgIGlzIHN0YXRpYywgc28gaXQgKm1pZ2h0KiBiZSBpbmxpbmVkLiBJIGFtIGdvaW5nIHRvIGxpc3QgYHZob3N0X3Njc2lfaW9jdGxgLlxuXG5MZXQncyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gSXMganVzdCBgVkhPU1RfU0NTSWAgc3VmZmljaWVudD8gSXQgcmVsaWVzIG9uIGBUQVJHRVRfQ09SRWAgYW5kIGBFVkVOVEZEYC4gT2theSwgYFRBUkdFVF9DT1JFYCBpcyBgQ09ORklHX1RBUkdFVF9DT1JFYC4gU28sIGBWSE9TVF9TQ1NJYCBhbmQgYFRBUkdFVF9DT1JFYCBhcmUgdGhlIGtleSBkZXBlbmRlbmNpZXMuXG5cbkZpbmFsbHksIEknbGwgdGFrZSBhIHF1aWNrIGxvb2sgYXQgYHZob3N0X3Njc2lfZmx1c2hgIGluIGBkcml2ZXJzL3Zob3N0L3Njc2kuY2AganVzdCB0byBiZSBjZXJ0YWluLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjc5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjMwLjc0NTY4MDM2MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy92aG9zdC9zY3NpLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTg1MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTg1MDpcXHRcXHR2aG9zdF9zY3NpX2hhbmRsZV92cSh2cywgdnEpO1xcbjE4NTE6XFx0fVxcbjE4NTI6XFx0XFxuMTg1MzpcXHQvKiBDYWxsZXJzIG11c3QgaG9sZCBkZXYgbXV0ZXggKi9cXG4xODU0OlxcdHN0YXRpYyB2b2lkIHZob3N0X3Njc2lfZmx1c2goc3RydWN0IHZob3N0X3Njc2kgKnZzKVxcbjE4NTU6XFx0e1xcbjE4NTY6XFx0XFx0aW50IGk7XFxuMTg1NzpcXHRcXG4xODU4OlxcdFxcdC8qIEluaXQgbmV3IGluZmxpZ2h0IGFuZCByZW1lbWJlciB0aGUgb2xkIGluZmxpZ2h0ICovXFxuMTg1OTpcXHRcXHR2aG9zdF9zY3NpX2luaXRfaW5mbGlnaHQodnMsIHZzLVxcdTAwM2VvbGRfaW5mbGlnaHQpO1xcbjE4NjA6XFx0XFxuMTg2MTpcXHRcXHQvKlxcbjE4NjI6XFx0XFx0ICogVGhlIGluZmxpZ2h0LVxcdTAwM2VrcmVmIHdhcyBpbml0aWFsaXplZCB0byAxLiBXZSBkZWNyZW1lbnQgaXQgaGVyZSB0b1xcbjE4NjM6XFx0XFx0ICogaW5kaWNhdGUgdGhlIHN0YXJ0IG9mIHRoZSBmbHVzaCBvcGVyYXRpb24gc28gdGhhdCBpdCB3aWxsIHJlYWNoIDBcXG4xODY0OlxcdFxcdCAqIHdoZW4gYWxsIHRoZSByZXFzIGFyZSBmaW5pc2hlZC5cXG4xODY1OlxcdFxcdCAqL1xcbjE4NjY6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHZzLVxcdTAwM2VkZXYubnZxczsgaSsrKVxcbjE4Njc6XFx0XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZzLVxcdTAwM2VvbGRfaW5mbGlnaHRbaV0tXFx1MDAzZWtyZWYsIHZob3N0X3Njc2lfZG9uZV9pbmZsaWdodCk7XFxuMTg2ODpcXHRcXG4xODY5OlxcdFxcdC8qIEZsdXNoIGJvdGggdGhlIHZob3N0IHBvbGwgYW5kIHZob3N0IHdvcmsgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6MzAuNzQ1ODI3NTcyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTE4OTkwMjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgVmhvc3QgU0NTSSBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNhbGwgdG8gYHZob3N0X3Njc2lfZmx1c2hgIHdpdGhpbiB0aGUgYHZob3N0X3Njc2lfaW9jdGxgIGZ1bmN0aW9uLiBUaGlzIGNsZWFybHkgcmVwcmVzZW50cyBhIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCB3aGljaCBpcyB0aGUgbWFpbiBwb2ludCBvZiB0aGlzIHdob2xlIHRoaW5nLCBJIHN1cHBvc2UuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBoZXJlIGFyZSBgVkhPU1RfU0NTSWAgYW5kIGBUQVJHRVRfQ09SRWAsIHdoaWNoIGFyZSBjb21tb24gZm9yIFNDU0kgdGFyZ2V0cyBhbmQgdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzLCByZXNwZWN0aXZlbHkuXG5cbk15IGluaXRpYWwgZm9jdXMgbmVlZHMgdG8gYmUgb24gYHZob3N0X3Njc2lfaW9jdGxgLiBJIHdhbnQgdG8gcXVpY2tseSB2ZXJpZnkgaWYgYFZIT1NUYCBpcyBleHBsaWNpdGx5IHJlcXVpcmVkIG9yIGlmIHRoZSBpbmNsdXNpb24gaXMgdGhyb3VnaCBhIGRlcGVuZGVuY3kuIEFoLCBgVkhPU1RfU0NTSWAgKnNlbGVjdHMqIGBWSE9TVGAsIHNvIHRoYXQncyBoYW5kbGVkLiBOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgZGVwZW5kZW5jeSBtYWtlcyBzZW5zZSB3aXRoaW4gdGhlIG92ZXJhbGwgZnJhbWV3b3JrLCBJJ2xsIHRha2UgYSBxdWljayBwZWVrIGF0IHRoZSBgZHJpdmVycy92aG9zdC9LY29uZmlnYCBmaWxlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTQ4LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6NDAuODY0ODIwMTI1WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTIxODM3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVkhPU1RfU0NTSVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Zob3N0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aG9zdC9LY29uZmlnPTM0PWNvbmZpZyBWSE9TVF9ORVRcXG4tLVxcbmRyaXZlcnMvdmhvc3QvS2NvbmZpZy00NS1cXG5kcml2ZXJzL3Zob3N0L0tjb25maWc6NDY6Y29uZmlnIFZIT1NUX1NDU0lcXG5kcml2ZXJzL3Zob3N0L0tjb25maWctNDctXFx0dHJpc3RhdGUgXFxcIlZIT1NUX1NDU0kgVENNIGZhYnJpYyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjQwLjkxMDA0NjI2M1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk5NDQ4NzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gdGhlIHZob3N0IEtjb25maWcqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB2aG9zdCBjb25maWd1cmF0aW9uIGEgYml0IGJldHRlciwgYW5kIGxpbmUgNDYgb2YgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2Agc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEknbSBob3BpbmcgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGhvdyB0aGlzIHNlY3Rpb24gb2YgdGhlIGtlcm5lbCBpcyBzZXQgdXAuIFRpbWUgdG8gc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTY5LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDY6NDQ6NDQuODA5NDk3Njg1WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvdmhvc3QvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA0MDpcXHRcXHQgIGd1ZXN0IG5ldHdvcmtpbmcgd2l0aCB2aXJ0aW9fbmV0LiBOb3QgdG8gYmUgY29uZnVzZWQgd2l0aCB2aXJ0aW9fbmV0XFxuICA0MTpcXHRcXHQgIG1vZHVsZSBpdHNlbGYgd2hpY2ggbmVlZHMgdG8gYmUgbG9hZGVkIGluIGd1ZXN0IGtlcm5lbC5cXG4gIDQyOlxcdFxcbiAgNDM6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGxcXG4gIDQ0OlxcdFxcdCAgYmUgY2FsbGVkIHZob3N0X25ldC5cXG4gIDQ1OlxcdFxcbiAgNDY6XFx0Y29uZmlnIFZIT1NUX1NDU0lcXG4gIDQ3OlxcdFxcdHRyaXN0YXRlIFxcXCJWSE9TVF9TQ1NJIFRDTSBmYWJyaWMgZHJpdmVyXFxcIlxcbiAgNDg6XFx0XFx0ZGVwZW5kcyBvbiBUQVJHRVRfQ09SRSBcXHUwMDI2XFx1MDAyNiBFVkVOVEZEXFxuICA0OTpcXHRcXHRzZWxlY3QgVkhPU1RcXG4gIDUwOlxcdFxcdHNlbGVjdCBTR19QT09MXFxuICA1MTpcXHRcXHRkZWZhdWx0IG5cXG4gIDUyOlxcdFxcdGhlbHBcXG4gIDUzOlxcdFxcdFNheSBNIGhlcmUgdG8gZW5hYmxlIHRoZSB2aG9zdF9zY3NpIFRDTSBmYWJyaWMgbW9kdWxlXFxuICA1NDpcXHRcXHRmb3IgdXNlIHdpdGggdmlydGlvLXNjc2kgZ3Vlc3RzXFxuICA1NTpcXHRcXG4gIDU2OlxcdGNvbmZpZyBWSE9TVF9WU09DS1xcbiAgNTc6XFx0XFx0dHJpc3RhdGUgXFxcInZob3N0IHZpcnRpby12c29jayBkcml2ZXJcXFwiXFxuICA1ODpcXHRcXHRkZXBlbmRzIG9uIFZTT0NLRVRTIFxcdTAwMjZcXHUwMDI2IEVWRU5URkRcXG4gIDU5OlxcdFxcdHNlbGVjdCBWSE9TVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwNjo0NDo0NC44MDk1NTgxNTVaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ3NzM0NjEyMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nLCBicmVha2luZyBkb3duIHRoZSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRW5hYmxpbmcgVkhPU1RfU0NTSSBmb3IgU0NTSSBUYXJnZXQgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4gTXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgdGhpcyBzZXR1cCBpcyB0aGF0IHNlbGVjdGluZyBgVkhPU1RfU0NTSWAgYWxzbyBhdXRvbWF0aWNhbGx5IGltcGxpZXMgc2VsZWN0aW5nIGJvdGggYFZIT1NUYCBhbmQgYFNHX1BPT0xgLiBHb29kLCBnb29kLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0OyBJIGRvbid0IG5lZWQgdG8gbWFudWFsbHkgdmVyaWZ5IHRob3NlIGRlcGVuZGVuY2llcy4gTm93LCB0byBtYWtlIHRoaXMgd29yaywgSSBuZWVkIHRvIGVuc3VyZSB0aGF0IGJvdGggYFZIT1NUX1NDU0lgICphbmQqIGBUQVJHRVRfQ09SRWAgYXJlIGFjdHVhbGx5IGVuYWJsZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIFRoYXQncyB0aGUgYmFzZWxpbmUuXG5cbk5leHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBleHRlbnQgb2YgdGhpcyBjaGFuZ2UuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgZm9jdXMgaGVyZSBpcyBgdmhvc3Rfc2NzaV9pb2N0bGAuIExldCdzIGNvbmZpcm06IElzIGB2aG9zdF9zY3NpX2lvY3RsYCB0aGUgKm9ubHkqIGZ1bmN0aW9uIHRoYXQncyBiZWVuIG1vZGlmaWVkIGFzIHBhcnQgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbj8gKkNoZWNraW5nLi4uIGNoZWNraW5nLi4uKiBZZXMsIGl0IGRvZXMgYXBwZWFyIHRvIGJlLiBPa2F5LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSByZWxhdGl2ZWx5IGNvbnRhaW5lZCBtb2RpZmljYXRpb24sIHdoaWNoIGdpdmVzIG1lIGEgY2xlYXJlciBoYW5kbGUgb24gdGhlIHNjb3BlIG9mIGNoYW5nZXMuXG5cbkZpbmFsbHksIGxldCdzIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjM5OSwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA2OjQ0OjU5LjU4MzAyNDAwN1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3OTIyODU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSE9TVF9TQ1NJXCIsXG4gICAgXCJUQVJHRVRfQ09SRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZob3N0X3Njc2lfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2FsbCB0byB2aG9zdF9zY3NpX2ZsdXNoKCkgaW4gdmhvc3Rfc2NzaV9pb2N0bCgpIGFmdGVyIHZob3N0X2Rldl9pb2N0bCgpIHRvIGVuc3VyZSB0aGUgYmFja2VuZCBpcyBmbHVzaGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZob3N0LXNjc2kgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZIT1NUX1NDU0lcIixcbiAgICBcIlRBUkdFVF9DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmhvc3Rfc2NzaV9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjYWxsIHRvIHZob3N0X3Njc2lfZmx1c2goKSBpbiB2aG9zdF9zY3NpX2lvY3RsKCkgYWZ0ZXIgdmhvc3RfZGV2X2lvY3RsKCkgdG8gZW5zdXJlIHRoZSBiYWNrZW5kIGlzIGZsdXNoZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmhvc3Qtc2NzaSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[1] Phase: Succeeded StartedAt: 2026-08-04 06:45:43 +0000 UTC FinishedAt: 2026-08-04 06:45:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-04 06:45:43 +0000 UTC FinishedAt: 2026-08-04 06:45:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2] Phase: Succeeded StartedAt: 2026-08-04 06:45:43 +0000 UTC FinishedAt: 2026-08-04 08:06:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-04 06:45:43 +0000 UTC FinishedAt: 2026-08-04 08:06:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-04 06:45:43 +0000 UTC FinishedAt: 2026-08-04 06:46:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 06:45:43 +0000 UTC FinishedAt: 2026-08-04 06:45:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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-workflowwqqtw/series-workflowwqqtw-convert-artifact-1931818133/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-04 06:46:04 +0000 UTC FinishedAt: 2026-08-04 07:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 06:46:04 +0000 UTC FinishedAt: 2026-08-04 07:06:06 +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:*18a4b2a3-d01d-4ada-b422-c157b12c636d,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-workflowwqqtw/series-workflowwqqtw-convert-artifact-1931818133/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": "6101980d-e6b2-4283-ab94-6eba6da89d07", "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-workflowwqqtw/series-workflowwqqtw-build-action-2883947771/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 06:46:04 +0000 UTC FinishedAt: 2026-08-04 07:05:56 +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:*18a4b2a3-d01d-4ada-b422-c157b12c636d,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-workflowwqqtw/series-workflowwqqtw-convert-artifact-1931818133/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": "6101980d-e6b2-4283-ab94-6eba6da89d07", "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-workflowwqqtw/series-workflowwqqtw-build-action-2883947771/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-04 07:06:06 +0000 UTC FinishedAt: 2026-08-04 07:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:06:06 +0000 UTC FinishedAt: 2026-08-04 07:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-04 07:06:06 +0000 UTC FinishedAt: 2026-08-04 07:06:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:06:06 +0000 UTC FinishedAt: 2026-08-04 07:06:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-workflowwqqtw/series-workflowwqqtw-convert-artifact-791491184/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-04 07:06:16 +0000 UTC FinishedAt: 2026-08-04 07:08:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:06:16 +0000 UTC FinishedAt: 2026-08-04 07:08:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6101980d-e6b2-4283-ab94-6eba6da89d07,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-workflowwqqtw/series-workflowwqqtw-build-action-2883947771/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-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-04 07:08:25 +0000 UTC FinishedAt: 2026-08-04 07:08:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:08:25 +0000 UTC FinishedAt: 2026-08-04 07:08:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-04 07:08:25 +0000 UTC FinishedAt: 2026-08-04 07:29:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:08:25 +0000 UTC FinishedAt: 2026-08-04 07:29:52 +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:*18a4b2a3-d01d-4ada-b422-c157b12c636d,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-workflowwqqtw/series-workflowwqqtw-convert-artifact-791491184/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": "fe0cc1ce-8e44-4802-8d7e-b5eda4f89eba", "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-workflowwqqtw/series-workflowwqqtw-build-action-3216479084/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:08:25 +0000 UTC FinishedAt: 2026-08-04 07:29:42 +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:*18a4b2a3-d01d-4ada-b422-c157b12c636d,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-workflowwqqtw/series-workflowwqqtw-convert-artifact-791491184/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": "fe0cc1ce-8e44-4802-8d7e-b5eda4f89eba", "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-workflowwqqtw/series-workflowwqqtw-build-action-3216479084/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-04 07:29:52 +0000 UTC FinishedAt: 2026-08-04 07:29:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:29:52 +0000 UTC FinishedAt: 2026-08-04 07:29:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-04 07:29:52 +0000 UTC FinishedAt: 2026-08-04 07:32:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:29:52 +0000 UTC FinishedAt: 2026-08-04 07:31:57 +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:*fe0cc1ce-8e44-4802-8d7e-b5eda4f89eba,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-workflowwqqtw/series-workflowwqqtw-build-action-3216479084/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-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 08:06:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 08:06:15 +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":["vhost_scsi_ioctl"],"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:*6101980d-e6b2-4283-ab94-6eba6da89d07,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fe0cc1ce-8e44-4802-8d7e-b5eda4f89eba,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-workflowwqqtw/series-workflowwqqtw-build-action-2883947771/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-workflowwqqtw/series-workflowwqqtw-build-action-3216479084/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 07:32:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 07:32:12 +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":["vhost_scsi_ioctl"],"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-workflowwqqtw/series-workflowwqqtw-convert-artifact-4041277929/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 07:32:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 07:32:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:07 +0000 UTC FinishedAt: 2026-08-04 07:32:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:17 +0000 UTC FinishedAt: 2026-08-04 08:06:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwqqtw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"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":["vhost_scsi_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["VHOST_SCSI","TARGET_CORE"],"series_id":"d357ef81-0005-477f-bcc2-91c9d687ef89","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-08-04 07:32:17 +0000 UTC FinishedAt: 2026-08-04 08:06:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6101980d-e6b2-4283-ab94-6eba6da89d07,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fe0cc1ce-8e44-4802-8d7e-b5eda4f89eba,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-workflowwqqtw/series-workflowwqqtw-build-action-2883947771/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-workflowwqqtw/series-workflowwqqtw-build-action-3216479084/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-workflowwqqtw/series-workflowwqqtw-convert-artifact-4041277929/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,}