Name: series-workflow7g6h5 Phase: Succeeded StartedAt: 2026-07-12 04:29:19 +0000 UTC FinishedAt: 2026-07-12 07:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[0] Phase: Succeeded StartedAt: 2026-07-12 04:29:19 +0000 UTC FinishedAt: 2026-07-12 05:13:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[0].run-triage Phase: Succeeded StartedAt: 2026-07-12 04:29:19 +0000 UTC FinishedAt: 2026-07-12 05:13:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_FDP", "NFC_FDP_I2C" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_FDP", "NFC_FDP_I2C" ], "series_id": "e9f1581f-209e-4f86-8374-60e22bf8ae6a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "fdp_nci_i2c_read" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19GRFAmIzM0OywKICAgICYjMzQ7TkZDX0ZEUF9JMkMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmZHBfbmNpX2kyY19yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjg4MmNlNzUyZGY4NGI0MTUzNTAyNDNmMjhiZTg4N2I5YTU3YTRjMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDEyIDA1OjEyOjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmZjL2ZkcC9pMmMuYyBiL2RyaXZlcnMvbmZjL2ZkcC9pMmMuY1xuaW5kZXggYzE4OTZhMWQ5NzhjZGMuLjU4MWY4NWYwZGZhOGNhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZmMvZmRwL2kyYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmNcbkBAIC0xMjgsNyAmIzQzOzEyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7XG4gXG4gc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbiB7XG4tXHRpbnQgciwgbGVuO1xuJiM0MztcdGludCByID0gLUVSRU1PVEVJTywgbGVuO1xuIFx0dTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrO1xuIFx0dTE2IGk7XG4gXHRzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gcGh5LVx1MDAzZWkyY19kZXY7XG5AQCAtMTQwLDYgJiM0MzsxNDAsMTMgQEAgc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbiBcbiBcdFx0bGVuID0gcGh5LVx1MDAzZW5leHRfcmVhZF9zaXplO1xuIFxuJiM0MztcdFx0aWYgKGxlbiBcdTAwM2UgRkRQX05DSV9JMkNfTUFYX1BBWUxPQUQpIHtcbiYjNDM7XHRcdFx0ZGV2X2RiZyhcdTAwMjZjbGllbnQtXHUwMDNlZGV2LCBcJiMzNDslczogcmVhZCBzaXplICVkIHRvbyBsYXJnZVxcblwmIzM0OyxcbiYjNDM7XHRcdFx0XHRfX2Z1bmNfXywgbGVuKTtcbiYjNDM7XHRcdFx0cGh5LVx1MDAzZW5leHRfcmVhZF9zaXplID0gRkRQX05DSV9JMkNfTUlOX1BBWUxPQUQ7XG4mIzQzO1x0XHRcdGdvdG8gZmx1c2g7XG4mIzQzO1x0XHR9XG4mIzQzO1xuIFx0XHRyID0gaTJjX21hc3Rlcl9yZWN2KGNsaWVudCwgdG1wLCBsZW4pO1xuIFx0XHRpZiAociAhPSBsZW4pIHtcbiBcdFx0XHRkZXZfZGJnKFx1MDAyNmNsaWVudC1cdTAwM2VkZXYsIFwmIzM0OyVzOiBpMmMgcmVjdiBlcnI6ICVkXFxuXCYjMzQ7LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19GRFAmIzM0OywKICAgICYjMzQ7TkZDX0ZEUF9JMkMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmZHBfbmNpX2kyY19yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ODgyY2U3NTJkZjg0YjQxNTM1MDI0M2YyOGJlODg3YjlhNTdhNGMxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMTIgMDU6MTI6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmMKaW5kZXggYzE4OTZhMWQ5NzhjZGMuLjU4MWY4NWYwZGZhOGNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZmMvZmRwL2kyYy5jCkBAIC0xMjgsNyAmIzQzOzEyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7CiAKIHN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcmVhZChzdHJ1Y3QgZmRwX2kyY19waHkgKnBoeSwgc3RydWN0IHNrX2J1ZmYgKipza2IpCiB7Ci0JaW50IHIsIGxlbjsKJiM0MzsJaW50IHIgPSAtRVJFTU9URUlPLCBsZW47CiAJdTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrOwogCXUxNiBpOwogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSBwaHktJmd0O2kyY19kZXY7CkBAIC0xNDAsNiAmIzQzOzE0MCwxMyBAQCBzdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKQogCiAJCWxlbiA9IHBoeS0mZ3Q7bmV4dF9yZWFkX3NpemU7CiAKJiM0MzsJCWlmIChsZW4gJmd0OyBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRCkgewomIzQzOwkJCWRldl9kYmcoJmFtcDtjbGllbnQtJmd0O2RldiwgJiMzNDslczogcmVhZCBzaXplICVkIHRvbyBsYXJnZVxuJiMzNDssCiYjNDM7CQkJCV9fZnVuY19fLCBsZW4pOwomIzQzOwkJCXBoeS0mZ3Q7bmV4dF9yZWFkX3NpemUgPSBGRFBfTkNJX0kyQ19NSU5fUEFZTE9BRDsKJiM0MzsJCQlnb3RvIGZsdXNoOwomIzQzOwkJfQomIzQzOwogCQlyID0gaTJjX21hc3Rlcl9yZWN2KGNsaWVudCwgdG1wLCBsZW4pOwogCQlpZiAociAhPSBsZW4pIHsKIAkJCWRldl9kYmcoJmFtcDtjbGllbnQtJmd0O2RldiwgJiMzNDslczogaTJjIHJlY3YgZXJyOiAlZFxuJiMzNDssCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwODkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAxMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBORkMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBwYXlsb2FkIHNpemUgY2hlY2sgd2l0aGluIHRoZSBgZmRwX25jaV9pMmNfcmVhZGAgZnVuY3Rpb24uIFRoZSBrZXkgaXMgdGhhdCBgbGVuYCwgd2hpY2ggSSYjMzk7bSBhc3N1bWluZyBpcyB0aGUgcmVhZCBsZW5ndGgsIGlzIGJlaW5nIGNvbXBhcmVkIGFnYWluc3QgYEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEYC4KCklmIGBsZW5gIGV4Y2VlZHMgdGhhdCBtYXhpbXVtLCB3ZSYjMzk7cmUgZG9pbmcgYSByZXNldCBvZiBgcGh5LSZndDtuZXh0X3JlYWRfc2l6ZWAsIGFuZCB0aGVuIGl0IGp1bXBzIHRvIHRoZSBgZmx1c2hgIHN0YXRlLCBzZXR0aW5nIGByYCB0byBgLUVSRU1PVEVJT2AuIFRoaXMgZmVlbHMgbGlrZSBpdCYjMzk7cyBhIGRlZmVuc2l2ZSBtZWFzdXJlLCBndWFyZGluZyBhZ2FpbnN0IHNvbWUga2luZCBvZiBidWZmZXIgb3ZlcmZsb3cgb3IgdW5leHBlY3RlZCBkYXRhIGxlbmd0aC4gVGhlIGBFUkVNT1RFSU9gIGVycm9yIHN1Z2dlc3RzIGEgcmVtb3RlIEkvTyBlcnJvciDigJMgc29tZXRoaW5nIHdlbnQgd3JvbmcgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBORkMgY2hpcC4KCkdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlc2UgTkZDIGFyY2hpdGVjdHVyZXMsIG15IG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBjb250ZXh0IGFyb3VuZCB0aGVzZSBjaGFuZ2VzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRGAgaXMgZGVmaW5lZCBhcywgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyByZXNldCB3aXRoaW4gdGhlIGBmbHVzaGAgc3RhdGUuIExldCYjMzk7cyBzZWUgaG93IGBwaHktJmd0O25leHRfcmVhZF9zaXplYCBpcyB1c2VkLCB0b28uCgpJIHNob3VsZCBhbHNvIGNoZWNrIHRoZSBLY29uZmlnIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpbGUgdG8gc2VlIGhvdyB0aGlzIGRyaXZlciBpcyBiZWluZyBidWlsdCBhbmQgd2hldGhlciB0aGVyZSYjMzk7cyBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gaW4gcGxheSB0aGF0IG1pZ2h0IGFmZmVjdCB0aGlzIG5ldyBjaGVjay4gSXMgdGhpcyBzcGVjaWZpYyB0byBhIGNlcnRhaW4gTkZDIGNoaXAsIG9yIGEgZ2VuZXJpYyBpbXByb3ZlbWVudCB0byB0aGUgSTJDIGludGVyZmFjZT8gR290dGEgZGlnIGRlZXBlciBpbnRvIGBkcml2ZXJzL25mYy9mZHAvaTJjLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgcGljdHVyZSBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvZmRwL2kyYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yOS0jZGVmaW5lIEZEUF9OQ0lfSTJDX01JTl9QQVlMT0FEXHQ1XG5kcml2ZXJzL25mYy9mZHAvaTJjLmM6MzA6I2RlZmluZSBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRFx0MjYxXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMzEtXG4tLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jPTEyOT1zdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKVxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzEtXHRpbnQgciA9IC1FUkVNT1RFSU8sIGxlbjtcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxMzI6XHR1OCB0bXBbRkRQX05DSV9JMkNfTUFYX1BBWUxPQURdLCBscmMsIGs7XG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTMzLVx0dTE2IGk7XG4tLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTE0Mi1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxNDM6XHRcdGlmIChsZW4gXHUwMDNlIEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEKSB7XG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTQ0LVx0XHRcdGRldl9kYmcoXHUwMDI2Y2xpZW50LVx1MDAzZWRldiwgXCYjMzQ7JXM6IHJlYWQgc2l6ZSAlZCB0b28gbGFyZ2VcXG5cJiMzNDssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDU6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk3NQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipLY29uZmlnIEluc3BlY3Rpb24gVGltZSoqCgpSaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgZHJpdmVyLiBUaGUgS2NvbmZpZyBmaWxlIGlzIHdoZXJlIHRoZSBydWJiZXIgbWVldHMgdGhlIHJvYWQgd2hlbiBpdCBjb21lcyB0byBjb250cm9sbGluZyBpdHMgYnVpbGQgYW5kIGJlaGF2aW9yLiBJJiMzOTttIGdvaW5nIHRvIGNhcmVmdWxseSBkaXNzZWN0IGl0LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTogZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBoZWxwIHRleHQsIGFuZCBvZiBjb3Vyc2UsIHRoZSBhY3R1YWwgc3ltYm9scyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIHZhcmlvdXMgZmVhdHVyZXMuIFRoaXMgaXMgd2hlcmUgSSBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgZW5hYmxlZCwgZGlzYWJsZWQsIG9yIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQuIEtub3dpbmcgdGhlIEtjb25maWcgZGV0YWlscywgYW5kIHRoZSBhc3NvY2lhdGVkIGRlcGVuZGVuY2llcyB3aXRoIG90aGVyIGRyaXZlcnMgb3IgaGFyZHdhcmUgaXMgYWJzb2x1dGVseSBrZXkgdG8gdW5kZXJzdGFuZGluZyBpdHMgb3ZlcmFsbCBpbXBhY3QgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgc3lzdGVtLiBJJiMzOTtsbCBiZSBtYWtpbmcgbm90ZSBvZiBhbnkgdW51c3VhbCBjb25maWd1cmF0aW9ucyBvciBwb3RlbnRpYWwgY29uZmxpY3RzIHJpZ2h0IGF3YXkuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290IQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORkNfRkRQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvZmRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvZmRwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnOjI6Y29uZmlnIE5GQ19GRFBcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBGRFAgTkZDIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTE0LVxuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6MTU6Y29uZmlnIE5GQ19GRFBfSTJDXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xNi1cdHRyaXN0YXRlIFwmIzM0O05GQyBGRFAgaTJjIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwNToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzU1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE5GQyBGRFAgSTJDIERyaXZlcioqCgpPa2F5LCBzbyB0aGUgY29uZmlnIGluIHF1ZXN0aW9uIGhlcmUgaXMgYE5GQ19GRFBfSTJDYC4gUmlnaHQsIHRoaXMgaXMgYW4gSTJDIGRldmljZS4gTm93IHRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgYXQgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIHNldHVwPyBJMkMgdXN1YWxseSBwbGF5cyBuaWNlbHkgd2l0aCBzdHViIGRyaXZlcnMsIGxpa2UgaTJjLXN0dWIsIG9yIHBlcmhhcHMgSSBjYW4gbGV2ZXJhZ2Ugc3l6a2FsbGVyJiMzOTtzIEkyQyBmdXp6ZXIuIEhvbGQgb24sIHdhc24mIzM5O3QgdGhlcmUgc29tZSBJMkMgc3VwcG9ydCBpbiBzeXprYWxsZXI/CgpUaGUgY3J1Y2lhbCBmdW5jdGlvbiBzZWVtcyB0byBiZSBgZmRwX25jaV9pMmNfcmVhZGAuIExldCYjMzk7cyBzZWUgaWYgZnV6emluZyB0aGlzIGlzIGFjdHVhbGx5IHdvcnRod2hpbGUuIFllcCwgZ29vZCBjYWxsIC0gaXQgbG9va3MgbGlrZSB0aGVyZSYjMzk7cyBhIGJ1ZmZlciBvdmVyZmxvdyBvciBwb3RlbnRpYWxseSBvdXQtb2YtYm91bmRzIHJlYWQvd3JpdGUgYmVpbmcgZml4ZWQgb24gdGhhdCBgdG1wYCB2YXJpYWJsZSwgd2hpY2gsIGlmIEkgcmVtZW1iZXIgY29ycmVjdGx5LCBpcyBzaXplZCB0byBgRkRQX05DSV9JMkNfTUFYX1BBWUxPQURgLiBUaGF0JiMzOTtzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuCgpUbyBlbmFibGUgdGhpcywgSSYjMzk7bGwgbmVlZCBgTkZDX0ZEUGAgYW5kIGBORkNfRkRQX0kyQ2AgY29uZmlncy4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGUuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AgZm9yIHRoYXQgYGZkcF9uY2lfaTJjX3JlYWRgIGZ1bmN0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIHZ1bG5lcmFiaWxpdHkgYmV0dGVyIGFuZCBwbGFuIG15IGZ1enppbmcgc3RyYXRlZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDU6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmRwX25jaV9pMmNfcmVhZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9pMmMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9mZHAvaTJjLmM9MTIzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTEyOC1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxMjk6c3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzAte1xuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYz0yMDI9c3RhdGljIGlycXJldHVybl90IGZkcF9uY2lfaTJjX2lycV90aHJlYWRfZm4oaW50IGlycSwgdm9pZCAqcGh5X2lkKVxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yMTItXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM6MjEzOlx0ciA9IGZkcF9uY2lfaTJjX3JlYWQocGh5LCBcdTAwMjZza2IpO1xuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTIxNC1cbi0tXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMjIzLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjIyNDpzdGF0aWMgdm9pZCBmZHBfbmNpX2kyY19yZWFkX2RldmljZV9wcm9wZXJ0aWVzKHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yMjUtXHRcdFx0XHRcdCAgICAgICB1OCAqY2xvY2tfdHlwZSwgdTMyICpjbG9ja19mcmVxLFxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYz0yODU9c3RhdGljIGludCBmZHBfbmNpX2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KVxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzQtXHQvKiByZWFkIGRldmljZSBwcm9wZXJ0aWVzIHRvIGdldCB0aGUgY2xvY2sgYW5kIHByb2R1Y3Rpb24gc2V0dGluZ3MgKi9cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzozMzU6XHRmZHBfbmNpX2kyY19yZWFkX2RldmljZV9wcm9wZXJ0aWVzKGRldiwgXHUwMDI2Y2xvY2tfdHlwZSwgXHUwMDI2Y2xvY2tfZnJlcSxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzYtXHRcdFx0XHRcdCAgIFx1MDAyNmZ3X3ZzY19jZmcpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MzkKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAyNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgTkZDIEZEUCBJMkMgRHJpdmVyOiBBIERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBgZmRwX25jaV9pMmNfcmVhZGAgaXMgY2FsbGVkIHdpdGhpbiBgZmRwX25jaV9pMmNfaXJxX3RocmVhZF9mbmAsIHdoaWNoIG1ha2VzIG1lIHRoaW5rIGl0JiMzOTtzIGludGVycnVwdC1kcml2ZW4uIFRoYXQmIzM5O3MgZ29vZCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gVGhlIGludGVycnVwdCB0cmlnZ2VycyB0aGUgdGhyZWFkLCBhbmQgaWYgdGhlIEkyQyBkZXZpY2UgaXMgaW5zdGFudGlhdGVkIGFuZCB0aGUgaW50ZXJydXB0IGlzIHRyaWdnZXJlZCwgdGhlbiB0aGVvcmV0aWNhbGx5LCB5ZXMsIHRoaXMgaXMgZnV6emFibGUuCgpOb3csIHRoZSBxdWVzdGlvbiBpcyAqaG93KiBjYW4gd2UgZnV6eiBpdD8gQ2FuIFN5emthbGxlciBkbyBpdD8gRG9lcyBpdCBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIGluamVjdCBJMkMgcmVzcG9uc2VzIGFuZCB0cmlnZ2VyIGludGVycnVwdHM/IE9yLCBkb2VzIGl0IGp1c3QgZnV6eiB0aGUgSTJDIHJlYWQvd3JpdGUgZGlyZWN0bHk/IFdhaXQsIHdhc24mIzM5O3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGEgdmhjaS9pMmMgZnV6emVyIGluIFN5emthbGxlcj8gSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGF0Li4uCgpBaCwgcmlnaHQsIGBORkNfRkRQX0kyQ2AuIFRoYXQmIzM5O3MgdGhlIEkyQyBkcml2ZXIgaW4gcXVlc3Rpb24uIFNvLCBpdCBkZWZpbml0ZWx5IHdhcnJhbnRzIGxvb2tpbmcgaW50byBgZmRwX25jaV9pMmNfcmVhZGAgYW5kIGBmZHBfbmNpX2kyY19pcnFfdGhyZWFkX2ZuYCBhbmQgbWFraW5nIHN1cmUgdGhleSYjMzk7cmUgaW5jbHVkZWQgaW4gYEZvY3VzU3ltYm9sc2AuIFl1cCwgYGZkcF9uY2lfaTJjX3JlYWRgIGlzIGluZGVlZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24sIHNvIGl0JiMzOTtzIGNyaXRpY2FsIHRvIGhhdmUgaXQgaW4gdGhlIHRhcmdldCBzeW1ib2wgbGlzdC4KCk5leHQsIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBCZXlvbmQgYE5GQ19GRFBgIGFuZCBgTkZDX0ZEUF9JMkNgLCBpcyBgTkZDX05DSWAgYWxzbyByZXF1aXJlZD8gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgdGhhdCBvdXQgZm9yIGEgY29tcGxldGUgZnV6emluZyBzZXR1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDU6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9LY29uZmlnPTI9Y29uZmlnIE5GQ19GRFBcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBGRFAgTkZDIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6NDpcdGRlcGVuZHMgb24gTkZDX05DSVxuZHJpdmVycy9uZmMvZmRwL0tjb25maWctNS1cdHNlbGVjdCBDUkNfQ0NJVFRcbi0tXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZz0xNT1jb25maWcgTkZDX0ZEUF9JMkNcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTE2LVx0dHJpc3RhdGUgXCYjMzQ7TkZDIEZEUCBpMmMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6MTc6XHRkZXBlbmRzIG9uIE5GQ19GRFAgXHUwMDI2XHUwMDI2IEkyQ1xuZHJpdmVycy9uZmMvZmRwL0tjb25maWctMTgtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyODkKCQkJCQkJCW91dHB1dDogMTE4CgkJCQkJCQl0aG91Z2h0czogMTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5GQyBGRFAgSTJDIEZpeCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIE5GQywgc3BlY2lmaWNhbGx5IHRoZSBGRFAgZHJpdmVyIHVzaW5nIEkyQy4gVGhlIHJlbGV2YW50IGNvbXBvbmVudHMgYXJlIGBORkNfTkNJYCwgYE5GQ19GRFBgLCBgTkZDX0ZEUF9JMkNgLCBhbmQganVzdCBwbGFpbiBvbGQgYEkyQ2AuIFdlIGtub3cgdGhhdCBgSTJDYCBpcyB0aGUgZ2VuZXJhbCBpbnRlcmZhY2UsIGFuZCBgTkZDX05DSWAgaXMgdGhlIGhpZ2hlci1sZXZlbCBORkMgYWJzdHJhY3Rpb24uIGBORkNfRkRQX0kyQ2AgYW5kIGBORkNfRkRQYCBhcmUgb2J2aW91c2x5IGltcG9ydGFudCBoZXJlLiBJJiMzOTttIHRoaW5raW5nIHdlIGNhbiBjZXJ0YWlubHkgZW5jb21wYXNzIGBORkNfRkRQX0kyQ2AgYW5kIGBORkNfRkRQYC4KCk5vdywgdG8gc29saWRpZnkgdGhpcywgbGV0JiMzOTtzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBgRm9jdXNTeW1ib2xzYC4gQWgsIHRoZXJlIGl0IGlzOiBgZmRwX25jaV9pMmNfcmVhZGAgaXMgdGhlIGtleSBmdW5jdGlvbiBpbiB0aGlzLgoKVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCwgYXMgSSB1bmRlcnN0YW5kIGl0LCBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgd2l0aGluIHRoZSBJMkMgcmVhZCBvcGVyYXRpb24gb2YgdGhlIEZEUCBORkMgZHJpdmVyLiBUaGUgZml4IGludm9sdmVzIGFkZGluZyBhIGJvdW5kcyBjaGVjayBvbiB0aGUgcmVhZCBsZW5ndGgsIHdoaWNoIGlzIGEgc2Vuc2libGUgYXBwcm9hY2guIFRoaXMgdnVsbmVyYWJpbGl0eSBpcyByZWFjaGFibGUgdGhyb3VnaCB0aGUgSTJDIGludGVycnVwdCB0aHJlYWQsIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgY29uY3VycmVuY3kgY29uY2VybiwgYW5kIGltcG9ydGFudGx5LCBpdCBjYW4gYmUgdHJpZ2dlcmVkIHRocm91Z2ggZnV6emluZyBieSBzaW11bGF0aW5nIHJlc3BvbnNlcyBmcm9tIGFuIEkyQyBkZXZpY2UuIFRoaXMgbWFrZXMgdGhlIHBvdGVudGlhbCBmb3IgZXhwbG9pdGF0aW9uIHJlYWwsIHdoaWNoIG1ha2VzIHRoaXMgcGF0Y2ggaW1wb3J0YW50LgoKQWxyaWdodCwgdGhhdCYjMzk7cyB0aGUgY29yZS4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB3ZSBkb2N1bWVudCB0aGlzIHByb3Blcmx5LiBUaW1lIHRvIHNldCB0aGVzZSByZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwNToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDX0ZEUCYjMzQ7LAogICAgJiMzNDtORkNfRkRQX0kyQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2ZkcF9uY2lfaTJjX3JlYWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBJMkMgcmVhZCBwYXRoIG9mIHRoZSBGRFAgTkZDIGRyaXZlciBieSBhZGRpbmcgYSBib3VuZHMgY2hlY2sgb24gdGhlIHJlYWQgbGVuZ3RoLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgdGhlIEkyQyBJUlEgdGhyZWFkIGFuZCBjYW4gYmUgZnV6emVkIGJ5IHNpbXVsYXRpbmcgSTJDIGRldmljZSByZXNwb25zZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19GRFAmIzM0OywKICAgICYjMzQ7TkZDX0ZEUF9JMkMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmZHBfbmNpX2kyY19yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6MzYuNjE2NDg5NTY0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI3MTI2NTYzNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZDX0ZEUFwiLFxuICAgIFwiTkZDX0ZEUF9JMkNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJmZHBfbmNpX2kyY19yZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBJMkMgcmVhZCBwYXRoIG9mIHRoZSBGRFAgTkZDIGRyaXZlciBieSBhZGRpbmcgYSBib3VuZHMgY2hlY2sgb24gdGhlIHJlYWQgbGVuZ3RoLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgdGhlIEkyQyBJUlEgdGhyZWFkIGFuZCBjYW4gYmUgZnV6emVkIGJ5IHNpbXVsYXRpbmcgSTJDIGRldmljZSByZXNwb25zZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDA1OjEyOjM2LjYxNjQ5NDM5NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUzMTM2MjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjg4MmNlNzUyZGY4NGI0MTUzNTAyNDNmMjhiZTg4N2I5YTU3YTRjMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCAxMiAwNToxMjozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmNcXG5pbmRleCBjMTg5NmExZDk3OGNkYy4uNTgxZjg1ZjBkZmE4Y2EgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZmMvZmRwL2kyYy5jXFxuKysrIGIvZHJpdmVycy9uZmMvZmRwL2kyYy5jXFxuQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5mY19waHlfb3BzIGkyY19waHlfb3BzID0ge1xcbiBcXG4gc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcXG4ge1xcbi1cXHRpbnQgciwgbGVuO1xcbitcXHRpbnQgciA9IC1FUkVNT1RFSU8sIGxlbjtcXG4gXFx0dTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrO1xcbiBcXHR1MTYgaTtcXG4gXFx0c3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHBoeS1cXHUwMDNlaTJjX2RldjtcXG5AQCAtMTQwLDYgKzE0MCwxMyBAQCBzdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKVxcbiBcXG4gXFx0XFx0bGVuID0gcGh5LVxcdTAwM2VuZXh0X3JlYWRfc2l6ZTtcXG4gXFxuK1xcdFxcdGlmIChsZW4gXFx1MDAzZSBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRCkge1xcbitcXHRcXHRcXHRkZXZfZGJnKFxcdTAwMjZjbGllbnQtXFx1MDAzZWRldiwgXFxcIiVzOiByZWFkIHNpemUgJWQgdG9vIGxhcmdlXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHRfX2Z1bmNfXywgbGVuKTtcXG4rXFx0XFx0XFx0cGh5LVxcdTAwM2VuZXh0X3JlYWRfc2l6ZSA9IEZEUF9OQ0lfSTJDX01JTl9QQVlMT0FEO1xcbitcXHRcXHRcXHRnb3RvIGZsdXNoO1xcbitcXHRcXHR9XFxuK1xcbiBcXHRcXHRyID0gaTJjX21hc3Rlcl9yZWN2KGNsaWVudCwgdG1wLCBsZW4pO1xcbiBcXHRcXHRpZiAociAhPSBsZW4pIHtcXG4gXFx0XFx0XFx0ZGV2X2RiZyhcXHUwMDI2Y2xpZW50LVxcdTAwM2VkZXYsIFxcXCIlczogaTJjIHJlY3YgZXJyOiAlZFxcXFxuXFxcIixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6MzcuMDcwMzY3ODgxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMjI1ODc2OTc1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfRkRQXCIsXG4gICAgXCJORkNfRkRQX0kyQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZkcF9uY2lfaTJjX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gdGhlIEkyQyByZWFkIHBhdGggb2YgdGhlIEZEUCBORkMgZHJpdmVyIGJ5IGFkZGluZyBhIGJvdW5kcyBjaGVjayBvbiB0aGUgcmVhZCBsZW5ndGguIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSB0aGUgSTJDIElSUSB0aHJlYWQgYW5kIGNhbiBiZSBmdXp6ZWQgYnkgc2ltdWxhdGluZyBJMkMgZGV2aWNlIHJlc3BvbnNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ODgyY2U3NTJkZjg0YjQxNTM1MDI0M2YyOGJlODg3YjlhNTdhNGMxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMTIgMDU6MTI6MzUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmNcbmluZGV4IGMxODk2YTFkOTc4Y2RjLi41ODFmODVmMGRmYThjYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmZjL2ZkcC9pMmMuY1xuKysrIGIvZHJpdmVycy9uZmMvZmRwL2kyYy5jXG5AQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7XG4gXG4gc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbiB7XG4tXHRpbnQgciwgbGVuO1xuK1x0aW50IHIgPSAtRVJFTU9URUlPLCBsZW47XG4gXHR1OCB0bXBbRkRQX05DSV9JMkNfTUFYX1BBWUxPQURdLCBscmMsIGs7XG4gXHR1MTYgaTtcbiBcdHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSBwaHktXHUwMDNlaTJjX2RldjtcbkBAIC0xNDAsNiArMTQwLDEzIEBAIHN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcmVhZChzdHJ1Y3QgZmRwX2kyY19waHkgKnBoeSwgc3RydWN0IHNrX2J1ZmYgKipza2IpXG4gXG4gXHRcdGxlbiA9IHBoeS1cdTAwM2VuZXh0X3JlYWRfc2l6ZTtcbiBcbitcdFx0aWYgKGxlbiBcdTAwM2UgRkRQX05DSV9JMkNfTUFYX1BBWUxPQUQpIHtcbitcdFx0XHRkZXZfZGJnKFx1MDAyNmNsaWVudC1cdTAwM2VkZXYsIFwiJXM6IHJlYWQgc2l6ZSAlZCB0b28gbGFyZ2VcXG5cIixcbitcdFx0XHRcdF9fZnVuY19fLCBsZW4pO1xuK1x0XHRcdHBoeS1cdTAwM2VuZXh0X3JlYWRfc2l6ZSA9IEZEUF9OQ0lfSTJDX01JTl9QQVlMT0FEO1xuK1x0XHRcdGdvdG8gZmx1c2g7XG4rXHRcdH1cbitcbiBcdFx0ciA9IGkyY19tYXN0ZXJfcmVjdihjbGllbnQsIHRtcCwgbGVuKTtcbiBcdFx0aWYgKHIgIT0gbGVuKSB7XG4gXHRcdFx0ZGV2X2RiZyhcdTAwMjZjbGllbnQtXHUwMDNlZGV2LCBcIiVzOiBpMmMgcmVjdiBlcnI6ICVkXFxuXCIsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjozNy4wNzAzNjkxODFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzMzNTY4MDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTkZDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQncyBpbnRyb2R1Y2luZyBhIHBheWxvYWQgc2l6ZSBjaGVjayB3aXRoaW4gdGhlIGBmZHBfbmNpX2kyY19yZWFkYCBmdW5jdGlvbi4gVGhlIGtleSBpcyB0aGF0IGBsZW5gLCB3aGljaCBJJ20gYXNzdW1pbmcgaXMgdGhlIHJlYWQgbGVuZ3RoLCBpcyBiZWluZyBjb21wYXJlZCBhZ2FpbnN0IGBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRGAuXG5cbklmIGBsZW5gIGV4Y2VlZHMgdGhhdCBtYXhpbXVtLCB3ZSdyZSBkb2luZyBhIHJlc2V0IG9mIGBwaHktXHUwMDNlbmV4dF9yZWFkX3NpemVgLCBhbmQgdGhlbiBpdCBqdW1wcyB0byB0aGUgYGZsdXNoYCBzdGF0ZSwgc2V0dGluZyBgcmAgdG8gYC1FUkVNT1RFSU9gLiBUaGlzIGZlZWxzIGxpa2UgaXQncyBhIGRlZmVuc2l2ZSBtZWFzdXJlLCBndWFyZGluZyBhZ2FpbnN0IHNvbWUga2luZCBvZiBidWZmZXIgb3ZlcmZsb3cgb3IgdW5leHBlY3RlZCBkYXRhIGxlbmd0aC4gVGhlIGBFUkVNT1RFSU9gIGVycm9yIHN1Z2dlc3RzIGEgcmVtb3RlIEkvTyBlcnJvciDigJMgc29tZXRoaW5nIHdlbnQgd3JvbmcgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBORkMgY2hpcC5cblxuR2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGVzZSBORkMgYXJjaGl0ZWN0dXJlcywgbXkgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGNvbnRleHQgYXJvdW5kIHRoZXNlIGNoYW5nZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEYCBpcyBkZWZpbmVkIGFzLCBhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIHJlc2V0IHdpdGhpbiB0aGUgYGZsdXNoYCBzdGF0ZS4gTGV0J3Mgc2VlIGhvdyBgcGh5LVx1MDAzZW5leHRfcmVhZF9zaXplYCBpcyB1c2VkLCB0b28uXG5cbkkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmlsZSB0byBzZWUgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0IGFuZCB3aGV0aGVyIHRoZXJlJ3MgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGluIHBsYXkgdGhhdCBtaWdodCBhZmZlY3QgdGhpcyBuZXcgY2hlY2suIElzIHRoaXMgc3BlY2lmaWMgdG8gYSBjZXJ0YWluIE5GQyBjaGlwLCBvciBhIGdlbmVyaWMgaW1wcm92ZW1lbnQgdG8gdGhlIEkyQyBpbnRlcmZhY2U/IEdvdHRhIGRpZyBkZWVwZXIgaW50byBgZHJpdmVycy9uZmMvZmRwL2kyYy5jYCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIHBpY3R1cmUgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA4OSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDA1OjEyOjQxLjQwMzkzOTAyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTg4OTI4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9mZHAvaTJjLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvZmRwL2kyYy5jLTI5LSNkZWZpbmUgRkRQX05DSV9JMkNfTUlOX1BBWUxPQURcXHQ1XFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjMwOiNkZWZpbmUgRkRQX05DSV9JMkNfTUFYX1BBWUxPQURcXHQyNjFcXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMzEtXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM9MTI5PXN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcmVhZChzdHJ1Y3QgZmRwX2kyY19waHkgKnBoeSwgc3RydWN0IHNrX2J1ZmYgKipza2IpXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTMxLVxcdGludCByID0gLUVSRU1PVEVJTywgbGVuO1xcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxMzI6XFx0dTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrO1xcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzMtXFx0dTE2IGk7XFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTQyLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxNDM6XFx0XFx0aWYgKGxlbiBcXHUwMDNlIEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEKSB7XFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTE0NC1cXHRcXHRcXHRkZXZfZGJnKFxcdTAwMjZjbGllbnQtXFx1MDAzZWRldiwgXFxcIiVzOiByZWFkIHNpemUgJWQgdG9vIGxhcmdlXFxcXG5cXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo0MS40NTk4MzIwOTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODA3NzA4ODY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipLY29uZmlnIEluc3BlY3Rpb24gVGltZSoqXG5cblJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBkcml2ZXIuIFRoZSBLY29uZmlnIGZpbGUgaXMgd2hlcmUgdGhlIHJ1YmJlciBtZWV0cyB0aGUgcm9hZCB3aGVuIGl0IGNvbWVzIHRvIGNvbnRyb2xsaW5nIGl0cyBidWlsZCBhbmQgYmVoYXZpb3IuIEknbSBnb2luZyB0byBjYXJlZnVsbHkgZGlzc2VjdCBpdC4gSSdsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTogZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBoZWxwIHRleHQsIGFuZCBvZiBjb3Vyc2UsIHRoZSBhY3R1YWwgc3ltYm9scyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIHZhcmlvdXMgZmVhdHVyZXMuIFRoaXMgaXMgd2hlcmUgSSBmaWd1cmUgb3V0IHdoYXQncyBlbmFibGVkLCBkaXNhYmxlZCwgb3IgY29uZGl0aW9uYWxseSBjb21waWxlZC4gS25vd2luZyB0aGUgS2NvbmZpZyBkZXRhaWxzLCBhbmQgdGhlIGFzc29jaWF0ZWQgZGVwZW5kZW5jaWVzIHdpdGggb3RoZXIgZHJpdmVycyBvciBoYXJkd2FyZSBpcyBhYnNvbHV0ZWx5IGtleSB0byB1bmRlcnN0YW5kaW5nIGl0cyBvdmVyYWxsIGltcGFjdCBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBzeXN0ZW0uIEknbGwgYmUgbWFraW5nIG5vdGUgb2YgYW55IHVudXN1YWwgY29uZmlndXJhdGlvbnMgb3IgcG90ZW50aWFsIGNvbmZsaWN0cyByaWdodCBhd2F5LiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NzUsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo0NC4yNjc1NDM0NjZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM1MzY4ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GQ19GRFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvZmRwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvZmRwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZzoyOmNvbmZpZyBORkNfRkRQXFxuZHJpdmVycy9uZmMvZmRwL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgRkRQIE5GQyBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xNC1cXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZzoxNTpjb25maWcgTkZDX0ZEUF9JMkNcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xNi1cXHR0cmlzdGF0ZSBcXFwiTkZDIEZEUCBpMmMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6NDQuMzIxMDg2MDMxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY0NzI1MTg3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBORkMgRkRQIEkyQyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGluIHF1ZXN0aW9uIGhlcmUgaXMgYE5GQ19GRFBfSTJDYC4gUmlnaHQsIHRoaXMgaXMgYW4gSTJDIGRldmljZS4gTm93IHRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgYXQgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIHNldHVwPyBJMkMgdXN1YWxseSBwbGF5cyBuaWNlbHkgd2l0aCBzdHViIGRyaXZlcnMsIGxpa2UgaTJjLXN0dWIsIG9yIHBlcmhhcHMgSSBjYW4gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgSTJDIGZ1enplci4gSG9sZCBvbiwgd2Fzbid0IHRoZXJlIHNvbWUgSTJDIHN1cHBvcnQgaW4gc3l6a2FsbGVyP1xuXG5UaGUgY3J1Y2lhbCBmdW5jdGlvbiBzZWVtcyB0byBiZSBgZmRwX25jaV9pMmNfcmVhZGAuIExldCdzIHNlZSBpZiBmdXp6aW5nIHRoaXMgaXMgYWN0dWFsbHkgd29ydGh3aGlsZS4gWWVwLCBnb29kIGNhbGwgLSBpdCBsb29rcyBsaWtlIHRoZXJlJ3MgYSBidWZmZXIgb3ZlcmZsb3cgb3IgcG90ZW50aWFsbHkgb3V0LW9mLWJvdW5kcyByZWFkL3dyaXRlIGJlaW5nIGZpeGVkIG9uIHRoYXQgYHRtcGAgdmFyaWFibGUsIHdoaWNoLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSwgaXMgc2l6ZWQgdG8gYEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEYC4gVGhhdCdzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuXG5cblRvIGVuYWJsZSB0aGlzLCBJJ2xsIG5lZWQgYE5GQ19GRFBgIGFuZCBgTkZDX0ZEUF9JMkNgIGNvbmZpZ3MuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBJJ2xsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AgZm9yIHRoYXQgYGZkcF9uY2lfaTJjX3JlYWRgIGZ1bmN0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIHZ1bG5lcmFiaWxpdHkgYmV0dGVyIGFuZCBwbGFuIG15IGZ1enppbmcgc3RyYXRlZ3kuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNTUsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6NDguOTY4MzM5NDU1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MzM1ODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZkcF9uY2lfaTJjX3JlYWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvZmRwL2kyYy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmZjL2ZkcC9pMmMuYz0xMjM9c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfcGh5X29wcyBpMmNfcGh5X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMjgtXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjEyOTpzdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzAte1xcbi0tXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jPTIwMj1zdGF0aWMgaXJxcmV0dXJuX3QgZmRwX25jaV9pMmNfaXJxX3RocmVhZF9mbihpbnQgaXJxLCB2b2lkICpwaHlfaWQpXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMjEyLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoyMTM6XFx0ciA9IGZkcF9uY2lfaTJjX3JlYWQocGh5LCBcXHUwMDI2c2tiKTtcXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMjE0LVxcbi0tXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTIyMy1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM6MjI0OnN0YXRpYyB2b2lkIGZkcF9uY2lfaTJjX3JlYWRfZGV2aWNlX3Byb3BlcnRpZXMoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yMjUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIHU4ICpjbG9ja190eXBlLCB1MzIgKmNsb2NrX2ZyZXEsXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM9Mjg1PXN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudClcXG4tLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzQtXFx0LyogcmVhZCBkZXZpY2UgcHJvcGVydGllcyB0byBnZXQgdGhlIGNsb2NrIGFuZCBwcm9kdWN0aW9uIHNldHRpbmdzICovXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjMzNTpcXHRmZHBfbmNpX2kyY19yZWFkX2RldmljZV9wcm9wZXJ0aWVzKGRldiwgXFx1MDAyNmNsb2NrX3R5cGUsIFxcdTAwMjZjbG9ja19mcmVxLFxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzYtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmZ3X3ZzY19jZmcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo0OS4wMjM2ODAxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIyNzUxMjIxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBORkMgRkRQIEkyQyBEcml2ZXI6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gYGZkcF9uY2lfaTJjX3JlYWRgIGlzIGNhbGxlZCB3aXRoaW4gYGZkcF9uY2lfaTJjX2lycV90aHJlYWRfZm5gLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCdzIGludGVycnVwdC1kcml2ZW4uIFRoYXQncyBnb29kIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLiBUaGUgaW50ZXJydXB0IHRyaWdnZXJzIHRoZSB0aHJlYWQsIGFuZCBpZiB0aGUgSTJDIGRldmljZSBpcyBpbnN0YW50aWF0ZWQgYW5kIHRoZSBpbnRlcnJ1cHQgaXMgdHJpZ2dlcmVkLCB0aGVuIHRoZW9yZXRpY2FsbHksIHllcywgdGhpcyBpcyBmdXp6YWJsZS5cblxuTm93LCB0aGUgcXVlc3Rpb24gaXMgKmhvdyogY2FuIHdlIGZ1enogaXQ/IENhbiBTeXprYWxsZXIgZG8gaXQ/IERvZXMgaXQgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBpbmplY3QgSTJDIHJlc3BvbnNlcyBhbmQgdHJpZ2dlciBpbnRlcnJ1cHRzPyBPciwgZG9lcyBpdCBqdXN0IGZ1enogdGhlIEkyQyByZWFkL3dyaXRlIGRpcmVjdGx5PyBXYWl0LCB3YXNuJ3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGEgdmhjaS9pMmMgZnV6emVyIGluIFN5emthbGxlcj8gSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGF0Li4uXG5cbkFoLCByaWdodCwgYE5GQ19GRFBfSTJDYC4gVGhhdCdzIHRoZSBJMkMgZHJpdmVyIGluIHF1ZXN0aW9uLiBTbywgaXQgZGVmaW5pdGVseSB3YXJyYW50cyBsb29raW5nIGludG8gYGZkcF9uY2lfaTJjX3JlYWRgIGFuZCBgZmRwX25jaV9pMmNfaXJxX3RocmVhZF9mbmAgYW5kIG1ha2luZyBzdXJlIHRoZXkncmUgaW5jbHVkZWQgaW4gYEZvY3VzU3ltYm9sc2AuIFl1cCwgYGZkcF9uY2lfaTJjX3JlYWRgIGlzIGluZGVlZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24sIHNvIGl0J3MgY3JpdGljYWwgdG8gaGF2ZSBpdCBpbiB0aGUgdGFyZ2V0IHN5bWJvbCBsaXN0LlxuXG5OZXh0LCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gQmV5b25kIGBORkNfRkRQYCBhbmQgYE5GQ19GRFBfSTJDYCwgaXMgYE5GQ19OQ0lgIGFsc28gcmVxdWlyZWQ/IEknbGwgbmVlZCB0byBmaWd1cmUgdGhhdCBvdXQgZm9yIGEgY29tcGxldGUgZnV6emluZyBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQzOSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo1NC4yNTExOTM5MloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMyOTE5NTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9mZHAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25mYy9mZHAvS2NvbmZpZz0yPWNvbmZpZyBORkNfRkRQXFxuZHJpdmVycy9uZmMvZmRwL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgRkRQIE5GQyBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIE5GQ19OQ0lcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy01LVxcdHNlbGVjdCBDUkNfQ0NJVFRcXG4tLVxcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnPTE1PWNvbmZpZyBORkNfRkRQX0kyQ1xcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTE2LVxcdHRyaXN0YXRlIFxcXCJORkMgRkRQIGkyYyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gTkZDX0ZEUCBcXHUwMDI2XFx1MDAyNiBJMkNcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xOC1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDA1OjEyOjU0LjMwNDQ5MDYxNVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTQzNDYxNDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5GQyBGRFAgSTJDIEZpeCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gV2UncmUgZGVhbGluZyB3aXRoIE5GQywgc3BlY2lmaWNhbGx5IHRoZSBGRFAgZHJpdmVyIHVzaW5nIEkyQy4gVGhlIHJlbGV2YW50IGNvbXBvbmVudHMgYXJlIGBORkNfTkNJYCwgYE5GQ19GRFBgLCBgTkZDX0ZEUF9JMkNgLCBhbmQganVzdCBwbGFpbiBvbGQgYEkyQ2AuIFdlIGtub3cgdGhhdCBgSTJDYCBpcyB0aGUgZ2VuZXJhbCBpbnRlcmZhY2UsIGFuZCBgTkZDX05DSWAgaXMgdGhlIGhpZ2hlci1sZXZlbCBORkMgYWJzdHJhY3Rpb24uIGBORkNfRkRQX0kyQ2AgYW5kIGBORkNfRkRQYCBhcmUgb2J2aW91c2x5IGltcG9ydGFudCBoZXJlLiBJJ20gdGhpbmtpbmcgd2UgY2FuIGNlcnRhaW5seSBlbmNvbXBhc3MgYE5GQ19GRFBfSTJDYCBhbmQgYE5GQ19GRFBgLlxuXG5Ob3csIHRvIHNvbGlkaWZ5IHRoaXMsIGxldCdzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBgRm9jdXNTeW1ib2xzYC4gQWgsIHRoZXJlIGl0IGlzOiBgZmRwX25jaV9pMmNfcmVhZGAgaXMgdGhlIGtleSBmdW5jdGlvbiBpbiB0aGlzLlxuXG5UaGUgY29yZSBvZiB0aGlzIHBhdGNoLCBhcyBJIHVuZGVyc3RhbmQgaXQsIGFkZHJlc3NlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgdnVsbmVyYWJpbGl0eSB3aXRoaW4gdGhlIEkyQyByZWFkIG9wZXJhdGlvbiBvZiB0aGUgRkRQIE5GQyBkcml2ZXIuIFRoZSBmaXggaW52b2x2ZXMgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aCwgd2hpY2ggaXMgYSBzZW5zaWJsZSBhcHByb2FjaC4gVGhpcyB2dWxuZXJhYmlsaXR5IGlzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBJMkMgaW50ZXJydXB0IHRocmVhZCwgc28gd2UncmUgbG9va2luZyBhdCBhIGNvbmN1cnJlbmN5IGNvbmNlcm4sIGFuZCBpbXBvcnRhbnRseSwgaXQgY2FuIGJlIHRyaWdnZXJlZCB0aHJvdWdoIGZ1enppbmcgYnkgc2ltdWxhdGluZyByZXNwb25zZXMgZnJvbSBhbiBJMkMgZGV2aWNlLiBUaGlzIG1ha2VzIHRoZSBwb3RlbnRpYWwgZm9yIGV4cGxvaXRhdGlvbiByZWFsLCB3aGljaCBtYWtlcyB0aGlzIHBhdGNoIGltcG9ydGFudC5cblxuQWxyaWdodCwgdGhhdCdzIHRoZSBjb3JlLiBMZXQncyBtYWtlIHN1cmUgd2UgZG9jdW1lbnQgdGhpcyBwcm9wZXJseS4gVGltZSB0byBzZXQgdGhlc2UgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI4OSwiT3V0cHV0VG9rZW5zIjoxMTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6NTkuMjQ3OTU1MDAxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODExNzgxNjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ19GRFBcIixcbiAgICBcIk5GQ19GRFBfSTJDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZmRwX25jaV9pMmNfcmVhZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ19GRFBcIixcbiAgICBcIk5GQ19GRFBfSTJDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZmRwX25jaV9pMmNfcmVhZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-12 04:29:19 +0000 UTC FinishedAt: 2026-07-12 05:13:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_FDP", "NFC_FDP_I2C" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC_FDP", "NFC_FDP_I2C" ], "series_id": "e9f1581f-209e-4f86-8374-60e22bf8ae6a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "fdp_nci_i2c_read" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19GRFAmIzM0OywKICAgICYjMzQ7TkZDX0ZEUF9JMkMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmZHBfbmNpX2kyY19yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjg4MmNlNzUyZGY4NGI0MTUzNTAyNDNmMjhiZTg4N2I5YTU3YTRjMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDEyIDA1OjEyOjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmZjL2ZkcC9pMmMuYyBiL2RyaXZlcnMvbmZjL2ZkcC9pMmMuY1xuaW5kZXggYzE4OTZhMWQ5NzhjZGMuLjU4MWY4NWYwZGZhOGNhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZmMvZmRwL2kyYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmNcbkBAIC0xMjgsNyAmIzQzOzEyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7XG4gXG4gc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbiB7XG4tXHRpbnQgciwgbGVuO1xuJiM0MztcdGludCByID0gLUVSRU1PVEVJTywgbGVuO1xuIFx0dTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrO1xuIFx0dTE2IGk7XG4gXHRzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gcGh5LVx1MDAzZWkyY19kZXY7XG5AQCAtMTQwLDYgJiM0MzsxNDAsMTMgQEAgc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbiBcbiBcdFx0bGVuID0gcGh5LVx1MDAzZW5leHRfcmVhZF9zaXplO1xuIFxuJiM0MztcdFx0aWYgKGxlbiBcdTAwM2UgRkRQX05DSV9JMkNfTUFYX1BBWUxPQUQpIHtcbiYjNDM7XHRcdFx0ZGV2X2RiZyhcdTAwMjZjbGllbnQtXHUwMDNlZGV2LCBcJiMzNDslczogcmVhZCBzaXplICVkIHRvbyBsYXJnZVxcblwmIzM0OyxcbiYjNDM7XHRcdFx0XHRfX2Z1bmNfXywgbGVuKTtcbiYjNDM7XHRcdFx0cGh5LVx1MDAzZW5leHRfcmVhZF9zaXplID0gRkRQX05DSV9JMkNfTUlOX1BBWUxPQUQ7XG4mIzQzO1x0XHRcdGdvdG8gZmx1c2g7XG4mIzQzO1x0XHR9XG4mIzQzO1xuIFx0XHRyID0gaTJjX21hc3Rlcl9yZWN2KGNsaWVudCwgdG1wLCBsZW4pO1xuIFx0XHRpZiAociAhPSBsZW4pIHtcbiBcdFx0XHRkZXZfZGJnKFx1MDAyNmNsaWVudC1cdTAwM2VkZXYsIFwmIzM0OyVzOiBpMmMgcmVjdiBlcnI6ICVkXFxuXCYjMzQ7LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19GRFAmIzM0OywKICAgICYjMzQ7TkZDX0ZEUF9JMkMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmZHBfbmNpX2kyY19yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ODgyY2U3NTJkZjg0YjQxNTM1MDI0M2YyOGJlODg3YjlhNTdhNGMxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMTIgMDU6MTI6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmMKaW5kZXggYzE4OTZhMWQ5NzhjZGMuLjU4MWY4NWYwZGZhOGNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZmMvZmRwL2kyYy5jCkBAIC0xMjgsNyAmIzQzOzEyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7CiAKIHN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcmVhZChzdHJ1Y3QgZmRwX2kyY19waHkgKnBoeSwgc3RydWN0IHNrX2J1ZmYgKipza2IpCiB7Ci0JaW50IHIsIGxlbjsKJiM0MzsJaW50IHIgPSAtRVJFTU9URUlPLCBsZW47CiAJdTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrOwogCXUxNiBpOwogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSBwaHktJmd0O2kyY19kZXY7CkBAIC0xNDAsNiAmIzQzOzE0MCwxMyBAQCBzdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKQogCiAJCWxlbiA9IHBoeS0mZ3Q7bmV4dF9yZWFkX3NpemU7CiAKJiM0MzsJCWlmIChsZW4gJmd0OyBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRCkgewomIzQzOwkJCWRldl9kYmcoJmFtcDtjbGllbnQtJmd0O2RldiwgJiMzNDslczogcmVhZCBzaXplICVkIHRvbyBsYXJnZVxuJiMzNDssCiYjNDM7CQkJCV9fZnVuY19fLCBsZW4pOwomIzQzOwkJCXBoeS0mZ3Q7bmV4dF9yZWFkX3NpemUgPSBGRFBfTkNJX0kyQ19NSU5fUEFZTE9BRDsKJiM0MzsJCQlnb3RvIGZsdXNoOwomIzQzOwkJfQomIzQzOwogCQlyID0gaTJjX21hc3Rlcl9yZWN2KGNsaWVudCwgdG1wLCBsZW4pOwogCQlpZiAociAhPSBsZW4pIHsKIAkJCWRldl9kYmcoJmFtcDtjbGllbnQtJmd0O2RldiwgJiMzNDslczogaTJjIHJlY3YgZXJyOiAlZFxuJiMzNDssCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwODkKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAxMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBORkMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBwYXlsb2FkIHNpemUgY2hlY2sgd2l0aGluIHRoZSBgZmRwX25jaV9pMmNfcmVhZGAgZnVuY3Rpb24uIFRoZSBrZXkgaXMgdGhhdCBgbGVuYCwgd2hpY2ggSSYjMzk7bSBhc3N1bWluZyBpcyB0aGUgcmVhZCBsZW5ndGgsIGlzIGJlaW5nIGNvbXBhcmVkIGFnYWluc3QgYEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEYC4KCklmIGBsZW5gIGV4Y2VlZHMgdGhhdCBtYXhpbXVtLCB3ZSYjMzk7cmUgZG9pbmcgYSByZXNldCBvZiBgcGh5LSZndDtuZXh0X3JlYWRfc2l6ZWAsIGFuZCB0aGVuIGl0IGp1bXBzIHRvIHRoZSBgZmx1c2hgIHN0YXRlLCBzZXR0aW5nIGByYCB0byBgLUVSRU1PVEVJT2AuIFRoaXMgZmVlbHMgbGlrZSBpdCYjMzk7cyBhIGRlZmVuc2l2ZSBtZWFzdXJlLCBndWFyZGluZyBhZ2FpbnN0IHNvbWUga2luZCBvZiBidWZmZXIgb3ZlcmZsb3cgb3IgdW5leHBlY3RlZCBkYXRhIGxlbmd0aC4gVGhlIGBFUkVNT1RFSU9gIGVycm9yIHN1Z2dlc3RzIGEgcmVtb3RlIEkvTyBlcnJvciDigJMgc29tZXRoaW5nIHdlbnQgd3JvbmcgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBORkMgY2hpcC4KCkdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlc2UgTkZDIGFyY2hpdGVjdHVyZXMsIG15IG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBjb250ZXh0IGFyb3VuZCB0aGVzZSBjaGFuZ2VzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRGAgaXMgZGVmaW5lZCBhcywgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyByZXNldCB3aXRoaW4gdGhlIGBmbHVzaGAgc3RhdGUuIExldCYjMzk7cyBzZWUgaG93IGBwaHktJmd0O25leHRfcmVhZF9zaXplYCBpcyB1c2VkLCB0b28uCgpJIHNob3VsZCBhbHNvIGNoZWNrIHRoZSBLY29uZmlnIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpbGUgdG8gc2VlIGhvdyB0aGlzIGRyaXZlciBpcyBiZWluZyBidWlsdCBhbmQgd2hldGhlciB0aGVyZSYjMzk7cyBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gaW4gcGxheSB0aGF0IG1pZ2h0IGFmZmVjdCB0aGlzIG5ldyBjaGVjay4gSXMgdGhpcyBzcGVjaWZpYyB0byBhIGNlcnRhaW4gTkZDIGNoaXAsIG9yIGEgZ2VuZXJpYyBpbXByb3ZlbWVudCB0byB0aGUgSTJDIGludGVyZmFjZT8gR290dGEgZGlnIGRlZXBlciBpbnRvIGBkcml2ZXJzL25mYy9mZHAvaTJjLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgcGljdHVyZSBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvZmRwL2kyYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yOS0jZGVmaW5lIEZEUF9OQ0lfSTJDX01JTl9QQVlMT0FEXHQ1XG5kcml2ZXJzL25mYy9mZHAvaTJjLmM6MzA6I2RlZmluZSBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRFx0MjYxXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMzEtXG4tLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jPTEyOT1zdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKVxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzEtXHRpbnQgciA9IC1FUkVNT1RFSU8sIGxlbjtcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxMzI6XHR1OCB0bXBbRkRQX05DSV9JMkNfTUFYX1BBWUxPQURdLCBscmMsIGs7XG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTMzLVx0dTE2IGk7XG4tLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTE0Mi1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxNDM6XHRcdGlmIChsZW4gXHUwMDNlIEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEKSB7XG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTQ0LVx0XHRcdGRldl9kYmcoXHUwMDI2Y2xpZW50LVx1MDAzZWRldiwgXCYjMzQ7JXM6IHJlYWQgc2l6ZSAlZCB0b28gbGFyZ2VcXG5cJiMzNDssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDU6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk3NQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipLY29uZmlnIEluc3BlY3Rpb24gVGltZSoqCgpSaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgZHJpdmVyLiBUaGUgS2NvbmZpZyBmaWxlIGlzIHdoZXJlIHRoZSBydWJiZXIgbWVldHMgdGhlIHJvYWQgd2hlbiBpdCBjb21lcyB0byBjb250cm9sbGluZyBpdHMgYnVpbGQgYW5kIGJlaGF2aW9yLiBJJiMzOTttIGdvaW5nIHRvIGNhcmVmdWxseSBkaXNzZWN0IGl0LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTogZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBoZWxwIHRleHQsIGFuZCBvZiBjb3Vyc2UsIHRoZSBhY3R1YWwgc3ltYm9scyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIHZhcmlvdXMgZmVhdHVyZXMuIFRoaXMgaXMgd2hlcmUgSSBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgZW5hYmxlZCwgZGlzYWJsZWQsIG9yIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQuIEtub3dpbmcgdGhlIEtjb25maWcgZGV0YWlscywgYW5kIHRoZSBhc3NvY2lhdGVkIGRlcGVuZGVuY2llcyB3aXRoIG90aGVyIGRyaXZlcnMgb3IgaGFyZHdhcmUgaXMgYWJzb2x1dGVseSBrZXkgdG8gdW5kZXJzdGFuZGluZyBpdHMgb3ZlcmFsbCBpbXBhY3QgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgc3lzdGVtLiBJJiMzOTtsbCBiZSBtYWtpbmcgbm90ZSBvZiBhbnkgdW51c3VhbCBjb25maWd1cmF0aW9ucyBvciBwb3RlbnRpYWwgY29uZmxpY3RzIHJpZ2h0IGF3YXkuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290IQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORkNfRkRQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvZmRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvZmRwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnOjI6Y29uZmlnIE5GQ19GRFBcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBGRFAgTkZDIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTE0LVxuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6MTU6Y29uZmlnIE5GQ19GRFBfSTJDXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xNi1cdHRyaXN0YXRlIFwmIzM0O05GQyBGRFAgaTJjIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwNToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzU1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE5GQyBGRFAgSTJDIERyaXZlcioqCgpPa2F5LCBzbyB0aGUgY29uZmlnIGluIHF1ZXN0aW9uIGhlcmUgaXMgYE5GQ19GRFBfSTJDYC4gUmlnaHQsIHRoaXMgaXMgYW4gSTJDIGRldmljZS4gTm93IHRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgYXQgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIHNldHVwPyBJMkMgdXN1YWxseSBwbGF5cyBuaWNlbHkgd2l0aCBzdHViIGRyaXZlcnMsIGxpa2UgaTJjLXN0dWIsIG9yIHBlcmhhcHMgSSBjYW4gbGV2ZXJhZ2Ugc3l6a2FsbGVyJiMzOTtzIEkyQyBmdXp6ZXIuIEhvbGQgb24sIHdhc24mIzM5O3QgdGhlcmUgc29tZSBJMkMgc3VwcG9ydCBpbiBzeXprYWxsZXI/CgpUaGUgY3J1Y2lhbCBmdW5jdGlvbiBzZWVtcyB0byBiZSBgZmRwX25jaV9pMmNfcmVhZGAuIExldCYjMzk7cyBzZWUgaWYgZnV6emluZyB0aGlzIGlzIGFjdHVhbGx5IHdvcnRod2hpbGUuIFllcCwgZ29vZCBjYWxsIC0gaXQgbG9va3MgbGlrZSB0aGVyZSYjMzk7cyBhIGJ1ZmZlciBvdmVyZmxvdyBvciBwb3RlbnRpYWxseSBvdXQtb2YtYm91bmRzIHJlYWQvd3JpdGUgYmVpbmcgZml4ZWQgb24gdGhhdCBgdG1wYCB2YXJpYWJsZSwgd2hpY2gsIGlmIEkgcmVtZW1iZXIgY29ycmVjdGx5LCBpcyBzaXplZCB0byBgRkRQX05DSV9JMkNfTUFYX1BBWUxPQURgLiBUaGF0JiMzOTtzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuCgpUbyBlbmFibGUgdGhpcywgSSYjMzk7bGwgbmVlZCBgTkZDX0ZEUGAgYW5kIGBORkNfRkRQX0kyQ2AgY29uZmlncy4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGUuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AgZm9yIHRoYXQgYGZkcF9uY2lfaTJjX3JlYWRgIGZ1bmN0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIHZ1bG5lcmFiaWxpdHkgYmV0dGVyIGFuZCBwbGFuIG15IGZ1enppbmcgc3RyYXRlZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDU6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmRwX25jaV9pMmNfcmVhZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9pMmMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9mZHAvaTJjLmM9MTIzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTEyOC1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxMjk6c3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzAte1xuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYz0yMDI9c3RhdGljIGlycXJldHVybl90IGZkcF9uY2lfaTJjX2lycV90aHJlYWRfZm4oaW50IGlycSwgdm9pZCAqcGh5X2lkKVxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yMTItXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM6MjEzOlx0ciA9IGZkcF9uY2lfaTJjX3JlYWQocGh5LCBcdTAwMjZza2IpO1xuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTIxNC1cbi0tXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMjIzLVxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjIyNDpzdGF0aWMgdm9pZCBmZHBfbmNpX2kyY19yZWFkX2RldmljZV9wcm9wZXJ0aWVzKHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yMjUtXHRcdFx0XHRcdCAgICAgICB1OCAqY2xvY2tfdHlwZSwgdTMyICpjbG9ja19mcmVxLFxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYz0yODU9c3RhdGljIGludCBmZHBfbmNpX2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KVxuLS1cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzQtXHQvKiByZWFkIGRldmljZSBwcm9wZXJ0aWVzIHRvIGdldCB0aGUgY2xvY2sgYW5kIHByb2R1Y3Rpb24gc2V0dGluZ3MgKi9cbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzozMzU6XHRmZHBfbmNpX2kyY19yZWFkX2RldmljZV9wcm9wZXJ0aWVzKGRldiwgXHUwMDI2Y2xvY2tfdHlwZSwgXHUwMDI2Y2xvY2tfZnJlcSxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzYtXHRcdFx0XHRcdCAgIFx1MDAyNmZ3X3ZzY19jZmcpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MzkKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAyNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgTkZDIEZEUCBJMkMgRHJpdmVyOiBBIERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBgZmRwX25jaV9pMmNfcmVhZGAgaXMgY2FsbGVkIHdpdGhpbiBgZmRwX25jaV9pMmNfaXJxX3RocmVhZF9mbmAsIHdoaWNoIG1ha2VzIG1lIHRoaW5rIGl0JiMzOTtzIGludGVycnVwdC1kcml2ZW4uIFRoYXQmIzM5O3MgZ29vZCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gVGhlIGludGVycnVwdCB0cmlnZ2VycyB0aGUgdGhyZWFkLCBhbmQgaWYgdGhlIEkyQyBkZXZpY2UgaXMgaW5zdGFudGlhdGVkIGFuZCB0aGUgaW50ZXJydXB0IGlzIHRyaWdnZXJlZCwgdGhlbiB0aGVvcmV0aWNhbGx5LCB5ZXMsIHRoaXMgaXMgZnV6emFibGUuCgpOb3csIHRoZSBxdWVzdGlvbiBpcyAqaG93KiBjYW4gd2UgZnV6eiBpdD8gQ2FuIFN5emthbGxlciBkbyBpdD8gRG9lcyBpdCBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIGluamVjdCBJMkMgcmVzcG9uc2VzIGFuZCB0cmlnZ2VyIGludGVycnVwdHM/IE9yLCBkb2VzIGl0IGp1c3QgZnV6eiB0aGUgSTJDIHJlYWQvd3JpdGUgZGlyZWN0bHk/IFdhaXQsIHdhc24mIzM5O3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGEgdmhjaS9pMmMgZnV6emVyIGluIFN5emthbGxlcj8gSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGF0Li4uCgpBaCwgcmlnaHQsIGBORkNfRkRQX0kyQ2AuIFRoYXQmIzM5O3MgdGhlIEkyQyBkcml2ZXIgaW4gcXVlc3Rpb24uIFNvLCBpdCBkZWZpbml0ZWx5IHdhcnJhbnRzIGxvb2tpbmcgaW50byBgZmRwX25jaV9pMmNfcmVhZGAgYW5kIGBmZHBfbmNpX2kyY19pcnFfdGhyZWFkX2ZuYCBhbmQgbWFraW5nIHN1cmUgdGhleSYjMzk7cmUgaW5jbHVkZWQgaW4gYEZvY3VzU3ltYm9sc2AuIFl1cCwgYGZkcF9uY2lfaTJjX3JlYWRgIGlzIGluZGVlZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24sIHNvIGl0JiMzOTtzIGNyaXRpY2FsIHRvIGhhdmUgaXQgaW4gdGhlIHRhcmdldCBzeW1ib2wgbGlzdC4KCk5leHQsIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBCZXlvbmQgYE5GQ19GRFBgIGFuZCBgTkZDX0ZEUF9JMkNgLCBpcyBgTkZDX05DSWAgYWxzbyByZXF1aXJlZD8gSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgdGhhdCBvdXQgZm9yIGEgY29tcGxldGUgZnV6emluZyBzZXR1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDU6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL2ZkcC9LY29uZmlnPTI9Y29uZmlnIE5GQ19GRFBcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBGRFAgTkZDIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6NDpcdGRlcGVuZHMgb24gTkZDX05DSVxuZHJpdmVycy9uZmMvZmRwL0tjb25maWctNS1cdHNlbGVjdCBDUkNfQ0NJVFRcbi0tXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZz0xNT1jb25maWcgTkZDX0ZEUF9JMkNcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTE2LVx0dHJpc3RhdGUgXCYjMzQ7TkZDIEZEUCBpMmMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6MTc6XHRkZXBlbmRzIG9uIE5GQ19GRFAgXHUwMDI2XHUwMDI2IEkyQ1xuZHJpdmVycy9uZmMvZmRwL0tjb25maWctMTgtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDA1OjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyODkKCQkJCQkJCW91dHB1dDogMTE4CgkJCQkJCQl0aG91Z2h0czogMTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5GQyBGRFAgSTJDIEZpeCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIE5GQywgc3BlY2lmaWNhbGx5IHRoZSBGRFAgZHJpdmVyIHVzaW5nIEkyQy4gVGhlIHJlbGV2YW50IGNvbXBvbmVudHMgYXJlIGBORkNfTkNJYCwgYE5GQ19GRFBgLCBgTkZDX0ZEUF9JMkNgLCBhbmQganVzdCBwbGFpbiBvbGQgYEkyQ2AuIFdlIGtub3cgdGhhdCBgSTJDYCBpcyB0aGUgZ2VuZXJhbCBpbnRlcmZhY2UsIGFuZCBgTkZDX05DSWAgaXMgdGhlIGhpZ2hlci1sZXZlbCBORkMgYWJzdHJhY3Rpb24uIGBORkNfRkRQX0kyQ2AgYW5kIGBORkNfRkRQYCBhcmUgb2J2aW91c2x5IGltcG9ydGFudCBoZXJlLiBJJiMzOTttIHRoaW5raW5nIHdlIGNhbiBjZXJ0YWlubHkgZW5jb21wYXNzIGBORkNfRkRQX0kyQ2AgYW5kIGBORkNfRkRQYC4KCk5vdywgdG8gc29saWRpZnkgdGhpcywgbGV0JiMzOTtzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBgRm9jdXNTeW1ib2xzYC4gQWgsIHRoZXJlIGl0IGlzOiBgZmRwX25jaV9pMmNfcmVhZGAgaXMgdGhlIGtleSBmdW5jdGlvbiBpbiB0aGlzLgoKVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCwgYXMgSSB1bmRlcnN0YW5kIGl0LCBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgd2l0aGluIHRoZSBJMkMgcmVhZCBvcGVyYXRpb24gb2YgdGhlIEZEUCBORkMgZHJpdmVyLiBUaGUgZml4IGludm9sdmVzIGFkZGluZyBhIGJvdW5kcyBjaGVjayBvbiB0aGUgcmVhZCBsZW5ndGgsIHdoaWNoIGlzIGEgc2Vuc2libGUgYXBwcm9hY2guIFRoaXMgdnVsbmVyYWJpbGl0eSBpcyByZWFjaGFibGUgdGhyb3VnaCB0aGUgSTJDIGludGVycnVwdCB0aHJlYWQsIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgY29uY3VycmVuY3kgY29uY2VybiwgYW5kIGltcG9ydGFudGx5LCBpdCBjYW4gYmUgdHJpZ2dlcmVkIHRocm91Z2ggZnV6emluZyBieSBzaW11bGF0aW5nIHJlc3BvbnNlcyBmcm9tIGFuIEkyQyBkZXZpY2UuIFRoaXMgbWFrZXMgdGhlIHBvdGVudGlhbCBmb3IgZXhwbG9pdGF0aW9uIHJlYWwsIHdoaWNoIG1ha2VzIHRoaXMgcGF0Y2ggaW1wb3J0YW50LgoKQWxyaWdodCwgdGhhdCYjMzk7cyB0aGUgY29yZS4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB3ZSBkb2N1bWVudCB0aGlzIHByb3Blcmx5LiBUaW1lIHRvIHNldCB0aGVzZSByZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwNToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDX0ZEUCYjMzQ7LAogICAgJiMzNDtORkNfRkRQX0kyQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2ZkcF9uY2lfaTJjX3JlYWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBJMkMgcmVhZCBwYXRoIG9mIHRoZSBGRFAgTkZDIGRyaXZlciBieSBhZGRpbmcgYSBib3VuZHMgY2hlY2sgb24gdGhlIHJlYWQgbGVuZ3RoLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgdGhlIEkyQyBJUlEgdGhyZWFkIGFuZCBjYW4gYmUgZnV6emVkIGJ5IHNpbXVsYXRpbmcgSTJDIGRldmljZSByZXNwb25zZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQ19GRFAmIzM0OywKICAgICYjMzQ7TkZDX0ZEUF9JMkMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmZHBfbmNpX2kyY19yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6MzYuNjE2NDg5NTY0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI3MTI2NTYzNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZDX0ZEUFwiLFxuICAgIFwiTkZDX0ZEUF9JMkNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJmZHBfbmNpX2kyY19yZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHRoZSBJMkMgcmVhZCBwYXRoIG9mIHRoZSBGRFAgTkZDIGRyaXZlciBieSBhZGRpbmcgYSBib3VuZHMgY2hlY2sgb24gdGhlIHJlYWQgbGVuZ3RoLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgdGhlIEkyQyBJUlEgdGhyZWFkIGFuZCBjYW4gYmUgZnV6emVkIGJ5IHNpbXVsYXRpbmcgSTJDIGRldmljZSByZXNwb25zZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDA1OjEyOjM2LjYxNjQ5NDM5NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUzMTM2MjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjg4MmNlNzUyZGY4NGI0MTUzNTAyNDNmMjhiZTg4N2I5YTU3YTRjMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCAxMiAwNToxMjozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmNcXG5pbmRleCBjMTg5NmExZDk3OGNkYy4uNTgxZjg1ZjBkZmE4Y2EgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZmMvZmRwL2kyYy5jXFxuKysrIGIvZHJpdmVycy9uZmMvZmRwL2kyYy5jXFxuQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5mY19waHlfb3BzIGkyY19waHlfb3BzID0ge1xcbiBcXG4gc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcXG4ge1xcbi1cXHRpbnQgciwgbGVuO1xcbitcXHRpbnQgciA9IC1FUkVNT1RFSU8sIGxlbjtcXG4gXFx0dTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrO1xcbiBcXHR1MTYgaTtcXG4gXFx0c3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHBoeS1cXHUwMDNlaTJjX2RldjtcXG5AQCAtMTQwLDYgKzE0MCwxMyBAQCBzdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKVxcbiBcXG4gXFx0XFx0bGVuID0gcGh5LVxcdTAwM2VuZXh0X3JlYWRfc2l6ZTtcXG4gXFxuK1xcdFxcdGlmIChsZW4gXFx1MDAzZSBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRCkge1xcbitcXHRcXHRcXHRkZXZfZGJnKFxcdTAwMjZjbGllbnQtXFx1MDAzZWRldiwgXFxcIiVzOiByZWFkIHNpemUgJWQgdG9vIGxhcmdlXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHRfX2Z1bmNfXywgbGVuKTtcXG4rXFx0XFx0XFx0cGh5LVxcdTAwM2VuZXh0X3JlYWRfc2l6ZSA9IEZEUF9OQ0lfSTJDX01JTl9QQVlMT0FEO1xcbitcXHRcXHRcXHRnb3RvIGZsdXNoO1xcbitcXHRcXHR9XFxuK1xcbiBcXHRcXHRyID0gaTJjX21hc3Rlcl9yZWN2KGNsaWVudCwgdG1wLCBsZW4pO1xcbiBcXHRcXHRpZiAociAhPSBsZW4pIHtcXG4gXFx0XFx0XFx0ZGV2X2RiZyhcXHUwMDI2Y2xpZW50LVxcdTAwM2VkZXYsIFxcXCIlczogaTJjIHJlY3YgZXJyOiAlZFxcXFxuXFxcIixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6MzcuMDcwMzY3ODgxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMjI1ODc2OTc1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORkNfRkRQXCIsXG4gICAgXCJORkNfRkRQX0kyQ1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZkcF9uY2lfaTJjX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gdGhlIEkyQyByZWFkIHBhdGggb2YgdGhlIEZEUCBORkMgZHJpdmVyIGJ5IGFkZGluZyBhIGJvdW5kcyBjaGVjayBvbiB0aGUgcmVhZCBsZW5ndGguIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSB0aGUgSTJDIElSUSB0aHJlYWQgYW5kIGNhbiBiZSBmdXp6ZWQgYnkgc2ltdWxhdGluZyBJMkMgZGV2aWNlIHJlc3BvbnNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ODgyY2U3NTJkZjg0YjQxNTM1MDI0M2YyOGJlODg3YjlhNTdhNGMxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMTIgMDU6MTI6MzUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25mYy9mZHAvaTJjLmMgYi9kcml2ZXJzL25mYy9mZHAvaTJjLmNcbmluZGV4IGMxODk2YTFkOTc4Y2RjLi41ODFmODVmMGRmYThjYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmZjL2ZkcC9pMmMuY1xuKysrIGIvZHJpdmVycy9uZmMvZmRwL2kyYy5jXG5AQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX3BoeV9vcHMgaTJjX3BoeV9vcHMgPSB7XG4gXG4gc3RhdGljIGludCBmZHBfbmNpX2kyY19yZWFkKHN0cnVjdCBmZHBfaTJjX3BoeSAqcGh5LCBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcbiB7XG4tXHRpbnQgciwgbGVuO1xuK1x0aW50IHIgPSAtRVJFTU9URUlPLCBsZW47XG4gXHR1OCB0bXBbRkRQX05DSV9JMkNfTUFYX1BBWUxPQURdLCBscmMsIGs7XG4gXHR1MTYgaTtcbiBcdHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSBwaHktXHUwMDNlaTJjX2RldjtcbkBAIC0xNDAsNiArMTQwLDEzIEBAIHN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcmVhZChzdHJ1Y3QgZmRwX2kyY19waHkgKnBoeSwgc3RydWN0IHNrX2J1ZmYgKipza2IpXG4gXG4gXHRcdGxlbiA9IHBoeS1cdTAwM2VuZXh0X3JlYWRfc2l6ZTtcbiBcbitcdFx0aWYgKGxlbiBcdTAwM2UgRkRQX05DSV9JMkNfTUFYX1BBWUxPQUQpIHtcbitcdFx0XHRkZXZfZGJnKFx1MDAyNmNsaWVudC1cdTAwM2VkZXYsIFwiJXM6IHJlYWQgc2l6ZSAlZCB0b28gbGFyZ2VcXG5cIixcbitcdFx0XHRcdF9fZnVuY19fLCBsZW4pO1xuK1x0XHRcdHBoeS1cdTAwM2VuZXh0X3JlYWRfc2l6ZSA9IEZEUF9OQ0lfSTJDX01JTl9QQVlMT0FEO1xuK1x0XHRcdGdvdG8gZmx1c2g7XG4rXHRcdH1cbitcbiBcdFx0ciA9IGkyY19tYXN0ZXJfcmVjdihjbGllbnQsIHRtcCwgbGVuKTtcbiBcdFx0aWYgKHIgIT0gbGVuKSB7XG4gXHRcdFx0ZGV2X2RiZyhcdTAwMjZjbGllbnQtXHUwMDNlZGV2LCBcIiVzOiBpMmMgcmVjdiBlcnI6ICVkXFxuXCIsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjozNy4wNzAzNjkxODFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzMzNTY4MDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTkZDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQncyBpbnRyb2R1Y2luZyBhIHBheWxvYWQgc2l6ZSBjaGVjayB3aXRoaW4gdGhlIGBmZHBfbmNpX2kyY19yZWFkYCBmdW5jdGlvbi4gVGhlIGtleSBpcyB0aGF0IGBsZW5gLCB3aGljaCBJJ20gYXNzdW1pbmcgaXMgdGhlIHJlYWQgbGVuZ3RoLCBpcyBiZWluZyBjb21wYXJlZCBhZ2FpbnN0IGBGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRGAuXG5cbklmIGBsZW5gIGV4Y2VlZHMgdGhhdCBtYXhpbXVtLCB3ZSdyZSBkb2luZyBhIHJlc2V0IG9mIGBwaHktXHUwMDNlbmV4dF9yZWFkX3NpemVgLCBhbmQgdGhlbiBpdCBqdW1wcyB0byB0aGUgYGZsdXNoYCBzdGF0ZSwgc2V0dGluZyBgcmAgdG8gYC1FUkVNT1RFSU9gLiBUaGlzIGZlZWxzIGxpa2UgaXQncyBhIGRlZmVuc2l2ZSBtZWFzdXJlLCBndWFyZGluZyBhZ2FpbnN0IHNvbWUga2luZCBvZiBidWZmZXIgb3ZlcmZsb3cgb3IgdW5leHBlY3RlZCBkYXRhIGxlbmd0aC4gVGhlIGBFUkVNT1RFSU9gIGVycm9yIHN1Z2dlc3RzIGEgcmVtb3RlIEkvTyBlcnJvciDigJMgc29tZXRoaW5nIHdlbnQgd3JvbmcgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBORkMgY2hpcC5cblxuR2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGVzZSBORkMgYXJjaGl0ZWN0dXJlcywgbXkgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGNvbnRleHQgYXJvdW5kIHRoZXNlIGNoYW5nZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEYCBpcyBkZWZpbmVkIGFzLCBhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIHJlc2V0IHdpdGhpbiB0aGUgYGZsdXNoYCBzdGF0ZS4gTGV0J3Mgc2VlIGhvdyBgcGh5LVx1MDAzZW5leHRfcmVhZF9zaXplYCBpcyB1c2VkLCB0b28uXG5cbkkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmlsZSB0byBzZWUgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0IGFuZCB3aGV0aGVyIHRoZXJlJ3MgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGluIHBsYXkgdGhhdCBtaWdodCBhZmZlY3QgdGhpcyBuZXcgY2hlY2suIElzIHRoaXMgc3BlY2lmaWMgdG8gYSBjZXJ0YWluIE5GQyBjaGlwLCBvciBhIGdlbmVyaWMgaW1wcm92ZW1lbnQgdG8gdGhlIEkyQyBpbnRlcmZhY2U/IEdvdHRhIGRpZyBkZWVwZXIgaW50byBgZHJpdmVycy9uZmMvZmRwL2kyYy5jYCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIHBpY3R1cmUgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA4OSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDA1OjEyOjQxLjQwMzkzOTAyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTg4OTI4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJGRFBfTkNJX0kyQ19NQVhfUEFZTE9BRFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9mZHAvaTJjLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvZmRwL2kyYy5jLTI5LSNkZWZpbmUgRkRQX05DSV9JMkNfTUlOX1BBWUxPQURcXHQ1XFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjMwOiNkZWZpbmUgRkRQX05DSV9JMkNfTUFYX1BBWUxPQURcXHQyNjFcXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMzEtXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM9MTI5PXN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcmVhZChzdHJ1Y3QgZmRwX2kyY19waHkgKnBoeSwgc3RydWN0IHNrX2J1ZmYgKipza2IpXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTMxLVxcdGludCByID0gLUVSRU1PVEVJTywgbGVuO1xcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxMzI6XFx0dTggdG1wW0ZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEXSwgbHJjLCBrO1xcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzMtXFx0dTE2IGk7XFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMTQyLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoxNDM6XFx0XFx0aWYgKGxlbiBcXHUwMDNlIEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEKSB7XFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTE0NC1cXHRcXHRcXHRkZXZfZGJnKFxcdTAwMjZjbGllbnQtXFx1MDAzZWRldiwgXFxcIiVzOiByZWFkIHNpemUgJWQgdG9vIGxhcmdlXFxcXG5cXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo0MS40NTk4MzIwOTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODA3NzA4ODY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipLY29uZmlnIEluc3BlY3Rpb24gVGltZSoqXG5cblJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBkcml2ZXIuIFRoZSBLY29uZmlnIGZpbGUgaXMgd2hlcmUgdGhlIHJ1YmJlciBtZWV0cyB0aGUgcm9hZCB3aGVuIGl0IGNvbWVzIHRvIGNvbnRyb2xsaW5nIGl0cyBidWlsZCBhbmQgYmVoYXZpb3IuIEknbSBnb2luZyB0byBjYXJlZnVsbHkgZGlzc2VjdCBpdC4gSSdsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTogZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBoZWxwIHRleHQsIGFuZCBvZiBjb3Vyc2UsIHRoZSBhY3R1YWwgc3ltYm9scyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIHZhcmlvdXMgZmVhdHVyZXMuIFRoaXMgaXMgd2hlcmUgSSBmaWd1cmUgb3V0IHdoYXQncyBlbmFibGVkLCBkaXNhYmxlZCwgb3IgY29uZGl0aW9uYWxseSBjb21waWxlZC4gS25vd2luZyB0aGUgS2NvbmZpZyBkZXRhaWxzLCBhbmQgdGhlIGFzc29jaWF0ZWQgZGVwZW5kZW5jaWVzIHdpdGggb3RoZXIgZHJpdmVycyBvciBoYXJkd2FyZSBpcyBhYnNvbHV0ZWx5IGtleSB0byB1bmRlcnN0YW5kaW5nIGl0cyBvdmVyYWxsIGltcGFjdCBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBzeXN0ZW0uIEknbGwgYmUgbWFraW5nIG5vdGUgb2YgYW55IHVudXN1YWwgY29uZmlndXJhdGlvbnMgb3IgcG90ZW50aWFsIGNvbmZsaWN0cyByaWdodCBhd2F5LiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NzUsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo0NC4yNjc1NDM0NjZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM1MzY4ODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GQ19GRFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvZmRwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvZmRwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZzoyOmNvbmZpZyBORkNfRkRQXFxuZHJpdmVycy9uZmMvZmRwL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgRkRQIE5GQyBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xNC1cXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZzoxNTpjb25maWcgTkZDX0ZEUF9JMkNcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xNi1cXHR0cmlzdGF0ZSBcXFwiTkZDIEZEUCBpMmMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6NDQuMzIxMDg2MDMxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY0NzI1MTg3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBORkMgRkRQIEkyQyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGluIHF1ZXN0aW9uIGhlcmUgaXMgYE5GQ19GRFBfSTJDYC4gUmlnaHQsIHRoaXMgaXMgYW4gSTJDIGRldmljZS4gTm93IHRoZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgYXQgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIHNldHVwPyBJMkMgdXN1YWxseSBwbGF5cyBuaWNlbHkgd2l0aCBzdHViIGRyaXZlcnMsIGxpa2UgaTJjLXN0dWIsIG9yIHBlcmhhcHMgSSBjYW4gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgSTJDIGZ1enplci4gSG9sZCBvbiwgd2Fzbid0IHRoZXJlIHNvbWUgSTJDIHN1cHBvcnQgaW4gc3l6a2FsbGVyP1xuXG5UaGUgY3J1Y2lhbCBmdW5jdGlvbiBzZWVtcyB0byBiZSBgZmRwX25jaV9pMmNfcmVhZGAuIExldCdzIHNlZSBpZiBmdXp6aW5nIHRoaXMgaXMgYWN0dWFsbHkgd29ydGh3aGlsZS4gWWVwLCBnb29kIGNhbGwgLSBpdCBsb29rcyBsaWtlIHRoZXJlJ3MgYSBidWZmZXIgb3ZlcmZsb3cgb3IgcG90ZW50aWFsbHkgb3V0LW9mLWJvdW5kcyByZWFkL3dyaXRlIGJlaW5nIGZpeGVkIG9uIHRoYXQgYHRtcGAgdmFyaWFibGUsIHdoaWNoLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSwgaXMgc2l6ZWQgdG8gYEZEUF9OQ0lfSTJDX01BWF9QQVlMT0FEYC4gVGhhdCdzIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuXG5cblRvIGVuYWJsZSB0aGlzLCBJJ2xsIG5lZWQgYE5GQ19GRFBgIGFuZCBgTkZDX0ZEUF9JMkNgIGNvbmZpZ3MuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBJJ2xsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvbmZjL2ZkcC9pMmMuY2AgZm9yIHRoYXQgYGZkcF9uY2lfaTJjX3JlYWRgIGZ1bmN0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIHZ1bG5lcmFiaWxpdHkgYmV0dGVyIGFuZCBwbGFuIG15IGZ1enppbmcgc3RyYXRlZ3kuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNTUsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6NDguOTY4MzM5NDU1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MzM1ODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZkcF9uY2lfaTJjX3JlYWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvZmRwL2kyYy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmZjL2ZkcC9pMmMuYz0xMjM9c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfcGh5X29wcyBpMmNfcGh5X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMjgtXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjEyOTpzdGF0aWMgaW50IGZkcF9uY2lfaTJjX3JlYWQoc3RydWN0IGZkcF9pMmNfcGh5ICpwaHksIHN0cnVjdCBza19idWZmICoqc2tiKVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0xMzAte1xcbi0tXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jPTIwMj1zdGF0aWMgaXJxcmV0dXJuX3QgZmRwX25jaV9pMmNfaXJxX3RocmVhZF9mbihpbnQgaXJxLCB2b2lkICpwaHlfaWQpXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMjEyLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYzoyMTM6XFx0ciA9IGZkcF9uY2lfaTJjX3JlYWQocGh5LCBcXHUwMDI2c2tiKTtcXG5kcml2ZXJzL25mYy9mZHAvaTJjLmMtMjE0LVxcbi0tXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jLTIyMy1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM6MjI0OnN0YXRpYyB2b2lkIGZkcF9uY2lfaTJjX3JlYWRfZGV2aWNlX3Byb3BlcnRpZXMoc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0yMjUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIHU4ICpjbG9ja190eXBlLCB1MzIgKmNsb2NrX2ZyZXEsXFxuLS1cXG5kcml2ZXJzL25mYy9mZHAvaTJjLmM9Mjg1PXN0YXRpYyBpbnQgZmRwX25jaV9pMmNfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudClcXG4tLVxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzQtXFx0LyogcmVhZCBkZXZpY2UgcHJvcGVydGllcyB0byBnZXQgdGhlIGNsb2NrIGFuZCBwcm9kdWN0aW9uIHNldHRpbmdzICovXFxuZHJpdmVycy9uZmMvZmRwL2kyYy5jOjMzNTpcXHRmZHBfbmNpX2kyY19yZWFkX2RldmljZV9wcm9wZXJ0aWVzKGRldiwgXFx1MDAyNmNsb2NrX3R5cGUsIFxcdTAwMjZjbG9ja19mcmVxLFxcbmRyaXZlcnMvbmZjL2ZkcC9pMmMuYy0zMzYtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmZ3X3ZzY19jZmcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo0OS4wMjM2ODAxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIyNzUxMjIxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBORkMgRkRQIEkyQyBEcml2ZXI6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gYGZkcF9uY2lfaTJjX3JlYWRgIGlzIGNhbGxlZCB3aXRoaW4gYGZkcF9uY2lfaTJjX2lycV90aHJlYWRfZm5gLCB3aGljaCBtYWtlcyBtZSB0aGluayBpdCdzIGludGVycnVwdC1kcml2ZW4uIFRoYXQncyBnb29kIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLiBUaGUgaW50ZXJydXB0IHRyaWdnZXJzIHRoZSB0aHJlYWQsIGFuZCBpZiB0aGUgSTJDIGRldmljZSBpcyBpbnN0YW50aWF0ZWQgYW5kIHRoZSBpbnRlcnJ1cHQgaXMgdHJpZ2dlcmVkLCB0aGVuIHRoZW9yZXRpY2FsbHksIHllcywgdGhpcyBpcyBmdXp6YWJsZS5cblxuTm93LCB0aGUgcXVlc3Rpb24gaXMgKmhvdyogY2FuIHdlIGZ1enogaXQ/IENhbiBTeXprYWxsZXIgZG8gaXQ/IERvZXMgaXQgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBpbmplY3QgSTJDIHJlc3BvbnNlcyBhbmQgdHJpZ2dlciBpbnRlcnJ1cHRzPyBPciwgZG9lcyBpdCBqdXN0IGZ1enogdGhlIEkyQyByZWFkL3dyaXRlIGRpcmVjdGx5PyBXYWl0LCB3YXNuJ3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGEgdmhjaS9pMmMgZnV6emVyIGluIFN5emthbGxlcj8gSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGF0Li4uXG5cbkFoLCByaWdodCwgYE5GQ19GRFBfSTJDYC4gVGhhdCdzIHRoZSBJMkMgZHJpdmVyIGluIHF1ZXN0aW9uLiBTbywgaXQgZGVmaW5pdGVseSB3YXJyYW50cyBsb29raW5nIGludG8gYGZkcF9uY2lfaTJjX3JlYWRgIGFuZCBgZmRwX25jaV9pMmNfaXJxX3RocmVhZF9mbmAgYW5kIG1ha2luZyBzdXJlIHRoZXkncmUgaW5jbHVkZWQgaW4gYEZvY3VzU3ltYm9sc2AuIFl1cCwgYGZkcF9uY2lfaTJjX3JlYWRgIGlzIGluZGVlZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24sIHNvIGl0J3MgY3JpdGljYWwgdG8gaGF2ZSBpdCBpbiB0aGUgdGFyZ2V0IHN5bWJvbCBsaXN0LlxuXG5OZXh0LCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gQmV5b25kIGBORkNfRkRQYCBhbmQgYE5GQ19GRFBfSTJDYCwgaXMgYE5GQ19OQ0lgIGFsc28gcmVxdWlyZWQ/IEknbGwgbmVlZCB0byBmaWd1cmUgdGhhdCBvdXQgZm9yIGEgY29tcGxldGUgZnV6emluZyBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQzOSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwNToxMjo1NC4yNTExOTM5MloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMyOTE5NTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9mZHAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25mYy9mZHAvS2NvbmZpZz0yPWNvbmZpZyBORkNfRkRQXFxuZHJpdmVycy9uZmMvZmRwL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgRkRQIE5GQyBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZmMvZmRwL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIE5GQ19OQ0lcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy01LVxcdHNlbGVjdCBDUkNfQ0NJVFRcXG4tLVxcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnPTE1PWNvbmZpZyBORkNfRkRQX0kyQ1xcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnLTE2LVxcdHRyaXN0YXRlIFxcXCJORkMgRkRQIGkyYyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmZjL2ZkcC9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gTkZDX0ZEUCBcXHUwMDI2XFx1MDAyNiBJMkNcXG5kcml2ZXJzL25mYy9mZHAvS2NvbmZpZy0xOC1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDA1OjEyOjU0LjMwNDQ5MDYxNVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTQzNDYxNDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5GQyBGRFAgSTJDIEZpeCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gV2UncmUgZGVhbGluZyB3aXRoIE5GQywgc3BlY2lmaWNhbGx5IHRoZSBGRFAgZHJpdmVyIHVzaW5nIEkyQy4gVGhlIHJlbGV2YW50IGNvbXBvbmVudHMgYXJlIGBORkNfTkNJYCwgYE5GQ19GRFBgLCBgTkZDX0ZEUF9JMkNgLCBhbmQganVzdCBwbGFpbiBvbGQgYEkyQ2AuIFdlIGtub3cgdGhhdCBgSTJDYCBpcyB0aGUgZ2VuZXJhbCBpbnRlcmZhY2UsIGFuZCBgTkZDX05DSWAgaXMgdGhlIGhpZ2hlci1sZXZlbCBORkMgYWJzdHJhY3Rpb24uIGBORkNfRkRQX0kyQ2AgYW5kIGBORkNfRkRQYCBhcmUgb2J2aW91c2x5IGltcG9ydGFudCBoZXJlLiBJJ20gdGhpbmtpbmcgd2UgY2FuIGNlcnRhaW5seSBlbmNvbXBhc3MgYE5GQ19GRFBfSTJDYCBhbmQgYE5GQ19GRFBgLlxuXG5Ob3csIHRvIHNvbGlkaWZ5IHRoaXMsIGxldCdzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBgRm9jdXNTeW1ib2xzYC4gQWgsIHRoZXJlIGl0IGlzOiBgZmRwX25jaV9pMmNfcmVhZGAgaXMgdGhlIGtleSBmdW5jdGlvbiBpbiB0aGlzLlxuXG5UaGUgY29yZSBvZiB0aGlzIHBhdGNoLCBhcyBJIHVuZGVyc3RhbmQgaXQsIGFkZHJlc3NlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgdnVsbmVyYWJpbGl0eSB3aXRoaW4gdGhlIEkyQyByZWFkIG9wZXJhdGlvbiBvZiB0aGUgRkRQIE5GQyBkcml2ZXIuIFRoZSBmaXggaW52b2x2ZXMgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aCwgd2hpY2ggaXMgYSBzZW5zaWJsZSBhcHByb2FjaC4gVGhpcyB2dWxuZXJhYmlsaXR5IGlzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBJMkMgaW50ZXJydXB0IHRocmVhZCwgc28gd2UncmUgbG9va2luZyBhdCBhIGNvbmN1cnJlbmN5IGNvbmNlcm4sIGFuZCBpbXBvcnRhbnRseSwgaXQgY2FuIGJlIHRyaWdnZXJlZCB0aHJvdWdoIGZ1enppbmcgYnkgc2ltdWxhdGluZyByZXNwb25zZXMgZnJvbSBhbiBJMkMgZGV2aWNlLiBUaGlzIG1ha2VzIHRoZSBwb3RlbnRpYWwgZm9yIGV4cGxvaXRhdGlvbiByZWFsLCB3aGljaCBtYWtlcyB0aGlzIHBhdGNoIGltcG9ydGFudC5cblxuQWxyaWdodCwgdGhhdCdzIHRoZSBjb3JlLiBMZXQncyBtYWtlIHN1cmUgd2UgZG9jdW1lbnQgdGhpcyBwcm9wZXJseS4gVGltZSB0byBzZXQgdGhlc2UgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI4OSwiT3V0cHV0VG9rZW5zIjoxMTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDU6MTI6NTkuMjQ3OTU1MDAxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODExNzgxNjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ19GRFBcIixcbiAgICBcIk5GQ19GRFBfSTJDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZmRwX25jaV9pMmNfcmVhZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ19GRFBcIixcbiAgICBcIk5GQ19GRFBfSTJDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZmRwX25jaV9pMmNfcmVhZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiB0aGUgSTJDIHJlYWQgcGF0aCBvZiB0aGUgRkRQIE5GQyBkcml2ZXIgYnkgYWRkaW5nIGEgYm91bmRzIGNoZWNrIG9uIHRoZSByZWFkIGxlbmd0aC4gVGhpcyBpcyByZWFjaGFibGUgdmlhIHRoZSBJMkMgSVJRIHRocmVhZCBhbmQgY2FuIGJlIGZ1enplZCBieSBzaW11bGF0aW5nIEkyQyBkZXZpY2UgcmVzcG9uc2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[1] Phase: Succeeded StartedAt: 2026-07-12 05:13:11 +0000 UTC FinishedAt: 2026-07-12 05:13:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-12 05:13:11 +0000 UTC FinishedAt: 2026-07-12 05:13:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2] Phase: Succeeded StartedAt: 2026-07-12 05:13:11 +0000 UTC FinishedAt: 2026-07-12 07:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-12 05:13:11 +0000 UTC FinishedAt: 2026-07-12 07:42:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-12 05:13:11 +0000 UTC FinishedAt: 2026-07-12 05:13:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-12 05:13:11 +0000 UTC FinishedAt: 2026-07-12 05:13:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7g6h5/series-workflow7g6h5-convert-artifact-613834528/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-12 05:13:33 +0000 UTC FinishedAt: 2026-07-12 05:58:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-12 05:13:33 +0000 UTC FinishedAt: 2026-07-12 05:58:51 +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:*b5b2db01-1ccb-4b8a-91f4-906fda017453,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-workflow7g6h5/series-workflow7g6h5-convert-artifact-613834528/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": "9ece247b-ce73-48bd-a689-b05c777fdd13", "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-workflow7g6h5/series-workflow7g6h5-build-action-1007107558/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-12 05:13:33 +0000 UTC FinishedAt: 2026-07-12 05:58:41 +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:*b5b2db01-1ccb-4b8a-91f4-906fda017453,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-workflow7g6h5/series-workflow7g6h5-convert-artifact-613834528/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": "9ece247b-ce73-48bd-a689-b05c777fdd13", "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-workflow7g6h5/series-workflow7g6h5-build-action-1007107558/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-12 05:58:51 +0000 UTC FinishedAt: 2026-07-12 05:58:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-12 05:58:51 +0000 UTC FinishedAt: 2026-07-12 05:58:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-12 05:58:51 +0000 UTC FinishedAt: 2026-07-12 05:59:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-12 05:58:51 +0000 UTC FinishedAt: 2026-07-12 05:58:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7g6h5/series-workflow7g6h5-convert-artifact-3759764807/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-12 05:59:01 +0000 UTC FinishedAt: 2026-07-12 06:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-12 05:59:01 +0000 UTC FinishedAt: 2026-07-12 06:01:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9ece247b-ce73-48bd-a689-b05c777fdd13,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-workflow7g6h5/series-workflow7g6h5-build-action-1007107558/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-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-12 06:01:14 +0000 UTC FinishedAt: 2026-07-12 06:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-12 06:01:14 +0000 UTC FinishedAt: 2026-07-12 06:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-12 06:01:14 +0000 UTC FinishedAt: 2026-07-12 06:45:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-12 06:01:14 +0000 UTC FinishedAt: 2026-07-12 06:45:55 +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:*b5b2db01-1ccb-4b8a-91f4-906fda017453,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-workflow7g6h5/series-workflow7g6h5-convert-artifact-3759764807/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": "a026957d-2b85-4ad8-a43d-53dc4adce8c3", "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-workflow7g6h5/series-workflow7g6h5-build-action-3237328075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-12 06:01:14 +0000 UTC FinishedAt: 2026-07-12 06:45:45 +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:*b5b2db01-1ccb-4b8a-91f4-906fda017453,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-workflow7g6h5/series-workflow7g6h5-convert-artifact-3759764807/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": "a026957d-2b85-4ad8-a43d-53dc4adce8c3", "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-workflow7g6h5/series-workflow7g6h5-build-action-3237328075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-12 06:45:55 +0000 UTC FinishedAt: 2026-07-12 06:45:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-12 06:45:55 +0000 UTC FinishedAt: 2026-07-12 06:45:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-12 06:45:55 +0000 UTC FinishedAt: 2026-07-12 06:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-12 06:45:55 +0000 UTC FinishedAt: 2026-07-12 06:48:20 +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:*a026957d-2b85-4ad8-a43d-53dc4adce8c3,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-workflow7g6h5/series-workflow7g6h5-build-action-3237328075/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-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 07:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 07:42:40 +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":["fdp_nci_i2c_read"],"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:*9ece247b-ce73-48bd-a689-b05c777fdd13,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a026957d-2b85-4ad8-a43d-53dc4adce8c3,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-workflow7g6h5/series-workflow7g6h5-build-action-1007107558/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-workflow7g6h5/series-workflow7g6h5-build-action-3237328075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 06:48:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 06:48:36 +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":["fdp_nci_i2c_read"],"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-workflow7g6h5/series-workflow7g6h5-convert-artifact-3561301536/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 06:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 06:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-12 06:48:30 +0000 UTC FinishedAt: 2026-07-12 06:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-12 06:48:40 +0000 UTC FinishedAt: 2026-07-12 07:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7g6h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["fdp_nci_i2c_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC_FDP","NFC_FDP_I2C"],"series_id":"e9f1581f-209e-4f86-8374-60e22bf8ae6a","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-12 06:48:40 +0000 UTC FinishedAt: 2026-07-12 07:42:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9ece247b-ce73-48bd-a689-b05c777fdd13,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a026957d-2b85-4ad8-a43d-53dc4adce8c3,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-workflow7g6h5/series-workflow7g6h5-build-action-1007107558/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-workflow7g6h5/series-workflow7g6h5-build-action-3237328075/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-workflow7g6h5/series-workflow7g6h5-convert-artifact-3561301536/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,}