Name: series-workflowhdd28 Phase: Succeeded StartedAt: 2026-07-18 04:53:12 +0000 UTC FinishedAt: 2026-07-18 06:36:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[0] Phase: Succeeded StartedAt: 2026-07-18 04:53:12 +0000 UTC FinishedAt: 2026-07-18 05:10:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[0].run-triage Phase: Succeeded StartedAt: 2026-07-18 04:53:12 +0000 UTC FinishedAt: 2026-07-18 05:10:48 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "aia_init" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FpYV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBhaWFfaW5pdGAgZm9yIEtWTSBSSVNDLVYgQUlBIGRldmljZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTI4NWEyM2I3M2ZlMDlmMmU1YzFhZGNiOWYwMjRiOWRjZTQ2NDI1ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDE4IDA1OjEwOjE1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1xuaW5kZXggYmU4M2MyZDVmYzMwOGMuLjA3OTNkNGQ0Y2Y1ZTNhIDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcbkBAIC0yNDgsNiAmIzQzOzI0OCwxMiBAQCBzdGF0aWMgaW50IGFpYV9pbml0KHN0cnVjdCBrdm0gKmt2bSlcbiBcdGlmIChhaWEtXHUwMDNlbnJfc291cmNlcyBcdTAwMjZcdTAwMjYgYWlhLVx1MDAzZWFwbGljX2FkZHIgPT0gS1ZNX1JJU0NWX0FJQV9VTkRFRl9BRERSKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiYjNDM7XHQvKiBHcm91cCBpbmRleCBiaXRzIG11c3Qgbm90IG92ZXJsYXAgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gKi9cbiYjNDM7XHRpZiAoYWlhLVx1MDAzZW5yX2dyb3VwX2JpdHMgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIGFpYS1cdTAwM2Vucl9ncm91cF9zaGlmdCBcdTAwM2MgSU1TSUNfTU1JT19QQUdFX1NISUZUICYjNDM7XG4mIzQzO1x0XHRcdFx0XHQgIGFpYS1cdTAwM2Vucl9ndWVzdF9iaXRzICYjNDM7IGFpYS1cdTAwM2Vucl9oYXJ0X2JpdHMpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XG4gXHQvKiBJbml0aWFsaXplIEFQTElDICovXG4gXHRyZXQgPSBrdm1fcmlzY3ZfYWlhX2FwbGljX2luaXQoa3ZtKTtcbiBcdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWlhX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGEyODVhMjNiNzNmZTA5ZjJlNWMxYWRjYjlmMDI0YjlkY2U0NjQyNWYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1bCAxOCAwNToxMDoxNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYwppbmRleCBiZTgzYzJkNWZjMzA4Yy4uMDc5M2Q0ZDRjZjVlM2EgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMKQEAgLTI0OCw2ICYjNDM7MjQ4LDEyIEBAIHN0YXRpYyBpbnQgYWlhX2luaXQoc3RydWN0IGt2bSAqa3ZtKQogCWlmIChhaWEtJmd0O25yX3NvdXJjZXMgJmFtcDsmYW1wOyBhaWEtJmd0O2FwbGljX2FkZHIgPT0gS1ZNX1JJU0NWX0FJQV9VTkRFRl9BRERSKQogCQlyZXR1cm4gLUVJTlZBTDsKIAomIzQzOwkvKiBHcm91cCBpbmRleCBiaXRzIG11c3Qgbm90IG92ZXJsYXAgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gKi8KJiM0MzsJaWYgKGFpYS0mZ3Q7bnJfZ3JvdXBfYml0cyAmYW1wOyZhbXA7CiYjNDM7CSAgICBhaWEtJmd0O25yX2dyb3VwX3NoaWZ0ICZsdDsgSU1TSUNfTU1JT19QQUdFX1NISUZUICYjNDM7CiYjNDM7CQkJCQkgIGFpYS0mZ3Q7bnJfZ3Vlc3RfYml0cyAmIzQzOyBhaWEtJmd0O25yX2hhcnRfYml0cykKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwogCS8qIEluaXRpYWxpemUgQVBMSUMgKi8KIAlyZXQgPSBrdm1fcmlzY3ZfYWlhX2FwbGljX2luaXQoa3ZtKTsKIAlpZiAocmV0KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTE2CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJJU0MtViBLVk0gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNgLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGV5JiMzOTtyZSBhZGRpbmcgYSBjaGVjayBpbiBgYWlhX2luaXRgLiBTcGVjaWZpY2FsbHksIGl0IG1ha2VzIHN1cmUgdGhlIGdyb3VwIGluZGV4IGJpdHMgZG9uJiMzOTt0IG92ZXJsYXAgd2l0aCB0aGUgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgS1ZNIGxheWVyLCBzcGVjaWZpY2FsbHkgZm9yIFJJU0MtVi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZD8gR2l2ZW4gdGhhdCBpdCYjMzk7cyBLVk0gY29kZSwgYW5kIHdlIGhhdmUgc3l6a2FsbGVyIHNldCB1cCB0byBmdXp6IEtWTSBvbiBSSVNDLVYsIHRoZSBhbnN3ZXIgaXMgbGlrZWx5IHllcy4gU3l6a2FsbGVyIGRlZmluaXRlbHkgKmNhbiogZnV6eiBLVk0gb24gUklTQy1WLCByaWdodD8gT3IgYXQgbGVhc3QgaXQgaXMgYSBmZWF0dXJlIHRoYXQgaXMgZGVmaW5pdGVseSB3aXRoaW4gdGhlIHJlYWxtcyBvZiBzeXprYWxsZXImIzM5O3MgY2FwYWJpbGl0aWVzLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgYXJlIHRoZXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBJIGtub3cgdGhlIGZpbGUgaXMgYGFpYV9kZXZpY2UuY2AsIHNvIEkmIzM5O2xsIGNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYCBvciB0aGUgYE1ha2VmaWxlYCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIHRlbGwgbWUgaWYgdGhlcmUgYXJlIGFueSBLY29uZmlnIG9wdGlvbnMgb3IgYnVpbGQgZmxhZ3MgdGhhdCBuZWVkIHRvIGJlIHNldCBmb3IgdGhpcyBzcGVjaWZpYyBwYXJ0IG9mIEtWTSB0byBiZSBmdXp6ZWQgZWZmZWN0aXZlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YWlhX2RldmljZS5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL01ha2VmaWxlPTE0PWt2bS15ICYjNDM7PSBhaWFfYXBsaWMub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6MTU6a3ZtLXkgJiM0Mzs9IGFpYV9kZXZpY2Uub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUtMTYta3ZtLXkgJiM0Mzs9IGFpYV9pbXNpYy5vXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhLmM9NjUxPWludCBrdm1fcmlzY3ZfYWlhX2luaXQodm9pZClcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWEuYy02NzYtXHQvKiBSZWdpc3RlciBkZXZpY2Ugb3BlcmF0aW9ucyAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhLmM6Njc3Olx0cmMgPSBrdm1fcmVnaXN0ZXJfZGV2aWNlX29wcyhcdTAwMjZrdm1fcmlzY3ZfYWlhX2RldmljZV9vcHMsXG5hcmNoL3Jpc2N2L2t2bS9haWEuYy02NzgtXHRcdFx0XHQgICAgIEtWTV9ERVZfVFlQRV9SSVNDVl9BSUEpO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz00NDg9c3RhdGljIGludCBhaWFfaGFzX2F0dHIoc3RydWN0IGt2bV9kZXZpY2UgKmRldiwgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNDkyLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjQ5MzpzdHJ1Y3Qga3ZtX2RldmljZV9vcHMga3ZtX3Jpc2N2X2FpYV9kZXZpY2Vfb3BzID0ge1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTQ5NC1cdC5uYW1lID0gXCYjMzQ7a3ZtLXJpc2N2LWFpYVwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODMzCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgS1ZNIENvbXBpbGF0aW9uIG9uIFJJU0MtVioqCgpBbHJpZ2h0LCBzbyB0aGUgY2x1ZSBpcyB0aGF0IHRoZSBmaWxlIG9ubHkgZ2V0cyBidWlsdCB3aGVuIGBDT05GSUdfS1ZNYCBpcyBkZWZpbmVkIGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gc2NlbmFyaW8uIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGlzIGNvbnRleHQsIGlzIHRvIHRyYWNrIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZyBpdHNlbGYuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoYXQgYENPTkZJR19LVk1gIG1hY3JvIGlzIGFjdHVhbGx5IGRlZmluZWQgZm9yIFJJU0MtVi4gSXMgaXQgaW4gdGhlIG1haW4ga2VybmVsIGNvbmZpZ3VyYXRpb24sIG9yIHNwZWNpZmljIHRvIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIG9wdGlvbnM/IExpa2VseSwgaXQmIzM5O3Mgc29tZXRoaW5nIEkgY2FuIGZpbmQgd2l0aGluIHRoZSBidWlsZCBzeXN0ZW0mIzM5O3MgY29uZmlndXJhdGlvbiBmaWxlcywgcHJvYmFibHkgd2l0aGluIHRoZSBrZXJuZWwgc291cmNlIHRyZWUgaXRzZWxmLiBJJiMzOTtsbCBuZWVkIHRvIGxvY2F0ZSB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGVzLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWNsYXJlZC4gSSBleHBlY3QgdG8gYmUgYWJsZSB0byBmaW5kIHRoZSBkZXBlbmRlbmN5IGNoYWluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIHdoYXQgbWFrZXMgYENPTkZJR19LVk1gIGdldCBkZWZpbmVkLCBhbmQgaW4gdHVybiwgZW5hYmxlIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgZmlsZS4gVGltZSB0byBkaXZlIGludG8gdGhlIHNvdXJjZSBhbmQgdHJhY2sgZG93biB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNIGFuZCBSSVNDLVYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEtWTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIzNQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS1ZNIENvbmZpZ3VyYXRpb24gZm9yIFJJU0MtViBBcmNoaXRlY3R1cmUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBDT05GSUdfS1ZNYCDigJMgdGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludC4gVGhlIHNwZWNpZmljIGZ1bmN0aW9uIEkmIzM5O20gZm9jdXNpbmcgb24gaXMgYGFpYV9pbml0YC4gTGV0JiMzOTtzIGRpdmUgcmlnaHQgaW50byB0aGUgY29kZSB0byBzZWUgd2hhdCYjMzk7cyBoYXBwZW5pbmcgdGhlcmUuIEkgbmVlZCB0byBleGFtaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgYWlhX2luaXRgIHdpdGhpbiB0aGUgYGFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY2AgZmlsZS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgYW5kIHVuZGVyc3RhbmQgdGhlIGludHJpY2FjaWVzIG9mIHRoZSBBSUEgaW5pdGlhbGl6YXRpb24gd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQgZm9yIFJJU0MtVi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgbmVlZCB0byBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FpYV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01MT1zdGF0aWMgaW50IGFpYV9jb25maWcoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBsb25nIHR5cGUsXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU2LVx0LyogV3JpdGVzIGNhbiBvbmx5IGJlIGRvbmUgYmVmb3JlIGlycWNoaXAgaXMgaW5pdGlhbGl6ZWQgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1NzpcdGlmICh3cml0ZSBcdTAwMjZcdTAwMjYga3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz0xNDU9c3RhdGljIGludCBhaWFfYXBsaWNfYWRkcihzdHJ1Y3Qga3ZtICprdm0sIHU2NCAqYWRkciwgYm9vbCB3cml0ZSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMTUwLVx0XHQvKiBXcml0ZXMgY2FuIG9ubHkgYmUgZG9uZSBiZWZvcmUgaXJxY2hpcCBpcyBpbml0aWFsaXplZCAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjE1MTpcdFx0aWYgKGt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0xNTItXHRcdFx0cmV0dXJuIC1FQlVTWTtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9MTY0PXN0YXRpYyBpbnQgYWlhX2ltc2ljX2FkZHIoc3RydWN0IGt2bSAqa3ZtLCB1NjQgKmFkZHIsXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTE3Ni1cdFx0LyogV3JpdGVzIGNhbiBvbmx5IGJlIGRvbmUgYmVmb3JlIGlycWNoaXAgaXMgaW5pdGlhbGl6ZWQgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoxNzc6XHRcdGlmIChrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMTc4LVx0XHRcdHJldHVybiAtRUJVU1k7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTIxMj1zdGF0aWMgdTMyIGFpYV9pbXNpY19oYXJ0X2luZGV4KHN0cnVjdCBrdm1fYWlhICphaWEsIGdwYV90IGFkZHIpXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTIyNS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoyMjY6c3RhdGljIGludCBhaWFfaW5pdChzdHJ1Y3Qga3ZtICprdm0pXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjI3LXtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjM1LVx0LyogSXJxY2hpcCBjYW4gYmUgaW5pdGlhbGl6ZWQgb25seSBvbmNlICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6MjM2Olx0aWYgKGt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0yMzctXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTMwNj1zdGF0aWMgaW50IGFpYV9zZXRfYXR0cihzdHJ1Y3Qga3ZtX2RldmljZSAqZGV2LCBzdHJ1Y3Qga3ZtX2RldmljZV9hdHRyICphdHRyKVxuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0zNDMtXHRcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNla3ZtLVx1MDAzZWxvY2spO1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjM0NDpcdFx0XHRyID0gYWlhX2luaXQoZGV2LVx1MDAzZWt2bSk7XG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMzQ1LVx0XHRcdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNla3ZtLVx1MDAzZWxvY2spO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01MDI9aW50IGt2bV9yaXNjdl92Y3B1X2FpYV91cGRhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MDQtXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1MDU6XHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQodmNwdS1cdTAwM2Vrdm0pKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUwNi1cdFx0cmV0dXJuIDE7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTUxMj12b2lkIGt2bV9yaXNjdl92Y3B1X2FpYV9yZXNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUyMC1cdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjUyMTpcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZCh2Y3B1LVx1MDAzZWt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTIyLVx0XHRyZXR1cm47XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUyNy1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1Mjg6dm9pZCBrdm1fcmlzY3ZfdmNwdV9haWFfaW5pdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTI5LXtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTM4LVx0ICpcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1Mzk6XHQgKiBSZWZlciwgYWlhX2luaXQoKSBpbXBsZW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU0MC1cdCAqL1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01NDc9dm9pZCBrdm1fcmlzY3ZfdmNwdV9haWFfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTQ5LVx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTUwOlx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKHZjcHUtXHUwMDNla3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01NTEtXHRcdHJldHVybjtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NTU3PWludCBrdm1fcmlzY3ZfYWlhX2luamVjdF9tc2lfYnlfaWQoc3RydWN0IGt2bSAqa3ZtLCB1MzIgaGFydF9pbmRleCxcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTYzLVx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTY0Olx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTY1LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01Nzg9aW50IGt2bV9yaXNjdl9haWFfaW5qZWN0X21zaShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbXNpICptc2kpXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4Ny1cdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjU4ODpcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4OS1cdFx0cmV0dXJuIC1FQlVTWTtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NjEyPWludCBrdm1fcmlzY3ZfYWlhX2luamVjdF9pcnEoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBpbnQgaXJxLCBib29sIGxldmVsKVxuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MTQtXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MTU6XHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MTYtXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYyMS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MjI6dm9pZCBrdm1fcmlzY3ZfYWlhX2luaXRfdm0oc3RydWN0IGt2bSAqa3ZtKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYyMy17XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYzMi1cdCAqXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NjMzOlx0ICogUmVmZXIsIGFpYV9pbml0KCkgaW1wbGVtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MzQtXHQgKi9cbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NjQ4PXZvaWQga3ZtX3Jpc2N2X2FpYV9kZXN0cm95X3ZtKHN0cnVjdCBrdm0gKmt2bSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjUwLVx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NjUxOlx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjUyLVx0XHRyZXR1cm47XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTUyMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBzZWUgYSBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXQuIFRoZSBmdW5jdGlvbiBgYWlhX2luaXRgIGdldHMgY2FsbGVkIGZyb20gYGFpYV9zZXRfYXR0cmAuIGBhaWFfc2V0X2F0dHJgIGlzIHBhcnQgb2YgdGhlIGBrdm1fcmlzY3ZfYWlhX2RldmljZV9vcHNgIHN0cnVjdHVyZS4gVGhhdCB0ZWxscyBtZSB0aGlzIGlzIGEgS1ZNIGRldmljZSBhdHRyaWJ1dGUgc2V0dGVyLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfREVWSUNFX0FUVFJgIGlvY3RsIG9uIGEgS1ZNIGRldmljZSBvZiB0eXBlIGBLVk1fREVWX1RZUEVfUklTQ1ZfQUlBYC4gVGhhdCBpb2N0bCBpbnRlcmFjdGlvbiBpcyB0aGUganVpY3kgYml0IOKAkyBkZWZpbml0ZWx5IGZ1enphYmxlLgoKTXkgcHJpbWFyeSBmb2N1cyBmb3IgZnV6emluZyBzaG91bGQgYmUgZWl0aGVyIGBhaWFfaW5pdGAgb3IgYGFpYV9zZXRfYXR0cmAsIHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIHRvIHN0YXJ0LiBOb3csIGJlZm9yZSBJIGp1bXAgaW4sIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIGFsbCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zIGVuYWJsZWQgdG8gaGl0IHRoaXMgY29kZSBwYXRoLiBPYnZpb3VzbHksIGBDT05GSUdfS1ZNYCBpcyBjcnVjaWFsLCB0aGF0IGdvZXMgd2l0aG91dCBzYXlpbmcuIEkgbmVlZCB0byBkaWcgZGVlcGVyIGZvciBhbnkgUklTQy1WIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IHRoaXMuIFRpbWUgdG8gZG91YmxlLWNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYCBhZ2FpbiB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0c291cmNlIFwmIzM0O3ZpcnQva3ZtL0tjb25maWdcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXG4gICA5Olx0XHRib29sIFwmIzM0O1ZpcnR1YWxpemF0aW9uXCYjMzQ7XG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXG4gIDEyOlx0XHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxuICAxNDpcdFxuICAxNTpcdFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXG4gIDE2Olx0XHQgIGRpc2FibGVkLlxuICAxNzpcdFxuICAxODpcdGlmIFZJUlRVQUxJWkFUSU9OXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEtWTVxuICAyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIFJJU0NWX1NCSSBcdTAwMjZcdTAwMjYgTU1VXG4gIDIzOlx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxuICAyNDpcdFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXG4gIDI1Olx0XHRzZWxlY3QgSEFWRV9LVk1fTVNJXG4gIDI2Olx0XHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXG4gIDI3Olx0XHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXG4gIDI4Olx0XHRzZWxlY3QgS1ZNX0NPTU1PTlxuICAyOTpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxuICAzMDpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXG4gIDMxOlx0XHRzZWxlY3QgS1ZNX01NSU9cbiAgMzI6XHRcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xuICAzMzpcdFx0c2VsZWN0IFNDSEVEX0lORk9cbiAgMzQ6XHRcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xuICAzNTpcdFx0aGVscFxuICAzNjpcdFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMuXG4gIDM3Olx0XG4gIDM4Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDM5Olx0XG4gIDQwOlx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTAzCgkJCQkJCQlvdXRwdXQ6IDc2CgkJCQkJCQl0aG91Z2h0czogODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS1ZNIGFuZCBBSUEgSW5pdGlhbGl6YXRpb246IEEgRnV6emluZyBUYXJnZXQqKgoKT2theSwgc28gdGhlIGNvbmZpZyBoZXJlIGlzIGRlZmluaXRlbHkgYEtWTWAuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLiBNeSBmb2N1cywgdGhvdWdoLCBpcyBvbiB0aGUgYGFpYV9pbml0YCBzeW1ib2wuIFRoZSByZWFzb24gaXMgcHJldHR5IGNsZWFyIOKAkyB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgdmFsaWRhdGlvbiBjaGVjayAqd2l0aGluKiBgYWlhX2luaXRgLCBhbmQgY3JpdGljYWxseSwgdGhpcyBgYWlhX2luaXRgIGZ1bmN0aW9uIGlzIGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBLVk0gaW9jdGxzLiBUaGF0IG1ha2VzIGl0IGEgcGVyZmVjdCB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGNhbiBwb2tlIGF0IGl0IGFuZCBzZWUgaWYgd2UgY2FuIHRyaWdnZXIgYW55IGlzc3VlcyBub3cgdGhhdCB0aGUgcGF0Y2ggaXMgaW4gcGxhY2UuIFRoZXJlZm9yZSwgSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYC4gIFdl4oCZcmUgZW5hYmxpbmcgZnV6emluZyBmb3IgdGhlIGBLVk1gIGNvbmZpZywgYW5kIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGBhaWFfaW5pdGAgc3ltYm9sLiBUaGlzIHNlZW1zIGxpa2UgYSBwcm9taXNpbmcgcGF0aCB0byB1bmNvdmVyIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMgaW4gdGhlIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgS1ZNIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWlhX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FpYV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBhaWFfaW5pdGAgZm9yIEtWTSBSSVNDLVYgQUlBIGRldmljZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MTYuNjIxMjgwNzgxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkzODk4OTU1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYWlhX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgYWlhX2luaXRgIGZvciBLVk0gUklTQy1WIEFJQSBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgS1ZNIGlvY3Rscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MTYuNjIxMjg1NDQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTU1NTk2NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhMjg1YTIzYjczZmUwOWYyZTVjMWFkY2I5ZjAyNGI5ZGNlNDY0MjVmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVsIDE4IDA1OjEwOjE1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1xcbmluZGV4IGJlODNjMmQ1ZmMzMDhjLi4wNzkzZDRkNGNmNWUzYSAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcXG4rKysgYi9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcXG5AQCAtMjQ4LDYgKzI0OCwxMiBAQCBzdGF0aWMgaW50IGFpYV9pbml0KHN0cnVjdCBrdm0gKmt2bSlcXG4gXFx0aWYgKGFpYS1cXHUwMDNlbnJfc291cmNlcyBcXHUwMDI2XFx1MDAyNiBhaWEtXFx1MDAzZWFwbGljX2FkZHIgPT0gS1ZNX1JJU0NWX0FJQV9VTkRFRl9BRERSKVxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuK1xcdC8qIEdyb3VwIGluZGV4IGJpdHMgbXVzdCBub3Qgb3ZlcmxhcCBndWVzdCBhbmQgSEFSVCBpbmRleCBiaXRzLiAqL1xcbitcXHRpZiAoYWlhLVxcdTAwM2Vucl9ncm91cF9iaXRzIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBhaWEtXFx1MDAzZW5yX2dyb3VwX3NoaWZ0IFxcdTAwM2MgSU1TSUNfTU1JT19QQUdFX1NISUZUICtcXG4rXFx0XFx0XFx0XFx0XFx0ICBhaWEtXFx1MDAzZW5yX2d1ZXN0X2JpdHMgKyBhaWEtXFx1MDAzZW5yX2hhcnRfYml0cylcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcbiBcXHQvKiBJbml0aWFsaXplIEFQTElDICovXFxuIFxcdHJldCA9IGt2bV9yaXNjdl9haWFfYXBsaWNfaW5pdChrdm0pO1xcbiBcXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoxNy40MTc1NzI3OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4NTkzNTk1ODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFpYV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTI4NWEyM2I3M2ZlMDlmMmU1YzFhZGNiOWYwMjRiOWRjZTQ2NDI1ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDE4IDA1OjEwOjE1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jIGIvYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jXG5pbmRleCBiZTgzYzJkNWZjMzA4Yy4uMDc5M2Q0ZDRjZjVlM2EgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1xuQEAgLTI0OCw2ICsyNDgsMTIgQEAgc3RhdGljIGludCBhaWFfaW5pdChzdHJ1Y3Qga3ZtICprdm0pXG4gXHRpZiAoYWlhLVx1MDAzZW5yX3NvdXJjZXMgXHUwMDI2XHUwMDI2IGFpYS1cdTAwM2VhcGxpY19hZGRyID09IEtWTV9SSVNDVl9BSUFfVU5ERUZfQUREUilcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4rXHQvKiBHcm91cCBpbmRleCBiaXRzIG11c3Qgbm90IG92ZXJsYXAgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gKi9cbitcdGlmIChhaWEtXHUwMDNlbnJfZ3JvdXBfYml0cyBcdTAwMjZcdTAwMjZcbitcdCAgICBhaWEtXHUwMDNlbnJfZ3JvdXBfc2hpZnQgXHUwMDNjIElNU0lDX01NSU9fUEFHRV9TSElGVCArXG4rXHRcdFx0XHRcdCAgYWlhLVx1MDAzZW5yX2d1ZXN0X2JpdHMgKyBhaWEtXHUwMDNlbnJfaGFydF9iaXRzKVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcbiBcdC8qIEluaXRpYWxpemUgQVBMSUMgKi9cbiBcdHJldCA9IGt2bV9yaXNjdl9haWFfYXBsaWNfaW5pdChrdm0pO1xuIFx0aWYgKHJldClcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjE3LjQxNzU3NDE4MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3MzIwODE1NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUklTQy1WIEtWTSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNgLiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoZXkncmUgYWRkaW5nIGEgY2hlY2sgaW4gYGFpYV9pbml0YC4gU3BlY2lmaWNhbGx5LCBpdCBtYWtlcyBzdXJlIHRoZSBncm91cCBpbmRleCBiaXRzIGRvbid0IG92ZXJsYXAgd2l0aCB0aGUgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgS1ZNIGxheWVyLCBzcGVjaWZpY2FsbHkgZm9yIFJJU0MtVi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZD8gR2l2ZW4gdGhhdCBpdCdzIEtWTSBjb2RlLCBhbmQgd2UgaGF2ZSBzeXprYWxsZXIgc2V0IHVwIHRvIGZ1enogS1ZNIG9uIFJJU0MtViwgdGhlIGFuc3dlciBpcyBsaWtlbHkgeWVzLiBTeXprYWxsZXIgZGVmaW5pdGVseSAqY2FuKiBmdXp6IEtWTSBvbiBSSVNDLVYsIHJpZ2h0PyBPciBhdCBsZWFzdCBpdCBpcyBhIGZlYXR1cmUgdGhhdCBpcyBkZWZpbml0ZWx5IHdpdGhpbiB0aGUgcmVhbG1zIG9mIHN5emthbGxlcidzIGNhcGFiaWxpdGllcy4gTm93LCB0aGUgcXVlc3Rpb24gaXMsIGFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gSSBrbm93IHRoZSBmaWxlIGlzIGBhaWFfZGV2aWNlLmNgLCBzbyBJJ2xsIGNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYCBvciB0aGUgYE1ha2VmaWxlYCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIHRlbGwgbWUgaWYgdGhlcmUgYXJlIGFueSBLY29uZmlnIG9wdGlvbnMgb3IgYnVpbGQgZmxhZ3MgdGhhdCBuZWVkIHRvIGJlIHNldCBmb3IgdGhpcyBzcGVjaWZpYyBwYXJ0IG9mIEtWTSB0byBiZSBmdXp6ZWQgZWZmZWN0aXZlbHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MTYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyMi4xNDk2NTc5MTFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg1MDYyODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYWlhX2RldmljZS5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT0xND1rdm0teSArPSBhaWFfYXBsaWMub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlOjE1Omt2bS15ICs9IGFpYV9kZXZpY2Uub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlLTE2LWt2bS15ICs9IGFpYV9pbXNpYy5vXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWEuYz02NTE9aW50IGt2bV9yaXNjdl9haWFfaW5pdCh2b2lkKVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhLmMtNjc2LVxcdC8qIFJlZ2lzdGVyIGRldmljZSBvcGVyYXRpb25zICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhLmM6Njc3OlxcdHJjID0ga3ZtX3JlZ2lzdGVyX2RldmljZV9vcHMoXFx1MDAyNmt2bV9yaXNjdl9haWFfZGV2aWNlX29wcyxcXG5hcmNoL3Jpc2N2L2t2bS9haWEuYy02NzgtXFx0XFx0XFx0XFx0ICAgICBLVk1fREVWX1RZUEVfUklTQ1ZfQUlBKTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz00NDg9c3RhdGljIGludCBhaWFfaGFzX2F0dHIoc3RydWN0IGt2bV9kZXZpY2UgKmRldiwgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy00OTItXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjQ5MzpzdHJ1Y3Qga3ZtX2RldmljZV9vcHMga3ZtX3Jpc2N2X2FpYV9kZXZpY2Vfb3BzID0ge1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy00OTQtXFx0Lm5hbWUgPSBcXFwia3ZtLXJpc2N2LWFpYVxcXCIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjIyLjIwODE3MDEwOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMjEwNTQyMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgS1ZNIENvbXBpbGF0aW9uIG9uIFJJU0MtVioqXG5cbkFscmlnaHQsIHNvIHRoZSBjbHVlIGlzIHRoYXQgdGhlIGZpbGUgb25seSBnZXRzIGJ1aWx0IHdoZW4gYENPTkZJR19LVk1gIGlzIGRlZmluZWQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBUaGF0J3MgYSBjbGFzc2ljIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHNjZW5hcmlvLiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gdGhpcyBjb250ZXh0LCBpcyB0byB0cmFjayBkb3duIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcgaXRzZWxmLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGF0IGBDT05GSUdfS1ZNYCBtYWNybyBpcyBhY3R1YWxseSBkZWZpbmVkIGZvciBSSVNDLVYuIElzIGl0IGluIHRoZSBtYWluIGtlcm5lbCBjb25maWd1cmF0aW9uLCBvciBzcGVjaWZpYyB0byB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZSBvcHRpb25zPyBMaWtlbHksIGl0J3Mgc29tZXRoaW5nIEkgY2FuIGZpbmQgd2l0aGluIHRoZSBidWlsZCBzeXN0ZW0ncyBjb25maWd1cmF0aW9uIGZpbGVzLCBwcm9iYWJseSB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSBpdHNlbGYuIEknbGwgbmVlZCB0byBsb2NhdGUgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlcy4gVGhhdCdzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWNsYXJlZC4gSSBleHBlY3QgdG8gYmUgYWJsZSB0byBmaW5kIHRoZSBkZXBlbmRlbmN5IGNoYWluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIHdoYXQgbWFrZXMgYENPTkZJR19LVk1gIGdldCBkZWZpbmVkLCBhbmQgaW4gdHVybiwgZW5hYmxlIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgZmlsZS4gVGltZSB0byBkaXZlIGludG8gdGhlIHNvdXJjZSBhbmQgdHJhY2sgZG93biB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNIGFuZCBSSVNDLVYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MzMsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyNS4yMjkyMjYxMTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYyMDEwMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyNS4yODU0NDEwNjFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTM5Mzg2MzY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIENvbmZpZ3VyYXRpb24gZm9yIFJJU0MtViBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQ09ORklHX0tWTWAg4oCTIHRoYXQncyBteSBzdGFydGluZyBwb2ludC4gVGhlIHNwZWNpZmljIGZ1bmN0aW9uIEknbSBmb2N1c2luZyBvbiBpcyBgYWlhX2luaXRgLiBMZXQncyBkaXZlIHJpZ2h0IGludG8gdGhlIGNvZGUgdG8gc2VlIHdoYXQncyBoYXBwZW5pbmcgdGhlcmUuIEkgbmVlZCB0byBleGFtaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgYWlhX2luaXRgIHdpdGhpbiB0aGUgYGFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY2AgZmlsZS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgYW5kIHVuZGVyc3RhbmQgdGhlIGludHJpY2FjaWVzIG9mIHRoZSBBSUEgaW5pdGlhbGl6YXRpb24gd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQgZm9yIFJJU0MtVi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgbmVlZCB0byBwcm9jZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjM1LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MjcuODI0ODI5NzM2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NDcyMTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFpYV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NTE9c3RhdGljIGludCBhaWFfY29uZmlnKHN0cnVjdCBrdm0gKmt2bSwgdW5zaWduZWQgbG9uZyB0eXBlLFxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU2LVxcdC8qIFdyaXRlcyBjYW4gb25seSBiZSBkb25lIGJlZm9yZSBpcnFjaGlwIGlzIGluaXRpYWxpemVkICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjU3OlxcdGlmICh3cml0ZSBcXHUwMDI2XFx1MDAyNiBrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9MTQ1PXN0YXRpYyBpbnQgYWlhX2FwbGljX2FkZHIoc3RydWN0IGt2bSAqa3ZtLCB1NjQgKmFkZHIsIGJvb2wgd3JpdGUpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMTUwLVxcdFxcdC8qIFdyaXRlcyBjYW4gb25seSBiZSBkb25lIGJlZm9yZSBpcnFjaGlwIGlzIGluaXRpYWxpemVkICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjE1MTpcXHRcXHRpZiAoa3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0xNTItXFx0XFx0XFx0cmV0dXJuIC1FQlVTWTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz0xNjQ9c3RhdGljIGludCBhaWFfaW1zaWNfYWRkcihzdHJ1Y3Qga3ZtICprdm0sIHU2NCAqYWRkcixcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0xNzYtXFx0XFx0LyogV3JpdGVzIGNhbiBvbmx5IGJlIGRvbmUgYmVmb3JlIGlycWNoaXAgaXMgaW5pdGlhbGl6ZWQgKi9cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6MTc3OlxcdFxcdGlmIChrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTE3OC1cXHRcXHRcXHRyZXR1cm4gLUVCVVNZO1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTIxMj1zdGF0aWMgdTMyIGFpYV9pbXNpY19oYXJ0X2luZGV4KHN0cnVjdCBrdm1fYWlhICphaWEsIGdwYV90IGFkZHIpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjI1LVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoyMjY6c3RhdGljIGludCBhaWFfaW5pdChzdHJ1Y3Qga3ZtICprdm0pXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTIyNy17XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjM1LVxcdC8qIElycWNoaXAgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSAqL1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoyMzY6XFx0aWYgKGt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjM3LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9MzA2PXN0YXRpYyBpbnQgYWlhX3NldF9hdHRyKHN0cnVjdCBrdm1fZGV2aWNlICpkZXYsIHN0cnVjdCBrdm1fZGV2aWNlX2F0dHIgKmF0dHIpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMzQzLVxcdFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmRldi1cXHUwMDNla3ZtLVxcdTAwM2Vsb2NrKTtcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6MzQ0OlxcdFxcdFxcdHIgPSBhaWFfaW5pdChkZXYtXFx1MDAzZWt2bSk7XFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTM0NS1cXHRcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmRldi1cXHUwMDNla3ZtLVxcdTAwM2Vsb2NrKTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01MDI9aW50IGt2bV9yaXNjdl92Y3B1X2FpYV91cGRhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUwNC1cXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTA1OlxcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZCh2Y3B1LVxcdTAwM2Vrdm0pKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MDYtXFx0XFx0cmV0dXJuIDE7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NTEyPXZvaWQga3ZtX3Jpc2N2X3ZjcHVfYWlhX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MjAtXFx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjUyMTpcXHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQodmNwdS1cXHUwMDNla3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTIyLVxcdFxcdHJldHVybjtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MjctXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjUyODp2b2lkIGt2bV9yaXNjdl92Y3B1X2FpYV9pbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTI5LXtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MzgtXFx0ICpcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTM5OlxcdCAqIFJlZmVyLCBhaWFfaW5pdCgpIGltcGxlbWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU0MC1cXHQgKi9cXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01NDc9dm9pZCBrdm1fcmlzY3ZfdmNwdV9haWFfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01NDktXFx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjU1MDpcXHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQodmNwdS1cXHUwMDNla3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTUxLVxcdFxcdHJldHVybjtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01NTc9aW50IGt2bV9yaXNjdl9haWFfaW5qZWN0X21zaV9ieV9pZChzdHJ1Y3Qga3ZtICprdm0sIHUzMiBoYXJ0X2luZGV4LFxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU2My1cXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTY0OlxcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01NjUtXFx0XFx0cmV0dXJuIC1FQlVTWTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01Nzg9aW50IGt2bV9yaXNjdl9haWFfaW5qZWN0X21zaShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbXNpICptc2kpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTg3LVxcdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1ODg6XFx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4OS1cXHRcXHRyZXR1cm4gLUVCVVNZO1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTYxMj1pbnQga3ZtX3Jpc2N2X2FpYV9pbmplY3RfaXJxKHN0cnVjdCBrdm0gKmt2bSwgdW5zaWduZWQgaW50IGlycSwgYm9vbCBsZXZlbClcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MTQtXFx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjYxNTpcXHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjE2LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjIxLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MjI6dm9pZCBrdm1fcmlzY3ZfYWlhX2luaXRfdm0oc3RydWN0IGt2bSAqa3ZtKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MjMte1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYzMi1cXHQgKlxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MzM6XFx0ICogUmVmZXIsIGFpYV9pbml0KCkgaW1wbGVtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjM0LVxcdCAqL1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTY0OD12b2lkIGt2bV9yaXNjdl9haWFfZGVzdHJveV92bShzdHJ1Y3Qga3ZtICprdm0pXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjUwLVxcdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2NTE6XFx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTY1Mi1cXHRcXHRyZXR1cm47XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjI3Ljg3OTMwNjA3NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNDk5MzAwMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBhIHBvdGVudGlhbCBmdXp6aW5nIHRhcmdldC4gVGhlIGZ1bmN0aW9uIGBhaWFfaW5pdGAgZ2V0cyBjYWxsZWQgZnJvbSBgYWlhX3NldF9hdHRyYC4gYGFpYV9zZXRfYXR0cmAgaXMgcGFydCBvZiB0aGUgYGt2bV9yaXNjdl9haWFfZGV2aWNlX29wc2Agc3RydWN0dXJlLiBUaGF0IHRlbGxzIG1lIHRoaXMgaXMgYSBLVk0gZGV2aWNlIGF0dHJpYnV0ZSBzZXR0ZXIsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBgS1ZNX1NFVF9ERVZJQ0VfQVRUUmAgaW9jdGwgb24gYSBLVk0gZGV2aWNlIG9mIHR5cGUgYEtWTV9ERVZfVFlQRV9SSVNDVl9BSUFgLiBUaGF0IGlvY3RsIGludGVyYWN0aW9uIGlzIHRoZSBqdWljeSBiaXQg4oCTIGRlZmluaXRlbHkgZnV6emFibGUuXG5cbk15IHByaW1hcnkgZm9jdXMgZm9yIGZ1enppbmcgc2hvdWxkIGJlIGVpdGhlciBgYWlhX2luaXRgIG9yIGBhaWFfc2V0X2F0dHJgLCBzZWVtcyBsaWtlIGEgZ29vZCBwbGFjZSB0byBzdGFydC4gTm93LCBiZWZvcmUgSSBqdW1wIGluLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucyBlbmFibGVkIHRvIGhpdCB0aGlzIGNvZGUgcGF0aC4gT2J2aW91c2x5LCBgQ09ORklHX0tWTWAgaXMgY3J1Y2lhbCwgdGhhdCBnb2VzIHdpdGhvdXQgc2F5aW5nLiBJIG5lZWQgdG8gZGlnIGRlZXBlciBmb3IgYW55IFJJU0MtViBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCB0aGlzLiBUaW1lIHRvIGRvdWJsZS1jaGVjayBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AgYWdhaW4gdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1MjMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MzEuOTI5MjM3OTYyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjE3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJhcmNoL3Jpc2N2L2t2bS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0c291cmNlIFxcXCJ2aXJ0L2t2bS9LY29uZmlnXFxcIlxcbiAgIDc6XFx0XFxuICAgODpcXHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXFxuICAgOTpcXHRcXHRib29sIFxcXCJWaXJ0dWFsaXphdGlvblxcXCJcXG4gIDEwOlxcdFxcdGhlbHBcXG4gIDExOlxcdFxcdCAgU2F5IFkgaGVyZSB0byBnZXQgdG8gc2VlIG9wdGlvbnMgZm9yIHVzaW5nIHlvdXIgTGludXggaG9zdCB0byBydW5cXG4gIDEyOlxcdFxcdCAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgaW5zaWRlIHZpcnR1YWwgbWFjaGluZXMgKGd1ZXN0cykuXFxuICAxMzpcXHRcXHQgIFRoaXMgb3B0aW9uIGFsb25lIGRvZXMgbm90IGFkZCBhbnkga2VybmVsIGNvZGUuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgSWYgeW91IHNheSBOLCBhbGwgb3B0aW9ucyBpbiB0aGlzIHN1Ym1lbnUgd2lsbCBiZSBza2lwcGVkIGFuZFxcbiAgMTY6XFx0XFx0ICBkaXNhYmxlZC5cXG4gIDE3OlxcdFxcbiAgMTg6XFx0aWYgVklSVFVBTElaQVRJT05cXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEtWTVxcbiAgMjE6XFx0XFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gUklTQ1ZfU0JJIFxcdTAwMjZcXHUwMDI2IE1NVVxcbiAgMjM6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0lSUUNISVBcXG4gIDI0OlxcdFxcdHNlbGVjdCBIQVZFX0tWTV9JUlFfUk9VVElOR1xcbiAgMjU6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX01TSVxcbiAgMjY6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX1JFQURPTkxZX01FTVxcbiAgMjc6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0RJUlRZX1JJTkdfQUNRX1JFTFxcbiAgMjg6XFx0XFx0c2VsZWN0IEtWTV9DT01NT05cXG4gIDI5OlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG4gIDMwOlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xcbiAgMzE6XFx0XFx0c2VsZWN0IEtWTV9NTUlPXFxuICAzMjpcXHRcXHRzZWxlY3QgVklSVF9YRkVSX1RPX0dVRVNUX1dPUktcXG4gIDMzOlxcdFxcdHNlbGVjdCBTQ0hFRF9JTkZPXFxuICAzNDpcXHRcXHRzZWxlY3QgR1VFU1RfUEVSRl9FVkVOVFMgaWYgUEVSRl9FVkVOVFNcXG4gIDM1OlxcdFxcdGhlbHBcXG4gIDM2OlxcdFxcdCAgU3VwcG9ydCBob3N0aW5nIHZpcnR1YWxpemVkIGd1ZXN0IG1hY2hpbmVzLlxcbiAgMzc6XFx0XFxuICAzODpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuICAzOTpcXHRcXG4gIDQwOlxcdGVuZGlmICMgVklSVFVBTElaQVRJT05cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MzEuOTI5Mzg2NDMxWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMDcyNTk3MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1ZNIGFuZCBBSUEgSW5pdGlhbGl6YXRpb246IEEgRnV6emluZyBUYXJnZXQqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGhlcmUgaXMgZGVmaW5pdGVseSBgS1ZNYC4gVGhhdCdzIHRoZSBiYXNlbGluZS4gTXkgZm9jdXMsIHRob3VnaCwgaXMgb24gdGhlIGBhaWFfaW5pdGAgc3ltYm9sLiBUaGUgcmVhc29uIGlzIHByZXR0eSBjbGVhciDigJMgdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIHZhbGlkYXRpb24gY2hlY2sgKndpdGhpbiogYGFpYV9pbml0YCwgYW5kIGNyaXRpY2FsbHksIHRoaXMgYGFpYV9pbml0YCBmdW5jdGlvbiBpcyBhY2Nlc3NpYmxlIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggS1ZNIGlvY3Rscy4gVGhhdCBtYWtlcyBpdCBhIHBlcmZlY3QgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBjYW4gcG9rZSBhdCBpdCBhbmQgc2VlIGlmIHdlIGNhbiB0cmlnZ2VyIGFueSBpc3N1ZXMgbm93IHRoYXQgdGhlIHBhdGNoIGlzIGluIHBsYWNlLiBUaGVyZWZvcmUsIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYC4gIFdl4oCZcmUgZW5hYmxpbmcgZnV6emluZyBmb3IgdGhlIGBLVk1gIGNvbmZpZywgYW5kIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGBhaWFfaW5pdGAgc3ltYm9sLiBUaGlzIHNlZW1zIGxpa2UgYSBwcm9taXNpbmcgcGF0aCB0byB1bmNvdmVyIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMgaW4gdGhlIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgS1ZNIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTAzLCJPdXRwdXRUb2tlbnMiOjc2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDozNS45MzY2NDgxMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0NTE3Mzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhaWFfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBhaWFfaW5pdGAgZm9yIEtWTSBSSVNDLVYgQUlBIGRldmljZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFpYV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowhdd28[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-18 04:53:12 +0000 UTC FinishedAt: 2026-07-18 05:10:38 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "aia_init" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FpYV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBhaWFfaW5pdGAgZm9yIEtWTSBSSVNDLVYgQUlBIGRldmljZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTI4NWEyM2I3M2ZlMDlmMmU1YzFhZGNiOWYwMjRiOWRjZTQ2NDI1ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDE4IDA1OjEwOjE1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1xuaW5kZXggYmU4M2MyZDVmYzMwOGMuLjA3OTNkNGQ0Y2Y1ZTNhIDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcbkBAIC0yNDgsNiAmIzQzOzI0OCwxMiBAQCBzdGF0aWMgaW50IGFpYV9pbml0KHN0cnVjdCBrdm0gKmt2bSlcbiBcdGlmIChhaWEtXHUwMDNlbnJfc291cmNlcyBcdTAwMjZcdTAwMjYgYWlhLVx1MDAzZWFwbGljX2FkZHIgPT0gS1ZNX1JJU0NWX0FJQV9VTkRFRl9BRERSKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiYjNDM7XHQvKiBHcm91cCBpbmRleCBiaXRzIG11c3Qgbm90IG92ZXJsYXAgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gKi9cbiYjNDM7XHRpZiAoYWlhLVx1MDAzZW5yX2dyb3VwX2JpdHMgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIGFpYS1cdTAwM2Vucl9ncm91cF9zaGlmdCBcdTAwM2MgSU1TSUNfTU1JT19QQUdFX1NISUZUICYjNDM7XG4mIzQzO1x0XHRcdFx0XHQgIGFpYS1cdTAwM2Vucl9ndWVzdF9iaXRzICYjNDM7IGFpYS1cdTAwM2Vucl9oYXJ0X2JpdHMpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XG4gXHQvKiBJbml0aWFsaXplIEFQTElDICovXG4gXHRyZXQgPSBrdm1fcmlzY3ZfYWlhX2FwbGljX2luaXQoa3ZtKTtcbiBcdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWlhX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGEyODVhMjNiNzNmZTA5ZjJlNWMxYWRjYjlmMDI0YjlkY2U0NjQyNWYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1bCAxOCAwNToxMDoxNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYwppbmRleCBiZTgzYzJkNWZjMzA4Yy4uMDc5M2Q0ZDRjZjVlM2EgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMKQEAgLTI0OCw2ICYjNDM7MjQ4LDEyIEBAIHN0YXRpYyBpbnQgYWlhX2luaXQoc3RydWN0IGt2bSAqa3ZtKQogCWlmIChhaWEtJmd0O25yX3NvdXJjZXMgJmFtcDsmYW1wOyBhaWEtJmd0O2FwbGljX2FkZHIgPT0gS1ZNX1JJU0NWX0FJQV9VTkRFRl9BRERSKQogCQlyZXR1cm4gLUVJTlZBTDsKIAomIzQzOwkvKiBHcm91cCBpbmRleCBiaXRzIG11c3Qgbm90IG92ZXJsYXAgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gKi8KJiM0MzsJaWYgKGFpYS0mZ3Q7bnJfZ3JvdXBfYml0cyAmYW1wOyZhbXA7CiYjNDM7CSAgICBhaWEtJmd0O25yX2dyb3VwX3NoaWZ0ICZsdDsgSU1TSUNfTU1JT19QQUdFX1NISUZUICYjNDM7CiYjNDM7CQkJCQkgIGFpYS0mZ3Q7bnJfZ3Vlc3RfYml0cyAmIzQzOyBhaWEtJmd0O25yX2hhcnRfYml0cykKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwogCS8qIEluaXRpYWxpemUgQVBMSUMgKi8KIAlyZXQgPSBrdm1fcmlzY3ZfYWlhX2FwbGljX2luaXQoa3ZtKTsKIAlpZiAocmV0KQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTE2CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJJU0MtViBLVk0gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNgLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGV5JiMzOTtyZSBhZGRpbmcgYSBjaGVjayBpbiBgYWlhX2luaXRgLiBTcGVjaWZpY2FsbHksIGl0IG1ha2VzIHN1cmUgdGhlIGdyb3VwIGluZGV4IGJpdHMgZG9uJiMzOTt0IG92ZXJsYXAgd2l0aCB0aGUgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgS1ZNIGxheWVyLCBzcGVjaWZpY2FsbHkgZm9yIFJJU0MtVi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZD8gR2l2ZW4gdGhhdCBpdCYjMzk7cyBLVk0gY29kZSwgYW5kIHdlIGhhdmUgc3l6a2FsbGVyIHNldCB1cCB0byBmdXp6IEtWTSBvbiBSSVNDLVYsIHRoZSBhbnN3ZXIgaXMgbGlrZWx5IHllcy4gU3l6a2FsbGVyIGRlZmluaXRlbHkgKmNhbiogZnV6eiBLVk0gb24gUklTQy1WLCByaWdodD8gT3IgYXQgbGVhc3QgaXQgaXMgYSBmZWF0dXJlIHRoYXQgaXMgZGVmaW5pdGVseSB3aXRoaW4gdGhlIHJlYWxtcyBvZiBzeXprYWxsZXImIzM5O3MgY2FwYWJpbGl0aWVzLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgYXJlIHRoZXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBJIGtub3cgdGhlIGZpbGUgaXMgYGFpYV9kZXZpY2UuY2AsIHNvIEkmIzM5O2xsIGNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYCBvciB0aGUgYE1ha2VmaWxlYCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIHRlbGwgbWUgaWYgdGhlcmUgYXJlIGFueSBLY29uZmlnIG9wdGlvbnMgb3IgYnVpbGQgZmxhZ3MgdGhhdCBuZWVkIHRvIGJlIHNldCBmb3IgdGhpcyBzcGVjaWZpYyBwYXJ0IG9mIEtWTSB0byBiZSBmdXp6ZWQgZWZmZWN0aXZlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YWlhX2RldmljZS5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL01ha2VmaWxlPTE0PWt2bS15ICYjNDM7PSBhaWFfYXBsaWMub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6MTU6a3ZtLXkgJiM0Mzs9IGFpYV9kZXZpY2Uub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUtMTYta3ZtLXkgJiM0Mzs9IGFpYV9pbXNpYy5vXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhLmM9NjUxPWludCBrdm1fcmlzY3ZfYWlhX2luaXQodm9pZClcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWEuYy02NzYtXHQvKiBSZWdpc3RlciBkZXZpY2Ugb3BlcmF0aW9ucyAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhLmM6Njc3Olx0cmMgPSBrdm1fcmVnaXN0ZXJfZGV2aWNlX29wcyhcdTAwMjZrdm1fcmlzY3ZfYWlhX2RldmljZV9vcHMsXG5hcmNoL3Jpc2N2L2t2bS9haWEuYy02NzgtXHRcdFx0XHQgICAgIEtWTV9ERVZfVFlQRV9SSVNDVl9BSUEpO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz00NDg9c3RhdGljIGludCBhaWFfaGFzX2F0dHIoc3RydWN0IGt2bV9kZXZpY2UgKmRldiwgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNDkyLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjQ5MzpzdHJ1Y3Qga3ZtX2RldmljZV9vcHMga3ZtX3Jpc2N2X2FpYV9kZXZpY2Vfb3BzID0ge1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTQ5NC1cdC5uYW1lID0gXCYjMzQ7a3ZtLXJpc2N2LWFpYVwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODMzCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgS1ZNIENvbXBpbGF0aW9uIG9uIFJJU0MtVioqCgpBbHJpZ2h0LCBzbyB0aGUgY2x1ZSBpcyB0aGF0IHRoZSBmaWxlIG9ubHkgZ2V0cyBidWlsdCB3aGVuIGBDT05GSUdfS1ZNYCBpcyBkZWZpbmVkIGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gc2NlbmFyaW8uIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGlzIGNvbnRleHQsIGlzIHRvIHRyYWNrIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZyBpdHNlbGYuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoYXQgYENPTkZJR19LVk1gIG1hY3JvIGlzIGFjdHVhbGx5IGRlZmluZWQgZm9yIFJJU0MtVi4gSXMgaXQgaW4gdGhlIG1haW4ga2VybmVsIGNvbmZpZ3VyYXRpb24sIG9yIHNwZWNpZmljIHRvIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIG9wdGlvbnM/IExpa2VseSwgaXQmIzM5O3Mgc29tZXRoaW5nIEkgY2FuIGZpbmQgd2l0aGluIHRoZSBidWlsZCBzeXN0ZW0mIzM5O3MgY29uZmlndXJhdGlvbiBmaWxlcywgcHJvYmFibHkgd2l0aGluIHRoZSBrZXJuZWwgc291cmNlIHRyZWUgaXRzZWxmLiBJJiMzOTtsbCBuZWVkIHRvIGxvY2F0ZSB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGVzLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWNsYXJlZC4gSSBleHBlY3QgdG8gYmUgYWJsZSB0byBmaW5kIHRoZSBkZXBlbmRlbmN5IGNoYWluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIHdoYXQgbWFrZXMgYENPTkZJR19LVk1gIGdldCBkZWZpbmVkLCBhbmQgaW4gdHVybiwgZW5hYmxlIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgZmlsZS4gVGltZSB0byBkaXZlIGludG8gdGhlIHNvdXJjZSBhbmQgdHJhY2sgZG93biB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNIGFuZCBSSVNDLVYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEtWTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIzNQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS1ZNIENvbmZpZ3VyYXRpb24gZm9yIFJJU0MtViBBcmNoaXRlY3R1cmUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBDT05GSUdfS1ZNYCDigJMgdGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludC4gVGhlIHNwZWNpZmljIGZ1bmN0aW9uIEkmIzM5O20gZm9jdXNpbmcgb24gaXMgYGFpYV9pbml0YC4gTGV0JiMzOTtzIGRpdmUgcmlnaHQgaW50byB0aGUgY29kZSB0byBzZWUgd2hhdCYjMzk7cyBoYXBwZW5pbmcgdGhlcmUuIEkgbmVlZCB0byBleGFtaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgYWlhX2luaXRgIHdpdGhpbiB0aGUgYGFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY2AgZmlsZS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgYW5kIHVuZGVyc3RhbmQgdGhlIGludHJpY2FjaWVzIG9mIHRoZSBBSUEgaW5pdGlhbGl6YXRpb24gd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQgZm9yIFJJU0MtVi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgbmVlZCB0byBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FpYV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01MT1zdGF0aWMgaW50IGFpYV9jb25maWcoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBsb25nIHR5cGUsXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU2LVx0LyogV3JpdGVzIGNhbiBvbmx5IGJlIGRvbmUgYmVmb3JlIGlycWNoaXAgaXMgaW5pdGlhbGl6ZWQgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1NzpcdGlmICh3cml0ZSBcdTAwMjZcdTAwMjYga3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz0xNDU9c3RhdGljIGludCBhaWFfYXBsaWNfYWRkcihzdHJ1Y3Qga3ZtICprdm0sIHU2NCAqYWRkciwgYm9vbCB3cml0ZSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMTUwLVx0XHQvKiBXcml0ZXMgY2FuIG9ubHkgYmUgZG9uZSBiZWZvcmUgaXJxY2hpcCBpcyBpbml0aWFsaXplZCAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjE1MTpcdFx0aWYgKGt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0xNTItXHRcdFx0cmV0dXJuIC1FQlVTWTtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9MTY0PXN0YXRpYyBpbnQgYWlhX2ltc2ljX2FkZHIoc3RydWN0IGt2bSAqa3ZtLCB1NjQgKmFkZHIsXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTE3Ni1cdFx0LyogV3JpdGVzIGNhbiBvbmx5IGJlIGRvbmUgYmVmb3JlIGlycWNoaXAgaXMgaW5pdGlhbGl6ZWQgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoxNzc6XHRcdGlmIChrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMTc4LVx0XHRcdHJldHVybiAtRUJVU1k7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTIxMj1zdGF0aWMgdTMyIGFpYV9pbXNpY19oYXJ0X2luZGV4KHN0cnVjdCBrdm1fYWlhICphaWEsIGdwYV90IGFkZHIpXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTIyNS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoyMjY6c3RhdGljIGludCBhaWFfaW5pdChzdHJ1Y3Qga3ZtICprdm0pXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjI3LXtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjM1LVx0LyogSXJxY2hpcCBjYW4gYmUgaW5pdGlhbGl6ZWQgb25seSBvbmNlICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6MjM2Olx0aWYgKGt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0yMzctXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTMwNj1zdGF0aWMgaW50IGFpYV9zZXRfYXR0cihzdHJ1Y3Qga3ZtX2RldmljZSAqZGV2LCBzdHJ1Y3Qga3ZtX2RldmljZV9hdHRyICphdHRyKVxuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0zNDMtXHRcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNla3ZtLVx1MDAzZWxvY2spO1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjM0NDpcdFx0XHRyID0gYWlhX2luaXQoZGV2LVx1MDAzZWt2bSk7XG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMzQ1LVx0XHRcdG11dGV4X3VubG9jayhcdTAwMjZkZXYtXHUwMDNla3ZtLVx1MDAzZWxvY2spO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01MDI9aW50IGt2bV9yaXNjdl92Y3B1X2FpYV91cGRhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MDQtXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1MDU6XHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQodmNwdS1cdTAwM2Vrdm0pKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUwNi1cdFx0cmV0dXJuIDE7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTUxMj12b2lkIGt2bV9yaXNjdl92Y3B1X2FpYV9yZXNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUyMC1cdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjUyMTpcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZCh2Y3B1LVx1MDAzZWt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTIyLVx0XHRyZXR1cm47XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUyNy1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1Mjg6dm9pZCBrdm1fcmlzY3ZfdmNwdV9haWFfaW5pdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTI5LXtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTM4LVx0ICpcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1Mzk6XHQgKiBSZWZlciwgYWlhX2luaXQoKSBpbXBsZW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU0MC1cdCAqL1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01NDc9dm9pZCBrdm1fcmlzY3ZfdmNwdV9haWFfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTQ5LVx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTUwOlx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKHZjcHUtXHUwMDNla3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01NTEtXHRcdHJldHVybjtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NTU3PWludCBrdm1fcmlzY3ZfYWlhX2luamVjdF9tc2lfYnlfaWQoc3RydWN0IGt2bSAqa3ZtLCB1MzIgaGFydF9pbmRleCxcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTYzLVx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTY0Olx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTY1LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01Nzg9aW50IGt2bV9yaXNjdl9haWFfaW5qZWN0X21zaShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbXNpICptc2kpXG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4Ny1cdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjU4ODpcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4OS1cdFx0cmV0dXJuIC1FQlVTWTtcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NjEyPWludCBrdm1fcmlzY3ZfYWlhX2luamVjdF9pcnEoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBpbnQgaXJxLCBib29sIGxldmVsKVxuLS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MTQtXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MTU6XHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MTYtXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYyMS1cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MjI6dm9pZCBrdm1fcmlzY3ZfYWlhX2luaXRfdm0oc3RydWN0IGt2bSAqa3ZtKVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYyMy17XG4tLVxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYzMi1cdCAqXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NjMzOlx0ICogUmVmZXIsIGFpYV9pbml0KCkgaW1wbGVtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MzQtXHQgKi9cbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NjQ4PXZvaWQga3ZtX3Jpc2N2X2FpYV9kZXN0cm95X3ZtKHN0cnVjdCBrdm0gKmt2bSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjUwLVx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NjUxOlx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjUyLVx0XHRyZXR1cm47XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTUyMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBzZWUgYSBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXQuIFRoZSBmdW5jdGlvbiBgYWlhX2luaXRgIGdldHMgY2FsbGVkIGZyb20gYGFpYV9zZXRfYXR0cmAuIGBhaWFfc2V0X2F0dHJgIGlzIHBhcnQgb2YgdGhlIGBrdm1fcmlzY3ZfYWlhX2RldmljZV9vcHNgIHN0cnVjdHVyZS4gVGhhdCB0ZWxscyBtZSB0aGlzIGlzIGEgS1ZNIGRldmljZSBhdHRyaWJ1dGUgc2V0dGVyLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfREVWSUNFX0FUVFJgIGlvY3RsIG9uIGEgS1ZNIGRldmljZSBvZiB0eXBlIGBLVk1fREVWX1RZUEVfUklTQ1ZfQUlBYC4gVGhhdCBpb2N0bCBpbnRlcmFjdGlvbiBpcyB0aGUganVpY3kgYml0IOKAkyBkZWZpbml0ZWx5IGZ1enphYmxlLgoKTXkgcHJpbWFyeSBmb2N1cyBmb3IgZnV6emluZyBzaG91bGQgYmUgZWl0aGVyIGBhaWFfaW5pdGAgb3IgYGFpYV9zZXRfYXR0cmAsIHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIHRvIHN0YXJ0LiBOb3csIGJlZm9yZSBJIGp1bXAgaW4sIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIGFsbCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zIGVuYWJsZWQgdG8gaGl0IHRoaXMgY29kZSBwYXRoLiBPYnZpb3VzbHksIGBDT05GSUdfS1ZNYCBpcyBjcnVjaWFsLCB0aGF0IGdvZXMgd2l0aG91dCBzYXlpbmcuIEkgbmVlZCB0byBkaWcgZGVlcGVyIGZvciBhbnkgUklTQy1WIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IHRoaXMuIFRpbWUgdG8gZG91YmxlLWNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYCBhZ2FpbiB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0c291cmNlIFwmIzM0O3ZpcnQva3ZtL0tjb25maWdcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXG4gICA5Olx0XHRib29sIFwmIzM0O1ZpcnR1YWxpemF0aW9uXCYjMzQ7XG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXG4gIDEyOlx0XHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxuICAxNDpcdFxuICAxNTpcdFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXG4gIDE2Olx0XHQgIGRpc2FibGVkLlxuICAxNzpcdFxuICAxODpcdGlmIFZJUlRVQUxJWkFUSU9OXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEtWTVxuICAyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIFJJU0NWX1NCSSBcdTAwMjZcdTAwMjYgTU1VXG4gIDIzOlx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxuICAyNDpcdFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXG4gIDI1Olx0XHRzZWxlY3QgSEFWRV9LVk1fTVNJXG4gIDI2Olx0XHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXG4gIDI3Olx0XHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXG4gIDI4Olx0XHRzZWxlY3QgS1ZNX0NPTU1PTlxuICAyOTpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxuICAzMDpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXG4gIDMxOlx0XHRzZWxlY3QgS1ZNX01NSU9cbiAgMzI6XHRcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xuICAzMzpcdFx0c2VsZWN0IFNDSEVEX0lORk9cbiAgMzQ6XHRcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xuICAzNTpcdFx0aGVscFxuICAzNjpcdFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMuXG4gIDM3Olx0XG4gIDM4Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDM5Olx0XG4gIDQwOlx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTAzCgkJCQkJCQlvdXRwdXQ6IDc2CgkJCQkJCQl0aG91Z2h0czogODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS1ZNIGFuZCBBSUEgSW5pdGlhbGl6YXRpb246IEEgRnV6emluZyBUYXJnZXQqKgoKT2theSwgc28gdGhlIGNvbmZpZyBoZXJlIGlzIGRlZmluaXRlbHkgYEtWTWAuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLiBNeSBmb2N1cywgdGhvdWdoLCBpcyBvbiB0aGUgYGFpYV9pbml0YCBzeW1ib2wuIFRoZSByZWFzb24gaXMgcHJldHR5IGNsZWFyIOKAkyB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgdmFsaWRhdGlvbiBjaGVjayAqd2l0aGluKiBgYWlhX2luaXRgLCBhbmQgY3JpdGljYWxseSwgdGhpcyBgYWlhX2luaXRgIGZ1bmN0aW9uIGlzIGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBLVk0gaW9jdGxzLiBUaGF0IG1ha2VzIGl0IGEgcGVyZmVjdCB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGNhbiBwb2tlIGF0IGl0IGFuZCBzZWUgaWYgd2UgY2FuIHRyaWdnZXIgYW55IGlzc3VlcyBub3cgdGhhdCB0aGUgcGF0Y2ggaXMgaW4gcGxhY2UuIFRoZXJlZm9yZSwgSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYC4gIFdl4oCZcmUgZW5hYmxpbmcgZnV6emluZyBmb3IgdGhlIGBLVk1gIGNvbmZpZywgYW5kIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGBhaWFfaW5pdGAgc3ltYm9sLiBUaGlzIHNlZW1zIGxpa2UgYSBwcm9taXNpbmcgcGF0aCB0byB1bmNvdmVyIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMgaW4gdGhlIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgS1ZNIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWlhX2luaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FpYV9pbml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBhaWFfaW5pdGAgZm9yIEtWTSBSSVNDLVYgQUlBIGRldmljZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MTYuNjIxMjgwNzgxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkzODk4OTU1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYWlhX2luaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgYWlhX2luaXRgIGZvciBLVk0gUklTQy1WIEFJQSBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgS1ZNIGlvY3Rscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MTYuNjIxMjg1NDQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTU1NTk2NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhMjg1YTIzYjczZmUwOWYyZTVjMWFkY2I5ZjAyNGI5ZGNlNDY0MjVmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVsIDE4IDA1OjEwOjE1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1xcbmluZGV4IGJlODNjMmQ1ZmMzMDhjLi4wNzkzZDRkNGNmNWUzYSAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcXG4rKysgYi9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcXG5AQCAtMjQ4LDYgKzI0OCwxMiBAQCBzdGF0aWMgaW50IGFpYV9pbml0KHN0cnVjdCBrdm0gKmt2bSlcXG4gXFx0aWYgKGFpYS1cXHUwMDNlbnJfc291cmNlcyBcXHUwMDI2XFx1MDAyNiBhaWEtXFx1MDAzZWFwbGljX2FkZHIgPT0gS1ZNX1JJU0NWX0FJQV9VTkRFRl9BRERSKVxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuK1xcdC8qIEdyb3VwIGluZGV4IGJpdHMgbXVzdCBub3Qgb3ZlcmxhcCBndWVzdCBhbmQgSEFSVCBpbmRleCBiaXRzLiAqL1xcbitcXHRpZiAoYWlhLVxcdTAwM2Vucl9ncm91cF9iaXRzIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBhaWEtXFx1MDAzZW5yX2dyb3VwX3NoaWZ0IFxcdTAwM2MgSU1TSUNfTU1JT19QQUdFX1NISUZUICtcXG4rXFx0XFx0XFx0XFx0XFx0ICBhaWEtXFx1MDAzZW5yX2d1ZXN0X2JpdHMgKyBhaWEtXFx1MDAzZW5yX2hhcnRfYml0cylcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcbiBcXHQvKiBJbml0aWFsaXplIEFQTElDICovXFxuIFxcdHJldCA9IGt2bV9yaXNjdl9haWFfYXBsaWNfaW5pdChrdm0pO1xcbiBcXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoxNy40MTc1NzI3OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4NTkzNTk1ODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFpYV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTI4NWEyM2I3M2ZlMDlmMmU1YzFhZGNiOWYwMjRiOWRjZTQ2NDI1ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDE4IDA1OjEwOjE1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jIGIvYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jXG5pbmRleCBiZTgzYzJkNWZjMzA4Yy4uMDc5M2Q0ZDRjZjVlM2EgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1xuQEAgLTI0OCw2ICsyNDgsMTIgQEAgc3RhdGljIGludCBhaWFfaW5pdChzdHJ1Y3Qga3ZtICprdm0pXG4gXHRpZiAoYWlhLVx1MDAzZW5yX3NvdXJjZXMgXHUwMDI2XHUwMDI2IGFpYS1cdTAwM2VhcGxpY19hZGRyID09IEtWTV9SSVNDVl9BSUFfVU5ERUZfQUREUilcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4rXHQvKiBHcm91cCBpbmRleCBiaXRzIG11c3Qgbm90IG92ZXJsYXAgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gKi9cbitcdGlmIChhaWEtXHUwMDNlbnJfZ3JvdXBfYml0cyBcdTAwMjZcdTAwMjZcbitcdCAgICBhaWEtXHUwMDNlbnJfZ3JvdXBfc2hpZnQgXHUwMDNjIElNU0lDX01NSU9fUEFHRV9TSElGVCArXG4rXHRcdFx0XHRcdCAgYWlhLVx1MDAzZW5yX2d1ZXN0X2JpdHMgKyBhaWEtXHUwMDNlbnJfaGFydF9iaXRzKVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcbiBcdC8qIEluaXRpYWxpemUgQVBMSUMgKi9cbiBcdHJldCA9IGt2bV9yaXNjdl9haWFfYXBsaWNfaW5pdChrdm0pO1xuIFx0aWYgKHJldClcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjE3LjQxNzU3NDE4MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3MzIwODE1NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUklTQy1WIEtWTSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmNgLiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoZXkncmUgYWRkaW5nIGEgY2hlY2sgaW4gYGFpYV9pbml0YC4gU3BlY2lmaWNhbGx5LCBpdCBtYWtlcyBzdXJlIHRoZSBncm91cCBpbmRleCBiaXRzIGRvbid0IG92ZXJsYXAgd2l0aCB0aGUgZ3Vlc3QgYW5kIEhBUlQgaW5kZXggYml0cy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgS1ZNIGxheWVyLCBzcGVjaWZpY2FsbHkgZm9yIFJJU0MtVi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZD8gR2l2ZW4gdGhhdCBpdCdzIEtWTSBjb2RlLCBhbmQgd2UgaGF2ZSBzeXprYWxsZXIgc2V0IHVwIHRvIGZ1enogS1ZNIG9uIFJJU0MtViwgdGhlIGFuc3dlciBpcyBsaWtlbHkgeWVzLiBTeXprYWxsZXIgZGVmaW5pdGVseSAqY2FuKiBmdXp6IEtWTSBvbiBSSVNDLVYsIHJpZ2h0PyBPciBhdCBsZWFzdCBpdCBpcyBhIGZlYXR1cmUgdGhhdCBpcyBkZWZpbml0ZWx5IHdpdGhpbiB0aGUgcmVhbG1zIG9mIHN5emthbGxlcidzIGNhcGFiaWxpdGllcy4gTm93LCB0aGUgcXVlc3Rpb24gaXMsIGFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gSSBrbm93IHRoZSBmaWxlIGlzIGBhaWFfZGV2aWNlLmNgLCBzbyBJJ2xsIGNoZWNrIGBhcmNoL3Jpc2N2L2t2bS9LY29uZmlnYCBvciB0aGUgYE1ha2VmaWxlYCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIHRlbGwgbWUgaWYgdGhlcmUgYXJlIGFueSBLY29uZmlnIG9wdGlvbnMgb3IgYnVpbGQgZmxhZ3MgdGhhdCBuZWVkIHRvIGJlIHNldCBmb3IgdGhpcyBzcGVjaWZpYyBwYXJ0IG9mIEtWTSB0byBiZSBmdXp6ZWQgZWZmZWN0aXZlbHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MTYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyMi4xNDk2NTc5MTFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg1MDYyODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYWlhX2RldmljZS5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT0xND1rdm0teSArPSBhaWFfYXBsaWMub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlOjE1Omt2bS15ICs9IGFpYV9kZXZpY2Uub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlLTE2LWt2bS15ICs9IGFpYV9pbXNpYy5vXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWEuYz02NTE9aW50IGt2bV9yaXNjdl9haWFfaW5pdCh2b2lkKVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhLmMtNjc2LVxcdC8qIFJlZ2lzdGVyIGRldmljZSBvcGVyYXRpb25zICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhLmM6Njc3OlxcdHJjID0ga3ZtX3JlZ2lzdGVyX2RldmljZV9vcHMoXFx1MDAyNmt2bV9yaXNjdl9haWFfZGV2aWNlX29wcyxcXG5hcmNoL3Jpc2N2L2t2bS9haWEuYy02NzgtXFx0XFx0XFx0XFx0ICAgICBLVk1fREVWX1RZUEVfUklTQ1ZfQUlBKTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz00NDg9c3RhdGljIGludCBhaWFfaGFzX2F0dHIoc3RydWN0IGt2bV9kZXZpY2UgKmRldiwgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy00OTItXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjQ5MzpzdHJ1Y3Qga3ZtX2RldmljZV9vcHMga3ZtX3Jpc2N2X2FpYV9kZXZpY2Vfb3BzID0ge1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy00OTQtXFx0Lm5hbWUgPSBcXFwia3ZtLXJpc2N2LWFpYVxcXCIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjIyLjIwODE3MDEwOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMjEwNTQyMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgS1ZNIENvbXBpbGF0aW9uIG9uIFJJU0MtVioqXG5cbkFscmlnaHQsIHNvIHRoZSBjbHVlIGlzIHRoYXQgdGhlIGZpbGUgb25seSBnZXRzIGJ1aWx0IHdoZW4gYENPTkZJR19LVk1gIGlzIGRlZmluZWQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlLiBUaGF0J3MgYSBjbGFzc2ljIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHNjZW5hcmlvLiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gdGhpcyBjb250ZXh0LCBpcyB0byB0cmFjayBkb3duIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcgaXRzZWxmLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGF0IGBDT05GSUdfS1ZNYCBtYWNybyBpcyBhY3R1YWxseSBkZWZpbmVkIGZvciBSSVNDLVYuIElzIGl0IGluIHRoZSBtYWluIGtlcm5lbCBjb25maWd1cmF0aW9uLCBvciBzcGVjaWZpYyB0byB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZSBvcHRpb25zPyBMaWtlbHksIGl0J3Mgc29tZXRoaW5nIEkgY2FuIGZpbmQgd2l0aGluIHRoZSBidWlsZCBzeXN0ZW0ncyBjb25maWd1cmF0aW9uIGZpbGVzLCBwcm9iYWJseSB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSBpdHNlbGYuIEknbGwgbmVlZCB0byBsb2NhdGUgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlcy4gVGhhdCdzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWNsYXJlZC4gSSBleHBlY3QgdG8gYmUgYWJsZSB0byBmaW5kIHRoZSBkZXBlbmRlbmN5IGNoYWluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIHdoYXQgbWFrZXMgYENPTkZJR19LVk1gIGdldCBkZWZpbmVkLCBhbmQgaW4gdHVybiwgZW5hYmxlIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgZmlsZS4gVGltZSB0byBkaXZlIGludG8gdGhlIHNvdXJjZSBhbmQgdHJhY2sgZG93biB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gS1ZNIGFuZCBSSVNDLVYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MzMsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyNS4yMjkyMjYxMTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYyMDEwMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyNS4yODU0NDEwNjFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTM5Mzg2MzY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIENvbmZpZ3VyYXRpb24gZm9yIFJJU0MtViBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQ09ORklHX0tWTWAg4oCTIHRoYXQncyBteSBzdGFydGluZyBwb2ludC4gVGhlIHNwZWNpZmljIGZ1bmN0aW9uIEknbSBmb2N1c2luZyBvbiBpcyBgYWlhX2luaXRgLiBMZXQncyBkaXZlIHJpZ2h0IGludG8gdGhlIGNvZGUgdG8gc2VlIHdoYXQncyBoYXBwZW5pbmcgdGhlcmUuIEkgbmVlZCB0byBleGFtaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgYWlhX2luaXRgIHdpdGhpbiB0aGUgYGFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY2AgZmlsZS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkgYW5kIHVuZGVyc3RhbmQgdGhlIGludHJpY2FjaWVzIG9mIHRoZSBBSUEgaW5pdGlhbGl6YXRpb24gd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQgZm9yIFJJU0MtVi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgbmVlZCB0byBwcm9jZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjM1LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MjcuODI0ODI5NzM2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NDcyMTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFpYV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NTE9c3RhdGljIGludCBhaWFfY29uZmlnKHN0cnVjdCBrdm0gKmt2bSwgdW5zaWduZWQgbG9uZyB0eXBlLFxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU2LVxcdC8qIFdyaXRlcyBjYW4gb25seSBiZSBkb25lIGJlZm9yZSBpcnFjaGlwIGlzIGluaXRpYWxpemVkICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjU3OlxcdGlmICh3cml0ZSBcXHUwMDI2XFx1MDAyNiBrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9MTQ1PXN0YXRpYyBpbnQgYWlhX2FwbGljX2FkZHIoc3RydWN0IGt2bSAqa3ZtLCB1NjQgKmFkZHIsIGJvb2wgd3JpdGUpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMTUwLVxcdFxcdC8qIFdyaXRlcyBjYW4gb25seSBiZSBkb25lIGJlZm9yZSBpcnFjaGlwIGlzIGluaXRpYWxpemVkICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjE1MTpcXHRcXHRpZiAoa3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0xNTItXFx0XFx0XFx0cmV0dXJuIC1FQlVTWTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz0xNjQ9c3RhdGljIGludCBhaWFfaW1zaWNfYWRkcihzdHJ1Y3Qga3ZtICprdm0sIHU2NCAqYWRkcixcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy0xNzYtXFx0XFx0LyogV3JpdGVzIGNhbiBvbmx5IGJlIGRvbmUgYmVmb3JlIGlycWNoaXAgaXMgaW5pdGlhbGl6ZWQgKi9cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6MTc3OlxcdFxcdGlmIChrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTE3OC1cXHRcXHRcXHRyZXR1cm4gLUVCVVNZO1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTIxMj1zdGF0aWMgdTMyIGFpYV9pbXNpY19oYXJ0X2luZGV4KHN0cnVjdCBrdm1fYWlhICphaWEsIGdwYV90IGFkZHIpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjI1LVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoyMjY6c3RhdGljIGludCBhaWFfaW5pdChzdHJ1Y3Qga3ZtICprdm0pXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTIyNy17XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjM1LVxcdC8qIElycWNoaXAgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZSAqL1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzoyMzY6XFx0aWYgKGt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMjM3LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9MzA2PXN0YXRpYyBpbnQgYWlhX3NldF9hdHRyKHN0cnVjdCBrdm1fZGV2aWNlICpkZXYsIHN0cnVjdCBrdm1fZGV2aWNlX2F0dHIgKmF0dHIpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtMzQzLVxcdFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmRldi1cXHUwMDNla3ZtLVxcdTAwM2Vsb2NrKTtcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6MzQ0OlxcdFxcdFxcdHIgPSBhaWFfaW5pdChkZXYtXFx1MDAzZWt2bSk7XFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTM0NS1cXHRcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmRldi1cXHUwMDNla3ZtLVxcdTAwM2Vsb2NrKTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01MDI9aW50IGt2bV9yaXNjdl92Y3B1X2FpYV91cGRhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTUwNC1cXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTA1OlxcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZCh2Y3B1LVxcdTAwM2Vrdm0pKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MDYtXFx0XFx0cmV0dXJuIDE7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM9NTEyPXZvaWQga3ZtX3Jpc2N2X3ZjcHVfYWlhX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MjAtXFx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjUyMTpcXHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQodmNwdS1cXHUwMDNla3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTIyLVxcdFxcdHJldHVybjtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MjctXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjUyODp2b2lkIGt2bV9yaXNjdl92Y3B1X2FpYV9pbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTI5LXtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01MzgtXFx0ICpcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTM5OlxcdCAqIFJlZmVyLCBhaWFfaW5pdCgpIGltcGxlbWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU0MC1cXHQgKi9cXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01NDc9dm9pZCBrdm1fcmlzY3ZfdmNwdV9haWFfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01NDktXFx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjU1MDpcXHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQodmNwdS1cXHUwMDNla3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTUxLVxcdFxcdHJldHVybjtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01NTc9aW50IGt2bV9yaXNjdl9haWFfaW5qZWN0X21zaV9ieV9pZChzdHJ1Y3Qga3ZtICprdm0sIHUzMiBoYXJ0X2luZGV4LFxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU2My1cXHQvKiBQcm9jZWVkIG9ubHkgaWYgQUlBIHdhcyBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkgKi9cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmM6NTY0OlxcdGlmICgha3ZtX3Jpc2N2X2FpYV9pbml0aWFsaXplZChrdm0pKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy01NjUtXFx0XFx0cmV0dXJuIC1FQlVTWTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYz01Nzg9aW50IGt2bV9yaXNjdl9haWFfaW5qZWN0X21zaShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fbXNpICptc2kpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNTg3LVxcdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo1ODg6XFx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTU4OS1cXHRcXHRyZXR1cm4gLUVCVVNZO1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTYxMj1pbnQga3ZtX3Jpc2N2X2FpYV9pbmplY3RfaXJxKHN0cnVjdCBrdm0gKmt2bSwgdW5zaWduZWQgaW50IGlycSwgYm9vbCBsZXZlbClcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MTQtXFx0LyogUHJvY2VlZCBvbmx5IGlmIEFJQSB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5ICovXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jOjYxNTpcXHRpZiAoIWt2bV9yaXNjdl9haWFfaW5pdGlhbGl6ZWQoa3ZtKSlcXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjE2LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjIxLVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MjI6dm9pZCBrdm1fcmlzY3ZfYWlhX2luaXRfdm0oc3RydWN0IGt2bSAqa3ZtKVxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYy02MjMte1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTYzMi1cXHQgKlxcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2MzM6XFx0ICogUmVmZXIsIGFpYV9pbml0KCkgaW1wbGVtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjM0LVxcdCAqL1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jPTY0OD12b2lkIGt2bV9yaXNjdl9haWFfZGVzdHJveV92bShzdHJ1Y3Qga3ZtICprdm0pXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS9haWFfZGV2aWNlLmMtNjUwLVxcdC8qIFByb2NlZWQgb25seSBpZiBBSUEgd2FzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSAqL1xcbmFyY2gvcmlzY3Yva3ZtL2FpYV9kZXZpY2UuYzo2NTE6XFx0aWYgKCFrdm1fcmlzY3ZfYWlhX2luaXRpYWxpemVkKGt2bSkpXFxuYXJjaC9yaXNjdi9rdm0vYWlhX2RldmljZS5jLTY1Mi1cXHRcXHRyZXR1cm47XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjI3Ljg3OTMwNjA3NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNDk5MzAwMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBhIHBvdGVudGlhbCBmdXp6aW5nIHRhcmdldC4gVGhlIGZ1bmN0aW9uIGBhaWFfaW5pdGAgZ2V0cyBjYWxsZWQgZnJvbSBgYWlhX3NldF9hdHRyYC4gYGFpYV9zZXRfYXR0cmAgaXMgcGFydCBvZiB0aGUgYGt2bV9yaXNjdl9haWFfZGV2aWNlX29wc2Agc3RydWN0dXJlLiBUaGF0IHRlbGxzIG1lIHRoaXMgaXMgYSBLVk0gZGV2aWNlIGF0dHJpYnV0ZSBzZXR0ZXIsIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBgS1ZNX1NFVF9ERVZJQ0VfQVRUUmAgaW9jdGwgb24gYSBLVk0gZGV2aWNlIG9mIHR5cGUgYEtWTV9ERVZfVFlQRV9SSVNDVl9BSUFgLiBUaGF0IGlvY3RsIGludGVyYWN0aW9uIGlzIHRoZSBqdWljeSBiaXQg4oCTIGRlZmluaXRlbHkgZnV6emFibGUuXG5cbk15IHByaW1hcnkgZm9jdXMgZm9yIGZ1enppbmcgc2hvdWxkIGJlIGVpdGhlciBgYWlhX2luaXRgIG9yIGBhaWFfc2V0X2F0dHJgLCBzZWVtcyBsaWtlIGEgZ29vZCBwbGFjZSB0byBzdGFydC4gTm93LCBiZWZvcmUgSSBqdW1wIGluLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucyBlbmFibGVkIHRvIGhpdCB0aGlzIGNvZGUgcGF0aC4gT2J2aW91c2x5LCBgQ09ORklHX0tWTWAgaXMgY3J1Y2lhbCwgdGhhdCBnb2VzIHdpdGhvdXQgc2F5aW5nLiBJIG5lZWQgdG8gZGlnIGRlZXBlciBmb3IgYW55IFJJU0MtViBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCB0aGlzLiBUaW1lIHRvIGRvdWJsZS1jaGVjayBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AgYWdhaW4gdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1MjMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MzEuOTI5MjM3OTYyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjE3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJhcmNoL3Jpc2N2L2t2bS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0c291cmNlIFxcXCJ2aXJ0L2t2bS9LY29uZmlnXFxcIlxcbiAgIDc6XFx0XFxuICAgODpcXHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXFxuICAgOTpcXHRcXHRib29sIFxcXCJWaXJ0dWFsaXphdGlvblxcXCJcXG4gIDEwOlxcdFxcdGhlbHBcXG4gIDExOlxcdFxcdCAgU2F5IFkgaGVyZSB0byBnZXQgdG8gc2VlIG9wdGlvbnMgZm9yIHVzaW5nIHlvdXIgTGludXggaG9zdCB0byBydW5cXG4gIDEyOlxcdFxcdCAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgaW5zaWRlIHZpcnR1YWwgbWFjaGluZXMgKGd1ZXN0cykuXFxuICAxMzpcXHRcXHQgIFRoaXMgb3B0aW9uIGFsb25lIGRvZXMgbm90IGFkZCBhbnkga2VybmVsIGNvZGUuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgSWYgeW91IHNheSBOLCBhbGwgb3B0aW9ucyBpbiB0aGlzIHN1Ym1lbnUgd2lsbCBiZSBza2lwcGVkIGFuZFxcbiAgMTY6XFx0XFx0ICBkaXNhYmxlZC5cXG4gIDE3OlxcdFxcbiAgMTg6XFx0aWYgVklSVFVBTElaQVRJT05cXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEtWTVxcbiAgMjE6XFx0XFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gUklTQ1ZfU0JJIFxcdTAwMjZcXHUwMDI2IE1NVVxcbiAgMjM6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0lSUUNISVBcXG4gIDI0OlxcdFxcdHNlbGVjdCBIQVZFX0tWTV9JUlFfUk9VVElOR1xcbiAgMjU6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX01TSVxcbiAgMjY6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX1JFQURPTkxZX01FTVxcbiAgMjc6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0RJUlRZX1JJTkdfQUNRX1JFTFxcbiAgMjg6XFx0XFx0c2VsZWN0IEtWTV9DT01NT05cXG4gIDI5OlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG4gIDMwOlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xcbiAgMzE6XFx0XFx0c2VsZWN0IEtWTV9NTUlPXFxuICAzMjpcXHRcXHRzZWxlY3QgVklSVF9YRkVSX1RPX0dVRVNUX1dPUktcXG4gIDMzOlxcdFxcdHNlbGVjdCBTQ0hFRF9JTkZPXFxuICAzNDpcXHRcXHRzZWxlY3QgR1VFU1RfUEVSRl9FVkVOVFMgaWYgUEVSRl9FVkVOVFNcXG4gIDM1OlxcdFxcdGhlbHBcXG4gIDM2OlxcdFxcdCAgU3VwcG9ydCBob3N0aW5nIHZpcnR1YWxpemVkIGd1ZXN0IG1hY2hpbmVzLlxcbiAgMzc6XFx0XFxuICAzODpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuICAzOTpcXHRcXG4gIDQwOlxcdGVuZGlmICMgVklSVFVBTElaQVRJT05cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MzEuOTI5Mzg2NDMxWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMDcyNTk3MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1ZNIGFuZCBBSUEgSW5pdGlhbGl6YXRpb246IEEgRnV6emluZyBUYXJnZXQqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGhlcmUgaXMgZGVmaW5pdGVseSBgS1ZNYC4gVGhhdCdzIHRoZSBiYXNlbGluZS4gTXkgZm9jdXMsIHRob3VnaCwgaXMgb24gdGhlIGBhaWFfaW5pdGAgc3ltYm9sLiBUaGUgcmVhc29uIGlzIHByZXR0eSBjbGVhciDigJMgdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIHZhbGlkYXRpb24gY2hlY2sgKndpdGhpbiogYGFpYV9pbml0YCwgYW5kIGNyaXRpY2FsbHksIHRoaXMgYGFpYV9pbml0YCBmdW5jdGlvbiBpcyBhY2Nlc3NpYmxlIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggS1ZNIGlvY3Rscy4gVGhhdCBtYWtlcyBpdCBhIHBlcmZlY3QgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBjYW4gcG9rZSBhdCBpdCBhbmQgc2VlIGlmIHdlIGNhbiB0cmlnZ2VyIGFueSBpc3N1ZXMgbm93IHRoYXQgdGhlIHBhdGNoIGlzIGluIHBsYWNlLiBUaGVyZWZvcmUsIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYC4gIFdl4oCZcmUgZW5hYmxpbmcgZnV6emluZyBmb3IgdGhlIGBLVk1gIGNvbmZpZywgYW5kIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIGBhaWFfaW5pdGAgc3ltYm9sLiBUaGlzIHNlZW1zIGxpa2UgYSBwcm9taXNpbmcgcGF0aCB0byB1bmNvdmVyIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMgaW4gdGhlIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgS1ZNIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTAzLCJPdXRwdXRUb2tlbnMiOjc2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDozNS45MzY2NDgxMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0NTE3Mzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhaWFfaW5pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBhaWFfaW5pdGAgZm9yIEtWTSBSSVNDLVYgQUlBIGRldmljZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFpYV9pbml0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGFpYV9pbml0YCBmb3IgS1ZNIFJJU0MtViBBSUEgZGV2aWNlIGluaXRpYWxpemF0aW9uLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowhdd28[1] Phase: Succeeded StartedAt: 2026-07-18 05:10:48 +0000 UTC FinishedAt: 2026-07-18 05:10:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-18 05:10:48 +0000 UTC FinishedAt: 2026-07-18 05:10:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2] Phase: Succeeded StartedAt: 2026-07-18 05:10:48 +0000 UTC FinishedAt: 2026-07-18 06:36:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-18 05:10:48 +0000 UTC FinishedAt: 2026-07-18 06:36:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","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-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-18 05:10:48 +0000 UTC FinishedAt: 2026-07-18 05:10:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-18 05:10:48 +0000 UTC FinishedAt: 2026-07-18 05:10:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowhdd28/series-workflowhdd28-convert-artifact-96313523/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-18 05:10:58 +0000 UTC FinishedAt: 2026-07-18 05:49:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-18 05:10:58 +0000 UTC FinishedAt: 2026-07-18 05:49:04 +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:*1330d357-1486-47b8-830b-18e4fbbd4a18,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-workflowhdd28/series-workflowhdd28-convert-artifact-96313523/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": "3a8c8eb2-51c1-4510-8387-d9c18e008c36", "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-workflowhdd28/series-workflowhdd28-build-action-3240348513/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-18 05:10:58 +0000 UTC FinishedAt: 2026-07-18 05:48:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*1330d357-1486-47b8-830b-18e4fbbd4a18,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-workflowhdd28/series-workflowhdd28-convert-artifact-96313523/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": "3a8c8eb2-51c1-4510-8387-d9c18e008c36", "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-workflowhdd28/series-workflowhdd28-build-action-3240348513/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-18 05:49:04 +0000 UTC FinishedAt: 2026-07-18 05:49:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-18 05:49:04 +0000 UTC FinishedAt: 2026-07-18 05:49:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-18 05:49:04 +0000 UTC FinishedAt: 2026-07-18 05:49:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-18 05:49:04 +0000 UTC FinishedAt: 2026-07-18 05:49:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","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-workflowhdd28/series-workflowhdd28-convert-artifact-733714090/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-18 05:49:25 +0000 UTC FinishedAt: 2026-07-18 05:51:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-18 05:49:25 +0000 UTC FinishedAt: 2026-07-18 05:51:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*3a8c8eb2-51c1-4510-8387-d9c18e008c36,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-workflowhdd28/series-workflowhdd28-build-action-3240348513/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-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-18 05:51:17 +0000 UTC FinishedAt: 2026-07-18 05:51:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-18 05:51:17 +0000 UTC FinishedAt: 2026-07-18 05:51:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-18 05:51:17 +0000 UTC FinishedAt: 2026-07-18 06:31:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-18 05:51:17 +0000 UTC FinishedAt: 2026-07-18 06:31:01 +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:*1330d357-1486-47b8-830b-18e4fbbd4a18,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-workflowhdd28/series-workflowhdd28-convert-artifact-733714090/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": "748fd1dd-f3d4-4ccb-ba42-9e4c7d7646ba", "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-workflowhdd28/series-workflowhdd28-build-action-3049303502/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-18 05:51:17 +0000 UTC FinishedAt: 2026-07-18 06:30:51 +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:*1330d357-1486-47b8-830b-18e4fbbd4a18,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-workflowhdd28/series-workflowhdd28-convert-artifact-733714090/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": "748fd1dd-f3d4-4ccb-ba42-9e4c7d7646ba", "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-workflowhdd28/series-workflowhdd28-build-action-3049303502/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-18 06:31:01 +0000 UTC FinishedAt: 2026-07-18 06:31:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-18 06:31:01 +0000 UTC FinishedAt: 2026-07-18 06:31:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-18 06:31:01 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-18 06:31:01 +0000 UTC FinishedAt: 2026-07-18 06:32:33 +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:*748fd1dd-f3d4-4ccb-ba42-9e4c7d7646ba,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-workflowhdd28/series-workflowhdd28-build-action-3049303502/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-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:36:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:36:09 +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":["aia_init"],"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:*3a8c8eb2-51c1-4510-8387-d9c18e008c36,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*748fd1dd-f3d4-4ccb-ba42-9e4c7d7646ba,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-workflowhdd28/series-workflowhdd28-build-action-3240348513/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-workflowhdd28/series-workflowhdd28-build-action-3049303502/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"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-workflowhdd28/series-workflowhdd28-convert-artifact-1819921983/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-18 06:33:12 +0000 UTC FinishedAt: 2026-07-18 06:36:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhdd28[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["aia_init"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"5cce0c6b-ecfa-4cb6-bf3e-d09eeca6d03e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-18 06:33:12 +0000 UTC FinishedAt: 2026-07-18 06:35:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*3a8c8eb2-51c1-4510-8387-d9c18e008c36,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*748fd1dd-f3d4-4ccb-ba42-9e4c7d7646ba,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-workflowhdd28/series-workflowhdd28-build-action-3240348513/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-workflowhdd28/series-workflowhdd28-build-action-3049303502/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-workflowhdd28/series-workflowhdd28-convert-artifact-1819921983/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,}