Name: series-workflow2wmcg Phase: Succeeded StartedAt: 2026-06-28 00:37:28 +0000 UTC FinishedAt: 2026-06-28 04:49:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[0] Phase: Succeeded StartedAt: 2026-06-28 00:37:28 +0000 UTC FinishedAt: 2026-06-28 00:47:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[0].run-triage Phase: Succeeded StartedAt: 2026-06-28 00:37:28 +0000 UTC FinishedAt: 2026-06-28 00:47:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETDEVSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETDEVSIM" ], "series_id": "336731a2-7201-41b4-8a7e-43f3794dc1f2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nsim_create", "nsim_destroy", "nsim_ethtool_fini" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDAwOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25zaW1fY3JlYXRlJiMzNDssCiAgICAmIzM0O25zaW1fZGVzdHJveSYjMzQ7LAogICAgJiMzNDtuc2ltX2V0aHRvb2xfZmluaSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMjkzMmMwYTlhOTIyOGRmMDBmMTM2NGFjZTliMzhkNTk2ZWZkYmFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdW4gMjggMDA6NDU6NTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbmluZGV4IDkzNTBiYTQ4ZWI4MTU2Li4wMjVlYTc5ODc5ZjNhOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbkBAIC0yNTIsNiAmIzQzOzI1Miw3IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpXG4gXHRucy1cdTAwM2VldGh0b29sLmNoYW5uZWxzID0gbnMtXHUwMDNlbnNpbV9idXNfZGV2LVx1MDAzZW51bV9xdWV1ZXM7XG4gXG4gXHRldGh0b29sID0gZGVidWdmc19jcmVhdGVfZGlyKFwmIzM0O2V0aHRvb2xcJiMzNDssIG5zLVx1MDAzZW5zaW1fZGV2X3BvcnQtXHUwMDNlZGRpcik7XG4mIzQzO1x0bnMtXHUwMDNlZXRodG9vbF9kZGlyID0gZXRodG9vbDtcbiBcbiBcdGRlYnVnZnNfY3JlYXRlX3UzMihcJiMzNDtnZXRfZXJyXCYjMzQ7LCAwNjAwLCBldGh0b29sLCBcdTAwMjZucy1cdTAwM2VldGh0b29sLmdldF9lcnIpO1xuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwmIzM0O3NldF9lcnJcJiMzNDssIDA2MDAsIGV0aHRvb2wsIFx1MDAyNm5zLVx1MDAzZWV0aHRvb2wuc2V0X2Vycik7XG5AQCAtMjcyLDMgJiM0MzsyNzMsOCBAQCB2b2lkIG5zaW1fZXRodG9vbF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwmIzM0O3R4X21heF9wZW5kaW5nXCYjMzQ7LCAwNjAwLCBkaXIsXG4gXHRcdFx0ICAgXHUwMDI2bnMtXHUwMDNlZXRodG9vbC5yaW5nLnR4X21heF9wZW5kaW5nKTtcbiB9XG4mIzQzO1xuJiM0Mzt2b2lkIG5zaW1fZXRodG9vbF9maW5pKHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuJiM0Mzt7XG4mIzQzO1x0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNlZXRodG9vbF9kZGlyKTtcbiYjNDM7fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xuaW5kZXggMjdlNWYxMDlmOTMzZDIuLjRlOWQ3ZTEwYjUyN2U1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmNcbkBAIC0xMTY1LDYgJiM0MzsxMTY1LDcgQEAgc3RydWN0IG5ldGRldnNpbSAqbnNpbV9jcmVhdGUoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2RldixcbiBcdHJldHVybiBucztcbiBcbiBlcnJfZnJlZV9uZXRkZXY6XG4mIzQzO1x0bnNpbV9ldGh0b29sX2ZpbmkobnMpO1xuIFx0ZnJlZV9uZXRkZXYoZGV2KTtcbiBcdHJldHVybiBFUlJfUFRSKGVycik7XG4gfVxuQEAgLTExNzgsNiAmIzQzOzExNzksNyBAQCB2b2lkIG5zaW1fZGVzdHJveShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcbiBcdGRlYnVnZnNfcmVtb3ZlKG5zLVx1MDAzZXZsYW5fZGZzKTtcbiBcdGRlYnVnZnNfcmVtb3ZlKG5zLVx1MDAzZXFyX2Rmcyk7XG4gXHRkZWJ1Z2ZzX3JlbW92ZShucy1cdTAwM2VwcF9kZnMpO1xuJiM0MztcdG5zaW1fZXRodG9vbF9maW5pKG5zKTtcbiBcbiBcdGlmIChucy1cdTAwM2VuYi5ub3RpZmllcl9jYWxsKVxuIFx0XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KG5zLVx1MDAzZW5ldGRldiwgXHUwMDI2bnMtXHUwMDNlbmIsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oXG5pbmRleCA0YzljYzk2ZGNlYzM3NS4uNjRmNzdmOTNkOTM3Y2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxuQEAgLTE1NCw2ICYjNDM7MTU0LDcgQEAgc3RydWN0IG5ldGRldnNpbSB7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpwcF9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpxcl9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICp2bGFuX2RmcztcbiYjNDM7XHRzdHJ1Y3QgZGVudHJ5ICpldGh0b29sX2RkaXI7XG4gXG4gXHRzdHJ1Y3QgbnNpbV9ldGh0b29sIGV0aHRvb2w7XG4gXHRzdHJ1Y3QgbmV0ZGV2c2ltIF9fcmN1ICpwZWVyO1xuQEAgLTE2OSw2ICYjNDM7MTcwLDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuIGJvb2wgbmV0ZGV2X2lzX25zaW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG4gXG4gdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7XG4mIzQzO3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuIFxuIHZvaWQgbnNpbV91ZHBfdHVubmVsc19kZWJ1Z2ZzX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2KTtcbiBpbnQgbnNpbV91ZHBfdHVubmVsc19pbmZvX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDAwOjQ1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25zaW1fY3JlYXRlJiMzNDssCiAgICAmIzM0O25zaW1fZGVzdHJveSYjMzQ7LAogICAgJiMzNDtuc2ltX2V0aHRvb2xfZmluaSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGEyOTMyYzBhOWE5MjI4ZGYwMGYxMzY0YWNlOWIzOGQ1OTZlZmRiYWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1biAyOCAwMDo0NTo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vZXRodG9vbC5jCmluZGV4IDkzNTBiYTQ4ZWI4MTU2Li4wMjVlYTc5ODc5ZjNhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vZXRodG9vbC5jCkBAIC0yNTIsNiAmIzQzOzI1Miw3IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpCiAJbnMtJmd0O2V0aHRvb2wuY2hhbm5lbHMgPSBucy0mZ3Q7bnNpbV9idXNfZGV2LSZndDtudW1fcXVldWVzOwogCiAJZXRodG9vbCA9IGRlYnVnZnNfY3JlYXRlX2RpcigmIzM0O2V0aHRvb2wmIzM0OywgbnMtJmd0O25zaW1fZGV2X3BvcnQtJmd0O2RkaXIpOwomIzQzOwlucy0mZ3Q7ZXRodG9vbF9kZGlyID0gZXRodG9vbDsKIAogCWRlYnVnZnNfY3JlYXRlX3UzMigmIzM0O2dldF9lcnImIzM0OywgMDYwMCwgZXRodG9vbCwgJmFtcDtucy0mZ3Q7ZXRodG9vbC5nZXRfZXJyKTsKIAlkZWJ1Z2ZzX2NyZWF0ZV91MzIoJiMzNDtzZXRfZXJyJiMzNDssIDA2MDAsIGV0aHRvb2wsICZhbXA7bnMtJmd0O2V0aHRvb2wuc2V0X2Vycik7CkBAIC0yNzIsMyAmIzQzOzI3Myw4IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpCiAJZGVidWdmc19jcmVhdGVfdTMyKCYjMzQ7dHhfbWF4X3BlbmRpbmcmIzM0OywgMDYwMCwgZGlyLAogCQkJICAgJmFtcDtucy0mZ3Q7ZXRodG9vbC5yaW5nLnR4X21heF9wZW5kaW5nKTsKIH0KJiM0MzsKJiM0Mzt2b2lkIG5zaW1fZXRodG9vbF9maW5pKHN0cnVjdCBuZXRkZXZzaW0gKm5zKQomIzQzO3sKJiM0MzsJZGVidWdmc19yZW1vdmUobnMtJmd0O2V0aHRvb2xfZGRpcik7CiYjNDM7fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jCmluZGV4IDI3ZTVmMTA5ZjkzM2QyLi40ZTlkN2UxMGI1MjdlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYwpAQCAtMTE2NSw2ICYjNDM7MTE2NSw3IEBAIHN0cnVjdCBuZXRkZXZzaW0gKm5zaW1fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsCiAJcmV0dXJuIG5zOwogCiBlcnJfZnJlZV9uZXRkZXY6CiYjNDM7CW5zaW1fZXRodG9vbF9maW5pKG5zKTsKIAlmcmVlX25ldGRldihkZXYpOwogCXJldHVybiBFUlJfUFRSKGVycik7CiB9CkBAIC0xMTc4LDYgJiM0MzsxMTc5LDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpCiAJZGVidWdmc19yZW1vdmUobnMtJmd0O3ZsYW5fZGZzKTsKIAlkZWJ1Z2ZzX3JlbW92ZShucy0mZ3Q7cXJfZGZzKTsKIAlkZWJ1Z2ZzX3JlbW92ZShucy0mZ3Q7cHBfZGZzKTsKJiM0MzsJbnNpbV9ldGh0b29sX2ZpbmkobnMpOwogCiAJaWYgKG5zLSZndDtuYi5ub3RpZmllcl9jYWxsKQogCQl1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KG5zLSZndDtuZXRkZXYsICZhbXA7bnMtJmd0O25iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oCmluZGV4IDRjOWNjOTZkY2VjMzc1Li42NGY3N2Y5M2Q5MzdjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaApAQCAtMTU0LDYgJiM0MzsxNTQsNyBAQCBzdHJ1Y3QgbmV0ZGV2c2ltIHsKIAlzdHJ1Y3QgZGVudHJ5ICpwcF9kZnM7CiAJc3RydWN0IGRlbnRyeSAqcXJfZGZzOwogCXN0cnVjdCBkZW50cnkgKnZsYW5fZGZzOwomIzQzOwlzdHJ1Y3QgZGVudHJ5ICpldGh0b29sX2RkaXI7CiAKIAlzdHJ1Y3QgbnNpbV9ldGh0b29sIGV0aHRvb2w7CiAJc3RydWN0IG5ldGRldnNpbSBfX3JjdSAqcGVlcjsKQEAgLTE2OSw2ICYjNDM7MTcwLDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpOwogYm9vbCBuZXRkZXZfaXNfbnNpbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIAogdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7CiYjNDM7dm9pZCBuc2ltX2V0aHRvb2xfZmluaShzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7CiAKIHZvaWQgbnNpbV91ZHBfdHVubmVsc19kZWJ1Z2ZzX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2KTsKIGludCBuc2ltX3VkcF90dW5uZWxzX2luZm9fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDAwOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2ODMKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0ZGV2c2ltIE1lbW9yeSBMZWFrIEZpeCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGJ1dCBteSBleHBlcnQgZXllIGlzIGFsd2F5cyBzY2FubmluZyBmb3IgZnV6emluZyBvcHBvcnR1bml0aWVzLiBUaGlzIG9uZSBtb2RpZmllcyB0aGUgYG5ldGRldnNpbWAgZHJpdmVyLCB3aGljaCBpcyBhbHJlYWR5IGEgZ29vZCBzaWduLCBnaXZlbiBpdHMgdGVzdGluZyBmb2N1cy4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYG5zaW1fZXRodG9vbF9maW5pYCBhbmQgY2FsbGluZyBpdCBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgbnNpbV9jcmVhdGVgIGFuZCBpbiBgbnNpbV9kZXN0cm95YC4gSXQgYWxzbyBpbnRyb2R1Y2VzIGBldGh0b29sX2RkaXJgIHRvIHRoZSBgbmV0ZGV2c2ltYCBzdHJ1Y3R1cmUuIFRoaXMgYXBwZWFycyB0byBiZSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgcmVsYXRlZCB0byB0aGUgYGV0aHRvb2xgIGRlYnVnZnMgZGlyZWN0b3J5LCB3aGljaCB3YXMgY3JlYXRlZCBpbiBgbnNpbV9ldGh0b29sX2luaXRgLiBTbywgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcGF0Y2hlcyBhIGxlYWsuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGlzIHNvbWV0aGluZyB3ZSBjYW4gZnV6ei4gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBgbmV0ZGV2c2ltYCwgYW5kIGZyb20gd2hhdCBJIGtub3csIHRoYXQmIzM5O3MgdHlwaWNhbGx5IGVuYWJsZWQgd2l0aCBgQ09ORklHX05FVERFVlNJTWAuIExldCBtZSBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyByZWFsIHF1aWNrIHRvIGNvbmZpcm0gbXkgaHVuY2ggYW5kIG1ha2Ugc3VyZSBpdCYjMzk7cyBlbmFibGVkIGNvcnJlY3RseS4gSWYgc28sIGFuZCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBmdW5jdGlvbnMgbW9kaWZpZWQg4oCTIGBuc2ltX2NyZWF0ZWAgYW5kIGBuc2ltX2Rlc3Ryb3lgIOKAkyB0aGVyZSYjMzk7cyBsaWtlbHkgcG90ZW50aWFsIGZvciBmdXp6aW5nIG5ldyBkZXZpY2UgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uIHJvdXRpbmVzIHRvIGV4cG9zZSBvdGhlciBwb3RlbnRpYWwgaXNzdWVzIG9yIHRyaWdnZXIgdGhlIGZpeGVkIGJ1Zy4gVGhpcyBmaXggcHJlc2VudHMgYW4gaW50ZXJlc3Rpbmcgb3Bwb3J0dW5pdHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtORVRERVZTSU0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9uZXRkZXZzaW0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI0NQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipGaW5kaW5nIHRoZSBLY29uZmlnKioKCkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgcmVxdWlyZXMgYSBkZWVwIGRpdmUgaW50byBrZXJuZWwgY29uZmlndXJhdGlvbi4gTXkgZmlyc3QgcmVmbGV4LCBhcyBhbHdheXMsIGlzIHRvIGxvY2F0ZSB0aGUgS2NvbmZpZyBmaWxlLiBJdCYjMzk7cyB0aGUgY29ybmVyc3RvbmUgb2YgYW55IHByb3BlciBjb25maWd1cmF0aW9uIHdvcmtmbG93LiBJJiMzOTttIGFzc3VtaW5nIHRoYXQgaXTigJlzIHByZXNlbnQgYW5kIHRoYXQgSSYjMzk7bSBhYmxlIHRvIGZpbmQgaXQsIGJ1dCBpdCYjMzk7cyB0aGUgb2J2aW91cyBmaXJzdCBzdGVwIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBhdmFpbGFibGUgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIHdpdGhpbiB0aGlzIHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9uIGNvbnRleHQuIEkgbmVlZCB0aGF0IGJhc2UgbGF5ZXIgYmVmb3JlIEkgY2FuIGV2ZW4gYmVnaW4gdG8gdGhpbmsgYWJvdXQgaG93IHRvIGFjdHVhbGx5IGFwcHJvYWNoIHRoZSBwcm9ibGVtIHRoYXQgbGVkIG1lIGhlcmUuIEdvdHRhIGdldCBteSBiZWFyaW5ncyBiZWZvcmUgbW92aW5nIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVUREVWU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTYwMj1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWctNjAzLVxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDQ6Y29uZmlnIE5FVERFVlNJTVxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDUtXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwMDo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTIwCgkJCQkJCQlvdXRwdXQ6IDExMAoJCQkJCQkJdGhvdWdodHM6IDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIE5FVERFVlNJTSBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIHNldHVwIGNvbmZpZ3VyZWQgZm9yIGBORVRERVZTSU1gLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBhIHBhcnRpY3VsYXIgc2V0IG9mIGRldmljZSBzaW11bGF0aW9uIHRvb2xzLiBUaGUgZm9jdXMgaGVyZSBpcyBvbiB0aHJlZSBrZXkgZnVuY3Rpb25zOiBgbnNpbV9jcmVhdGVgLCBgbnNpbV9kZXN0cm95YCwgYW5kIGBuc2ltX2V0aHRvb2xfZmluaWAuIEl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSB0aGUgYnVpbGRpbmcgYmxvY2tzIG9mIHRoaXMgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCYjMzk7cyBuZXR3b3JrIGRldmljZSBtYW5hZ2VtZW50LgoKRmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHNvbWV0aGluZyBiYXNpYyBidXQgaW1wb3J0YW50OiBpcyBgbnNpbV9ldGh0b29sX2ZpbmlgIGEgc3RhdGljIGZ1bmN0aW9uPyBLbm93aW5nIGl0cyBzY29wZSBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyB2aXNpYmlsaXR5IGFuZCBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGUgYnJvYWRlciBjb2RlYmFzZS4gTm9wZSwgaXQgaXNuJiMzOTt0IHN0YXRpYy4gTm93LCB3aXRoIHRoYXQgb3V0IG9mIHRoZSB3YXksIEkgbmVlZCB0byB0dXJuIG15IGF0dGVudGlvbiB0byBgbnNpbV9jcmVhdGVgIGFuZCBgbnNpbV9kZXN0cm95YC4gVGhlc2UgYXJlIHRoZSBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLCByZXNwZWN0aXZlbHkuIFVuZGVyc3RhbmRpbmcgdGhlaXIgcm9sZXMgaXMgZ29pbmcgdG8gYmUgdGhlIGtleSB0byBhc3Nlc3NpbmcgdGhpcyBzaW11bGF0aW9uIG1vZHVsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwMDo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUREVWU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnNpbV9jcmVhdGUmIzM0OywKICAgICYjMzQ7bnNpbV9kZXN0cm95JiMzNDssCiAgICAmIzM0O25zaW1fZXRodG9vbF9maW5pJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZGVidWdmcyBsZWFrIGluIG5ldGRldnNpbSBieSBhZGRpbmcgYW5kIGNhbGxpbmcgbnNpbV9ldGh0b29sX2ZpbmkgZHVyaW5nIGRldmljZSBjcmVhdGlvbiBlcnJvciBwYXRocyBhbmQgZGV2aWNlIGRlc3RydWN0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSB2aXJ0dWFsIG5ldHdvcmtpbmcgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUREVWU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnNpbV9jcmVhdGUmIzM0OywKICAgICYjMzQ7bnNpbV9kZXN0cm95JiMzNDssCiAgICAmIzM0O25zaW1fZXRodG9vbF9maW5pJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZGVidWdmcyBsZWFrIGluIG5ldGRldnNpbSBieSBhZGRpbmcgYW5kIGNhbGxpbmcgbnNpbV9ldGh0b29sX2ZpbmkgZHVyaW5nIGRldmljZSBjcmVhdGlvbiBlcnJvciBwYXRocyBhbmQgZGV2aWNlIGRlc3RydWN0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSB2aXJ0dWFsIG5ldHdvcmtpbmcgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDAwOjQ1OjU3LjY2MTk5OTQ2M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTAxODk4Nzc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVERFVlNJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5zaW1fY3JlYXRlXCIsXG4gICAgXCJuc2ltX2Rlc3Ryb3lcIixcbiAgICBcIm5zaW1fZXRodG9vbF9maW5pXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBkZWJ1Z2ZzIGxlYWsgaW4gbmV0ZGV2c2ltIGJ5IGFkZGluZyBhbmQgY2FsbGluZyBuc2ltX2V0aHRvb2xfZmluaSBkdXJpbmcgZGV2aWNlIGNyZWF0aW9uIGVycm9yIHBhdGhzIGFuZCBkZXZpY2UgZGVzdHJ1Y3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHZpcnR1YWwgbmV0d29ya2luZyBkcml2ZXIgdGhhdCBjYW4gYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NTo1Ny42NjIwMDQwNDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMTQ1NTY5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGEyOTMyYzBhOWE5MjI4ZGYwMGYxMzY0YWNlOWIzOGQ1OTZlZmRiYWRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMDA6NDU6NTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcXG5pbmRleCA5MzUwYmE0OGViODE1Ni4uMDI1ZWE3OTg3OWYzYTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuY1xcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcXG5AQCAtMjUyLDYgKzI1Miw3IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpXFxuIFxcdG5zLVxcdTAwM2VldGh0b29sLmNoYW5uZWxzID0gbnMtXFx1MDAzZW5zaW1fYnVzX2Rldi1cXHUwMDNlbnVtX3F1ZXVlcztcXG4gXFxuIFxcdGV0aHRvb2wgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoXFxcImV0aHRvb2xcXFwiLCBucy1cXHUwMDNlbnNpbV9kZXZfcG9ydC1cXHUwMDNlZGRpcik7XFxuK1xcdG5zLVxcdTAwM2VldGh0b29sX2RkaXIgPSBldGh0b29sO1xcbiBcXG4gXFx0ZGVidWdmc19jcmVhdGVfdTMyKFxcXCJnZXRfZXJyXFxcIiwgMDYwMCwgZXRodG9vbCwgXFx1MDAyNm5zLVxcdTAwM2VldGh0b29sLmdldF9lcnIpO1xcbiBcXHRkZWJ1Z2ZzX2NyZWF0ZV91MzIoXFxcInNldF9lcnJcXFwiLCAwNjAwLCBldGh0b29sLCBcXHUwMDI2bnMtXFx1MDAzZWV0aHRvb2wuc2V0X2Vycik7XFxuQEAgLTI3MiwzICsyNzMsOCBAQCB2b2lkIG5zaW1fZXRodG9vbF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxcbiBcXHRkZWJ1Z2ZzX2NyZWF0ZV91MzIoXFxcInR4X21heF9wZW5kaW5nXFxcIiwgMDYwMCwgZGlyLFxcbiBcXHRcXHRcXHQgICBcXHUwMDI2bnMtXFx1MDAzZWV0aHRvb2wucmluZy50eF9tYXhfcGVuZGluZyk7XFxuIH1cXG4rXFxuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpXFxuK3tcXG4rXFx0ZGVidWdmc19yZW1vdmUobnMtXFx1MDAzZWV0aHRvb2xfZGRpcik7XFxuK31cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jXFxuaW5kZXggMjdlNWYxMDlmOTMzZDIuLjRlOWQ3ZTEwYjUyN2U1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xcbkBAIC0xMTY1LDYgKzExNjUsNyBAQCBzdHJ1Y3QgbmV0ZGV2c2ltICpuc2ltX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxcbiBcXHRyZXR1cm4gbnM7XFxuIFxcbiBlcnJfZnJlZV9uZXRkZXY6XFxuK1xcdG5zaW1fZXRodG9vbF9maW5pKG5zKTtcXG4gXFx0ZnJlZV9uZXRkZXYoZGV2KTtcXG4gXFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4gfVxcbkBAIC0xMTc4LDYgKzExNzksNyBAQCB2b2lkIG5zaW1fZGVzdHJveShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcXG4gXFx0ZGVidWdmc19yZW1vdmUobnMtXFx1MDAzZXZsYW5fZGZzKTtcXG4gXFx0ZGVidWdmc19yZW1vdmUobnMtXFx1MDAzZXFyX2Rmcyk7XFxuIFxcdGRlYnVnZnNfcmVtb3ZlKG5zLVxcdTAwM2VwcF9kZnMpO1xcbitcXHRuc2ltX2V0aHRvb2xfZmluaShucyk7XFxuIFxcbiBcXHRpZiAobnMtXFx1MDAzZW5iLm5vdGlmaWVyX2NhbGwpXFxuIFxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyX2Rldl9uZXQobnMtXFx1MDAzZW5ldGRldiwgXFx1MDAyNm5zLVxcdTAwM2VuYixcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oXFxuaW5kZXggNGM5Y2M5NmRjZWMzNzUuLjY0Zjc3ZjkzZDkzN2NkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxcbkBAIC0xNTQsNiArMTU0LDcgQEAgc3RydWN0IG5ldGRldnNpbSB7XFxuIFxcdHN0cnVjdCBkZW50cnkgKnBwX2RmcztcXG4gXFx0c3RydWN0IGRlbnRyeSAqcXJfZGZzO1xcbiBcXHRzdHJ1Y3QgZGVudHJ5ICp2bGFuX2RmcztcXG4rXFx0c3RydWN0IGRlbnRyeSAqZXRodG9vbF9kZGlyO1xcbiBcXG4gXFx0c3RydWN0IG5zaW1fZXRodG9vbCBldGh0b29sO1xcbiBcXHRzdHJ1Y3QgbmV0ZGV2c2ltIF9fcmN1ICpwZWVyO1xcbkBAIC0xNjksNiArMTcwLDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbiBib29sIG5ldGRldl9pc19uc2ltKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbiBcXG4gdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7XFxuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbiBcXG4gdm9pZCBuc2ltX3VkcF90dW5uZWxzX2RlYnVnZnNfY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYpO1xcbiBpbnQgbnNpbV91ZHBfdHVubmVsc19pbmZvX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NTo1OC4wOTQxOTk1OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE2Njk2OTA1MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnNpbV9jcmVhdGVcIixcbiAgICBcIm5zaW1fZGVzdHJveVwiLFxuICAgIFwibnNpbV9ldGh0b29sX2ZpbmlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTI5MzJjMGE5YTkyMjhkZjAwZjEzNjRhY2U5YjM4ZDU5NmVmZGJhZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDAwOjQ1OjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbmluZGV4IDkzNTBiYTQ4ZWI4MTU2Li4wMjVlYTc5ODc5ZjNhOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbkBAIC0yNTIsNiArMjUyLDcgQEAgdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucylcbiBcdG5zLVx1MDAzZWV0aHRvb2wuY2hhbm5lbHMgPSBucy1cdTAwM2Vuc2ltX2J1c19kZXYtXHUwMDNlbnVtX3F1ZXVlcztcbiBcbiBcdGV0aHRvb2wgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoXCJldGh0b29sXCIsIG5zLVx1MDAzZW5zaW1fZGV2X3BvcnQtXHUwMDNlZGRpcik7XG4rXHRucy1cdTAwM2VldGh0b29sX2RkaXIgPSBldGh0b29sO1xuIFxuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwiZ2V0X2VyclwiLCAwNjAwLCBldGh0b29sLCBcdTAwMjZucy1cdTAwM2VldGh0b29sLmdldF9lcnIpO1xuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwic2V0X2VyclwiLCAwNjAwLCBldGh0b29sLCBcdTAwMjZucy1cdTAwM2VldGh0b29sLnNldF9lcnIpO1xuQEAgLTI3MiwzICsyNzMsOCBAQCB2b2lkIG5zaW1fZXRodG9vbF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwidHhfbWF4X3BlbmRpbmdcIiwgMDYwMCwgZGlyLFxuIFx0XHRcdCAgIFx1MDAyNm5zLVx1MDAzZWV0aHRvb2wucmluZy50eF9tYXhfcGVuZGluZyk7XG4gfVxuK1xuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpXG4re1xuK1x0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNlZXRodG9vbF9kZGlyKTtcbit9XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jXG5pbmRleCAyN2U1ZjEwOWY5MzNkMi4uNGU5ZDdlMTBiNTI3ZTUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmNcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xuQEAgLTExNjUsNiArMTE2NSw3IEBAIHN0cnVjdCBuZXRkZXZzaW0gKm5zaW1fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsXG4gXHRyZXR1cm4gbnM7XG4gXG4gZXJyX2ZyZWVfbmV0ZGV2OlxuK1x0bnNpbV9ldGh0b29sX2ZpbmkobnMpO1xuIFx0ZnJlZV9uZXRkZXYoZGV2KTtcbiBcdHJldHVybiBFUlJfUFRSKGVycik7XG4gfVxuQEAgLTExNzgsNiArMTE3OSw3IEBAIHZvaWQgbnNpbV9kZXN0cm95KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuIFx0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNldmxhbl9kZnMpO1xuIFx0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNlcXJfZGZzKTtcbiBcdGRlYnVnZnNfcmVtb3ZlKG5zLVx1MDAzZXBwX2Rmcyk7XG4rXHRuc2ltX2V0aHRvb2xfZmluaShucyk7XG4gXG4gXHRpZiAobnMtXHUwMDNlbmIubm90aWZpZXJfY2FsbClcbiBcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJfZGV2X25ldChucy1cdTAwM2VuZXRkZXYsIFx1MDAyNm5zLVx1MDAzZW5iLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaCBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxuaW5kZXggNGM5Y2M5NmRjZWMzNzUuLjY0Zjc3ZjkzZDkzN2NkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oXG4rKysgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmhcbkBAIC0xNTQsNiArMTU0LDcgQEAgc3RydWN0IG5ldGRldnNpbSB7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpwcF9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpxcl9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICp2bGFuX2RmcztcbitcdHN0cnVjdCBkZW50cnkgKmV0aHRvb2xfZGRpcjtcbiBcbiBcdHN0cnVjdCBuc2ltX2V0aHRvb2wgZXRodG9vbDtcbiBcdHN0cnVjdCBuZXRkZXZzaW0gX19yY3UgKnBlZXI7XG5AQCAtMTY5LDYgKzE3MCw3IEBAIHZvaWQgbnNpbV9kZXN0cm95KHN0cnVjdCBuZXRkZXZzaW0gKm5zKTtcbiBib29sIG5ldGRldl9pc19uc2ltKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuIFxuIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuIFxuIHZvaWQgbnNpbV91ZHBfdHVubmVsc19kZWJ1Z2ZzX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2KTtcbiBpbnQgbnNpbV91ZHBfdHVubmVsc19pbmZvX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDA6NDU6NTguMDk0MjAxMDhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDgzMDQxOTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldGRldnNpbSBNZW1vcnkgTGVhayBGaXgqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IG15IGV4cGVydCBleWUgaXMgYWx3YXlzIHNjYW5uaW5nIGZvciBmdXp6aW5nIG9wcG9ydHVuaXRpZXMuIFRoaXMgb25lIG1vZGlmaWVzIHRoZSBgbmV0ZGV2c2ltYCBkcml2ZXIsIHdoaWNoIGlzIGFscmVhZHkgYSBnb29kIHNpZ24sIGdpdmVuIGl0cyB0ZXN0aW5nIGZvY3VzLiBTcGVjaWZpY2FsbHksIGl0J3MgYWRkaW5nIGBuc2ltX2V0aHRvb2xfZmluaWAgYW5kIGNhbGxpbmcgaXQgaW4gdGhlIGVycm9yIHBhdGggb2YgYG5zaW1fY3JlYXRlYCBhbmQgaW4gYG5zaW1fZGVzdHJveWAuIEl0IGFsc28gaW50cm9kdWNlcyBgZXRodG9vbF9kZGlyYCB0byB0aGUgYG5ldGRldnNpbWAgc3RydWN0dXJlLiBUaGlzIGFwcGVhcnMgdG8gYmUgYWRkcmVzc2luZyBhIG1lbW9yeSBsZWFrIHJlbGF0ZWQgdG8gdGhlIGBldGh0b29sYCBkZWJ1Z2ZzIGRpcmVjdG9yeSwgd2hpY2ggd2FzIGNyZWF0ZWQgaW4gYG5zaW1fZXRodG9vbF9pbml0YC4gU28sIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcGF0Y2hlcyBhIGxlYWsuXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiBmdXp6LiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBuZXRkZXZzaW1gLCBhbmQgZnJvbSB3aGF0IEkga25vdywgdGhhdCdzIHR5cGljYWxseSBlbmFibGVkIHdpdGggYENPTkZJR19ORVRERVZTSU1gLiBMZXQgbWUgY2hlY2sgdGhlIEtjb25maWcgZmlsZXMgcmVhbCBxdWljayB0byBjb25maXJtIG15IGh1bmNoIGFuZCBtYWtlIHN1cmUgaXQncyBlbmFibGVkIGNvcnJlY3RseS4gSWYgc28sIGFuZCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBmdW5jdGlvbnMgbW9kaWZpZWQg4oCTIGBuc2ltX2NyZWF0ZWAgYW5kIGBuc2ltX2Rlc3Ryb3lgIOKAkyB0aGVyZSdzIGxpa2VseSBwb3RlbnRpYWwgZm9yIGZ1enppbmcgbmV3IGRldmljZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gcm91dGluZXMgdG8gZXhwb3NlIG90aGVyIHBvdGVudGlhbCBpc3N1ZXMgb3IgdHJpZ2dlciB0aGUgZml4ZWQgYnVnLiBUaGlzIGZpeCBwcmVzZW50cyBhbiBpbnRlcmVzdGluZyBvcHBvcnR1bml0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY4MywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDAwOjQ2OjAyLjU3NzI0NjUwNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU1OTM0NCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTkVUREVWU0lNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L25ldGRldnNpbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NjowMi42MzY4MTQ1OTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTI2NTgwNzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRmluZGluZyB0aGUgS2NvbmZpZyoqXG5cbkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgcmVxdWlyZXMgYSBkZWVwIGRpdmUgaW50byBrZXJuZWwgY29uZmlndXJhdGlvbi4gTXkgZmlyc3QgcmVmbGV4LCBhcyBhbHdheXMsIGlzIHRvIGxvY2F0ZSB0aGUgS2NvbmZpZyBmaWxlLiBJdCdzIHRoZSBjb3JuZXJzdG9uZSBvZiBhbnkgcHJvcGVyIGNvbmZpZ3VyYXRpb24gd29ya2Zsb3cuIEknbSBhc3N1bWluZyB0aGF0IGl04oCZcyBwcmVzZW50IGFuZCB0aGF0IEknbSBhYmxlIHRvIGZpbmQgaXQsIGJ1dCBpdCdzIHRoZSBvYnZpb3VzIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoaXMgc3BlY2lmaWMga2VybmVsIGNvbmZpZ3VyYXRpb24gY29udGV4dC4gSSBuZWVkIHRoYXQgYmFzZSBsYXllciBiZWZvcmUgSSBjYW4gZXZlbiBiZWdpbiB0byB0aGluayBhYm91dCBob3cgdG8gYWN0dWFsbHkgYXBwcm9hY2ggdGhlIHByb2JsZW0gdGhhdCBsZWQgbWUgaGVyZS4gR290dGEgZ2V0IG15IGJlYXJpbmdzIGJlZm9yZSBtb3ZpbmcgZm9yd2FyZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI0NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDAwOjQ2OjA1LjU2MzM5NzQzOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTc2Njc4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRERVZTSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTYwMj1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L2h5cGVydi9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWctNjAzLVxcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA0OmNvbmZpZyBORVRERVZTSU1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTYwNS1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIG5ldHdvcmtpbmcgZGV2aWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NjowNS42MTUxODE2NDRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDY5NTc5OTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBORVRERVZTSU0gQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgc2V0dXAgY29uZmlndXJlZCBmb3IgYE5FVERFVlNJTWAsIHdoaWNoIGltbWVkaWF0ZWx5IGZsYWdzIGEgcGFydGljdWxhciBzZXQgb2YgZGV2aWNlIHNpbXVsYXRpb24gdG9vbHMuIFRoZSBmb2N1cyBoZXJlIGlzIG9uIHRocmVlIGtleSBmdW5jdGlvbnM6IGBuc2ltX2NyZWF0ZWAsIGBuc2ltX2Rlc3Ryb3lgLCBhbmQgYG5zaW1fZXRodG9vbF9maW5pYC4gSXQncyBwcmV0dHkgY2xlYXIgdGhhdCB0aGVzZSBhcmUgdGhlIGJ1aWxkaW5nIGJsb2NrcyBvZiB0aGlzIHNpbXVsYXRpb24gZW52aXJvbm1lbnQncyBuZXR3b3JrIGRldmljZSBtYW5hZ2VtZW50LlxuXG5GaXJzdCwgSSBuZWVkIHRvIGNvbmZpcm0gc29tZXRoaW5nIGJhc2ljIGJ1dCBpbXBvcnRhbnQ6IGlzIGBuc2ltX2V0aHRvb2xfZmluaWAgYSBzdGF0aWMgZnVuY3Rpb24/IEtub3dpbmcgaXRzIHNjb3BlIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaXRzIHZpc2liaWxpdHkgYW5kIHBvdGVudGlhbCBpbnRlcmFjdGlvbnMgd2l0aGluIHRoZSBicm9hZGVyIGNvZGViYXNlLiBOb3BlLCBpdCBpc24ndCBzdGF0aWMuIE5vdywgd2l0aCB0aGF0IG91dCBvZiB0aGUgd2F5LCBJIG5lZWQgdG8gdHVybiBteSBhdHRlbnRpb24gdG8gYG5zaW1fY3JlYXRlYCBhbmQgYG5zaW1fZGVzdHJveWAuIFRoZXNlIGFyZSB0aGUgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycywgcmVzcGVjdGl2ZWx5LiBVbmRlcnN0YW5kaW5nIHRoZWlyIHJvbGVzIGlzIGdvaW5nIHRvIGJlIHRoZSBrZXkgdG8gYXNzZXNzaW5nIHRoaXMgc2ltdWxhdGlvbiBtb2R1bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MjAsIk91dHB1dFRva2VucyI6MTEwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDA6NDY6MDkuNjg0NzY0MDY5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTEyMjcwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnNpbV9jcmVhdGVcIixcbiAgICBcIm5zaW1fZGVzdHJveVwiLFxuICAgIFwibnNpbV9ldGh0b29sX2ZpbmlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnNpbV9jcmVhdGVcIixcbiAgICBcIm5zaW1fZGVzdHJveVwiLFxuICAgIFwibnNpbV9ldGh0b29sX2ZpbmlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow2wmcg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-28 00:37:28 +0000 UTC FinishedAt: 2026-06-28 00:46:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETDEVSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NETDEVSIM" ], "series_id": "336731a2-7201-41b4-8a7e-43f3794dc1f2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nsim_create", "nsim_destroy", "nsim_ethtool_fini" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDAwOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25zaW1fY3JlYXRlJiMzNDssCiAgICAmIzM0O25zaW1fZGVzdHJveSYjMzQ7LAogICAgJiMzNDtuc2ltX2V0aHRvb2xfZmluaSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMjkzMmMwYTlhOTIyOGRmMDBmMTM2NGFjZTliMzhkNTk2ZWZkYmFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdW4gMjggMDA6NDU6NTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbmluZGV4IDkzNTBiYTQ4ZWI4MTU2Li4wMjVlYTc5ODc5ZjNhOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbkBAIC0yNTIsNiAmIzQzOzI1Miw3IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpXG4gXHRucy1cdTAwM2VldGh0b29sLmNoYW5uZWxzID0gbnMtXHUwMDNlbnNpbV9idXNfZGV2LVx1MDAzZW51bV9xdWV1ZXM7XG4gXG4gXHRldGh0b29sID0gZGVidWdmc19jcmVhdGVfZGlyKFwmIzM0O2V0aHRvb2xcJiMzNDssIG5zLVx1MDAzZW5zaW1fZGV2X3BvcnQtXHUwMDNlZGRpcik7XG4mIzQzO1x0bnMtXHUwMDNlZXRodG9vbF9kZGlyID0gZXRodG9vbDtcbiBcbiBcdGRlYnVnZnNfY3JlYXRlX3UzMihcJiMzNDtnZXRfZXJyXCYjMzQ7LCAwNjAwLCBldGh0b29sLCBcdTAwMjZucy1cdTAwM2VldGh0b29sLmdldF9lcnIpO1xuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwmIzM0O3NldF9lcnJcJiMzNDssIDA2MDAsIGV0aHRvb2wsIFx1MDAyNm5zLVx1MDAzZWV0aHRvb2wuc2V0X2Vycik7XG5AQCAtMjcyLDMgJiM0MzsyNzMsOCBAQCB2b2lkIG5zaW1fZXRodG9vbF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwmIzM0O3R4X21heF9wZW5kaW5nXCYjMzQ7LCAwNjAwLCBkaXIsXG4gXHRcdFx0ICAgXHUwMDI2bnMtXHUwMDNlZXRodG9vbC5yaW5nLnR4X21heF9wZW5kaW5nKTtcbiB9XG4mIzQzO1xuJiM0Mzt2b2lkIG5zaW1fZXRodG9vbF9maW5pKHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuJiM0Mzt7XG4mIzQzO1x0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNlZXRodG9vbF9kZGlyKTtcbiYjNDM7fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xuaW5kZXggMjdlNWYxMDlmOTMzZDIuLjRlOWQ3ZTEwYjUyN2U1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmNcbkBAIC0xMTY1LDYgJiM0MzsxMTY1LDcgQEAgc3RydWN0IG5ldGRldnNpbSAqbnNpbV9jcmVhdGUoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2RldixcbiBcdHJldHVybiBucztcbiBcbiBlcnJfZnJlZV9uZXRkZXY6XG4mIzQzO1x0bnNpbV9ldGh0b29sX2ZpbmkobnMpO1xuIFx0ZnJlZV9uZXRkZXYoZGV2KTtcbiBcdHJldHVybiBFUlJfUFRSKGVycik7XG4gfVxuQEAgLTExNzgsNiAmIzQzOzExNzksNyBAQCB2b2lkIG5zaW1fZGVzdHJveShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcbiBcdGRlYnVnZnNfcmVtb3ZlKG5zLVx1MDAzZXZsYW5fZGZzKTtcbiBcdGRlYnVnZnNfcmVtb3ZlKG5zLVx1MDAzZXFyX2Rmcyk7XG4gXHRkZWJ1Z2ZzX3JlbW92ZShucy1cdTAwM2VwcF9kZnMpO1xuJiM0MztcdG5zaW1fZXRodG9vbF9maW5pKG5zKTtcbiBcbiBcdGlmIChucy1cdTAwM2VuYi5ub3RpZmllcl9jYWxsKVxuIFx0XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KG5zLVx1MDAzZW5ldGRldiwgXHUwMDI2bnMtXHUwMDNlbmIsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oXG5pbmRleCA0YzljYzk2ZGNlYzM3NS4uNjRmNzdmOTNkOTM3Y2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxuQEAgLTE1NCw2ICYjNDM7MTU0LDcgQEAgc3RydWN0IG5ldGRldnNpbSB7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpwcF9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpxcl9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICp2bGFuX2RmcztcbiYjNDM7XHRzdHJ1Y3QgZGVudHJ5ICpldGh0b29sX2RkaXI7XG4gXG4gXHRzdHJ1Y3QgbnNpbV9ldGh0b29sIGV0aHRvb2w7XG4gXHRzdHJ1Y3QgbmV0ZGV2c2ltIF9fcmN1ICpwZWVyO1xuQEAgLTE2OSw2ICYjNDM7MTcwLDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuIGJvb2wgbmV0ZGV2X2lzX25zaW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG4gXG4gdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7XG4mIzQzO3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuIFxuIHZvaWQgbnNpbV91ZHBfdHVubmVsc19kZWJ1Z2ZzX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2KTtcbiBpbnQgbnNpbV91ZHBfdHVubmVsc19pbmZvX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDAwOjQ1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVERFVlNJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25zaW1fY3JlYXRlJiMzNDssCiAgICAmIzM0O25zaW1fZGVzdHJveSYjMzQ7LAogICAgJiMzNDtuc2ltX2V0aHRvb2xfZmluaSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGEyOTMyYzBhOWE5MjI4ZGYwMGYxMzY0YWNlOWIzOGQ1OTZlZmRiYWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1biAyOCAwMDo0NTo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vZXRodG9vbC5jCmluZGV4IDkzNTBiYTQ4ZWI4MTU2Li4wMjVlYTc5ODc5ZjNhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vZXRodG9vbC5jCkBAIC0yNTIsNiAmIzQzOzI1Miw3IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpCiAJbnMtJmd0O2V0aHRvb2wuY2hhbm5lbHMgPSBucy0mZ3Q7bnNpbV9idXNfZGV2LSZndDtudW1fcXVldWVzOwogCiAJZXRodG9vbCA9IGRlYnVnZnNfY3JlYXRlX2RpcigmIzM0O2V0aHRvb2wmIzM0OywgbnMtJmd0O25zaW1fZGV2X3BvcnQtJmd0O2RkaXIpOwomIzQzOwlucy0mZ3Q7ZXRodG9vbF9kZGlyID0gZXRodG9vbDsKIAogCWRlYnVnZnNfY3JlYXRlX3UzMigmIzM0O2dldF9lcnImIzM0OywgMDYwMCwgZXRodG9vbCwgJmFtcDtucy0mZ3Q7ZXRodG9vbC5nZXRfZXJyKTsKIAlkZWJ1Z2ZzX2NyZWF0ZV91MzIoJiMzNDtzZXRfZXJyJiMzNDssIDA2MDAsIGV0aHRvb2wsICZhbXA7bnMtJmd0O2V0aHRvb2wuc2V0X2Vycik7CkBAIC0yNzIsMyAmIzQzOzI3Myw4IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpCiAJZGVidWdmc19jcmVhdGVfdTMyKCYjMzQ7dHhfbWF4X3BlbmRpbmcmIzM0OywgMDYwMCwgZGlyLAogCQkJICAgJmFtcDtucy0mZ3Q7ZXRodG9vbC5yaW5nLnR4X21heF9wZW5kaW5nKTsKIH0KJiM0MzsKJiM0Mzt2b2lkIG5zaW1fZXRodG9vbF9maW5pKHN0cnVjdCBuZXRkZXZzaW0gKm5zKQomIzQzO3sKJiM0MzsJZGVidWdmc19yZW1vdmUobnMtJmd0O2V0aHRvb2xfZGRpcik7CiYjNDM7fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jCmluZGV4IDI3ZTVmMTA5ZjkzM2QyLi40ZTlkN2UxMGI1MjdlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYwpAQCAtMTE2NSw2ICYjNDM7MTE2NSw3IEBAIHN0cnVjdCBuZXRkZXZzaW0gKm5zaW1fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsCiAJcmV0dXJuIG5zOwogCiBlcnJfZnJlZV9uZXRkZXY6CiYjNDM7CW5zaW1fZXRodG9vbF9maW5pKG5zKTsKIAlmcmVlX25ldGRldihkZXYpOwogCXJldHVybiBFUlJfUFRSKGVycik7CiB9CkBAIC0xMTc4LDYgJiM0MzsxMTc5LDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpCiAJZGVidWdmc19yZW1vdmUobnMtJmd0O3ZsYW5fZGZzKTsKIAlkZWJ1Z2ZzX3JlbW92ZShucy0mZ3Q7cXJfZGZzKTsKIAlkZWJ1Z2ZzX3JlbW92ZShucy0mZ3Q7cHBfZGZzKTsKJiM0MzsJbnNpbV9ldGh0b29sX2ZpbmkobnMpOwogCiAJaWYgKG5zLSZndDtuYi5ub3RpZmllcl9jYWxsKQogCQl1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KG5zLSZndDtuZXRkZXYsICZhbXA7bnMtJmd0O25iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oCmluZGV4IDRjOWNjOTZkY2VjMzc1Li42NGY3N2Y5M2Q5MzdjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaApAQCAtMTU0LDYgJiM0MzsxNTQsNyBAQCBzdHJ1Y3QgbmV0ZGV2c2ltIHsKIAlzdHJ1Y3QgZGVudHJ5ICpwcF9kZnM7CiAJc3RydWN0IGRlbnRyeSAqcXJfZGZzOwogCXN0cnVjdCBkZW50cnkgKnZsYW5fZGZzOwomIzQzOwlzdHJ1Y3QgZGVudHJ5ICpldGh0b29sX2RkaXI7CiAKIAlzdHJ1Y3QgbnNpbV9ldGh0b29sIGV0aHRvb2w7CiAJc3RydWN0IG5ldGRldnNpbSBfX3JjdSAqcGVlcjsKQEAgLTE2OSw2ICYjNDM7MTcwLDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpOwogYm9vbCBuZXRkZXZfaXNfbnNpbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIAogdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7CiYjNDM7dm9pZCBuc2ltX2V0aHRvb2xfZmluaShzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7CiAKIHZvaWQgbnNpbV91ZHBfdHVubmVsc19kZWJ1Z2ZzX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2KTsKIGludCBuc2ltX3VkcF90dW5uZWxzX2luZm9fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDAwOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2ODMKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0ZGV2c2ltIE1lbW9yeSBMZWFrIEZpeCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGJ1dCBteSBleHBlcnQgZXllIGlzIGFsd2F5cyBzY2FubmluZyBmb3IgZnV6emluZyBvcHBvcnR1bml0aWVzLiBUaGlzIG9uZSBtb2RpZmllcyB0aGUgYG5ldGRldnNpbWAgZHJpdmVyLCB3aGljaCBpcyBhbHJlYWR5IGEgZ29vZCBzaWduLCBnaXZlbiBpdHMgdGVzdGluZyBmb2N1cy4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYG5zaW1fZXRodG9vbF9maW5pYCBhbmQgY2FsbGluZyBpdCBpbiB0aGUgZXJyb3IgcGF0aCBvZiBgbnNpbV9jcmVhdGVgIGFuZCBpbiBgbnNpbV9kZXN0cm95YC4gSXQgYWxzbyBpbnRyb2R1Y2VzIGBldGh0b29sX2RkaXJgIHRvIHRoZSBgbmV0ZGV2c2ltYCBzdHJ1Y3R1cmUuIFRoaXMgYXBwZWFycyB0byBiZSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgcmVsYXRlZCB0byB0aGUgYGV0aHRvb2xgIGRlYnVnZnMgZGlyZWN0b3J5LCB3aGljaCB3YXMgY3JlYXRlZCBpbiBgbnNpbV9ldGh0b29sX2luaXRgLiBTbywgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcGF0Y2hlcyBhIGxlYWsuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGlzIHNvbWV0aGluZyB3ZSBjYW4gZnV6ei4gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBgbmV0ZGV2c2ltYCwgYW5kIGZyb20gd2hhdCBJIGtub3csIHRoYXQmIzM5O3MgdHlwaWNhbGx5IGVuYWJsZWQgd2l0aCBgQ09ORklHX05FVERFVlNJTWAuIExldCBtZSBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyByZWFsIHF1aWNrIHRvIGNvbmZpcm0gbXkgaHVuY2ggYW5kIG1ha2Ugc3VyZSBpdCYjMzk7cyBlbmFibGVkIGNvcnJlY3RseS4gSWYgc28sIGFuZCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBmdW5jdGlvbnMgbW9kaWZpZWQg4oCTIGBuc2ltX2NyZWF0ZWAgYW5kIGBuc2ltX2Rlc3Ryb3lgIOKAkyB0aGVyZSYjMzk7cyBsaWtlbHkgcG90ZW50aWFsIGZvciBmdXp6aW5nIG5ldyBkZXZpY2UgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uIHJvdXRpbmVzIHRvIGV4cG9zZSBvdGhlciBwb3RlbnRpYWwgaXNzdWVzIG9yIHRyaWdnZXIgdGhlIGZpeGVkIGJ1Zy4gVGhpcyBmaXggcHJlc2VudHMgYW4gaW50ZXJlc3Rpbmcgb3Bwb3J0dW5pdHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtORVRERVZTSU0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9uZXRkZXZzaW0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI0NQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipGaW5kaW5nIHRoZSBLY29uZmlnKioKCkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgcmVxdWlyZXMgYSBkZWVwIGRpdmUgaW50byBrZXJuZWwgY29uZmlndXJhdGlvbi4gTXkgZmlyc3QgcmVmbGV4LCBhcyBhbHdheXMsIGlzIHRvIGxvY2F0ZSB0aGUgS2NvbmZpZyBmaWxlLiBJdCYjMzk7cyB0aGUgY29ybmVyc3RvbmUgb2YgYW55IHByb3BlciBjb25maWd1cmF0aW9uIHdvcmtmbG93LiBJJiMzOTttIGFzc3VtaW5nIHRoYXQgaXTigJlzIHByZXNlbnQgYW5kIHRoYXQgSSYjMzk7bSBhYmxlIHRvIGZpbmQgaXQsIGJ1dCBpdCYjMzk7cyB0aGUgb2J2aW91cyBmaXJzdCBzdGVwIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBhdmFpbGFibGUgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIHdpdGhpbiB0aGlzIHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9uIGNvbnRleHQuIEkgbmVlZCB0aGF0IGJhc2UgbGF5ZXIgYmVmb3JlIEkgY2FuIGV2ZW4gYmVnaW4gdG8gdGhpbmsgYWJvdXQgaG93IHRvIGFjdHVhbGx5IGFwcHJvYWNoIHRoZSBwcm9ibGVtIHRoYXQgbGVkIG1lIGhlcmUuIEdvdHRhIGdldCBteSBiZWFyaW5ncyBiZWZvcmUgbW92aW5nIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDA6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVUREVWU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTYwMj1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvaHlwZXJ2L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWctNjAzLVxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDQ6Y29uZmlnIE5FVERFVlNJTVxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDUtXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwMDo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTIwCgkJCQkJCQlvdXRwdXQ6IDExMAoJCQkJCQkJdGhvdWdodHM6IDgzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIE5FVERFVlNJTSBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIHNldHVwIGNvbmZpZ3VyZWQgZm9yIGBORVRERVZTSU1gLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBhIHBhcnRpY3VsYXIgc2V0IG9mIGRldmljZSBzaW11bGF0aW9uIHRvb2xzLiBUaGUgZm9jdXMgaGVyZSBpcyBvbiB0aHJlZSBrZXkgZnVuY3Rpb25zOiBgbnNpbV9jcmVhdGVgLCBgbnNpbV9kZXN0cm95YCwgYW5kIGBuc2ltX2V0aHRvb2xfZmluaWAuIEl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSB0aGUgYnVpbGRpbmcgYmxvY2tzIG9mIHRoaXMgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCYjMzk7cyBuZXR3b3JrIGRldmljZSBtYW5hZ2VtZW50LgoKRmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHNvbWV0aGluZyBiYXNpYyBidXQgaW1wb3J0YW50OiBpcyBgbnNpbV9ldGh0b29sX2ZpbmlgIGEgc3RhdGljIGZ1bmN0aW9uPyBLbm93aW5nIGl0cyBzY29wZSBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyB2aXNpYmlsaXR5IGFuZCBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIHdpdGhpbiB0aGUgYnJvYWRlciBjb2RlYmFzZS4gTm9wZSwgaXQgaXNuJiMzOTt0IHN0YXRpYy4gTm93LCB3aXRoIHRoYXQgb3V0IG9mIHRoZSB3YXksIEkgbmVlZCB0byB0dXJuIG15IGF0dGVudGlvbiB0byBgbnNpbV9jcmVhdGVgIGFuZCBgbnNpbV9kZXN0cm95YC4gVGhlc2UgYXJlIHRoZSBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLCByZXNwZWN0aXZlbHkuIFVuZGVyc3RhbmRpbmcgdGhlaXIgcm9sZXMgaXMgZ29pbmcgdG8gYmUgdGhlIGtleSB0byBhc3Nlc3NpbmcgdGhpcyBzaW11bGF0aW9uIG1vZHVsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwMDo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUREVWU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnNpbV9jcmVhdGUmIzM0OywKICAgICYjMzQ7bnNpbV9kZXN0cm95JiMzNDssCiAgICAmIzM0O25zaW1fZXRodG9vbF9maW5pJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZGVidWdmcyBsZWFrIGluIG5ldGRldnNpbSBieSBhZGRpbmcgYW5kIGNhbGxpbmcgbnNpbV9ldGh0b29sX2ZpbmkgZHVyaW5nIGRldmljZSBjcmVhdGlvbiBlcnJvciBwYXRocyBhbmQgZGV2aWNlIGRlc3RydWN0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSB2aXJ0dWFsIG5ldHdvcmtpbmcgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUREVWU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bnNpbV9jcmVhdGUmIzM0OywKICAgICYjMzQ7bnNpbV9kZXN0cm95JiMzNDssCiAgICAmIzM0O25zaW1fZXRodG9vbF9maW5pJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZGVidWdmcyBsZWFrIGluIG5ldGRldnNpbSBieSBhZGRpbmcgYW5kIGNhbGxpbmcgbnNpbV9ldGh0b29sX2ZpbmkgZHVyaW5nIGRldmljZSBjcmVhdGlvbiBlcnJvciBwYXRocyBhbmQgZGV2aWNlIGRlc3RydWN0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSB2aXJ0dWFsIG5ldHdvcmtpbmcgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDAwOjQ1OjU3LjY2MTk5OTQ2M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTAxODk4Nzc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVERFVlNJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5zaW1fY3JlYXRlXCIsXG4gICAgXCJuc2ltX2Rlc3Ryb3lcIixcbiAgICBcIm5zaW1fZXRodG9vbF9maW5pXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBkZWJ1Z2ZzIGxlYWsgaW4gbmV0ZGV2c2ltIGJ5IGFkZGluZyBhbmQgY2FsbGluZyBuc2ltX2V0aHRvb2xfZmluaSBkdXJpbmcgZGV2aWNlIGNyZWF0aW9uIGVycm9yIHBhdGhzIGFuZCBkZXZpY2UgZGVzdHJ1Y3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHZpcnR1YWwgbmV0d29ya2luZyBkcml2ZXIgdGhhdCBjYW4gYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NTo1Ny42NjIwMDQwNDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMTQ1NTY5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGEyOTMyYzBhOWE5MjI4ZGYwMGYxMzY0YWNlOWIzOGQ1OTZlZmRiYWRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMDA6NDU6NTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcXG5pbmRleCA5MzUwYmE0OGViODE1Ni4uMDI1ZWE3OTg3OWYzYTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuY1xcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcXG5AQCAtMjUyLDYgKzI1Miw3IEBAIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpXFxuIFxcdG5zLVxcdTAwM2VldGh0b29sLmNoYW5uZWxzID0gbnMtXFx1MDAzZW5zaW1fYnVzX2Rldi1cXHUwMDNlbnVtX3F1ZXVlcztcXG4gXFxuIFxcdGV0aHRvb2wgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoXFxcImV0aHRvb2xcXFwiLCBucy1cXHUwMDNlbnNpbV9kZXZfcG9ydC1cXHUwMDNlZGRpcik7XFxuK1xcdG5zLVxcdTAwM2VldGh0b29sX2RkaXIgPSBldGh0b29sO1xcbiBcXG4gXFx0ZGVidWdmc19jcmVhdGVfdTMyKFxcXCJnZXRfZXJyXFxcIiwgMDYwMCwgZXRodG9vbCwgXFx1MDAyNm5zLVxcdTAwM2VldGh0b29sLmdldF9lcnIpO1xcbiBcXHRkZWJ1Z2ZzX2NyZWF0ZV91MzIoXFxcInNldF9lcnJcXFwiLCAwNjAwLCBldGh0b29sLCBcXHUwMDI2bnMtXFx1MDAzZWV0aHRvb2wuc2V0X2Vycik7XFxuQEAgLTI3MiwzICsyNzMsOCBAQCB2b2lkIG5zaW1fZXRodG9vbF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxcbiBcXHRkZWJ1Z2ZzX2NyZWF0ZV91MzIoXFxcInR4X21heF9wZW5kaW5nXFxcIiwgMDYwMCwgZGlyLFxcbiBcXHRcXHRcXHQgICBcXHUwMDI2bnMtXFx1MDAzZWV0aHRvb2wucmluZy50eF9tYXhfcGVuZGluZyk7XFxuIH1cXG4rXFxuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpXFxuK3tcXG4rXFx0ZGVidWdmc19yZW1vdmUobnMtXFx1MDAzZWV0aHRvb2xfZGRpcik7XFxuK31cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jXFxuaW5kZXggMjdlNWYxMDlmOTMzZDIuLjRlOWQ3ZTEwYjUyN2U1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xcbkBAIC0xMTY1LDYgKzExNjUsNyBAQCBzdHJ1Y3QgbmV0ZGV2c2ltICpuc2ltX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxcbiBcXHRyZXR1cm4gbnM7XFxuIFxcbiBlcnJfZnJlZV9uZXRkZXY6XFxuK1xcdG5zaW1fZXRodG9vbF9maW5pKG5zKTtcXG4gXFx0ZnJlZV9uZXRkZXYoZGV2KTtcXG4gXFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4gfVxcbkBAIC0xMTc4LDYgKzExNzksNyBAQCB2b2lkIG5zaW1fZGVzdHJveShzdHJ1Y3QgbmV0ZGV2c2ltICpucylcXG4gXFx0ZGVidWdmc19yZW1vdmUobnMtXFx1MDAzZXZsYW5fZGZzKTtcXG4gXFx0ZGVidWdmc19yZW1vdmUobnMtXFx1MDAzZXFyX2Rmcyk7XFxuIFxcdGRlYnVnZnNfcmVtb3ZlKG5zLVxcdTAwM2VwcF9kZnMpO1xcbitcXHRuc2ltX2V0aHRvb2xfZmluaShucyk7XFxuIFxcbiBcXHRpZiAobnMtXFx1MDAzZW5iLm5vdGlmaWVyX2NhbGwpXFxuIFxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyX2Rldl9uZXQobnMtXFx1MDAzZW5ldGRldiwgXFx1MDAyNm5zLVxcdTAwM2VuYixcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oXFxuaW5kZXggNGM5Y2M5NmRjZWMzNzUuLjY0Zjc3ZjkzZDkzN2NkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxcbkBAIC0xNTQsNiArMTU0LDcgQEAgc3RydWN0IG5ldGRldnNpbSB7XFxuIFxcdHN0cnVjdCBkZW50cnkgKnBwX2RmcztcXG4gXFx0c3RydWN0IGRlbnRyeSAqcXJfZGZzO1xcbiBcXHRzdHJ1Y3QgZGVudHJ5ICp2bGFuX2RmcztcXG4rXFx0c3RydWN0IGRlbnRyeSAqZXRodG9vbF9kZGlyO1xcbiBcXG4gXFx0c3RydWN0IG5zaW1fZXRodG9vbCBldGh0b29sO1xcbiBcXHRzdHJ1Y3QgbmV0ZGV2c2ltIF9fcmN1ICpwZWVyO1xcbkBAIC0xNjksNiArMTcwLDcgQEAgdm9pZCBuc2ltX2Rlc3Ryb3koc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbiBib29sIG5ldGRldl9pc19uc2ltKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbiBcXG4gdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucyk7XFxuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xcbiBcXG4gdm9pZCBuc2ltX3VkcF90dW5uZWxzX2RlYnVnZnNfY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYpO1xcbiBpbnQgbnNpbV91ZHBfdHVubmVsc19pbmZvX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NTo1OC4wOTQxOTk1OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE2Njk2OTA1MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnNpbV9jcmVhdGVcIixcbiAgICBcIm5zaW1fZGVzdHJveVwiLFxuICAgIFwibnNpbV9ldGh0b29sX2ZpbmlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTI5MzJjMGE5YTkyMjhkZjAwZjEzNjRhY2U5YjM4ZDU5NmVmZGJhZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDAwOjQ1OjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbmluZGV4IDkzNTBiYTQ4ZWI4MTU2Li4wMjVlYTc5ODc5ZjNhOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9ldGh0b29sLmNcbkBAIC0yNTIsNiArMjUyLDcgQEAgdm9pZCBuc2ltX2V0aHRvb2xfaW5pdChzdHJ1Y3QgbmV0ZGV2c2ltICpucylcbiBcdG5zLVx1MDAzZWV0aHRvb2wuY2hhbm5lbHMgPSBucy1cdTAwM2Vuc2ltX2J1c19kZXYtXHUwMDNlbnVtX3F1ZXVlcztcbiBcbiBcdGV0aHRvb2wgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoXCJldGh0b29sXCIsIG5zLVx1MDAzZW5zaW1fZGV2X3BvcnQtXHUwMDNlZGRpcik7XG4rXHRucy1cdTAwM2VldGh0b29sX2RkaXIgPSBldGh0b29sO1xuIFxuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwiZ2V0X2VyclwiLCAwNjAwLCBldGh0b29sLCBcdTAwMjZucy1cdTAwM2VldGh0b29sLmdldF9lcnIpO1xuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwic2V0X2VyclwiLCAwNjAwLCBldGh0b29sLCBcdTAwMjZucy1cdTAwM2VldGh0b29sLnNldF9lcnIpO1xuQEAgLTI3MiwzICsyNzMsOCBAQCB2b2lkIG5zaW1fZXRodG9vbF9pbml0KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuIFx0ZGVidWdmc19jcmVhdGVfdTMyKFwidHhfbWF4X3BlbmRpbmdcIiwgMDYwMCwgZGlyLFxuIFx0XHRcdCAgIFx1MDAyNm5zLVx1MDAzZWV0aHRvb2wucmluZy50eF9tYXhfcGVuZGluZyk7XG4gfVxuK1xuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpXG4re1xuK1x0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNlZXRodG9vbF9kZGlyKTtcbit9XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIGIvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jXG5pbmRleCAyN2U1ZjEwOWY5MzNkMi4uNGU5ZDdlMTBiNTI3ZTUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmNcbisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuY1xuQEAgLTExNjUsNiArMTE2NSw3IEBAIHN0cnVjdCBuZXRkZXZzaW0gKm5zaW1fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsXG4gXHRyZXR1cm4gbnM7XG4gXG4gZXJyX2ZyZWVfbmV0ZGV2OlxuK1x0bnNpbV9ldGh0b29sX2ZpbmkobnMpO1xuIFx0ZnJlZV9uZXRkZXYoZGV2KTtcbiBcdHJldHVybiBFUlJfUFRSKGVycik7XG4gfVxuQEAgLTExNzgsNiArMTE3OSw3IEBAIHZvaWQgbnNpbV9kZXN0cm95KHN0cnVjdCBuZXRkZXZzaW0gKm5zKVxuIFx0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNldmxhbl9kZnMpO1xuIFx0ZGVidWdmc19yZW1vdmUobnMtXHUwMDNlcXJfZGZzKTtcbiBcdGRlYnVnZnNfcmVtb3ZlKG5zLVx1MDAzZXBwX2Rmcyk7XG4rXHRuc2ltX2V0aHRvb2xfZmluaShucyk7XG4gXG4gXHRpZiAobnMtXHUwMDNlbmIubm90aWZpZXJfY2FsbClcbiBcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJfZGV2X25ldChucy1cdTAwM2VuZXRkZXYsIFx1MDAyNm5zLVx1MDAzZW5iLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaCBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXZzaW0uaFxuaW5kZXggNGM5Y2M5NmRjZWMzNzUuLjY0Zjc3ZjkzZDkzN2NkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldnNpbS5oXG4rKysgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2c2ltLmhcbkBAIC0xNTQsNiArMTU0LDcgQEAgc3RydWN0IG5ldGRldnNpbSB7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpwcF9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICpxcl9kZnM7XG4gXHRzdHJ1Y3QgZGVudHJ5ICp2bGFuX2RmcztcbitcdHN0cnVjdCBkZW50cnkgKmV0aHRvb2xfZGRpcjtcbiBcbiBcdHN0cnVjdCBuc2ltX2V0aHRvb2wgZXRodG9vbDtcbiBcdHN0cnVjdCBuZXRkZXZzaW0gX19yY3UgKnBlZXI7XG5AQCAtMTY5LDYgKzE3MCw3IEBAIHZvaWQgbnNpbV9kZXN0cm95KHN0cnVjdCBuZXRkZXZzaW0gKm5zKTtcbiBib29sIG5ldGRldl9pc19uc2ltKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuIFxuIHZvaWQgbnNpbV9ldGh0b29sX2luaXQoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuK3ZvaWQgbnNpbV9ldGh0b29sX2Zpbmkoc3RydWN0IG5ldGRldnNpbSAqbnMpO1xuIFxuIHZvaWQgbnNpbV91ZHBfdHVubmVsc19kZWJ1Z2ZzX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2KTtcbiBpbnQgbnNpbV91ZHBfdHVubmVsc19pbmZvX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDA6NDU6NTguMDk0MjAxMDhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDgzMDQxOTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldGRldnNpbSBNZW1vcnkgTGVhayBGaXgqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IG15IGV4cGVydCBleWUgaXMgYWx3YXlzIHNjYW5uaW5nIGZvciBmdXp6aW5nIG9wcG9ydHVuaXRpZXMuIFRoaXMgb25lIG1vZGlmaWVzIHRoZSBgbmV0ZGV2c2ltYCBkcml2ZXIsIHdoaWNoIGlzIGFscmVhZHkgYSBnb29kIHNpZ24sIGdpdmVuIGl0cyB0ZXN0aW5nIGZvY3VzLiBTcGVjaWZpY2FsbHksIGl0J3MgYWRkaW5nIGBuc2ltX2V0aHRvb2xfZmluaWAgYW5kIGNhbGxpbmcgaXQgaW4gdGhlIGVycm9yIHBhdGggb2YgYG5zaW1fY3JlYXRlYCBhbmQgaW4gYG5zaW1fZGVzdHJveWAuIEl0IGFsc28gaW50cm9kdWNlcyBgZXRodG9vbF9kZGlyYCB0byB0aGUgYG5ldGRldnNpbWAgc3RydWN0dXJlLiBUaGlzIGFwcGVhcnMgdG8gYmUgYWRkcmVzc2luZyBhIG1lbW9yeSBsZWFrIHJlbGF0ZWQgdG8gdGhlIGBldGh0b29sYCBkZWJ1Z2ZzIGRpcmVjdG9yeSwgd2hpY2ggd2FzIGNyZWF0ZWQgaW4gYG5zaW1fZXRodG9vbF9pbml0YC4gU28sIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcGF0Y2hlcyBhIGxlYWsuXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiBmdXp6LiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBuZXRkZXZzaW1gLCBhbmQgZnJvbSB3aGF0IEkga25vdywgdGhhdCdzIHR5cGljYWxseSBlbmFibGVkIHdpdGggYENPTkZJR19ORVRERVZTSU1gLiBMZXQgbWUgY2hlY2sgdGhlIEtjb25maWcgZmlsZXMgcmVhbCBxdWljayB0byBjb25maXJtIG15IGh1bmNoIGFuZCBtYWtlIHN1cmUgaXQncyBlbmFibGVkIGNvcnJlY3RseS4gSWYgc28sIGFuZCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBmdW5jdGlvbnMgbW9kaWZpZWQg4oCTIGBuc2ltX2NyZWF0ZWAgYW5kIGBuc2ltX2Rlc3Ryb3lgIOKAkyB0aGVyZSdzIGxpa2VseSBwb3RlbnRpYWwgZm9yIGZ1enppbmcgbmV3IGRldmljZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gcm91dGluZXMgdG8gZXhwb3NlIG90aGVyIHBvdGVudGlhbCBpc3N1ZXMgb3IgdHJpZ2dlciB0aGUgZml4ZWQgYnVnLiBUaGlzIGZpeCBwcmVzZW50cyBhbiBpbnRlcmVzdGluZyBvcHBvcnR1bml0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY4MywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDAwOjQ2OjAyLjU3NzI0NjUwNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU1OTM0NCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTkVUREVWU0lNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L25ldGRldnNpbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NjowMi42MzY4MTQ1OTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTI2NTgwNzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRmluZGluZyB0aGUgS2NvbmZpZyoqXG5cbkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgcmVxdWlyZXMgYSBkZWVwIGRpdmUgaW50byBrZXJuZWwgY29uZmlndXJhdGlvbi4gTXkgZmlyc3QgcmVmbGV4LCBhcyBhbHdheXMsIGlzIHRvIGxvY2F0ZSB0aGUgS2NvbmZpZyBmaWxlLiBJdCdzIHRoZSBjb3JuZXJzdG9uZSBvZiBhbnkgcHJvcGVyIGNvbmZpZ3VyYXRpb24gd29ya2Zsb3cuIEknbSBhc3N1bWluZyB0aGF0IGl04oCZcyBwcmVzZW50IGFuZCB0aGF0IEknbSBhYmxlIHRvIGZpbmQgaXQsIGJ1dCBpdCdzIHRoZSBvYnZpb3VzIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoaXMgc3BlY2lmaWMga2VybmVsIGNvbmZpZ3VyYXRpb24gY29udGV4dC4gSSBuZWVkIHRoYXQgYmFzZSBsYXllciBiZWZvcmUgSSBjYW4gZXZlbiBiZWdpbiB0byB0aGluayBhYm91dCBob3cgdG8gYWN0dWFsbHkgYXBwcm9hY2ggdGhlIHByb2JsZW0gdGhhdCBsZWQgbWUgaGVyZS4gR290dGEgZ2V0IG15IGJlYXJpbmdzIGJlZm9yZSBtb3ZpbmcgZm9yd2FyZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI0NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDAwOjQ2OjA1LjU2MzM5NzQzOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTc2Njc4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRERVZTSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTYwMj1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L2h5cGVydi9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWctNjAzLVxcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA0OmNvbmZpZyBORVRERVZTSU1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTYwNS1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIG5ldHdvcmtpbmcgZGV2aWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwMDo0NjowNS42MTUxODE2NDRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDY5NTc5OTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBORVRERVZTSU0gQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgc2V0dXAgY29uZmlndXJlZCBmb3IgYE5FVERFVlNJTWAsIHdoaWNoIGltbWVkaWF0ZWx5IGZsYWdzIGEgcGFydGljdWxhciBzZXQgb2YgZGV2aWNlIHNpbXVsYXRpb24gdG9vbHMuIFRoZSBmb2N1cyBoZXJlIGlzIG9uIHRocmVlIGtleSBmdW5jdGlvbnM6IGBuc2ltX2NyZWF0ZWAsIGBuc2ltX2Rlc3Ryb3lgLCBhbmQgYG5zaW1fZXRodG9vbF9maW5pYC4gSXQncyBwcmV0dHkgY2xlYXIgdGhhdCB0aGVzZSBhcmUgdGhlIGJ1aWxkaW5nIGJsb2NrcyBvZiB0aGlzIHNpbXVsYXRpb24gZW52aXJvbm1lbnQncyBuZXR3b3JrIGRldmljZSBtYW5hZ2VtZW50LlxuXG5GaXJzdCwgSSBuZWVkIHRvIGNvbmZpcm0gc29tZXRoaW5nIGJhc2ljIGJ1dCBpbXBvcnRhbnQ6IGlzIGBuc2ltX2V0aHRvb2xfZmluaWAgYSBzdGF0aWMgZnVuY3Rpb24/IEtub3dpbmcgaXRzIHNjb3BlIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaXRzIHZpc2liaWxpdHkgYW5kIHBvdGVudGlhbCBpbnRlcmFjdGlvbnMgd2l0aGluIHRoZSBicm9hZGVyIGNvZGViYXNlLiBOb3BlLCBpdCBpc24ndCBzdGF0aWMuIE5vdywgd2l0aCB0aGF0IG91dCBvZiB0aGUgd2F5LCBJIG5lZWQgdG8gdHVybiBteSBhdHRlbnRpb24gdG8gYG5zaW1fY3JlYXRlYCBhbmQgYG5zaW1fZGVzdHJveWAuIFRoZXNlIGFyZSB0aGUgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycywgcmVzcGVjdGl2ZWx5LiBVbmRlcnN0YW5kaW5nIHRoZWlyIHJvbGVzIGlzIGdvaW5nIHRvIGJlIHRoZSBrZXkgdG8gYXNzZXNzaW5nIHRoaXMgc2ltdWxhdGlvbiBtb2R1bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MjAsIk91dHB1dFRva2VucyI6MTEwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDA6NDY6MDkuNjg0NzY0MDY5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTEyMjcwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnNpbV9jcmVhdGVcIixcbiAgICBcIm5zaW1fZGVzdHJveVwiLFxuICAgIFwibnNpbV9ldGh0b29sX2ZpbmlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUREVWU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibnNpbV9jcmVhdGVcIixcbiAgICBcIm5zaW1fZGVzdHJveVwiLFxuICAgIFwibnNpbV9ldGh0b29sX2ZpbmlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYnVnZnMgbGVhayBpbiBuZXRkZXZzaW0gYnkgYWRkaW5nIGFuZCBjYWxsaW5nIG5zaW1fZXRodG9vbF9maW5pIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gZXJyb3IgcGF0aHMgYW5kIGRldmljZSBkZXN0cnVjdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgdmlydHVhbCBuZXR3b3JraW5nIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow2wmcg[1] Phase: Succeeded StartedAt: 2026-06-28 00:47:59 +0000 UTC FinishedAt: 2026-06-28 00:47:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-28 00:47:59 +0000 UTC FinishedAt: 2026-06-28 00:47:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2] Phase: Succeeded StartedAt: 2026-06-28 00:47:59 +0000 UTC FinishedAt: 2026-06-28 04:49:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-28 00:47:59 +0000 UTC FinishedAt: 2026-06-28 04:49:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-28 00:47:59 +0000 UTC FinishedAt: 2026-06-28 00:48:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-28 00:47:59 +0000 UTC FinishedAt: 2026-06-28 00:48:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},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-workflow2wmcg/series-workflow2wmcg-convert-artifact-3790215507/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-28 00:48:20 +0000 UTC FinishedAt: 2026-06-28 01:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-28 00:48:20 +0000 UTC FinishedAt: 2026-06-28 01:18:18 +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:*68f02460-22b8-461b-baa6-82153f742c40,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-workflow2wmcg/series-workflow2wmcg-convert-artifact-3790215507/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": "93e19656-3f8f-4585-a5be-ba8acca58871", "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-workflow2wmcg/series-workflow2wmcg-build-action-2983812225/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-28 00:48:20 +0000 UTC FinishedAt: 2026-06-28 01:16:43 +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:*68f02460-22b8-461b-baa6-82153f742c40,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-workflow2wmcg/series-workflow2wmcg-convert-artifact-3790215507/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": "93e19656-3f8f-4585-a5be-ba8acca58871", "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-workflow2wmcg/series-workflow2wmcg-build-action-2983812225/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-28 01:18:18 +0000 UTC FinishedAt: 2026-06-28 01:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-28 01:18:18 +0000 UTC FinishedAt: 2026-06-28 01:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-28 01:18:18 +0000 UTC FinishedAt: 2026-06-28 01:18:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-28 01:18:18 +0000 UTC FinishedAt: 2026-06-28 01:18:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},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-workflow2wmcg/series-workflow2wmcg-convert-artifact-3498274634/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-28 01:18:42 +0000 UTC FinishedAt: 2026-06-28 01:21:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-28 01:18:42 +0000 UTC FinishedAt: 2026-06-28 01:21:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*93e19656-3f8f-4585-a5be-ba8acca58871,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-workflow2wmcg/series-workflow2wmcg-build-action-2983812225/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-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-28 01:21:39 +0000 UTC FinishedAt: 2026-06-28 01:21:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-28 01:21:39 +0000 UTC FinishedAt: 2026-06-28 01:21:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-28 01:21:39 +0000 UTC FinishedAt: 2026-06-28 01:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-28 01:21:39 +0000 UTC FinishedAt: 2026-06-28 01:44:25 +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:*68f02460-22b8-461b-baa6-82153f742c40,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-workflow2wmcg/series-workflow2wmcg-convert-artifact-3498274634/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": "e4853acd-4088-42cc-a5c7-451251303dcb", "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-workflow2wmcg/series-workflow2wmcg-build-action-31183726/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-28 01:21:39 +0000 UTC FinishedAt: 2026-06-28 01:43:41 +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:*68f02460-22b8-461b-baa6-82153f742c40,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-workflow2wmcg/series-workflow2wmcg-convert-artifact-3498274634/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": "e4853acd-4088-42cc-a5c7-451251303dcb", "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-workflow2wmcg/series-workflow2wmcg-build-action-31183726/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-28 01:44:25 +0000 UTC FinishedAt: 2026-06-28 01:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-28 01:44:25 +0000 UTC FinishedAt: 2026-06-28 01:44:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-28 01:44:25 +0000 UTC FinishedAt: 2026-06-28 01:46:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-28 01:44:25 +0000 UTC FinishedAt: 2026-06-28 01:46:32 +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:*e4853acd-4088-42cc-a5c7-451251303dcb,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-workflow2wmcg/series-workflow2wmcg-build-action-31183726/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-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 04:49:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 04:49:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"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:*93e19656-3f8f-4585-a5be-ba8acca58871,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e4853acd-4088-42cc-a5c7-451251303dcb,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-workflow2wmcg/series-workflow2wmcg-build-action-2983812225/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-workflow2wmcg/series-workflow2wmcg-build-action-31183726/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 01:48:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 01:47:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"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-workflow2wmcg/series-workflow2wmcg-convert-artifact-1641957599/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 01:46:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 01:46:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-28 01:46:42 +0000 UTC FinishedAt: 2026-06-28 01:46:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-28 01:48:22 +0000 UTC FinishedAt: 2026-06-28 04:49:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2wmcg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nsim_create","nsim_destroy","nsim_ethtool_fini"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["NETDEVSIM"],"series_id":"336731a2-7201-41b4-8a7e-43f3794dc1f2","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-28 01:48:22 +0000 UTC FinishedAt: 2026-06-28 04:49:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*93e19656-3f8f-4585-a5be-ba8acca58871,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e4853acd-4088-42cc-a5c7-451251303dcb,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-workflow2wmcg/series-workflow2wmcg-build-action-2983812225/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-workflow2wmcg/series-workflow2wmcg-build-action-31183726/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-workflow2wmcg/series-workflow2wmcg-convert-artifact-1641957599/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,}