Name: series-workflowjgt7k Phase: Succeeded StartedAt: 2026-08-06 16:38:53 +0000 UTC FinishedAt: 2026-08-06 20:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[0] Phase: Succeeded StartedAt: 2026-08-06 16:38:53 +0000 UTC FinishedAt: 2026-08-06 16:59:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 16:38:53 +0000 UTC FinishedAt: 2026-08-06 16:59:23 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ea7c98e106a8058d1fabeaab94c6531d95baa2e9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ea7c98e106a8058d1fabeaab94c6531d95baa2e9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "series_id": "e44e80eb-6bd8-4112-b374-ed89e5ad96dc" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "macvlan_common_newlink" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQ1ZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWN2bGFuX2NvbW1vbl9uZXdsaW5rJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtYWN2bGFuIGRyaXZlciB0byBpbmhlcml0IGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSYjMzk7cyBmZWF0dXJlcyBjaGFuZ2UgKGBtYWN2bGFuX2RldmljZV9ldmVudGApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24gbG9naWMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5N2MyYzRkY2E2Y2EyZDc1MjlhZGU5NDdkYTQyODJiYTg1ZWNhMDkwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAxNjo1NzoyMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbmluZGV4IGM0MGZhMzMxODM2YmIuLmZmMmY0YmI2NTFiNzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uY1xuQEAgLTk1MCw2ICYjNDM7OTUwLDggQEAgc3RhdGljIGludCBtYWN2bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdGRldi1cdTAwM2VsbHR4XHRcdD0gdHJ1ZTtcbiBcdG5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIGxvd2VyZGV2KTtcbiBcdGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW5cdD0gbG93ZXJkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuJiM0MztcdGRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb21cdD0gbG93ZXJkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xuJiM0MztcdGRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb21cdD0gbG93ZXJkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0bWFjdmxhbl9zZXRfbG9ja2RlcF9jbGFzcyhkZXYpO1xuIFxuIFx0dmxhbi1cdTAwM2VwY3B1X3N0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHZsYW5fcGNwdV9zdGF0cyk7XG5AQCAtMTgyNCw2ICYjNDM7MTgyNiw4IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXG4gXHRjYXNlIE5FVERFVl9GRUFUX0NIQU5HRTpcbiBcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeSh2bGFuLCBcdTAwMjZwb3J0LVx1MDAzZXZsYW5zLCBsaXN0KSB7XG4gXHRcdFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KHZsYW4tXHUwMDNlZGV2LCBkZXYpO1xuJiM0MztcdFx0XHR2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xuJiM0MztcdFx0XHR2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0XHRcdG5ldGRldl91cGRhdGVfZmVhdHVyZXModmxhbi1cdTAwM2VkZXYpO1xuIFx0XHR9XG4gXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUNWTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWFjdmxhbl9jb21tb25fbmV3bGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbWFjdmxhbiBkcml2ZXIgdG8gaW5oZXJpdCBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UmIzM5O3MgZmVhdHVyZXMgY2hhbmdlIChgbWFjdmxhbl9kZXZpY2VfZXZlbnRgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBuZXR3b3JrIGRldmljZSBjb25maWd1cmF0aW9uIGxvZ2ljIGFuZCBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgd2hlbiBjcmVhdGluZyBvciBtb2RpZnlpbmcgbWFjdmxhbiBpbnRlcmZhY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTdjMmM0ZGNhNmNhMmQ3NTI5YWRlOTQ3ZGE0MjgyYmE4NWVjYTA5MApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTY6NTc6MjEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmMKaW5kZXggYzQwZmEzMzE4MzZiYi4uZmYyZjRiYjY1MWI3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwpAQCAtOTUwLDYgJiM0Mzs5NTAsOCBAQCBzdGF0aWMgaW50IG1hY3ZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0mZ3Q7bGx0eAkJPSB0cnVlOwogCW5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIGxvd2VyZGV2KTsKIAlkZXYtJmd0O2hhcmRfaGVhZGVyX2xlbgk9IGxvd2VyZGV2LSZndDtoYXJkX2hlYWRlcl9sZW47CiYjNDM7CWRldi0mZ3Q7bmVlZGVkX2hlYWRyb29tCT0gbG93ZXJkZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKJiM0MzsJZGV2LSZndDtuZWVkZWRfdGFpbHJvb20JPSBsb3dlcmRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tOwogCW1hY3ZsYW5fc2V0X2xvY2tkZXBfY2xhc3MoZGV2KTsKIAogCXZsYW4tJmd0O3BjcHVfc3RhdHMgPSBuZXRkZXZfYWxsb2NfcGNwdV9zdGF0cyhzdHJ1Y3Qgdmxhbl9wY3B1X3N0YXRzKTsKQEAgLTE4MjQsNiAmIzQzOzE4MjYsOCBAQCBzdGF0aWMgaW50IG1hY3ZsYW5fZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLAogCWNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOgogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZsYW4sICZhbXA7cG9ydC0mZ3Q7dmxhbnMsIGxpc3QpIHsKIAkJCW5ldGlmX2luaGVyaXRfdHNvX21heCh2bGFuLSZndDtkZXYsIGRldik7CiYjNDM7CQkJdmxhbi0mZ3Q7ZGV2LSZndDtuZWVkZWRfaGVhZHJvb20gPSBkZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKJiM0MzsJCQl2bGFuLSZndDtkZXYtJmd0O25lZWRlZF90YWlscm9vbSA9IGRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tOwogCQkJbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyh2bGFuLSZndDtkZXYpOwogCQl9CiAJCWJyZWFrOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjQ0CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMjM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE1hY3ZsYW4gUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGFmZmVjdGluZyB0aGUgYG1hY3ZsYW4uY2AgZHJpdmVyLiBTZWVtcyBsaWtlIHdlJiMzOTtyZSBleHBsaWNpdGx5IHNldHRpbmcgdGhlIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCB2YWx1ZXMuIFNwZWNpZmljYWxseSwgdGhlIGNvZGUgaXMgYWRkaW5nIGBkZXYtJmd0O25lZWRlZF9oZWFkcm9vbSA9IGxvd2VyZGV2LSZndDtuZWVkZWRfaGVhZHJvb207YCBhbmQgYGRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tID0gbG93ZXJkZXYtJmd0O25lZWRlZF90YWlscm9vbTtgIHdpdGhpbiBgbWFjdmxhbl9pbml0YC4gSXQmIzM5O3MgYWxzbyB1cGRhdGluZyB0aGVzZSB2YWx1ZXMgd2l0aGluIHRoZSBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgdW5kZXIgdGhlIGBORVRERVZfRkVBVF9DSEFOR0VgIGV2ZW50LCBieSBhZGRpbmcgYHZsYW4tJmd0O2Rldi0mZ3Q7bmVlZGVkX2hlYWRyb29tID0gZGV2LSZndDtuZWVkZWRfaGVhZHJvb207YCBhbmQgYHZsYW4tJmd0O2Rldi0mZ3Q7bmVlZGVkX3RhaWxyb29tID0gZGV2LSZndDtuZWVkZWRfdGFpbHJvb207YC4KCkVzc2VudGlhbGx5LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgZmVhdHVyZSB0aGF0IG1ha2VzIHRoZSBtYWN2bGFuIGludGVyZmFjZSBpbmhlcml0IHZpdGFsIG1ldGFkYXRhIGZyb20gdGhlIHVuZGVybHlpbmcgbG93ZXIgZGV2aWNlLiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGlzIGxvb2tzIGxpa2UgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEFueSBjaGFuZ2UgdGhhdCBhbHRlcnMgdGhlIGZsb3cgb2YgZGF0YSBvciBtb2RpZmllcyBjcml0aWNhbCBuZXR3b3JrIHBhcmFtZXRlcnMgbGlrZSBoZWFkcm9vbSBhbmQgdGFpbHJvb20gY2FuIGludHJvZHVjZSB2dWxuZXJhYmlsaXRpZXMuIFRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZSBtYWN2bGFuIGFuZCB0aGUgbG93ZXIgZGV2aWNlIGFkZHMgYW4gZXh0cmEgZGltZW5zaW9uIG9mIGNvbXBsZXhpdHkuCgpCZWZvcmUgSSBkaWcgaW4sIEkgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuIExldCYjMzk7cyBzdGFydCBieSByZS1leGFtaW5pbmcgYG1hY3ZsYW5faW5pdGAgYW5kIGBtYWN2bGFuX2RldmljZV9ldmVudGAgaW4gYGRyaXZlcnMvbmV0L21hY3ZsYW4uY2AuIEp1c3QgdG8gYmUgc3VyZSB0aGUgZnVuY3Rpb24gaXMgd2hhdCBJIHRoaW5rIGl0IGlzLgoKQW5kIG9mIGNvdXJzZSwgSSBuZWVkIHRvIGtub3cgdGhlIGNvbmZpZyBvcHRpb24uIExldCBtZSBjaGVjayB0aGUgS2NvbmZpZywgbG9va3MgbGlrZSBpdCYjMzk7cyBgTUFDVkxBTmAuIEkmIzM5O2xsIHNlYXJjaCBmb3IgYE1BQ1ZMQU5gIHRvIHNlZSB0aGUgZGVwZW5kZW5jaWVzLCBvcHRpb25zIGFuZCBpbXBsaWNhdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBzeXN0ZW0uIFRoaXMgZ2l2ZXMgbWUgY29udGV4dCBmb3IgaG93IHRoaXMgY2hhbmdlIGltcGFjdHMgdGhlIG5ldHdvcmsgc3RhY2sgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUFDVkxBTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTE2Mz1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvdGVhbS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnLTE2NC1cbmRyaXZlcnMvbmV0L0tjb25maWc6MTY1OmNvbmZpZyBNQUNWTEFOXG5kcml2ZXJzL25ldC9LY29uZmlnLTE2Ni1cdHRyaXN0YXRlIFwmIzM0O01BQy1WTEFOIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTg5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCBkaXZpbmcgaW50byB0aGUgY29kZToKCioqQ2hlY2tpbmcgS2NvbmZpZyBmb3IgTUFDVkxBTiBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIOKAkyB0aGUgY29uZmlndXJhdGlvbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGhlYWRpbmcgdG8gYGRyaXZlcnMvbmV0L0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgbmV0d29ya2luZyBkcml2ZXJzIGFuZCBmZWF0dXJlcyBhcmUgZGVmaW5lZCBpbiB0ZXJtcyBvZiB0aGVpciBidWlsZC10aW1lIG9wdGlvbnMuIEkga25vdyB0aGF0IGlmIE1BQ1ZMQU4gaXMgc3VwcG9ydGVkLCBpdHMgcHJlc2VuY2Ugd2lsbCBiZSBjb250cm9sbGVkIHRocm91Z2ggYSBLY29uZmlnIHN5bWJvbC4gTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyB0aGUgbG9naWNhbCBmaXJzdCBzdGVwIHRvIHVuZGVyc3RhbmQgdGhlIGZlYXR1cmUmIzM5O3MgYXZhaWxhYmlsaXR5LCBhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCByZXZlYWwgdGhlIGNydWNpYWwgZGV0YWlscyBJIG5lZWQgdG8ga25vdzogSXMgaXQgZW5hYmxlZCBieSBkZWZhdWx0PyBEb2VzIGl0IGRlcGVuZCBvbiBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBvcHRpb25zPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBlbmFibGluZyBpdD8gR2V0dGluZyBhIGNsZWFyIHBpY3R1cmUgZnJvbSB0aGlzIHN0YXJ0aW5nIHBvaW50IHdpbGwgYWxsb3cgbWUgdG8gYnVpbGQgYSBmdWxsZXIgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE2MDpcdFx0ICAmIzM5O2lmYjEmIzM5OyBldGMuXG4gMTYxOlx0XHQgIExvb2sgYXQgdGhlIGlwcm91dGUyIGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IGZvciB1c2FnZSBldGNcbiAxNjI6XHRcbiAxNjM6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvdGVhbS9LY29uZmlnXCYjMzQ7XG4gMTY0Olx0XG4gMTY1Olx0Y29uZmlnIE1BQ1ZMQU5cbiAxNjY6XHRcdHRyaXN0YXRlIFwmIzM0O01BQy1WTEFOIHN1cHBvcnRcJiMzNDtcbiAxNjc6XHRcdGhlbHBcbiAxNjg6XHRcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2aXJ0dWFsIGludGVyZmFjZXMgdGhhdCBtYXAgcGFja2V0cyB0b1xuIDE2OTpcdFx0ICBvciBmcm9tIHNwZWNpZmljIE1BQyBhZGRyZXNzZXMgdG8gYSBwYXJ0aWN1bGFyIGludGVyZmFjZS5cbiAxNzA6XHRcbiAxNzE6XHRcdCAgTWFjdmxhbiBkZXZpY2VzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgXCYjMzQ7aXBcJiMzNDsgY29tbWFuZCBmcm9tIHRoZVxuIDE3MjpcdFx0ICBpcHJvdXRlMiBwYWNrYWdlIHN0YXJ0aW5nIHdpdGggdGhlIGlwcm91dGUyLTIuNi4yMyByZWxlYXNlOlxuIDE3MzpcdFxuIDE3NDpcdFx0ICBcJiMzNDtpcCBsaW5rIGFkZCBsaW5rIFx1MDAzY3JlYWwgZGV2XHUwMDNlIFsgYWRkcmVzcyBNQUMgXSBbIE5BTUUgXSB0eXBlIG1hY3ZsYW5cJiMzNDtcbiAxNzU6XHRcbiAxNzY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxuIDE3NzpcdFx0ICB3aWxsIGJlIGNhbGxlZCBtYWN2bGFuLlxuIDE3ODpcdFxuIDE3OTpcdGNvbmZpZyBNQUNWVEFQXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU0MQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipEaXZpbmcgaW50byB0aGUgTUFDVkxBTiBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBzbyB0aGUgc3lzdGVtIGlzIHNldCB1cCB1c2luZyBgTUFDVkxBTmAuIEdvdCBpdC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHN5c3RlbSYjMzk7cyBpbml0aWFsaXplZCBhbmQgaG93IGl0IGhhbmRsZXMgZXZlbnRzLiBMZXQmIzM5O3MgcGlucG9pbnQgc29tZSBrZXkgc3ltYm9scywgd2hpY2ggYXBwZWFyIHRvIGJlIHRoZSBmb2N1cyBoZXJlLgoKSXQgbG9va3MgbGlrZSBgbWFjdmxhbl9pbml0YCBhbmQgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCBhcmUgc3RhdGljIGZ1bmN0aW9ucy4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgc3VnZ2VzdGluZyB0aGV5JiMzOTtyZSBpbnRlcm5hbCB0byB0aGUgYG1hY3ZsYW5gIG1vZHVsZSBpdHNlbGYuIFdhaXQsIHdhaXQsIGlzIGBtYWN2bGFuX2luaXRgIGEga2luZCBvZiBjYWxsYmFjayBmdW5jdGlvbiwgcGVyaGFwcyBwYXJ0IG9mIHRoZSBgbmV0X2RldmljZV9vcHNgIHN0cnVjdHVyZSBvciBzb21ldGhpbmcgc2ltaWxhcj8gVG8gY29uZmlybSB0aGlzLCBJIG5lZWQgdG8ganVtcCBpbnRvIGBtYWN2bGFuLmNgIGFuZCB0YWtlIGEgbG9vaywgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjdmxhbl9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYz05Mjk9c3RhdGljIHZvaWQgbWFjdmxhbl9zZXRfbG9ja2RlcF9jbGFzcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy05MzUtXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6OTM2OnN0YXRpYyBpbnQgbWFjdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtOTM3LXtcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTE4OT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG1hY3ZsYW5fbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxMTkwOlx0Lm5kb19pbml0XHRcdD0gbWFjdmxhbl9pbml0LFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTExOTEtXHQubmRvX3VuaW5pdFx0XHQ9IG1hY3ZsYW5fdW5pbml0LFxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODc2PXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbWFjdmxhbl9ub3RpZmllcl9ibG9jayBfX3JlYWRfbW9zdGx5ID0ge1xuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODc5LVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jOjE4ODA6c3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4ODEte1xuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODk1PXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE5MDAtXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkwMTptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xOTAyLW1vZHVsZV9leGl0KG1hY3ZsYW5fY2xlYW51cF9tb2R1bGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzYKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKktlcm5lbCBNb2R1bGUgSW5pdGlhbGl6YXRpb24gYW5kIEV2ZW50IEhhbmRsaW5nIGZvciBNYWN2bGFuKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gZnJvbSBhIGtlcm5lbCBwZXJzcGVjdGl2ZS4gU28sIGlmIEkmIzM5O20gdW5kZXJzdGFuZGluZyB0aGlzIGNvcnJlY3RseSwgdGhlIGBtYWN2bGFuX2luaXRgIGZ1bmN0aW9uLCBhdCBpdHMgY29yZSwgaXMgc2ltcGx5IGNhbGxpbmcgYC5uZG9faW5pdGAuIFRoaXMgbWFrZXMgc2Vuc2U7IGl0IG1lYW5zIHRoZSBNYWN2bGFuIG1vZHVsZSBsZXZlcmFnZXMgdGhlIHN0YW5kYXJkIG5ldHdvcmsgZGV2aWNlIG9wZXJhdGlvbiBpbml0aWFsaXphdGlvbiBwcm9jZWR1cmUsIGxpa2VseSB0byBzZXQgdXAgdGhlIGZvdW5kYXRpb24gZm9yIG1hbmFnaW5nIHRoZSB2aXJ0dWFsIGludGVyZmFjZXMuIFRoZSBkZXRhaWxzIHVuZGVyIGAubmRvX2luaXRgIGFyZSBrZXkgLSBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiBwb2ludGVyIHVzYWdlIHdpdGhpbiB0aGF0IGBuZG9faW5pdGAgaW1wbGVtZW50YXRpb24gd2l0aGluIHRoZSBrZXJuZWwgZm9yIHRoZSBzcGVjaWZpY3MuIFRoaXMgZXN0YWJsaXNoZXMgdGhlIGJhc2ljIG9wZXJhdGlvbmFsIHN0cnVjdHVyZSBmb3IgdGhlIG1hY3ZsYW4gZGV2aWNlLCByZWFkeSB0byBiZSBjb25maWd1cmVkIGFuZCB1dGlsaXplZC4KCk5vdywgYXMgZm9yIGV2ZW50IGhhbmRsaW5nLCB0aGUgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCBmdW5jdGlvbiBpcyBkZXNjcmliZWQgYXMgdGhlIG5vdGlmaWVyIGJsb2NrIGNhbGxiYWNrLiBUaGlzIHNpZ25pZmllcyBpdHMgcm9sZSBpbiByZWFjdGluZyB0byBldmVudHMgcmVsZXZhbnQgdG8gdGhlIE1hY3ZsYW4gZGV2aWNlLiBUaGlzIGltcGxpZXMgdGhhdCB0aGUgbm90aWZpZXIgbWVjaGFuaXNtIGlzIGJlaW5nIHVzZWQgLSBtZWFuaW5nIHRoYXQgdGhlIE1hY3ZsYW4gbW9kdWxlIGNhbiBiZSBpbmZvcm1lZCBvZiByZWxldmFudCBjaGFuZ2VzIG9yIGFjdGlvbnMgdGhhdCBpbXBhY3QgdGhlIE1hY3ZsYW4gZGV2aWNlLCBiZSB0aGV5IHJlbGF0ZWQgdG8gdGhlIG5ldGRldiwgdGhlIGludGVyZmFjZXMsIG9yIGV2ZW4gdGhlIHdpZGVyIHN5c3RlbS4gSSYjMzk7bGwgbmVlZCB0byBrbm93IHdoaWNoIGV2ZW50cyBhcmUgYmVpbmcgcmVnaXN0ZXJlZCwgc3BlY2lmaWNhbGx5LiBUaGUgaW50ZXJlc3RpbmcgdGhpbmcgaGVyZSBpcyB3aGljaCBldmVudHMgYXJlIG9mIGludGVyZXN0LCBvciBvZiBpbXBvcnRhbmNlLiBFdmVudHMgY2FuIHJhbmdlIGZyb20gdGhlIG5ldHdvcmsgYmVpbmcgYnJvdWdodCB1cCBvciBkb3duLCBjb25maWd1cmF0aW9uIGNoYW5nZXMgb2YgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgaW50ZXJmYWNlLCBvciBldmVuIHBvdGVudGlhbGx5LCBkZXZpY2UgaG90cGx1ZyBldmVudHMuIFVuZGVyc3RhbmRpbmcgd2hpY2ggZXZlbnQgdHlwZXMgdHJpZ2dlciB0aGlzIGNhbGxiYWNrIHdpbGwgYmUgY3J1Y2lhbCB0byBpdHMgb3BlcmF0aW9uYWwgYmVoYXZpb3IuIEkgbmVlZCB0byBkaWcgaW50byB0aGUgYWN0dWFsIGNvZGUgdG8gZ2V0IGEgY29tcGxldGUgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjdmxhbl9kZXZpY2VfZXZlbnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9tYWN2bGFuLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE3OTM9c3RhdGljIHZvaWQgdXBkYXRlX3BvcnRfYmNfcXVldWVfbGVuKHN0cnVjdCBtYWN2bGFuX3BvcnQgKnBvcnQpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4MDQtXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTgwNTpzdGF0aWMgaW50IG1hY3ZsYW5fZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4MDYtXHRcdFx0XHR1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpwdHIpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE4NzY9c3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBtYWN2bGFuX25vdGlmaWVyX2Jsb2NrIF9fcmVhZF9tb3N0bHkgPSB7XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTg3NzpcdC5ub3RpZmllcl9jYWxsXHQ9IG1hY3ZsYW5fZGV2aWNlX2V2ZW50LFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4NzgtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg2MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBgbWFjdmxhbi5jYCBmb3IgRHluYW1pYyBGdW5jdGlvbmFsaXR5KioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gYG1hY3ZsYW4uY2AuIE15IHByaW1hcnkgaW50ZXJlc3QgaGVyZSBpc24mIzM5O3QgdGhlIHN0YXRpYyBjb25maWd1cmF0aW9uIG9yIGluaXRpYWxpemF0aW9uLiBXZSYjMzk7cmUgd2VsbCBwYXN0IHRoYXQuIE15IGZvY3VzIGlzIHB1cmVseSBvbiBpZGVudGlmeWluZyB0aGUgKmR5bmFtaWMqIGVsZW1lbnRzLCB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGRvaW5nIHRoZSByZWFsIHdvcmsgb2YgcGFja2V0IGhhbmRsaW5nLCBhZGRyZXNzIGxlYXJuaW5nLCBhbmQgaW50ZXJmYWNlIGludGVyYWN0aW9uICphZnRlciogdGhlIGluaXRpYWwgc2V0dXAuIEkgd2FudCB0byBwaW5wb2ludCB0aGUgc2VjdGlvbnMgdGhhdCByZWFjdCB0byBjaGFuZ2luZyBuZXR3b3JrIGNvbmRpdGlvbnMsIGhhbmRsZSBkYXRhIGZsb3csIGFuZCBwb3RlbnRpYWxseSBpbnRyb2R1Y2UgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLiBXZSBhbHJlYWR5IGtub3cgdGhlIGJhc2ljczsgbm93IHdlIG5lZWQgdG8gc2VlIHRoZSBtZWNoYW5pc20uIEkmIzM5O20gbG9va2luZyBmb3IgdGhlIGNvZGUgdGhhdCB0cnVseSAqZHJpdmVzKiBtYWN2bGFuJiMzOTtzIGZ1bmN0aW9uYWxpdHksIG5vdCBqdXN0IHNldHMgdGhlIHN0YWdlLiBUaW1lIHRvIGdldCB0byB0aGUgY29yZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XmludCBtYWN2bGFuXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9tYWN2bGFuLmM9MTQwND1zdGF0aWMgaW50IG1hY3ZsYW5fY2hhbmdlbGlua19zb3VyY2VzKHN0cnVjdCBtYWN2bGFuX2RldiAqdmxhbiwgdTMyIG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE0NTktXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTQ2MDppbnQgbWFjdmxhbl9jb21tb25fbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE0NjEtXHRcdFx0ICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTc1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgbWFjdmxhbl9wb2xpY3lbSUZMQV9NQUNWTEFOX01BWCAmIzQzOyAxXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTc2NC1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNzY1OmludCBtYWN2bGFuX2xpbmtfcmVnaXN0ZXIoc3RydWN0IHJ0bmxfbGlua19vcHMgKm9wcylcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNzY2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMzOAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGl2aW5nIGludG8gTWFjdmxhbiBEZXZpY2UgQ3JlYXRpb24qKgoKT2theSwgc28gSSBzZWUgdGhhdCBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AgaXMgZXhwb3J0ZWQuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgaXQmIzM5O3MgdGhlIGNvcmUgZnVuY3Rpb24gcmVzcG9uc2libGUgZm9yLCB3ZWxsLCBjcmVhdGluZyB0aGVzZSBtYWN2bGFuIGRldmljZXMuIENvbnNpZGVyaW5nIGhvdyBmdW5kYW1lbnRhbCB0aGF0IG9wZXJhdGlvbiBpcywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgaW4gZGV0YWlsLiBNeSBuZXh0IHN0ZXA/IEkmIzM5O20gZ29pbmcgdG8ganVtcCByaWdodCBpbnRvIGV4YW1pbmluZyBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AuIEkgbmVlZCB0byBzZWUgZXhhY3RseSBob3cgdGhpcyBmdW5jdGlvbiBoYW5kbGVzIGFsbCB0aGUgbnVhbmNlcyBvZiBtYWN2bGFuIGRldmljZSBpbml0aWFsaXphdGlvbi4gTGV0JiMzOTtzIHNlZSBob3cgaXQgb3BlcmF0ZXMhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTF9HUEwobWFjdmxhbl9jb21tb25fbmV3bGluaykmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9tYWN2bGFuLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NTY2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYmFzZWQgb24gdGhlIHByb21wdDoKCioqRGlnZ2luZyBpbnRvIGBtYWN2bGFuLmNgIC0gQ2hlY2tpbmcgYEVYUE9SVF9TWU1CT0xgKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzIHByb2JsZW0gd2l0aCB0aGUgbWFjdmxhbiBjb2RlLCBJIG5lZWQgdG8gdGFrZSBhIHF1aWNrIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIHNvbWV0aGluZyBvYnZpb3VzLiBMZXQmIzM5O3MganVzdCBkb3VibGUtY2hlY2sgdGhlIGBtYWN2bGFuLmNgIGZpbGUgaXRzZWxmLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byBjb25maXJtIGhvdyBgRVhQT1JUX1NZTUJPTGAgaXMgYmVpbmcgdXNlZCBpbiB0aGlzIGNvbnRleHQuIEkgbmVlZCB0byByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCBzeW1ib2xzIGFyZSBiZWluZyBleHBvc2VkIGFuZCBob3cgdGhleSYjMzk7cmUgaW50ZW5kZWQgdG8gaW50ZXJhY3Qgd2l0aCBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBwYXJ0cyBvZiB0aGUgbmV0d29yayBzdGFjay4gSSYjMzk7bSBsb29raW5nIHRvIGNvbmZpcm0gaG93IHRoZSBjb3JlIG1hY3ZsYW4gZnVuY3Rpb25zIGFyZSBiZWluZyBtYWRlIGF2YWlsYWJsZSBmb3Igb3RoZXJzIHRvIHVzZS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBiZWZvcmUgSSBzdGFydCBkaWdnaW5nIGZvciBwb3RlbnRpYWwgaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtFWFBPUlRfU1lNQk9MJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYz0xMjI2PXZvaWQgbWFjdmxhbl9jb21tb25fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTI0MS19XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTI0MjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2NvbW1vbl9zZXR1cCk7XG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTI0My1cbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTQ2MD1pbnQgbWFjdmxhbl9jb21tb25fbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNTkxLX1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNTkyOkVYUE9SVF9TWU1CT0xfR1BMKG1hY3ZsYW5fY29tbW9uX25ld2xpbmspO1xuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE1OTMtXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE2MDE9dm9pZCBtYWN2bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTYxMS19XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTYxMjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2RlbGxpbmspO1xuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE2MTMtXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE3NjU9aW50IG1hY3ZsYW5fbGlua19yZWdpc3RlcihzdHJ1Y3QgcnRubF9saW5rX29wcyAqb3BzKVxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNzc2LX07XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTc3NzpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2xpbmtfcmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE3NzgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMjIKCQkJCQkJCW91dHB1dDogMTI2CgkJCQkJCQl0aG91Z2h0czogMjg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWFjdmxhbiBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaW4gZnJvbnQgb2YgbWUsIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AgaXMgYSBwcmV0dHkgc29saWQgc3ltYm9sIHRvIGZvY3VzIG9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGxpZXMgd2l0aGluIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIG1hY3ZsYW4gZGV2aWNlcyBhbmQgdGhlaXIgdW5kZXJseWluZyBwaHlzaWNhbCBpbnRlcmZhY2VzLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHVwZGF0ZXMuCgpJIHNlZSB0aGF0IHRoZSBwYXRjaCB0b3VjaGVzIGBtYWN2bGFuX2luaXRgIGFuZCBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgLiBgbWFjdmxhbl9pbml0YCBoYW5kbGVzIHRoZSByZWdpc3RyYXRpb24gb2YgYSBtYWN2bGFuIGRldmljZSwgd2hpY2ggaXMgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZGV2aWNlIGlzIGluaXRpYWxseSBzZXQgdXAuIGBtYWN2bGFuX2RldmljZV9ldmVudGAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVuZGVybHlpbmcgZGV2aWNlJiMzOTtzIGZlYXR1cmVzIGNoYW5nZSwgc28gdGhpcyBpcyBpbXBvcnRhbnQgZm9yIHNlZWluZyBob3cgdXBkYXRlcyBhcmUgaGFuZGxlZC4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgYG1hY3ZsYW5fY29tbW9uX25ld2xpbmtgIHdpbGwgYmUgYSB2YWx1YWJsZSBlbnRyeSBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBjaGFuZ2UuCgpUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGxvb2tzIHRvIGJlIHRoYXQgdGhlIG1hY3ZsYW4gZHJpdmVyIGlzIG5vdyBpbmhlcml0aW5nIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UuIFRoaXMgb2NjdXJzIGR1cmluZyBib3RoIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSYjMzk7cyBjYXBhYmlsaXRpZXMgYXJlIG1vZGlmaWVkIChgbWFjdmxhbl9kZXZpY2VfZXZlbnRgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBuZXR3b3JrIGRldmljZSBjb25maWd1cmF0aW9uIGxvZ2ljLCBhbmQgb2YgY291cnNlIGl0JiMzOTtzIHNvbWV0aGluZyB0aGF0IHdlJiMzOTtsbCBiZSBhYmxlIHRvIGludGVyYWN0IHdpdGggdGhyb3VnaCBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy4KCkkgc2hvdWxkIGRvdWJsZS1jaGVjayBvdGhlciBjb25maWd1cmF0aW9ucywgdGhvdWdoLiBBaCwgcmlnaHQsIHRoZSBtYWluIG9uZSByZWxhdGVkIHRvIHRoaXMgd291bGQgYmUgYE1BQ1ZMQU5gLgoKTm93LCBqdXN0IHRvIGJlIHN1cmUuLi4gTGV0IG1lIHZlcmlmeSBpZiBib3RoIGBtYWN2bGFuX2luaXRgIGFuZCBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGFyZSBzdGF0aWMuIFllcCwgdGhleSBhcmUuIFRoYXQgc29saWRpZmllcyB0aGUgdXNlZnVsbmVzcyBvZiBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AgYXMgdGhlIHByaW1hcnkgZW50cnkgcG9pbnQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBjaGFuZ2UgaXMgaW1wbGVtZW50ZWQuCgpSaWdodCwgSSYjMzk7bSByZWFkeSB0byBjYWxsIHRoZSByZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5fY29tbW9uX25ld2xpbmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG1hY3ZsYW4gZHJpdmVyIHRvIGluaGVyaXQgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZyb20gaXRzIGxvd2VyIGRldmljZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKGBtYWN2bGFuX2luaXRgKSBhbmQgd2hlbiB0aGUgbG93ZXIgZGV2aWNlJiMzOTtzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5fY29tbW9uX25ld2xpbmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG1hY3ZsYW4gZHJpdmVyIHRvIGluaGVyaXQgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZyb20gaXRzIGxvd2VyIGRldmljZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKGBtYWN2bGFuX2luaXRgKSBhbmQgd2hlbiB0aGUgbG93ZXIgZGV2aWNlJiMzOTtzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjIyLjcyMDc3NzAxM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMDI3MjE3MzA0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUNWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFjdmxhbl9jb21tb25fbmV3bGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtYWN2bGFuIGRyaXZlciB0byBpbmhlcml0IGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSdzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjIuNzIwNzg4NDA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzcxMjk2NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5N2MyYzRkY2E2Y2EyZDc1MjlhZGU5NDdkYTQyODJiYTg1ZWNhMDkwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDYgMTY6NTc6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXFxuaW5kZXggYzQwZmEzMzE4MzZiYi4uZmYyZjRiYjY1MWI3NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG4rKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG5AQCAtOTUwLDYgKzk1MCw4IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdGRldi1cXHUwMDNlbGx0eFxcdFxcdD0gdHJ1ZTtcXG4gXFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KGRldiwgbG93ZXJkZXYpO1xcbiBcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlblxcdD0gbG93ZXJkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4rXFx0ZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb21cXHQ9IGxvd2VyZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb207XFxuK1xcdGRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tXFx0PSBsb3dlcmRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xcbiBcXHRtYWN2bGFuX3NldF9sb2NrZGVwX2NsYXNzKGRldik7XFxuIFxcbiBcXHR2bGFuLVxcdTAwM2VwY3B1X3N0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHZsYW5fcGNwdV9zdGF0cyk7XFxuQEAgLTE4MjQsNiArMTgyNiw4IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXFxuIFxcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxcbiBcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHZsYW4sIFxcdTAwMjZwb3J0LVxcdTAwM2V2bGFucywgbGlzdCkge1xcbiBcXHRcXHRcXHRuZXRpZl9pbmhlcml0X3Rzb19tYXgodmxhbi1cXHUwMDNlZGV2LCBkZXYpO1xcbitcXHRcXHRcXHR2bGFuLVxcdTAwM2VkZXYtXFx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xcbitcXHRcXHRcXHR2bGFuLVxcdTAwM2VkZXYtXFx1MDAzZW5lZWRlZF90YWlscm9vbSA9IGRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xcbiBcXHRcXHRcXHRuZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKHZsYW4tXFx1MDAzZWRldik7XFxuIFxcdFxcdH1cXG4gXFx0XFx0YnJlYWs7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjIzLjE1ODcxNjc5OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjEwOTgzNDIwODQyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUNWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFjdmxhbl9jb21tb25fbmV3bGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtYWN2bGFuIGRyaXZlciB0byBpbmhlcml0IGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSdzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOTdjMmM0ZGNhNmNhMmQ3NTI5YWRlOTQ3ZGE0MjgyYmE4NWVjYTA5MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTY6NTc6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbmluZGV4IGM0MGZhMzMxODM2YmIuLmZmMmY0YmI2NTFiNzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbisrKyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uY1xuQEAgLTk1MCw2ICs5NTAsOCBAQCBzdGF0aWMgaW50IG1hY3ZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0ZGV2LVx1MDAzZWxsdHhcdFx0PSB0cnVlO1xuIFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KGRldiwgbG93ZXJkZXYpO1xuIFx0ZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlblx0PSBsb3dlcmRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW47XG4rXHRkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tXHQ9IGxvd2VyZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbitcdGRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb21cdD0gbG93ZXJkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0bWFjdmxhbl9zZXRfbG9ja2RlcF9jbGFzcyhkZXYpO1xuIFxuIFx0dmxhbi1cdTAwM2VwY3B1X3N0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHZsYW5fcGNwdV9zdGF0cyk7XG5AQCAtMTgyNCw2ICsxODI2LDggQEAgc3RhdGljIGludCBtYWN2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCxcbiBcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxuIFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHZsYW4sIFx1MDAyNnBvcnQtXHUwMDNldmxhbnMsIGxpc3QpIHtcbiBcdFx0XHRuZXRpZl9pbmhlcml0X3Rzb19tYXgodmxhbi1cdTAwM2VkZXYsIGRldik7XG4rXHRcdFx0dmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbitcdFx0XHR2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0XHRcdG5ldGRldl91cGRhdGVfZmVhdHVyZXModmxhbi1cdTAwM2VkZXYpO1xuIFx0XHR9XG4gXHRcdGJyZWFrO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjMuMTU4NzE4MTc4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc2OTA5ODE4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNYWN2bGFuIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggYWZmZWN0aW5nIHRoZSBgbWFjdmxhbi5jYCBkcml2ZXIuIFNlZW1zIGxpa2Ugd2UncmUgZXhwbGljaXRseSBzZXR0aW5nIHRoZSBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgdmFsdWVzLiBTcGVjaWZpY2FsbHksIHRoZSBjb2RlIGlzIGFkZGluZyBgZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGxvd2VyZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtgIGFuZCBgZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbSA9IGxvd2VyZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbTtgIHdpdGhpbiBgbWFjdmxhbl9pbml0YC4gSXQncyBhbHNvIHVwZGF0aW5nIHRoZXNlIHZhbHVlcyB3aXRoaW4gdGhlIGBtYWN2bGFuX2RldmljZV9ldmVudGAgZnVuY3Rpb24sIHNwZWNpZmljYWxseSB1bmRlciB0aGUgYE5FVERFVl9GRUFUX0NIQU5HRWAgZXZlbnQsIGJ5IGFkZGluZyBgdmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtgIGFuZCBgdmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbTtgLlxuXG5Fc3NlbnRpYWxseSwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGZlYXR1cmUgdGhhdCBtYWtlcyB0aGUgbWFjdmxhbiBpbnRlcmZhY2UgaW5oZXJpdCB2aXRhbCBtZXRhZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIGxvd2VyIGRldmljZS4gVGhpcyBpcyBpbnRlcmVzdGluZy4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRoYXQgYWx0ZXJzIHRoZSBmbG93IG9mIGRhdGEgb3IgbW9kaWZpZXMgY3JpdGljYWwgbmV0d29yayBwYXJhbWV0ZXJzIGxpa2UgaGVhZHJvb20gYW5kIHRhaWxyb29tIGNhbiBpbnRyb2R1Y2UgdnVsbmVyYWJpbGl0aWVzLiBUaGUgaW50ZXJhY3Rpb24gYmV0d2VlbiB0aGUgbWFjdmxhbiBhbmQgdGhlIGxvd2VyIGRldmljZSBhZGRzIGFuIGV4dHJhIGRpbWVuc2lvbiBvZiBjb21wbGV4aXR5LlxuXG5CZWZvcmUgSSBkaWcgaW4sIEkgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuIExldCdzIHN0YXJ0IGJ5IHJlLWV4YW1pbmluZyBgbWFjdmxhbl9pbml0YCBhbmQgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCBpbiBgZHJpdmVycy9uZXQvbWFjdmxhbi5jYC4gSnVzdCB0byBiZSBzdXJlIHRoZSBmdW5jdGlvbiBpcyB3aGF0IEkgdGhpbmsgaXQgaXMuXG5cbkFuZCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBrbm93IHRoZSBjb25maWcgb3B0aW9uLiBMZXQgbWUgY2hlY2sgdGhlIEtjb25maWcsIGxvb2tzIGxpa2UgaXQncyBgTUFDVkxBTmAuIEknbGwgc2VhcmNoIGZvciBgTUFDVkxBTmAgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMsIG9wdGlvbnMgYW5kIGltcGxpY2F0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIHN5c3RlbS4gVGhpcyBnaXZlcyBtZSBjb250ZXh0IGZvciBob3cgdGhpcyBjaGFuZ2UgaW1wYWN0cyB0aGUgbmV0d29yayBzdGFjayBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQ0LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjguOTI3ODE4MTUyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MjM0NjU5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDVkxBTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0xNjM9c291cmNlIFxcXCJkcml2ZXJzL25ldC90ZWFtL0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjQtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxNjU6Y29uZmlnIE1BQ1ZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTE2Ni1cXHR0cmlzdGF0ZSBcXFwiTUFDLVZMQU4gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjkuMDcwMTY4OTM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMjY3MDQ2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQgZGl2aW5nIGludG8gdGhlIGNvZGU6XG5cbioqQ2hlY2tpbmcgS2NvbmZpZyBmb3IgTUFDVkxBTiBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIg4oCTIHRoZSBjb25maWd1cmF0aW9uLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIHRvIGBkcml2ZXJzL25ldC9LY29uZmlnYC4gVGhpcyBpcyB3aGVyZSBhbGwgdGhlIG5ldHdvcmtpbmcgZHJpdmVycyBhbmQgZmVhdHVyZXMgYXJlIGRlZmluZWQgaW4gdGVybXMgb2YgdGhlaXIgYnVpbGQtdGltZSBvcHRpb25zLiBJIGtub3cgdGhhdCBpZiBNQUNWTEFOIGlzIHN1cHBvcnRlZCwgaXRzIHByZXNlbmNlIHdpbGwgYmUgY29udHJvbGxlZCB0aHJvdWdoIGEgS2NvbmZpZyBzeW1ib2wuIE15IGV4cGVydGlzZSB0ZWxscyBtZSB0aGF0IHRoaXMgaXMgdGhlIGxvZ2ljYWwgZmlyc3Qgc3RlcCB0byB1bmRlcnN0YW5kIHRoZSBmZWF0dXJlJ3MgYXZhaWxhYmlsaXR5LCBhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCByZXZlYWwgdGhlIGNydWNpYWwgZGV0YWlscyBJIG5lZWQgdG8ga25vdzogSXMgaXQgZW5hYmxlZCBieSBkZWZhdWx0PyBEb2VzIGl0IGRlcGVuZCBvbiBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBvcHRpb25zPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBlbmFibGluZyBpdD8gR2V0dGluZyBhIGNsZWFyIHBpY3R1cmUgZnJvbSB0aGlzIHN0YXJ0aW5nIHBvaW50IHdpbGwgYWxsb3cgbWUgdG8gYnVpbGQgYSBmdWxsZXIgdW5kZXJzdGFuZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk4OSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjMyLjQ5Mjg0MTgxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyMTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTYwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTYwOlxcdFxcdCAgJ2lmYjEnIGV0Yy5cXG4gMTYxOlxcdFxcdCAgTG9vayBhdCB0aGUgaXByb3V0ZTIgZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgZm9yIHVzYWdlIGV0Y1xcbiAxNjI6XFx0XFxuIDE2MzpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3RlYW0vS2NvbmZpZ1xcXCJcXG4gMTY0OlxcdFxcbiAxNjU6XFx0Y29uZmlnIE1BQ1ZMQU5cXG4gMTY2OlxcdFxcdHRyaXN0YXRlIFxcXCJNQUMtVkxBTiBzdXBwb3J0XFxcIlxcbiAxNjc6XFx0XFx0aGVscFxcbiAxNjg6XFx0XFx0ICBUaGlzIGFsbG93cyBvbmUgdG8gY3JlYXRlIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IG1hcCBwYWNrZXRzIHRvXFxuIDE2OTpcXHRcXHQgIG9yIGZyb20gc3BlY2lmaWMgTUFDIGFkZHJlc3NlcyB0byBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlLlxcbiAxNzA6XFx0XFxuIDE3MTpcXHRcXHQgIE1hY3ZsYW4gZGV2aWNlcyBjYW4gYmUgYWRkZWQgdXNpbmcgdGhlIFxcXCJpcFxcXCIgY29tbWFuZCBmcm9tIHRoZVxcbiAxNzI6XFx0XFx0ICBpcHJvdXRlMiBwYWNrYWdlIHN0YXJ0aW5nIHdpdGggdGhlIGlwcm91dGUyLTIuNi4yMyByZWxlYXNlOlxcbiAxNzM6XFx0XFxuIDE3NDpcXHRcXHQgIFxcXCJpcCBsaW5rIGFkZCBsaW5rIFxcdTAwM2NyZWFsIGRldlxcdTAwM2UgWyBhZGRyZXNzIE1BQyBdIFsgTkFNRSBdIHR5cGUgbWFjdmxhblxcXCJcXG4gMTc1OlxcdFxcbiAxNzY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuIDE3NzpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIG1hY3ZsYW4uXFxuIDE3ODpcXHRcXG4gMTc5OlxcdGNvbmZpZyBNQUNWVEFQXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjMyLjQ5MjkxNTUwNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyNzcwMDM2NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipEaXZpbmcgaW50byB0aGUgTUFDVkxBTiBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIHRoZSBzeXN0ZW0gaXMgc2V0IHVwIHVzaW5nIGBNQUNWTEFOYC4gR290IGl0LiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtJ3MgaW5pdGlhbGl6ZWQgYW5kIGhvdyBpdCBoYW5kbGVzIGV2ZW50cy4gTGV0J3MgcGlucG9pbnQgc29tZSBrZXkgc3ltYm9scywgd2hpY2ggYXBwZWFyIHRvIGJlIHRoZSBmb2N1cyBoZXJlLlxuXG5JdCBsb29rcyBsaWtlIGBtYWN2bGFuX2luaXRgIGFuZCBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGFyZSBzdGF0aWMgZnVuY3Rpb25zLiBUaGF0J3MgaW50ZXJlc3RpbmcsIHN1Z2dlc3RpbmcgdGhleSdyZSBpbnRlcm5hbCB0byB0aGUgYG1hY3ZsYW5gIG1vZHVsZSBpdHNlbGYuIFdhaXQsIHdhaXQsIGlzIGBtYWN2bGFuX2luaXRgIGEga2luZCBvZiBjYWxsYmFjayBmdW5jdGlvbiwgcGVyaGFwcyBwYXJ0IG9mIHRoZSBgbmV0X2RldmljZV9vcHNgIHN0cnVjdHVyZSBvciBzb21ldGhpbmcgc2ltaWxhcj8gVG8gY29uZmlybSB0aGlzLCBJIG5lZWQgdG8ganVtcCBpbnRvIGBtYWN2bGFuLmNgIGFuZCB0YWtlIGEgbG9vaywgc2VlIHdoYXQncyBnb2luZyBvbiBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU0MSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MzguNzY5OTIxMDY1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMjcwNTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hY3ZsYW5faW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9tYWN2bGFuLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jPTkyOT1zdGF0aWMgdm9pZCBtYWN2bGFuX3NldF9sb2NrZGVwX2NsYXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtOTM1LVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzo5MzY6c3RhdGljIGludCBtYWN2bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtOTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xMTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbWFjdmxhbl9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxMTkwOlxcdC5uZG9faW5pdFxcdFxcdD0gbWFjdmxhbl9pbml0LFxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xMTkxLVxcdC5uZG9fdW5pbml0XFx0XFx0PSBtYWN2bGFuX3VuaW5pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODc2PXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbWFjdmxhbl9ub3RpZmllcl9ibG9jayBfX3JlYWRfbW9zdGx5ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4NzktXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jOjE4ODA6c3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODk1PXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkwMC1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkwMTptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkwMi1tb2R1bGVfZXhpdChtYWN2bGFuX2NsZWFudXBfbW9kdWxlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MzguODEzMTk3MDgxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE1NjgwODkzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipLZXJuZWwgTW9kdWxlIEluaXRpYWxpemF0aW9uIGFuZCBFdmVudCBIYW5kbGluZyBmb3IgTWFjdmxhbioqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93biBmcm9tIGEga2VybmVsIHBlcnNwZWN0aXZlLiBTbywgaWYgSSdtIHVuZGVyc3RhbmRpbmcgdGhpcyBjb3JyZWN0bHksIHRoZSBgbWFjdmxhbl9pbml0YCBmdW5jdGlvbiwgYXQgaXRzIGNvcmUsIGlzIHNpbXBseSBjYWxsaW5nIGAubmRvX2luaXRgLiBUaGlzIG1ha2VzIHNlbnNlOyBpdCBtZWFucyB0aGUgTWFjdmxhbiBtb2R1bGUgbGV2ZXJhZ2VzIHRoZSBzdGFuZGFyZCBuZXR3b3JrIGRldmljZSBvcGVyYXRpb24gaW5pdGlhbGl6YXRpb24gcHJvY2VkdXJlLCBsaWtlbHkgdG8gc2V0IHVwIHRoZSBmb3VuZGF0aW9uIGZvciBtYW5hZ2luZyB0aGUgdmlydHVhbCBpbnRlcmZhY2VzLiBUaGUgZGV0YWlscyB1bmRlciBgLm5kb19pbml0YCBhcmUga2V5IC0gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiBwb2ludGVyIHVzYWdlIHdpdGhpbiB0aGF0IGBuZG9faW5pdGAgaW1wbGVtZW50YXRpb24gd2l0aGluIHRoZSBrZXJuZWwgZm9yIHRoZSBzcGVjaWZpY3MuIFRoaXMgZXN0YWJsaXNoZXMgdGhlIGJhc2ljIG9wZXJhdGlvbmFsIHN0cnVjdHVyZSBmb3IgdGhlIG1hY3ZsYW4gZGV2aWNlLCByZWFkeSB0byBiZSBjb25maWd1cmVkIGFuZCB1dGlsaXplZC5cblxuTm93LCBhcyBmb3IgZXZlbnQgaGFuZGxpbmcsIHRoZSBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGZ1bmN0aW9uIGlzIGRlc2NyaWJlZCBhcyB0aGUgbm90aWZpZXIgYmxvY2sgY2FsbGJhY2suIFRoaXMgc2lnbmlmaWVzIGl0cyByb2xlIGluIHJlYWN0aW5nIHRvIGV2ZW50cyByZWxldmFudCB0byB0aGUgTWFjdmxhbiBkZXZpY2UuIFRoaXMgaW1wbGllcyB0aGF0IHRoZSBub3RpZmllciBtZWNoYW5pc20gaXMgYmVpbmcgdXNlZCAtIG1lYW5pbmcgdGhhdCB0aGUgTWFjdmxhbiBtb2R1bGUgY2FuIGJlIGluZm9ybWVkIG9mIHJlbGV2YW50IGNoYW5nZXMgb3IgYWN0aW9ucyB0aGF0IGltcGFjdCB0aGUgTWFjdmxhbiBkZXZpY2UsIGJlIHRoZXkgcmVsYXRlZCB0byB0aGUgbmV0ZGV2LCB0aGUgaW50ZXJmYWNlcywgb3IgZXZlbiB0aGUgd2lkZXIgc3lzdGVtLiBJJ2xsIG5lZWQgdG8ga25vdyB3aGljaCBldmVudHMgYXJlIGJlaW5nIHJlZ2lzdGVyZWQsIHNwZWNpZmljYWxseS4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGhlcmUgaXMgd2hpY2ggZXZlbnRzIGFyZSBvZiBpbnRlcmVzdCwgb3Igb2YgaW1wb3J0YW5jZS4gRXZlbnRzIGNhbiByYW5nZSBmcm9tIHRoZSBuZXR3b3JrIGJlaW5nIGJyb3VnaHQgdXAgb3IgZG93biwgY29uZmlndXJhdGlvbiBjaGFuZ2VzIG9mIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZSwgb3IgZXZlbiBwb3RlbnRpYWxseSwgZGV2aWNlIGhvdHBsdWcgZXZlbnRzLiBVbmRlcnN0YW5kaW5nIHdoaWNoIGV2ZW50IHR5cGVzIHRyaWdnZXIgdGhpcyBjYWxsYmFjayB3aWxsIGJlIGNydWNpYWwgdG8gaXRzIG9wZXJhdGlvbmFsIGJlaGF2aW9yLiBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGFjdHVhbCBjb2RlIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMzYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1Nzo0Mi45NzAwMTAwNzFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMzYyOTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hY3ZsYW5fZGV2aWNlX2V2ZW50XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9tYWN2bGFuLmM9MTc5Mz1zdGF0aWMgdm9pZCB1cGRhdGVfcG9ydF9iY19xdWV1ZV9sZW4oc3RydWN0IG1hY3ZsYW5fcG9ydCAqcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODA0LVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxODA1OnN0YXRpYyBpbnQgbWFjdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4MDYtXFx0XFx0XFx0XFx0dW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE4NzY9c3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBtYWN2bGFuX25vdGlmaWVyX2Jsb2NrIF9fcmVhZF9tb3N0bHkgPSB7XFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jOjE4Nzc6XFx0Lm5vdGlmaWVyX2NhbGxcXHQ9IG1hY3ZsYW5fZGV2aWNlX2V2ZW50LFxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODc4LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjQzLjAxMzM4MDQ4N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjA4MzI0MTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgYG1hY3ZsYW4uY2AgZm9yIER5bmFtaWMgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byBgbWFjdmxhbi5jYC4gTXkgcHJpbWFyeSBpbnRlcmVzdCBoZXJlIGlzbid0IHRoZSBzdGF0aWMgY29uZmlndXJhdGlvbiBvciBpbml0aWFsaXphdGlvbi4gV2UncmUgd2VsbCBwYXN0IHRoYXQuIE15IGZvY3VzIGlzIHB1cmVseSBvbiBpZGVudGlmeWluZyB0aGUgKmR5bmFtaWMqIGVsZW1lbnRzLCB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGRvaW5nIHRoZSByZWFsIHdvcmsgb2YgcGFja2V0IGhhbmRsaW5nLCBhZGRyZXNzIGxlYXJuaW5nLCBhbmQgaW50ZXJmYWNlIGludGVyYWN0aW9uICphZnRlciogdGhlIGluaXRpYWwgc2V0dXAuIEkgd2FudCB0byBwaW5wb2ludCB0aGUgc2VjdGlvbnMgdGhhdCByZWFjdCB0byBjaGFuZ2luZyBuZXR3b3JrIGNvbmRpdGlvbnMsIGhhbmRsZSBkYXRhIGZsb3csIGFuZCBwb3RlbnRpYWxseSBpbnRyb2R1Y2UgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLiBXZSBhbHJlYWR5IGtub3cgdGhlIGJhc2ljczsgbm93IHdlIG5lZWQgdG8gc2VlIHRoZSBtZWNoYW5pc20uIEknbSBsb29raW5nIGZvciB0aGUgY29kZSB0aGF0IHRydWx5ICpkcml2ZXMqIG1hY3ZsYW4ncyBmdW5jdGlvbmFsaXR5LCBub3QganVzdCBzZXRzIHRoZSBzdGFnZS4gVGltZSB0byBnZXQgdG8gdGhlIGNvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NjIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1Nzo0Ni4yMjE3MDcyODVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MDY2MzM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5pbnQgbWFjdmxhbl9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xNDA0PXN0YXRpYyBpbnQgbWFjdmxhbl9jaGFuZ2VsaW5rX3NvdXJjZXMoc3RydWN0IG1hY3ZsYW5fZGV2ICp2bGFuLCB1MzIgbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNDU5LVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNDYwOmludCBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE0NjEtXFx0XFx0XFx0ICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xNzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBtYWN2bGFuX3BvbGljeVtJRkxBX01BQ1ZMQU5fTUFYICsgMV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTc2NC1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTc2NTppbnQgbWFjdmxhbl9saW5rX3JlZ2lzdGVyKHN0cnVjdCBydG5sX2xpbmtfb3BzICpvcHMpXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE3NjYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1Nzo0Ni4yNjU3Nzg3ODFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU1NDk4MTk4NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gTWFjdmxhbiBEZXZpY2UgQ3JlYXRpb24qKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rYCBpcyBleHBvcnRlZC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSBpdCdzIHRoZSBjb3JlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciwgd2VsbCwgY3JlYXRpbmcgdGhlc2UgbWFjdmxhbiBkZXZpY2VzLiBDb25zaWRlcmluZyBob3cgZnVuZGFtZW50YWwgdGhhdCBvcGVyYXRpb24gaXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGluIGRldGFpbC4gTXkgbmV4dCBzdGVwPyBJJ20gZ29pbmcgdG8ganVtcCByaWdodCBpbnRvIGV4YW1pbmluZyBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AuIEkgbmVlZCB0byBzZWUgZXhhY3RseSBob3cgdGhpcyBmdW5jdGlvbiBoYW5kbGVzIGFsbCB0aGUgbnVhbmNlcyBvZiBtYWN2bGFuIGRldmljZSBpbml0aWFsaXphdGlvbi4gTGV0J3Mgc2VlIGhvdyBpdCBvcGVyYXRlcyFcblxuXG4iLCJJbnB1dFRva2VucyI6NTMzOCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU5OjAxLjgxNTYwMTY4NFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg0MDcwMDUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkVYUE9SVF9TWU1CT0xfR1BMKG1hY3ZsYW5fY29tbW9uX25ld2xpbmspXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTk6MDEuODY0MDE0ODY5WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODQ3NTUyMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBiYXNlZCBvbiB0aGUgcHJvbXB0OlxuXG4qKkRpZ2dpbmcgaW50byBgbWFjdmxhbi5jYCAtIENoZWNraW5nIGBFWFBPUlRfU1lNQk9MYCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzIHByb2JsZW0gd2l0aCB0aGUgbWFjdmxhbiBjb2RlLCBJIG5lZWQgdG8gdGFrZSBhIHF1aWNrIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgc29tZXRoaW5nIG9idmlvdXMuIExldCdzIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBgbWFjdmxhbi5jYCBmaWxlIGl0c2VsZi4gU3BlY2lmaWNhbGx5LCBJIHdhbnQgdG8gY29uZmlybSBob3cgYEVYUE9SVF9TWU1CT0xgIGlzIGJlaW5nIHVzZWQgaW4gdGhpcyBjb250ZXh0LiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgc3ltYm9scyBhcmUgYmVpbmcgZXhwb3NlZCBhbmQgaG93IHRoZXkncmUgaW50ZW5kZWQgdG8gaW50ZXJhY3Qgd2l0aCBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBwYXJ0cyBvZiB0aGUgbmV0d29yayBzdGFjay4gSSdtIGxvb2tpbmcgdG8gY29uZmlybSBob3cgdGhlIGNvcmUgbWFjdmxhbiBmdW5jdGlvbnMgYXJlIGJlaW5nIG1hZGUgYXZhaWxhYmxlIGZvciBvdGhlcnMgdG8gdXNlLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIGJlZm9yZSBJIHN0YXJ0IGRpZ2dpbmcgZm9yIHBvdGVudGlhbCBpc3N1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1NjYsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1OTowNS40NDg3NzIxNzlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3MjQ5ODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkVYUE9SVF9TWU1CT0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xMjI2PXZvaWQgbWFjdmxhbl9jb21tb25fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xMjQxLX1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTI0MjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2NvbW1vbl9zZXR1cCk7XFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTEyNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTQ2MD1pbnQgbWFjdmxhbl9jb21tb25fbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE1OTEtfVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNTkyOkVYUE9SVF9TWU1CT0xfR1BMKG1hY3ZsYW5fY29tbW9uX25ld2xpbmspO1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE2MDE9dm9pZCBtYWN2bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNjExLX1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTYxMjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2RlbGxpbmspO1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE3NjU9aW50IG1hY3ZsYW5fbGlua19yZWdpc3RlcihzdHJ1Y3QgcnRubF9saW5rX29wcyAqb3BzKVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE3NzYtfTtcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTc3NzpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2xpbmtfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNzc4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1OTowNS40OTYwMjgxNTRaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQyMDc4Mjg3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1hY3ZsYW4gRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBpbiBmcm9udCBvZiBtZSwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rYCBpcyBhIHByZXR0eSBzb2xpZCBzeW1ib2wgdG8gZm9jdXMgb24uIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgb2YgdGhpcyBjaGFuZ2UgbGllcyB3aXRoaW4gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gbWFjdmxhbiBkZXZpY2VzIGFuZCB0aGVpciB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZXMsIHNwZWNpZmljYWxseSBhcm91bmQgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdXBkYXRlcy5cblxuSSBzZWUgdGhhdCB0aGUgcGF0Y2ggdG91Y2hlcyBgbWFjdmxhbl9pbml0YCBhbmQgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YC4gYG1hY3ZsYW5faW5pdGAgaGFuZGxlcyB0aGUgcmVnaXN0cmF0aW9uIG9mIGEgbWFjdmxhbiBkZXZpY2UsIHdoaWNoIGlzIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRldmljZSBpcyBpbml0aWFsbHkgc2V0IHVwLiBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1bmRlcmx5aW5nIGRldmljZSdzIGZlYXR1cmVzIGNoYW5nZSwgc28gdGhpcyBpcyBpbXBvcnRhbnQgZm9yIHNlZWluZyBob3cgdXBkYXRlcyBhcmUgaGFuZGxlZC4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEknbSBjb25maWRlbnQgdGhhdCBgbWFjdmxhbl9jb21tb25fbmV3bGlua2Agd2lsbCBiZSBhIHZhbHVhYmxlIGVudHJ5IHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGNoYW5nZS5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBsb29rcyB0byBiZSB0aGF0IHRoZSBtYWN2bGFuIGRyaXZlciBpcyBub3cgaW5oZXJpdGluZyBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlLiBUaGlzIG9jY3VycyBkdXJpbmcgYm90aCBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UncyBjYXBhYmlsaXRpZXMgYXJlIG1vZGlmaWVkIChgbWFjdmxhbl9kZXZpY2VfZXZlbnRgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBuZXR3b3JrIGRldmljZSBjb25maWd1cmF0aW9uIGxvZ2ljLCBhbmQgb2YgY291cnNlIGl0J3Mgc29tZXRoaW5nIHRoYXQgd2UnbGwgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIHRocm91Z2ggbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuXG5cbkkgc2hvdWxkIGRvdWJsZS1jaGVjayBvdGhlciBjb25maWd1cmF0aW9ucywgdGhvdWdoLiBBaCwgcmlnaHQsIHRoZSBtYWluIG9uZSByZWxhdGVkIHRvIHRoaXMgd291bGQgYmUgYE1BQ1ZMQU5gLlxuXG5Ob3csIGp1c3QgdG8gYmUgc3VyZS4uLiBMZXQgbWUgdmVyaWZ5IGlmIGJvdGggYG1hY3ZsYW5faW5pdGAgYW5kIGBtYWN2bGFuX2RldmljZV9ldmVudGAgYXJlIHN0YXRpYy4gWWVwLCB0aGV5IGFyZS4gVGhhdCBzb2xpZGlmaWVzIHRoZSB1c2VmdWxuZXNzIG9mIGBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rYCBhcyB0aGUgcHJpbWFyeSBlbnRyeSBwb2ludCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGNoYW5nZSBpcyBpbXBsZW1lbnRlZC5cblxuUmlnaHQsIEknbSByZWFkeSB0byBjYWxsIHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjIyLCJPdXRwdXRUb2tlbnMiOjEyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1OToxMi45MTY4MTMyMzdaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjEwOTI2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDVkxBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hY3ZsYW5fY29tbW9uX25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbWFjdmxhbiBkcml2ZXIgdG8gaW5oZXJpdCBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UncyBmZWF0dXJlcyBjaGFuZ2UgKGBtYWN2bGFuX2RldmljZV9ldmVudGApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24gbG9naWMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDVkxBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hY3ZsYW5fY29tbW9uX25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbWFjdmxhbiBkcml2ZXIgdG8gaW5oZXJpdCBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UncyBmZWF0dXJlcyBjaGFuZ2UgKGBtYWN2bGFuX2RldmljZV9ldmVudGApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24gbG9naWMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowjgt7k[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 16:38:53 +0000 UTC FinishedAt: 2026-08-06 16:59:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ea7c98e106a8058d1fabeaab94c6531d95baa2e9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ea7c98e106a8058d1fabeaab94c6531d95baa2e9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "series_id": "e44e80eb-6bd8-4112-b374-ed89e5ad96dc" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "macvlan_common_newlink" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQ1ZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWN2bGFuX2NvbW1vbl9uZXdsaW5rJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtYWN2bGFuIGRyaXZlciB0byBpbmhlcml0IGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSYjMzk7cyBmZWF0dXJlcyBjaGFuZ2UgKGBtYWN2bGFuX2RldmljZV9ldmVudGApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24gbG9naWMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5N2MyYzRkY2E2Y2EyZDc1MjlhZGU5NDdkYTQyODJiYTg1ZWNhMDkwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAxNjo1NzoyMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbmluZGV4IGM0MGZhMzMxODM2YmIuLmZmMmY0YmI2NTFiNzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uY1xuQEAgLTk1MCw2ICYjNDM7OTUwLDggQEAgc3RhdGljIGludCBtYWN2bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdGRldi1cdTAwM2VsbHR4XHRcdD0gdHJ1ZTtcbiBcdG5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIGxvd2VyZGV2KTtcbiBcdGRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW5cdD0gbG93ZXJkZXYtXHUwMDNlaGFyZF9oZWFkZXJfbGVuO1xuJiM0MztcdGRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb21cdD0gbG93ZXJkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xuJiM0MztcdGRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb21cdD0gbG93ZXJkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0bWFjdmxhbl9zZXRfbG9ja2RlcF9jbGFzcyhkZXYpO1xuIFxuIFx0dmxhbi1cdTAwM2VwY3B1X3N0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHZsYW5fcGNwdV9zdGF0cyk7XG5AQCAtMTgyNCw2ICYjNDM7MTgyNiw4IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXG4gXHRjYXNlIE5FVERFVl9GRUFUX0NIQU5HRTpcbiBcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeSh2bGFuLCBcdTAwMjZwb3J0LVx1MDAzZXZsYW5zLCBsaXN0KSB7XG4gXHRcdFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KHZsYW4tXHUwMDNlZGV2LCBkZXYpO1xuJiM0MztcdFx0XHR2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfaGVhZHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xuJiM0MztcdFx0XHR2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0XHRcdG5ldGRldl91cGRhdGVfZmVhdHVyZXModmxhbi1cdTAwM2VkZXYpO1xuIFx0XHR9XG4gXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUNWTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWFjdmxhbl9jb21tb25fbmV3bGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbWFjdmxhbiBkcml2ZXIgdG8gaW5oZXJpdCBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UmIzM5O3MgZmVhdHVyZXMgY2hhbmdlIChgbWFjdmxhbl9kZXZpY2VfZXZlbnRgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBuZXR3b3JrIGRldmljZSBjb25maWd1cmF0aW9uIGxvZ2ljIGFuZCBpcyByZWFjaGFibGUgdmlhIG5ldGxpbmsgd2hlbiBjcmVhdGluZyBvciBtb2RpZnlpbmcgbWFjdmxhbiBpbnRlcmZhY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTdjMmM0ZGNhNmNhMmQ3NTI5YWRlOTQ3ZGE0MjgyYmE4NWVjYTA5MApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTY6NTc6MjEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmMKaW5kZXggYzQwZmEzMzE4MzZiYi4uZmYyZjRiYjY1MWI3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwpAQCAtOTUwLDYgJiM0Mzs5NTAsOCBAQCBzdGF0aWMgaW50IG1hY3ZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0mZ3Q7bGx0eAkJPSB0cnVlOwogCW5ldGlmX2luaGVyaXRfdHNvX21heChkZXYsIGxvd2VyZGV2KTsKIAlkZXYtJmd0O2hhcmRfaGVhZGVyX2xlbgk9IGxvd2VyZGV2LSZndDtoYXJkX2hlYWRlcl9sZW47CiYjNDM7CWRldi0mZ3Q7bmVlZGVkX2hlYWRyb29tCT0gbG93ZXJkZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKJiM0MzsJZGV2LSZndDtuZWVkZWRfdGFpbHJvb20JPSBsb3dlcmRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tOwogCW1hY3ZsYW5fc2V0X2xvY2tkZXBfY2xhc3MoZGV2KTsKIAogCXZsYW4tJmd0O3BjcHVfc3RhdHMgPSBuZXRkZXZfYWxsb2NfcGNwdV9zdGF0cyhzdHJ1Y3Qgdmxhbl9wY3B1X3N0YXRzKTsKQEAgLTE4MjQsNiAmIzQzOzE4MjYsOCBAQCBzdGF0aWMgaW50IG1hY3ZsYW5fZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLAogCWNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOgogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZsYW4sICZhbXA7cG9ydC0mZ3Q7dmxhbnMsIGxpc3QpIHsKIAkJCW5ldGlmX2luaGVyaXRfdHNvX21heCh2bGFuLSZndDtkZXYsIGRldik7CiYjNDM7CQkJdmxhbi0mZ3Q7ZGV2LSZndDtuZWVkZWRfaGVhZHJvb20gPSBkZXYtJmd0O25lZWRlZF9oZWFkcm9vbTsKJiM0MzsJCQl2bGFuLSZndDtkZXYtJmd0O25lZWRlZF90YWlscm9vbSA9IGRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tOwogCQkJbmV0ZGV2X3VwZGF0ZV9mZWF0dXJlcyh2bGFuLSZndDtkZXYpOwogCQl9CiAJCWJyZWFrOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjQ0CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMjM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE1hY3ZsYW4gUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGFmZmVjdGluZyB0aGUgYG1hY3ZsYW4uY2AgZHJpdmVyLiBTZWVtcyBsaWtlIHdlJiMzOTtyZSBleHBsaWNpdGx5IHNldHRpbmcgdGhlIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCB2YWx1ZXMuIFNwZWNpZmljYWxseSwgdGhlIGNvZGUgaXMgYWRkaW5nIGBkZXYtJmd0O25lZWRlZF9oZWFkcm9vbSA9IGxvd2VyZGV2LSZndDtuZWVkZWRfaGVhZHJvb207YCBhbmQgYGRldi0mZ3Q7bmVlZGVkX3RhaWxyb29tID0gbG93ZXJkZXYtJmd0O25lZWRlZF90YWlscm9vbTtgIHdpdGhpbiBgbWFjdmxhbl9pbml0YC4gSXQmIzM5O3MgYWxzbyB1cGRhdGluZyB0aGVzZSB2YWx1ZXMgd2l0aGluIHRoZSBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgdW5kZXIgdGhlIGBORVRERVZfRkVBVF9DSEFOR0VgIGV2ZW50LCBieSBhZGRpbmcgYHZsYW4tJmd0O2Rldi0mZ3Q7bmVlZGVkX2hlYWRyb29tID0gZGV2LSZndDtuZWVkZWRfaGVhZHJvb207YCBhbmQgYHZsYW4tJmd0O2Rldi0mZ3Q7bmVlZGVkX3RhaWxyb29tID0gZGV2LSZndDtuZWVkZWRfdGFpbHJvb207YC4KCkVzc2VudGlhbGx5LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgZmVhdHVyZSB0aGF0IG1ha2VzIHRoZSBtYWN2bGFuIGludGVyZmFjZSBpbmhlcml0IHZpdGFsIG1ldGFkYXRhIGZyb20gdGhlIHVuZGVybHlpbmcgbG93ZXIgZGV2aWNlLiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGlzIGxvb2tzIGxpa2UgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEFueSBjaGFuZ2UgdGhhdCBhbHRlcnMgdGhlIGZsb3cgb2YgZGF0YSBvciBtb2RpZmllcyBjcml0aWNhbCBuZXR3b3JrIHBhcmFtZXRlcnMgbGlrZSBoZWFkcm9vbSBhbmQgdGFpbHJvb20gY2FuIGludHJvZHVjZSB2dWxuZXJhYmlsaXRpZXMuIFRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZSBtYWN2bGFuIGFuZCB0aGUgbG93ZXIgZGV2aWNlIGFkZHMgYW4gZXh0cmEgZGltZW5zaW9uIG9mIGNvbXBsZXhpdHkuCgpCZWZvcmUgSSBkaWcgaW4sIEkgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuIExldCYjMzk7cyBzdGFydCBieSByZS1leGFtaW5pbmcgYG1hY3ZsYW5faW5pdGAgYW5kIGBtYWN2bGFuX2RldmljZV9ldmVudGAgaW4gYGRyaXZlcnMvbmV0L21hY3ZsYW4uY2AuIEp1c3QgdG8gYmUgc3VyZSB0aGUgZnVuY3Rpb24gaXMgd2hhdCBJIHRoaW5rIGl0IGlzLgoKQW5kIG9mIGNvdXJzZSwgSSBuZWVkIHRvIGtub3cgdGhlIGNvbmZpZyBvcHRpb24uIExldCBtZSBjaGVjayB0aGUgS2NvbmZpZywgbG9va3MgbGlrZSBpdCYjMzk7cyBgTUFDVkxBTmAuIEkmIzM5O2xsIHNlYXJjaCBmb3IgYE1BQ1ZMQU5gIHRvIHNlZSB0aGUgZGVwZW5kZW5jaWVzLCBvcHRpb25zIGFuZCBpbXBsaWNhdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBzeXN0ZW0uIFRoaXMgZ2l2ZXMgbWUgY29udGV4dCBmb3IgaG93IHRoaXMgY2hhbmdlIGltcGFjdHMgdGhlIG5ldHdvcmsgc3RhY2sgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUFDVkxBTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTE2Mz1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvdGVhbS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnLTE2NC1cbmRyaXZlcnMvbmV0L0tjb25maWc6MTY1OmNvbmZpZyBNQUNWTEFOXG5kcml2ZXJzL25ldC9LY29uZmlnLTE2Ni1cdHRyaXN0YXRlIFwmIzM0O01BQy1WTEFOIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTg5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCBkaXZpbmcgaW50byB0aGUgY29kZToKCioqQ2hlY2tpbmcgS2NvbmZpZyBmb3IgTUFDVkxBTiBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIOKAkyB0aGUgY29uZmlndXJhdGlvbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGhlYWRpbmcgdG8gYGRyaXZlcnMvbmV0L0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIGFsbCB0aGUgbmV0d29ya2luZyBkcml2ZXJzIGFuZCBmZWF0dXJlcyBhcmUgZGVmaW5lZCBpbiB0ZXJtcyBvZiB0aGVpciBidWlsZC10aW1lIG9wdGlvbnMuIEkga25vdyB0aGF0IGlmIE1BQ1ZMQU4gaXMgc3VwcG9ydGVkLCBpdHMgcHJlc2VuY2Ugd2lsbCBiZSBjb250cm9sbGVkIHRocm91Z2ggYSBLY29uZmlnIHN5bWJvbC4gTXkgZXhwZXJ0aXNlIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyB0aGUgbG9naWNhbCBmaXJzdCBzdGVwIHRvIHVuZGVyc3RhbmQgdGhlIGZlYXR1cmUmIzM5O3MgYXZhaWxhYmlsaXR5LCBhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCByZXZlYWwgdGhlIGNydWNpYWwgZGV0YWlscyBJIG5lZWQgdG8ga25vdzogSXMgaXQgZW5hYmxlZCBieSBkZWZhdWx0PyBEb2VzIGl0IGRlcGVuZCBvbiBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBvcHRpb25zPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBlbmFibGluZyBpdD8gR2V0dGluZyBhIGNsZWFyIHBpY3R1cmUgZnJvbSB0aGlzIHN0YXJ0aW5nIHBvaW50IHdpbGwgYWxsb3cgbWUgdG8gYnVpbGQgYSBmdWxsZXIgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE2MDpcdFx0ICAmIzM5O2lmYjEmIzM5OyBldGMuXG4gMTYxOlx0XHQgIExvb2sgYXQgdGhlIGlwcm91dGUyIGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IGZvciB1c2FnZSBldGNcbiAxNjI6XHRcbiAxNjM6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvdGVhbS9LY29uZmlnXCYjMzQ7XG4gMTY0Olx0XG4gMTY1Olx0Y29uZmlnIE1BQ1ZMQU5cbiAxNjY6XHRcdHRyaXN0YXRlIFwmIzM0O01BQy1WTEFOIHN1cHBvcnRcJiMzNDtcbiAxNjc6XHRcdGhlbHBcbiAxNjg6XHRcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2aXJ0dWFsIGludGVyZmFjZXMgdGhhdCBtYXAgcGFja2V0cyB0b1xuIDE2OTpcdFx0ICBvciBmcm9tIHNwZWNpZmljIE1BQyBhZGRyZXNzZXMgdG8gYSBwYXJ0aWN1bGFyIGludGVyZmFjZS5cbiAxNzA6XHRcbiAxNzE6XHRcdCAgTWFjdmxhbiBkZXZpY2VzIGNhbiBiZSBhZGRlZCB1c2luZyB0aGUgXCYjMzQ7aXBcJiMzNDsgY29tbWFuZCBmcm9tIHRoZVxuIDE3MjpcdFx0ICBpcHJvdXRlMiBwYWNrYWdlIHN0YXJ0aW5nIHdpdGggdGhlIGlwcm91dGUyLTIuNi4yMyByZWxlYXNlOlxuIDE3MzpcdFxuIDE3NDpcdFx0ICBcJiMzNDtpcCBsaW5rIGFkZCBsaW5rIFx1MDAzY3JlYWwgZGV2XHUwMDNlIFsgYWRkcmVzcyBNQUMgXSBbIE5BTUUgXSB0eXBlIG1hY3ZsYW5cJiMzNDtcbiAxNzU6XHRcbiAxNzY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxuIDE3NzpcdFx0ICB3aWxsIGJlIGNhbGxlZCBtYWN2bGFuLlxuIDE3ODpcdFxuIDE3OTpcdGNvbmZpZyBNQUNWVEFQXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU0MQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipEaXZpbmcgaW50byB0aGUgTUFDVkxBTiBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBzbyB0aGUgc3lzdGVtIGlzIHNldCB1cCB1c2luZyBgTUFDVkxBTmAuIEdvdCBpdC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHN5c3RlbSYjMzk7cyBpbml0aWFsaXplZCBhbmQgaG93IGl0IGhhbmRsZXMgZXZlbnRzLiBMZXQmIzM5O3MgcGlucG9pbnQgc29tZSBrZXkgc3ltYm9scywgd2hpY2ggYXBwZWFyIHRvIGJlIHRoZSBmb2N1cyBoZXJlLgoKSXQgbG9va3MgbGlrZSBgbWFjdmxhbl9pbml0YCBhbmQgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCBhcmUgc3RhdGljIGZ1bmN0aW9ucy4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgc3VnZ2VzdGluZyB0aGV5JiMzOTtyZSBpbnRlcm5hbCB0byB0aGUgYG1hY3ZsYW5gIG1vZHVsZSBpdHNlbGYuIFdhaXQsIHdhaXQsIGlzIGBtYWN2bGFuX2luaXRgIGEga2luZCBvZiBjYWxsYmFjayBmdW5jdGlvbiwgcGVyaGFwcyBwYXJ0IG9mIHRoZSBgbmV0X2RldmljZV9vcHNgIHN0cnVjdHVyZSBvciBzb21ldGhpbmcgc2ltaWxhcj8gVG8gY29uZmlybSB0aGlzLCBJIG5lZWQgdG8ganVtcCBpbnRvIGBtYWN2bGFuLmNgIGFuZCB0YWtlIGEgbG9vaywgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjdmxhbl9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYz05Mjk9c3RhdGljIHZvaWQgbWFjdmxhbl9zZXRfbG9ja2RlcF9jbGFzcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy05MzUtXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6OTM2OnN0YXRpYyBpbnQgbWFjdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtOTM3LXtcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTE4OT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG1hY3ZsYW5fbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxMTkwOlx0Lm5kb19pbml0XHRcdD0gbWFjdmxhbl9pbml0LFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTExOTEtXHQubmRvX3VuaW5pdFx0XHQ9IG1hY3ZsYW5fdW5pbml0LFxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODc2PXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbWFjdmxhbl9ub3RpZmllcl9ibG9jayBfX3JlYWRfbW9zdGx5ID0ge1xuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODc5LVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jOjE4ODA6c3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4ODEte1xuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODk1PXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE5MDAtXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkwMTptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xOTAyLW1vZHVsZV9leGl0KG1hY3ZsYW5fY2xlYW51cF9tb2R1bGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzYKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKktlcm5lbCBNb2R1bGUgSW5pdGlhbGl6YXRpb24gYW5kIEV2ZW50IEhhbmRsaW5nIGZvciBNYWN2bGFuKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gZnJvbSBhIGtlcm5lbCBwZXJzcGVjdGl2ZS4gU28sIGlmIEkmIzM5O20gdW5kZXJzdGFuZGluZyB0aGlzIGNvcnJlY3RseSwgdGhlIGBtYWN2bGFuX2luaXRgIGZ1bmN0aW9uLCBhdCBpdHMgY29yZSwgaXMgc2ltcGx5IGNhbGxpbmcgYC5uZG9faW5pdGAuIFRoaXMgbWFrZXMgc2Vuc2U7IGl0IG1lYW5zIHRoZSBNYWN2bGFuIG1vZHVsZSBsZXZlcmFnZXMgdGhlIHN0YW5kYXJkIG5ldHdvcmsgZGV2aWNlIG9wZXJhdGlvbiBpbml0aWFsaXphdGlvbiBwcm9jZWR1cmUsIGxpa2VseSB0byBzZXQgdXAgdGhlIGZvdW5kYXRpb24gZm9yIG1hbmFnaW5nIHRoZSB2aXJ0dWFsIGludGVyZmFjZXMuIFRoZSBkZXRhaWxzIHVuZGVyIGAubmRvX2luaXRgIGFyZSBrZXkgLSBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiBwb2ludGVyIHVzYWdlIHdpdGhpbiB0aGF0IGBuZG9faW5pdGAgaW1wbGVtZW50YXRpb24gd2l0aGluIHRoZSBrZXJuZWwgZm9yIHRoZSBzcGVjaWZpY3MuIFRoaXMgZXN0YWJsaXNoZXMgdGhlIGJhc2ljIG9wZXJhdGlvbmFsIHN0cnVjdHVyZSBmb3IgdGhlIG1hY3ZsYW4gZGV2aWNlLCByZWFkeSB0byBiZSBjb25maWd1cmVkIGFuZCB1dGlsaXplZC4KCk5vdywgYXMgZm9yIGV2ZW50IGhhbmRsaW5nLCB0aGUgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCBmdW5jdGlvbiBpcyBkZXNjcmliZWQgYXMgdGhlIG5vdGlmaWVyIGJsb2NrIGNhbGxiYWNrLiBUaGlzIHNpZ25pZmllcyBpdHMgcm9sZSBpbiByZWFjdGluZyB0byBldmVudHMgcmVsZXZhbnQgdG8gdGhlIE1hY3ZsYW4gZGV2aWNlLiBUaGlzIGltcGxpZXMgdGhhdCB0aGUgbm90aWZpZXIgbWVjaGFuaXNtIGlzIGJlaW5nIHVzZWQgLSBtZWFuaW5nIHRoYXQgdGhlIE1hY3ZsYW4gbW9kdWxlIGNhbiBiZSBpbmZvcm1lZCBvZiByZWxldmFudCBjaGFuZ2VzIG9yIGFjdGlvbnMgdGhhdCBpbXBhY3QgdGhlIE1hY3ZsYW4gZGV2aWNlLCBiZSB0aGV5IHJlbGF0ZWQgdG8gdGhlIG5ldGRldiwgdGhlIGludGVyZmFjZXMsIG9yIGV2ZW4gdGhlIHdpZGVyIHN5c3RlbS4gSSYjMzk7bGwgbmVlZCB0byBrbm93IHdoaWNoIGV2ZW50cyBhcmUgYmVpbmcgcmVnaXN0ZXJlZCwgc3BlY2lmaWNhbGx5LiBUaGUgaW50ZXJlc3RpbmcgdGhpbmcgaGVyZSBpcyB3aGljaCBldmVudHMgYXJlIG9mIGludGVyZXN0LCBvciBvZiBpbXBvcnRhbmNlLiBFdmVudHMgY2FuIHJhbmdlIGZyb20gdGhlIG5ldHdvcmsgYmVpbmcgYnJvdWdodCB1cCBvciBkb3duLCBjb25maWd1cmF0aW9uIGNoYW5nZXMgb2YgdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgaW50ZXJmYWNlLCBvciBldmVuIHBvdGVudGlhbGx5LCBkZXZpY2UgaG90cGx1ZyBldmVudHMuIFVuZGVyc3RhbmRpbmcgd2hpY2ggZXZlbnQgdHlwZXMgdHJpZ2dlciB0aGlzIGNhbGxiYWNrIHdpbGwgYmUgY3J1Y2lhbCB0byBpdHMgb3BlcmF0aW9uYWwgYmVoYXZpb3IuIEkgbmVlZCB0byBkaWcgaW50byB0aGUgYWN0dWFsIGNvZGUgdG8gZ2V0IGEgY29tcGxldGUgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjdmxhbl9kZXZpY2VfZXZlbnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9tYWN2bGFuLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE3OTM9c3RhdGljIHZvaWQgdXBkYXRlX3BvcnRfYmNfcXVldWVfbGVuKHN0cnVjdCBtYWN2bGFuX3BvcnQgKnBvcnQpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4MDQtXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTgwNTpzdGF0aWMgaW50IG1hY3ZsYW5fZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4MDYtXHRcdFx0XHR1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpwdHIpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE4NzY9c3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBtYWN2bGFuX25vdGlmaWVyX2Jsb2NrIF9fcmVhZF9tb3N0bHkgPSB7XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTg3NzpcdC5ub3RpZmllcl9jYWxsXHQ9IG1hY3ZsYW5fZGV2aWNlX2V2ZW50LFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4NzgtfTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg2MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBgbWFjdmxhbi5jYCBmb3IgRHluYW1pYyBGdW5jdGlvbmFsaXR5KioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gYG1hY3ZsYW4uY2AuIE15IHByaW1hcnkgaW50ZXJlc3QgaGVyZSBpc24mIzM5O3QgdGhlIHN0YXRpYyBjb25maWd1cmF0aW9uIG9yIGluaXRpYWxpemF0aW9uLiBXZSYjMzk7cmUgd2VsbCBwYXN0IHRoYXQuIE15IGZvY3VzIGlzIHB1cmVseSBvbiBpZGVudGlmeWluZyB0aGUgKmR5bmFtaWMqIGVsZW1lbnRzLCB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGRvaW5nIHRoZSByZWFsIHdvcmsgb2YgcGFja2V0IGhhbmRsaW5nLCBhZGRyZXNzIGxlYXJuaW5nLCBhbmQgaW50ZXJmYWNlIGludGVyYWN0aW9uICphZnRlciogdGhlIGluaXRpYWwgc2V0dXAuIEkgd2FudCB0byBwaW5wb2ludCB0aGUgc2VjdGlvbnMgdGhhdCByZWFjdCB0byBjaGFuZ2luZyBuZXR3b3JrIGNvbmRpdGlvbnMsIGhhbmRsZSBkYXRhIGZsb3csIGFuZCBwb3RlbnRpYWxseSBpbnRyb2R1Y2UgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLiBXZSBhbHJlYWR5IGtub3cgdGhlIGJhc2ljczsgbm93IHdlIG5lZWQgdG8gc2VlIHRoZSBtZWNoYW5pc20uIEkmIzM5O20gbG9va2luZyBmb3IgdGhlIGNvZGUgdGhhdCB0cnVseSAqZHJpdmVzKiBtYWN2bGFuJiMzOTtzIGZ1bmN0aW9uYWxpdHksIG5vdCBqdXN0IHNldHMgdGhlIHN0YWdlLiBUaW1lIHRvIGdldCB0byB0aGUgY29yZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XmludCBtYWN2bGFuXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9tYWN2bGFuLmM9MTQwND1zdGF0aWMgaW50IG1hY3ZsYW5fY2hhbmdlbGlua19zb3VyY2VzKHN0cnVjdCBtYWN2bGFuX2RldiAqdmxhbiwgdTMyIG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE0NTktXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTQ2MDppbnQgbWFjdmxhbl9jb21tb25fbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE0NjEtXHRcdFx0ICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTc1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgbWFjdmxhbl9wb2xpY3lbSUZMQV9NQUNWTEFOX01BWCAmIzQzOyAxXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTc2NC1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNzY1OmludCBtYWN2bGFuX2xpbmtfcmVnaXN0ZXIoc3RydWN0IHJ0bmxfbGlua19vcHMgKm9wcylcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNzY2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTY6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMzOAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGl2aW5nIGludG8gTWFjdmxhbiBEZXZpY2UgQ3JlYXRpb24qKgoKT2theSwgc28gSSBzZWUgdGhhdCBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AgaXMgZXhwb3J0ZWQuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgaXQmIzM5O3MgdGhlIGNvcmUgZnVuY3Rpb24gcmVzcG9uc2libGUgZm9yLCB3ZWxsLCBjcmVhdGluZyB0aGVzZSBtYWN2bGFuIGRldmljZXMuIENvbnNpZGVyaW5nIGhvdyBmdW5kYW1lbnRhbCB0aGF0IG9wZXJhdGlvbiBpcywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgaW4gZGV0YWlsLiBNeSBuZXh0IHN0ZXA/IEkmIzM5O20gZ29pbmcgdG8ganVtcCByaWdodCBpbnRvIGV4YW1pbmluZyBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AuIEkgbmVlZCB0byBzZWUgZXhhY3RseSBob3cgdGhpcyBmdW5jdGlvbiBoYW5kbGVzIGFsbCB0aGUgbnVhbmNlcyBvZiBtYWN2bGFuIGRldmljZSBpbml0aWFsaXphdGlvbi4gTGV0JiMzOTtzIHNlZSBob3cgaXQgb3BlcmF0ZXMhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTF9HUEwobWFjdmxhbl9jb21tb25fbmV3bGluaykmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9tYWN2bGFuLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NTY2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYmFzZWQgb24gdGhlIHByb21wdDoKCioqRGlnZ2luZyBpbnRvIGBtYWN2bGFuLmNgIC0gQ2hlY2tpbmcgYEVYUE9SVF9TWU1CT0xgKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzIHByb2JsZW0gd2l0aCB0aGUgbWFjdmxhbiBjb2RlLCBJIG5lZWQgdG8gdGFrZSBhIHF1aWNrIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIHNvbWV0aGluZyBvYnZpb3VzLiBMZXQmIzM5O3MganVzdCBkb3VibGUtY2hlY2sgdGhlIGBtYWN2bGFuLmNgIGZpbGUgaXRzZWxmLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byBjb25maXJtIGhvdyBgRVhQT1JUX1NZTUJPTGAgaXMgYmVpbmcgdXNlZCBpbiB0aGlzIGNvbnRleHQuIEkgbmVlZCB0byByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCBzeW1ib2xzIGFyZSBiZWluZyBleHBvc2VkIGFuZCBob3cgdGhleSYjMzk7cmUgaW50ZW5kZWQgdG8gaW50ZXJhY3Qgd2l0aCBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBwYXJ0cyBvZiB0aGUgbmV0d29yayBzdGFjay4gSSYjMzk7bSBsb29raW5nIHRvIGNvbmZpcm0gaG93IHRoZSBjb3JlIG1hY3ZsYW4gZnVuY3Rpb25zIGFyZSBiZWluZyBtYWRlIGF2YWlsYWJsZSBmb3Igb3RoZXJzIHRvIHVzZS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBiZWZvcmUgSSBzdGFydCBkaWdnaW5nIGZvciBwb3RlbnRpYWwgaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtFWFBPUlRfU1lNQk9MJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYz0xMjI2PXZvaWQgbWFjdmxhbl9jb21tb25fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTI0MS19XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTI0MjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2NvbW1vbl9zZXR1cCk7XG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTI0My1cbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTQ2MD1pbnQgbWFjdmxhbl9jb21tb25fbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNTkxLX1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNTkyOkVYUE9SVF9TWU1CT0xfR1BMKG1hY3ZsYW5fY29tbW9uX25ld2xpbmspO1xuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE1OTMtXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE2MDE9dm9pZCBtYWN2bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbi0tXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTYxMS19XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTYxMjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2RlbGxpbmspO1xuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE2MTMtXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE3NjU9aW50IG1hY3ZsYW5fbGlua19yZWdpc3RlcihzdHJ1Y3QgcnRubF9saW5rX29wcyAqb3BzKVxuLS1cbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNzc2LX07XG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTc3NzpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2xpbmtfcmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE3NzgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE2OjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMjIKCQkJCQkJCW91dHB1dDogMTI2CgkJCQkJCQl0aG91Z2h0czogMjg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWFjdmxhbiBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaW4gZnJvbnQgb2YgbWUsIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AgaXMgYSBwcmV0dHkgc29saWQgc3ltYm9sIHRvIGZvY3VzIG9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGxpZXMgd2l0aGluIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIG1hY3ZsYW4gZGV2aWNlcyBhbmQgdGhlaXIgdW5kZXJseWluZyBwaHlzaWNhbCBpbnRlcmZhY2VzLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGluaXRpYWxpemF0aW9uIGFuZCBmZWF0dXJlIHVwZGF0ZXMuCgpJIHNlZSB0aGF0IHRoZSBwYXRjaCB0b3VjaGVzIGBtYWN2bGFuX2luaXRgIGFuZCBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgLiBgbWFjdmxhbl9pbml0YCBoYW5kbGVzIHRoZSByZWdpc3RyYXRpb24gb2YgYSBtYWN2bGFuIGRldmljZSwgd2hpY2ggaXMgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZGV2aWNlIGlzIGluaXRpYWxseSBzZXQgdXAuIGBtYWN2bGFuX2RldmljZV9ldmVudGAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVuZGVybHlpbmcgZGV2aWNlJiMzOTtzIGZlYXR1cmVzIGNoYW5nZSwgc28gdGhpcyBpcyBpbXBvcnRhbnQgZm9yIHNlZWluZyBob3cgdXBkYXRlcyBhcmUgaGFuZGxlZC4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgYG1hY3ZsYW5fY29tbW9uX25ld2xpbmtgIHdpbGwgYmUgYSB2YWx1YWJsZSBlbnRyeSBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBjaGFuZ2UuCgpUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGxvb2tzIHRvIGJlIHRoYXQgdGhlIG1hY3ZsYW4gZHJpdmVyIGlzIG5vdyBpbmhlcml0aW5nIGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UuIFRoaXMgb2NjdXJzIGR1cmluZyBib3RoIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSYjMzk7cyBjYXBhYmlsaXRpZXMgYXJlIG1vZGlmaWVkIChgbWFjdmxhbl9kZXZpY2VfZXZlbnRgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBuZXR3b3JrIGRldmljZSBjb25maWd1cmF0aW9uIGxvZ2ljLCBhbmQgb2YgY291cnNlIGl0JiMzOTtzIHNvbWV0aGluZyB0aGF0IHdlJiMzOTtsbCBiZSBhYmxlIHRvIGludGVyYWN0IHdpdGggdGhyb3VnaCBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy4KCkkgc2hvdWxkIGRvdWJsZS1jaGVjayBvdGhlciBjb25maWd1cmF0aW9ucywgdGhvdWdoLiBBaCwgcmlnaHQsIHRoZSBtYWluIG9uZSByZWxhdGVkIHRvIHRoaXMgd291bGQgYmUgYE1BQ1ZMQU5gLgoKTm93LCBqdXN0IHRvIGJlIHN1cmUuLi4gTGV0IG1lIHZlcmlmeSBpZiBib3RoIGBtYWN2bGFuX2luaXRgIGFuZCBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGFyZSBzdGF0aWMuIFllcCwgdGhleSBhcmUuIFRoYXQgc29saWRpZmllcyB0aGUgdXNlZnVsbmVzcyBvZiBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AgYXMgdGhlIHByaW1hcnkgZW50cnkgcG9pbnQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBjaGFuZ2UgaXMgaW1wbGVtZW50ZWQuCgpSaWdodCwgSSYjMzk7bSByZWFkeSB0byBjYWxsIHRoZSByZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNjo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5fY29tbW9uX25ld2xpbmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG1hY3ZsYW4gZHJpdmVyIHRvIGluaGVyaXQgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZyb20gaXRzIGxvd2VyIGRldmljZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKGBtYWN2bGFuX2luaXRgKSBhbmQgd2hlbiB0aGUgbG93ZXIgZGV2aWNlJiMzOTtzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5fY29tbW9uX25ld2xpbmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG1hY3ZsYW4gZHJpdmVyIHRvIGluaGVyaXQgYG5lZWRlZF9oZWFkcm9vbWAgYW5kIGBuZWVkZWRfdGFpbHJvb21gIGZyb20gaXRzIGxvd2VyIGRldmljZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKGBtYWN2bGFuX2luaXRgKSBhbmQgd2hlbiB0aGUgbG93ZXIgZGV2aWNlJiMzOTtzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjIyLjcyMDc3NzAxM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMDI3MjE3MzA0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUNWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFjdmxhbl9jb21tb25fbmV3bGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtYWN2bGFuIGRyaXZlciB0byBpbmhlcml0IGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSdzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjIuNzIwNzg4NDA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzcxMjk2NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5N2MyYzRkY2E2Y2EyZDc1MjlhZGU5NDdkYTQyODJiYTg1ZWNhMDkwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDYgMTY6NTc6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXFxuaW5kZXggYzQwZmEzMzE4MzZiYi4uZmYyZjRiYjY1MWI3NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG4rKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG5AQCAtOTUwLDYgKzk1MCw4IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdGRldi1cXHUwMDNlbGx0eFxcdFxcdD0gdHJ1ZTtcXG4gXFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KGRldiwgbG93ZXJkZXYpO1xcbiBcXHRkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlblxcdD0gbG93ZXJkZXYtXFx1MDAzZWhhcmRfaGVhZGVyX2xlbjtcXG4rXFx0ZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb21cXHQ9IGxvd2VyZGV2LVxcdTAwM2VuZWVkZWRfaGVhZHJvb207XFxuK1xcdGRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tXFx0PSBsb3dlcmRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xcbiBcXHRtYWN2bGFuX3NldF9sb2NrZGVwX2NsYXNzKGRldik7XFxuIFxcbiBcXHR2bGFuLVxcdTAwM2VwY3B1X3N0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHZsYW5fcGNwdV9zdGF0cyk7XFxuQEAgLTE4MjQsNiArMTgyNiw4IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXFxuIFxcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxcbiBcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHZsYW4sIFxcdTAwMjZwb3J0LVxcdTAwM2V2bGFucywgbGlzdCkge1xcbiBcXHRcXHRcXHRuZXRpZl9pbmhlcml0X3Rzb19tYXgodmxhbi1cXHUwMDNlZGV2LCBkZXYpO1xcbitcXHRcXHRcXHR2bGFuLVxcdTAwM2VkZXYtXFx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGRldi1cXHUwMDNlbmVlZGVkX2hlYWRyb29tO1xcbitcXHRcXHRcXHR2bGFuLVxcdTAwM2VkZXYtXFx1MDAzZW5lZWRlZF90YWlscm9vbSA9IGRldi1cXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xcbiBcXHRcXHRcXHRuZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKHZsYW4tXFx1MDAzZWRldik7XFxuIFxcdFxcdH1cXG4gXFx0XFx0YnJlYWs7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjIzLjE1ODcxNjc5OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjEwOTgzNDIwODQyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUNWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFjdmxhbl9jb21tb25fbmV3bGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtYWN2bGFuIGRyaXZlciB0byBpbmhlcml0IGBuZWVkZWRfaGVhZHJvb21gIGFuZCBgbmVlZGVkX3RhaWxyb29tYCBmcm9tIGl0cyBsb3dlciBkZXZpY2UgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgbWFjdmxhbl9pbml0YCkgYW5kIHdoZW4gdGhlIGxvd2VyIGRldmljZSdzIGZlYXR1cmVzIGNoYW5nZSAoYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgbmV0d29yayBkZXZpY2UgY29uZmlndXJhdGlvbiBsb2dpYyBhbmQgaXMgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIHdoZW4gY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIG1hY3ZsYW4gaW50ZXJmYWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOTdjMmM0ZGNhNmNhMmQ3NTI5YWRlOTQ3ZGE0MjgyYmE4NWVjYTA5MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTY6NTc6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbmluZGV4IGM0MGZhMzMxODM2YmIuLmZmMmY0YmI2NTFiNzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbisrKyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uY1xuQEAgLTk1MCw2ICs5NTAsOCBAQCBzdGF0aWMgaW50IG1hY3ZsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0ZGV2LVx1MDAzZWxsdHhcdFx0PSB0cnVlO1xuIFx0bmV0aWZfaW5oZXJpdF90c29fbWF4KGRldiwgbG93ZXJkZXYpO1xuIFx0ZGV2LVx1MDAzZWhhcmRfaGVhZGVyX2xlblx0PSBsb3dlcmRldi1cdTAwM2VoYXJkX2hlYWRlcl9sZW47XG4rXHRkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tXHQ9IGxvd2VyZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbitcdGRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb21cdD0gbG93ZXJkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0bWFjdmxhbl9zZXRfbG9ja2RlcF9jbGFzcyhkZXYpO1xuIFxuIFx0dmxhbi1cdTAwM2VwY3B1X3N0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHZsYW5fcGNwdV9zdGF0cyk7XG5AQCAtMTgyNCw2ICsxODI2LDggQEAgc3RhdGljIGludCBtYWN2bGFuX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZCxcbiBcdGNhc2UgTkVUREVWX0ZFQVRfQ0hBTkdFOlxuIFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHZsYW4sIFx1MDAyNnBvcnQtXHUwMDNldmxhbnMsIGxpc3QpIHtcbiBcdFx0XHRuZXRpZl9pbmhlcml0X3Rzb19tYXgodmxhbi1cdTAwM2VkZXYsIGRldik7XG4rXHRcdFx0dmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtcbitcdFx0XHR2bGFuLVx1MDAzZWRldi1cdTAwM2VuZWVkZWRfdGFpbHJvb20gPSBkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tO1xuIFx0XHRcdG5ldGRldl91cGRhdGVfZmVhdHVyZXModmxhbi1cdTAwM2VkZXYpO1xuIFx0XHR9XG4gXHRcdGJyZWFrO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjMuMTU4NzE4MTc4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc2OTA5ODE4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNYWN2bGFuIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggYWZmZWN0aW5nIHRoZSBgbWFjdmxhbi5jYCBkcml2ZXIuIFNlZW1zIGxpa2Ugd2UncmUgZXhwbGljaXRseSBzZXR0aW5nIHRoZSBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgdmFsdWVzLiBTcGVjaWZpY2FsbHksIHRoZSBjb2RlIGlzIGFkZGluZyBgZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbSA9IGxvd2VyZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtgIGFuZCBgZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbSA9IGxvd2VyZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbTtgIHdpdGhpbiBgbWFjdmxhbl9pbml0YC4gSXQncyBhbHNvIHVwZGF0aW5nIHRoZXNlIHZhbHVlcyB3aXRoaW4gdGhlIGBtYWN2bGFuX2RldmljZV9ldmVudGAgZnVuY3Rpb24sIHNwZWNpZmljYWxseSB1bmRlciB0aGUgYE5FVERFVl9GRUFUX0NIQU5HRWAgZXZlbnQsIGJ5IGFkZGluZyBgdmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX2hlYWRyb29tID0gZGV2LVx1MDAzZW5lZWRlZF9oZWFkcm9vbTtgIGFuZCBgdmxhbi1cdTAwM2VkZXYtXHUwMDNlbmVlZGVkX3RhaWxyb29tID0gZGV2LVx1MDAzZW5lZWRlZF90YWlscm9vbTtgLlxuXG5Fc3NlbnRpYWxseSwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGZlYXR1cmUgdGhhdCBtYWtlcyB0aGUgbWFjdmxhbiBpbnRlcmZhY2UgaW5oZXJpdCB2aXRhbCBtZXRhZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIGxvd2VyIGRldmljZS4gVGhpcyBpcyBpbnRlcmVzdGluZy4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBBbnkgY2hhbmdlIHRoYXQgYWx0ZXJzIHRoZSBmbG93IG9mIGRhdGEgb3IgbW9kaWZpZXMgY3JpdGljYWwgbmV0d29yayBwYXJhbWV0ZXJzIGxpa2UgaGVhZHJvb20gYW5kIHRhaWxyb29tIGNhbiBpbnRyb2R1Y2UgdnVsbmVyYWJpbGl0aWVzLiBUaGUgaW50ZXJhY3Rpb24gYmV0d2VlbiB0aGUgbWFjdmxhbiBhbmQgdGhlIGxvd2VyIGRldmljZSBhZGRzIGFuIGV4dHJhIGRpbWVuc2lvbiBvZiBjb21wbGV4aXR5LlxuXG5CZWZvcmUgSSBkaWcgaW4sIEkgd2FudCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuIExldCdzIHN0YXJ0IGJ5IHJlLWV4YW1pbmluZyBgbWFjdmxhbl9pbml0YCBhbmQgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YCBpbiBgZHJpdmVycy9uZXQvbWFjdmxhbi5jYC4gSnVzdCB0byBiZSBzdXJlIHRoZSBmdW5jdGlvbiBpcyB3aGF0IEkgdGhpbmsgaXQgaXMuXG5cbkFuZCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBrbm93IHRoZSBjb25maWcgb3B0aW9uLiBMZXQgbWUgY2hlY2sgdGhlIEtjb25maWcsIGxvb2tzIGxpa2UgaXQncyBgTUFDVkxBTmAuIEknbGwgc2VhcmNoIGZvciBgTUFDVkxBTmAgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMsIG9wdGlvbnMgYW5kIGltcGxpY2F0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIHN5c3RlbS4gVGhpcyBnaXZlcyBtZSBjb250ZXh0IGZvciBob3cgdGhpcyBjaGFuZ2UgaW1wYWN0cyB0aGUgbmV0d29yayBzdGFjayBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQ0LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjguOTI3ODE4MTUyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MjM0NjU5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDVkxBTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0xNjM9c291cmNlIFxcXCJkcml2ZXJzL25ldC90ZWFtL0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjQtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxNjU6Y29uZmlnIE1BQ1ZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTE2Ni1cXHR0cmlzdGF0ZSBcXFwiTUFDLVZMQU4gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MjkuMDcwMTY4OTM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMjY3MDQ2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQgZGl2aW5nIGludG8gdGhlIGNvZGU6XG5cbioqQ2hlY2tpbmcgS2NvbmZpZyBmb3IgTUFDVkxBTiBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIHN0cmFpZ2h0IGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIg4oCTIHRoZSBjb25maWd1cmF0aW9uLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIHRvIGBkcml2ZXJzL25ldC9LY29uZmlnYC4gVGhpcyBpcyB3aGVyZSBhbGwgdGhlIG5ldHdvcmtpbmcgZHJpdmVycyBhbmQgZmVhdHVyZXMgYXJlIGRlZmluZWQgaW4gdGVybXMgb2YgdGhlaXIgYnVpbGQtdGltZSBvcHRpb25zLiBJIGtub3cgdGhhdCBpZiBNQUNWTEFOIGlzIHN1cHBvcnRlZCwgaXRzIHByZXNlbmNlIHdpbGwgYmUgY29udHJvbGxlZCB0aHJvdWdoIGEgS2NvbmZpZyBzeW1ib2wuIE15IGV4cGVydGlzZSB0ZWxscyBtZSB0aGF0IHRoaXMgaXMgdGhlIGxvZ2ljYWwgZmlyc3Qgc3RlcCB0byB1bmRlcnN0YW5kIHRoZSBmZWF0dXJlJ3MgYXZhaWxhYmlsaXR5LCBhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCByZXZlYWwgdGhlIGNydWNpYWwgZGV0YWlscyBJIG5lZWQgdG8ga25vdzogSXMgaXQgZW5hYmxlZCBieSBkZWZhdWx0PyBEb2VzIGl0IGRlcGVuZCBvbiBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBvcHRpb25zPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBlbmFibGluZyBpdD8gR2V0dGluZyBhIGNsZWFyIHBpY3R1cmUgZnJvbSB0aGlzIHN0YXJ0aW5nIHBvaW50IHdpbGwgYWxsb3cgbWUgdG8gYnVpbGQgYSBmdWxsZXIgdW5kZXJzdGFuZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk4OSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjMyLjQ5Mjg0MTgxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyMTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTYwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTYwOlxcdFxcdCAgJ2lmYjEnIGV0Yy5cXG4gMTYxOlxcdFxcdCAgTG9vayBhdCB0aGUgaXByb3V0ZTIgZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgZm9yIHVzYWdlIGV0Y1xcbiAxNjI6XFx0XFxuIDE2MzpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3RlYW0vS2NvbmZpZ1xcXCJcXG4gMTY0OlxcdFxcbiAxNjU6XFx0Y29uZmlnIE1BQ1ZMQU5cXG4gMTY2OlxcdFxcdHRyaXN0YXRlIFxcXCJNQUMtVkxBTiBzdXBwb3J0XFxcIlxcbiAxNjc6XFx0XFx0aGVscFxcbiAxNjg6XFx0XFx0ICBUaGlzIGFsbG93cyBvbmUgdG8gY3JlYXRlIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IG1hcCBwYWNrZXRzIHRvXFxuIDE2OTpcXHRcXHQgIG9yIGZyb20gc3BlY2lmaWMgTUFDIGFkZHJlc3NlcyB0byBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlLlxcbiAxNzA6XFx0XFxuIDE3MTpcXHRcXHQgIE1hY3ZsYW4gZGV2aWNlcyBjYW4gYmUgYWRkZWQgdXNpbmcgdGhlIFxcXCJpcFxcXCIgY29tbWFuZCBmcm9tIHRoZVxcbiAxNzI6XFx0XFx0ICBpcHJvdXRlMiBwYWNrYWdlIHN0YXJ0aW5nIHdpdGggdGhlIGlwcm91dGUyLTIuNi4yMyByZWxlYXNlOlxcbiAxNzM6XFx0XFxuIDE3NDpcXHRcXHQgIFxcXCJpcCBsaW5rIGFkZCBsaW5rIFxcdTAwM2NyZWFsIGRldlxcdTAwM2UgWyBhZGRyZXNzIE1BQyBdIFsgTkFNRSBdIHR5cGUgbWFjdmxhblxcXCJcXG4gMTc1OlxcdFxcbiAxNzY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuIDE3NzpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIG1hY3ZsYW4uXFxuIDE3ODpcXHRcXG4gMTc5OlxcdGNvbmZpZyBNQUNWVEFQXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjMyLjQ5MjkxNTUwNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyNzcwMDM2NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipEaXZpbmcgaW50byB0aGUgTUFDVkxBTiBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIHRoZSBzeXN0ZW0gaXMgc2V0IHVwIHVzaW5nIGBNQUNWTEFOYC4gR290IGl0LiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtJ3MgaW5pdGlhbGl6ZWQgYW5kIGhvdyBpdCBoYW5kbGVzIGV2ZW50cy4gTGV0J3MgcGlucG9pbnQgc29tZSBrZXkgc3ltYm9scywgd2hpY2ggYXBwZWFyIHRvIGJlIHRoZSBmb2N1cyBoZXJlLlxuXG5JdCBsb29rcyBsaWtlIGBtYWN2bGFuX2luaXRgIGFuZCBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGFyZSBzdGF0aWMgZnVuY3Rpb25zLiBUaGF0J3MgaW50ZXJlc3RpbmcsIHN1Z2dlc3RpbmcgdGhleSdyZSBpbnRlcm5hbCB0byB0aGUgYG1hY3ZsYW5gIG1vZHVsZSBpdHNlbGYuIFdhaXQsIHdhaXQsIGlzIGBtYWN2bGFuX2luaXRgIGEga2luZCBvZiBjYWxsYmFjayBmdW5jdGlvbiwgcGVyaGFwcyBwYXJ0IG9mIHRoZSBgbmV0X2RldmljZV9vcHNgIHN0cnVjdHVyZSBvciBzb21ldGhpbmcgc2ltaWxhcj8gVG8gY29uZmlybSB0aGlzLCBJIG5lZWQgdG8ganVtcCBpbnRvIGBtYWN2bGFuLmNgIGFuZCB0YWtlIGEgbG9vaywgc2VlIHdoYXQncyBnb2luZyBvbiBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU0MSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MzguNzY5OTIxMDY1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMjcwNTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hY3ZsYW5faW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9tYWN2bGFuLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jPTkyOT1zdGF0aWMgdm9pZCBtYWN2bGFuX3NldF9sb2NrZGVwX2NsYXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtOTM1LVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzo5MzY6c3RhdGljIGludCBtYWN2bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtOTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xMTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbWFjdmxhbl9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxMTkwOlxcdC5uZG9faW5pdFxcdFxcdD0gbWFjdmxhbl9pbml0LFxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xMTkxLVxcdC5uZG9fdW5pbml0XFx0XFx0PSBtYWN2bGFuX3VuaW5pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODc2PXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbWFjdmxhbl9ub3RpZmllcl9ibG9jayBfX3JlYWRfbW9zdGx5ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4NzktXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jOjE4ODA6c3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xODk1PXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkwMC1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkwMTptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkwMi1tb2R1bGVfZXhpdChtYWN2bGFuX2NsZWFudXBfbW9kdWxlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTc6MzguODEzMTk3MDgxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE1NjgwODkzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipLZXJuZWwgTW9kdWxlIEluaXRpYWxpemF0aW9uIGFuZCBFdmVudCBIYW5kbGluZyBmb3IgTWFjdmxhbioqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93biBmcm9tIGEga2VybmVsIHBlcnNwZWN0aXZlLiBTbywgaWYgSSdtIHVuZGVyc3RhbmRpbmcgdGhpcyBjb3JyZWN0bHksIHRoZSBgbWFjdmxhbl9pbml0YCBmdW5jdGlvbiwgYXQgaXRzIGNvcmUsIGlzIHNpbXBseSBjYWxsaW5nIGAubmRvX2luaXRgLiBUaGlzIG1ha2VzIHNlbnNlOyBpdCBtZWFucyB0aGUgTWFjdmxhbiBtb2R1bGUgbGV2ZXJhZ2VzIHRoZSBzdGFuZGFyZCBuZXR3b3JrIGRldmljZSBvcGVyYXRpb24gaW5pdGlhbGl6YXRpb24gcHJvY2VkdXJlLCBsaWtlbHkgdG8gc2V0IHVwIHRoZSBmb3VuZGF0aW9uIGZvciBtYW5hZ2luZyB0aGUgdmlydHVhbCBpbnRlcmZhY2VzLiBUaGUgZGV0YWlscyB1bmRlciBgLm5kb19pbml0YCBhcmUga2V5IC0gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiBwb2ludGVyIHVzYWdlIHdpdGhpbiB0aGF0IGBuZG9faW5pdGAgaW1wbGVtZW50YXRpb24gd2l0aGluIHRoZSBrZXJuZWwgZm9yIHRoZSBzcGVjaWZpY3MuIFRoaXMgZXN0YWJsaXNoZXMgdGhlIGJhc2ljIG9wZXJhdGlvbmFsIHN0cnVjdHVyZSBmb3IgdGhlIG1hY3ZsYW4gZGV2aWNlLCByZWFkeSB0byBiZSBjb25maWd1cmVkIGFuZCB1dGlsaXplZC5cblxuTm93LCBhcyBmb3IgZXZlbnQgaGFuZGxpbmcsIHRoZSBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGZ1bmN0aW9uIGlzIGRlc2NyaWJlZCBhcyB0aGUgbm90aWZpZXIgYmxvY2sgY2FsbGJhY2suIFRoaXMgc2lnbmlmaWVzIGl0cyByb2xlIGluIHJlYWN0aW5nIHRvIGV2ZW50cyByZWxldmFudCB0byB0aGUgTWFjdmxhbiBkZXZpY2UuIFRoaXMgaW1wbGllcyB0aGF0IHRoZSBub3RpZmllciBtZWNoYW5pc20gaXMgYmVpbmcgdXNlZCAtIG1lYW5pbmcgdGhhdCB0aGUgTWFjdmxhbiBtb2R1bGUgY2FuIGJlIGluZm9ybWVkIG9mIHJlbGV2YW50IGNoYW5nZXMgb3IgYWN0aW9ucyB0aGF0IGltcGFjdCB0aGUgTWFjdmxhbiBkZXZpY2UsIGJlIHRoZXkgcmVsYXRlZCB0byB0aGUgbmV0ZGV2LCB0aGUgaW50ZXJmYWNlcywgb3IgZXZlbiB0aGUgd2lkZXIgc3lzdGVtLiBJJ2xsIG5lZWQgdG8ga25vdyB3aGljaCBldmVudHMgYXJlIGJlaW5nIHJlZ2lzdGVyZWQsIHNwZWNpZmljYWxseS4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGhlcmUgaXMgd2hpY2ggZXZlbnRzIGFyZSBvZiBpbnRlcmVzdCwgb3Igb2YgaW1wb3J0YW5jZS4gRXZlbnRzIGNhbiByYW5nZSBmcm9tIHRoZSBuZXR3b3JrIGJlaW5nIGJyb3VnaHQgdXAgb3IgZG93biwgY29uZmlndXJhdGlvbiBjaGFuZ2VzIG9mIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZSwgb3IgZXZlbiBwb3RlbnRpYWxseSwgZGV2aWNlIGhvdHBsdWcgZXZlbnRzLiBVbmRlcnN0YW5kaW5nIHdoaWNoIGV2ZW50IHR5cGVzIHRyaWdnZXIgdGhpcyBjYWxsYmFjayB3aWxsIGJlIGNydWNpYWwgdG8gaXRzIG9wZXJhdGlvbmFsIGJlaGF2aW9yLiBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGFjdHVhbCBjb2RlIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMzYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1Nzo0Mi45NzAwMTAwNzFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMzYyOTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hY3ZsYW5fZGV2aWNlX2V2ZW50XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9tYWN2bGFuLmM9MTc5Mz1zdGF0aWMgdm9pZCB1cGRhdGVfcG9ydF9iY19xdWV1ZV9sZW4oc3RydWN0IG1hY3ZsYW5fcG9ydCAqcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODA0LVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxODA1OnN0YXRpYyBpbnQgbWFjdmxhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE4MDYtXFx0XFx0XFx0XFx0dW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE4NzY9c3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBtYWN2bGFuX25vdGlmaWVyX2Jsb2NrIF9fcmVhZF9tb3N0bHkgPSB7XFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jOjE4Nzc6XFx0Lm5vdGlmaWVyX2NhbGxcXHQ9IG1hY3ZsYW5fZGV2aWNlX2V2ZW50LFxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xODc4LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU3OjQzLjAxMzM4MDQ4N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjA4MzI0MTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgYG1hY3ZsYW4uY2AgZm9yIER5bmFtaWMgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byBgbWFjdmxhbi5jYC4gTXkgcHJpbWFyeSBpbnRlcmVzdCBoZXJlIGlzbid0IHRoZSBzdGF0aWMgY29uZmlndXJhdGlvbiBvciBpbml0aWFsaXphdGlvbi4gV2UncmUgd2VsbCBwYXN0IHRoYXQuIE15IGZvY3VzIGlzIHB1cmVseSBvbiBpZGVudGlmeWluZyB0aGUgKmR5bmFtaWMqIGVsZW1lbnRzLCB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGRvaW5nIHRoZSByZWFsIHdvcmsgb2YgcGFja2V0IGhhbmRsaW5nLCBhZGRyZXNzIGxlYXJuaW5nLCBhbmQgaW50ZXJmYWNlIGludGVyYWN0aW9uICphZnRlciogdGhlIGluaXRpYWwgc2V0dXAuIEkgd2FudCB0byBwaW5wb2ludCB0aGUgc2VjdGlvbnMgdGhhdCByZWFjdCB0byBjaGFuZ2luZyBuZXR3b3JrIGNvbmRpdGlvbnMsIGhhbmRsZSBkYXRhIGZsb3csIGFuZCBwb3RlbnRpYWxseSBpbnRyb2R1Y2UgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLiBXZSBhbHJlYWR5IGtub3cgdGhlIGJhc2ljczsgbm93IHdlIG5lZWQgdG8gc2VlIHRoZSBtZWNoYW5pc20uIEknbSBsb29raW5nIGZvciB0aGUgY29kZSB0aGF0IHRydWx5ICpkcml2ZXMqIG1hY3ZsYW4ncyBmdW5jdGlvbmFsaXR5LCBub3QganVzdCBzZXRzIHRoZSBzdGFnZS4gVGltZSB0byBnZXQgdG8gdGhlIGNvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NjIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1Nzo0Ni4yMjE3MDcyODVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MDY2MzM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5pbnQgbWFjdmxhbl9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xNDA0PXN0YXRpYyBpbnQgbWFjdmxhbl9jaGFuZ2VsaW5rX3NvdXJjZXMoc3RydWN0IG1hY3ZsYW5fZGV2ICp2bGFuLCB1MzIgbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNDU5LVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNDYwOmludCBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE0NjEtXFx0XFx0XFx0ICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xNzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBtYWN2bGFuX3BvbGljeVtJRkxBX01BQ1ZMQU5fTUFYICsgMV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTc2NC1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTc2NTppbnQgbWFjdmxhbl9saW5rX3JlZ2lzdGVyKHN0cnVjdCBydG5sX2xpbmtfb3BzICpvcHMpXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE3NjYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1Nzo0Ni4yNjU3Nzg3ODFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU1NDk4MTk4NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIGludG8gTWFjdmxhbiBEZXZpY2UgQ3JlYXRpb24qKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rYCBpcyBleHBvcnRlZC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSBpdCdzIHRoZSBjb3JlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciwgd2VsbCwgY3JlYXRpbmcgdGhlc2UgbWFjdmxhbiBkZXZpY2VzLiBDb25zaWRlcmluZyBob3cgZnVuZGFtZW50YWwgdGhhdCBvcGVyYXRpb24gaXMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGluIGRldGFpbC4gTXkgbmV4dCBzdGVwPyBJJ20gZ29pbmcgdG8ganVtcCByaWdodCBpbnRvIGV4YW1pbmluZyBgbWFjdmxhbl9jb21tb25fbmV3bGlua2AuIEkgbmVlZCB0byBzZWUgZXhhY3RseSBob3cgdGhpcyBmdW5jdGlvbiBoYW5kbGVzIGFsbCB0aGUgbnVhbmNlcyBvZiBtYWN2bGFuIGRldmljZSBpbml0aWFsaXphdGlvbi4gTGV0J3Mgc2VlIGhvdyBpdCBvcGVyYXRlcyFcblxuXG4iLCJJbnB1dFRva2VucyI6NTMzOCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE2OjU5OjAxLjgxNTYwMTY4NFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg0MDcwMDUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkVYUE9SVF9TWU1CT0xfR1BMKG1hY3ZsYW5fY29tbW9uX25ld2xpbmspXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTY6NTk6MDEuODY0MDE0ODY5WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODQ3NTUyMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBiYXNlZCBvbiB0aGUgcHJvbXB0OlxuXG4qKkRpZ2dpbmcgaW50byBgbWFjdmxhbi5jYCAtIENoZWNraW5nIGBFWFBPUlRfU1lNQk9MYCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzIHByb2JsZW0gd2l0aCB0aGUgbWFjdmxhbiBjb2RlLCBJIG5lZWQgdG8gdGFrZSBhIHF1aWNrIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgc29tZXRoaW5nIG9idmlvdXMuIExldCdzIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBgbWFjdmxhbi5jYCBmaWxlIGl0c2VsZi4gU3BlY2lmaWNhbGx5LCBJIHdhbnQgdG8gY29uZmlybSBob3cgYEVYUE9SVF9TWU1CT0xgIGlzIGJlaW5nIHVzZWQgaW4gdGhpcyBjb250ZXh0LiBJIG5lZWQgdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgc3ltYm9scyBhcmUgYmVpbmcgZXhwb3NlZCBhbmQgaG93IHRoZXkncmUgaW50ZW5kZWQgdG8gaW50ZXJhY3Qgd2l0aCBvdGhlciBrZXJuZWwgbW9kdWxlcyBvciBwYXJ0cyBvZiB0aGUgbmV0d29yayBzdGFjay4gSSdtIGxvb2tpbmcgdG8gY29uZmlybSBob3cgdGhlIGNvcmUgbWFjdmxhbiBmdW5jdGlvbnMgYXJlIGJlaW5nIG1hZGUgYXZhaWxhYmxlIGZvciBvdGhlcnMgdG8gdXNlLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIGJlZm9yZSBJIHN0YXJ0IGRpZ2dpbmcgZm9yIHBvdGVudGlhbCBpc3N1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1NjYsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1OTowNS40NDg3NzIxNzlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3MjQ5ODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkVYUE9SVF9TWU1CT0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xMjI2PXZvaWQgbWFjdmxhbl9jb21tb25fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xMjQxLX1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTI0MjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2NvbW1vbl9zZXR1cCk7XFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTEyNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM9MTQ2MD1pbnQgbWFjdmxhbl9jb21tb25fbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE1OTEtfVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYzoxNTkyOkVYUE9SVF9TWU1CT0xfR1BMKG1hY3ZsYW5fY29tbW9uX25ld2xpbmspO1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE2MDE9dm9pZCBtYWN2bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4tLVxcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNjExLX1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTYxMjpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2RlbGxpbmspO1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jPTE3NjU9aW50IG1hY3ZsYW5fbGlua19yZWdpc3RlcihzdHJ1Y3QgcnRubF9saW5rX29wcyAqb3BzKVxcbi0tXFxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE3NzYtfTtcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTc3NzpFWFBPUlRfU1lNQk9MX0dQTChtYWN2bGFuX2xpbmtfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xNzc4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1OTowNS40OTYwMjgxNTRaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQyMDc4Mjg3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1hY3ZsYW4gRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBpbiBmcm9udCBvZiBtZSwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rYCBpcyBhIHByZXR0eSBzb2xpZCBzeW1ib2wgdG8gZm9jdXMgb24uIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgb2YgdGhpcyBjaGFuZ2UgbGllcyB3aXRoaW4gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gbWFjdmxhbiBkZXZpY2VzIGFuZCB0aGVpciB1bmRlcmx5aW5nIHBoeXNpY2FsIGludGVyZmFjZXMsIHNwZWNpZmljYWxseSBhcm91bmQgaW5pdGlhbGl6YXRpb24gYW5kIGZlYXR1cmUgdXBkYXRlcy5cblxuSSBzZWUgdGhhdCB0aGUgcGF0Y2ggdG91Y2hlcyBgbWFjdmxhbl9pbml0YCBhbmQgYG1hY3ZsYW5fZGV2aWNlX2V2ZW50YC4gYG1hY3ZsYW5faW5pdGAgaGFuZGxlcyB0aGUgcmVnaXN0cmF0aW9uIG9mIGEgbWFjdmxhbiBkZXZpY2UsIHdoaWNoIGlzIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRldmljZSBpcyBpbml0aWFsbHkgc2V0IHVwLiBgbWFjdmxhbl9kZXZpY2VfZXZlbnRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1bmRlcmx5aW5nIGRldmljZSdzIGZlYXR1cmVzIGNoYW5nZSwgc28gdGhpcyBpcyBpbXBvcnRhbnQgZm9yIHNlZWluZyBob3cgdXBkYXRlcyBhcmUgaGFuZGxlZC4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGVzZSBmdW5jdGlvbnMsIEknbSBjb25maWRlbnQgdGhhdCBgbWFjdmxhbl9jb21tb25fbmV3bGlua2Agd2lsbCBiZSBhIHZhbHVhYmxlIGVudHJ5IHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGNoYW5nZS5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBsb29rcyB0byBiZSB0aGF0IHRoZSBtYWN2bGFuIGRyaXZlciBpcyBub3cgaW5oZXJpdGluZyBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlLiBUaGlzIG9jY3VycyBkdXJpbmcgYm90aCBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UncyBjYXBhYmlsaXRpZXMgYXJlIG1vZGlmaWVkIChgbWFjdmxhbl9kZXZpY2VfZXZlbnRgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBuZXR3b3JrIGRldmljZSBjb25maWd1cmF0aW9uIGxvZ2ljLCBhbmQgb2YgY291cnNlIGl0J3Mgc29tZXRoaW5nIHRoYXQgd2UnbGwgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIHRocm91Z2ggbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuXG5cbkkgc2hvdWxkIGRvdWJsZS1jaGVjayBvdGhlciBjb25maWd1cmF0aW9ucywgdGhvdWdoLiBBaCwgcmlnaHQsIHRoZSBtYWluIG9uZSByZWxhdGVkIHRvIHRoaXMgd291bGQgYmUgYE1BQ1ZMQU5gLlxuXG5Ob3csIGp1c3QgdG8gYmUgc3VyZS4uLiBMZXQgbWUgdmVyaWZ5IGlmIGJvdGggYG1hY3ZsYW5faW5pdGAgYW5kIGBtYWN2bGFuX2RldmljZV9ldmVudGAgYXJlIHN0YXRpYy4gWWVwLCB0aGV5IGFyZS4gVGhhdCBzb2xpZGlmaWVzIHRoZSB1c2VmdWxuZXNzIG9mIGBtYWN2bGFuX2NvbW1vbl9uZXdsaW5rYCBhcyB0aGUgcHJpbWFyeSBlbnRyeSBwb2ludCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGNoYW5nZSBpcyBpbXBsZW1lbnRlZC5cblxuUmlnaHQsIEknbSByZWFkeSB0byBjYWxsIHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjIyLCJPdXRwdXRUb2tlbnMiOjEyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNjo1OToxMi45MTY4MTMyMzdaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjEwOTI2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDVkxBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hY3ZsYW5fY29tbW9uX25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbWFjdmxhbiBkcml2ZXIgdG8gaW5oZXJpdCBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UncyBmZWF0dXJlcyBjaGFuZ2UgKGBtYWN2bGFuX2RldmljZV9ldmVudGApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24gbG9naWMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDVkxBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hY3ZsYW5fY29tbW9uX25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbWFjdmxhbiBkcml2ZXIgdG8gaW5oZXJpdCBgbmVlZGVkX2hlYWRyb29tYCBhbmQgYG5lZWRlZF90YWlscm9vbWAgZnJvbSBpdHMgbG93ZXIgZGV2aWNlIGR1cmluZyBpbml0aWFsaXphdGlvbiAoYG1hY3ZsYW5faW5pdGApIGFuZCB3aGVuIHRoZSBsb3dlciBkZXZpY2UncyBmZWF0dXJlcyBjaGFuZ2UgKGBtYWN2bGFuX2RldmljZV9ldmVudGApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24gbG9naWMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgbmV0bGluayB3aGVuIGNyZWF0aW5nIG9yIG1vZGlmeWluZyBtYWN2bGFuIGludGVyZmFjZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowjgt7k[1] Phase: Succeeded StartedAt: 2026-08-06 16:59:23 +0000 UTC FinishedAt: 2026-08-06 16:59:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 16:59:23 +0000 UTC FinishedAt: 2026-08-06 16:59:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2] Phase: Succeeded StartedAt: 2026-08-06 16:59:23 +0000 UTC FinishedAt: 2026-08-06 20:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-06 16:59:24 +0000 UTC FinishedAt: 2026-08-06 20:38:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-06 16:59:24 +0000 UTC FinishedAt: 2026-08-06 16:59:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-06 16:59:24 +0000 UTC FinishedAt: 2026-08-06 16:59:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowjgt7k/series-workflowjgt7k-convert-artifact-690275151/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-06 16:59:47 +0000 UTC FinishedAt: 2026-08-06 17:15:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-06 16:59:47 +0000 UTC FinishedAt: 2026-08-06 17:15:55 +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:*95d64c16-7438-4e89-833e-ec6169f947e7,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-workflowjgt7k/series-workflowjgt7k-convert-artifact-690275151/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": "cbdb36da-8ead-40e8-8b3b-eee961355d3a", "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-workflowjgt7k/series-workflowjgt7k-build-action-3936850581/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-06 16:59:47 +0000 UTC FinishedAt: 2026-08-06 17:15:45 +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:*95d64c16-7438-4e89-833e-ec6169f947e7,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-workflowjgt7k/series-workflowjgt7k-convert-artifact-690275151/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": "cbdb36da-8ead-40e8-8b3b-eee961355d3a", "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-workflowjgt7k/series-workflowjgt7k-build-action-3936850581/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-06 17:15:55 +0000 UTC FinishedAt: 2026-08-06 17:15:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-06 17:15:55 +0000 UTC FinishedAt: 2026-08-06 17:15:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-06 17:15:55 +0000 UTC FinishedAt: 2026-08-06 17:16:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-06 17:15:55 +0000 UTC FinishedAt: 2026-08-06 17:15:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowjgt7k/series-workflowjgt7k-convert-artifact-2609791134/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-06 17:16:05 +0000 UTC FinishedAt: 2026-08-06 17:18:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-06 17:16:05 +0000 UTC FinishedAt: 2026-08-06 17:18:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cbdb36da-8ead-40e8-8b3b-eee961355d3a,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-workflowjgt7k/series-workflowjgt7k-build-action-3936850581/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-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-06 17:18:20 +0000 UTC FinishedAt: 2026-08-06 17:18:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-06 17:18:20 +0000 UTC FinishedAt: 2026-08-06 17:18:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-06 17:18:20 +0000 UTC FinishedAt: 2026-08-06 17:34:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-06 17:18:20 +0000 UTC FinishedAt: 2026-08-06 17:34:44 +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:*95d64c16-7438-4e89-833e-ec6169f947e7,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-workflowjgt7k/series-workflowjgt7k-convert-artifact-2609791134/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": "0a98cd5d-256b-441c-918e-85c10a13ef3a", "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-workflowjgt7k/series-workflowjgt7k-build-action-2743594610/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-06 17:18:20 +0000 UTC FinishedAt: 2026-08-06 17:34:34 +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:*95d64c16-7438-4e89-833e-ec6169f947e7,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-workflowjgt7k/series-workflowjgt7k-convert-artifact-2609791134/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": "0a98cd5d-256b-441c-918e-85c10a13ef3a", "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-workflowjgt7k/series-workflowjgt7k-build-action-2743594610/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-06 17:34:44 +0000 UTC FinishedAt: 2026-08-06 17:34:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-06 17:34:44 +0000 UTC FinishedAt: 2026-08-06 17:34:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-06 17:34:44 +0000 UTC FinishedAt: 2026-08-06 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-06 17:34:44 +0000 UTC FinishedAt: 2026-08-06 17:36:28 +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:*0a98cd5d-256b-441c-918e-85c10a13ef3a,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-workflowjgt7k/series-workflowjgt7k-build-action-2743594610/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-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 20:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 20:38:36 +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":["macvlan_common_newlink"],"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:*cbdb36da-8ead-40e8-8b3b-eee961355d3a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0a98cd5d-256b-441c-918e-85c10a13ef3a,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-workflowjgt7k/series-workflowjgt7k-build-action-3936850581/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-workflowjgt7k/series-workflowjgt7k-build-action-2743594610/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 17:36:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 17:36:44 +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":["macvlan_common_newlink"],"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-workflowjgt7k/series-workflowjgt7k-convert-artifact-2445524387/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-06 17:36:38 +0000 UTC FinishedAt: 2026-08-06 17:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-06 17:36:48 +0000 UTC FinishedAt: 2026-08-06 20:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjgt7k[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["macvlan_common_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ea7c98e106a8058d1fabeaab94c6531d95baa2e9","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"e44e80eb-6bd8-4112-b374-ed89e5ad96dc","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-06 17:36:48 +0000 UTC FinishedAt: 2026-08-06 20:38:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cbdb36da-8ead-40e8-8b3b-eee961355d3a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0a98cd5d-256b-441c-918e-85c10a13ef3a,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-workflowjgt7k/series-workflowjgt7k-build-action-3936850581/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-workflowjgt7k/series-workflowjgt7k-build-action-2743594610/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-workflowjgt7k/series-workflowjgt7k-convert-artifact-2445524387/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,}