Name: series-workflowdcdhc Phase: Succeeded StartedAt: 2026-07-24 17:41:41 +0000 UTC FinishedAt: 2026-07-24 22:23:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[0] Phase: Succeeded StartedAt: 2026-07-24 17:41:41 +0000 UTC FinishedAt: 2026-07-24 17:59:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[0].run-triage Phase: Succeeded StartedAt: 2026-07-24 17:41:41 +0000 UTC FinishedAt: 2026-07-24 17:59:14 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fd3a3f28ed60c6af4b2a39933b151d6b27842c3b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN", "IPV6" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fd3a3f28ed60c6af4b2a39933b151d6b27842c3b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN", "IPV6" ], "series_id": "11e37b6b-54d7-4889-ac12-39097cd0b2a0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "arp_reduce", "route_shortcircuit", "vxlan_xmit", "vxlan_mdb_entry_skb_get" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDssCiAgICAmIzM0O0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgICAmIzM0O3JvdXRlX3Nob3J0Y2lyY3VpdCYjMzQ7LAogICAgJiMzNDt2eGxhbl94bWl0JiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYl9lbnRyeV9za2JfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjJkMDdkNzAyOTcxNTNlODQ2YTM1MjMxOWViMDczZmI1M2QxOTUzNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDE3OjU4OjEzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xuaW5kZXggNjdjMzY3Y2M1NjYyMzMuLmVmZjE3OTg3YzViNTMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbkBAIC0xODUwLDcgJiM0MzsxODUwLDcgQEAgc3RhdGljIGludCBhcnBfcmVkdWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiB2bmkpXG4gXHRpZiAoZGV2LVx1MDAzZWZsYWdzIFx1MDAyNiBJRkZfTk9BUlApXG4gXHRcdGdvdG8gb3V0O1xuIFxuLVx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgYXJwX2hkcl9sZW4oZGV2KSkpIHtcbiYjNDM7XHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7XG4gXHRcdGRldl9kc3RhdHNfdHhfZHJvcHBlZChkZXYpO1xuIFx0XHR2eGxhbl92bmlmaWx0ZXJfY291bnQodnhsYW4sIHZuaSwgTlVMTCxcbiBcdFx0XHRcdCAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7XG5AQCAtMjExMSw3ICYjNDM7MjExMSw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0e1xuIFx0XHRzdHJ1Y3QgaXBoZHIgKnBpcDtcbiBcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuJiM0MztcdFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0XHRwaXAgPSBpcF9oZHIoc2tiKTtcbiBcdFx0biA9IG5laWdoX2xvb2t1cChcdTAwMjZhcnBfdGJsLCBcdTAwMjZwaXAtXHUwMDNlZGFkZHIsIGRldik7XG5AQCAtMjEzNyw3ICYjNDM7MjEzNyw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHQgKi9cbiBcdFx0aWYgKCFpcHY2X21vZF9lbmFibGVkKCkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuLVx0XHRpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSlcbiYjNDM7XHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0XHRwaXA2ID0gaXB2Nl9oZHIoc2tiKTtcbiBcdFx0biA9IG5laWdoX2xvb2t1cChcdTAwMjZuZF90YmwsIFx1MDAyNnBpcDYtXHUwMDNlZGFkZHIsIGRldik7XG5AQCAtMjE1OSwxMyAmIzQzOzIxNTksMTkgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHR9XG4gXG4gXHRpZiAobikge1xuJiM0MztcdFx0dTggaGFkZHJbRVRIX0FMRU5dO1xuIFx0XHRib29sIGRpZmY7XG4gXG4tXHRcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBuLVx1MDAzZWhhKTtcbiYjNDM7XHRcdG5laWdoX2hhX3NuYXBzaG90KGhhZGRyLCBuLCBkZXYpO1xuJiM0MztcdFx0ZGlmZiA9ICFldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZChldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBoYWRkcik7XG4gXHRcdGlmIChkaWZmKSB7XG4mIzQzO1x0XHRcdGlmIChza2JfY293X2hlYWQoc2tiLCAwKSkge1xuJiM0MztcdFx0XHRcdG5laWdoX3JlbGVhc2Uobik7XG4mIzQzO1x0XHRcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcdFx0XHR9XG4gXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX3NvdXJjZSwgZXRoX2hkcihza2IpLVx1MDAzZWhfZGVzdCxcbiBcdFx0XHRcdGRldi1cdTAwM2VhZGRyX2xlbik7XG4tXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX2Rlc3QsIG4tXHUwMDNlaGEsIGRldi1cdTAwM2VhZGRyX2xlbik7XG4mIzQzO1x0XHRcdG1lbWNweShldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBoYWRkciwgZGV2LVx1MDAzZWFkZHJfbGVuKTtcbiBcdFx0fVxuIFx0XHRuZWlnaF9yZWxlYXNlKG4pO1xuIFx0XHRyZXR1cm4gZGlmZjtcbkBAIC0yNzU3LDggJiM0MzsyNzYzLDggQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdFx0XHRyZXR1cm4gYXJwX3JlZHVjZShkZXYsIHNrYiwgdm5pKTtcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcbiBcdFx0ZWxzZSBpZiAobnRvaHMoZXRoLVx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQVjYgXHUwMDI2XHUwMDI2XG4tXHRcdFx0IHBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICYjNDM7XG4tXHRcdFx0XHRcdCAgICBzaXplb2Yoc3RydWN0IG5kX21zZykpIFx1MDAyNlx1MDAyNlxuJiM0MztcdFx0XHQgcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSAmIzQzO1xuJiM0MztcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKHN0cnVjdCBuZF9tc2cpKSBcdTAwMjZcdTAwMjZcbiBcdFx0XHQgaXB2Nl9oZHIoc2tiKS1cdTAwM2VuZXh0aGRyID09IElQUFJPVE9fSUNNUFY2KSB7XG4gXHRcdFx0c3RydWN0IG5kX21zZyAqbSA9IChzdHJ1Y3QgbmRfbXNnICopKGlwdjZfaGRyKHNrYikgJiM0MzsgMSk7XG4gXG5AQCAtMjc5Niw2ICYjNDM7MjgwMiw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB2eGxhbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHQgICAgKG50b2hzKGV0aC1cdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUCB8fFxuIFx0ICAgICBudG9ocyhldGgtXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfSVBWNikpIHtcbiBcdFx0ZGlkX3JzYyA9IHJvdXRlX3Nob3J0Y2lyY3VpdChkZXYsIHNrYik7XG4mIzQzO1x0XHRldGggPSBldGhfaGRyKHNrYik7XG4gXHRcdGlmIChkaWRfcnNjKVxuIFx0XHRcdGYgPSB2eGxhbl9maW5kX21hY190eCh2eGxhbiwgZXRoLVx1MDAzZWhfZGVzdCwgdm5pKTtcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXG5pbmRleCBhZjdhMGQ3Zjk1YTU3YS4uOWE5MDM4YWU5MGMxOGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNcbkBAIC0xNjMxLDcgJiM0MzsxNjMxLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXG4gXHRzd2l0Y2ggKHNrYi1cdTAwM2Vwcm90b2NvbCkge1xuIFx0Y2FzZSBodG9ucyhFVEhfUF9JUCk6XG4tXHRcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcbiYjNDM7XHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuIFx0XHRcdHJldHVybiBOVUxMO1xuIFx0XHRncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDtcbiBcdFx0Z3JvdXAuZHN0LnNpbi5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS1cdTAwM2VkYWRkcjtcbkBAIC0xNjQwLDcgJiM0MzsxNjQwLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXHRcdGJyZWFrO1xuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuIFx0Y2FzZSBodG9ucyhFVEhfUF9JUFY2KTpcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4mIzQzO1x0XHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKVxuIFx0XHRcdHJldHVybiBOVUxMO1xuIFx0XHRncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDY7XG4gXHRcdGdyb3VwLmRzdC5zaW42LnNpbjZfYWRkciA9IGlwdjZfaGRyKHNrYiktXHUwMDNlZGFkZHI7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDssCiAgICAmIzM0O0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgICAmIzM0O3JvdXRlX3Nob3J0Y2lyY3VpdCYjMzQ7LAogICAgJiMzNDt2eGxhbl94bWl0JiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYl9lbnRyeV9za2JfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2MmQwN2Q3MDI5NzE1M2U4NDZhMzUyMzE5ZWIwNzNmYjUzZDE5NTM1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMjQgMTc6NTg6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMKaW5kZXggNjdjMzY3Y2M1NjYyMzMuLmVmZjE3OTg3YzViNTMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jCkBAIC0xODUwLDcgJiM0MzsxODUwLDcgQEAgc3RhdGljIGludCBhcnBfcmVkdWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiB2bmkpCiAJaWYgKGRldi0mZ3Q7ZmxhZ3MgJmFtcDsgSUZGX05PQVJQKQogCQlnb3RvIG91dDsKIAotCWlmICghcHNrYl9tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7CiYjNDM7CWlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgYXJwX2hkcl9sZW4oZGV2KSkpIHsKIAkJZGV2X2RzdGF0c190eF9kcm9wcGVkKGRldik7CiAJCXZ4bGFuX3ZuaWZpbHRlcl9jb3VudCh2eGxhbiwgdm5pLCBOVUxMLAogCQkJCSAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7CkBAIC0yMTExLDcgJiM0MzsyMTExLDcgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJewogCQlzdHJ1Y3QgaXBoZHIgKnBpcDsKIAotCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKIAkJCXJldHVybiBmYWxzZTsKIAkJcGlwID0gaXBfaGRyKHNrYik7CiAJCW4gPSBuZWlnaF9sb29rdXAoJmFtcDthcnBfdGJsLCAmYW1wO3BpcC0mZ3Q7ZGFkZHIsIGRldik7CkBAIC0yMTM3LDcgJiM0MzsyMTM3LDcgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJCSAqLwogCQlpZiAoIWlwdjZfbW9kX2VuYWJsZWQoKSkKIAkJCXJldHVybiBmYWxzZTsKLQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKQogCQkJcmV0dXJuIGZhbHNlOwogCQlwaXA2ID0gaXB2Nl9oZHIoc2tiKTsKIAkJbiA9IG5laWdoX2xvb2t1cCgmYW1wO25kX3RibCwgJmFtcDtwaXA2LSZndDtkYWRkciwgZGV2KTsKQEAgLTIxNTksMTMgJiM0MzsyMTU5LDE5IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCX0KIAogCWlmIChuKSB7CiYjNDM7CQl1OCBoYWRkcltFVEhfQUxFTl07CiAJCWJvb2wgZGlmZjsKIAotCQlkaWZmID0gIWV0aGVyX2FkZHJfZXF1YWwoZXRoX2hkcihza2IpLSZndDtoX2Rlc3QsIG4tJmd0O2hhKTsKJiM0MzsJCW5laWdoX2hhX3NuYXBzaG90KGhhZGRyLCBuLCBkZXYpOwomIzQzOwkJZGlmZiA9ICFldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZChldGhfaGRyKHNrYiktJmd0O2hfZGVzdCwgaGFkZHIpOwogCQlpZiAoZGlmZikgewomIzQzOwkJCWlmIChza2JfY293X2hlYWQoc2tiLCAwKSkgewomIzQzOwkJCQluZWlnaF9yZWxlYXNlKG4pOwomIzQzOwkJCQlyZXR1cm4gZmFsc2U7CiYjNDM7CQkJfQogCQkJbWVtY3B5KGV0aF9oZHIoc2tiKS0mZ3Q7aF9zb3VyY2UsIGV0aF9oZHIoc2tiKS0mZ3Q7aF9kZXN0LAogCQkJCWRldi0mZ3Q7YWRkcl9sZW4pOwotCQkJbWVtY3B5KGV0aF9oZHIoc2tiKS0mZ3Q7aF9kZXN0LCBuLSZndDtoYSwgZGV2LSZndDthZGRyX2xlbik7CiYjNDM7CQkJbWVtY3B5KGV0aF9oZHIoc2tiKS0mZ3Q7aF9kZXN0LCBoYWRkciwgZGV2LSZndDthZGRyX2xlbik7CiAJCX0KIAkJbmVpZ2hfcmVsZWFzZShuKTsKIAkJcmV0dXJuIGRpZmY7CkBAIC0yNzU3LDggJiM0MzsyNzYzLDggQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCXJldHVybiBhcnBfcmVkdWNlKGRldiwgc2tiLCB2bmkpOwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCiAJCWVsc2UgaWYgKG50b2hzKGV0aC0mZ3Q7aF9wcm90bykgPT0gRVRIX1BfSVBWNiAmYW1wOyZhbXA7Ci0JCQkgcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgJiM0MzsKLQkJCQkJICAgIHNpemVvZihzdHJ1Y3QgbmRfbXNnKSkgJmFtcDsmYW1wOwomIzQzOwkJCSBwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICYjNDM7CiYjNDM7CQkJCQkJICAgIHNpemVvZihzdHJ1Y3QgbmRfbXNnKSkgJmFtcDsmYW1wOwogCQkJIGlwdjZfaGRyKHNrYiktJmd0O25leHRoZHIgPT0gSVBQUk9UT19JQ01QVjYpIHsKIAkJCXN0cnVjdCBuZF9tc2cgKm0gPSAoc3RydWN0IG5kX21zZyAqKShpcHY2X2hkcihza2IpICYjNDM7IDEpOwogCkBAIC0yNzk2LDYgJiM0MzsyODAyLDcgQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkgICAgKG50b2hzKGV0aC0mZ3Q7aF9wcm90bykgPT0gRVRIX1BfSVAgfHwKIAkgICAgIG50b2hzKGV0aC0mZ3Q7aF9wcm90bykgPT0gRVRIX1BfSVBWNikpIHsKIAkJZGlkX3JzYyA9IHJvdXRlX3Nob3J0Y2lyY3VpdChkZXYsIHNrYik7CiYjNDM7CQlldGggPSBldGhfaGRyKHNrYik7CiAJCWlmIChkaWRfcnNjKQogCQkJZiA9IHZ4bGFuX2ZpbmRfbWFjX3R4KHZ4bGFuLCBldGgtJmd0O2hfZGVzdCwgdm5pKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jCmluZGV4IGFmN2EwZDdmOTVhNTdhLi45YTkwMzhhZTkwYzE4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmMKQEAgLTE2MzEsNyAmIzQzOzE2MzEsNyBAQCBzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAogCXN3aXRjaCAoc2tiLSZndDtwcm90b2NvbCkgewogCWNhc2UgaHRvbnMoRVRIX1BfSVApOgotCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKIAkJCXJldHVybiBOVUxMOwogCQlncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDsKIAkJZ3JvdXAuZHN0LnNpbi5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS0mZ3Q7ZGFkZHI7CkBAIC0xNjQwLDcgJiM0MzsxNjQwLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCiAJCWJyZWFrOwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCiAJY2FzZSBodG9ucyhFVEhfUF9JUFY2KToKLQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKQogCQkJcmV0dXJuIE5VTEw7CiAJCWdyb3VwLmRzdC5zYS5zYV9mYW1pbHkgPSBBRl9JTkVUNjsKIAkJZ3JvdXAuZHN0LnNpbjYuc2luNl9hZGRyID0gaXB2Nl9oZHIoc2tiKS0mZ3Q7ZGFkZHI7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzNjkKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVlhMQU4gRHJpdmVyIFBhdGNoIFJldmlldyBhbmQgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIFZYTEFOIGRyaXZlci4gSXQgc2VlbXMgbGlrZSBhIHJlbGF0aXZlbHkgZm9jdXNlZCBjaGFuZ2UsIHByaW1hcmlseSBpbXBhY3RpbmcgYGRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY2AgYW5kIGBkcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZSBhdXRob3IgaXMgdHJ5aW5nIHRvIHRpZ2h0ZW4gdXAgc29tZSBtZW1vcnkgc2FmZXR5IG9yIHBlcmZvcm1hbmNlIGFzcGVjdHMsIGxpa2VseSBkdWUgdG8gcG90ZW50aWFsIGlzc3VlcyBpbiBob3cgcGFja2V0IGRhdGEgaXMgaGFuZGxlZC4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCByZXZvbHZlcyBhcm91bmQgc3dhcHBpbmcgb3V0IGBwc2tiX21heV9wdWxsYCB3aXRoIGBwc2tiX25ldHdvcmtfbWF5X3B1bGxgIGFjcm9zcyBhIGZldyBjcml0aWNhbCBmdW5jdGlvbnM6IGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuIFJlcGxhY2luZyB0aGUgZm9ybWVyIHdpdGggdGhlIGxhdHRlciBtZWFucyB3ZSBoYXZlIG5vdyBjaGFuZ2VkIGJlaGF2aW9yLCBzbyB3ZSB3YW50IHRvIGJlIHZlcnkgY2FyZWZ1bCB0byB2ZXJpZnkgdGhlIGNoYW5nZSYjMzk7cyBjb3JyZWN0bmVzcy4gVGhhdCYjMzk7cyBnb29kLCBgcHNrYl9uZXR3b3JrX21heV9wdWxsYCBpcyBnZW5lcmFsbHkgcHJlZmVycmVkIHdoZW4geW91JiMzOTtyZSB3b3JraW5nIHdpdGggbmV0d29yayBoZWFkZXJzIGFuZCB3YW50IHRvIGF2b2lkIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWRzIGR1cmluZyBwYWNrZXQgcHJvY2Vzc2luZywgc28gdGhpcyBpcyBhIHBvc2l0aXZlIG1vdmUuCgpUaGUgY2hhbmdlcyBpbiBgcm91dGVfc2hvcnRjaXJjdWl0YCBhcmUgbW9yZSBpbnRlcmVzdGluZy4gVGhlIGRpcmVjdCBhY2Nlc3MgdG8gYG4tJmd0O2hhYCBhbmQgdXNhZ2Ugb2YgYGV0aGVyX2FkZHJfZXF1YWxgIGFyZSBiZWluZyByZXBsYWNlZCB3aXRoIGBuZWlnaF9oYV9zbmFwc2hvdGAgYW5kIGBldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZGAsIHdoaWNoIGFyZSBzYWZlciBhbHRlcm5hdGl2ZXMuIExvb2tzIGxpa2UgdGhpcyBtaWdodCBiZSByZWxhdGVkIHRvIHNvbWUgcmVwb3J0ZWQgaXNzdWVzIGluIG5laWdoYm9yIHRhYmxlIGFjY2Vzcy4gVGhlIGFkZGl0aW9uIG9mIGFuIGBza2JfY293X2hlYWRgIGNoZWNrIGJlZm9yZSBtb2RpZnlpbmcgRXRoZXJuZXQgaGVhZGVyIGZpZWxkcyBpbiBgdnhsYW5feG1pdGAgaXMgYWxzbyBhIGdvb2QgZGVmZW5zaXZlIG1lYXN1cmUsIHByZXZlbnRpbmcgdW5leHBlY3RlZCBtb2RpZmljYXRpb24gb2Ygc2hhcmVkIGJ1ZmZlciBkYXRhLiBBbmQgdGhlIHVwZGF0ZSBvZiB0aGUgRXRoZXJuZXQgaGVhZGVyIHBvaW50ZXIgYWZ0ZXIgdGhlIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIGEgc2ltcGxlIGNvcnJlY3Rpb24sIHRvIG1ha2Ugc3VyZSBzdWJzZXF1ZW50IGNvZGUgb3BlcmF0ZXMgb24gdGhlIGNvcnJlY3QgZGF0YS4KClRoaXMgcmVhbGx5IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cCwgSSBuZWVkIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiZWhhdmlvdXIgZG9lc24mIzM5O3QgY2hhbmdlIHRvbyBtdWNoLiBCZWNhdXNlIG9mIHRoYXQsIGFuZCBiZWNhdXNlIHRoZXNlIGFyZSBhbGwgY29yZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBWWExBTiBkcml2ZXIsIHRoaXMgcGF0Y2ggZGVmaW5pdGVseSB3YXJyYW50cyBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9ucyB0byB0YXJnZXQgZHVyaW5nIGZ1enppbmcgd2lsbCBiZSBgYXJwX3JlZHVjZWAsIGByb3V0ZV9zaG9ydGNpcmN1aXRgLCBgdnhsYW5feG1pdGAsIGFuZCBgdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXRgLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24uIExldCYjMzk7cyBzZWUuLi4gdGhlIHByaW1hcnkgY29uZmlnIGhlcmUgd2lsbCBiZSBgVlhMQU5gLCBidXQgSSBzaG91bGQgY2hlY2sgdGhlIEtjb25maWcgZmlsZSBpbiBgZHJpdmVycy9uZXQvdnhsYW5gIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGUgYmVoYXZpb3Igb2YgdGhlc2UgZnVuY3Rpb25zIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIGZ1enppbmcgc2V0dXAuIE1ha2luZyBzdXJlIEkgaGF2ZSB0aGUgZnVsbCBwaWN0dXJlIGlzIGtleSBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFZYTEFOJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI5NQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDM5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIHRoZSBvbmUgaGF2aW5nIGl0OgoKKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsbHkgTWlzc2luZyBDb25maWd1cmF0aW9uIEZpbGUqKgoKSG1tLCBpdCBzZWVtcyBsaWtlIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbS4gVGhhdCBgZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZ2AgZmlsZSBJIHdhcyBleHBlY3RpbmcgbWlnaHQgbm90IGFjdHVhbGx5IGJlIHByZXNlbnQuIEEgcXVpY2sgc2FuaXR5IGNoZWNrIGlzIGluIG9yZGVyLiBMZXQgbWUgdHJ5IGxvb2tpbmcgYXQgYSBjb3VwbGUgb2YgcmVsYXRlZCBsb2NhdGlvbnMgdG8gdmVyaWZ5IGlmIHRoZXJlJiMzOTtzIGEgdHlwbywgYW4gb3JnYW5pemF0aW9uYWwgc2hpZnQsIG9yIHBlcmhhcHMgdGhlIGZlYXR1cmUgaXMgaGFuZGxlZCBlbHNld2hlcmUuIEZpcnN0LCBJJiMzOTtsbCBleGFtaW5lIHRoZSBtb3JlIGdlbmVyYWwgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUg4oCTIHRoYXQmIzM5O3Mgb2Z0ZW4gdGhlIHJvb3QgZm9yIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24uIElmIHRoYXQgZG9lc24mIzM5O3QgaG9sZCB0aGUga2V5LCBJJiMzOTtsbCBnbyBkaXJlY3RseSBpbnRvIHRoZSBgZHJpdmVycy9uZXQvdnhsYW4vYCBkaXJlY3RvcnkgYW5kIHNlZSBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyBzdWJ0bHkgZGlmZmVyZW50LCBvciBpZiB0aGUgd2hvbGUgVlhMQU4gS2NvbmZpZyBmaWxlIGxpdmVzIHVuZGVyIGFub3RoZXIgbmFtZS4gR290dGEgZmlndXJlIG91dCB3aGVyZSB0aGlzIGNvbmZpZ3VyYXRpb24gbG9naWMgKmFjdHVhbGx5KiByZXNpZGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fY29yZS5jJiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYi5jJiMzNDssCiAgICAmIzM0O3Z4bGFuX211bHRpY2FzdC5jJiMzNDssCiAgICAmIzM0O3Z4bGFuX3ByaXZhdGUuaCYjMzQ7LAogICAgJiMzNDt2eGxhbl92bmlmaWx0ZXIuYyYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDYxNwoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgcHJlc2VudGVkIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIFZYTEFOIENvbmZpZ3VyYXRpb24gaW4gTmV0d29yayBEcml2ZXJzKioKCkFscmlnaHQsIEkmIzM5O20gdGhpbmtpbmcgSSBuZWVkIHRvIGZpbmQgd2hlcmUgVlhMQU4gaXMgY29uZmlndXJlZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIG5ldHdvcmsgZHJpdmVyIGNvbmZpZ3VyYXRpb25zLiBUaGUgcXVpY2tlc3Qgd2F5IHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyB0byBsZXZlcmFnZSBgZ3JlcGAuIEkga25vdyB0aGUgS2NvbmZpZyBmaWxlcyBpbiB0aGUgYGRyaXZlcnMvbmV0L2AgZGlyZWN0b3J5IGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIG5ldHdvcmsgZHJpdmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhlcmVmb3JlLCBJJiMzOTttIGdvaW5nIHRvIHJ1biBhIGBncmVwYCBjb21tYW5kLCBsaWtlbHkgc2VhcmNoaW5nIGZvciAmIzM0O1ZYTEFOJiMzNDsgYWNyb3NzIHRob3NlIEtjb25maWcgZmlsZXMuIFRoaXMgc2hvdWxkIHF1aWNrbHkgbG9jYXRlIGFueSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgZGVmYXVsdCBzZXR0aW5ncyByZWxhdGVkIHRvIFZYTEFOIHN1cHBvcnQgd2l0aGluIHRob3NlIGRyaXZlcnMuIFRoYXQmIzM5O3MgdGhlIG1vc3QgZWZmaWNpZW50IHdheSB0byBnZXQgYSBwcmVsaW1pbmFyeSBvdmVydmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxNzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVlhMQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZz0yMTY9Y29uZmlnIElQVlRBUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMjI5LVxuZHJpdmVycy9uZXQvS2NvbmZpZzoyMzA6Y29uZmlnIFZYTEFOXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMS1cdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgZVh0ZW5zaWJsZSBMb2NhbCBBcmVhIE5ldHdvcmsgKFZYTEFOKVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5MjEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqVlhMQU4gQ29uZmlndXJhdGlvbiBhbmQgVHJhbnNtaXNzaW9uIEFuYWx5c2lzKioKClJpZ2h0LCB0aGUga2V5IGNvbmZpZ3VyYXRpb24gZWxlbWVudCBoZXJlIGlzIGBWWExBTmAuIFRoYXTigJlzIHRoZSBjb3JlIGZvY3VzLiBOb3csIGxldOKAmXMgc2Vl4oCmIHRoZSBgcm91dGVfc2hvcnRjaXJjdWl0YCBmdW5jdGlvbiDigJMgSSByZWNhbGwgdGhhdCBvbmUuIEkgbmVlZCB0byByZW1lbWJlciB3aGF0IGl0cyByb2xlIGlzLiBBaCwgeWVzLCBpdCBzZWVtcyB0aGF0IGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIG9ubHkgaW52b2tlZCBpZiBhIHNwZWNpZmljIGZsYWcgaXMgc2V0LCBzcGVjaWZpY2FsbHkgaWYgYHZ4bGFuLSZndDtmbGFnc2AgaGFzIHRoZSBgVlhMQU5fRl9MM01JU1NgIGJpdCBlbmFibGVkLiBJIG5lZWQgdG8ga2VlcCB0aGF0IGluIG1pbmQuIFRoYXQmIzM5O3MgYSBjcnVjaWFsIGNvbmRpdGlvbmFsLiBJIHNob3VsZCBwcm9iYWJseSBxdWlja2x5IGNoZWNrIGhvdyB0aGF0IGZsYWcgaXMgZGV0ZXJtaW5lZC4KCk9rYXksIG5vdywgdGhlIHJlYWwgaGVhcnQgb2YgdGhpcywgd2hlcmUgdGhlIHBhY2tldHMgZ28/IExldCYjMzk7cyB0dXJuIG91ciBhdHRlbnRpb24gdG8gYHZ4bGFuX3htaXRgLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBhY3R1YWwgdHJhbnNtaXNzaW9uIHByb2Nlc3MsIGxpa2VseSBlbmNhcHN1bGF0ZWQsIHdpbGwgaGFwcGVuLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGB2eGxhbl94bWl0YCB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGZsb3csIHBvdGVudGlhbCBib3R0bGVuZWNrcywgYW5kIGFueSBzcGVjaWFsIGhhbmRsaW5nIGJhc2VkIG9uIHRoZSBgVlhMQU5fRl9MM01JU1NgIGNvbmRpdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cm91dGVfc2hvcnRjaXJjdWl0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0yMDMwPXN0YXRpYyBpbnQgbmVpZ2hfcmVkdWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiB2bmkpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTIwOTktXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MjEwMDpzdGF0aWMgYm9vbCByb3V0ZV9zaG9ydGNpcmN1aXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yMTAxLXtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjczMT1zdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODAzLVx0ICAgICBudG9ocyhldGgtXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfSVBWNikpIHtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyODA0Olx0XHRkaWRfcnNjID0gcm91dGVfc2hvcnRjaXJjdWl0KGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODA1LVx0XHRldGggPSBldGhfaGRyKHNrYik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxMTgKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxNzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xODE1PXN0YXRpYyBpbnQgdnhsYW5fZXJyX2xvb2t1cChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE4NDEtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTg0MjpzdGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMyIHZuaSlcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xODQzLXtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjczMT1zdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNzYyLVx0XHRpZiAobnRvaHMoZXRoLVx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0FSUClcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyNzYzOlx0XHRcdHJldHVybiBhcnBfcmVkdWNlKGRldiwgc2tiLCB2bmkpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI3NjQtI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NTQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxNzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2eGxhbl9tZGJfZW50cnlfc2tiX2dldCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jPTE1NzQ9aW50IHZ4bGFuX21kYl9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwgdTMyIHBvcnRpZCxcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYy0xNjExLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmM6MTYxMjpzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jLTE2MTMtXHRcdFx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA3NQoJCQkJCQkJb3V0cHV0OiAxMjMKCQkJCQkJCXRob3VnaHRzOiAyMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUGF0Y2ggQW5hbHlzaXMgLSBJbml0aWFsIFRob3VnaHRzKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgc29tZSBrZXkgYXJlYXM6IGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuIFRoYXQmIzM5O3MgYSBmb2N1c2VkIGdyb3VwLCBzdWdnZXN0aW5nIGEgc3BlY2lmaWMgYXJlYSBvZiBuZXR3b3JrIHN0YWNrIG9wdGltaXphdGlvbiBvciBidWcgZml4LiBUaGUgdXNlIG9mIGBwc2tiX25ldHdvcmtfbWF5X3B1bGxgIGluc3RlYWQgb2YgdGhlIG1vcmUgZ2VuZXJpYyBgcHNrYl9tYXlfcHVsbGAgaW1tZWRpYXRlbHkgZmxhZ3MgYSBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgZ2FpbiBvciBzdWJ0bGUgY29ycmVjdG5lc3MgaW1wcm92ZW1lbnQgYXJvdW5kIG5ldHdvcmsgaGVhZGVyIGhhbmRsaW5nLCBhbmQgaXMgd29ydGggZnVydGhlciBleGFtaW5hdGlvbi4KClRoZSByZWZlcmVuY2UgdG8gYSBidWcgaW4gYHJvdXRlX3Nob3J0Y2lyY3VpdGAgaW52b2x2aW5nIHVuLUNPV2VkIEV0aGVybmV0IGhlYWRlcnMgYW5kIG1pc3NpbmcgcmVsb2FkIGluIGB2eGxhbl94bWl0YCBpcyB0aGUgcmVhbCBtZWF0IG9mIHRoaXMuIE1vZGlmeWluZyBgZXRoX2hkcihza2IpYCB3aXRob3V0IGEgQ09XIGFuZCB0aGVuIG5vdCByZWxvYWRpbmcgdGhlIHBvaW50ZXIgYWZ0ZXIgYSBjYWxsIHRvIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIGEgY2xhc3NpYyByZWNpcGUgZm9yIGRhdGEgY29ycnVwdGlvbiwgZXNwZWNpYWxseSBpbiBhIGhlYXZpbHkgdGhyZWFkZWQgZW52aXJvbm1lbnQuIFRoYXQgaXMgZGVmaW5pdGVseSBhIHJhY2UgY29uZGl0aW9uIHdhaXRpbmcgdG8gaGFwcGVuLiBTZWVtcyBwcmV0dHkgZnVuY3Rpb25hbCwgYW5kIGRlZmluaXRlbHkgYSBjYW5kaWRhdGUgZm9yIGZ1enppbmcgb25jZSBhcHBsaWVkLiBJIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0aGUgZnV6emluZyBpcyBhcyBleGhhdXN0aXZlIGFzIHBvc3NpYmxlLCBhcyB0aGVzZSBjb25kaXRpb25zIGFyZSBkaWZmaWN1bHQgdG8gZXhwb3NlLgoKVGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIGFyZSBgVlhMQU5gIGFuZCBgSVBWNmAuIGBWWExBTmAgbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhlIGZ1bmN0aW9uIG5hbWVzLiBJIHNob3VsZCBpbnZlc3RpZ2F0ZSBvdGhlciBjb25maWcgb3B0aW9ucyB0aGF0IG1heSByZWxhdGUgdG8gdGhlc2UgZnVuY3Rpb25zLiBgSVBWNmAgaXMgdXN1YWxseSBlbmFibGVkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlc2Ugb3B0aW9ucywgc28gdGhhdCBpcyBub3Qgc3VycHJpc2luZy4gSSB3aWxsIGFkZCBgSVBWNmAgdG8gdGhlIGxpc3Qgb2YgY29uZmlndXJhdGlvbnMgdG8ga2VlcCBpbiBtaW5kLgoKTGV0JiMzOTtzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXBwbHksIGJ1dCB0aGlzIGlzIGEgZ29vZCBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDssCiAgICAmIzM0O0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgICAmIzM0O3JvdXRlX3Nob3J0Y2lyY3VpdCYjMzQ7LAogICAgJiMzNDt2eGxhbl94bWl0JiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYl9lbnRyeV9za2JfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWWExBTiYjMzQ7LAogICAgJiMzNDtJUFY2JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXJwX3JlZHVjZSYjMzQ7LAogICAgJiMzNDtyb3V0ZV9zaG9ydGNpcmN1aXQmIzM0OywKICAgICYjMzQ7dnhsYW5feG1pdCYjMzQ7LAogICAgJiMzNDt2eGxhbl9tZGJfZW50cnlfc2tiX2dldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBWWExBTiBwYWNrZXQgcHJvY2Vzc2luZyBsb2dpYywgcmVwbGFjaW5nIHBza2JfbWF5X3B1bGwgd2l0aCBwc2tiX25ldHdvcmtfbWF5X3B1bGwgYW5kIGZpeGluZyBza2Igc2hhcmluZyBpc3N1ZXMgaW4gcm91dGVfc2hvcnRjaXJjdWl0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBuZXR3b3JrIGRhdGEgcGF0aC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjE1LjMzMDAyNDk0MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NDczNjk3MDE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCIsXG4gICAgXCJJUFY2XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXJwX3JlZHVjZVwiLFxuICAgIFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gICAgXCJ2eGxhbl94bWl0XCIsXG4gICAgXCJ2eGxhbl9tZGJfZW50cnlfc2tiX2dldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODoxNS4zMzAwMzE0NzJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NjgxNjI2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDYyZDA3ZDcwMjk3MTUzZTg0NmEzNTIzMTllYjA3M2ZiNTNkMTk1MzVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMjQgMTc6NTg6MTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXFxuaW5kZXggNjdjMzY3Y2M1NjYyMzMuLmVmZjE3OTg3YzViNTMxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xcbkBAIC0xODUwLDcgKzE4NTAsNyBAQCBzdGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMyIHZuaSlcXG4gXFx0aWYgKGRldi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBJRkZfTk9BUlApXFxuIFxcdFxcdGdvdG8gb3V0O1xcbiBcXG4tXFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgYXJwX2hkcl9sZW4oZGV2KSkpIHtcXG4rXFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBhcnBfaGRyX2xlbihkZXYpKSkge1xcbiBcXHRcXHRkZXZfZHN0YXRzX3R4X2Ryb3BwZWQoZGV2KTtcXG4gXFx0XFx0dnhsYW5fdm5pZmlsdGVyX2NvdW50KHZ4bGFuLCB2bmksIE5VTEwsXFxuIFxcdFxcdFxcdFxcdCAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7XFxuQEAgLTIxMTEsNyArMjExMSw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHR7XFxuIFxcdFxcdHN0cnVjdCBpcGhkciAqcGlwO1xcbiBcXG4tXFx0XFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxcbitcXHRcXHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcXG4gXFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbiBcXHRcXHRwaXAgPSBpcF9oZHIoc2tiKTtcXG4gXFx0XFx0biA9IG5laWdoX2xvb2t1cChcXHUwMDI2YXJwX3RibCwgXFx1MDAyNnBpcC1cXHUwMDNlZGFkZHIsIGRldik7XFxuQEAgLTIxMzcsNyArMjEzNyw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHRcXHQgKi9cXG4gXFx0XFx0aWYgKCFpcHY2X21vZF9lbmFibGVkKCkpXFxuIFxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4tXFx0XFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXFxuK1xcdFxcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXFxuIFxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFx0XFx0cGlwNiA9IGlwdjZfaGRyKHNrYik7XFxuIFxcdFxcdG4gPSBuZWlnaF9sb29rdXAoXFx1MDAyNm5kX3RibCwgXFx1MDAyNnBpcDYtXFx1MDAzZWRhZGRyLCBkZXYpO1xcbkBAIC0yMTU5LDEzICsyMTU5LDE5IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHR9XFxuIFxcbiBcXHRpZiAobikge1xcbitcXHRcXHR1OCBoYWRkcltFVEhfQUxFTl07XFxuIFxcdFxcdGJvb2wgZGlmZjtcXG4gXFxuLVxcdFxcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCwgbi1cXHUwMDNlaGEpO1xcbitcXHRcXHRuZWlnaF9oYV9zbmFwc2hvdChoYWRkciwgbiwgZGV2KTtcXG4rXFx0XFx0ZGlmZiA9ICFldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZChldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCwgaGFkZHIpO1xcbiBcXHRcXHRpZiAoZGlmZikge1xcbitcXHRcXHRcXHRpZiAoc2tiX2Nvd19oZWFkKHNrYiwgMCkpIHtcXG4rXFx0XFx0XFx0XFx0bmVpZ2hfcmVsZWFzZShuKTtcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXHRcXHRcXHR9XFxuIFxcdFxcdFxcdG1lbWNweShldGhfaGRyKHNrYiktXFx1MDAzZWhfc291cmNlLCBldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCxcXG4gXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VhZGRyX2xlbik7XFxuLVxcdFxcdFxcdG1lbWNweShldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCwgbi1cXHUwMDNlaGEsIGRldi1cXHUwMDNlYWRkcl9sZW4pO1xcbitcXHRcXHRcXHRtZW1jcHkoZXRoX2hkcihza2IpLVxcdTAwM2VoX2Rlc3QsIGhhZGRyLCBkZXYtXFx1MDAzZWFkZHJfbGVuKTtcXG4gXFx0XFx0fVxcbiBcXHRcXHRuZWlnaF9yZWxlYXNlKG4pO1xcbiBcXHRcXHRyZXR1cm4gZGlmZjtcXG5AQCAtMjc1Nyw4ICsyNzYzLDggQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0XFx0XFx0cmV0dXJuIGFycF9yZWR1Y2UoZGV2LCBza2IsIHZuaSk7XFxuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxcbiBcXHRcXHRlbHNlIGlmIChudG9ocyhldGgtXFx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQVjYgXFx1MDAyNlxcdTAwMjZcXG4tXFx0XFx0XFx0IHBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICtcXG4tXFx0XFx0XFx0XFx0XFx0ICAgIHNpemVvZihzdHJ1Y3QgbmRfbXNnKSkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0XFx0IHBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgK1xcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgc2l6ZW9mKHN0cnVjdCBuZF9tc2cpKSBcXHUwMDI2XFx1MDAyNlxcbiBcXHRcXHRcXHQgaXB2Nl9oZHIoc2tiKS1cXHUwMDNlbmV4dGhkciA9PSBJUFBST1RPX0lDTVBWNikge1xcbiBcXHRcXHRcXHRzdHJ1Y3QgbmRfbXNnICptID0gKHN0cnVjdCBuZF9tc2cgKikoaXB2Nl9oZHIoc2tiKSArIDEpO1xcbiBcXG5AQCAtMjc5Niw2ICsyODAyLDcgQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0ICAgIChudG9ocyhldGgtXFx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQIHx8XFxuIFxcdCAgICAgbnRvaHMoZXRoLVxcdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUFY2KSkge1xcbiBcXHRcXHRkaWRfcnNjID0gcm91dGVfc2hvcnRjaXJjdWl0KGRldiwgc2tiKTtcXG4rXFx0XFx0ZXRoID0gZXRoX2hkcihza2IpO1xcbiBcXHRcXHRpZiAoZGlkX3JzYylcXG4gXFx0XFx0XFx0ZiA9IHZ4bGFuX2ZpbmRfbWFjX3R4KHZ4bGFuLCBldGgtXFx1MDAzZWhfZGVzdCwgdm5pKTtcXG4gXFx0fVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXFxuaW5kZXggYWY3YTBkN2Y5NWE1N2EuLjlhOTAzOGFlOTBjMThjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXFxuKysrIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNcXG5AQCAtMTYzMSw3ICsxNjMxLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXFxuIFxcbiBcXHRzd2l0Y2ggKHNrYi1cXHUwMDNlcHJvdG9jb2wpIHtcXG4gXFx0Y2FzZSBodG9ucyhFVEhfUF9JUCk6XFxuLVxcdFxcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcXG4rXFx0XFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpXFxuIFxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXHRcXHRncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDtcXG4gXFx0XFx0Z3JvdXAuZHN0LnNpbi5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS1cXHUwMDNlZGFkZHI7XFxuQEAgLTE2NDAsNyArMTY0MCw3IEBAIHN0cnVjdCB2eGxhbl9tZGJfZW50cnkgKnZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0KHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbiBcXHRcXHRicmVhaztcXG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuIFxcdGNhc2UgaHRvbnMoRVRIX1BfSVBWNik6XFxuLVxcdFxcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKVxcbitcXHRcXHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKVxcbiBcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gXFx0XFx0Z3JvdXAuZHN0LnNhLnNhX2ZhbWlseSA9IEFGX0lORVQ2O1xcbiBcXHRcXHRncm91cC5kc3Quc2luNi5zaW42X2FkZHIgPSBpcHY2X2hkcihza2IpLVxcdTAwM2VkYWRkcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MTUuNzk3NTYyNTk2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDcwMDYxNDk3NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIixcbiAgICBcIklQVjZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhcnBfcmVkdWNlXCIsXG4gICAgXCJyb3V0ZV9zaG9ydGNpcmN1aXRcIixcbiAgICBcInZ4bGFuX3htaXRcIixcbiAgICBcInZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgVlhMQU4gcGFja2V0IHByb2Nlc3NpbmcgbG9naWMsIHJlcGxhY2luZyBwc2tiX21heV9wdWxsIHdpdGggcHNrYl9uZXR3b3JrX21heV9wdWxsIGFuZCBmaXhpbmcgc2tiIHNoYXJpbmcgaXNzdWVzIGluIHJvdXRlX3Nob3J0Y2lyY3VpdC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgbmV0d29yayBkYXRhIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjJkMDdkNzAyOTcxNTNlODQ2YTM1MjMxOWViMDczZmI1M2QxOTUzNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDE3OjU4OjEzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG5pbmRleCA2N2MzNjdjYzU2NjIzMy4uZWZmMTc5ODdjNWI1MzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xuQEAgLTE4NTAsNyArMTg1MCw3IEBAIHN0YXRpYyBpbnQgYXJwX3JlZHVjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgdm5pKVxuIFx0aWYgKGRldi1cdTAwM2VmbGFncyBcdTAwMjYgSUZGX05PQVJQKVxuIFx0XHRnb3RvIG91dDtcbiBcbi1cdGlmICghcHNrYl9tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7XG4rXHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7XG4gXHRcdGRldl9kc3RhdHNfdHhfZHJvcHBlZChkZXYpO1xuIFx0XHR2eGxhbl92bmlmaWx0ZXJfY291bnQodnhsYW4sIHZuaSwgTlVMTCxcbiBcdFx0XHRcdCAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7XG5AQCAtMjExMSw3ICsyMTExLDcgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHR7XG4gXHRcdHN0cnVjdCBpcGhkciAqcGlwO1xuIFxuLVx0XHRpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpXG4rXHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuIFx0XHRcdHJldHVybiBmYWxzZTtcbiBcdFx0cGlwID0gaXBfaGRyKHNrYik7XG4gXHRcdG4gPSBuZWlnaF9sb29rdXAoXHUwMDI2YXJwX3RibCwgXHUwMDI2cGlwLVx1MDAzZWRhZGRyLCBkZXYpO1xuQEAgLTIxMzcsNyArMjEzNyw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHQgKi9cbiBcdFx0aWYgKCFpcHY2X21vZF9lbmFibGVkKCkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuLVx0XHRpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSlcbitcdFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSlcbiBcdFx0XHRyZXR1cm4gZmFsc2U7XG4gXHRcdHBpcDYgPSBpcHY2X2hkcihza2IpO1xuIFx0XHRuID0gbmVpZ2hfbG9va3VwKFx1MDAyNm5kX3RibCwgXHUwMDI2cGlwNi1cdTAwM2VkYWRkciwgZGV2KTtcbkBAIC0yMTU5LDEzICsyMTU5LDE5IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0fVxuIFxuIFx0aWYgKG4pIHtcbitcdFx0dTggaGFkZHJbRVRIX0FMRU5dO1xuIFx0XHRib29sIGRpZmY7XG4gXG4tXHRcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBuLVx1MDAzZWhhKTtcbitcdFx0bmVpZ2hfaGFfc25hcHNob3QoaGFkZHIsIG4sIGRldik7XG4rXHRcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbF91bmFsaWduZWQoZXRoX2hkcihza2IpLVx1MDAzZWhfZGVzdCwgaGFkZHIpO1xuIFx0XHRpZiAoZGlmZikge1xuK1x0XHRcdGlmIChza2JfY293X2hlYWQoc2tiLCAwKSkge1xuK1x0XHRcdFx0bmVpZ2hfcmVsZWFzZShuKTtcbitcdFx0XHRcdHJldHVybiBmYWxzZTtcbitcdFx0XHR9XG4gXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX3NvdXJjZSwgZXRoX2hkcihza2IpLVx1MDAzZWhfZGVzdCxcbiBcdFx0XHRcdGRldi1cdTAwM2VhZGRyX2xlbik7XG4tXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX2Rlc3QsIG4tXHUwMDNlaGEsIGRldi1cdTAwM2VhZGRyX2xlbik7XG4rXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX2Rlc3QsIGhhZGRyLCBkZXYtXHUwMDNlYWRkcl9sZW4pO1xuIFx0XHR9XG4gXHRcdG5laWdoX3JlbGVhc2Uobik7XG4gXHRcdHJldHVybiBkaWZmO1xuQEAgLTI3NTcsOCArMjc2Myw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB2eGxhbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRcdFx0cmV0dXJuIGFycF9yZWR1Y2UoZGV2LCBza2IsIHZuaSk7XG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG4gXHRcdGVsc2UgaWYgKG50b2hzKGV0aC1cdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUFY2IFx1MDAyNlx1MDAyNlxuLVx0XHRcdCBwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSArXG4tXHRcdFx0XHRcdCAgICBzaXplb2Yoc3RydWN0IG5kX21zZykpIFx1MDAyNlx1MDAyNlxuK1x0XHRcdCBwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICtcbitcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKHN0cnVjdCBuZF9tc2cpKSBcdTAwMjZcdTAwMjZcbiBcdFx0XHQgaXB2Nl9oZHIoc2tiKS1cdTAwM2VuZXh0aGRyID09IElQUFJPVE9fSUNNUFY2KSB7XG4gXHRcdFx0c3RydWN0IG5kX21zZyAqbSA9IChzdHJ1Y3QgbmRfbXNnICopKGlwdjZfaGRyKHNrYikgKyAxKTtcbiBcbkBAIC0yNzk2LDYgKzI4MDIsNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0ICAgIChudG9ocyhldGgtXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfSVAgfHxcbiBcdCAgICAgbnRvaHMoZXRoLVx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQVjYpKSB7XG4gXHRcdGRpZF9yc2MgPSByb3V0ZV9zaG9ydGNpcmN1aXQoZGV2LCBza2IpO1xuK1x0XHRldGggPSBldGhfaGRyKHNrYik7XG4gXHRcdGlmIChkaWRfcnNjKVxuIFx0XHRcdGYgPSB2eGxhbl9maW5kX21hY190eCh2eGxhbiwgZXRoLVx1MDAzZWhfZGVzdCwgdm5pKTtcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXG5pbmRleCBhZjdhMGQ3Zjk1YTU3YS4uOWE5MDM4YWU5MGMxOGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuY1xuKysrIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNcbkBAIC0xNjMxLDcgKzE2MzEsNyBAQCBzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbiBcbiBcdHN3aXRjaCAoc2tiLVx1MDAzZXByb3RvY29sKSB7XG4gXHRjYXNlIGh0b25zKEVUSF9QX0lQKTpcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuK1x0XHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcbiBcdFx0XHRyZXR1cm4gTlVMTDtcbiBcdFx0Z3JvdXAuZHN0LnNhLnNhX2ZhbWlseSA9IEFGX0lORVQ7XG4gXHRcdGdyb3VwLmRzdC5zaW4uc2luX2FkZHIuc19hZGRyID0gaXBfaGRyKHNrYiktXHUwMDNlZGFkZHI7XG5AQCAtMTY0MCw3ICsxNjQwLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXHRcdGJyZWFrO1xuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuIFx0Y2FzZSBodG9ucyhFVEhfUF9JUFY2KTpcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4rXHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4gXHRcdFx0cmV0dXJuIE5VTEw7XG4gXHRcdGdyb3VwLmRzdC5zYS5zYV9mYW1pbHkgPSBBRl9JTkVUNjtcbiBcdFx0Z3JvdXAuZHN0LnNpbjYuc2luNl9hZGRyID0gaXB2Nl9oZHIoc2tiKS1cdTAwM2VkYWRkcjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjE1Ljc5NzU2Mzk2NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYzMzQ0NTg3NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVlhMQU4gRHJpdmVyIFBhdGNoIFJldmlldyBhbmQgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBWWExBTiBkcml2ZXIuIEl0IHNlZW1zIGxpa2UgYSByZWxhdGl2ZWx5IGZvY3VzZWQgY2hhbmdlLCBwcmltYXJpbHkgaW1wYWN0aW5nIGBkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNgIGFuZCBgZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNgLiBNeSBpbml0aWFsIHJlYWQgaXMgdGhhdCB0aGUgYXV0aG9yIGlzIHRyeWluZyB0byB0aWdodGVuIHVwIHNvbWUgbWVtb3J5IHNhZmV0eSBvciBwZXJmb3JtYW5jZSBhc3BlY3RzLCBsaWtlbHkgZHVlIHRvIHBvdGVudGlhbCBpc3N1ZXMgaW4gaG93IHBhY2tldCBkYXRhIGlzIGhhbmRsZWQuXG5cblRoZSBjb3JlIG9mIHRoZSBwYXRjaCByZXZvbHZlcyBhcm91bmQgc3dhcHBpbmcgb3V0IGBwc2tiX21heV9wdWxsYCB3aXRoIGBwc2tiX25ldHdvcmtfbWF5X3B1bGxgIGFjcm9zcyBhIGZldyBjcml0aWNhbCBmdW5jdGlvbnM6IGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuIFJlcGxhY2luZyB0aGUgZm9ybWVyIHdpdGggdGhlIGxhdHRlciBtZWFucyB3ZSBoYXZlIG5vdyBjaGFuZ2VkIGJlaGF2aW9yLCBzbyB3ZSB3YW50IHRvIGJlIHZlcnkgY2FyZWZ1bCB0byB2ZXJpZnkgdGhlIGNoYW5nZSdzIGNvcnJlY3RuZXNzLiBUaGF0J3MgZ29vZCwgYHBza2JfbmV0d29ya19tYXlfcHVsbGAgaXMgZ2VuZXJhbGx5IHByZWZlcnJlZCB3aGVuIHlvdSdyZSB3b3JraW5nIHdpdGggbmV0d29yayBoZWFkZXJzIGFuZCB3YW50IHRvIGF2b2lkIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWRzIGR1cmluZyBwYWNrZXQgcHJvY2Vzc2luZywgc28gdGhpcyBpcyBhIHBvc2l0aXZlIG1vdmUuXG5cblRoZSBjaGFuZ2VzIGluIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGFyZSBtb3JlIGludGVyZXN0aW5nLiBUaGUgZGlyZWN0IGFjY2VzcyB0byBgbi1cdTAwM2VoYWAgYW5kIHVzYWdlIG9mIGBldGhlcl9hZGRyX2VxdWFsYCBhcmUgYmVpbmcgcmVwbGFjZWQgd2l0aCBgbmVpZ2hfaGFfc25hcHNob3RgIGFuZCBgZXRoZXJfYWRkcl9lcXVhbF91bmFsaWduZWRgLCB3aGljaCBhcmUgc2FmZXIgYWx0ZXJuYXRpdmVzLiBMb29rcyBsaWtlIHRoaXMgbWlnaHQgYmUgcmVsYXRlZCB0byBzb21lIHJlcG9ydGVkIGlzc3VlcyBpbiBuZWlnaGJvciB0YWJsZSBhY2Nlc3MuIFRoZSBhZGRpdGlvbiBvZiBhbiBgc2tiX2Nvd19oZWFkYCBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIEV0aGVybmV0IGhlYWRlciBmaWVsZHMgaW4gYHZ4bGFuX3htaXRgIGlzIGFsc28gYSBnb29kIGRlZmVuc2l2ZSBtZWFzdXJlLCBwcmV2ZW50aW5nIHVuZXhwZWN0ZWQgbW9kaWZpY2F0aW9uIG9mIHNoYXJlZCBidWZmZXIgZGF0YS4gQW5kIHRoZSB1cGRhdGUgb2YgdGhlIEV0aGVybmV0IGhlYWRlciBwb2ludGVyIGFmdGVyIHRoZSBgcm91dGVfc2hvcnRjaXJjdWl0YCBpcyBhIHNpbXBsZSBjb3JyZWN0aW9uLCB0byBtYWtlIHN1cmUgc3Vic2VxdWVudCBjb2RlIG9wZXJhdGVzIG9uIHRoZSBjb3JyZWN0IGRhdGEuXG5cblRoaXMgcmVhbGx5IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cCwgSSBuZWVkIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiZWhhdmlvdXIgZG9lc24ndCBjaGFuZ2UgdG9vIG11Y2guIEJlY2F1c2Ugb2YgdGhhdCwgYW5kIGJlY2F1c2UgdGhlc2UgYXJlIGFsbCBjb3JlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIFZYTEFOIGRyaXZlciwgdGhpcyBwYXRjaCBkZWZpbml0ZWx5IHdhcnJhbnRzIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb25zIHRvIHRhcmdldCBkdXJpbmcgZnV6emluZyB3aWxsIGJlIGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uLiBMZXQncyBzZWUuLi4gdGhlIHByaW1hcnkgY29uZmlnIGhlcmUgd2lsbCBiZSBgVlhMQU5gLCBidXQgSSBzaG91bGQgY2hlY2sgdGhlIEtjb25maWcgZmlsZSBpbiBgZHJpdmVycy9uZXQvdnhsYW5gIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGUgYmVoYXZpb3Igb2YgdGhlc2UgZnVuY3Rpb25zIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIGZ1enppbmcgc2V0dXAuIE1ha2luZyBzdXJlIEkgaGF2ZSB0aGUgZnVsbCBwaWN0dXJlIGlzIGtleSBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzY5LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzEyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MjIuMTMyMDI1NTY5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMjQ5NzM3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVlhMQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MjIuMTk0MjgzNTg3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMyOTE1OTA4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gdGhlIG9uZSBoYXZpbmcgaXQ6XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbGx5IE1pc3NpbmcgQ29uZmlndXJhdGlvbiBGaWxlKipcblxuSG1tLCBpdCBzZWVtcyBsaWtlIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbS4gVGhhdCBgZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZ2AgZmlsZSBJIHdhcyBleHBlY3RpbmcgbWlnaHQgbm90IGFjdHVhbGx5IGJlIHByZXNlbnQuIEEgcXVpY2sgc2FuaXR5IGNoZWNrIGlzIGluIG9yZGVyLiBMZXQgbWUgdHJ5IGxvb2tpbmcgYXQgYSBjb3VwbGUgb2YgcmVsYXRlZCBsb2NhdGlvbnMgdG8gdmVyaWZ5IGlmIHRoZXJlJ3MgYSB0eXBvLCBhbiBvcmdhbml6YXRpb25hbCBzaGlmdCwgb3IgcGVyaGFwcyB0aGUgZmVhdHVyZSBpcyBoYW5kbGVkIGVsc2V3aGVyZS4gRmlyc3QsIEknbGwgZXhhbWluZSB0aGUgbW9yZSBnZW5lcmFsIGBkcml2ZXJzL25ldC9LY29uZmlnYCBmaWxlIOKAkyB0aGF0J3Mgb2Z0ZW4gdGhlIHJvb3QgZm9yIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24uIElmIHRoYXQgZG9lc24ndCBob2xkIHRoZSBrZXksIEknbGwgZ28gZGlyZWN0bHkgaW50byB0aGUgYGRyaXZlcnMvbmV0L3Z4bGFuL2AgZGlyZWN0b3J5IGFuZCBzZWUgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaXMgc3VidGx5IGRpZmZlcmVudCwgb3IgaWYgdGhlIHdob2xlIFZYTEFOIEtjb25maWcgZmlsZSBsaXZlcyB1bmRlciBhbm90aGVyIG5hbWUuIEdvdHRhIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBjb25maWd1cmF0aW9uIGxvZ2ljICphY3R1YWxseSogcmVzaWRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI5NSwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjI1LjUyMzQ0NTEwM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM5MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC92eGxhblwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJ2eGxhbl9jb3JlLmNcIixcbiAgICBcInZ4bGFuX21kYi5jXCIsXG4gICAgXCJ2eGxhbl9tdWx0aWNhc3QuY1wiLFxuICAgIFwidnhsYW5fcHJpdmF0ZS5oXCIsXG4gICAgXCJ2eGxhbl92bmlmaWx0ZXIuY1wiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODoyNS41MjM1MTE1MzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTEyOTg0NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyBWWExBTiBDb25maWd1cmF0aW9uIGluIE5ldHdvcmsgRHJpdmVycyoqXG5cbkFscmlnaHQsIEknbSB0aGlua2luZyBJIG5lZWQgdG8gZmluZCB3aGVyZSBWWExBTiBpcyBjb25maWd1cmVkLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBrZXJuZWwncyBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9ucy4gVGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBoYW5kbGUgb24gdGhpcywgZ2l2ZW4gbXkgZXhwZXJpZW5jZSwgaXMgdG8gbGV2ZXJhZ2UgYGdyZXBgLiBJIGtub3cgdGhlIEtjb25maWcgZmlsZXMgaW4gdGhlIGBkcml2ZXJzL25ldC9gIGRpcmVjdG9yeSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzIGZvciBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHJ1biBhIGBncmVwYCBjb21tYW5kLCBsaWtlbHkgc2VhcmNoaW5nIGZvciBcIlZYTEFOXCIgYWNyb3NzIHRob3NlIEtjb25maWcgZmlsZXMuIFRoaXMgc2hvdWxkIHF1aWNrbHkgbG9jYXRlIGFueSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgZGVmYXVsdCBzZXR0aW5ncyByZWxhdGVkIHRvIFZYTEFOIHN1cHBvcnQgd2l0aGluIHRob3NlIGRyaXZlcnMuIFRoYXQncyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IHRvIGdldCBhIHByZWxpbWluYXJ5IG92ZXJ2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjE3LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjI4LjYzNjQ5ODYxN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM2MzQ4MTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFZYTEFOXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIyOS1cXG5kcml2ZXJzL25ldC9LY29uZmlnOjIzMDpjb25maWcgVlhMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMS1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODoyOC44MDAxMzc0MTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTI5OTE3ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqVlhMQU4gQ29uZmlndXJhdGlvbiBhbmQgVHJhbnNtaXNzaW9uIEFuYWx5c2lzKipcblxuUmlnaHQsIHRoZSBrZXkgY29uZmlndXJhdGlvbiBlbGVtZW50IGhlcmUgaXMgYFZYTEFOYC4gVGhhdOKAmXMgdGhlIGNvcmUgZm9jdXMuIE5vdywgbGV04oCZcyBzZWXigKYgdGhlIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGZ1bmN0aW9uIOKAkyBJIHJlY2FsbCB0aGF0IG9uZS4gSSBuZWVkIHRvIHJlbWVtYmVyIHdoYXQgaXRzIHJvbGUgaXMuIEFoLCB5ZXMsIGl0IHNlZW1zIHRoYXQgYHJvdXRlX3Nob3J0Y2lyY3VpdGAgaXMgb25seSBpbnZva2VkIGlmIGEgc3BlY2lmaWMgZmxhZyBpcyBzZXQsIHNwZWNpZmljYWxseSBpZiBgdnhsYW4tXHUwMDNlZmxhZ3NgIGhhcyB0aGUgYFZYTEFOX0ZfTDNNSVNTYCBiaXQgZW5hYmxlZC4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLiBUaGF0J3MgYSBjcnVjaWFsIGNvbmRpdGlvbmFsLiBJIHNob3VsZCBwcm9iYWJseSBxdWlja2x5IGNoZWNrIGhvdyB0aGF0IGZsYWcgaXMgZGV0ZXJtaW5lZC5cblxuT2theSwgbm93LCB0aGUgcmVhbCBoZWFydCBvZiB0aGlzLCB3aGVyZSB0aGUgcGFja2V0cyBnbz8gTGV0J3MgdHVybiBvdXIgYXR0ZW50aW9uIHRvIGB2eGxhbl94bWl0YC4gVGhhdCdzIHdoZXJlIHRoZSBhY3R1YWwgdHJhbnNtaXNzaW9uIHByb2Nlc3MsIGxpa2VseSBlbmNhcHN1bGF0ZWQsIHdpbGwgaGFwcGVuLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGB2eGxhbl94bWl0YCB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGZsb3csIHBvdGVudGlhbCBib3R0bGVuZWNrcywgYW5kIGFueSBzcGVjaWFsIGhhbmRsaW5nIGJhc2VkIG9uIHRoZSBgVlhMQU5fRl9MM01JU1NgIGNvbmRpdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkyMSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjMyLjczMDA1NzY3N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk0NDE4OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjAzMD1zdGF0aWMgaW50IG5laWdoX3JlZHVjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgdm5pKVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTIwOTktXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjIxMDA6c3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTIxMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI3MzE9c3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODAzLVxcdCAgICAgbnRvaHMoZXRoLVxcdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUFY2KSkge1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyODA0OlxcdFxcdGRpZF9yc2MgPSByb3V0ZV9zaG9ydGNpcmN1aXQoZGV2LCBza2IpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODA1LVxcdFxcdGV0aCA9IGV0aF9oZHIoc2tiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MzIuNzg5NTA0MzM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0MzkxMDM4MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo1MTE4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODo0MS4yMjg2MTIzNDZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwOTkxMzc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFycF9yZWR1Y2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xODE1PXN0YXRpYyBpbnQgdnhsYW5fZXJyX2xvb2t1cChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMTg0MS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTg0MjpzdGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMyIHZuaSlcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMTg0My17XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjczMT1zdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI3NjItXFx0XFx0aWYgKG50b2hzKGV0aC1cXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfQVJQKVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyNzYzOlxcdFxcdFxcdHJldHVybiBhcnBfcmVkdWNlKGRldiwgc2tiLCB2bmkpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNzY0LSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODo0MS4yODk2MDg3NjRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTUyMzk4ODA2NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo1NDU0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODo1Ni41Mjk0OTIxNjJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMTQ2Mjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jPTE1NzQ9aW50IHZ4bGFuX21kYl9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwgdTMyIHBvcnRpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jLTE2MTEtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmM6MTYxMjpzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYy0xNjEzLVxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjU2LjU5MTY0NDU1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxMjM2MjA4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUGF0Y2ggQW5hbHlzaXMgLSBJbml0aWFsIFRob3VnaHRzKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBzb21lIGtleSBhcmVhczogYGFycF9yZWR1Y2VgLCBgcm91dGVfc2hvcnRjaXJjdWl0YCwgYHZ4bGFuX3htaXRgLCBhbmQgYHZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0YC4gVGhhdCdzIGEgZm9jdXNlZCBncm91cCwgc3VnZ2VzdGluZyBhIHNwZWNpZmljIGFyZWEgb2YgbmV0d29yayBzdGFjayBvcHRpbWl6YXRpb24gb3IgYnVnIGZpeC4gVGhlIHVzZSBvZiBgcHNrYl9uZXR3b3JrX21heV9wdWxsYCBpbnN0ZWFkIG9mIHRoZSBtb3JlIGdlbmVyaWMgYHBza2JfbWF5X3B1bGxgIGltbWVkaWF0ZWx5IGZsYWdzIGEgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGdhaW4gb3Igc3VidGxlIGNvcnJlY3RuZXNzIGltcHJvdmVtZW50IGFyb3VuZCBuZXR3b3JrIGhlYWRlciBoYW5kbGluZywgYW5kIGlzIHdvcnRoIGZ1cnRoZXIgZXhhbWluYXRpb24uXG5cblRoZSByZWZlcmVuY2UgdG8gYSBidWcgaW4gYHJvdXRlX3Nob3J0Y2lyY3VpdGAgaW52b2x2aW5nIHVuLUNPV2VkIEV0aGVybmV0IGhlYWRlcnMgYW5kIG1pc3NpbmcgcmVsb2FkIGluIGB2eGxhbl94bWl0YCBpcyB0aGUgcmVhbCBtZWF0IG9mIHRoaXMuIE1vZGlmeWluZyBgZXRoX2hkcihza2IpYCB3aXRob3V0IGEgQ09XIGFuZCB0aGVuIG5vdCByZWxvYWRpbmcgdGhlIHBvaW50ZXIgYWZ0ZXIgYSBjYWxsIHRvIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIGEgY2xhc3NpYyByZWNpcGUgZm9yIGRhdGEgY29ycnVwdGlvbiwgZXNwZWNpYWxseSBpbiBhIGhlYXZpbHkgdGhyZWFkZWQgZW52aXJvbm1lbnQuIFRoYXQgaXMgZGVmaW5pdGVseSBhIHJhY2UgY29uZGl0aW9uIHdhaXRpbmcgdG8gaGFwcGVuLiBTZWVtcyBwcmV0dHkgZnVuY3Rpb25hbCwgYW5kIGRlZmluaXRlbHkgYSBjYW5kaWRhdGUgZm9yIGZ1enppbmcgb25jZSBhcHBsaWVkLiBJIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0aGUgZnV6emluZyBpcyBhcyBleGhhdXN0aXZlIGFzIHBvc3NpYmxlLCBhcyB0aGVzZSBjb25kaXRpb25zIGFyZSBkaWZmaWN1bHQgdG8gZXhwb3NlLlxuXG5UaGUgY29uZmlndXJhdGlvbnMgaW52b2x2ZWQgYXJlIGBWWExBTmAgYW5kIGBJUFY2YC4gYFZYTEFOYCBtYWtlcyBzZW5zZSBnaXZlbiB0aGUgZnVuY3Rpb24gbmFtZXMuIEkgc2hvdWxkIGludmVzdGlnYXRlIG90aGVyIGNvbmZpZyBvcHRpb25zIHRoYXQgbWF5IHJlbGF0ZSB0byB0aGVzZSBmdW5jdGlvbnMuIGBJUFY2YCBpcyB1c3VhbGx5IGVuYWJsZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVzZSBvcHRpb25zLCBzbyB0aGF0IGlzIG5vdCBzdXJwcmlzaW5nLiBJIHdpbGwgYWRkIGBJUFY2YCB0byB0aGUgbGlzdCBvZiBjb25maWd1cmF0aW9ucyB0byBrZWVwIGluIG1pbmQuXG5cbkxldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXBwbHksIGJ1dCB0aGlzIGlzIGEgZ29vZCBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3NSwiT3V0cHV0VG9rZW5zIjoxMjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTk6MDIuNzE1MjY4ODgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg0MzgzNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCIsXG4gICAgXCJJUFY2XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXJwX3JlZHVjZVwiLFxuICAgIFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gICAgXCJ2eGxhbl94bWl0XCIsXG4gICAgXCJ2eGxhbl9tZGJfZW50cnlfc2tiX2dldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCIsXG4gICAgXCJJUFY2XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXJwX3JlZHVjZVwiLFxuICAgIFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gICAgXCJ2eGxhbl94bWl0XCIsXG4gICAgXCJ2eGxhbl9tZGJfZW50cnlfc2tiX2dldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowdcdhc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-24 17:41:41 +0000 UTC FinishedAt: 2026-07-24 17:59:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fd3a3f28ed60c6af4b2a39933b151d6b27842c3b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN", "IPV6" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "fd3a3f28ed60c6af4b2a39933b151d6b27842c3b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN", "IPV6" ], "series_id": "11e37b6b-54d7-4889-ac12-39097cd0b2a0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "arp_reduce", "route_shortcircuit", "vxlan_xmit", "vxlan_mdb_entry_skb_get" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDssCiAgICAmIzM0O0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgICAmIzM0O3JvdXRlX3Nob3J0Y2lyY3VpdCYjMzQ7LAogICAgJiMzNDt2eGxhbl94bWl0JiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYl9lbnRyeV9za2JfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjJkMDdkNzAyOTcxNTNlODQ2YTM1MjMxOWViMDczZmI1M2QxOTUzNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDE3OjU4OjEzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xuaW5kZXggNjdjMzY3Y2M1NjYyMzMuLmVmZjE3OTg3YzViNTMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbkBAIC0xODUwLDcgJiM0MzsxODUwLDcgQEAgc3RhdGljIGludCBhcnBfcmVkdWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiB2bmkpXG4gXHRpZiAoZGV2LVx1MDAzZWZsYWdzIFx1MDAyNiBJRkZfTk9BUlApXG4gXHRcdGdvdG8gb3V0O1xuIFxuLVx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgYXJwX2hkcl9sZW4oZGV2KSkpIHtcbiYjNDM7XHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7XG4gXHRcdGRldl9kc3RhdHNfdHhfZHJvcHBlZChkZXYpO1xuIFx0XHR2eGxhbl92bmlmaWx0ZXJfY291bnQodnhsYW4sIHZuaSwgTlVMTCxcbiBcdFx0XHRcdCAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7XG5AQCAtMjExMSw3ICYjNDM7MjExMSw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0e1xuIFx0XHRzdHJ1Y3QgaXBoZHIgKnBpcDtcbiBcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuJiM0MztcdFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0XHRwaXAgPSBpcF9oZHIoc2tiKTtcbiBcdFx0biA9IG5laWdoX2xvb2t1cChcdTAwMjZhcnBfdGJsLCBcdTAwMjZwaXAtXHUwMDNlZGFkZHIsIGRldik7XG5AQCAtMjEzNyw3ICYjNDM7MjEzNyw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHQgKi9cbiBcdFx0aWYgKCFpcHY2X21vZF9lbmFibGVkKCkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuLVx0XHRpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSlcbiYjNDM7XHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0XHRwaXA2ID0gaXB2Nl9oZHIoc2tiKTtcbiBcdFx0biA9IG5laWdoX2xvb2t1cChcdTAwMjZuZF90YmwsIFx1MDAyNnBpcDYtXHUwMDNlZGFkZHIsIGRldik7XG5AQCAtMjE1OSwxMyAmIzQzOzIxNTksMTkgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHR9XG4gXG4gXHRpZiAobikge1xuJiM0MztcdFx0dTggaGFkZHJbRVRIX0FMRU5dO1xuIFx0XHRib29sIGRpZmY7XG4gXG4tXHRcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBuLVx1MDAzZWhhKTtcbiYjNDM7XHRcdG5laWdoX2hhX3NuYXBzaG90KGhhZGRyLCBuLCBkZXYpO1xuJiM0MztcdFx0ZGlmZiA9ICFldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZChldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBoYWRkcik7XG4gXHRcdGlmIChkaWZmKSB7XG4mIzQzO1x0XHRcdGlmIChza2JfY293X2hlYWQoc2tiLCAwKSkge1xuJiM0MztcdFx0XHRcdG5laWdoX3JlbGVhc2Uobik7XG4mIzQzO1x0XHRcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcdFx0XHR9XG4gXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX3NvdXJjZSwgZXRoX2hkcihza2IpLVx1MDAzZWhfZGVzdCxcbiBcdFx0XHRcdGRldi1cdTAwM2VhZGRyX2xlbik7XG4tXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX2Rlc3QsIG4tXHUwMDNlaGEsIGRldi1cdTAwM2VhZGRyX2xlbik7XG4mIzQzO1x0XHRcdG1lbWNweShldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBoYWRkciwgZGV2LVx1MDAzZWFkZHJfbGVuKTtcbiBcdFx0fVxuIFx0XHRuZWlnaF9yZWxlYXNlKG4pO1xuIFx0XHRyZXR1cm4gZGlmZjtcbkBAIC0yNzU3LDggJiM0MzsyNzYzLDggQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdFx0XHRyZXR1cm4gYXJwX3JlZHVjZShkZXYsIHNrYiwgdm5pKTtcbiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcbiBcdFx0ZWxzZSBpZiAobnRvaHMoZXRoLVx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQVjYgXHUwMDI2XHUwMDI2XG4tXHRcdFx0IHBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICYjNDM7XG4tXHRcdFx0XHRcdCAgICBzaXplb2Yoc3RydWN0IG5kX21zZykpIFx1MDAyNlx1MDAyNlxuJiM0MztcdFx0XHQgcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSAmIzQzO1xuJiM0MztcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKHN0cnVjdCBuZF9tc2cpKSBcdTAwMjZcdTAwMjZcbiBcdFx0XHQgaXB2Nl9oZHIoc2tiKS1cdTAwM2VuZXh0aGRyID09IElQUFJPVE9fSUNNUFY2KSB7XG4gXHRcdFx0c3RydWN0IG5kX21zZyAqbSA9IChzdHJ1Y3QgbmRfbXNnICopKGlwdjZfaGRyKHNrYikgJiM0MzsgMSk7XG4gXG5AQCAtMjc5Niw2ICYjNDM7MjgwMiw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB2eGxhbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHQgICAgKG50b2hzKGV0aC1cdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUCB8fFxuIFx0ICAgICBudG9ocyhldGgtXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfSVBWNikpIHtcbiBcdFx0ZGlkX3JzYyA9IHJvdXRlX3Nob3J0Y2lyY3VpdChkZXYsIHNrYik7XG4mIzQzO1x0XHRldGggPSBldGhfaGRyKHNrYik7XG4gXHRcdGlmIChkaWRfcnNjKVxuIFx0XHRcdGYgPSB2eGxhbl9maW5kX21hY190eCh2eGxhbiwgZXRoLVx1MDAzZWhfZGVzdCwgdm5pKTtcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXG5pbmRleCBhZjdhMGQ3Zjk1YTU3YS4uOWE5MDM4YWU5MGMxOGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNcbkBAIC0xNjMxLDcgJiM0MzsxNjMxLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXG4gXHRzd2l0Y2ggKHNrYi1cdTAwM2Vwcm90b2NvbCkge1xuIFx0Y2FzZSBodG9ucyhFVEhfUF9JUCk6XG4tXHRcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcbiYjNDM7XHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuIFx0XHRcdHJldHVybiBOVUxMO1xuIFx0XHRncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDtcbiBcdFx0Z3JvdXAuZHN0LnNpbi5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS1cdTAwM2VkYWRkcjtcbkBAIC0xNjQwLDcgJiM0MzsxNjQwLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXHRcdGJyZWFrO1xuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuIFx0Y2FzZSBodG9ucyhFVEhfUF9JUFY2KTpcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4mIzQzO1x0XHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKVxuIFx0XHRcdHJldHVybiBOVUxMO1xuIFx0XHRncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDY7XG4gXHRcdGdyb3VwLmRzdC5zaW42LnNpbjZfYWRkciA9IGlwdjZfaGRyKHNrYiktXHUwMDNlZGFkZHI7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDssCiAgICAmIzM0O0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgICAmIzM0O3JvdXRlX3Nob3J0Y2lyY3VpdCYjMzQ7LAogICAgJiMzNDt2eGxhbl94bWl0JiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYl9lbnRyeV9za2JfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2MmQwN2Q3MDI5NzE1M2U4NDZhMzUyMzE5ZWIwNzNmYjUzZDE5NTM1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMjQgMTc6NTg6MTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMKaW5kZXggNjdjMzY3Y2M1NjYyMzMuLmVmZjE3OTg3YzViNTMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jCkBAIC0xODUwLDcgJiM0MzsxODUwLDcgQEAgc3RhdGljIGludCBhcnBfcmVkdWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiB2bmkpCiAJaWYgKGRldi0mZ3Q7ZmxhZ3MgJmFtcDsgSUZGX05PQVJQKQogCQlnb3RvIG91dDsKIAotCWlmICghcHNrYl9tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7CiYjNDM7CWlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgYXJwX2hkcl9sZW4oZGV2KSkpIHsKIAkJZGV2X2RzdGF0c190eF9kcm9wcGVkKGRldik7CiAJCXZ4bGFuX3ZuaWZpbHRlcl9jb3VudCh2eGxhbiwgdm5pLCBOVUxMLAogCQkJCSAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7CkBAIC0yMTExLDcgJiM0MzsyMTExLDcgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJewogCQlzdHJ1Y3QgaXBoZHIgKnBpcDsKIAotCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKIAkJCXJldHVybiBmYWxzZTsKIAkJcGlwID0gaXBfaGRyKHNrYik7CiAJCW4gPSBuZWlnaF9sb29rdXAoJmFtcDthcnBfdGJsLCAmYW1wO3BpcC0mZ3Q7ZGFkZHIsIGRldik7CkBAIC0yMTM3LDcgJiM0MzsyMTM3LDcgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJCSAqLwogCQlpZiAoIWlwdjZfbW9kX2VuYWJsZWQoKSkKIAkJCXJldHVybiBmYWxzZTsKLQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKQogCQkJcmV0dXJuIGZhbHNlOwogCQlwaXA2ID0gaXB2Nl9oZHIoc2tiKTsKIAkJbiA9IG5laWdoX2xvb2t1cCgmYW1wO25kX3RibCwgJmFtcDtwaXA2LSZndDtkYWRkciwgZGV2KTsKQEAgLTIxNTksMTMgJiM0MzsyMTU5LDE5IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCX0KIAogCWlmIChuKSB7CiYjNDM7CQl1OCBoYWRkcltFVEhfQUxFTl07CiAJCWJvb2wgZGlmZjsKIAotCQlkaWZmID0gIWV0aGVyX2FkZHJfZXF1YWwoZXRoX2hkcihza2IpLSZndDtoX2Rlc3QsIG4tJmd0O2hhKTsKJiM0MzsJCW5laWdoX2hhX3NuYXBzaG90KGhhZGRyLCBuLCBkZXYpOwomIzQzOwkJZGlmZiA9ICFldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZChldGhfaGRyKHNrYiktJmd0O2hfZGVzdCwgaGFkZHIpOwogCQlpZiAoZGlmZikgewomIzQzOwkJCWlmIChza2JfY293X2hlYWQoc2tiLCAwKSkgewomIzQzOwkJCQluZWlnaF9yZWxlYXNlKG4pOwomIzQzOwkJCQlyZXR1cm4gZmFsc2U7CiYjNDM7CQkJfQogCQkJbWVtY3B5KGV0aF9oZHIoc2tiKS0mZ3Q7aF9zb3VyY2UsIGV0aF9oZHIoc2tiKS0mZ3Q7aF9kZXN0LAogCQkJCWRldi0mZ3Q7YWRkcl9sZW4pOwotCQkJbWVtY3B5KGV0aF9oZHIoc2tiKS0mZ3Q7aF9kZXN0LCBuLSZndDtoYSwgZGV2LSZndDthZGRyX2xlbik7CiYjNDM7CQkJbWVtY3B5KGV0aF9oZHIoc2tiKS0mZ3Q7aF9kZXN0LCBoYWRkciwgZGV2LSZndDthZGRyX2xlbik7CiAJCX0KIAkJbmVpZ2hfcmVsZWFzZShuKTsKIAkJcmV0dXJuIGRpZmY7CkBAIC0yNzU3LDggJiM0MzsyNzYzLDggQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCXJldHVybiBhcnBfcmVkdWNlKGRldiwgc2tiLCB2bmkpOwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCiAJCWVsc2UgaWYgKG50b2hzKGV0aC0mZ3Q7aF9wcm90bykgPT0gRVRIX1BfSVBWNiAmYW1wOyZhbXA7Ci0JCQkgcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgJiM0MzsKLQkJCQkJICAgIHNpemVvZihzdHJ1Y3QgbmRfbXNnKSkgJmFtcDsmYW1wOwomIzQzOwkJCSBwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICYjNDM7CiYjNDM7CQkJCQkJICAgIHNpemVvZihzdHJ1Y3QgbmRfbXNnKSkgJmFtcDsmYW1wOwogCQkJIGlwdjZfaGRyKHNrYiktJmd0O25leHRoZHIgPT0gSVBQUk9UT19JQ01QVjYpIHsKIAkJCXN0cnVjdCBuZF9tc2cgKm0gPSAoc3RydWN0IG5kX21zZyAqKShpcHY2X2hkcihza2IpICYjNDM7IDEpOwogCkBAIC0yNzk2LDYgJiM0MzsyODAyLDcgQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkgICAgKG50b2hzKGV0aC0mZ3Q7aF9wcm90bykgPT0gRVRIX1BfSVAgfHwKIAkgICAgIG50b2hzKGV0aC0mZ3Q7aF9wcm90bykgPT0gRVRIX1BfSVBWNikpIHsKIAkJZGlkX3JzYyA9IHJvdXRlX3Nob3J0Y2lyY3VpdChkZXYsIHNrYik7CiYjNDM7CQlldGggPSBldGhfaGRyKHNrYik7CiAJCWlmIChkaWRfcnNjKQogCQkJZiA9IHZ4bGFuX2ZpbmRfbWFjX3R4KHZ4bGFuLCBldGgtJmd0O2hfZGVzdCwgdm5pKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jCmluZGV4IGFmN2EwZDdmOTVhNTdhLi45YTkwMzhhZTkwYzE4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmMKQEAgLTE2MzEsNyAmIzQzOzE2MzEsNyBAQCBzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAogCXN3aXRjaCAoc2tiLSZndDtwcm90b2NvbCkgewogCWNhc2UgaHRvbnMoRVRIX1BfSVApOgotCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKIAkJCXJldHVybiBOVUxMOwogCQlncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDsKIAkJZ3JvdXAuZHN0LnNpbi5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS0mZ3Q7ZGFkZHI7CkBAIC0xNjQwLDcgJiM0MzsxNjQwLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCiAJCWJyZWFrOwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCiAJY2FzZSBodG9ucyhFVEhfUF9JUFY2KToKLQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpCiYjNDM7CQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKQogCQkJcmV0dXJuIE5VTEw7CiAJCWdyb3VwLmRzdC5zYS5zYV9mYW1pbHkgPSBBRl9JTkVUNjsKIAkJZ3JvdXAuZHN0LnNpbjYuc2luNl9hZGRyID0gaXB2Nl9oZHIoc2tiKS0mZ3Q7ZGFkZHI7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzNjkKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVlhMQU4gRHJpdmVyIFBhdGNoIFJldmlldyBhbmQgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIFZYTEFOIGRyaXZlci4gSXQgc2VlbXMgbGlrZSBhIHJlbGF0aXZlbHkgZm9jdXNlZCBjaGFuZ2UsIHByaW1hcmlseSBpbXBhY3RpbmcgYGRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY2AgYW5kIGBkcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZSBhdXRob3IgaXMgdHJ5aW5nIHRvIHRpZ2h0ZW4gdXAgc29tZSBtZW1vcnkgc2FmZXR5IG9yIHBlcmZvcm1hbmNlIGFzcGVjdHMsIGxpa2VseSBkdWUgdG8gcG90ZW50aWFsIGlzc3VlcyBpbiBob3cgcGFja2V0IGRhdGEgaXMgaGFuZGxlZC4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCByZXZvbHZlcyBhcm91bmQgc3dhcHBpbmcgb3V0IGBwc2tiX21heV9wdWxsYCB3aXRoIGBwc2tiX25ldHdvcmtfbWF5X3B1bGxgIGFjcm9zcyBhIGZldyBjcml0aWNhbCBmdW5jdGlvbnM6IGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuIFJlcGxhY2luZyB0aGUgZm9ybWVyIHdpdGggdGhlIGxhdHRlciBtZWFucyB3ZSBoYXZlIG5vdyBjaGFuZ2VkIGJlaGF2aW9yLCBzbyB3ZSB3YW50IHRvIGJlIHZlcnkgY2FyZWZ1bCB0byB2ZXJpZnkgdGhlIGNoYW5nZSYjMzk7cyBjb3JyZWN0bmVzcy4gVGhhdCYjMzk7cyBnb29kLCBgcHNrYl9uZXR3b3JrX21heV9wdWxsYCBpcyBnZW5lcmFsbHkgcHJlZmVycmVkIHdoZW4geW91JiMzOTtyZSB3b3JraW5nIHdpdGggbmV0d29yayBoZWFkZXJzIGFuZCB3YW50IHRvIGF2b2lkIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWRzIGR1cmluZyBwYWNrZXQgcHJvY2Vzc2luZywgc28gdGhpcyBpcyBhIHBvc2l0aXZlIG1vdmUuCgpUaGUgY2hhbmdlcyBpbiBgcm91dGVfc2hvcnRjaXJjdWl0YCBhcmUgbW9yZSBpbnRlcmVzdGluZy4gVGhlIGRpcmVjdCBhY2Nlc3MgdG8gYG4tJmd0O2hhYCBhbmQgdXNhZ2Ugb2YgYGV0aGVyX2FkZHJfZXF1YWxgIGFyZSBiZWluZyByZXBsYWNlZCB3aXRoIGBuZWlnaF9oYV9zbmFwc2hvdGAgYW5kIGBldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZGAsIHdoaWNoIGFyZSBzYWZlciBhbHRlcm5hdGl2ZXMuIExvb2tzIGxpa2UgdGhpcyBtaWdodCBiZSByZWxhdGVkIHRvIHNvbWUgcmVwb3J0ZWQgaXNzdWVzIGluIG5laWdoYm9yIHRhYmxlIGFjY2Vzcy4gVGhlIGFkZGl0aW9uIG9mIGFuIGBza2JfY293X2hlYWRgIGNoZWNrIGJlZm9yZSBtb2RpZnlpbmcgRXRoZXJuZXQgaGVhZGVyIGZpZWxkcyBpbiBgdnhsYW5feG1pdGAgaXMgYWxzbyBhIGdvb2QgZGVmZW5zaXZlIG1lYXN1cmUsIHByZXZlbnRpbmcgdW5leHBlY3RlZCBtb2RpZmljYXRpb24gb2Ygc2hhcmVkIGJ1ZmZlciBkYXRhLiBBbmQgdGhlIHVwZGF0ZSBvZiB0aGUgRXRoZXJuZXQgaGVhZGVyIHBvaW50ZXIgYWZ0ZXIgdGhlIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIGEgc2ltcGxlIGNvcnJlY3Rpb24sIHRvIG1ha2Ugc3VyZSBzdWJzZXF1ZW50IGNvZGUgb3BlcmF0ZXMgb24gdGhlIGNvcnJlY3QgZGF0YS4KClRoaXMgcmVhbGx5IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cCwgSSBuZWVkIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiZWhhdmlvdXIgZG9lc24mIzM5O3QgY2hhbmdlIHRvbyBtdWNoLiBCZWNhdXNlIG9mIHRoYXQsIGFuZCBiZWNhdXNlIHRoZXNlIGFyZSBhbGwgY29yZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBWWExBTiBkcml2ZXIsIHRoaXMgcGF0Y2ggZGVmaW5pdGVseSB3YXJyYW50cyBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9ucyB0byB0YXJnZXQgZHVyaW5nIGZ1enppbmcgd2lsbCBiZSBgYXJwX3JlZHVjZWAsIGByb3V0ZV9zaG9ydGNpcmN1aXRgLCBgdnhsYW5feG1pdGAsIGFuZCBgdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXRgLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24uIExldCYjMzk7cyBzZWUuLi4gdGhlIHByaW1hcnkgY29uZmlnIGhlcmUgd2lsbCBiZSBgVlhMQU5gLCBidXQgSSBzaG91bGQgY2hlY2sgdGhlIEtjb25maWcgZmlsZSBpbiBgZHJpdmVycy9uZXQvdnhsYW5gIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGUgYmVoYXZpb3Igb2YgdGhlc2UgZnVuY3Rpb25zIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIGZ1enppbmcgc2V0dXAuIE1ha2luZyBzdXJlIEkgaGF2ZSB0aGUgZnVsbCBwaWN0dXJlIGlzIGtleSBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFZYTEFOJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI5NQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDM5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIHRoZSBvbmUgaGF2aW5nIGl0OgoKKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsbHkgTWlzc2luZyBDb25maWd1cmF0aW9uIEZpbGUqKgoKSG1tLCBpdCBzZWVtcyBsaWtlIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbS4gVGhhdCBgZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZ2AgZmlsZSBJIHdhcyBleHBlY3RpbmcgbWlnaHQgbm90IGFjdHVhbGx5IGJlIHByZXNlbnQuIEEgcXVpY2sgc2FuaXR5IGNoZWNrIGlzIGluIG9yZGVyLiBMZXQgbWUgdHJ5IGxvb2tpbmcgYXQgYSBjb3VwbGUgb2YgcmVsYXRlZCBsb2NhdGlvbnMgdG8gdmVyaWZ5IGlmIHRoZXJlJiMzOTtzIGEgdHlwbywgYW4gb3JnYW5pemF0aW9uYWwgc2hpZnQsIG9yIHBlcmhhcHMgdGhlIGZlYXR1cmUgaXMgaGFuZGxlZCBlbHNld2hlcmUuIEZpcnN0LCBJJiMzOTtsbCBleGFtaW5lIHRoZSBtb3JlIGdlbmVyYWwgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUg4oCTIHRoYXQmIzM5O3Mgb2Z0ZW4gdGhlIHJvb3QgZm9yIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24uIElmIHRoYXQgZG9lc24mIzM5O3QgaG9sZCB0aGUga2V5LCBJJiMzOTtsbCBnbyBkaXJlY3RseSBpbnRvIHRoZSBgZHJpdmVycy9uZXQvdnhsYW4vYCBkaXJlY3RvcnkgYW5kIHNlZSBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyBzdWJ0bHkgZGlmZmVyZW50LCBvciBpZiB0aGUgd2hvbGUgVlhMQU4gS2NvbmZpZyBmaWxlIGxpdmVzIHVuZGVyIGFub3RoZXIgbmFtZS4gR290dGEgZmlndXJlIG91dCB3aGVyZSB0aGlzIGNvbmZpZ3VyYXRpb24gbG9naWMgKmFjdHVhbGx5KiByZXNpZGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fY29yZS5jJiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYi5jJiMzNDssCiAgICAmIzM0O3Z4bGFuX211bHRpY2FzdC5jJiMzNDssCiAgICAmIzM0O3Z4bGFuX3ByaXZhdGUuaCYjMzQ7LAogICAgJiMzNDt2eGxhbl92bmlmaWx0ZXIuYyYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDYxNwoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgcHJlc2VudGVkIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIFZYTEFOIENvbmZpZ3VyYXRpb24gaW4gTmV0d29yayBEcml2ZXJzKioKCkFscmlnaHQsIEkmIzM5O20gdGhpbmtpbmcgSSBuZWVkIHRvIGZpbmQgd2hlcmUgVlhMQU4gaXMgY29uZmlndXJlZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIG5ldHdvcmsgZHJpdmVyIGNvbmZpZ3VyYXRpb25zLiBUaGUgcXVpY2tlc3Qgd2F5IHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyB0byBsZXZlcmFnZSBgZ3JlcGAuIEkga25vdyB0aGUgS2NvbmZpZyBmaWxlcyBpbiB0aGUgYGRyaXZlcnMvbmV0L2AgZGlyZWN0b3J5IGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIG5ldHdvcmsgZHJpdmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhlcmVmb3JlLCBJJiMzOTttIGdvaW5nIHRvIHJ1biBhIGBncmVwYCBjb21tYW5kLCBsaWtlbHkgc2VhcmNoaW5nIGZvciAmIzM0O1ZYTEFOJiMzNDsgYWNyb3NzIHRob3NlIEtjb25maWcgZmlsZXMuIFRoaXMgc2hvdWxkIHF1aWNrbHkgbG9jYXRlIGFueSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgZGVmYXVsdCBzZXR0aW5ncyByZWxhdGVkIHRvIFZYTEFOIHN1cHBvcnQgd2l0aGluIHRob3NlIGRyaXZlcnMuIFRoYXQmIzM5O3MgdGhlIG1vc3QgZWZmaWNpZW50IHdheSB0byBnZXQgYSBwcmVsaW1pbmFyeSBvdmVydmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxNzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVlhMQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZz0yMTY9Y29uZmlnIElQVlRBUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMjI5LVxuZHJpdmVycy9uZXQvS2NvbmZpZzoyMzA6Y29uZmlnIFZYTEFOXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMS1cdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgZVh0ZW5zaWJsZSBMb2NhbCBBcmVhIE5ldHdvcmsgKFZYTEFOKVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5MjEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqVlhMQU4gQ29uZmlndXJhdGlvbiBhbmQgVHJhbnNtaXNzaW9uIEFuYWx5c2lzKioKClJpZ2h0LCB0aGUga2V5IGNvbmZpZ3VyYXRpb24gZWxlbWVudCBoZXJlIGlzIGBWWExBTmAuIFRoYXTigJlzIHRoZSBjb3JlIGZvY3VzLiBOb3csIGxldOKAmXMgc2Vl4oCmIHRoZSBgcm91dGVfc2hvcnRjaXJjdWl0YCBmdW5jdGlvbiDigJMgSSByZWNhbGwgdGhhdCBvbmUuIEkgbmVlZCB0byByZW1lbWJlciB3aGF0IGl0cyByb2xlIGlzLiBBaCwgeWVzLCBpdCBzZWVtcyB0aGF0IGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIG9ubHkgaW52b2tlZCBpZiBhIHNwZWNpZmljIGZsYWcgaXMgc2V0LCBzcGVjaWZpY2FsbHkgaWYgYHZ4bGFuLSZndDtmbGFnc2AgaGFzIHRoZSBgVlhMQU5fRl9MM01JU1NgIGJpdCBlbmFibGVkLiBJIG5lZWQgdG8ga2VlcCB0aGF0IGluIG1pbmQuIFRoYXQmIzM5O3MgYSBjcnVjaWFsIGNvbmRpdGlvbmFsLiBJIHNob3VsZCBwcm9iYWJseSBxdWlja2x5IGNoZWNrIGhvdyB0aGF0IGZsYWcgaXMgZGV0ZXJtaW5lZC4KCk9rYXksIG5vdywgdGhlIHJlYWwgaGVhcnQgb2YgdGhpcywgd2hlcmUgdGhlIHBhY2tldHMgZ28/IExldCYjMzk7cyB0dXJuIG91ciBhdHRlbnRpb24gdG8gYHZ4bGFuX3htaXRgLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBhY3R1YWwgdHJhbnNtaXNzaW9uIHByb2Nlc3MsIGxpa2VseSBlbmNhcHN1bGF0ZWQsIHdpbGwgaGFwcGVuLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGB2eGxhbl94bWl0YCB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGZsb3csIHBvdGVudGlhbCBib3R0bGVuZWNrcywgYW5kIGFueSBzcGVjaWFsIGhhbmRsaW5nIGJhc2VkIG9uIHRoZSBgVlhMQU5fRl9MM01JU1NgIGNvbmRpdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cm91dGVfc2hvcnRjaXJjdWl0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0yMDMwPXN0YXRpYyBpbnQgbmVpZ2hfcmVkdWNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiB2bmkpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTIwOTktXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MjEwMDpzdGF0aWMgYm9vbCByb3V0ZV9zaG9ydGNpcmN1aXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yMTAxLXtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjczMT1zdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODAzLVx0ICAgICBudG9ocyhldGgtXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfSVBWNikpIHtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyODA0Olx0XHRkaWRfcnNjID0gcm91dGVfc2hvcnRjaXJjdWl0KGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODA1LVx0XHRldGggPSBldGhfaGRyKHNrYik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxMTgKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxNzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xODE1PXN0YXRpYyBpbnQgdnhsYW5fZXJyX2xvb2t1cChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE4NDEtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTg0MjpzdGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMyIHZuaSlcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xODQzLXtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjczMT1zdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNzYyLVx0XHRpZiAobnRvaHMoZXRoLVx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0FSUClcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyNzYzOlx0XHRcdHJldHVybiBhcnBfcmVkdWNlKGRldiwgc2tiLCB2bmkpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI3NjQtI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI0IDE3OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NTQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNCAxNzo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2eGxhbl9tZGJfZW50cnlfc2tiX2dldCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jPTE1NzQ9aW50IHZ4bGFuX21kYl9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwgdTMyIHBvcnRpZCxcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYy0xNjExLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmM6MTYxMjpzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jLTE2MTMtXHRcdFx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA3NQoJCQkJCQkJb3V0cHV0OiAxMjMKCQkJCQkJCXRob3VnaHRzOiAyMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUGF0Y2ggQW5hbHlzaXMgLSBJbml0aWFsIFRob3VnaHRzKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgc29tZSBrZXkgYXJlYXM6IGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuIFRoYXQmIzM5O3MgYSBmb2N1c2VkIGdyb3VwLCBzdWdnZXN0aW5nIGEgc3BlY2lmaWMgYXJlYSBvZiBuZXR3b3JrIHN0YWNrIG9wdGltaXphdGlvbiBvciBidWcgZml4LiBUaGUgdXNlIG9mIGBwc2tiX25ldHdvcmtfbWF5X3B1bGxgIGluc3RlYWQgb2YgdGhlIG1vcmUgZ2VuZXJpYyBgcHNrYl9tYXlfcHVsbGAgaW1tZWRpYXRlbHkgZmxhZ3MgYSBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgZ2FpbiBvciBzdWJ0bGUgY29ycmVjdG5lc3MgaW1wcm92ZW1lbnQgYXJvdW5kIG5ldHdvcmsgaGVhZGVyIGhhbmRsaW5nLCBhbmQgaXMgd29ydGggZnVydGhlciBleGFtaW5hdGlvbi4KClRoZSByZWZlcmVuY2UgdG8gYSBidWcgaW4gYHJvdXRlX3Nob3J0Y2lyY3VpdGAgaW52b2x2aW5nIHVuLUNPV2VkIEV0aGVybmV0IGhlYWRlcnMgYW5kIG1pc3NpbmcgcmVsb2FkIGluIGB2eGxhbl94bWl0YCBpcyB0aGUgcmVhbCBtZWF0IG9mIHRoaXMuIE1vZGlmeWluZyBgZXRoX2hkcihza2IpYCB3aXRob3V0IGEgQ09XIGFuZCB0aGVuIG5vdCByZWxvYWRpbmcgdGhlIHBvaW50ZXIgYWZ0ZXIgYSBjYWxsIHRvIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIGEgY2xhc3NpYyByZWNpcGUgZm9yIGRhdGEgY29ycnVwdGlvbiwgZXNwZWNpYWxseSBpbiBhIGhlYXZpbHkgdGhyZWFkZWQgZW52aXJvbm1lbnQuIFRoYXQgaXMgZGVmaW5pdGVseSBhIHJhY2UgY29uZGl0aW9uIHdhaXRpbmcgdG8gaGFwcGVuLiBTZWVtcyBwcmV0dHkgZnVuY3Rpb25hbCwgYW5kIGRlZmluaXRlbHkgYSBjYW5kaWRhdGUgZm9yIGZ1enppbmcgb25jZSBhcHBsaWVkLiBJIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0aGUgZnV6emluZyBpcyBhcyBleGhhdXN0aXZlIGFzIHBvc3NpYmxlLCBhcyB0aGVzZSBjb25kaXRpb25zIGFyZSBkaWZmaWN1bHQgdG8gZXhwb3NlLgoKVGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIGFyZSBgVlhMQU5gIGFuZCBgSVBWNmAuIGBWWExBTmAgbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhlIGZ1bmN0aW9uIG5hbWVzLiBJIHNob3VsZCBpbnZlc3RpZ2F0ZSBvdGhlciBjb25maWcgb3B0aW9ucyB0aGF0IG1heSByZWxhdGUgdG8gdGhlc2UgZnVuY3Rpb25zLiBgSVBWNmAgaXMgdXN1YWxseSBlbmFibGVkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlc2Ugb3B0aW9ucywgc28gdGhhdCBpcyBub3Qgc3VycHJpc2luZy4gSSB3aWxsIGFkZCBgSVBWNmAgdG8gdGhlIGxpc3Qgb2YgY29uZmlndXJhdGlvbnMgdG8ga2VlcCBpbiBtaW5kLgoKTGV0JiMzOTtzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXBwbHksIGJ1dCB0aGlzIGlzIGEgZ29vZCBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjQgMTc6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDssCiAgICAmIzM0O0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthcnBfcmVkdWNlJiMzNDssCiAgICAmIzM0O3JvdXRlX3Nob3J0Y2lyY3VpdCYjMzQ7LAogICAgJiMzNDt2eGxhbl94bWl0JiMzNDssCiAgICAmIzM0O3Z4bGFuX21kYl9lbnRyeV9za2JfZ2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWWExBTiYjMzQ7LAogICAgJiMzNDtJUFY2JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXJwX3JlZHVjZSYjMzQ7LAogICAgJiMzNDtyb3V0ZV9zaG9ydGNpcmN1aXQmIzM0OywKICAgICYjMzQ7dnhsYW5feG1pdCYjMzQ7LAogICAgJiMzNDt2eGxhbl9tZGJfZW50cnlfc2tiX2dldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBWWExBTiBwYWNrZXQgcHJvY2Vzc2luZyBsb2dpYywgcmVwbGFjaW5nIHBza2JfbWF5X3B1bGwgd2l0aCBwc2tiX25ldHdvcmtfbWF5X3B1bGwgYW5kIGZpeGluZyBza2Igc2hhcmluZyBpc3N1ZXMgaW4gcm91dGVfc2hvcnRjaXJjdWl0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBuZXR3b3JrIGRhdGEgcGF0aC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjE1LjMzMDAyNDk0MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NDczNjk3MDE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCIsXG4gICAgXCJJUFY2XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXJwX3JlZHVjZVwiLFxuICAgIFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gICAgXCJ2eGxhbl94bWl0XCIsXG4gICAgXCJ2eGxhbl9tZGJfZW50cnlfc2tiX2dldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODoxNS4zMzAwMzE0NzJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NjgxNjI2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDYyZDA3ZDcwMjk3MTUzZTg0NmEzNTIzMTllYjA3M2ZiNTNkMTk1MzVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMjQgMTc6NTg6MTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXFxuaW5kZXggNjdjMzY3Y2M1NjYyMzMuLmVmZjE3OTg3YzViNTMxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xcbkBAIC0xODUwLDcgKzE4NTAsNyBAQCBzdGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMyIHZuaSlcXG4gXFx0aWYgKGRldi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBJRkZfTk9BUlApXFxuIFxcdFxcdGdvdG8gb3V0O1xcbiBcXG4tXFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgYXJwX2hkcl9sZW4oZGV2KSkpIHtcXG4rXFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBhcnBfaGRyX2xlbihkZXYpKSkge1xcbiBcXHRcXHRkZXZfZHN0YXRzX3R4X2Ryb3BwZWQoZGV2KTtcXG4gXFx0XFx0dnhsYW5fdm5pZmlsdGVyX2NvdW50KHZ4bGFuLCB2bmksIE5VTEwsXFxuIFxcdFxcdFxcdFxcdCAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7XFxuQEAgLTIxMTEsNyArMjExMSw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHR7XFxuIFxcdFxcdHN0cnVjdCBpcGhkciAqcGlwO1xcbiBcXG4tXFx0XFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxcbitcXHRcXHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcXG4gXFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbiBcXHRcXHRwaXAgPSBpcF9oZHIoc2tiKTtcXG4gXFx0XFx0biA9IG5laWdoX2xvb2t1cChcXHUwMDI2YXJwX3RibCwgXFx1MDAyNnBpcC1cXHUwMDNlZGFkZHIsIGRldik7XFxuQEAgLTIxMzcsNyArMjEzNyw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHRcXHQgKi9cXG4gXFx0XFx0aWYgKCFpcHY2X21vZF9lbmFibGVkKCkpXFxuIFxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4tXFx0XFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXFxuK1xcdFxcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXFxuIFxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFx0XFx0cGlwNiA9IGlwdjZfaGRyKHNrYik7XFxuIFxcdFxcdG4gPSBuZWlnaF9sb29rdXAoXFx1MDAyNm5kX3RibCwgXFx1MDAyNnBpcDYtXFx1MDAzZWRhZGRyLCBkZXYpO1xcbkBAIC0yMTU5LDEzICsyMTU5LDE5IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHR9XFxuIFxcbiBcXHRpZiAobikge1xcbitcXHRcXHR1OCBoYWRkcltFVEhfQUxFTl07XFxuIFxcdFxcdGJvb2wgZGlmZjtcXG4gXFxuLVxcdFxcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCwgbi1cXHUwMDNlaGEpO1xcbitcXHRcXHRuZWlnaF9oYV9zbmFwc2hvdChoYWRkciwgbiwgZGV2KTtcXG4rXFx0XFx0ZGlmZiA9ICFldGhlcl9hZGRyX2VxdWFsX3VuYWxpZ25lZChldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCwgaGFkZHIpO1xcbiBcXHRcXHRpZiAoZGlmZikge1xcbitcXHRcXHRcXHRpZiAoc2tiX2Nvd19oZWFkKHNrYiwgMCkpIHtcXG4rXFx0XFx0XFx0XFx0bmVpZ2hfcmVsZWFzZShuKTtcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXHRcXHRcXHR9XFxuIFxcdFxcdFxcdG1lbWNweShldGhfaGRyKHNrYiktXFx1MDAzZWhfc291cmNlLCBldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCxcXG4gXFx0XFx0XFx0XFx0ZGV2LVxcdTAwM2VhZGRyX2xlbik7XFxuLVxcdFxcdFxcdG1lbWNweShldGhfaGRyKHNrYiktXFx1MDAzZWhfZGVzdCwgbi1cXHUwMDNlaGEsIGRldi1cXHUwMDNlYWRkcl9sZW4pO1xcbitcXHRcXHRcXHRtZW1jcHkoZXRoX2hkcihza2IpLVxcdTAwM2VoX2Rlc3QsIGhhZGRyLCBkZXYtXFx1MDAzZWFkZHJfbGVuKTtcXG4gXFx0XFx0fVxcbiBcXHRcXHRuZWlnaF9yZWxlYXNlKG4pO1xcbiBcXHRcXHRyZXR1cm4gZGlmZjtcXG5AQCAtMjc1Nyw4ICsyNzYzLDggQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0XFx0XFx0cmV0dXJuIGFycF9yZWR1Y2UoZGV2LCBza2IsIHZuaSk7XFxuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxcbiBcXHRcXHRlbHNlIGlmIChudG9ocyhldGgtXFx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQVjYgXFx1MDAyNlxcdTAwMjZcXG4tXFx0XFx0XFx0IHBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICtcXG4tXFx0XFx0XFx0XFx0XFx0ICAgIHNpemVvZihzdHJ1Y3QgbmRfbXNnKSkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0XFx0IHBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgK1xcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgc2l6ZW9mKHN0cnVjdCBuZF9tc2cpKSBcXHUwMDI2XFx1MDAyNlxcbiBcXHRcXHRcXHQgaXB2Nl9oZHIoc2tiKS1cXHUwMDNlbmV4dGhkciA9PSBJUFBST1RPX0lDTVBWNikge1xcbiBcXHRcXHRcXHRzdHJ1Y3QgbmRfbXNnICptID0gKHN0cnVjdCBuZF9tc2cgKikoaXB2Nl9oZHIoc2tiKSArIDEpO1xcbiBcXG5AQCAtMjc5Niw2ICsyODAyLDcgQEAgc3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0ICAgIChudG9ocyhldGgtXFx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQIHx8XFxuIFxcdCAgICAgbnRvaHMoZXRoLVxcdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUFY2KSkge1xcbiBcXHRcXHRkaWRfcnNjID0gcm91dGVfc2hvcnRjaXJjdWl0KGRldiwgc2tiKTtcXG4rXFx0XFx0ZXRoID0gZXRoX2hkcihza2IpO1xcbiBcXHRcXHRpZiAoZGlkX3JzYylcXG4gXFx0XFx0XFx0ZiA9IHZ4bGFuX2ZpbmRfbWFjX3R4KHZ4bGFuLCBldGgtXFx1MDAzZWhfZGVzdCwgdm5pKTtcXG4gXFx0fVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXFxuaW5kZXggYWY3YTBkN2Y5NWE1N2EuLjlhOTAzOGFlOTBjMThjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXFxuKysrIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNcXG5AQCAtMTYzMSw3ICsxNjMxLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXFxuIFxcbiBcXHRzd2l0Y2ggKHNrYi1cXHUwMDNlcHJvdG9jb2wpIHtcXG4gXFx0Y2FzZSBodG9ucyhFVEhfUF9JUCk6XFxuLVxcdFxcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcXG4rXFx0XFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpXFxuIFxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXHRcXHRncm91cC5kc3Quc2Euc2FfZmFtaWx5ID0gQUZfSU5FVDtcXG4gXFx0XFx0Z3JvdXAuZHN0LnNpbi5zaW5fYWRkci5zX2FkZHIgPSBpcF9oZHIoc2tiKS1cXHUwMDNlZGFkZHI7XFxuQEAgLTE2NDAsNyArMTY0MCw3IEBAIHN0cnVjdCB2eGxhbl9tZGJfZW50cnkgKnZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0KHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbiBcXHRcXHRicmVhaztcXG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuIFxcdGNhc2UgaHRvbnMoRVRIX1BfSVBWNik6XFxuLVxcdFxcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKVxcbitcXHRcXHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpKVxcbiBcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gXFx0XFx0Z3JvdXAuZHN0LnNhLnNhX2ZhbWlseSA9IEFGX0lORVQ2O1xcbiBcXHRcXHRncm91cC5kc3Quc2luNi5zaW42X2FkZHIgPSBpcHY2X2hkcihza2IpLVxcdTAwM2VkYWRkcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MTUuNzk3NTYyNTk2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDcwMDYxNDk3NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIixcbiAgICBcIklQVjZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhcnBfcmVkdWNlXCIsXG4gICAgXCJyb3V0ZV9zaG9ydGNpcmN1aXRcIixcbiAgICBcInZ4bGFuX3htaXRcIixcbiAgICBcInZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgVlhMQU4gcGFja2V0IHByb2Nlc3NpbmcgbG9naWMsIHJlcGxhY2luZyBwc2tiX21heV9wdWxsIHdpdGggcHNrYl9uZXR3b3JrX21heV9wdWxsIGFuZCBmaXhpbmcgc2tiIHNoYXJpbmcgaXNzdWVzIGluIHJvdXRlX3Nob3J0Y2lyY3VpdC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgbmV0d29yayBkYXRhIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjJkMDdkNzAyOTcxNTNlODQ2YTM1MjMxOWViMDczZmI1M2QxOTUzNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDI0IDE3OjU4OjEzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG5pbmRleCA2N2MzNjdjYzU2NjIzMy4uZWZmMTc5ODdjNWI1MzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1xuQEAgLTE4NTAsNyArMTg1MCw3IEBAIHN0YXRpYyBpbnQgYXJwX3JlZHVjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgdm5pKVxuIFx0aWYgKGRldi1cdTAwM2VmbGFncyBcdTAwMjYgSUZGX05PQVJQKVxuIFx0XHRnb3RvIG91dDtcbiBcbi1cdGlmICghcHNrYl9tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7XG4rXHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIGFycF9oZHJfbGVuKGRldikpKSB7XG4gXHRcdGRldl9kc3RhdHNfdHhfZHJvcHBlZChkZXYpO1xuIFx0XHR2eGxhbl92bmlmaWx0ZXJfY291bnQodnhsYW4sIHZuaSwgTlVMTCxcbiBcdFx0XHRcdCAgICAgIFZYTEFOX1ZOSV9TVEFUU19UWF9EUk9QUywgMCk7XG5AQCAtMjExMSw3ICsyMTExLDcgQEAgc3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHR7XG4gXHRcdHN0cnVjdCBpcGhkciAqcGlwO1xuIFxuLVx0XHRpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpXG4rXHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuIFx0XHRcdHJldHVybiBmYWxzZTtcbiBcdFx0cGlwID0gaXBfaGRyKHNrYik7XG4gXHRcdG4gPSBuZWlnaF9sb29rdXAoXHUwMDI2YXJwX3RibCwgXHUwMDI2cGlwLVx1MDAzZWRhZGRyLCBkZXYpO1xuQEAgLTIxMzcsNyArMjEzNyw3IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHQgKi9cbiBcdFx0aWYgKCFpcHY2X21vZF9lbmFibGVkKCkpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuLVx0XHRpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSlcbitcdFx0aWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSlcbiBcdFx0XHRyZXR1cm4gZmFsc2U7XG4gXHRcdHBpcDYgPSBpcHY2X2hkcihza2IpO1xuIFx0XHRuID0gbmVpZ2hfbG9va3VwKFx1MDAyNm5kX3RibCwgXHUwMDI2cGlwNi1cdTAwM2VkYWRkciwgZGV2KTtcbkBAIC0yMTU5LDEzICsyMTU5LDE5IEBAIHN0YXRpYyBib29sIHJvdXRlX3Nob3J0Y2lyY3VpdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0fVxuIFxuIFx0aWYgKG4pIHtcbitcdFx0dTggaGFkZHJbRVRIX0FMRU5dO1xuIFx0XHRib29sIGRpZmY7XG4gXG4tXHRcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYiktXHUwMDNlaF9kZXN0LCBuLVx1MDAzZWhhKTtcbitcdFx0bmVpZ2hfaGFfc25hcHNob3QoaGFkZHIsIG4sIGRldik7XG4rXHRcdGRpZmYgPSAhZXRoZXJfYWRkcl9lcXVhbF91bmFsaWduZWQoZXRoX2hkcihza2IpLVx1MDAzZWhfZGVzdCwgaGFkZHIpO1xuIFx0XHRpZiAoZGlmZikge1xuK1x0XHRcdGlmIChza2JfY293X2hlYWQoc2tiLCAwKSkge1xuK1x0XHRcdFx0bmVpZ2hfcmVsZWFzZShuKTtcbitcdFx0XHRcdHJldHVybiBmYWxzZTtcbitcdFx0XHR9XG4gXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX3NvdXJjZSwgZXRoX2hkcihza2IpLVx1MDAzZWhfZGVzdCxcbiBcdFx0XHRcdGRldi1cdTAwM2VhZGRyX2xlbik7XG4tXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX2Rlc3QsIG4tXHUwMDNlaGEsIGRldi1cdTAwM2VhZGRyX2xlbik7XG4rXHRcdFx0bWVtY3B5KGV0aF9oZHIoc2tiKS1cdTAwM2VoX2Rlc3QsIGhhZGRyLCBkZXYtXHUwMDNlYWRkcl9sZW4pO1xuIFx0XHR9XG4gXHRcdG5laWdoX3JlbGVhc2Uobik7XG4gXHRcdHJldHVybiBkaWZmO1xuQEAgLTI3NTcsOCArMjc2Myw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB2eGxhbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRcdFx0cmV0dXJuIGFycF9yZWR1Y2UoZGV2LCBza2IsIHZuaSk7XG4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG4gXHRcdGVsc2UgaWYgKG50b2hzKGV0aC1cdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUFY2IFx1MDAyNlx1MDAyNlxuLVx0XHRcdCBwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSArXG4tXHRcdFx0XHRcdCAgICBzaXplb2Yoc3RydWN0IG5kX21zZykpIFx1MDAyNlx1MDAyNlxuK1x0XHRcdCBwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpICtcbitcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKHN0cnVjdCBuZF9tc2cpKSBcdTAwMjZcdTAwMjZcbiBcdFx0XHQgaXB2Nl9oZHIoc2tiKS1cdTAwM2VuZXh0aGRyID09IElQUFJPVE9fSUNNUFY2KSB7XG4gXHRcdFx0c3RydWN0IG5kX21zZyAqbSA9IChzdHJ1Y3QgbmRfbXNnICopKGlwdjZfaGRyKHNrYikgKyAxKTtcbiBcbkBAIC0yNzk2LDYgKzI4MDIsNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0ICAgIChudG9ocyhldGgtXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfSVAgfHxcbiBcdCAgICAgbnRvaHMoZXRoLVx1MDAzZWhfcHJvdG8pID09IEVUSF9QX0lQVjYpKSB7XG4gXHRcdGRpZF9yc2MgPSByb3V0ZV9zaG9ydGNpcmN1aXQoZGV2LCBza2IpO1xuK1x0XHRldGggPSBldGhfaGRyKHNrYik7XG4gXHRcdGlmIChkaWRfcnNjKVxuIFx0XHRcdGYgPSB2eGxhbl9maW5kX21hY190eCh2eGxhbiwgZXRoLVx1MDAzZWhfZGVzdCwgdm5pKTtcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXG5pbmRleCBhZjdhMGQ3Zjk1YTU3YS4uOWE5MDM4YWU5MGMxOGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuY1xuKysrIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNcbkBAIC0xNjMxLDcgKzE2MzEsNyBAQCBzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbiBcbiBcdHN3aXRjaCAoc2tiLVx1MDAzZXByb3RvY29sKSB7XG4gXHRjYXNlIGh0b25zKEVUSF9QX0lQKTpcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKVxuK1x0XHRpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSlcbiBcdFx0XHRyZXR1cm4gTlVMTDtcbiBcdFx0Z3JvdXAuZHN0LnNhLnNhX2ZhbWlseSA9IEFGX0lORVQ7XG4gXHRcdGdyb3VwLmRzdC5zaW4uc2luX2FkZHIuc19hZGRyID0gaXBfaGRyKHNrYiktXHUwMDNlZGFkZHI7XG5AQCAtMTY0MCw3ICsxNjQwLDcgQEAgc3RydWN0IHZ4bGFuX21kYl9lbnRyeSAqdnhsYW5fbWRiX2VudHJ5X3NrYl9nZXQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXHRcdGJyZWFrO1xuICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxuIFx0Y2FzZSBodG9ucyhFVEhfUF9JUFY2KTpcbi1cdFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4rXHRcdGlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpXG4gXHRcdFx0cmV0dXJuIE5VTEw7XG4gXHRcdGdyb3VwLmRzdC5zYS5zYV9mYW1pbHkgPSBBRl9JTkVUNjtcbiBcdFx0Z3JvdXAuZHN0LnNpbjYuc2luNl9hZGRyID0gaXB2Nl9oZHIoc2tiKS1cdTAwM2VkYWRkcjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjE1Ljc5NzU2Mzk2NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYzMzQ0NTg3NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVlhMQU4gRHJpdmVyIFBhdGNoIFJldmlldyBhbmQgRnV6emluZyBTdHJhdGVneSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBWWExBTiBkcml2ZXIuIEl0IHNlZW1zIGxpa2UgYSByZWxhdGl2ZWx5IGZvY3VzZWQgY2hhbmdlLCBwcmltYXJpbHkgaW1wYWN0aW5nIGBkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNgIGFuZCBgZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmNgLiBNeSBpbml0aWFsIHJlYWQgaXMgdGhhdCB0aGUgYXV0aG9yIGlzIHRyeWluZyB0byB0aWdodGVuIHVwIHNvbWUgbWVtb3J5IHNhZmV0eSBvciBwZXJmb3JtYW5jZSBhc3BlY3RzLCBsaWtlbHkgZHVlIHRvIHBvdGVudGlhbCBpc3N1ZXMgaW4gaG93IHBhY2tldCBkYXRhIGlzIGhhbmRsZWQuXG5cblRoZSBjb3JlIG9mIHRoZSBwYXRjaCByZXZvbHZlcyBhcm91bmQgc3dhcHBpbmcgb3V0IGBwc2tiX21heV9wdWxsYCB3aXRoIGBwc2tiX25ldHdvcmtfbWF5X3B1bGxgIGFjcm9zcyBhIGZldyBjcml0aWNhbCBmdW5jdGlvbnM6IGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuIFJlcGxhY2luZyB0aGUgZm9ybWVyIHdpdGggdGhlIGxhdHRlciBtZWFucyB3ZSBoYXZlIG5vdyBjaGFuZ2VkIGJlaGF2aW9yLCBzbyB3ZSB3YW50IHRvIGJlIHZlcnkgY2FyZWZ1bCB0byB2ZXJpZnkgdGhlIGNoYW5nZSdzIGNvcnJlY3RuZXNzLiBUaGF0J3MgZ29vZCwgYHBza2JfbmV0d29ya19tYXlfcHVsbGAgaXMgZ2VuZXJhbGx5IHByZWZlcnJlZCB3aGVuIHlvdSdyZSB3b3JraW5nIHdpdGggbmV0d29yayBoZWFkZXJzIGFuZCB3YW50IHRvIGF2b2lkIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWRzIGR1cmluZyBwYWNrZXQgcHJvY2Vzc2luZywgc28gdGhpcyBpcyBhIHBvc2l0aXZlIG1vdmUuXG5cblRoZSBjaGFuZ2VzIGluIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGFyZSBtb3JlIGludGVyZXN0aW5nLiBUaGUgZGlyZWN0IGFjY2VzcyB0byBgbi1cdTAwM2VoYWAgYW5kIHVzYWdlIG9mIGBldGhlcl9hZGRyX2VxdWFsYCBhcmUgYmVpbmcgcmVwbGFjZWQgd2l0aCBgbmVpZ2hfaGFfc25hcHNob3RgIGFuZCBgZXRoZXJfYWRkcl9lcXVhbF91bmFsaWduZWRgLCB3aGljaCBhcmUgc2FmZXIgYWx0ZXJuYXRpdmVzLiBMb29rcyBsaWtlIHRoaXMgbWlnaHQgYmUgcmVsYXRlZCB0byBzb21lIHJlcG9ydGVkIGlzc3VlcyBpbiBuZWlnaGJvciB0YWJsZSBhY2Nlc3MuIFRoZSBhZGRpdGlvbiBvZiBhbiBgc2tiX2Nvd19oZWFkYCBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIEV0aGVybmV0IGhlYWRlciBmaWVsZHMgaW4gYHZ4bGFuX3htaXRgIGlzIGFsc28gYSBnb29kIGRlZmVuc2l2ZSBtZWFzdXJlLCBwcmV2ZW50aW5nIHVuZXhwZWN0ZWQgbW9kaWZpY2F0aW9uIG9mIHNoYXJlZCBidWZmZXIgZGF0YS4gQW5kIHRoZSB1cGRhdGUgb2YgdGhlIEV0aGVybmV0IGhlYWRlciBwb2ludGVyIGFmdGVyIHRoZSBgcm91dGVfc2hvcnRjaXJjdWl0YCBpcyBhIHNpbXBsZSBjb3JyZWN0aW9uLCB0byBtYWtlIHN1cmUgc3Vic2VxdWVudCBjb2RlIG9wZXJhdGVzIG9uIHRoZSBjb3JyZWN0IGRhdGEuXG5cblRoaXMgcmVhbGx5IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cCwgSSBuZWVkIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBiZWhhdmlvdXIgZG9lc24ndCBjaGFuZ2UgdG9vIG11Y2guIEJlY2F1c2Ugb2YgdGhhdCwgYW5kIGJlY2F1c2UgdGhlc2UgYXJlIGFsbCBjb3JlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIFZYTEFOIGRyaXZlciwgdGhpcyBwYXRjaCBkZWZpbml0ZWx5IHdhcnJhbnRzIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb25zIHRvIHRhcmdldCBkdXJpbmcgZnV6emluZyB3aWxsIGJlIGBhcnBfcmVkdWNlYCwgYHJvdXRlX3Nob3J0Y2lyY3VpdGAsIGB2eGxhbl94bWl0YCwgYW5kIGB2eGxhbl9tZGJfZW50cnlfc2tiX2dldGAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uLiBMZXQncyBzZWUuLi4gdGhlIHByaW1hcnkgY29uZmlnIGhlcmUgd2lsbCBiZSBgVlhMQU5gLCBidXQgSSBzaG91bGQgY2hlY2sgdGhlIEtjb25maWcgZmlsZSBpbiBgZHJpdmVycy9uZXQvdnhsYW5gIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGUgYmVoYXZpb3Igb2YgdGhlc2UgZnVuY3Rpb25zIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIGZ1enppbmcgc2V0dXAuIE1ha2luZyBzdXJlIEkgaGF2ZSB0aGUgZnVsbCBwaWN0dXJlIGlzIGtleSBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzY5LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzEyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MjIuMTMyMDI1NTY5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMjQ5NzM3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVlhMQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MjIuMTk0MjgzNTg3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMyOTE1OTA4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gdGhlIG9uZSBoYXZpbmcgaXQ6XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbGx5IE1pc3NpbmcgQ29uZmlndXJhdGlvbiBGaWxlKipcblxuSG1tLCBpdCBzZWVtcyBsaWtlIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbS4gVGhhdCBgZHJpdmVycy9uZXQvdnhsYW4vS2NvbmZpZ2AgZmlsZSBJIHdhcyBleHBlY3RpbmcgbWlnaHQgbm90IGFjdHVhbGx5IGJlIHByZXNlbnQuIEEgcXVpY2sgc2FuaXR5IGNoZWNrIGlzIGluIG9yZGVyLiBMZXQgbWUgdHJ5IGxvb2tpbmcgYXQgYSBjb3VwbGUgb2YgcmVsYXRlZCBsb2NhdGlvbnMgdG8gdmVyaWZ5IGlmIHRoZXJlJ3MgYSB0eXBvLCBhbiBvcmdhbml6YXRpb25hbCBzaGlmdCwgb3IgcGVyaGFwcyB0aGUgZmVhdHVyZSBpcyBoYW5kbGVkIGVsc2V3aGVyZS4gRmlyc3QsIEknbGwgZXhhbWluZSB0aGUgbW9yZSBnZW5lcmFsIGBkcml2ZXJzL25ldC9LY29uZmlnYCBmaWxlIOKAkyB0aGF0J3Mgb2Z0ZW4gdGhlIHJvb3QgZm9yIG5ldHdvcmsgZGV2aWNlIGNvbmZpZ3VyYXRpb24uIElmIHRoYXQgZG9lc24ndCBob2xkIHRoZSBrZXksIEknbGwgZ28gZGlyZWN0bHkgaW50byB0aGUgYGRyaXZlcnMvbmV0L3Z4bGFuL2AgZGlyZWN0b3J5IGFuZCBzZWUgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaXMgc3VidGx5IGRpZmZlcmVudCwgb3IgaWYgdGhlIHdob2xlIFZYTEFOIEtjb25maWcgZmlsZSBsaXZlcyB1bmRlciBhbm90aGVyIG5hbWUuIEdvdHRhIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBjb25maWd1cmF0aW9uIGxvZ2ljICphY3R1YWxseSogcmVzaWRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI5NSwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjI1LjUyMzQ0NTEwM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM5MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC92eGxhblwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJ2eGxhbl9jb3JlLmNcIixcbiAgICBcInZ4bGFuX21kYi5jXCIsXG4gICAgXCJ2eGxhbl9tdWx0aWNhc3QuY1wiLFxuICAgIFwidnhsYW5fcHJpdmF0ZS5oXCIsXG4gICAgXCJ2eGxhbl92bmlmaWx0ZXIuY1wiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODoyNS41MjM1MTE1MzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTEyOTg0NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyBWWExBTiBDb25maWd1cmF0aW9uIGluIE5ldHdvcmsgRHJpdmVycyoqXG5cbkFscmlnaHQsIEknbSB0aGlua2luZyBJIG5lZWQgdG8gZmluZCB3aGVyZSBWWExBTiBpcyBjb25maWd1cmVkLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBrZXJuZWwncyBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9ucy4gVGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBoYW5kbGUgb24gdGhpcywgZ2l2ZW4gbXkgZXhwZXJpZW5jZSwgaXMgdG8gbGV2ZXJhZ2UgYGdyZXBgLiBJIGtub3cgdGhlIEtjb25maWcgZmlsZXMgaW4gdGhlIGBkcml2ZXJzL25ldC9gIGRpcmVjdG9yeSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzIGZvciBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHJ1biBhIGBncmVwYCBjb21tYW5kLCBsaWtlbHkgc2VhcmNoaW5nIGZvciBcIlZYTEFOXCIgYWNyb3NzIHRob3NlIEtjb25maWcgZmlsZXMuIFRoaXMgc2hvdWxkIHF1aWNrbHkgbG9jYXRlIGFueSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgZGVmYXVsdCBzZXR0aW5ncyByZWxhdGVkIHRvIFZYTEFOIHN1cHBvcnQgd2l0aGluIHRob3NlIGRyaXZlcnMuIFRoYXQncyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IHRvIGdldCBhIHByZWxpbWluYXJ5IG92ZXJ2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjE3LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjI4LjYzNjQ5ODYxN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM2MzQ4MTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFZYTEFOXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIyOS1cXG5kcml2ZXJzL25ldC9LY29uZmlnOjIzMDpjb25maWcgVlhMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMS1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODoyOC44MDAxMzc0MTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTI5OTE3ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqVlhMQU4gQ29uZmlndXJhdGlvbiBhbmQgVHJhbnNtaXNzaW9uIEFuYWx5c2lzKipcblxuUmlnaHQsIHRoZSBrZXkgY29uZmlndXJhdGlvbiBlbGVtZW50IGhlcmUgaXMgYFZYTEFOYC4gVGhhdOKAmXMgdGhlIGNvcmUgZm9jdXMuIE5vdywgbGV04oCZcyBzZWXigKYgdGhlIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGZ1bmN0aW9uIOKAkyBJIHJlY2FsbCB0aGF0IG9uZS4gSSBuZWVkIHRvIHJlbWVtYmVyIHdoYXQgaXRzIHJvbGUgaXMuIEFoLCB5ZXMsIGl0IHNlZW1zIHRoYXQgYHJvdXRlX3Nob3J0Y2lyY3VpdGAgaXMgb25seSBpbnZva2VkIGlmIGEgc3BlY2lmaWMgZmxhZyBpcyBzZXQsIHNwZWNpZmljYWxseSBpZiBgdnhsYW4tXHUwMDNlZmxhZ3NgIGhhcyB0aGUgYFZYTEFOX0ZfTDNNSVNTYCBiaXQgZW5hYmxlZC4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLiBUaGF0J3MgYSBjcnVjaWFsIGNvbmRpdGlvbmFsLiBJIHNob3VsZCBwcm9iYWJseSBxdWlja2x5IGNoZWNrIGhvdyB0aGF0IGZsYWcgaXMgZGV0ZXJtaW5lZC5cblxuT2theSwgbm93LCB0aGUgcmVhbCBoZWFydCBvZiB0aGlzLCB3aGVyZSB0aGUgcGFja2V0cyBnbz8gTGV0J3MgdHVybiBvdXIgYXR0ZW50aW9uIHRvIGB2eGxhbl94bWl0YC4gVGhhdCdzIHdoZXJlIHRoZSBhY3R1YWwgdHJhbnNtaXNzaW9uIHByb2Nlc3MsIGxpa2VseSBlbmNhcHN1bGF0ZWQsIHdpbGwgaGFwcGVuLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGB2eGxhbl94bWl0YCB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGZsb3csIHBvdGVudGlhbCBib3R0bGVuZWNrcywgYW5kIGFueSBzcGVjaWFsIGhhbmRsaW5nIGJhc2VkIG9uIHRoZSBgVlhMQU5fRl9MM01JU1NgIGNvbmRpdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkyMSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjMyLjczMDA1NzY3N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk0NDE4OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjAzMD1zdGF0aWMgaW50IG5laWdoX3JlZHVjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgdm5pKVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTIwOTktXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjIxMDA6c3RhdGljIGJvb2wgcm91dGVfc2hvcnRjaXJjdWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTIxMDEte1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI3MzE9c3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODAzLVxcdCAgICAgbnRvaHMoZXRoLVxcdTAwM2VoX3Byb3RvKSA9PSBFVEhfUF9JUFY2KSkge1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyODA0OlxcdFxcdGRpZF9yc2MgPSByb3V0ZV9zaG9ydGNpcmN1aXQoZGV2LCBza2IpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yODA1LVxcdFxcdGV0aCA9IGV0aF9oZHIoc2tiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTg6MzIuNzg5NTA0MzM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0MzkxMDM4MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo1MTE4LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODo0MS4yMjg2MTIzNDZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwOTkxMzc4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFycF9yZWR1Y2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xODE1PXN0YXRpYyBpbnQgdnhsYW5fZXJyX2xvb2t1cChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMTg0MS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTg0MjpzdGF0aWMgaW50IGFycF9yZWR1Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMyIHZuaSlcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMTg0My17XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjczMT1zdGF0aWMgbmV0ZGV2X3R4X3QgdnhsYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI3NjItXFx0XFx0aWYgKG50b2hzKGV0aC1cXHUwMDNlaF9wcm90bykgPT0gRVRIX1BfQVJQKVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyNzYzOlxcdFxcdFxcdHJldHVybiBhcnBfcmVkdWNlKGRldiwgc2tiLCB2bmkpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNzY0LSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODo0MS4yODk2MDg3NjRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTUyMzk4ODA2NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjo1NDU0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNFQxNzo1ODo1Ni41Mjk0OTIxNjJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMTQ2Mjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jPTE1NzQ9aW50IHZ4bGFuX21kYl9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5sYXR0ciAqdGJbXSwgdTMyIHBvcnRpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX21kYi5jLTE2MTEtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fbWRiLmM6MTYxMjpzdHJ1Y3QgdnhsYW5fbWRiX2VudHJ5ICp2eGxhbl9tZGJfZW50cnlfc2tiX2dldChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9tZGIuYy0xNjEzLVxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI0VDE3OjU4OjU2LjU5MTY0NDU1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxMjM2MjA4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUGF0Y2ggQW5hbHlzaXMgLSBJbml0aWFsIFRob3VnaHRzKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBzb21lIGtleSBhcmVhczogYGFycF9yZWR1Y2VgLCBgcm91dGVfc2hvcnRjaXJjdWl0YCwgYHZ4bGFuX3htaXRgLCBhbmQgYHZ4bGFuX21kYl9lbnRyeV9za2JfZ2V0YC4gVGhhdCdzIGEgZm9jdXNlZCBncm91cCwgc3VnZ2VzdGluZyBhIHNwZWNpZmljIGFyZWEgb2YgbmV0d29yayBzdGFjayBvcHRpbWl6YXRpb24gb3IgYnVnIGZpeC4gVGhlIHVzZSBvZiBgcHNrYl9uZXR3b3JrX21heV9wdWxsYCBpbnN0ZWFkIG9mIHRoZSBtb3JlIGdlbmVyaWMgYHBza2JfbWF5X3B1bGxgIGltbWVkaWF0ZWx5IGZsYWdzIGEgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGdhaW4gb3Igc3VidGxlIGNvcnJlY3RuZXNzIGltcHJvdmVtZW50IGFyb3VuZCBuZXR3b3JrIGhlYWRlciBoYW5kbGluZywgYW5kIGlzIHdvcnRoIGZ1cnRoZXIgZXhhbWluYXRpb24uXG5cblRoZSByZWZlcmVuY2UgdG8gYSBidWcgaW4gYHJvdXRlX3Nob3J0Y2lyY3VpdGAgaW52b2x2aW5nIHVuLUNPV2VkIEV0aGVybmV0IGhlYWRlcnMgYW5kIG1pc3NpbmcgcmVsb2FkIGluIGB2eGxhbl94bWl0YCBpcyB0aGUgcmVhbCBtZWF0IG9mIHRoaXMuIE1vZGlmeWluZyBgZXRoX2hkcihza2IpYCB3aXRob3V0IGEgQ09XIGFuZCB0aGVuIG5vdCByZWxvYWRpbmcgdGhlIHBvaW50ZXIgYWZ0ZXIgYSBjYWxsIHRvIGByb3V0ZV9zaG9ydGNpcmN1aXRgIGlzIGEgY2xhc3NpYyByZWNpcGUgZm9yIGRhdGEgY29ycnVwdGlvbiwgZXNwZWNpYWxseSBpbiBhIGhlYXZpbHkgdGhyZWFkZWQgZW52aXJvbm1lbnQuIFRoYXQgaXMgZGVmaW5pdGVseSBhIHJhY2UgY29uZGl0aW9uIHdhaXRpbmcgdG8gaGFwcGVuLiBTZWVtcyBwcmV0dHkgZnVuY3Rpb25hbCwgYW5kIGRlZmluaXRlbHkgYSBjYW5kaWRhdGUgZm9yIGZ1enppbmcgb25jZSBhcHBsaWVkLiBJIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0aGUgZnV6emluZyBpcyBhcyBleGhhdXN0aXZlIGFzIHBvc3NpYmxlLCBhcyB0aGVzZSBjb25kaXRpb25zIGFyZSBkaWZmaWN1bHQgdG8gZXhwb3NlLlxuXG5UaGUgY29uZmlndXJhdGlvbnMgaW52b2x2ZWQgYXJlIGBWWExBTmAgYW5kIGBJUFY2YC4gYFZYTEFOYCBtYWtlcyBzZW5zZSBnaXZlbiB0aGUgZnVuY3Rpb24gbmFtZXMuIEkgc2hvdWxkIGludmVzdGlnYXRlIG90aGVyIGNvbmZpZyBvcHRpb25zIHRoYXQgbWF5IHJlbGF0ZSB0byB0aGVzZSBmdW5jdGlvbnMuIGBJUFY2YCBpcyB1c3VhbGx5IGVuYWJsZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVzZSBvcHRpb25zLCBzbyB0aGF0IGlzIG5vdCBzdXJwcmlzaW5nLiBJIHdpbGwgYWRkIGBJUFY2YCB0byB0aGUgbGlzdCBvZiBjb25maWd1cmF0aW9ucyB0byBrZWVwIGluIG1pbmQuXG5cbkxldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXBwbHksIGJ1dCB0aGlzIGlzIGEgZ29vZCBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3NSwiT3V0cHV0VG9rZW5zIjoxMjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjRUMTc6NTk6MDIuNzE1MjY4ODgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg0MzgzNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCIsXG4gICAgXCJJUFY2XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXJwX3JlZHVjZVwiLFxuICAgIFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gICAgXCJ2eGxhbl94bWl0XCIsXG4gICAgXCJ2eGxhbl9tZGJfZW50cnlfc2tiX2dldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCIsXG4gICAgXCJJUFY2XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXJwX3JlZHVjZVwiLFxuICAgIFwicm91dGVfc2hvcnRjaXJjdWl0XCIsXG4gICAgXCJ2eGxhbl94bWl0XCIsXG4gICAgXCJ2eGxhbl9tZGJfZW50cnlfc2tiX2dldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIFZYTEFOIHBhY2tldCBwcm9jZXNzaW5nIGxvZ2ljLCByZXBsYWNpbmcgcHNrYl9tYXlfcHVsbCB3aXRoIHBza2JfbmV0d29ya19tYXlfcHVsbCBhbmQgZml4aW5nIHNrYiBzaGFyaW5nIGlzc3VlcyBpbiByb3V0ZV9zaG9ydGNpcmN1aXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIG5ldHdvcmsgZGF0YSBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowdcdhc[1] Phase: Succeeded StartedAt: 2026-07-24 17:59:14 +0000 UTC FinishedAt: 2026-07-24 17:59:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-24 17:59:14 +0000 UTC FinishedAt: 2026-07-24 17:59:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2] Phase: Succeeded StartedAt: 2026-07-24 17:59:14 +0000 UTC FinishedAt: 2026-07-24 22:23:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-24 17:59:15 +0000 UTC FinishedAt: 2026-07-24 22:23:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-24 17:59:15 +0000 UTC FinishedAt: 2026-07-24 17:59:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-24 17:59:15 +0000 UTC FinishedAt: 2026-07-24 17:59:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowdcdhc/series-workflowdcdhc-convert-artifact-750649089/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-24 17:59:25 +0000 UTC FinishedAt: 2026-07-24 18:31:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-24 17:59:25 +0000 UTC FinishedAt: 2026-07-24 18:31:33 +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:*10b62af1-10af-4d73-9e1c-fb366077e56d,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-workflowdcdhc/series-workflowdcdhc-convert-artifact-750649089/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": "81435e2f-1333-4419-a536-d09abf4062c2", "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-workflowdcdhc/series-workflowdcdhc-build-action-2736086063/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-24 17:59:25 +0000 UTC FinishedAt: 2026-07-24 18:31:23 +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:*10b62af1-10af-4d73-9e1c-fb366077e56d,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-workflowdcdhc/series-workflowdcdhc-convert-artifact-750649089/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": "81435e2f-1333-4419-a536-d09abf4062c2", "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-workflowdcdhc/series-workflowdcdhc-build-action-2736086063/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-24 18:31:33 +0000 UTC FinishedAt: 2026-07-24 18:31:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-24 18:31:33 +0000 UTC FinishedAt: 2026-07-24 18:31:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-24 18:31:33 +0000 UTC FinishedAt: 2026-07-24 18:31:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-24 18:31:33 +0000 UTC FinishedAt: 2026-07-24 18:31:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowdcdhc/series-workflowdcdhc-convert-artifact-4018659028/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-24 18:31:43 +0000 UTC FinishedAt: 2026-07-24 18:33:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-24 18:31:43 +0000 UTC FinishedAt: 2026-07-24 18:33:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*81435e2f-1333-4419-a536-d09abf4062c2,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-workflowdcdhc/series-workflowdcdhc-build-action-2736086063/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-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-24 18:33:36 +0000 UTC FinishedAt: 2026-07-24 18:33:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-24 18:33:36 +0000 UTC FinishedAt: 2026-07-24 18:33:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-24 18:33:36 +0000 UTC FinishedAt: 2026-07-24 19:17:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-24 18:33:36 +0000 UTC FinishedAt: 2026-07-24 19:17:36 +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:*10b62af1-10af-4d73-9e1c-fb366077e56d,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-workflowdcdhc/series-workflowdcdhc-convert-artifact-4018659028/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": "470fedb8-9daf-41f9-aef9-164f2f838f0f", "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-workflowdcdhc/series-workflowdcdhc-build-action-3642774176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-24 18:33:36 +0000 UTC FinishedAt: 2026-07-24 19:17:26 +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:*10b62af1-10af-4d73-9e1c-fb366077e56d,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-workflowdcdhc/series-workflowdcdhc-convert-artifact-4018659028/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": "470fedb8-9daf-41f9-aef9-164f2f838f0f", "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-workflowdcdhc/series-workflowdcdhc-build-action-3642774176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-24 19:17:36 +0000 UTC FinishedAt: 2026-07-24 19:17:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-24 19:17:36 +0000 UTC FinishedAt: 2026-07-24 19:17:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-24 19:17:36 +0000 UTC FinishedAt: 2026-07-24 19:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-24 19:17:36 +0000 UTC FinishedAt: 2026-07-24 19:19:54 +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:*470fedb8-9daf-41f9-aef9-164f2f838f0f,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-workflowdcdhc/series-workflowdcdhc-build-action-3642774176/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-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-24 19:20:06 +0000 UTC FinishedAt: 2026-07-24 22:23:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-24 19:20:06 +0000 UTC FinishedAt: 2026-07-24 22:23:14 +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":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"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:*81435e2f-1333-4419-a536-d09abf4062c2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*470fedb8-9daf-41f9-aef9-164f2f838f0f,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-workflowdcdhc/series-workflowdcdhc-build-action-2736086063/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-workflowdcdhc/series-workflowdcdhc-build-action-3642774176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-24 19:20:06 +0000 UTC FinishedAt: 2026-07-24 19:20:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-24 19:20:06 +0000 UTC FinishedAt: 2026-07-24 19:20:26 +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":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"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-workflowdcdhc/series-workflowdcdhc-convert-artifact-1038267645/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-24 19:20:06 +0000 UTC FinishedAt: 2026-07-24 19:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-24 19:20:06 +0000 UTC FinishedAt: 2026-07-24 19:20:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-24 19:20:07 +0000 UTC FinishedAt: 2026-07-24 19:20:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-24 19:20:34 +0000 UTC FinishedAt: 2026-07-24 22:23:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdcdhc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["arp_reduce","route_shortcircuit","vxlan_xmit","vxlan_mdb_entry_skb_get"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fd3a3f28ed60c6af4b2a39933b151d6b27842c3b","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN","IPV6"],"series_id":"11e37b6b-54d7-4889-ac12-39097cd0b2a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-24 19:20:34 +0000 UTC FinishedAt: 2026-07-24 22:23:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*81435e2f-1333-4419-a536-d09abf4062c2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*470fedb8-9daf-41f9-aef9-164f2f838f0f,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-workflowdcdhc/series-workflowdcdhc-build-action-2736086063/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-workflowdcdhc/series-workflowdcdhc-build-action-3642774176/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-workflowdcdhc/series-workflowdcdhc-convert-artifact-1038267645/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,}