Name: series-workflowfnkqd Phase: Succeeded StartedAt: 2026-07-07 22:31:45 +0000 UTC FinishedAt: 2026-07-08 03:13:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[0] Phase: Succeeded StartedAt: 2026-07-07 22:31:45 +0000 UTC FinishedAt: 2026-07-07 22:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[0].run-triage Phase: Succeeded StartedAt: 2026-07-07 22:31:45 +0000 UTC FinishedAt: 2026-07-07 22:56:31 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211" ], "series_id": "1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cfg80211_process_wiphy_works" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA3IDIyOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGxpc3QgY29ycnVwdGlvbi91c2UtYWZ0ZXItZnJlZSBidWcgaW4gYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGJ5IHByb3Blcmx5IHJlbW92aW5nIGVsZW1lbnRzIGZyb20gYHdpcGh5X3dvcmtfbGlzdGAgd2hlbiB0aGUgcnVuYXdheSBsaW1pdCBpcyByZWFjaGVkLCBpbnN0ZWFkIG9mIGp1c3QgcmVpbml0aWFsaXppbmcgdGhlIGxpc3QgaGVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDE2ZmNiN2RhMzVlZWFjYWE2N2VlODJjYjg5NTNiMTIyYWI0ODlkNjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCA3IDIyOjU0OjM3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9jb3JlLmMgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5pbmRleCAzZGNmNjNiMDRjNDFkYi4uYTdlMDExZWQ0NTVkYjUgMTAwNjQ0XG4tLS0gYS9uZXQvd2lyZWxlc3MvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5AQCAtMTI3OCw4ICYjNDM7MTI3OCwxNCBAQCB2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxuIFx0XHRpZiAod2sgPT0gZW5kKVxuIFx0XHRcdGJyZWFrO1xuIFxuLVx0XHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpXG4tXHRcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QpO1xuJiM0MztcdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKSB7XG4mIzQzO1x0XHRcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbGlzdCkpIHtcbiYjNDM7XHRcdFx0XHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QsXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB3aXBoeV93b3JrLFxuJiM0MztcdFx0XHRcdFx0XHQgICAgICBlbnRyeSk7XG4mIzQzO1x0XHRcdFx0bGlzdF9kZWxfaW5pdChcdTAwMjZ3ay1cdTAwM2VlbnRyeSk7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdH1cbiBcdH1cbiBcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMjI6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbGlzdCBjb3JydXB0aW9uL3VzZS1hZnRlci1mcmVlIGJ1ZyBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYnkgcHJvcGVybHkgcmVtb3ZpbmcgZWxlbWVudHMgZnJvbSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBydW5hd2F5IGxpbWl0IGlzIHJlYWNoZWQsIGluc3RlYWQgb2YganVzdCByZWluaXRpYWxpemluZyB0aGUgbGlzdCBoZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxNmZjYjdkYTM1ZWVhY2FhNjdlZTgyY2I4OTUzYjEyMmFiNDg5ZDY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgNyAyMjo1NDozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9jb3JlLmMgYi9uZXQvd2lyZWxlc3MvY29yZS5jCmluZGV4IDNkY2Y2M2IwNGM0MWRiLi5hN2UwMTFlZDQ1NWRiNSAxMDA2NDQKLS0tIGEvbmV0L3dpcmVsZXNzL2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvY29yZS5jCkBAIC0xMjc4LDggJiM0MzsxMjc4LDE0IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsCiAJCWlmICh3ayA9PSBlbmQpCiAJCQlicmVhazsKIAotCQlpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpCi0JCQlJTklUX0xJU1RfSEVBRCgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbGlzdCk7CiYjNDM7CQlpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpIHsKJiM0MzsJCQl3aGlsZSAoIWxpc3RfZW1wdHkoJmFtcDtyZGV2LSZndDt3aXBoeV93b3JrX2xpc3QpKSB7CiYjNDM7CQkJCXdrID0gbGlzdF9maXJzdF9lbnRyeSgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbGlzdCwKJiM0MzsJCQkJCQkgICAgICBzdHJ1Y3Qgd2lwaHlfd29yaywKJiM0MzsJCQkJCQkgICAgICBlbnRyeSk7CiYjNDM7CQkJCWxpc3RfZGVsX2luaXQoJmFtcDt3ay0mZ3Q7ZW50cnkpOwomIzQzOwkJCX0KJiM0MzsJCX0KIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbG9jaywgZmxhZ3MpOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIzCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgQ29yZSBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZyBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7QWgsIGFub3RoZXIgd2lyZWxlc3MgY29yZSBjaGFuZ2UsIGxpa2VseSBwZXJmb3JtYW5jZSBvciBhIGJ1ZyBmaXgmIzM0Oy4gTm93LCB0aGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgbW9kaWZpY2F0aW9uLiBJbnN0ZWFkIG9mIGp1c3QgaW5pdGlhbGl6aW5nIHRoZSB3b3JrIGxpc3Qgd2l0aCBgSU5JVF9MSVNUX0hFQURgLCB0aGUgYXV0aG9yIGlzIGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBsaXN0IGFuZCB1c2luZyBgbGlzdF9kZWxfaW5pdGAgb24gZWFjaCBlbnRyeS4gVGhhdOKAmXMgYSBjcnVjaWFsIGRpc3RpbmN0aW9uLiBJdCBpbXBsaWVzIHRoZXkgYXJlIGFjdGl2ZWx5ICpjbGVhbmluZyB1cCogdGhlIGxpc3QuIFRoaXMgaXMgbW9yZSB0aGFuIGp1c3QgaW5pdGlhbGl6aW5nOyBpdCYjMzk7cyBhIHJlbW92YWwgcHJvY2Vzcy4KClRoaW5raW5nIHRocm91Z2ggaXQsIHRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGltcHJvdmVtZW50LiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gbGlrZWx5IGhhZCBsaW5nZXJpbmcgcG9pbnRlcnMsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdXNlLWFmdGVyLWZyZWUgb3IgbGlzdCBjb3JydXB0aW9uIGVycm9ycywgbmFzdHksIGRpZmZpY3VsdCBidWdzIHRvIHRyYWNrIGRvd24uIFRoaXMgcGF0Y2ggaXMgYWltZWQgYXQgZXhwbGljaXRseSBjbGVhcmluZyB0aGUgZW50cmllcyBiZWZvcmUgdGhleSYjMzk7cmUgcmUtdXNlZCBvciwgcG90ZW50aWFsbHksIHdoZW4gdGhlIHdpcGh5IGlzIHNodXQgZG93bi4gTXkgbmV4dCBzdGVwPyBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgY29kZS4gTGV0JiMzOTtzIHRyYWNlIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBhbmQgc2VlICp3aGVyZSogaXQmIzM5O3MgY2FsbGVkIGFuZCAqd2hhdCogaXQgZG9lcy4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbCBwYXRocyBhbmQgdGhlIGNvbnRleHQgaXMgZXNzZW50aWFsIHRvIGdyYXNwIHRoZSBmdWxsIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZpeCwgYW5kIGhvdyBjcml0aWNhbCBpdCBpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9jb3JlLmM9MTI1ND1FWFBPUlRfU1lNQk9MKHdpcGh5X3Jma2lsbF9zdGFydF9wb2xsaW5nKTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1NS1cbm5ldC93aXJlbGVzcy9jb3JlLmM6MTI1Njp2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMjU3LVx0XHRcdFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmM9MTI5Mz12b2lkIHdpcGh5X3VucmVnaXN0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSlcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEzMzYtXHQvKiBzdXJlbHkgbm90aGluZyBpcyByZWFjaGFibGUgbm93LCBjbGVhbiB1cCB3b3JrICovXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEzMzc6XHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzM4LVx0d2lwaHlfdW5sb2NrKFx1MDAyNnJkZXYtXHUwMDNld2lwaHkpO1xuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmM9MTkxMz12b2lkIHdpcGh5X3dvcmtfZmx1c2goc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndvcmspXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTI1LVx0aWYgKHJ1bilcbm5ldC93aXJlbGVzcy9jb3JlLmM6MTkyNjpcdFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCB3b3JrKTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTkyNy19XG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuaD00Njk9dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3JkZXZfZXZlbnRzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldik7XG5uZXQvd2lyZWxlc3MvY29yZS5oOjQ3MDp2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxubmV0L3dpcmVsZXNzL2NvcmUuaC00NzEtXHRcdFx0XHQgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpO1xuLS1cbm5ldC93aXJlbGVzcy9zeXNmcy5jPTk0PXN0YXRpYyBpbnQgd2lwaHlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxubmV0L3dpcmVsZXNzL3N5c2ZzLmMtMTA2LVx0XHRzY29wZWRfZ3VhcmQod2lwaHksIFx1MDAyNnJkZXYtXHUwMDNld2lwaHkpIHtcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEwNzpcdFx0XHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xubmV0L3dpcmVsZXNzL3N5c2ZzLmMtMTA4LVx0XHRcdGlmIChyZGV2LVx1MDAzZW9wcy1cdTAwM2VzdXNwZW5kKVxuLS1cbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMC1cdFx0Y2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhyZGV2KTtcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEyMTpcdFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMi1cdFx0aWYgKHJkZXYtXHUwMDNlb3BzLVx1MDAzZXN1c3BlbmQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMjI6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA0NQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGNmZzgwMjExIENvcmUmIzM5O3MgV29yayBQcm9jZXNzaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBjZmc4MDIxMWAgY29kZSwgc3BlY2lmaWNhbGx5IHRoZSBmdW5jdGlvbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIGl0cyBzY29wZSBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuIEkgc2VlIHRoYXQgaXQmIzM5O3MgY2FsbGVkIGluIGEgZmV3IGNyaXRpY2FsIHBsYWNlczogYHdpcGh5X3VucmVnaXN0ZXJgLCBgd2lwaHlfd29ya19mbHVzaGAsIGFuZCBgd2lwaHlfc3VzcGVuZGAuIFRoYXQgc3VnZ2VzdHMgaXQmIzM5O3MgY2VudHJhbCB0byBoYW5kbGluZyB3b3JrIGl0ZW1zIHJlbGF0ZWQgdG8gdGhlIFdpLUZpIFBIWSBhYnN0cmFjdGlvbiBsYXllciwgd2hpY2ggaXMgY29uc2lzdGVudCB3aXRoIHRoZSBgY2ZnODAyMTFgIGNvcmUmIzM5O3Mgcm9sZS4KCk5vdywgYmVjYXVzZSBJ4oCZbSBkZWFsaW5nIHdpdGggY29uZmlndXJhdGlvbiBhc3BlY3RzIG9mIHRoZSBrZXJuZWwsIEkgd2FudCB0byBjb25maXJtIHRoYXQgdGhlcmUgaXNuJiMzOTt0IGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb24gaW5mbHVlbmNpbmcgdGhpcyBiZWhhdmlvci4gSXQgbWFrZXMgc2Vuc2UgdG8gY2hlY2sgYG5ldC93aXJlbGVzcy9LY29uZmlnYC4gSSYjMzk7bGwgbG9vayBmb3IgYW55IGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbnMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGBjZmc4MDIxMWAsIGxpa2UgdGhlIG1haW4gYENGRzgwMjExYCBjb25maWcsIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGZsYWdzIEkgbWlnaHQgaGF2ZSB0byBjb25zaWRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0ZHODAyMTEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTYtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4LVx0dHJpc3RhdGUgXCYjMzQ7Y2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctNTEtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01My1cdGJvb2wgXCYjMzQ7ZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxubmV0L3dpcmVsZXNzL0tjb25maWc6Njg6Y29uZmlnIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xubmV0L3dpcmVsZXNzL0tjb25maWctNjktXHRib29sIFwmIzM0O2NmZzgwMjExIGNlcnRpZmljYXRpb24gb251c1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTg4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6ODk6Y29uZmlnIENGRzgwMjExX1JFUVVJUkVfU0lHTkVEX1JFR0RCXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cdGJvb2wgXCYjMzQ7cmVxdWlyZSByZWdkYiBzaWduYXR1cmVcJiMzNDsgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctOTgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMDAtXHRib29sIFwmIzM0O2FsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcJiMzNDsgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTExOmNvbmZpZyBDRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTExMi1cdHN0cmluZyBcJiMzNDthZGRpdGlvbmFsIHJlZ2RiIGtleSBkaXJlY3RvcnlcJiMzNDsgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTIxLVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTIyOmNvbmZpZyBDRkc4MDIxMV9SRUdfQ0VMTFVMQVJfSElOVFNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgcmVndWxhdG9yeSBzdXBwb3J0IGZvciBjZWxsdWxhciBiYXNlIHN0YXRpb24gaGludHNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMzQtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxubmV0L3dpcmVsZXNzL0tjb25maWctMTM2LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTU5OmNvbmZpZyBDRkc4MDIxMV9ERUZBVUxUX1BTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjAtXHRib29sIFwmIzM0O2VuYWJsZSBwb3dlcnNhdmUgYnkgZGVmYXVsdFwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE2OTpjb25maWcgQ0ZHODAyMTFfREVCVUdGU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBEZWJ1Z0ZTIGVudHJpZXNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNzYtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTc4LVx0Ym9vbCBcJiMzNDtzdXBwb3J0IENSREFcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTg3OmNvbmZpZyBDRkc4MDIxMV9XRVhUXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xODgtXHRib29sIFwmIzM0O2NmZzgwMjExIHdpcmVsZXNzIGV4dGVuc2lvbnMgY29tcGF0aWJpbGl0eVwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE5My1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE5NDpjb25maWcgQ0ZHODAyMTFfS1VOSVRfVEVTVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVx0dHJpc3RhdGUgXCYjMzQ7S1VuaXQgdGVzdHMgZm9yIGNmZzgwMjExXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzM0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIENvcmUgQnVnIEZpeCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZyBhIGJ1ZyB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uLiBHb29kLCB0aGF0IG1ha2VzIHNlbnNlLiBJdCBsb29rcyBsaWtlIHRoaXMgY29kZSBwYXRoIGlzIG9ubHkgYWN0aXZlIHdoZW4gYENPTkZJR19DRkc4MDIxMWAgaXMgZW5hYmxlZCwgd2hpY2ggaXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhlIENGRzgwMjExIHdpcmVsZXNzIHN1YnN5c3RlbS4gS25vd2luZyB0aGF0IGBDRkc4MDIxMWAgaXMgdGhlIGtleSBlbmFibGVzIG1lIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBpbXBhY3QgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlLgoKVGhlIGNvcmUgb2YgdGhlIGlzc3VlIGFwcGVhcnMgdG8gcmV2b2x2ZSBhcm91bmQgaW1wcm9wZXIgbGlzdCBtYW5hZ2VtZW50IHdpdGhpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEl0IHNlZW1zIHRoYXQgaW5zdGVhZCBvZiBwcm9wZXJseSBoYW5kbGluZyBsaXN0IGVsZW1lbnRzIChwcmVzdW1hYmx5IHJlbW92aW5nIHRoZW0pLCB0aGUgY29kZSB3YXMgdXNpbmcgYElOSVRfTElTVF9IRUFEYCBpbmFwcHJvcHJpYXRlbHkgd2hlbiB0aGUgYHJ1bmF3YXlfbGltaXRgIGhpdHMgemVyby4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgZXJyb3IsIGFuZCBpdCBjYW4gZGVmaW5pdGVseSBsZWFkIHRvIG1lbW9yeSBsZWFrcyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yIGluIHRoZSB3aXJlbGVzcyBzdGFjay4gCgpUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGx5aW5nIHRoYXQgaXQgZGlyZWN0bHkgaW1wYWN0cyB0aGUgb3BlcmF0aW9uIG9mIHRoZSB3aXJlbGVzcyBkcml2ZXIuIE5vdywgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uIGl0c2VsZiB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IGNvbnRleHQgYW5kIHRoZSBzZXZlcml0eSBvZiB0aGUgZmxhdy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyogdGhlIGxpc3QgaXMgdXNlZCBhbmQgKndoeSogdGhpcyBpbml0aWFsaXphdGlvbiB3YXMgaW5jb3JyZWN0LiBUaGlzIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgZGl2ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjU2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEyNTY6XHR2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxuMTI1NzpcdFx0XHRcdFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxuMTI1ODpcdHtcbjEyNTk6XHRcdHVuc2lnbmVkIGludCBydW5hd2F5X2xpbWl0ID0gMTAwO1xuMTI2MDpcdFx0dW5zaWduZWQgbG9uZyBmbGFncztcbjEyNjE6XHRcbjEyNjI6XHRcdGxvY2tkZXBfYXNzZXJ0X2hlbGQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeS5tdHgpO1xuMTI2MzpcdFxuMTI2NDpcdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcbjEyNjU6XHRcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbGlzdCkpIHtcbjEyNjY6XHRcdFx0c3RydWN0IHdpcGh5X3dvcmsgKndrO1xuMTI2NzpcdFxuMTI2ODpcdFx0XHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QsXG4xMjY5Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3Qgd2lwaHlfd29yaywgZW50cnkpO1xuMTI3MDpcdFx0XHRsaXN0X2RlbF9pbml0KFx1MDAyNndrLVx1MDAzZWVudHJ5KTtcbjEyNzE6XHRcdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xuMTI3MjpcdFxuMTI3MzpcdFx0XHR0cmFjZV93aXBoeV93b3JrX3J1bihcdTAwMjZyZGV2LVx1MDAzZXdpcGh5LCB3ayk7XG4xMjc0Olx0XHRcdHdrLVx1MDAzZWZ1bmMoXHUwMDI2cmRldi1cdTAwM2V3aXBoeSwgd2spO1xuMTI3NTpcdFxuMTI3NjpcdFx0XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xuMTI3NzpcdFxuMTI3ODpcdFx0XHRpZiAod2sgPT0gZW5kKVxuMTI3OTpcdFx0XHRcdGJyZWFrO1xuMTI4MDpcdFxuMTI4MTpcdFx0XHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpIHtcbjEyODI6XHRcdFx0XHR3aGlsZSAoIWxpc3RfZW1wdHkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XG4xMjgzOlx0XHRcdFx0XHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QsXG4xMjg0Olx0XHRcdFx0XHRcdFx0ICAgICAgc3RydWN0IHdpcGh5X3dvcmssXG4xMjg1Olx0XHRcdFx0XHRcdFx0ICAgICAgZW50cnkpO1xuMTI4NjpcdFx0XHRcdFx0bGlzdF9kZWxfaW5pdChcdTAwMjZ3ay1cdTAwM2VlbnRyeSk7XG4xMjg3Olx0XHRcdFx0fVxuMTI4ODpcdFx0XHR9XG4xMjg5Olx0XHR9XG4xMjkwOlx0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19sb2NrLCBmbGFncyk7XG4xMjkxOlx0fVxuMTI5MjpcdFxuMTI5MzpcdHZvaWQgd2lwaHlfdW5yZWdpc3RlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5KVxuMTI5NDpcdHtcbjEyOTU6XHRcdHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9IHdpcGh5X3RvX3JkZXYod2lwaHkpO1xuMTI5NjpcdFxuMTI5NzpcdFx0d2FpdF9ldmVudChyZGV2LVx1MDAzZWRldl93YWl0LCAoe1xuMTI5ODpcdFx0XHRpbnQgX19jb3VudDtcbjEyOTk6XHRcdFx0d2lwaHlfbG9jayhcdTAwMjZyZGV2LVx1MDAzZXdpcGh5KTtcbjEzMDA6XHRcdFx0X19jb3VudCA9IHJkZXYtXHUwMDNlb3BlbmNvdW50O1xuMTMwMTpcdFx0XHR3aXBoeV91bmxvY2soXHUwMDI2cmRldi1cdTAwM2V3aXBoeSk7XG4xMzAyOlx0XHRcdF9fY291bnQgPT0gMDsgfSkpO1xuMTMwMzpcdFxuMTMwNDpcdFx0aWYgKHJkZXYtXHUwMDNld2lwaHkucmZraWxsKVxuMTMwNTpcdFx0XHRyZmtpbGxfdW5yZWdpc3RlcihyZGV2LVx1MDAzZXdpcGh5LnJma2lsbCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMjI6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTYyNAoJCQkJCQkJb3V0cHV0OiAxMjQKCQkJCQkJCXRob3VnaHRzOiAxOTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXBwcm9hY2ggdG8gVGVzdGluZyB0aGlzIEtlcm5lbCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBjb3JlIGZ1bmN0aW9uYWxpdHkgYW5kIGVuc3VyZSB0aGF0IHRoaXMgc3BlY2lmaWMgYnVnIOKAkyBhIGxpc3QgY29ycnVwdGlvbi91c2UtYWZ0ZXItZnJlZSBzaXR1YXRpb24g4oCTIGlzIHRydWx5IGFkZHJlc3NlZC4gVGhlIGxvZ2ljIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIHBhdGNoIGRlYWxzIHdpdGggdGhlIGNvcnJlY3QgaGFuZGxpbmcgb2YgZWxlbWVudHMgd2l0aGluIHRoZSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBwcm9jZXNzaW5nIGxpbWl0IGlzIGhpdC4gSW5zdGVhZCBvZiBqdXN0IHJlc2V0dGluZyB0aGUgbGlzdCBoZWFkLCBpdCBub3cgZG9lcyBhIHByb3BlciByZW1vdmFsLgoKR2l2ZW4gdGhhdCBpdCYjMzk7cyBhIGNyaXRpY2FsIGNoYW5nZSB3aXRoaW4gdGhlIHdpcmVsZXNzIGNvcmUsIEkmIzM5O2xsIGxldmVyYWdlIHRoZSBgTUFDODAyMTFfSFdTSU1gIGRyaXZlciBmb3IgdGVzdGluZy4gSXTigJlzIGlkZWFsIGZvciB0aGVzZSBzb3J0cyBvZiBgY2ZnODAyMTFgIGludmVzdGlnYXRpb25zLiBUbyBtYWtlIHN1cmUgdGhlIHRhcmdldCBjb2RlIGlzIGFjdGl2ZSwgSSYjMzk7bGwgZGVmaW5pdGVseSBlbmFibGUgdGhlIGBDRkc4MDIxMWAgY29uZmlndXJhdGlvbiBvcHRpb24uCgpUaGVyZWZvcmUsIGZvciBteSBmdXp6aW5nIHNldHVwLCBJJiMzOTtsbCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLCBhcyB0aGUgZml4IHNvdW5kcyBsaWtlIGl0IHdvdWxkIGJlbmVmaXQgZnJvbSBmdXp6IHRlc3RpbmcsIHNwZWNpZmljYWxseSB0byB0cmlnZ2VyIHdoYXRldmVyIHN0YXRlIHJlc3VsdHMgaW4gdGhlIGNvcnJ1cHRpb24gaW4gdGhlIGZpcnN0IHBsYWNlLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gemVybyBpbiBvbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2Agd2l0aCBgRm9jdXNTeW1ib2xzYC4gQW5kIG9mIGNvdXJzZSwgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgc2V0IHRvIGBDRkc4MDIxMWAgc28gSSYjMzk7bSBub3QgbWlzc2luZyBhbnkgcHJlLXJlcXVpc2l0ZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDIyOjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgYnVnIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBieSBwcm9wZXJseSByZW1vdmluZyBlbGVtZW50cyBmcm9tIGB3aXBoeV93b3JrX2xpc3RgIHdoZW4gdGhlIHJ1bmF3YXkgbGltaXQgaXMgcmVhY2hlZCwgaW5zdGVhZCBvZiBqdXN0IHJlaW5pdGlhbGl6aW5nIHRoZSBsaXN0IGhlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdWJzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGxpc3QgY29ycnVwdGlvbi91c2UtYWZ0ZXItZnJlZSBidWcgaW4gYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGJ5IHByb3Blcmx5IHJlbW92aW5nIGVsZW1lbnRzIGZyb20gYHdpcGh5X3dvcmtfbGlzdGAgd2hlbiB0aGUgcnVuYXdheSBsaW1pdCBpcyByZWFjaGVkLCBpbnN0ZWFkIG9mIGp1c3QgcmVpbml0aWFsaXppbmcgdGhlIGxpc3QgaGVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU0OjM4LjQ0MTE1NTE2NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNTk4NTQ3OTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbGlzdCBjb3JydXB0aW9uL3VzZS1hZnRlci1mcmVlIGJ1ZyBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYnkgcHJvcGVybHkgcmVtb3ZpbmcgZWxlbWVudHMgZnJvbSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBydW5hd2F5IGxpbWl0IGlzIHJlYWNoZWQsIGluc3RlYWQgb2YganVzdCByZWluaXRpYWxpemluZyB0aGUgbGlzdCBoZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3Vic3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NDozOC40NDExNjA5NDVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NDQyNTI1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDE2ZmNiN2RhMzVlZWFjYWE2N2VlODJjYjg5NTNiMTIyYWI0ODlkNjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgNyAyMjo1NDozNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xcbmluZGV4IDNkY2Y2M2IwNGM0MWRiLi5hN2UwMTFlZDQ1NWRiNSAxMDA2NDRcXG4tLS0gYS9uZXQvd2lyZWxlc3MvY29yZS5jXFxuKysrIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xcbkBAIC0xMjc4LDggKzEyNzgsMTQgQEAgdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4gXFx0XFx0aWYgKHdrID09IGVuZClcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcbi1cXHRcXHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpXFxuLVxcdFxcdFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpO1xcbitcXHRcXHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpIHtcXG4rXFx0XFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XFxuK1xcdFxcdFxcdFxcdHdrID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cmRldi1cXHUwMDNld2lwaHlfd29ya19saXN0LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgd2lwaHlfd29yayxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgZW50cnkpO1xcbitcXHRcXHRcXHRcXHRsaXN0X2RlbF9pbml0KFxcdTAwMjZ3ay1cXHUwMDNlZW50cnkpO1xcbitcXHRcXHRcXHR9XFxuK1xcdFxcdH1cXG4gXFx0fVxcbiBcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NDozOC44ODYzODM5NDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMTUzMzAzMDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbGlzdCBjb3JydXB0aW9uL3VzZS1hZnRlci1mcmVlIGJ1ZyBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYnkgcHJvcGVybHkgcmVtb3ZpbmcgZWxlbWVudHMgZnJvbSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBydW5hd2F5IGxpbWl0IGlzIHJlYWNoZWQsIGluc3RlYWQgb2YganVzdCByZWluaXRpYWxpemluZyB0aGUgbGlzdCBoZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3Vic3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDE2ZmNiN2RhMzVlZWFjYWE2N2VlODJjYjg5NTNiMTIyYWI0ODlkNjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCA3IDIyOjU0OjM3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL2NvcmUuYyBiL25ldC93aXJlbGVzcy9jb3JlLmNcbmluZGV4IDNkY2Y2M2IwNGM0MWRiLi5hN2UwMTFlZDQ1NWRiNSAxMDA2NDRcbi0tLSBhL25ldC93aXJlbGVzcy9jb3JlLmNcbisrKyBiL25ldC93aXJlbGVzcy9jb3JlLmNcbkBAIC0xMjc4LDggKzEyNzgsMTQgQEAgdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbiBcdFx0aWYgKHdrID09IGVuZClcbiBcdFx0XHRicmVhaztcbiBcbi1cdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKVxuLVx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0KTtcbitcdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKSB7XG4rXHRcdFx0d2hpbGUgKCFsaXN0X2VtcHR5KFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0KSkge1xuK1x0XHRcdFx0d2sgPSBsaXN0X2ZpcnN0X2VudHJ5KFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0LFxuK1x0XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB3aXBoeV93b3JrLFxuK1x0XHRcdFx0XHRcdCAgICAgIGVudHJ5KTtcbitcdFx0XHRcdGxpc3RfZGVsX2luaXQoXHUwMDI2d2stXHUwMDNlZW50cnkpO1xuK1x0XHRcdH1cbitcdFx0fVxuIFx0fVxuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU0OjM4Ljg4NjM4NjI3N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNDU2ODIzMTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgQ29yZSBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBpbiBgbmV0L3dpcmVsZXNzL2NvcmUuY2AuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJBaCwgYW5vdGhlciB3aXJlbGVzcyBjb3JlIGNoYW5nZSwgbGlrZWx5IHBlcmZvcm1hbmNlIG9yIGEgYnVnIGZpeFwiLiBOb3csIHRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBtb2RpZmljYXRpb24uIEluc3RlYWQgb2YganVzdCBpbml0aWFsaXppbmcgdGhlIHdvcmsgbGlzdCB3aXRoIGBJTklUX0xJU1RfSEVBRGAsIHRoZSBhdXRob3IgaXMgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGxpc3QgYW5kIHVzaW5nIGBsaXN0X2RlbF9pbml0YCBvbiBlYWNoIGVudHJ5LiBUaGF04oCZcyBhIGNydWNpYWwgZGlzdGluY3Rpb24uIEl0IGltcGxpZXMgdGhleSBhcmUgYWN0aXZlbHkgKmNsZWFuaW5nIHVwKiB0aGUgbGlzdC4gVGhpcyBpcyBtb3JlIHRoYW4ganVzdCBpbml0aWFsaXppbmc7IGl0J3MgYSByZW1vdmFsIHByb2Nlc3MuXG5cblRoaW5raW5nIHRocm91Z2ggaXQsIHRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGltcHJvdmVtZW50LiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gbGlrZWx5IGhhZCBsaW5nZXJpbmcgcG9pbnRlcnMsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdXNlLWFmdGVyLWZyZWUgb3IgbGlzdCBjb3JydXB0aW9uIGVycm9ycywgbmFzdHksIGRpZmZpY3VsdCBidWdzIHRvIHRyYWNrIGRvd24uIFRoaXMgcGF0Y2ggaXMgYWltZWQgYXQgZXhwbGljaXRseSBjbGVhcmluZyB0aGUgZW50cmllcyBiZWZvcmUgdGhleSdyZSByZS11c2VkIG9yLCBwb3RlbnRpYWxseSwgd2hlbiB0aGUgd2lwaHkgaXMgc2h1dCBkb3duLiBNeSBuZXh0IHN0ZXA/IEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoZSBjb2RlLiBMZXQncyB0cmFjZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYW5kIHNlZSAqd2hlcmUqIGl0J3MgY2FsbGVkIGFuZCAqd2hhdCogaXQgZG9lcy4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbCBwYXRocyBhbmQgdGhlIGNvbnRleHQgaXMgZXNzZW50aWFsIHRvIGdyYXNwIHRoZSBmdWxsIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZpeCwgYW5kIGhvdyBjcml0aWNhbCBpdCBpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkyMywiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU0OjUxLjM0MzIxMjE0OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDAzMzg0OTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL2NvcmUuYz0xMjU0PUVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1NS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEyNTY6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEyNTctXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYz0xMjkzPXZvaWQgd2lwaHlfdW5yZWdpc3RlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5KVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzM2LVxcdC8qIHN1cmVseSBub3RoaW5nIGlzIHJlYWNoYWJsZSBub3csIGNsZWFuIHVwIHdvcmsgKi9cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEzMzc6XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEzMzgtXFx0d2lwaHlfdW5sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE5MTM9dm9pZCB3aXBoeV93b3JrX2ZsdXNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTI1LVxcdGlmIChydW4pXFxubmV0L3dpcmVsZXNzL2NvcmUuYzoxOTI2OlxcdFxcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgd29yayk7XFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTI3LX1cXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmg9NDY5PXZvaWQgY2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmg6NDcwOnZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL2NvcmUuaC00NzEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKTtcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jPTk0PXN0YXRpYyBpbnQgd2lwaHlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuLS1cXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDYtXFx0XFx0c2NvcGVkX2d1YXJkKHdpcGh5LCBcXHUwMDI2cmRldi1cXHUwMDNld2lwaHkpIHtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMDc6XFx0XFx0XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDgtXFx0XFx0XFx0aWYgKHJkZXYtXFx1MDAzZW9wcy1cXHUwMDNlc3VzcGVuZClcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMC1cXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3JkZXZfZXZlbnRzKHJkZXYpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEyMTpcXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMi1cXHRcXHRpZiAocmRldi1cXHUwMDNlb3BzLVxcdTAwM2VzdXNwZW5kKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NDo1NC4zNDY2MDQ2NTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTM2Nzc3NTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgY2ZnODAyMTEgQ29yZSdzIFdvcmsgUHJvY2Vzc2luZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGNmZzgwMjExYCBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGZ1bmN0aW9uIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBob3cgaXQncyBiZWluZyB1c2VkLiBJIHNlZSB0aGF0IGl0J3MgY2FsbGVkIGluIGEgZmV3IGNyaXRpY2FsIHBsYWNlczogYHdpcGh5X3VucmVnaXN0ZXJgLCBgd2lwaHlfd29ya19mbHVzaGAsIGFuZCBgd2lwaHlfc3VzcGVuZGAuIFRoYXQgc3VnZ2VzdHMgaXQncyBjZW50cmFsIHRvIGhhbmRsaW5nIHdvcmsgaXRlbXMgcmVsYXRlZCB0byB0aGUgV2ktRmkgUEhZIGFic3RyYWN0aW9uIGxheWVyLCB3aGljaCBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGBjZmc4MDIxMWAgY29yZSdzIHJvbGUuXG5cbk5vdywgYmVjYXVzZSBJ4oCZbSBkZWFsaW5nIHdpdGggY29uZmlndXJhdGlvbiBhc3BlY3RzIG9mIHRoZSBrZXJuZWwsIEkgd2FudCB0byBjb25maXJtIHRoYXQgdGhlcmUgaXNuJ3QgYSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbiBpbmZsdWVuY2luZyB0aGlzIGJlaGF2aW9yLiBJdCBtYWtlcyBzZW5zZSB0byBjaGVjayBgbmV0L3dpcmVsZXNzL0tjb25maWdgLiBJJ2xsIGxvb2sgZm9yIGFueSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBgY2ZnODAyMTFgLCBsaWtlIHRoZSBtYWluIGBDRkc4MDIxMWAgY29uZmlnLCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBmbGFncyBJIG1pZ2h0IGhhdmUgdG8gY29uc2lkZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNDUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMjI6NTQ6NTcuODgzMzg0MTUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyMjcxMTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBDRkc4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMjI6NTQ6NTcuOTU1NjYyNjgzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA0NDkyMTUzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBDb3JlIEJ1ZyBGaXgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZyBhIGJ1ZyB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uLiBHb29kLCB0aGF0IG1ha2VzIHNlbnNlLiBJdCBsb29rcyBsaWtlIHRoaXMgY29kZSBwYXRoIGlzIG9ubHkgYWN0aXZlIHdoZW4gYENPTkZJR19DRkc4MDIxMWAgaXMgZW5hYmxlZCwgd2hpY2ggaXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhlIENGRzgwMjExIHdpcmVsZXNzIHN1YnN5c3RlbS4gS25vd2luZyB0aGF0IGBDRkc4MDIxMWAgaXMgdGhlIGtleSBlbmFibGVzIG1lIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBpbXBhY3QgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlLlxuXG5UaGUgY29yZSBvZiB0aGUgaXNzdWUgYXBwZWFycyB0byByZXZvbHZlIGFyb3VuZCBpbXByb3BlciBsaXN0IG1hbmFnZW1lbnQgd2l0aGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gSXQgc2VlbXMgdGhhdCBpbnN0ZWFkIG9mIHByb3Blcmx5IGhhbmRsaW5nIGxpc3QgZWxlbWVudHMgKHByZXN1bWFibHkgcmVtb3ZpbmcgdGhlbSksIHRoZSBjb2RlIHdhcyB1c2luZyBgSU5JVF9MSVNUX0hFQURgIGluYXBwcm9wcmlhdGVseSB3aGVuIHRoZSBgcnVuYXdheV9saW1pdGAgaGl0cyB6ZXJvLiBUaGF0J3MgYSBjbGFzc2ljIGVycm9yLCBhbmQgaXQgY2FuIGRlZmluaXRlbHkgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdW5leHBlY3RlZCBiZWhhdmlvciBpbiB0aGUgd2lyZWxlc3Mgc3RhY2suIFxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGx5aW5nIHRoYXQgaXQgZGlyZWN0bHkgaW1wYWN0cyB0aGUgb3BlcmF0aW9uIG9mIHRoZSB3aXJlbGVzcyBkcml2ZXIuIE5vdywgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uIGl0c2VsZiB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IGNvbnRleHQgYW5kIHRoZSBzZXZlcml0eSBvZiB0aGUgZmxhdy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyogdGhlIGxpc3QgaXMgdXNlZCBhbmQgKndoeSogdGhpcyBpbml0aWFsaXphdGlvbiB3YXMgaW5jb3JyZWN0LiBUaGlzIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgZGl2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMzNCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NTowNS4wMDA1ODY2N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NzU4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvd2lyZWxlc3MvY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyNTYsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEyNTY6XFx0dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4xMjU3OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHdpcGh5X3dvcmsgKmVuZClcXG4xMjU4OlxcdHtcXG4xMjU5OlxcdFxcdHVuc2lnbmVkIGludCBydW5hd2F5X2xpbWl0ID0gMTAwO1xcbjEyNjA6XFx0XFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4xMjYxOlxcdFxcbjEyNjI6XFx0XFx0bG9ja2RlcF9hc3NlcnRfaGVsZChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHkubXR4KTtcXG4xMjYzOlxcdFxcbjEyNjQ6XFx0XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xcbjEyNjU6XFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XFxuMTI2NjpcXHRcXHRcXHRzdHJ1Y3Qgd2lwaHlfd29yayAqd2s7XFxuMTI2NzpcXHRcXG4xMjY4OlxcdFxcdFxcdHdrID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cmRldi1cXHUwMDNld2lwaHlfd29ya19saXN0LFxcbjEyNjk6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHdpcGh5X3dvcmssIGVudHJ5KTtcXG4xMjcwOlxcdFxcdFxcdGxpc3RfZGVsX2luaXQoXFx1MDAyNndrLVxcdTAwM2VlbnRyeSk7XFxuMTI3MTpcXHRcXHRcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcXG4xMjcyOlxcdFxcbjEyNzM6XFx0XFx0XFx0dHJhY2Vfd2lwaHlfd29ya19ydW4oXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5LCB3ayk7XFxuMTI3NDpcXHRcXHRcXHR3ay1cXHUwMDNlZnVuYyhcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIHdrKTtcXG4xMjc1OlxcdFxcbjEyNzY6XFx0XFx0XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xcbjEyNzc6XFx0XFxuMTI3ODpcXHRcXHRcXHRpZiAod2sgPT0gZW5kKVxcbjEyNzk6XFx0XFx0XFx0XFx0YnJlYWs7XFxuMTI4MDpcXHRcXG4xMjgxOlxcdFxcdFxcdGlmIChXQVJOX09OKC0tcnVuYXdheV9saW1pdCA9PSAwKSkge1xcbjEyODI6XFx0XFx0XFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XFxuMTI4MzpcXHRcXHRcXHRcXHRcXHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbGlzdCxcXG4xMjg0OlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCB3aXBoeV93b3JrLFxcbjEyODU6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgZW50cnkpO1xcbjEyODY6XFx0XFx0XFx0XFx0XFx0bGlzdF9kZWxfaW5pdChcXHUwMDI2d2stXFx1MDAzZWVudHJ5KTtcXG4xMjg3OlxcdFxcdFxcdFxcdH1cXG4xMjg4OlxcdFxcdFxcdH1cXG4xMjg5OlxcdFxcdH1cXG4xMjkwOlxcdFxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xcbjEyOTE6XFx0fVxcbjEyOTI6XFx0XFxuMTI5MzpcXHR2b2lkIHdpcGh5X3VucmVnaXN0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSlcXG4xMjk0OlxcdHtcXG4xMjk1OlxcdFxcdHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9IHdpcGh5X3RvX3JkZXYod2lwaHkpO1xcbjEyOTY6XFx0XFxuMTI5NzpcXHRcXHR3YWl0X2V2ZW50KHJkZXYtXFx1MDAzZWRldl93YWl0LCAoe1xcbjEyOTg6XFx0XFx0XFx0aW50IF9fY291bnQ7XFxuMTI5OTpcXHRcXHRcXHR3aXBoeV9sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuMTMwMDpcXHRcXHRcXHRfX2NvdW50ID0gcmRldi1cXHUwMDNlb3BlbmNvdW50O1xcbjEzMDE6XFx0XFx0XFx0d2lwaHlfdW5sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuMTMwMjpcXHRcXHRcXHRfX2NvdW50ID09IDA7IH0pKTtcXG4xMzAzOlxcdFxcbjEzMDQ6XFx0XFx0aWYgKHJkZXYtXFx1MDAzZXdpcGh5LnJma2lsbClcXG4xMzA1OlxcdFxcdFxcdHJma2lsbF91bnJlZ2lzdGVyKHJkZXYtXFx1MDAzZXdpcGh5LnJma2lsbCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU1OjA1LjAwMDc0NzAxOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5NTAxMDI5NDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXBwcm9hY2ggdG8gVGVzdGluZyB0aGlzIEtlcm5lbCBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBuZWVkIHRvIHZlcmlmeSBpdHMgY29yZSBmdW5jdGlvbmFsaXR5IGFuZCBlbnN1cmUgdGhhdCB0aGlzIHNwZWNpZmljIGJ1ZyDigJMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgc2l0dWF0aW9uIOKAkyBpcyB0cnVseSBhZGRyZXNzZWQuIFRoZSBsb2dpYyBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCBkZWFscyB3aXRoIHRoZSBjb3JyZWN0IGhhbmRsaW5nIG9mIGVsZW1lbnRzIHdpdGhpbiB0aGUgYHdpcGh5X3dvcmtfbGlzdGAgd2hlbiB0aGUgcHJvY2Vzc2luZyBsaW1pdCBpcyBoaXQuIEluc3RlYWQgb2YganVzdCByZXNldHRpbmcgdGhlIGxpc3QgaGVhZCwgaXQgbm93IGRvZXMgYSBwcm9wZXIgcmVtb3ZhbC5cblxuR2l2ZW4gdGhhdCBpdCdzIGEgY3JpdGljYWwgY2hhbmdlIHdpdGhpbiB0aGUgd2lyZWxlc3MgY29yZSwgSSdsbCBsZXZlcmFnZSB0aGUgYE1BQzgwMjExX0hXU0lNYCBkcml2ZXIgZm9yIHRlc3RpbmcuIEl04oCZcyBpZGVhbCBmb3IgdGhlc2Ugc29ydHMgb2YgYGNmZzgwMjExYCBpbnZlc3RpZ2F0aW9ucy4gVG8gbWFrZSBzdXJlIHRoZSB0YXJnZXQgY29kZSBpcyBhY3RpdmUsIEknbGwgZGVmaW5pdGVseSBlbmFibGUgdGhlIGBDRkc4MDIxMWAgY29uZmlndXJhdGlvbiBvcHRpb24uXG5cblRoZXJlZm9yZSwgZm9yIG15IGZ1enppbmcgc2V0dXAsIEknbGwgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYCwgYXMgdGhlIGZpeCBzb3VuZHMgbGlrZSBpdCB3b3VsZCBiZW5lZml0IGZyb20gZnV6eiB0ZXN0aW5nLCBzcGVjaWZpY2FsbHkgdG8gdHJpZ2dlciB3aGF0ZXZlciBzdGF0ZSByZXN1bHRzIGluIHRoZSBjb3JydXB0aW9uIGluIHRoZSBmaXJzdCBwbGFjZS4gSSdsbCBtYWtlIHN1cmUgdG8gemVybyBpbiBvbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2Agd2l0aCBgRm9jdXNTeW1ib2xzYC4gQW5kIG9mIGNvdXJzZSwgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgc2V0IHRvIGBDRkc4MDIxMWAgc28gSSdtIG5vdCBtaXNzaW5nIGFueSBwcmUtcmVxdWlzaXRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYyNCwiT3V0cHV0VG9rZW5zIjoxMjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NToxMS45NTA4NTIxOTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODgyNjM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgYnVnIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBieSBwcm9wZXJseSByZW1vdmluZyBlbGVtZW50cyBmcm9tIGB3aXBoeV93b3JrX2xpc3RgIHdoZW4gdGhlIHJ1bmF3YXkgbGltaXQgaXMgcmVhY2hlZCwgaW5zdGVhZCBvZiBqdXN0IHJlaW5pdGlhbGl6aW5nIHRoZSBsaXN0IGhlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgYnVnIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBieSBwcm9wZXJseSByZW1vdmluZyBlbGVtZW50cyBmcm9tIGB3aXBoeV93b3JrX2xpc3RgIHdoZW4gdGhlIHJ1bmF3YXkgbGltaXQgaXMgcmVhY2hlZCwgaW5zdGVhZCBvZiBqdXN0IHJlaW5pdGlhbGl6aW5nIHRoZSBsaXN0IGhlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-07 22:31:45 +0000 UTC FinishedAt: 2026-07-07 22:55:14 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211" ], "series_id": "1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cfg80211_process_wiphy_works" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA3IDIyOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGxpc3QgY29ycnVwdGlvbi91c2UtYWZ0ZXItZnJlZSBidWcgaW4gYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGJ5IHByb3Blcmx5IHJlbW92aW5nIGVsZW1lbnRzIGZyb20gYHdpcGh5X3dvcmtfbGlzdGAgd2hlbiB0aGUgcnVuYXdheSBsaW1pdCBpcyByZWFjaGVkLCBpbnN0ZWFkIG9mIGp1c3QgcmVpbml0aWFsaXppbmcgdGhlIGxpc3QgaGVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDE2ZmNiN2RhMzVlZWFjYWE2N2VlODJjYjg5NTNiMTIyYWI0ODlkNjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCA3IDIyOjU0OjM3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9jb3JlLmMgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5pbmRleCAzZGNmNjNiMDRjNDFkYi4uYTdlMDExZWQ0NTVkYjUgMTAwNjQ0XG4tLS0gYS9uZXQvd2lyZWxlc3MvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5AQCAtMTI3OCw4ICYjNDM7MTI3OCwxNCBAQCB2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxuIFx0XHRpZiAod2sgPT0gZW5kKVxuIFx0XHRcdGJyZWFrO1xuIFxuLVx0XHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpXG4tXHRcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QpO1xuJiM0MztcdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKSB7XG4mIzQzO1x0XHRcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbGlzdCkpIHtcbiYjNDM7XHRcdFx0XHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QsXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB3aXBoeV93b3JrLFxuJiM0MztcdFx0XHRcdFx0XHQgICAgICBlbnRyeSk7XG4mIzQzO1x0XHRcdFx0bGlzdF9kZWxfaW5pdChcdTAwMjZ3ay1cdTAwM2VlbnRyeSk7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdH1cbiBcdH1cbiBcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMjI6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbGlzdCBjb3JydXB0aW9uL3VzZS1hZnRlci1mcmVlIGJ1ZyBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYnkgcHJvcGVybHkgcmVtb3ZpbmcgZWxlbWVudHMgZnJvbSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBydW5hd2F5IGxpbWl0IGlzIHJlYWNoZWQsIGluc3RlYWQgb2YganVzdCByZWluaXRpYWxpemluZyB0aGUgbGlzdCBoZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAxNmZjYjdkYTM1ZWVhY2FhNjdlZTgyY2I4OTUzYjEyMmFiNDg5ZDY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgNyAyMjo1NDozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9jb3JlLmMgYi9uZXQvd2lyZWxlc3MvY29yZS5jCmluZGV4IDNkY2Y2M2IwNGM0MWRiLi5hN2UwMTFlZDQ1NWRiNSAxMDA2NDQKLS0tIGEvbmV0L3dpcmVsZXNzL2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvY29yZS5jCkBAIC0xMjc4LDggJiM0MzsxMjc4LDE0IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsCiAJCWlmICh3ayA9PSBlbmQpCiAJCQlicmVhazsKIAotCQlpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpCi0JCQlJTklUX0xJU1RfSEVBRCgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbGlzdCk7CiYjNDM7CQlpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpIHsKJiM0MzsJCQl3aGlsZSAoIWxpc3RfZW1wdHkoJmFtcDtyZGV2LSZndDt3aXBoeV93b3JrX2xpc3QpKSB7CiYjNDM7CQkJCXdrID0gbGlzdF9maXJzdF9lbnRyeSgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbGlzdCwKJiM0MzsJCQkJCQkgICAgICBzdHJ1Y3Qgd2lwaHlfd29yaywKJiM0MzsJCQkJCQkgICAgICBlbnRyeSk7CiYjNDM7CQkJCWxpc3RfZGVsX2luaXQoJmFtcDt3ay0mZ3Q7ZW50cnkpOwomIzQzOwkJCX0KJiM0MzsJCX0KIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbG9jaywgZmxhZ3MpOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIzCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgQ29yZSBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZyBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7QWgsIGFub3RoZXIgd2lyZWxlc3MgY29yZSBjaGFuZ2UsIGxpa2VseSBwZXJmb3JtYW5jZSBvciBhIGJ1ZyBmaXgmIzM0Oy4gTm93LCB0aGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgbW9kaWZpY2F0aW9uLiBJbnN0ZWFkIG9mIGp1c3QgaW5pdGlhbGl6aW5nIHRoZSB3b3JrIGxpc3Qgd2l0aCBgSU5JVF9MSVNUX0hFQURgLCB0aGUgYXV0aG9yIGlzIGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBsaXN0IGFuZCB1c2luZyBgbGlzdF9kZWxfaW5pdGAgb24gZWFjaCBlbnRyeS4gVGhhdOKAmXMgYSBjcnVjaWFsIGRpc3RpbmN0aW9uLiBJdCBpbXBsaWVzIHRoZXkgYXJlIGFjdGl2ZWx5ICpjbGVhbmluZyB1cCogdGhlIGxpc3QuIFRoaXMgaXMgbW9yZSB0aGFuIGp1c3QgaW5pdGlhbGl6aW5nOyBpdCYjMzk7cyBhIHJlbW92YWwgcHJvY2Vzcy4KClRoaW5raW5nIHRocm91Z2ggaXQsIHRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGltcHJvdmVtZW50LiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gbGlrZWx5IGhhZCBsaW5nZXJpbmcgcG9pbnRlcnMsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdXNlLWFmdGVyLWZyZWUgb3IgbGlzdCBjb3JydXB0aW9uIGVycm9ycywgbmFzdHksIGRpZmZpY3VsdCBidWdzIHRvIHRyYWNrIGRvd24uIFRoaXMgcGF0Y2ggaXMgYWltZWQgYXQgZXhwbGljaXRseSBjbGVhcmluZyB0aGUgZW50cmllcyBiZWZvcmUgdGhleSYjMzk7cmUgcmUtdXNlZCBvciwgcG90ZW50aWFsbHksIHdoZW4gdGhlIHdpcGh5IGlzIHNodXQgZG93bi4gTXkgbmV4dCBzdGVwPyBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgY29kZS4gTGV0JiMzOTtzIHRyYWNlIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBhbmQgc2VlICp3aGVyZSogaXQmIzM5O3MgY2FsbGVkIGFuZCAqd2hhdCogaXQgZG9lcy4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbCBwYXRocyBhbmQgdGhlIGNvbnRleHQgaXMgZXNzZW50aWFsIHRvIGdyYXNwIHRoZSBmdWxsIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZpeCwgYW5kIGhvdyBjcml0aWNhbCBpdCBpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9jb3JlLmM9MTI1ND1FWFBPUlRfU1lNQk9MKHdpcGh5X3Jma2lsbF9zdGFydF9wb2xsaW5nKTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1NS1cbm5ldC93aXJlbGVzcy9jb3JlLmM6MTI1Njp2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMjU3LVx0XHRcdFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmM9MTI5Mz12b2lkIHdpcGh5X3VucmVnaXN0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSlcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEzMzYtXHQvKiBzdXJlbHkgbm90aGluZyBpcyByZWFjaGFibGUgbm93LCBjbGVhbiB1cCB3b3JrICovXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEzMzc6XHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzM4LVx0d2lwaHlfdW5sb2NrKFx1MDAyNnJkZXYtXHUwMDNld2lwaHkpO1xuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmM9MTkxMz12b2lkIHdpcGh5X3dvcmtfZmx1c2goc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndvcmspXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTI1LVx0aWYgKHJ1bilcbm5ldC93aXJlbGVzcy9jb3JlLmM6MTkyNjpcdFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCB3b3JrKTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTkyNy19XG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuaD00Njk9dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3JkZXZfZXZlbnRzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldik7XG5uZXQvd2lyZWxlc3MvY29yZS5oOjQ3MDp2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxubmV0L3dpcmVsZXNzL2NvcmUuaC00NzEtXHRcdFx0XHQgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpO1xuLS1cbm5ldC93aXJlbGVzcy9zeXNmcy5jPTk0PXN0YXRpYyBpbnQgd2lwaHlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxubmV0L3dpcmVsZXNzL3N5c2ZzLmMtMTA2LVx0XHRzY29wZWRfZ3VhcmQod2lwaHksIFx1MDAyNnJkZXYtXHUwMDNld2lwaHkpIHtcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEwNzpcdFx0XHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xubmV0L3dpcmVsZXNzL3N5c2ZzLmMtMTA4LVx0XHRcdGlmIChyZGV2LVx1MDAzZW9wcy1cdTAwM2VzdXNwZW5kKVxuLS1cbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMC1cdFx0Y2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhyZGV2KTtcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEyMTpcdFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMi1cdFx0aWYgKHJkZXYtXHUwMDNlb3BzLVx1MDAzZXN1c3BlbmQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMjI6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA0NQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGNmZzgwMjExIENvcmUmIzM5O3MgV29yayBQcm9jZXNzaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBjZmc4MDIxMWAgY29kZSwgc3BlY2lmaWNhbGx5IHRoZSBmdW5jdGlvbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIGl0cyBzY29wZSBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuIEkgc2VlIHRoYXQgaXQmIzM5O3MgY2FsbGVkIGluIGEgZmV3IGNyaXRpY2FsIHBsYWNlczogYHdpcGh5X3VucmVnaXN0ZXJgLCBgd2lwaHlfd29ya19mbHVzaGAsIGFuZCBgd2lwaHlfc3VzcGVuZGAuIFRoYXQgc3VnZ2VzdHMgaXQmIzM5O3MgY2VudHJhbCB0byBoYW5kbGluZyB3b3JrIGl0ZW1zIHJlbGF0ZWQgdG8gdGhlIFdpLUZpIFBIWSBhYnN0cmFjdGlvbiBsYXllciwgd2hpY2ggaXMgY29uc2lzdGVudCB3aXRoIHRoZSBgY2ZnODAyMTFgIGNvcmUmIzM5O3Mgcm9sZS4KCk5vdywgYmVjYXVzZSBJ4oCZbSBkZWFsaW5nIHdpdGggY29uZmlndXJhdGlvbiBhc3BlY3RzIG9mIHRoZSBrZXJuZWwsIEkgd2FudCB0byBjb25maXJtIHRoYXQgdGhlcmUgaXNuJiMzOTt0IGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb24gaW5mbHVlbmNpbmcgdGhpcyBiZWhhdmlvci4gSXQgbWFrZXMgc2Vuc2UgdG8gY2hlY2sgYG5ldC93aXJlbGVzcy9LY29uZmlnYC4gSSYjMzk7bGwgbG9vayBmb3IgYW55IGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbnMsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGBjZmc4MDIxMWAsIGxpa2UgdGhlIG1haW4gYENGRzgwMjExYCBjb25maWcsIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGZsYWdzIEkgbWlnaHQgaGF2ZSB0byBjb25zaWRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0ZHODAyMTEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTYtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4LVx0dHJpc3RhdGUgXCYjMzQ7Y2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctNTEtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01My1cdGJvb2wgXCYjMzQ7ZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxubmV0L3dpcmVsZXNzL0tjb25maWc6Njg6Y29uZmlnIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xubmV0L3dpcmVsZXNzL0tjb25maWctNjktXHRib29sIFwmIzM0O2NmZzgwMjExIGNlcnRpZmljYXRpb24gb251c1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTg4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6ODk6Y29uZmlnIENGRzgwMjExX1JFUVVJUkVfU0lHTkVEX1JFR0RCXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cdGJvb2wgXCYjMzQ7cmVxdWlyZSByZWdkYiBzaWduYXR1cmVcJiMzNDsgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctOTgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMDAtXHRib29sIFwmIzM0O2FsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcJiMzNDsgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTExOmNvbmZpZyBDRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTExMi1cdHN0cmluZyBcJiMzNDthZGRpdGlvbmFsIHJlZ2RiIGtleSBkaXJlY3RvcnlcJiMzNDsgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTIxLVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTIyOmNvbmZpZyBDRkc4MDIxMV9SRUdfQ0VMTFVMQVJfSElOVFNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgcmVndWxhdG9yeSBzdXBwb3J0IGZvciBjZWxsdWxhciBiYXNlIHN0YXRpb24gaGludHNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMzQtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxubmV0L3dpcmVsZXNzL0tjb25maWctMTM2LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTU5OmNvbmZpZyBDRkc4MDIxMV9ERUZBVUxUX1BTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjAtXHRib29sIFwmIzM0O2VuYWJsZSBwb3dlcnNhdmUgYnkgZGVmYXVsdFwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE2OTpjb25maWcgQ0ZHODAyMTFfREVCVUdGU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBEZWJ1Z0ZTIGVudHJpZXNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNzYtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTc4LVx0Ym9vbCBcJiMzNDtzdXBwb3J0IENSREFcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTg3OmNvbmZpZyBDRkc4MDIxMV9XRVhUXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xODgtXHRib29sIFwmIzM0O2NmZzgwMjExIHdpcmVsZXNzIGV4dGVuc2lvbnMgY29tcGF0aWJpbGl0eVwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE5My1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE5NDpjb25maWcgQ0ZHODAyMTFfS1VOSVRfVEVTVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVx0dHJpc3RhdGUgXCYjMzQ7S1VuaXQgdGVzdHMgZm9yIGNmZzgwMjExXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzM0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIENvcmUgQnVnIEZpeCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZyBhIGJ1ZyB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uLiBHb29kLCB0aGF0IG1ha2VzIHNlbnNlLiBJdCBsb29rcyBsaWtlIHRoaXMgY29kZSBwYXRoIGlzIG9ubHkgYWN0aXZlIHdoZW4gYENPTkZJR19DRkc4MDIxMWAgaXMgZW5hYmxlZCwgd2hpY2ggaXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhlIENGRzgwMjExIHdpcmVsZXNzIHN1YnN5c3RlbS4gS25vd2luZyB0aGF0IGBDRkc4MDIxMWAgaXMgdGhlIGtleSBlbmFibGVzIG1lIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBpbXBhY3QgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlLgoKVGhlIGNvcmUgb2YgdGhlIGlzc3VlIGFwcGVhcnMgdG8gcmV2b2x2ZSBhcm91bmQgaW1wcm9wZXIgbGlzdCBtYW5hZ2VtZW50IHdpdGhpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEl0IHNlZW1zIHRoYXQgaW5zdGVhZCBvZiBwcm9wZXJseSBoYW5kbGluZyBsaXN0IGVsZW1lbnRzIChwcmVzdW1hYmx5IHJlbW92aW5nIHRoZW0pLCB0aGUgY29kZSB3YXMgdXNpbmcgYElOSVRfTElTVF9IRUFEYCBpbmFwcHJvcHJpYXRlbHkgd2hlbiB0aGUgYHJ1bmF3YXlfbGltaXRgIGhpdHMgemVyby4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgZXJyb3IsIGFuZCBpdCBjYW4gZGVmaW5pdGVseSBsZWFkIHRvIG1lbW9yeSBsZWFrcyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yIGluIHRoZSB3aXJlbGVzcyBzdGFjay4gCgpUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGx5aW5nIHRoYXQgaXQgZGlyZWN0bHkgaW1wYWN0cyB0aGUgb3BlcmF0aW9uIG9mIHRoZSB3aXJlbGVzcyBkcml2ZXIuIE5vdywgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uIGl0c2VsZiB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IGNvbnRleHQgYW5kIHRoZSBzZXZlcml0eSBvZiB0aGUgZmxhdy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyogdGhlIGxpc3QgaXMgdXNlZCBhbmQgKndoeSogdGhpcyBpbml0aWFsaXphdGlvbiB3YXMgaW5jb3JyZWN0LiBUaGlzIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgZGl2ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAyMjo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjU2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEyNTY6XHR2b2lkIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LFxuMTI1NzpcdFx0XHRcdFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxuMTI1ODpcdHtcbjEyNTk6XHRcdHVuc2lnbmVkIGludCBydW5hd2F5X2xpbWl0ID0gMTAwO1xuMTI2MDpcdFx0dW5zaWduZWQgbG9uZyBmbGFncztcbjEyNjE6XHRcbjEyNjI6XHRcdGxvY2tkZXBfYXNzZXJ0X2hlbGQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeS5tdHgpO1xuMTI2MzpcdFxuMTI2NDpcdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcbjEyNjU6XHRcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbGlzdCkpIHtcbjEyNjY6XHRcdFx0c3RydWN0IHdpcGh5X3dvcmsgKndrO1xuMTI2NzpcdFxuMTI2ODpcdFx0XHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QsXG4xMjY5Olx0XHRcdFx0XHQgICAgICBzdHJ1Y3Qgd2lwaHlfd29yaywgZW50cnkpO1xuMTI3MDpcdFx0XHRsaXN0X2RlbF9pbml0KFx1MDAyNndrLVx1MDAzZWVudHJ5KTtcbjEyNzE6XHRcdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xuMTI3MjpcdFxuMTI3MzpcdFx0XHR0cmFjZV93aXBoeV93b3JrX3J1bihcdTAwMjZyZGV2LVx1MDAzZXdpcGh5LCB3ayk7XG4xMjc0Olx0XHRcdHdrLVx1MDAzZWZ1bmMoXHUwMDI2cmRldi1cdTAwM2V3aXBoeSwgd2spO1xuMTI3NTpcdFxuMTI3NjpcdFx0XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xuMTI3NzpcdFxuMTI3ODpcdFx0XHRpZiAod2sgPT0gZW5kKVxuMTI3OTpcdFx0XHRcdGJyZWFrO1xuMTI4MDpcdFxuMTI4MTpcdFx0XHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpIHtcbjEyODI6XHRcdFx0XHR3aGlsZSAoIWxpc3RfZW1wdHkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XG4xMjgzOlx0XHRcdFx0XHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QsXG4xMjg0Olx0XHRcdFx0XHRcdFx0ICAgICAgc3RydWN0IHdpcGh5X3dvcmssXG4xMjg1Olx0XHRcdFx0XHRcdFx0ICAgICAgZW50cnkpO1xuMTI4NjpcdFx0XHRcdFx0bGlzdF9kZWxfaW5pdChcdTAwMjZ3ay1cdTAwM2VlbnRyeSk7XG4xMjg3Olx0XHRcdFx0fVxuMTI4ODpcdFx0XHR9XG4xMjg5Olx0XHR9XG4xMjkwOlx0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19sb2NrLCBmbGFncyk7XG4xMjkxOlx0fVxuMTI5MjpcdFxuMTI5MzpcdHZvaWQgd2lwaHlfdW5yZWdpc3RlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5KVxuMTI5NDpcdHtcbjEyOTU6XHRcdHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9IHdpcGh5X3RvX3JkZXYod2lwaHkpO1xuMTI5NjpcdFxuMTI5NzpcdFx0d2FpdF9ldmVudChyZGV2LVx1MDAzZWRldl93YWl0LCAoe1xuMTI5ODpcdFx0XHRpbnQgX19jb3VudDtcbjEyOTk6XHRcdFx0d2lwaHlfbG9jayhcdTAwMjZyZGV2LVx1MDAzZXdpcGh5KTtcbjEzMDA6XHRcdFx0X19jb3VudCA9IHJkZXYtXHUwMDNlb3BlbmNvdW50O1xuMTMwMTpcdFx0XHR3aXBoeV91bmxvY2soXHUwMDI2cmRldi1cdTAwM2V3aXBoeSk7XG4xMzAyOlx0XHRcdF9fY291bnQgPT0gMDsgfSkpO1xuMTMwMzpcdFxuMTMwNDpcdFx0aWYgKHJkZXYtXHUwMDNld2lwaHkucmZraWxsKVxuMTMwNTpcdFx0XHRyZmtpbGxfdW5yZWdpc3RlcihyZGV2LVx1MDAzZXdpcGh5LnJma2lsbCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMjI6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTYyNAoJCQkJCQkJb3V0cHV0OiAxMjQKCQkJCQkJCXRob3VnaHRzOiAxOTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXBwcm9hY2ggdG8gVGVzdGluZyB0aGlzIEtlcm5lbCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBjb3JlIGZ1bmN0aW9uYWxpdHkgYW5kIGVuc3VyZSB0aGF0IHRoaXMgc3BlY2lmaWMgYnVnIOKAkyBhIGxpc3QgY29ycnVwdGlvbi91c2UtYWZ0ZXItZnJlZSBzaXR1YXRpb24g4oCTIGlzIHRydWx5IGFkZHJlc3NlZC4gVGhlIGxvZ2ljIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIHBhdGNoIGRlYWxzIHdpdGggdGhlIGNvcnJlY3QgaGFuZGxpbmcgb2YgZWxlbWVudHMgd2l0aGluIHRoZSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBwcm9jZXNzaW5nIGxpbWl0IGlzIGhpdC4gSW5zdGVhZCBvZiBqdXN0IHJlc2V0dGluZyB0aGUgbGlzdCBoZWFkLCBpdCBub3cgZG9lcyBhIHByb3BlciByZW1vdmFsLgoKR2l2ZW4gdGhhdCBpdCYjMzk7cyBhIGNyaXRpY2FsIGNoYW5nZSB3aXRoaW4gdGhlIHdpcmVsZXNzIGNvcmUsIEkmIzM5O2xsIGxldmVyYWdlIHRoZSBgTUFDODAyMTFfSFdTSU1gIGRyaXZlciBmb3IgdGVzdGluZy4gSXTigJlzIGlkZWFsIGZvciB0aGVzZSBzb3J0cyBvZiBgY2ZnODAyMTFgIGludmVzdGlnYXRpb25zLiBUbyBtYWtlIHN1cmUgdGhlIHRhcmdldCBjb2RlIGlzIGFjdGl2ZSwgSSYjMzk7bGwgZGVmaW5pdGVseSBlbmFibGUgdGhlIGBDRkc4MDIxMWAgY29uZmlndXJhdGlvbiBvcHRpb24uCgpUaGVyZWZvcmUsIGZvciBteSBmdXp6aW5nIHNldHVwLCBJJiMzOTtsbCBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLCBhcyB0aGUgZml4IHNvdW5kcyBsaWtlIGl0IHdvdWxkIGJlbmVmaXQgZnJvbSBmdXp6IHRlc3RpbmcsIHNwZWNpZmljYWxseSB0byB0cmlnZ2VyIHdoYXRldmVyIHN0YXRlIHJlc3VsdHMgaW4gdGhlIGNvcnJ1cHRpb24gaW4gdGhlIGZpcnN0IHBsYWNlLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gemVybyBpbiBvbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2Agd2l0aCBgRm9jdXNTeW1ib2xzYC4gQW5kIG9mIGNvdXJzZSwgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgc2V0IHRvIGBDRkc4MDIxMWAgc28gSSYjMzk7bSBub3QgbWlzc2luZyBhbnkgcHJlLXJlcXVpc2l0ZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDIyOjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgYnVnIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBieSBwcm9wZXJseSByZW1vdmluZyBlbGVtZW50cyBmcm9tIGB3aXBoeV93b3JrX2xpc3RgIHdoZW4gdGhlIHJ1bmF3YXkgbGltaXQgaXMgcmVhY2hlZCwgaW5zdGVhZCBvZiBqdXN0IHJlaW5pdGlhbGl6aW5nIHRoZSBsaXN0IGhlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdWJzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGxpc3QgY29ycnVwdGlvbi91c2UtYWZ0ZXItZnJlZSBidWcgaW4gYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGJ5IHByb3Blcmx5IHJlbW92aW5nIGVsZW1lbnRzIGZyb20gYHdpcGh5X3dvcmtfbGlzdGAgd2hlbiB0aGUgcnVuYXdheSBsaW1pdCBpcyByZWFjaGVkLCBpbnN0ZWFkIG9mIGp1c3QgcmVpbml0aWFsaXppbmcgdGhlIGxpc3QgaGVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIHdpcmVsZXNzIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU0OjM4LjQ0MTE1NTE2NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNTk4NTQ3OTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbGlzdCBjb3JydXB0aW9uL3VzZS1hZnRlci1mcmVlIGJ1ZyBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYnkgcHJvcGVybHkgcmVtb3ZpbmcgZWxlbWVudHMgZnJvbSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBydW5hd2F5IGxpbWl0IGlzIHJlYWNoZWQsIGluc3RlYWQgb2YganVzdCByZWluaXRpYWxpemluZyB0aGUgbGlzdCBoZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3Vic3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NDozOC40NDExNjA5NDVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NDQyNTI1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDE2ZmNiN2RhMzVlZWFjYWE2N2VlODJjYjg5NTNiMTIyYWI0ODlkNjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgNyAyMjo1NDozNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xcbmluZGV4IDNkY2Y2M2IwNGM0MWRiLi5hN2UwMTFlZDQ1NWRiNSAxMDA2NDRcXG4tLS0gYS9uZXQvd2lyZWxlc3MvY29yZS5jXFxuKysrIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xcbkBAIC0xMjc4LDggKzEyNzgsMTQgQEAgdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4gXFx0XFx0aWYgKHdrID09IGVuZClcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcbi1cXHRcXHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpXFxuLVxcdFxcdFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpO1xcbitcXHRcXHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpIHtcXG4rXFx0XFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XFxuK1xcdFxcdFxcdFxcdHdrID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cmRldi1cXHUwMDNld2lwaHlfd29ya19saXN0LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgd2lwaHlfd29yayxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgZW50cnkpO1xcbitcXHRcXHRcXHRcXHRsaXN0X2RlbF9pbml0KFxcdTAwMjZ3ay1cXHUwMDNlZW50cnkpO1xcbitcXHRcXHRcXHR9XFxuK1xcdFxcdH1cXG4gXFx0fVxcbiBcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NDozOC44ODYzODM5NDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMTUzMzAzMDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbGlzdCBjb3JydXB0aW9uL3VzZS1hZnRlci1mcmVlIGJ1ZyBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYnkgcHJvcGVybHkgcmVtb3ZpbmcgZWxlbWVudHMgZnJvbSBgd2lwaHlfd29ya19saXN0YCB3aGVuIHRoZSBydW5hd2F5IGxpbWl0IGlzIHJlYWNoZWQsIGluc3RlYWQgb2YganVzdCByZWluaXRpYWxpemluZyB0aGUgbGlzdCBoZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgd2lyZWxlc3Mgc3Vic3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDE2ZmNiN2RhMzVlZWFjYWE2N2VlODJjYjg5NTNiMTIyYWI0ODlkNjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCA3IDIyOjU0OjM3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL2NvcmUuYyBiL25ldC93aXJlbGVzcy9jb3JlLmNcbmluZGV4IDNkY2Y2M2IwNGM0MWRiLi5hN2UwMTFlZDQ1NWRiNSAxMDA2NDRcbi0tLSBhL25ldC93aXJlbGVzcy9jb3JlLmNcbisrKyBiL25ldC93aXJlbGVzcy9jb3JlLmNcbkBAIC0xMjc4LDggKzEyNzgsMTQgQEAgdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbiBcdFx0aWYgKHdrID09IGVuZClcbiBcdFx0XHRicmVhaztcbiBcbi1cdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKVxuLVx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0KTtcbitcdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKSB7XG4rXHRcdFx0d2hpbGUgKCFsaXN0X2VtcHR5KFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0KSkge1xuK1x0XHRcdFx0d2sgPSBsaXN0X2ZpcnN0X2VudHJ5KFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0LFxuK1x0XHRcdFx0XHRcdCAgICAgIHN0cnVjdCB3aXBoeV93b3JrLFxuK1x0XHRcdFx0XHRcdCAgICAgIGVudHJ5KTtcbitcdFx0XHRcdGxpc3RfZGVsX2luaXQoXHUwMDI2d2stXHUwMDNlZW50cnkpO1xuK1x0XHRcdH1cbitcdFx0fVxuIFx0fVxuIFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU0OjM4Ljg4NjM4NjI3N1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNDU2ODIzMTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgQ29yZSBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBpbiBgbmV0L3dpcmVsZXNzL2NvcmUuY2AuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJBaCwgYW5vdGhlciB3aXJlbGVzcyBjb3JlIGNoYW5nZSwgbGlrZWx5IHBlcmZvcm1hbmNlIG9yIGEgYnVnIGZpeFwiLiBOb3csIHRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBtb2RpZmljYXRpb24uIEluc3RlYWQgb2YganVzdCBpbml0aWFsaXppbmcgdGhlIHdvcmsgbGlzdCB3aXRoIGBJTklUX0xJU1RfSEVBRGAsIHRoZSBhdXRob3IgaXMgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGxpc3QgYW5kIHVzaW5nIGBsaXN0X2RlbF9pbml0YCBvbiBlYWNoIGVudHJ5LiBUaGF04oCZcyBhIGNydWNpYWwgZGlzdGluY3Rpb24uIEl0IGltcGxpZXMgdGhleSBhcmUgYWN0aXZlbHkgKmNsZWFuaW5nIHVwKiB0aGUgbGlzdC4gVGhpcyBpcyBtb3JlIHRoYW4ganVzdCBpbml0aWFsaXppbmc7IGl0J3MgYSByZW1vdmFsIHByb2Nlc3MuXG5cblRoaW5raW5nIHRocm91Z2ggaXQsIHRoaXMgaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGltcHJvdmVtZW50LiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gbGlrZWx5IGhhZCBsaW5nZXJpbmcgcG9pbnRlcnMsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdXNlLWFmdGVyLWZyZWUgb3IgbGlzdCBjb3JydXB0aW9uIGVycm9ycywgbmFzdHksIGRpZmZpY3VsdCBidWdzIHRvIHRyYWNrIGRvd24uIFRoaXMgcGF0Y2ggaXMgYWltZWQgYXQgZXhwbGljaXRseSBjbGVhcmluZyB0aGUgZW50cmllcyBiZWZvcmUgdGhleSdyZSByZS11c2VkIG9yLCBwb3RlbnRpYWxseSwgd2hlbiB0aGUgd2lwaHkgaXMgc2h1dCBkb3duLiBNeSBuZXh0IHN0ZXA/IEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoZSBjb2RlLiBMZXQncyB0cmFjZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgYW5kIHNlZSAqd2hlcmUqIGl0J3MgY2FsbGVkIGFuZCAqd2hhdCogaXQgZG9lcy4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbCBwYXRocyBhbmQgdGhlIGNvbnRleHQgaXMgZXNzZW50aWFsIHRvIGdyYXNwIHRoZSBmdWxsIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZpeCwgYW5kIGhvdyBjcml0aWNhbCBpdCBpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkyMywiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU0OjUxLjM0MzIxMjE0OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDAzMzg0OTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL2NvcmUuYz0xMjU0PUVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1NS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEyNTY6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEyNTctXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYz0xMjkzPXZvaWQgd2lwaHlfdW5yZWdpc3RlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5KVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzM2LVxcdC8qIHN1cmVseSBub3RoaW5nIGlzIHJlYWNoYWJsZSBub3csIGNsZWFuIHVwIHdvcmsgKi9cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEzMzc6XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEzMzgtXFx0d2lwaHlfdW5sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE5MTM9dm9pZCB3aXBoeV93b3JrX2ZsdXNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTI1LVxcdGlmIChydW4pXFxubmV0L3dpcmVsZXNzL2NvcmUuYzoxOTI2OlxcdFxcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgd29yayk7XFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTI3LX1cXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmg9NDY5PXZvaWQgY2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmg6NDcwOnZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL2NvcmUuaC00NzEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKTtcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jPTk0PXN0YXRpYyBpbnQgd2lwaHlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuLS1cXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDYtXFx0XFx0c2NvcGVkX2d1YXJkKHdpcGh5LCBcXHUwMDI2cmRldi1cXHUwMDNld2lwaHkpIHtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMDc6XFx0XFx0XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDgtXFx0XFx0XFx0aWYgKHJkZXYtXFx1MDAzZW9wcy1cXHUwMDNlc3VzcGVuZClcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMC1cXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3JkZXZfZXZlbnRzKHJkZXYpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEyMTpcXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMi1cXHRcXHRpZiAocmRldi1cXHUwMDNlb3BzLVxcdTAwM2VzdXNwZW5kKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NDo1NC4zNDY2MDQ2NTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTM2Nzc3NTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgY2ZnODAyMTEgQ29yZSdzIFdvcmsgUHJvY2Vzc2luZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGNmZzgwMjExYCBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIGZ1bmN0aW9uIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBob3cgaXQncyBiZWluZyB1c2VkLiBJIHNlZSB0aGF0IGl0J3MgY2FsbGVkIGluIGEgZmV3IGNyaXRpY2FsIHBsYWNlczogYHdpcGh5X3VucmVnaXN0ZXJgLCBgd2lwaHlfd29ya19mbHVzaGAsIGFuZCBgd2lwaHlfc3VzcGVuZGAuIFRoYXQgc3VnZ2VzdHMgaXQncyBjZW50cmFsIHRvIGhhbmRsaW5nIHdvcmsgaXRlbXMgcmVsYXRlZCB0byB0aGUgV2ktRmkgUEhZIGFic3RyYWN0aW9uIGxheWVyLCB3aGljaCBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGBjZmc4MDIxMWAgY29yZSdzIHJvbGUuXG5cbk5vdywgYmVjYXVzZSBJ4oCZbSBkZWFsaW5nIHdpdGggY29uZmlndXJhdGlvbiBhc3BlY3RzIG9mIHRoZSBrZXJuZWwsIEkgd2FudCB0byBjb25maXJtIHRoYXQgdGhlcmUgaXNuJ3QgYSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbiBpbmZsdWVuY2luZyB0aGlzIGJlaGF2aW9yLiBJdCBtYWtlcyBzZW5zZSB0byBjaGVjayBgbmV0L3dpcmVsZXNzL0tjb25maWdgLiBJJ2xsIGxvb2sgZm9yIGFueSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBgY2ZnODAyMTFgLCBsaWtlIHRoZSBtYWluIGBDRkc4MDIxMWAgY29uZmlnLCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBmbGFncyBJIG1pZ2h0IGhhdmUgdG8gY29uc2lkZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNDUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMjI6NTQ6NTcuODgzMzg0MTUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyMjcxMTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBDRkc4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMjI6NTQ6NTcuOTU1NjYyNjgzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA0NDkyMTUzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBDb3JlIEJ1ZyBGaXgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRhcmdldGluZyBhIGJ1ZyB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uLiBHb29kLCB0aGF0IG1ha2VzIHNlbnNlLiBJdCBsb29rcyBsaWtlIHRoaXMgY29kZSBwYXRoIGlzIG9ubHkgYWN0aXZlIHdoZW4gYENPTkZJR19DRkc4MDIxMWAgaXMgZW5hYmxlZCwgd2hpY2ggaXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBmb3IgdGhlIENGRzgwMjExIHdpcmVsZXNzIHN1YnN5c3RlbS4gS25vd2luZyB0aGF0IGBDRkc4MDIxMWAgaXMgdGhlIGtleSBlbmFibGVzIG1lIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBpbXBhY3QgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlLlxuXG5UaGUgY29yZSBvZiB0aGUgaXNzdWUgYXBwZWFycyB0byByZXZvbHZlIGFyb3VuZCBpbXByb3BlciBsaXN0IG1hbmFnZW1lbnQgd2l0aGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gSXQgc2VlbXMgdGhhdCBpbnN0ZWFkIG9mIHByb3Blcmx5IGhhbmRsaW5nIGxpc3QgZWxlbWVudHMgKHByZXN1bWFibHkgcmVtb3ZpbmcgdGhlbSksIHRoZSBjb2RlIHdhcyB1c2luZyBgSU5JVF9MSVNUX0hFQURgIGluYXBwcm9wcmlhdGVseSB3aGVuIHRoZSBgcnVuYXdheV9saW1pdGAgaGl0cyB6ZXJvLiBUaGF0J3MgYSBjbGFzc2ljIGVycm9yLCBhbmQgaXQgY2FuIGRlZmluaXRlbHkgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdW5leHBlY3RlZCBiZWhhdmlvciBpbiB0aGUgd2lyZWxlc3Mgc3RhY2suIFxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGx5aW5nIHRoYXQgaXQgZGlyZWN0bHkgaW1wYWN0cyB0aGUgb3BlcmF0aW9uIG9mIHRoZSB3aXJlbGVzcyBkcml2ZXIuIE5vdywgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIGZ1bmN0aW9uIGl0c2VsZiB3aXRoaW4gYG5ldC93aXJlbGVzcy9jb3JlLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGV4YWN0IGNvbnRleHQgYW5kIHRoZSBzZXZlcml0eSBvZiB0aGUgZmxhdy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgKmhvdyogdGhlIGxpc3QgaXMgdXNlZCBhbmQgKndoeSogdGhpcyBpbml0aWFsaXphdGlvbiB3YXMgaW5jb3JyZWN0LiBUaGlzIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgZGl2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMzNCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NTowNS4wMDA1ODY2N1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NzU4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvd2lyZWxlc3MvY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyNTYsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEyNTY6XFx0dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4xMjU3OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHdpcGh5X3dvcmsgKmVuZClcXG4xMjU4OlxcdHtcXG4xMjU5OlxcdFxcdHVuc2lnbmVkIGludCBydW5hd2F5X2xpbWl0ID0gMTAwO1xcbjEyNjA6XFx0XFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4xMjYxOlxcdFxcbjEyNjI6XFx0XFx0bG9ja2RlcF9hc3NlcnRfaGVsZChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHkubXR4KTtcXG4xMjYzOlxcdFxcbjEyNjQ6XFx0XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xcbjEyNjU6XFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XFxuMTI2NjpcXHRcXHRcXHRzdHJ1Y3Qgd2lwaHlfd29yayAqd2s7XFxuMTI2NzpcXHRcXG4xMjY4OlxcdFxcdFxcdHdrID0gbGlzdF9maXJzdF9lbnRyeShcXHUwMDI2cmRldi1cXHUwMDNld2lwaHlfd29ya19saXN0LFxcbjEyNjk6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHdpcGh5X3dvcmssIGVudHJ5KTtcXG4xMjcwOlxcdFxcdFxcdGxpc3RfZGVsX2luaXQoXFx1MDAyNndrLVxcdTAwM2VlbnRyeSk7XFxuMTI3MTpcXHRcXHRcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcXG4xMjcyOlxcdFxcbjEyNzM6XFx0XFx0XFx0dHJhY2Vfd2lwaHlfd29ya19ydW4oXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5LCB3ayk7XFxuMTI3NDpcXHRcXHRcXHR3ay1cXHUwMDNlZnVuYyhcXHUwMDI2cmRldi1cXHUwMDNld2lwaHksIHdrKTtcXG4xMjc1OlxcdFxcbjEyNzY6XFx0XFx0XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xcbjEyNzc6XFx0XFxuMTI3ODpcXHRcXHRcXHRpZiAod2sgPT0gZW5kKVxcbjEyNzk6XFx0XFx0XFx0XFx0YnJlYWs7XFxuMTI4MDpcXHRcXG4xMjgxOlxcdFxcdFxcdGlmIChXQVJOX09OKC0tcnVuYXdheV9saW1pdCA9PSAwKSkge1xcbjEyODI6XFx0XFx0XFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xpc3QpKSB7XFxuMTI4MzpcXHRcXHRcXHRcXHRcXHR3ayA9IGxpc3RfZmlyc3RfZW50cnkoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbGlzdCxcXG4xMjg0OlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCB3aXBoeV93b3JrLFxcbjEyODU6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgZW50cnkpO1xcbjEyODY6XFx0XFx0XFx0XFx0XFx0bGlzdF9kZWxfaW5pdChcXHUwMDI2d2stXFx1MDAzZWVudHJ5KTtcXG4xMjg3OlxcdFxcdFxcdFxcdH1cXG4xMjg4OlxcdFxcdFxcdH1cXG4xMjg5OlxcdFxcdH1cXG4xMjkwOlxcdFxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5X3dvcmtfbG9jaywgZmxhZ3MpO1xcbjEyOTE6XFx0fVxcbjEyOTI6XFx0XFxuMTI5MzpcXHR2b2lkIHdpcGh5X3VucmVnaXN0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSlcXG4xMjk0OlxcdHtcXG4xMjk1OlxcdFxcdHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9IHdpcGh5X3RvX3JkZXYod2lwaHkpO1xcbjEyOTY6XFx0XFxuMTI5NzpcXHRcXHR3YWl0X2V2ZW50KHJkZXYtXFx1MDAzZWRldl93YWl0LCAoe1xcbjEyOTg6XFx0XFx0XFx0aW50IF9fY291bnQ7XFxuMTI5OTpcXHRcXHRcXHR3aXBoeV9sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuMTMwMDpcXHRcXHRcXHRfX2NvdW50ID0gcmRldi1cXHUwMDNlb3BlbmNvdW50O1xcbjEzMDE6XFx0XFx0XFx0d2lwaHlfdW5sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuMTMwMjpcXHRcXHRcXHRfX2NvdW50ID09IDA7IH0pKTtcXG4xMzAzOlxcdFxcbjEzMDQ6XFx0XFx0aWYgKHJkZXYtXFx1MDAzZXdpcGh5LnJma2lsbClcXG4xMzA1OlxcdFxcdFxcdHJma2lsbF91bnJlZ2lzdGVyKHJkZXYtXFx1MDAzZXdpcGh5LnJma2lsbCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDIyOjU1OjA1LjAwMDc0NzAxOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5NTAxMDI5NDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXBwcm9hY2ggdG8gVGVzdGluZyB0aGlzIEtlcm5lbCBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBuZWVkIHRvIHZlcmlmeSBpdHMgY29yZSBmdW5jdGlvbmFsaXR5IGFuZCBlbnN1cmUgdGhhdCB0aGlzIHNwZWNpZmljIGJ1ZyDigJMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgc2l0dWF0aW9uIOKAkyBpcyB0cnVseSBhZGRyZXNzZWQuIFRoZSBsb2dpYyBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCBkZWFscyB3aXRoIHRoZSBjb3JyZWN0IGhhbmRsaW5nIG9mIGVsZW1lbnRzIHdpdGhpbiB0aGUgYHdpcGh5X3dvcmtfbGlzdGAgd2hlbiB0aGUgcHJvY2Vzc2luZyBsaW1pdCBpcyBoaXQuIEluc3RlYWQgb2YganVzdCByZXNldHRpbmcgdGhlIGxpc3QgaGVhZCwgaXQgbm93IGRvZXMgYSBwcm9wZXIgcmVtb3ZhbC5cblxuR2l2ZW4gdGhhdCBpdCdzIGEgY3JpdGljYWwgY2hhbmdlIHdpdGhpbiB0aGUgd2lyZWxlc3MgY29yZSwgSSdsbCBsZXZlcmFnZSB0aGUgYE1BQzgwMjExX0hXU0lNYCBkcml2ZXIgZm9yIHRlc3RpbmcuIEl04oCZcyBpZGVhbCBmb3IgdGhlc2Ugc29ydHMgb2YgYGNmZzgwMjExYCBpbnZlc3RpZ2F0aW9ucy4gVG8gbWFrZSBzdXJlIHRoZSB0YXJnZXQgY29kZSBpcyBhY3RpdmUsIEknbGwgZGVmaW5pdGVseSBlbmFibGUgdGhlIGBDRkc4MDIxMWAgY29uZmlndXJhdGlvbiBvcHRpb24uXG5cblRoZXJlZm9yZSwgZm9yIG15IGZ1enppbmcgc2V0dXAsIEknbGwgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGB0cnVlYCwgYXMgdGhlIGZpeCBzb3VuZHMgbGlrZSBpdCB3b3VsZCBiZW5lZml0IGZyb20gZnV6eiB0ZXN0aW5nLCBzcGVjaWZpY2FsbHkgdG8gdHJpZ2dlciB3aGF0ZXZlciBzdGF0ZSByZXN1bHRzIGluIHRoZSBjb3JydXB0aW9uIGluIHRoZSBmaXJzdCBwbGFjZS4gSSdsbCBtYWtlIHN1cmUgdG8gemVybyBpbiBvbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2Agd2l0aCBgRm9jdXNTeW1ib2xzYC4gQW5kIG9mIGNvdXJzZSwgYEVuYWJsZUNvbmZpZ3NgIHdpbGwgYmUgc2V0IHRvIGBDRkc4MDIxMWAgc28gSSdtIG5vdCBtaXNzaW5nIGFueSBwcmUtcmVxdWlzaXRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYyNCwiT3V0cHV0VG9rZW5zIjoxMjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QyMjo1NToxMS45NTA4NTIxOTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODgyNjM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgYnVnIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBieSBwcm9wZXJseSByZW1vdmluZyBlbGVtZW50cyBmcm9tIGB3aXBoeV93b3JrX2xpc3RgIHdoZW4gdGhlIHJ1bmF3YXkgbGltaXQgaXMgcmVhY2hlZCwgaW5zdGVhZCBvZiBqdXN0IHJlaW5pdGlhbGl6aW5nIHRoZSBsaXN0IGhlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBsaXN0IGNvcnJ1cHRpb24vdXNlLWFmdGVyLWZyZWUgYnVnIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBieSBwcm9wZXJseSByZW1vdmluZyBlbGVtZW50cyBmcm9tIGB3aXBoeV93b3JrX2xpc3RgIHdoZW4gdGhlIHJ1bmF3YXkgbGltaXQgaXMgcmVhY2hlZCwgaW5zdGVhZCBvZiBqdXN0IHJlaW5pdGlhbGl6aW5nIHRoZSBsaXN0IGhlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSB3aXJlbGVzcyBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[1] Phase: Succeeded StartedAt: 2026-07-07 22:56:31 +0000 UTC FinishedAt: 2026-07-07 22:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-07 22:56:31 +0000 UTC FinishedAt: 2026-07-07 22:56:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2] Phase: Succeeded StartedAt: 2026-07-07 22:56:31 +0000 UTC FinishedAt: 2026-07-08 03:13:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-07 22:56:31 +0000 UTC FinishedAt: 2026-07-08 03:13:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-07 22:56:31 +0000 UTC FinishedAt: 2026-07-07 22:57:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-07 22:56:31 +0000 UTC FinishedAt: 2026-07-07 22:57:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowfnkqd/series-workflowfnkqd-convert-artifact-1560213828/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-07 22:57:15 +0000 UTC FinishedAt: 2026-07-07 23:27:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-07 22:57:15 +0000 UTC FinishedAt: 2026-07-07 23:27:32 +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:*bc0fec6d-edf9-4a74-be4e-4e47028248b6,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-workflowfnkqd/series-workflowfnkqd-convert-artifact-1560213828/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": "69e53ad0-9fe9-4373-abe7-fd09f33c9663", "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-workflowfnkqd/series-workflowfnkqd-build-action-1213545602/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-07 22:57:15 +0000 UTC FinishedAt: 2026-07-07 23:27:22 +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:*bc0fec6d-edf9-4a74-be4e-4e47028248b6,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-workflowfnkqd/series-workflowfnkqd-convert-artifact-1560213828/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": "69e53ad0-9fe9-4373-abe7-fd09f33c9663", "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-workflowfnkqd/series-workflowfnkqd-build-action-1213545602/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-07 23:27:32 +0000 UTC FinishedAt: 2026-07-07 23:27:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-07 23:27:32 +0000 UTC FinishedAt: 2026-07-07 23:27:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-07 23:27:32 +0000 UTC FinishedAt: 2026-07-07 23:27:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-07 23:27:32 +0000 UTC FinishedAt: 2026-07-07 23:27:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowfnkqd/series-workflowfnkqd-convert-artifact-1576430019/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-07 23:27:52 +0000 UTC FinishedAt: 2026-07-07 23:30:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-07 23:27:52 +0000 UTC FinishedAt: 2026-07-07 23:29:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*69e53ad0-9fe9-4373-abe7-fd09f33c9663,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-workflowfnkqd/series-workflowfnkqd-build-action-1213545602/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-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-07 23:30:07 +0000 UTC FinishedAt: 2026-07-07 23:30:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-07 23:30:07 +0000 UTC FinishedAt: 2026-07-07 23:30:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-07 23:30:07 +0000 UTC FinishedAt: 2026-07-08 00:10:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-07 23:30:07 +0000 UTC FinishedAt: 2026-07-08 00:10:02 +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:*bc0fec6d-edf9-4a74-be4e-4e47028248b6,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-workflowfnkqd/series-workflowfnkqd-convert-artifact-1576430019/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": "8f9c713d-5304-4bf7-a4b9-47b89d41d800", "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-workflowfnkqd/series-workflowfnkqd-build-action-2931151991/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-07 23:30:07 +0000 UTC FinishedAt: 2026-07-08 00:09:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*bc0fec6d-edf9-4a74-be4e-4e47028248b6,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-workflowfnkqd/series-workflowfnkqd-convert-artifact-1576430019/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": "8f9c713d-5304-4bf7-a4b9-47b89d41d800", "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-workflowfnkqd/series-workflowfnkqd-build-action-2931151991/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-08 00:10:02 +0000 UTC FinishedAt: 2026-07-08 00:10:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-08 00:10:02 +0000 UTC FinishedAt: 2026-07-08 00:10:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-08 00:10:02 +0000 UTC FinishedAt: 2026-07-08 00:12:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-08 00:10:02 +0000 UTC FinishedAt: 2026-07-08 00:12:05 +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:*8f9c713d-5304-4bf7-a4b9-47b89d41d800,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-workflowfnkqd/series-workflowfnkqd-build-action-2931151991/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-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 03:13:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 03:13:37 +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":["cfg80211_process_wiphy_works"],"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:*69e53ad0-9fe9-4373-abe7-fd09f33c9663,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8f9c713d-5304-4bf7-a4b9-47b89d41d800,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-workflowfnkqd/series-workflowfnkqd-build-action-1213545602/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-workflowfnkqd/series-workflowfnkqd-build-action-2931151991/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 00:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 00:12:21 +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":["cfg80211_process_wiphy_works"],"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-workflowfnkqd/series-workflowfnkqd-convert-artifact-3300506844/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 00:12:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 00:12:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-08 00:12:15 +0000 UTC FinishedAt: 2026-07-08 00:12:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-08 00:12:25 +0000 UTC FinishedAt: 2026-07-08 03:13:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfnkqd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211"],"series_id":"1ec275ac-2f5e-4a4c-8c2f-5f064dc216c4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-08 00:12:25 +0000 UTC FinishedAt: 2026-07-08 03:13:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*69e53ad0-9fe9-4373-abe7-fd09f33c9663,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8f9c713d-5304-4bf7-a4b9-47b89d41d800,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-workflowfnkqd/series-workflowfnkqd-build-action-1213545602/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-workflowfnkqd/series-workflowfnkqd-build-action-2931151991/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-workflowfnkqd/series-workflowfnkqd-convert-artifact-3300506844/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,}