Name: series-workflowmlr5n Phase: Failed StartedAt: 2026-08-24 08:39:08 +0000 UTC FinishedAt: 2026-08-24 09:01:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmlr5n[0] Phase: Succeeded StartedAt: 2026-08-24 08:39:08 +0000 UTC FinishedAt: 2026-08-24 09:01:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmlr5n[0].run-triage Phase: Succeeded StartedAt: 2026-08-24 08:39:08 +0000 UTC FinishedAt: 2026-08-24 09:01:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5NWQ3NjU4YWY0NzRiNjUxN2U4MWEwNDg0MmNkMTg2OGQzNmNjZWYyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MDA6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYyBiL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcbmluZGV4IDg2MzYyZWM0MjRhNTAuLjRlODQ1NDc0ZmE5MGIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jXG5AQCAtMTE1NCw5ICYjNDM7MTE1NCwxNCBAQCBzdGF0aWMgdm9pZCBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiB7XG4gXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYgPSBoaXNpX2FjY19kcnZkYXRhKHBkZXYpO1xuIFx0c3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi1cdTAwM2VwZl9xbTtcbi1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnFtLVx1MDAzZXBkZXYtXHUwMDNlZGV2O1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIGRlbGF5ID0gMDtcbiBcbiYjNDM7XHRpZiAoIXFtIHx8ICFxbS1cdTAwM2Vpb19iYXNlKSB7XG4mIzQzO1x0XHRkZXZfZXJyKGRldiwgXCYjMzQ7UEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcXG5cJiMzNDspO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4gXHQvKiBBbGwgcmVzZXQgcmVxdWVzdHMgbmVlZCB0byBiZSBxdWV1ZWQgZm9yIHByb2Nlc3NpbmcgKi9cbiBcdHdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KFFNX1JFU0VUVElORywgXHUwMDI2cW0tXHUwMDNlbWlzY19jdGwpKSB7XG4gXHRcdG1zbGVlcCgxKTtcbkBAIC0xMTc0LDggJiM0MzsxMTc5LDEyIEBAIHN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX3BjaV9hZXJfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiBcdHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldiA9IGhpc2lfYWNjX2RydmRhdGEocGRldik7XG4gXHRzdHJ1Y3QgaGlzaV9xbSAqcW0gPSBoaXNpX2FjY192ZGV2LVx1MDAzZXBmX3FtO1xuIFxuLVx0aWYgKGhpc2lfYWNjX3ZkZXYtXHUwMDNlc2V0X3Jlc2V0X2ZsYWcpXG4tXHRcdGNsZWFyX2JpdChRTV9SRVNFVFRJTkcsIFx1MDAyNnFtLVx1MDAzZW1pc2NfY3RsKTtcbiYjNDM7XHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VzZXRfcmVzZXRfZmxhZykge1xuJiM0MztcdFx0aWYgKHFtIFx1MDAyNlx1MDAyNiBxbS1cdTAwM2Vpb19iYXNlKVxuJiM0MztcdFx0XHRjbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCBcdTAwMjZxbS1cdTAwM2VtaXNjX2N0bCk7XG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O1BGIFFNIG5vdCBhdmFpbGFibGUgZm9yIHJlc2V0IGRvbmVcXG5cJiMzNDspO1xuJiM0MztcdH1cbiBcbiBcdGlmICghaGlzaV9hY2NfdmRldi1cdTAwM2Vjb3JlX2RldmljZS52ZGV2Lm1pZ19vcHMpXG4gXHRcdHJldHVybjtcbkBAIC0xMTk5LDYgJiM0MzsxMjA4LDIzIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZfcW1faW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXG4gXHRlbHNlXG4gXHRcdGhpc2lfYWNjX3ZkZXYtXHUwMDNlZHJ2X21vZGUgPSBIV19BQ0NfTUlHX1ZGX0NUUkw7XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBPbiBWRl9DVFJMIGhhcmR3YXJlLCBCQVIyIGhvbGRzIDMyS0IgZnVuY3Rpb25hbCAmIzQzOyAzMktCXG4mIzQzO1x0ICogbWlncmF0aW9uIHJlZ2lzdGVycy4gV2hlbiB0aGUgaG9zdCBwYWdlIGV4Y2VlZHMgMzJLQiwgdGhlXG4mIzQzO1x0ICogdHdvIHNoYXJlIG9uZSBwaHlzaWNhbCBwYWdlIGFuZCBjYW5ub3QgYmUgaXNvbGF0ZWQgYnkgbW1hcC5cbiYjNDM7XHQgKiBSZWplY3QgdGhlIG9wZW4gc28gUUVNVSBmYWlscyBjbGVhbmx5IGF0IHN0YXJ0dXAuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKGhpc2lfYWNjX3ZkZXYtXHUwMDNlZHJ2X21vZGUgPT0gSFdfQUNDX01JR19WRl9DVFJMKSB7XG4mIzQzO1x0XHRyZXNvdXJjZV9zaXplX3QgZnVuY19sZW4gPVxuJiM0MztcdFx0XHRwY2lfcmVzb3VyY2VfbGVuKHZmX2RldiwgVkZJT19QQ0lfQkFSMl9SRUdJT05fSU5ERVgpIFx1MDAzZVx1MDAzZSAxO1xuJiM0MztcbiYjNDM7XHRcdGlmIChmdW5jX2xlbiBcdTAwM2MgUEFHRV9TSVpFKSB7XG4mIzQzO1x0XHRcdGRldl9lcnIoXHUwMDI2dmZfZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0XHRcJiMzNDttaWdyYXRpb24gbm90IHN1cHBvcnRlZCBvbiA2NEtCIHBhZ2VzIHdpdGggUU1fSFdfVjNcXG5cJiMzNDspO1xuJiM0MztcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHRcdH1cbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKGhpc2lfYWNjX3ZkZXYtXHUwMDNlZHJ2X21vZGUgPT0gSFdfQUNDX01JR19QRl9DVFJMKSB7XG4gXHRcdC8qXG4gXHRcdCAqIE9uIGhhcmR3YXJlIHBsYXRmb3JtcyBncmVhdGVyIHRoYW4gUU1fSFdfVjMsIHRoZSBtaWdyYXRpb24gZnVuY3Rpb25cbkBAIC0xNTY1LDYgJiM0MzsxNTkxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5faW5pdF9kZXYoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoY29yZV92ZGV2LVx1MDAzZWRldik7XG4gXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW0gPSBoaXNpX2FjY19nZXRfcGZfcW0ocGRldik7XG4gXG4mIzQzO1x0aWYgKCFwZl9xbSkge1xuJiM0MztcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7UEYgZHJpdmVyIG5vdCBsb2FkZWQsIGNhbm5vdCBlbmFibGUgbWlncmF0aW9uXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHJldHVybiAtRU5PREVWO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KSAmIzQzOyAxO1xuIFx0aGlzaV9hY2NfdmRldi1cdTAwM2VwZl9xbSA9IHBmX3FtO1xuIFx0aGlzaV9hY2NfdmRldi1cdTAwM2V2Zl9kZXYgPSBwZGV2O1xuQEAgLTE2NzAsMTMgJiM0MzsxNzAxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlXG4gXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXY7XG4gXHRjb25zdCBzdHJ1Y3QgdmZpb19kZXZpY2Vfb3BzICpvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9vcHM7XG4gXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW07XG4tXHRpbnQgdmZfaWQ7XG4gXHRpbnQgcmV0O1xuIFxuIFx0cGZfcW0gPSBoaXNpX2FjY19nZXRfcGZfcW0ocGRldik7XG4gXHRpZiAocGZfcW0gXHUwMDI2XHUwMDI2IHBmX3FtLVx1MDAzZXZlciBcdTAwM2U9IFFNX0hXX1YzKSB7XG4tXHRcdHZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KTtcbi1cdFx0aWYgKHZmX2lkIFx1MDAzZT0gMClcbiYjNDM7XHRcdGlmIChwZGV2LVx1MDAzZWlzX3ZpcnRmbilcbiBcdFx0XHRvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9taWdybl9vcHM7XG4gXHRcdGVsc2VcbiBcdFx0XHRwY2lfd2FybihwZGV2LCBcJiMzNDttaWdyYXRpb24gc3VwcG9ydCBmYWlsZWQsIGNvbnRpbnVlIHdpdGggZ2VuZXJpYyBpbnRlcmZhY2VcXG5cJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIHZlbmRvci1zcGVjaWZpYyBWRklPIFBDSSBkcml2ZXIgZm9yIEhpc2lsaWNvbiBBQ0MgZGV2aWNlcyAoaGlzaV9hY2NfdmZpb19wY2kpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBIaXNpbGljb24gUENJZSBoYXJkd2FyZSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBhdmFpbGFibGUgaW4gdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDk1ZDc2NThhZjQ3NGI2NTE3ZTgxYTA0ODQyY2QxODY4ZDM2Y2NlZjIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAyNCAwOTowMDozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMgYi9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jCmluZGV4IDg2MzYyZWM0MjRhNTAuLjRlODQ1NDc0ZmE5MGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYwpAQCAtMTE1NCw5ICYjNDM7MTE1NCwxNCBAQCBzdGF0aWMgdm9pZCBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYgPSBoaXNpX2FjY19kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBoaXNpX3FtICpxbSA9IGhpc2lfYWNjX3ZkZXYtJmd0O3BmX3FtOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cW0tJmd0O3BkZXYtJmd0O2RldjsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwZGV2LSZndDtkZXY7CiAJdTMyIGRlbGF5ID0gMDsKIAomIzQzOwlpZiAoIXFtIHx8ICFxbS0mZ3Q7aW9fYmFzZSkgewomIzQzOwkJZGV2X2VycihkZXYsICYjMzQ7UEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcbiYjMzQ7KTsKJiM0MzsJCXJldHVybjsKJiM0MzsJfQomIzQzOwogCS8qIEFsbCByZXNldCByZXF1ZXN0cyBuZWVkIHRvIGJlIHF1ZXVlZCBmb3IgcHJvY2Vzc2luZyAqLwogCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KFFNX1JFU0VUVElORywgJmFtcDtxbS0mZ3Q7bWlzY19jdGwpKSB7CiAJCW1zbGVlcCgxKTsKQEAgLTExNzQsOCAmIzQzOzExNzksMTIgQEAgc3RhdGljIHZvaWQgaGlzaV9hY2NfdmZfcGNpX2Flcl9yZXNldF9kb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldiA9IGhpc2lfYWNjX2RydmRhdGEocGRldik7CiAJc3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi0mZ3Q7cGZfcW07CiAKLQlpZiAoaGlzaV9hY2NfdmRldi0mZ3Q7c2V0X3Jlc2V0X2ZsYWcpCi0JCWNsZWFyX2JpdChRTV9SRVNFVFRJTkcsICZhbXA7cW0tJmd0O21pc2NfY3RsKTsKJiM0MzsJaWYgKGhpc2lfYWNjX3ZkZXYtJmd0O3NldF9yZXNldF9mbGFnKSB7CiYjNDM7CQlpZiAocW0gJmFtcDsmYW1wOyBxbS0mZ3Q7aW9fYmFzZSkKJiM0MzsJCQljbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCAmYW1wO3FtLSZndDttaXNjX2N0bCk7CiYjNDM7CQllbHNlCiYjNDM7CQkJZGV2X2VycigmYW1wO3BkZXYtJmd0O2RldiwgJiMzNDtQRiBRTSBub3QgYXZhaWxhYmxlIGZvciByZXNldCBkb25lXG4mIzM0Oyk7CiYjNDM7CX0KIAogCWlmICghaGlzaV9hY2NfdmRldi0mZ3Q7Y29yZV9kZXZpY2UudmRldi5taWdfb3BzKQogCQlyZXR1cm47CkBAIC0xMTk5LDYgJiM0MzsxMjA4LDIzIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZfcW1faW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpCiAJZWxzZQogCQloaXNpX2FjY192ZGV2LSZndDtkcnZfbW9kZSA9IEhXX0FDQ19NSUdfVkZfQ1RSTDsKIAomIzQzOwkvKgomIzQzOwkgKiBPbiBWRl9DVFJMIGhhcmR3YXJlLCBCQVIyIGhvbGRzIDMyS0IgZnVuY3Rpb25hbCAmIzQzOyAzMktCCiYjNDM7CSAqIG1pZ3JhdGlvbiByZWdpc3RlcnMuIFdoZW4gdGhlIGhvc3QgcGFnZSBleGNlZWRzIDMyS0IsIHRoZQomIzQzOwkgKiB0d28gc2hhcmUgb25lIHBoeXNpY2FsIHBhZ2UgYW5kIGNhbm5vdCBiZSBpc29sYXRlZCBieSBtbWFwLgomIzQzOwkgKiBSZWplY3QgdGhlIG9wZW4gc28gUUVNVSBmYWlscyBjbGVhbmx5IGF0IHN0YXJ0dXAuCiYjNDM7CSAqLwomIzQzOwlpZiAoaGlzaV9hY2NfdmRldi0mZ3Q7ZHJ2X21vZGUgPT0gSFdfQUNDX01JR19WRl9DVFJMKSB7CiYjNDM7CQlyZXNvdXJjZV9zaXplX3QgZnVuY19sZW4gPQomIzQzOwkJCXBjaV9yZXNvdXJjZV9sZW4odmZfZGV2LCBWRklPX1BDSV9CQVIyX1JFR0lPTl9JTkRFWCkgJmd0OyZndDsgMTsKJiM0MzsKJiM0MzsJCWlmIChmdW5jX2xlbiAmbHQ7IFBBR0VfU0laRSkgewomIzQzOwkJCWRldl9lcnIoJmFtcDt2Zl9kZXYtJmd0O2RldiwKJiM0MzsJCQkJJiMzNDttaWdyYXRpb24gbm90IHN1cHBvcnRlZCBvbiA2NEtCIHBhZ2VzIHdpdGggUU1fSFdfVjNcbiYjMzQ7KTsKJiM0MzsJCQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwogCWlmIChoaXNpX2FjY192ZGV2LSZndDtkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1BGX0NUUkwpIHsKIAkJLyoKIAkJICogT24gaGFyZHdhcmUgcGxhdGZvcm1zIGdyZWF0ZXIgdGhhbiBRTV9IV19WMywgdGhlIG1pZ3JhdGlvbiBmdW5jdGlvbgpAQCAtMTU2NSw2ICYjNDM7MTU5MSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2KHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2KQogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2Rldihjb3JlX3ZkZXYtJmd0O2Rldik7CiAJc3RydWN0IGhpc2lfcW0gKnBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpOwogCiYjNDM7CWlmICghcGZfcW0pIHsKJiM0MzsJCWRldl9lcnIoJmFtcDtwZGV2LSZndDtkZXYsICYjMzQ7UEYgZHJpdmVyIG5vdCBsb2FkZWQsIGNhbm5vdCBlbmFibGUgbWlncmF0aW9uXG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gLUVOT0RFVjsKJiM0MzsJfQomIzQzOwogCWhpc2lfYWNjX3ZkZXYtJmd0O3ZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KSAmIzQzOyAxOwogCWhpc2lfYWNjX3ZkZXYtJmd0O3BmX3FtID0gcGZfcW07CiAJaGlzaV9hY2NfdmRldi0mZ3Q7dmZfZGV2ID0gcGRldjsKQEAgLTE2NzAsMTMgJiM0MzsxNzAxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlCiAJc3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2OwogCWNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgKm9wcyA9ICZhbXA7aGlzaV9hY2NfdmZpb19wY2lfb3BzOwogCXN0cnVjdCBoaXNpX3FtICpwZl9xbTsKLQlpbnQgdmZfaWQ7CiAJaW50IHJldDsKIAogCXBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpOwogCWlmIChwZl9xbSAmYW1wOyZhbXA7IHBmX3FtLSZndDt2ZXIgJmd0Oz0gUU1fSFdfVjMpIHsKLQkJdmZfaWQgPSBwY2lfaW92X3ZmX2lkKHBkZXYpOwotCQlpZiAodmZfaWQgJmd0Oz0gMCkKJiM0MzsJCWlmIChwZGV2LSZndDtpc192aXJ0Zm4pCiAJCQlvcHMgPSAmYW1wO2hpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wczsKIAkJZWxzZQogCQkJcGNpX3dhcm4ocGRldiwgJiMzNDttaWdyYXRpb24gc3VwcG9ydCBmYWlsZWQsIGNvbnRpbnVlIHdpdGggZ2VuZXJpYyBpbnRlcmZhY2VcbiYjMzQ7KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI2NwoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDM5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBWRklPIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIHRoZSBgaGlzaV9hY2NfdmZpb19wY2kuY2AgZHJpdmVyLCB3aGljaCBmcm9tIHRoZSBuYW1lLCBJJiMzOTttIGluZmVycmluZyBpcyBhIFZGSU8gUENJIGRyaXZlciBzcGVjaWZpYyB0byBIaXNpbGljb24gQUNDIGRldmljZXMuIFRoYXQgaW1tZWRpYXRlbHkgcmFpc2VzIHNvbWUgZmxhZ3MuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgc29tZSBzYWZldHkgY2hlY2tzIGZvciBgcW1gIGFuZCBgcW0tJmd0O2lvX2Jhc2VgIHdpdGhpbiB0aGUgcmVzZXQgYW5kIEFFUiByZXNldCBmdW5jdGlvbnMgKGBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZWAgYW5kIGBoaXNpX2FjY192Zl9wY2lfYWVyX3Jlc2V0X2RvbmVgKS4gVGhleSYjMzk7dmUgYWxzbyBwdXQgaW4gYSBib3VuZGFyeSBjaGVjayByZWxhdGVkIHRvIGBIV19BQ0NfTUlHX1ZGX0NUUkxgIGxlbmd0aCwgYW5kIGFub3RoZXIgY2hlY2sgaW4gYGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2YCB0byBlbnN1cmUgdGhlIGBwZl9xbWAgaXNuJiMzOTt0IG51bGwuIEZpbmFsbHksIHRoZXJlIGlzIGEgY2hhbmdlIHRoYXQgcmVwbGFjZXMgYHZmX2lkYCBjaGVja3Mgd2l0aCBhIGNoZWNrIHRvIGBwZGV2LSZndDtpc192aXJ0Zm5gLiBUaGlzIGlzIHRoZSBmaXJzdCB0aGluZyB0byBqdW1wIG91dCB0byBtZS4KCk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogKmlzIHRoaXMgZHJpdmVyIGV2ZW4gcmVhY2hhYmxlIG9yIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VPyogVGhlIGZpbGUgbmFtZSBzYXlzICYjMzQ7VkZJTyYjMzQ7LiBWRklPIGRyaXZlcnMgYXJlIGRlc2lnbmVkIHRvIGRpcmVjdGx5IGV4cG9zZSBoYXJkd2FyZSB0byBhIHZpcnR1YWwgbWFjaGluZSAoVk0pLiBIb3dldmVyLCB0aGlzIGlzIGZvciBhICpzcGVjaWZpYyogcGllY2Ugb2YgaGFyZHdhcmU6IEhpc2lsaWNvbiBBQ0MuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCAmIzM0O2NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7IGFyZSBub3Qgbm9ybWFsbHkgZnV6emFibGUgdW5sZXNzIHlvdSBoYXZlIHRoZSBoYXJkd2FyZS4KCkdpdmVuIHRoYXQgSGlzaWxpY29uIEFDQyBpcyBhIGhhcmR3YXJlIGFjY2VsZXJhdG9yLCBpdCBzZWVtcyBoaWdobHkgbGlrZWx5IHRoYXQgdGhpcyBkcml2ZXIgaXMgZGVwZW5kZW50IG9uIHRoZSBwaHlzaWNhbCBwcmVzZW5jZSBvZiB0aGUgSGlzaWxpY29uIEFDQyBkZXZpY2UuIFZGSU8gZHJpdmVycywgYnkgdGhlaXIgbmF0dXJlLCBiaW5kIHRvIGEgcGh5c2ljYWwgZGV2aWNlLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgc3VjaCBkcml2ZXJzLCBlc3BlY2lhbGx5IHRob3NlIHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUgYWNjZWxlcmF0b3JzLCBhcmUgKmdlbmVyYWxseSogbm90IGZ1enphYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB3aGV0aGVyIG9yIG5vdCB0aGlzIHNwZWNpZmljIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGZ1enphYmxlLCBhcyB0aGVyZSBhcmUgZXhjZXB0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtoaXNpX2FjY192ZmlvX3BjaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19ISVNJX0FDQ19WRklPX1BDSSkgJiM0Mzs9IGhpc2ktYWNjLXZmaW8tcGNpLm9cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL01ha2VmaWxlOjM6aGlzaS1hY2MtdmZpby1wY2kteSA6PSBoaXNpX2FjY192ZmlvX3BjaS5vXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9NYWtlZmlsZS00LVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYtXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3OiNpbmNsdWRlIFwmIzM0O2hpc2lfYWNjX3ZmaW9fcGNpLmhcJiMzNDtcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTgtXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTAwPXN0YXRpYyBzdHJ1Y3QgZmlsZSAqXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjExMDE6aGlzaV9hY2NfdmZpb19wY2lfc2V0X2RldmljZV9zdGF0ZShzdHJ1Y3QgdmZpb19kZXZpY2UgKnZkZXYsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTExMDItXHRcdFx0XHQgICBlbnVtIHZmaW9fZGV2aWNlX21pZ19zdGF0ZSBuZXdfc3RhdGUpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTMzPXN0YXRpYyBpbnRcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTEzNDpoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGF0YV9zaXplKHN0cnVjdCB2ZmlvX2RldmljZSAqdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTEzNS1cdFx0XHRcdHVuc2lnbmVkIGxvbmcgKnN0b3BfY29weV9sZW5ndGgpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTQxPXN0YXRpYyBpbnRcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTE0MjpoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGV2aWNlX3N0YXRlKHN0cnVjdCB2ZmlvX2RldmljZSAqdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTE0My1cdFx0XHRcdCAgIGVudW0gdmZpb19kZXZpY2VfbWlnX3N0YXRlICpjdXJyX3N0YXRlKVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTMyMj1zdGF0aWMgaW50IGhpc2lfYWNjX3BjaV9yd19hY2Nlc3NfY2hlY2soc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzQ0LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzQ1OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbW1hcChzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTM0Ni1cdFx0XHRcdCAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzY5LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzcwOnN0YXRpYyBzc2l6ZV90IGhpc2lfYWNjX3ZmaW9fcGNpX3dyaXRlKHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2LFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzcxLVx0XHRcdFx0ICAgICAgIGNvbnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzODMtXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjEzODQ6c3RhdGljIHNzaXplX3QgaGlzaV9hY2NfdmZpb19wY2lfcmVhZChzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTM4NS1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTE1MTg9c3RhdGljIGludCBoaXNpX2FjY192Zl9taWdmX3JlYWQoc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTM5LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNTQwOnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfb3Blbl9kZXZpY2Uoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1NDEte1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU2Ny1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU2ODpzdGF0aWMgdm9pZCBoaXNpX2FjY192ZmlvX3BjaV9jbG9zZV9kZXZpY2Uoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1Njkte1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU4MS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU4MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZmaW9fbWlncmF0aW9uX29wcyBoaXNpX2FjY192ZmlvX3BjaV9taWdybl9zdGF0ZV9vcHMgPSB7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODM6XHQubWlncmF0aW9uX3NldF9zdGF0ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3NldF9kZXZpY2Vfc3RhdGUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODQ6XHQubWlncmF0aW9uX2dldF9zdGF0ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX2dldF9kZXZpY2Vfc3RhdGUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODU6XHQubWlncmF0aW9uX2dldF9kYXRhX3NpemUgPSBoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGF0YV9zaXplLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTg2LX07XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1ODctXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODg6c3RhdGljIGludCBoaXNpX2FjY192ZmlvX3BjaV9taWdybl9pbml0X2RldihzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldilcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU4OS17XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjA2LVx0Y29yZV92ZGV2LVx1MDAzZW1pZ3JhdGlvbl9mbGFncyA9IFZGSU9fTUlHUkFUSU9OX1NUT1BfQ09QWSB8IFZGSU9fTUlHUkFUSU9OX1BSRV9DT1BZO1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjA3Olx0Y29yZV92ZGV2LVx1MDAzZW1pZ19vcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9taWdybl9zdGF0ZV9vcHM7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MDgtXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjExLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjEyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmZpb19kZXZpY2Vfb3BzIGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wcyA9IHtcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxMy1cdC5uYW1lID0gXCYjMzQ7aGlzaS1hY2MtdmZpby1wY2ktbWlncmF0aW9uXCYjMzQ7LFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjE0Olx0LmluaXQgPSBoaXNpX2FjY192ZmlvX3BjaV9taWdybl9pbml0X2RldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxNS1cdC5yZWxlYXNlID0gdmZpb19wY2lfY29yZV9yZWxlYXNlX2RldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYxNjpcdC5vcGVuX2RldmljZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX29wZW5fZGV2aWNlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjE3Olx0LmNsb3NlX2RldmljZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX2Nsb3NlX2RldmljZSxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxOC1cdC5pb2N0bCA9IHZmaW9fcGNpX2NvcmVfaW9jdGwsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjIwLVx0LmRldmljZV9mZWF0dXJlID0gdmZpb19wY2lfY29yZV9pb2N0bF9mZWF0dXJlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjIxOlx0LnJlYWQgPSBoaXNpX2FjY192ZmlvX3BjaV9yZWFkLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjIyOlx0LndyaXRlID0gaGlzaV9hY2NfdmZpb19wY2lfd3JpdGUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MjM6XHQubW1hcCA9IGhpc2lfYWNjX3ZmaW9fcGNpX21tYXAsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MjQtXHQucmVxdWVzdCA9IHZmaW9fcGNpX2NvcmVfcmVxdWVzdCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzItXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MzM6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgaGlzaV9hY2NfdmZpb19wY2lfb3BzID0ge1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjM0LVx0Lm5hbWUgPSBcJiMzNDtoaXNpLWFjYy12ZmlvLXBjaVwmIzM0Oyxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzYtXHQucmVsZWFzZSA9IHZmaW9fcGNpX2NvcmVfcmVsZWFzZV9kZXYsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2Mzc6XHQub3Blbl9kZXZpY2UgPSBoaXNpX2FjY192ZmlvX3BjaV9vcGVuX2RldmljZSxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYzOC1cdC5jbG9zZV9kZXZpY2UgPSB2ZmlvX3BjaV9jb3JlX2Nsb3NlX2RldmljZSxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTE2NTQ9c3RhdGljIHZvaWQgaGlzaV9hY2NfdmZpb19kZWJ1Z19pbml0KHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldilcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2NjUtXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2NjY6XHRpZiAodmRldi1cdTAwM2VvcHMgIT0gXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzKVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjY3LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xNjkzPXN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX2RlYnVnZnNfZXhpdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjk4LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjk5OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcwMC17XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MDEtXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXY7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3MDI6XHRjb25zdCBzdHJ1Y3QgdmZpb19kZXZpY2Vfb3BzICpvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9vcHM7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MDMtXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW07XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzA4LVx0XHRpZiAocGRldi1cdTAwM2Vpc192aXJ0Zm4pXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3MDk6XHRcdFx0b3BzID0gXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzO1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzEwLVx0XHRlbHNlXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzMxLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzMyOnN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmaW9fcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTczMy17XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQwLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzQxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBoaXNpX2FjY192ZmlvX3BjaV90YWJsZVtdID0ge1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQyLVx0eyBQQ0lfRFJJVkVSX09WRVJSSURFX0RFVklDRV9WRklPKFBDSV9WRU5ET1JfSURfSFVBV0VJLCBQQ0lfREVWSUNFX0lEX0hVQVdFSV9TRUNfVkYpIH0sXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQ3LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzQ4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoaXNpX2FjY192ZmlvX3BjaV90YWJsZSk7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NDktXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTE3NTA9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXJyb3JfaGFuZGxlcnMgaGlzaV9hY2NfdmZfZXJyX2hhbmRsZXJzID0ge1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTc1NS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc1NjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaGlzaV9hY2NfdmZpb19wY2lfZHJpdmVyID0ge1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzU3LVx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc1ODpcdC5pZF90YWJsZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3RhYmxlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzU5Olx0LnByb2JlID0gaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3NjA6XHQucmVtb3ZlID0gaGlzaV9hY2NfdmZpb19wY2lfcmVtb3ZlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzYxLVx0LmVycl9oYW5kbGVyID0gXHUwMDI2aGlzaV9hY2NfdmZfZXJyX2hhbmRsZXJzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTc2NC1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc2NTptb2R1bGVfcGNpX2RyaXZlcihoaXNpX2FjY192ZmlvX3BjaV9kcml2ZXIpO1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzY2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg1OTIKCQkJCQkJCW91dHB1dDogMTAyCgkJCQkJCQl0aG91Z2h0czogMzk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IE5vdCBXb3J0aCBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBoaXNpX2FjY192ZmlvX3BjaWAgZHJpdmVyLiBGcm9tIHRoZSBuYW1pbmcsIEkga25vdyBpdCYjMzk7cyBhIFBDSSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBIaXNpbGljb24gQUNDIFZGSU8sIGxpa2VseSBkZWFsaW5nIHdpdGggdGhlaXIgaGFyZHdhcmUgbGlrZSBTRUMsIEhQUkUsIGFuZCBaSVAuIEl0IGJpbmRzIHRvIHRob3NlIEh1YXdlaSB2ZW5kb3IgYW5kIGRldmljZSBJRHMuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGFzaywgaXMgdGhpcyBoYXJkd2FyZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VPyBJIGFscmVhZHkga25vdyB0aGUgYW5zd2VyLCBvZiBjb3Vyc2U7IHRoaXMgaXMgc3BlY2lhbGl6ZWQgSGlzaWxpY29uIHNpbGljb24uIE5vLCBpdCBpc24mIzM5O3QuCgpOb3csIGJlY2F1c2UgaXQmIzM5O3MgYSBWRklPIGRyaXZlciwgdGhlIHdob2xlIHB1cnBvc2UgaXMgdG8gcGFzcyB0aHJvdWdoIHBoeXNpY2FsIGRldmljZXMgdG8gdXNlcnNwYWNlL1ZNcy4gV2l0aG91dCB0aGF0IGFjdHVhbCBIaXNpbGljb24gQUNDIGhhcmR3YXJlIHByZXNlbnQsIHRoaXMgZHJpdmVyIHNpbXBseSBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZXJjaXNlZC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlIGVtdWxhdGlvbi4gSSBzaG91bGQgbWFyayBpdCBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgdGhvdWdoLCBvbiBhbnkgd2VpcmQgY29ybmVyLWNhc2VzLiBWRklPIGRyaXZlcnMgZm9yIHNwZWNpYWxpemVkIGhhcmR3YXJlIGxpa2UgdGhpcyBhcmUgYWxtb3N0ICpuZXZlciogZW11bGF0ZWQuIExldCYjMzk7cyBzZWUuLi4gdGhlIHByb21wdCBzdGF0ZXMgJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUmIzM0Oy4gQWgsIGFuZCB0aGVyZSYjMzk7cyB0aGF0IGhlbHBmdWwgZXhhbXBsZTogJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4KClRoaXMgcGVyZmVjdGx5IG1hdGNoZXMgdGhlIGRlc2NyaXB0aW9uOiBpdCYjMzk7cyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQywgd2hpY2gsIGJ5IGRlZmluaXRpb24sIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgdGhhdCBhcmUgKm5vdCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gU28sIHllYWgsIHRoaXMgaXMgYSBkZWFkIGVuZC4gRGVmaW5pdGVseSBub3Qgd29ydGggZnV6emluZyBpbiB0aGlzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIHZlbmRvci1zcGVjaWZpYyBWRklPIFBDSSBkcml2ZXIgZm9yIEhpc2lsaWNvbiBBQ0MgZGV2aWNlcyAoaGlzaV9hY2NfdmZpb19wY2kpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBIaXNpbGljb24gUENJZSBoYXJkd2FyZSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBhdmFpbGFibGUgaW4gdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjM4LjQyOTY0NDEzM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTkxOTczNjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjM4LjQyOTY0ODQ3M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ0NDE2OTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTVkNzY1OGFmNDc0YjY1MTdlODFhMDQ4NDJjZDE4NjhkMzZjY2VmMlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwOTowMDozNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jIGIvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuY1xcbmluZGV4IDg2MzYyZWM0MjRhNTAuLjRlODQ1NDc0ZmE5MGIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuY1xcbisrKyBiL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcXG5AQCAtMTE1NCw5ICsxMTU0LDE0IEBAIHN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX3BjaV9yZXNldF9wcmVwYXJlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiB7XFxuIFxcdHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldiA9IGhpc2lfYWNjX2RydmRhdGEocGRldik7XFxuIFxcdHN0cnVjdCBoaXNpX3FtICpxbSA9IGhpc2lfYWNjX3ZkZXYtXFx1MDAzZXBmX3FtO1xcbi1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cW0tXFx1MDAzZXBkZXYtXFx1MDAzZWRldjtcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnBkZXYtXFx1MDAzZWRldjtcXG4gXFx0dTMyIGRlbGF5ID0gMDtcXG4gXFxuK1xcdGlmICghcW0gfHwgIXFtLVxcdTAwM2Vpb19iYXNlKSB7XFxuK1xcdFxcdGRldl9lcnIoZGV2LCBcXFwiUEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcXFxcblxcXCIpO1xcbitcXHRcXHRyZXR1cm47XFxuK1xcdH1cXG4rXFxuIFxcdC8qIEFsbCByZXNldCByZXF1ZXN0cyBuZWVkIHRvIGJlIHF1ZXVlZCBmb3IgcHJvY2Vzc2luZyAqL1xcbiBcXHR3aGlsZSAodGVzdF9hbmRfc2V0X2JpdChRTV9SRVNFVFRJTkcsIFxcdTAwMjZxbS1cXHUwMDNlbWlzY19jdGwpKSB7XFxuIFxcdFxcdG1zbGVlcCgxKTtcXG5AQCAtMTE3NCw4ICsxMTc5LDEyIEBAIHN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX3BjaV9hZXJfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gXFx0c3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2ID0gaGlzaV9hY2NfZHJ2ZGF0YShwZGV2KTtcXG4gXFx0c3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi1cXHUwMDNlcGZfcW07XFxuIFxcbi1cXHRpZiAoaGlzaV9hY2NfdmRldi1cXHUwMDNlc2V0X3Jlc2V0X2ZsYWcpXFxuLVxcdFxcdGNsZWFyX2JpdChRTV9SRVNFVFRJTkcsIFxcdTAwMjZxbS1cXHUwMDNlbWlzY19jdGwpO1xcbitcXHRpZiAoaGlzaV9hY2NfdmRldi1cXHUwMDNlc2V0X3Jlc2V0X2ZsYWcpIHtcXG4rXFx0XFx0aWYgKHFtIFxcdTAwMjZcXHUwMDI2IHFtLVxcdTAwM2Vpb19iYXNlKVxcbitcXHRcXHRcXHRjbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCBcXHUwMDI2cW0tXFx1MDAzZW1pc2NfY3RsKTtcXG4rXFx0XFx0ZWxzZVxcbitcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJQRiBRTSBub3QgYXZhaWxhYmxlIGZvciByZXNldCBkb25lXFxcXG5cXFwiKTtcXG4rXFx0fVxcbiBcXG4gXFx0aWYgKCFoaXNpX2FjY192ZGV2LVxcdTAwM2Vjb3JlX2RldmljZS52ZGV2Lm1pZ19vcHMpXFxuIFxcdFxcdHJldHVybjtcXG5AQCAtMTE5OSw2ICsxMjA4LDIzIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZfcW1faW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXFxuIFxcdGVsc2VcXG4gXFx0XFx0aGlzaV9hY2NfdmRldi1cXHUwMDNlZHJ2X21vZGUgPSBIV19BQ0NfTUlHX1ZGX0NUUkw7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBPbiBWRl9DVFJMIGhhcmR3YXJlLCBCQVIyIGhvbGRzIDMyS0IgZnVuY3Rpb25hbCArIDMyS0JcXG4rXFx0ICogbWlncmF0aW9uIHJlZ2lzdGVycy4gV2hlbiB0aGUgaG9zdCBwYWdlIGV4Y2VlZHMgMzJLQiwgdGhlXFxuK1xcdCAqIHR3byBzaGFyZSBvbmUgcGh5c2ljYWwgcGFnZSBhbmQgY2Fubm90IGJlIGlzb2xhdGVkIGJ5IG1tYXAuXFxuK1xcdCAqIFJlamVjdCB0aGUgb3BlbiBzbyBRRU1VIGZhaWxzIGNsZWFubHkgYXQgc3RhcnR1cC5cXG4rXFx0ICovXFxuK1xcdGlmIChoaXNpX2FjY192ZGV2LVxcdTAwM2VkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1ZGX0NUUkwpIHtcXG4rXFx0XFx0cmVzb3VyY2Vfc2l6ZV90IGZ1bmNfbGVuID1cXG4rXFx0XFx0XFx0cGNpX3Jlc291cmNlX2xlbih2Zl9kZXYsIFZGSU9fUENJX0JBUjJfUkVHSU9OX0lOREVYKSBcXHUwMDNlXFx1MDAzZSAxO1xcbitcXG4rXFx0XFx0aWYgKGZ1bmNfbGVuIFxcdTAwM2MgUEFHRV9TSVpFKSB7XFxuK1xcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnZmX2Rldi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXHRcXFwibWlncmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gNjRLQiBwYWdlcyB3aXRoIFFNX0hXX1YzXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4gXFx0aWYgKGhpc2lfYWNjX3ZkZXYtXFx1MDAzZWRydl9tb2RlID09IEhXX0FDQ19NSUdfUEZfQ1RSTCkge1xcbiBcXHRcXHQvKlxcbiBcXHRcXHQgKiBPbiBoYXJkd2FyZSBwbGF0Zm9ybXMgZ3JlYXRlciB0aGFuIFFNX0hXX1YzLCB0aGUgbWlncmF0aW9uIGZ1bmN0aW9uXFxuQEAgLTE1NjUsNiArMTU5MSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2KHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2KVxcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoY29yZV92ZGV2LVxcdTAwM2VkZXYpO1xcbiBcXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW0gPSBoaXNpX2FjY19nZXRfcGZfcW0ocGRldik7XFxuIFxcbitcXHRpZiAoIXBmX3FtKSB7XFxuK1xcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIlBGIGRyaXZlciBub3QgbG9hZGVkLCBjYW5ub3QgZW5hYmxlIG1pZ3JhdGlvblxcXFxuXFxcIik7XFxuK1xcdFxcdHJldHVybiAtRU5PREVWO1xcbitcXHR9XFxuK1xcbiBcXHRoaXNpX2FjY192ZGV2LVxcdTAwM2V2Zl9pZCA9IHBjaV9pb3ZfdmZfaWQocGRldikgKyAxO1xcbiBcXHRoaXNpX2FjY192ZGV2LVxcdTAwM2VwZl9xbSA9IHBmX3FtO1xcbiBcXHRoaXNpX2FjY192ZGV2LVxcdTAwM2V2Zl9kZXYgPSBwZGV2O1xcbkBAIC0xNjcwLDEzICsxNzAxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlXFxuIFxcdHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldjtcXG4gXFx0Y29uc3Qgc3RydWN0IHZmaW9fZGV2aWNlX29wcyAqb3BzID0gXFx1MDAyNmhpc2lfYWNjX3ZmaW9fcGNpX29wcztcXG4gXFx0c3RydWN0IGhpc2lfcW0gKnBmX3FtO1xcbi1cXHRpbnQgdmZfaWQ7XFxuIFxcdGludCByZXQ7XFxuIFxcbiBcXHRwZl9xbSA9IGhpc2lfYWNjX2dldF9wZl9xbShwZGV2KTtcXG4gXFx0aWYgKHBmX3FtIFxcdTAwMjZcXHUwMDI2IHBmX3FtLVxcdTAwM2V2ZXIgXFx1MDAzZT0gUU1fSFdfVjMpIHtcXG4tXFx0XFx0dmZfaWQgPSBwY2lfaW92X3ZmX2lkKHBkZXYpO1xcbi1cXHRcXHRpZiAodmZfaWQgXFx1MDAzZT0gMClcXG4rXFx0XFx0aWYgKHBkZXYtXFx1MDAzZWlzX3ZpcnRmbilcXG4gXFx0XFx0XFx0b3BzID0gXFx1MDAyNmhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wcztcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRwY2lfd2FybihwZGV2LCBcXFwibWlncmF0aW9uIHN1cHBvcnQgZmFpbGVkLCBjb250aW51ZSB3aXRoIGdlbmVyaWMgaW50ZXJmYWNlXFxcXG5cXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MDA6MzguOTc0NzAxMTk2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTc0NDY5MDM2NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgdmVuZG9yLXNwZWNpZmljIFZGSU8gUENJIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQyBkZXZpY2VzIChoaXNpX2FjY192ZmlvX3BjaSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEhpc2lsaWNvbiBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NWQ3NjU4YWY0NzRiNjUxN2U4MWEwNDg0MmNkMTg2OGQzNmNjZWYyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MDA6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jIGIvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuY1xuaW5kZXggODYzNjJlYzQyNGE1MC4uNGU4NDU0NzRmYTkwYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcbisrKyBiL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcbkBAIC0xMTU0LDkgKzExNTQsMTQgQEAgc3RhdGljIHZvaWQgaGlzaV9hY2NfdmZfcGNpX3Jlc2V0X3ByZXBhcmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4ge1xuIFx0c3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2ID0gaGlzaV9hY2NfZHJ2ZGF0YShwZGV2KTtcbiBcdHN0cnVjdCBoaXNpX3FtICpxbSA9IGhpc2lfYWNjX3ZkZXYtXHUwMDNlcGZfcW07XG4tXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZxbS1cdTAwM2VwZGV2LVx1MDAzZWRldjtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIGRlbGF5ID0gMDtcbiBcbitcdGlmICghcW0gfHwgIXFtLVx1MDAzZWlvX2Jhc2UpIHtcbitcdFx0ZGV2X2VycihkZXYsIFwiUEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcXG5cIik7XG4rXHRcdHJldHVybjtcbitcdH1cbitcbiBcdC8qIEFsbCByZXNldCByZXF1ZXN0cyBuZWVkIHRvIGJlIHF1ZXVlZCBmb3IgcHJvY2Vzc2luZyAqL1xuIFx0d2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoUU1fUkVTRVRUSU5HLCBcdTAwMjZxbS1cdTAwM2VtaXNjX2N0bCkpIHtcbiBcdFx0bXNsZWVwKDEpO1xuQEAgLTExNzQsOCArMTE3OSwxMiBAQCBzdGF0aWMgdm9pZCBoaXNpX2FjY192Zl9wY2lfYWVyX3Jlc2V0X2RvbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYgPSBoaXNpX2FjY19kcnZkYXRhKHBkZXYpO1xuIFx0c3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi1cdTAwM2VwZl9xbTtcbiBcbi1cdGlmIChoaXNpX2FjY192ZGV2LVx1MDAzZXNldF9yZXNldF9mbGFnKVxuLVx0XHRjbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCBcdTAwMjZxbS1cdTAwM2VtaXNjX2N0bCk7XG4rXHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VzZXRfcmVzZXRfZmxhZykge1xuK1x0XHRpZiAocW0gXHUwMDI2XHUwMDI2IHFtLVx1MDAzZWlvX2Jhc2UpXG4rXHRcdFx0Y2xlYXJfYml0KFFNX1JFU0VUVElORywgXHUwMDI2cW0tXHUwMDNlbWlzY19jdGwpO1xuK1x0XHRlbHNlXG4rXHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCJQRiBRTSBub3QgYXZhaWxhYmxlIGZvciByZXNldCBkb25lXFxuXCIpO1xuK1x0fVxuIFxuIFx0aWYgKCFoaXNpX2FjY192ZGV2LVx1MDAzZWNvcmVfZGV2aWNlLnZkZXYubWlnX29wcylcbiBcdFx0cmV0dXJuO1xuQEAgLTExOTksNiArMTIwOCwyMyBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmX3FtX2luaXQoc3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2KVxuIFx0ZWxzZVxuIFx0XHRoaXNpX2FjY192ZGV2LVx1MDAzZWRydl9tb2RlID0gSFdfQUNDX01JR19WRl9DVFJMO1xuIFxuK1x0LypcbitcdCAqIE9uIFZGX0NUUkwgaGFyZHdhcmUsIEJBUjIgaG9sZHMgMzJLQiBmdW5jdGlvbmFsICsgMzJLQlxuK1x0ICogbWlncmF0aW9uIHJlZ2lzdGVycy4gV2hlbiB0aGUgaG9zdCBwYWdlIGV4Y2VlZHMgMzJLQiwgdGhlXG4rXHQgKiB0d28gc2hhcmUgb25lIHBoeXNpY2FsIHBhZ2UgYW5kIGNhbm5vdCBiZSBpc29sYXRlZCBieSBtbWFwLlxuK1x0ICogUmVqZWN0IHRoZSBvcGVuIHNvIFFFTVUgZmFpbHMgY2xlYW5seSBhdCBzdGFydHVwLlxuK1x0ICovXG4rXHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1ZGX0NUUkwpIHtcbitcdFx0cmVzb3VyY2Vfc2l6ZV90IGZ1bmNfbGVuID1cbitcdFx0XHRwY2lfcmVzb3VyY2VfbGVuKHZmX2RldiwgVkZJT19QQ0lfQkFSMl9SRUdJT05fSU5ERVgpIFx1MDAzZVx1MDAzZSAxO1xuK1xuK1x0XHRpZiAoZnVuY19sZW4gXHUwMDNjIFBBR0VfU0laRSkge1xuK1x0XHRcdGRldl9lcnIoXHUwMDI2dmZfZGV2LVx1MDAzZWRldixcbitcdFx0XHRcdFwibWlncmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gNjRLQiBwYWdlcyB3aXRoIFFNX0hXX1YzXFxuXCIpO1xuK1x0XHRcdHJldHVybiAtRUlOVkFMO1xuK1x0XHR9XG4rXHR9XG4rXG4gXHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1BGX0NUUkwpIHtcbiBcdFx0LypcbiBcdFx0ICogT24gaGFyZHdhcmUgcGxhdGZvcm1zIGdyZWF0ZXIgdGhhbiBRTV9IV19WMywgdGhlIG1pZ3JhdGlvbiBmdW5jdGlvblxuQEAgLTE1NjUsNiArMTU5MSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2KHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2KVxuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGNvcmVfdmRldi1cdTAwM2VkZXYpO1xuIFx0c3RydWN0IGhpc2lfcW0gKnBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpO1xuIFxuK1x0aWYgKCFwZl9xbSkge1xuK1x0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcIlBGIGRyaXZlciBub3QgbG9hZGVkLCBjYW5ub3QgZW5hYmxlIG1pZ3JhdGlvblxcblwiKTtcbitcdFx0cmV0dXJuIC1FTk9ERVY7XG4rXHR9XG4rXG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KSArIDE7XG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXBmX3FtID0gcGZfcW07XG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXZmX2RldiA9IHBkZXY7XG5AQCAtMTY3MCwxMyArMTcwMSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZVxuIFx0c3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2O1xuIFx0Y29uc3Qgc3RydWN0IHZmaW9fZGV2aWNlX29wcyAqb3BzID0gXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfb3BzO1xuIFx0c3RydWN0IGhpc2lfcW0gKnBmX3FtO1xuLVx0aW50IHZmX2lkO1xuIFx0aW50IHJldDtcbiBcbiBcdHBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpO1xuIFx0aWYgKHBmX3FtIFx1MDAyNlx1MDAyNiBwZl9xbS1cdTAwM2V2ZXIgXHUwMDNlPSBRTV9IV19WMykge1xuLVx0XHR2Zl9pZCA9IHBjaV9pb3ZfdmZfaWQocGRldik7XG4tXHRcdGlmICh2Zl9pZCBcdTAwM2U9IDApXG4rXHRcdGlmIChwZGV2LVx1MDAzZWlzX3ZpcnRmbilcbiBcdFx0XHRvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9taWdybl9vcHM7XG4gXHRcdGVsc2VcbiBcdFx0XHRwY2lfd2FybihwZGV2LCBcIm1pZ3JhdGlvbiBzdXBwb3J0IGZhaWxlZCwgY29udGludWUgd2l0aCBnZW5lcmljIGludGVyZmFjZVxcblwiKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjM4Ljk3NDcwMjc0NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyNDI1MzkxMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVkZJTyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIHRoZSBgaGlzaV9hY2NfdmZpb19wY2kuY2AgZHJpdmVyLCB3aGljaCBmcm9tIHRoZSBuYW1lLCBJJ20gaW5mZXJyaW5nIGlzIGEgVkZJTyBQQ0kgZHJpdmVyIHNwZWNpZmljIHRvIEhpc2lsaWNvbiBBQ0MgZGV2aWNlcy4gVGhhdCBpbW1lZGlhdGVseSByYWlzZXMgc29tZSBmbGFncy4gSXQgbG9va3MgbGlrZSB0aGV5J3ZlIGFkZGVkIHNvbWUgc2FmZXR5IGNoZWNrcyBmb3IgYHFtYCBhbmQgYHFtLVx1MDAzZWlvX2Jhc2VgIHdpdGhpbiB0aGUgcmVzZXQgYW5kIEFFUiByZXNldCBmdW5jdGlvbnMgKGBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZWAgYW5kIGBoaXNpX2FjY192Zl9wY2lfYWVyX3Jlc2V0X2RvbmVgKS4gVGhleSd2ZSBhbHNvIHB1dCBpbiBhIGJvdW5kYXJ5IGNoZWNrIHJlbGF0ZWQgdG8gYEhXX0FDQ19NSUdfVkZfQ1RSTGAgbGVuZ3RoLCBhbmQgYW5vdGhlciBjaGVjayBpbiBgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5faW5pdF9kZXZgIHRvIGVuc3VyZSB0aGUgYHBmX3FtYCBpc24ndCBudWxsLiBGaW5hbGx5LCB0aGVyZSBpcyBhIGNoYW5nZSB0aGF0IHJlcGxhY2VzIGB2Zl9pZGAgY2hlY2tzIHdpdGggYSBjaGVjayB0byBgcGRldi1cdTAwM2Vpc192aXJ0Zm5gLiBUaGlzIGlzIHRoZSBmaXJzdCB0aGluZyB0byBqdW1wIG91dCB0byBtZS5cblxuTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiAqaXMgdGhpcyBkcml2ZXIgZXZlbiByZWFjaGFibGUgb3IgcmVsZXZhbnQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVU/KiBUaGUgZmlsZSBuYW1lIHNheXMgXCJWRklPXCIuIFZGSU8gZHJpdmVycyBhcmUgZGVzaWduZWQgdG8gZGlyZWN0bHkgZXhwb3NlIGhhcmR3YXJlIHRvIGEgdmlydHVhbCBtYWNoaW5lIChWTSkuIEhvd2V2ZXIsIHRoaXMgaXMgZm9yIGEgKnNwZWNpZmljKiBwaWVjZSBvZiBoYXJkd2FyZTogSGlzaWxpY29uIEFDQy4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IFwiY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIgYXJlIG5vdCBub3JtYWxseSBmdXp6YWJsZSB1bmxlc3MgeW91IGhhdmUgdGhlIGhhcmR3YXJlLlxuXG5HaXZlbiB0aGF0IEhpc2lsaWNvbiBBQ0MgaXMgYSBoYXJkd2FyZSBhY2NlbGVyYXRvciwgaXQgc2VlbXMgaGlnaGx5IGxpa2VseSB0aGF0IHRoaXMgZHJpdmVyIGlzIGRlcGVuZGVudCBvbiB0aGUgcGh5c2ljYWwgcHJlc2VuY2Ugb2YgdGhlIEhpc2lsaWNvbiBBQ0MgZGV2aWNlLiBWRklPIGRyaXZlcnMsIGJ5IHRoZWlyIG5hdHVyZSwgYmluZCB0byBhIHBoeXNpY2FsIGRldmljZS4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IHN1Y2ggZHJpdmVycywgZXNwZWNpYWxseSB0aG9zZSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlIGFjY2VsZXJhdG9ycywgYXJlICpnZW5lcmFsbHkqIG5vdCBmdXp6YWJsZSBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgd2hldGhlciBvciBub3QgdGhpcyBzcGVjaWZpYyBwaWVjZSBvZiBoYXJkd2FyZSBpcyBmdXp6YWJsZSwgYXMgdGhlcmUgYXJlIGV4Y2VwdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNjcsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTowMDo0Ni4yMTcyNDUxNzZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxNzcyMjMxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoaXNpX2FjY192ZmlvX3BjaVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19ISVNJX0FDQ19WRklPX1BDSSkgKz0gaGlzaS1hY2MtdmZpby1wY2kub1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL01ha2VmaWxlOjM6aGlzaS1hY2MtdmZpby1wY2kteSA6PSBoaXNpX2FjY192ZmlvX3BjaS5vXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vTWFrZWZpbGUtNC1cXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzojaW5jbHVkZSBcXFwiaGlzaV9hY2NfdmZpb19wY2kuaFxcXCJcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE4LVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTAwPXN0YXRpYyBzdHJ1Y3QgZmlsZSAqXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMTAxOmhpc2lfYWNjX3ZmaW9fcGNpX3NldF9kZXZpY2Vfc3RhdGUoc3RydWN0IHZmaW9fZGV2aWNlICp2ZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTEwMi1cXHRcXHRcXHRcXHQgICBlbnVtIHZmaW9fZGV2aWNlX21pZ19zdGF0ZSBuZXdfc3RhdGUpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTExMzM9c3RhdGljIGludFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTEzNDpoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGF0YV9zaXplKHN0cnVjdCB2ZmlvX2RldmljZSAqdmRldixcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTExMzUtXFx0XFx0XFx0XFx0dW5zaWduZWQgbG9uZyAqc3RvcF9jb3B5X2xlbmd0aClcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTE0MT1zdGF0aWMgaW50XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMTQyOmhpc2lfYWNjX3ZmaW9fcGNpX2dldF9kZXZpY2Vfc3RhdGUoc3RydWN0IHZmaW9fZGV2aWNlICp2ZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTE0My1cXHRcXHRcXHRcXHQgICBlbnVtIHZmaW9fZGV2aWNlX21pZ19zdGF0ZSAqY3Vycl9zdGF0ZSlcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTMyMj1zdGF0aWMgaW50IGhpc2lfYWNjX3BjaV9yd19hY2Nlc3NfY2hlY2soc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzNDQtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzQ1OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbW1hcChzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldixcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzNDYtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSlcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTM2OS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjEzNzA6c3RhdGljIHNzaXplX3QgaGlzaV9hY2NfdmZpb19wY2lfd3JpdGUoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzcxLVxcdFxcdFxcdFxcdCAgICAgICBjb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzODMtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzg0OnN0YXRpYyBzc2l6ZV90IGhpc2lfYWNjX3ZmaW9fcGNpX3JlYWQoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzg1LVxcdFxcdFxcdFxcdCAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTUxOD1zdGF0aWMgaW50IGhpc2lfYWNjX3ZmX21pZ2ZfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTUzOS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1NDA6c3RhdGljIGludCBoaXNpX2FjY192ZmlvX3BjaV9vcGVuX2RldmljZShzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldilcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1NDEte1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTY3LVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU2ODpzdGF0aWMgdm9pZCBoaXNpX2FjY192ZmlvX3BjaV9jbG9zZV9kZXZpY2Uoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTY5LXtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU4MS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODI6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX21pZ3JhdGlvbl9vcHMgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5fc3RhdGVfb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU4MzpcXHQubWlncmF0aW9uX3NldF9zdGF0ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3NldF9kZXZpY2Vfc3RhdGUsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNTg0OlxcdC5taWdyYXRpb25fZ2V0X3N0YXRlID0gaGlzaV9hY2NfdmZpb19wY2lfZ2V0X2RldmljZV9zdGF0ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODU6XFx0Lm1pZ3JhdGlvbl9nZXRfZGF0YV9zaXplID0gaGlzaV9hY2NfdmZpb19wY2lfZ2V0X2RhdGFfc2l6ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1ODYtfTtcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1ODctXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNTg4OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5faW5pdF9kZXYoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTg5LXtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYwNi1cXHRjb3JlX3ZkZXYtXFx1MDAzZW1pZ3JhdGlvbl9mbGFncyA9IFZGSU9fTUlHUkFUSU9OX1NUT1BfQ09QWSB8IFZGSU9fTUlHUkFUSU9OX1BSRV9DT1BZO1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYwNzpcXHRjb3JlX3ZkZXYtXFx1MDAzZW1pZ19vcHMgPSBcXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fc3RhdGVfb3BzO1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYwOC1cXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxMS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxMy1cXHQubmFtZSA9IFxcXCJoaXNpLWFjYy12ZmlvLXBjaS1taWdyYXRpb25cXFwiLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYxNDpcXHQuaW5pdCA9IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxNS1cXHQucmVsZWFzZSA9IHZmaW9fcGNpX2NvcmVfcmVsZWFzZV9kZXYsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjE2OlxcdC5vcGVuX2RldmljZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX29wZW5fZGV2aWNlLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYxNzpcXHQuY2xvc2VfZGV2aWNlID0gaGlzaV9hY2NfdmZpb19wY2lfY2xvc2VfZGV2aWNlLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxOC1cXHQuaW9jdGwgPSB2ZmlvX3BjaV9jb3JlX2lvY3RsLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjIwLVxcdC5kZXZpY2VfZmVhdHVyZSA9IHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MjE6XFx0LnJlYWQgPSBoaXNpX2FjY192ZmlvX3BjaV9yZWFkLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYyMjpcXHQud3JpdGUgPSBoaXNpX2FjY192ZmlvX3BjaV93cml0ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MjM6XFx0Lm1tYXAgPSBoaXNpX2FjY192ZmlvX3BjaV9tbWFwLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYyNC1cXHQucmVxdWVzdCA9IHZmaW9fcGNpX2NvcmVfcmVxdWVzdCxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYzMi1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MzM6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgaGlzaV9hY2NfdmZpb19wY2lfb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYzNC1cXHQubmFtZSA9IFxcXCJoaXNpLWFjYy12ZmlvLXBjaVxcXCIsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzYtXFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9jb3JlX3JlbGVhc2VfZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYzNzpcXHQub3Blbl9kZXZpY2UgPSBoaXNpX2FjY192ZmlvX3BjaV9vcGVuX2RldmljZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzgtXFx0LmNsb3NlX2RldmljZSA9IHZmaW9fcGNpX2NvcmVfY2xvc2VfZGV2aWNlLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xNjU0PXN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmaW9fZGVidWdfaW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2NjUtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjY2OlxcdGlmICh2ZGV2LVxcdTAwM2VvcHMgIT0gXFx1MDAyNmhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wcylcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2NjctXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xNjkzPXN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX2RlYnVnZnNfZXhpdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2OTgtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjk5OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MDAte1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcwMS1cXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXY7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzAyOlxcdGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgKm9wcyA9IFxcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9vcHM7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzAzLVxcdHN0cnVjdCBoaXNpX3FtICpwZl9xbTtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcwOC1cXHRcXHRpZiAocGRldi1cXHUwMDNlaXNfdmlydGZuKVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTcwOTpcXHRcXHRcXHRvcHMgPSBcXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzO1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcxMC1cXHRcXHRlbHNlXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MzEtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzMyOnN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmaW9fcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MzMte1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQwLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc0MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaGlzaV9hY2NfdmZpb19wY2lfdGFibGVbXSA9IHtcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NDItXFx0eyBQQ0lfRFJJVkVSX09WRVJSSURFX0RFVklDRV9WRklPKFBDSV9WRU5ET1JfSURfSFVBV0VJLCBQQ0lfREVWSUNFX0lEX0hVQVdFSV9TRUNfVkYpIH0sXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NDctXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzQ4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoaXNpX2FjY192ZmlvX3BjaV90YWJsZSk7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQ5LVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTc1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcnJvcl9oYW5kbGVycyBoaXNpX2FjY192Zl9lcnJfaGFuZGxlcnMgPSB7XFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NTUtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzU2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaXNpX2FjY192ZmlvX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzU3LVxcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzU4OlxcdC5pZF90YWJsZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3RhYmxlLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc1OTpcXHQucHJvYmUgPSBoaXNpX2FjY192ZmlvX3BjaV9wcm9iZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3NjA6XFx0LnJlbW92ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3JlbW92ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NjEtXFx0LmVycl9oYW5kbGVyID0gXFx1MDAyNmhpc2lfYWNjX3ZmX2Vycl9oYW5kbGVycyxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTc2NC1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3NjU6bW9kdWxlX3BjaV9kcml2ZXIoaGlzaV9hY2NfdmZpb19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjQ3LjgzNDk3NTEyMloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1ODY2MDQzMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBoaXNpX2FjY192ZmlvX3BjaWAgZHJpdmVyLiBGcm9tIHRoZSBuYW1pbmcsIEkga25vdyBpdCdzIGEgUENJIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIEhpc2lsaWNvbiBBQ0MgVkZJTywgbGlrZWx5IGRlYWxpbmcgd2l0aCB0aGVpciBoYXJkd2FyZSBsaWtlIFNFQywgSFBSRSwgYW5kIFpJUC4gSXQgYmluZHMgdG8gdGhvc2UgSHVhd2VpIHZlbmRvciBhbmQgZGV2aWNlIElEcy4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gYXNrLCBpcyB0aGlzIGhhcmR3YXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVU/IEkgYWxyZWFkeSBrbm93IHRoZSBhbnN3ZXIsIG9mIGNvdXJzZTsgdGhpcyBpcyBzcGVjaWFsaXplZCBIaXNpbGljb24gc2lsaWNvbi4gTm8sIGl0IGlzbid0LlxuXG5Ob3csIGJlY2F1c2UgaXQncyBhIFZGSU8gZHJpdmVyLCB0aGUgd2hvbGUgcHVycG9zZSBpcyB0byBwYXNzIHRocm91Z2ggcGh5c2ljYWwgZGV2aWNlcyB0byB1c2Vyc3BhY2UvVk1zLiBXaXRob3V0IHRoYXQgYWN0dWFsIEhpc2lsaWNvbiBBQ0MgaGFyZHdhcmUgcHJlc2VudCwgdGhpcyBkcml2ZXIgc2ltcGx5IGNhbm5vdCBiZSBwcm9iZWQgb3IgZXhlcmNpc2VkLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBtYXJrIGl0IGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgb24gYW55IHdlaXJkIGNvcm5lci1jYXNlcy4gVkZJTyBkcml2ZXJzIGZvciBzcGVjaWFsaXplZCBoYXJkd2FyZSBsaWtlIHRoaXMgYXJlIGFsbW9zdCAqbmV2ZXIqIGVtdWxhdGVkLiBMZXQncyBzZWUuLi4gdGhlIHByb21wdCBzdGF0ZXMgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gQWgsIGFuZCB0aGVyZSdzIHRoYXQgaGVscGZ1bCBleGFtcGxlOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVVwiLlxuXG5UaGlzIHBlcmZlY3RseSBtYXRjaGVzIHRoZSBkZXNjcmlwdGlvbjogaXQncyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQywgd2hpY2gsIGJ5IGRlZmluaXRpb24sIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgdGhhdCBhcmUgKm5vdCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gU28sIHllYWgsIHRoaXMgaXMgYSBkZWFkIGVuZC4gRGVmaW5pdGVseSBub3Qgd29ydGggZnV6emluZyBpbiB0aGlzIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg1OTIsIk91dHB1dFRva2VucyI6MTAyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjU2LjQyMTU4MTk2MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgdmVuZG9yLXNwZWNpZmljIFZGSU8gUENJIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQyBkZXZpY2VzIChoaXNpX2FjY192ZmlvX3BjaSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEhpc2lsaWNvbiBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTowMDo1Ni40MjE2MDY1MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowmlr5n[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-24 08:39:08 +0000 UTC FinishedAt: 2026-08-24 09:00:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5NWQ3NjU4YWY0NzRiNjUxN2U4MWEwNDg0MmNkMTg2OGQzNmNjZWYyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MDA6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYyBiL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcbmluZGV4IDg2MzYyZWM0MjRhNTAuLjRlODQ1NDc0ZmE5MGIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jXG5AQCAtMTE1NCw5ICYjNDM7MTE1NCwxNCBAQCBzdGF0aWMgdm9pZCBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiB7XG4gXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYgPSBoaXNpX2FjY19kcnZkYXRhKHBkZXYpO1xuIFx0c3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi1cdTAwM2VwZl9xbTtcbi1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnFtLVx1MDAzZXBkZXYtXHUwMDNlZGV2O1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIGRlbGF5ID0gMDtcbiBcbiYjNDM7XHRpZiAoIXFtIHx8ICFxbS1cdTAwM2Vpb19iYXNlKSB7XG4mIzQzO1x0XHRkZXZfZXJyKGRldiwgXCYjMzQ7UEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcXG5cJiMzNDspO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4gXHQvKiBBbGwgcmVzZXQgcmVxdWVzdHMgbmVlZCB0byBiZSBxdWV1ZWQgZm9yIHByb2Nlc3NpbmcgKi9cbiBcdHdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KFFNX1JFU0VUVElORywgXHUwMDI2cW0tXHUwMDNlbWlzY19jdGwpKSB7XG4gXHRcdG1zbGVlcCgxKTtcbkBAIC0xMTc0LDggJiM0MzsxMTc5LDEyIEBAIHN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX3BjaV9hZXJfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiBcdHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldiA9IGhpc2lfYWNjX2RydmRhdGEocGRldik7XG4gXHRzdHJ1Y3QgaGlzaV9xbSAqcW0gPSBoaXNpX2FjY192ZGV2LVx1MDAzZXBmX3FtO1xuIFxuLVx0aWYgKGhpc2lfYWNjX3ZkZXYtXHUwMDNlc2V0X3Jlc2V0X2ZsYWcpXG4tXHRcdGNsZWFyX2JpdChRTV9SRVNFVFRJTkcsIFx1MDAyNnFtLVx1MDAzZW1pc2NfY3RsKTtcbiYjNDM7XHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VzZXRfcmVzZXRfZmxhZykge1xuJiM0MztcdFx0aWYgKHFtIFx1MDAyNlx1MDAyNiBxbS1cdTAwM2Vpb19iYXNlKVxuJiM0MztcdFx0XHRjbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCBcdTAwMjZxbS1cdTAwM2VtaXNjX2N0bCk7XG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O1BGIFFNIG5vdCBhdmFpbGFibGUgZm9yIHJlc2V0IGRvbmVcXG5cJiMzNDspO1xuJiM0MztcdH1cbiBcbiBcdGlmICghaGlzaV9hY2NfdmRldi1cdTAwM2Vjb3JlX2RldmljZS52ZGV2Lm1pZ19vcHMpXG4gXHRcdHJldHVybjtcbkBAIC0xMTk5LDYgJiM0MzsxMjA4LDIzIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZfcW1faW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXG4gXHRlbHNlXG4gXHRcdGhpc2lfYWNjX3ZkZXYtXHUwMDNlZHJ2X21vZGUgPSBIV19BQ0NfTUlHX1ZGX0NUUkw7XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBPbiBWRl9DVFJMIGhhcmR3YXJlLCBCQVIyIGhvbGRzIDMyS0IgZnVuY3Rpb25hbCAmIzQzOyAzMktCXG4mIzQzO1x0ICogbWlncmF0aW9uIHJlZ2lzdGVycy4gV2hlbiB0aGUgaG9zdCBwYWdlIGV4Y2VlZHMgMzJLQiwgdGhlXG4mIzQzO1x0ICogdHdvIHNoYXJlIG9uZSBwaHlzaWNhbCBwYWdlIGFuZCBjYW5ub3QgYmUgaXNvbGF0ZWQgYnkgbW1hcC5cbiYjNDM7XHQgKiBSZWplY3QgdGhlIG9wZW4gc28gUUVNVSBmYWlscyBjbGVhbmx5IGF0IHN0YXJ0dXAuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKGhpc2lfYWNjX3ZkZXYtXHUwMDNlZHJ2X21vZGUgPT0gSFdfQUNDX01JR19WRl9DVFJMKSB7XG4mIzQzO1x0XHRyZXNvdXJjZV9zaXplX3QgZnVuY19sZW4gPVxuJiM0MztcdFx0XHRwY2lfcmVzb3VyY2VfbGVuKHZmX2RldiwgVkZJT19QQ0lfQkFSMl9SRUdJT05fSU5ERVgpIFx1MDAzZVx1MDAzZSAxO1xuJiM0MztcbiYjNDM7XHRcdGlmIChmdW5jX2xlbiBcdTAwM2MgUEFHRV9TSVpFKSB7XG4mIzQzO1x0XHRcdGRldl9lcnIoXHUwMDI2dmZfZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0XHRcJiMzNDttaWdyYXRpb24gbm90IHN1cHBvcnRlZCBvbiA2NEtCIHBhZ2VzIHdpdGggUU1fSFdfVjNcXG5cJiMzNDspO1xuJiM0MztcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHRcdH1cbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKGhpc2lfYWNjX3ZkZXYtXHUwMDNlZHJ2X21vZGUgPT0gSFdfQUNDX01JR19QRl9DVFJMKSB7XG4gXHRcdC8qXG4gXHRcdCAqIE9uIGhhcmR3YXJlIHBsYXRmb3JtcyBncmVhdGVyIHRoYW4gUU1fSFdfVjMsIHRoZSBtaWdyYXRpb24gZnVuY3Rpb25cbkBAIC0xNTY1LDYgJiM0MzsxNTkxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5faW5pdF9kZXYoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoY29yZV92ZGV2LVx1MDAzZWRldik7XG4gXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW0gPSBoaXNpX2FjY19nZXRfcGZfcW0ocGRldik7XG4gXG4mIzQzO1x0aWYgKCFwZl9xbSkge1xuJiM0MztcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7UEYgZHJpdmVyIG5vdCBsb2FkZWQsIGNhbm5vdCBlbmFibGUgbWlncmF0aW9uXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHJldHVybiAtRU5PREVWO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KSAmIzQzOyAxO1xuIFx0aGlzaV9hY2NfdmRldi1cdTAwM2VwZl9xbSA9IHBmX3FtO1xuIFx0aGlzaV9hY2NfdmRldi1cdTAwM2V2Zl9kZXYgPSBwZGV2O1xuQEAgLTE2NzAsMTMgJiM0MzsxNzAxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlXG4gXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXY7XG4gXHRjb25zdCBzdHJ1Y3QgdmZpb19kZXZpY2Vfb3BzICpvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9vcHM7XG4gXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW07XG4tXHRpbnQgdmZfaWQ7XG4gXHRpbnQgcmV0O1xuIFxuIFx0cGZfcW0gPSBoaXNpX2FjY19nZXRfcGZfcW0ocGRldik7XG4gXHRpZiAocGZfcW0gXHUwMDI2XHUwMDI2IHBmX3FtLVx1MDAzZXZlciBcdTAwM2U9IFFNX0hXX1YzKSB7XG4tXHRcdHZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KTtcbi1cdFx0aWYgKHZmX2lkIFx1MDAzZT0gMClcbiYjNDM7XHRcdGlmIChwZGV2LVx1MDAzZWlzX3ZpcnRmbilcbiBcdFx0XHRvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9taWdybl9vcHM7XG4gXHRcdGVsc2VcbiBcdFx0XHRwY2lfd2FybihwZGV2LCBcJiMzNDttaWdyYXRpb24gc3VwcG9ydCBmYWlsZWQsIGNvbnRpbnVlIHdpdGggZ2VuZXJpYyBpbnRlcmZhY2VcXG5cJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIHZlbmRvci1zcGVjaWZpYyBWRklPIFBDSSBkcml2ZXIgZm9yIEhpc2lsaWNvbiBBQ0MgZGV2aWNlcyAoaGlzaV9hY2NfdmZpb19wY2kpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBIaXNpbGljb24gUENJZSBoYXJkd2FyZSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBhdmFpbGFibGUgaW4gdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDk1ZDc2NThhZjQ3NGI2NTE3ZTgxYTA0ODQyY2QxODY4ZDM2Y2NlZjIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAyNCAwOTowMDozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMgYi9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jCmluZGV4IDg2MzYyZWM0MjRhNTAuLjRlODQ1NDc0ZmE5MGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYwpAQCAtMTE1NCw5ICYjNDM7MTE1NCwxNCBAQCBzdGF0aWMgdm9pZCBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYgPSBoaXNpX2FjY19kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBoaXNpX3FtICpxbSA9IGhpc2lfYWNjX3ZkZXYtJmd0O3BmX3FtOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cW0tJmd0O3BkZXYtJmd0O2RldjsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwZGV2LSZndDtkZXY7CiAJdTMyIGRlbGF5ID0gMDsKIAomIzQzOwlpZiAoIXFtIHx8ICFxbS0mZ3Q7aW9fYmFzZSkgewomIzQzOwkJZGV2X2VycihkZXYsICYjMzQ7UEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcbiYjMzQ7KTsKJiM0MzsJCXJldHVybjsKJiM0MzsJfQomIzQzOwogCS8qIEFsbCByZXNldCByZXF1ZXN0cyBuZWVkIHRvIGJlIHF1ZXVlZCBmb3IgcHJvY2Vzc2luZyAqLwogCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KFFNX1JFU0VUVElORywgJmFtcDtxbS0mZ3Q7bWlzY19jdGwpKSB7CiAJCW1zbGVlcCgxKTsKQEAgLTExNzQsOCAmIzQzOzExNzksMTIgQEAgc3RhdGljIHZvaWQgaGlzaV9hY2NfdmZfcGNpX2Flcl9yZXNldF9kb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldiA9IGhpc2lfYWNjX2RydmRhdGEocGRldik7CiAJc3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi0mZ3Q7cGZfcW07CiAKLQlpZiAoaGlzaV9hY2NfdmRldi0mZ3Q7c2V0X3Jlc2V0X2ZsYWcpCi0JCWNsZWFyX2JpdChRTV9SRVNFVFRJTkcsICZhbXA7cW0tJmd0O21pc2NfY3RsKTsKJiM0MzsJaWYgKGhpc2lfYWNjX3ZkZXYtJmd0O3NldF9yZXNldF9mbGFnKSB7CiYjNDM7CQlpZiAocW0gJmFtcDsmYW1wOyBxbS0mZ3Q7aW9fYmFzZSkKJiM0MzsJCQljbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCAmYW1wO3FtLSZndDttaXNjX2N0bCk7CiYjNDM7CQllbHNlCiYjNDM7CQkJZGV2X2VycigmYW1wO3BkZXYtJmd0O2RldiwgJiMzNDtQRiBRTSBub3QgYXZhaWxhYmxlIGZvciByZXNldCBkb25lXG4mIzM0Oyk7CiYjNDM7CX0KIAogCWlmICghaGlzaV9hY2NfdmRldi0mZ3Q7Y29yZV9kZXZpY2UudmRldi5taWdfb3BzKQogCQlyZXR1cm47CkBAIC0xMTk5LDYgJiM0MzsxMjA4LDIzIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZfcW1faW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpCiAJZWxzZQogCQloaXNpX2FjY192ZGV2LSZndDtkcnZfbW9kZSA9IEhXX0FDQ19NSUdfVkZfQ1RSTDsKIAomIzQzOwkvKgomIzQzOwkgKiBPbiBWRl9DVFJMIGhhcmR3YXJlLCBCQVIyIGhvbGRzIDMyS0IgZnVuY3Rpb25hbCAmIzQzOyAzMktCCiYjNDM7CSAqIG1pZ3JhdGlvbiByZWdpc3RlcnMuIFdoZW4gdGhlIGhvc3QgcGFnZSBleGNlZWRzIDMyS0IsIHRoZQomIzQzOwkgKiB0d28gc2hhcmUgb25lIHBoeXNpY2FsIHBhZ2UgYW5kIGNhbm5vdCBiZSBpc29sYXRlZCBieSBtbWFwLgomIzQzOwkgKiBSZWplY3QgdGhlIG9wZW4gc28gUUVNVSBmYWlscyBjbGVhbmx5IGF0IHN0YXJ0dXAuCiYjNDM7CSAqLwomIzQzOwlpZiAoaGlzaV9hY2NfdmRldi0mZ3Q7ZHJ2X21vZGUgPT0gSFdfQUNDX01JR19WRl9DVFJMKSB7CiYjNDM7CQlyZXNvdXJjZV9zaXplX3QgZnVuY19sZW4gPQomIzQzOwkJCXBjaV9yZXNvdXJjZV9sZW4odmZfZGV2LCBWRklPX1BDSV9CQVIyX1JFR0lPTl9JTkRFWCkgJmd0OyZndDsgMTsKJiM0MzsKJiM0MzsJCWlmIChmdW5jX2xlbiAmbHQ7IFBBR0VfU0laRSkgewomIzQzOwkJCWRldl9lcnIoJmFtcDt2Zl9kZXYtJmd0O2RldiwKJiM0MzsJCQkJJiMzNDttaWdyYXRpb24gbm90IHN1cHBvcnRlZCBvbiA2NEtCIHBhZ2VzIHdpdGggUU1fSFdfVjNcbiYjMzQ7KTsKJiM0MzsJCQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwogCWlmIChoaXNpX2FjY192ZGV2LSZndDtkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1BGX0NUUkwpIHsKIAkJLyoKIAkJICogT24gaGFyZHdhcmUgcGxhdGZvcm1zIGdyZWF0ZXIgdGhhbiBRTV9IV19WMywgdGhlIG1pZ3JhdGlvbiBmdW5jdGlvbgpAQCAtMTU2NSw2ICYjNDM7MTU5MSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2KHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2KQogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2Rldihjb3JlX3ZkZXYtJmd0O2Rldik7CiAJc3RydWN0IGhpc2lfcW0gKnBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpOwogCiYjNDM7CWlmICghcGZfcW0pIHsKJiM0MzsJCWRldl9lcnIoJmFtcDtwZGV2LSZndDtkZXYsICYjMzQ7UEYgZHJpdmVyIG5vdCBsb2FkZWQsIGNhbm5vdCBlbmFibGUgbWlncmF0aW9uXG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gLUVOT0RFVjsKJiM0MzsJfQomIzQzOwogCWhpc2lfYWNjX3ZkZXYtJmd0O3ZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KSAmIzQzOyAxOwogCWhpc2lfYWNjX3ZkZXYtJmd0O3BmX3FtID0gcGZfcW07CiAJaGlzaV9hY2NfdmRldi0mZ3Q7dmZfZGV2ID0gcGRldjsKQEAgLTE2NzAsMTMgJiM0MzsxNzAxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlCiAJc3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2OwogCWNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgKm9wcyA9ICZhbXA7aGlzaV9hY2NfdmZpb19wY2lfb3BzOwogCXN0cnVjdCBoaXNpX3FtICpwZl9xbTsKLQlpbnQgdmZfaWQ7CiAJaW50IHJldDsKIAogCXBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpOwogCWlmIChwZl9xbSAmYW1wOyZhbXA7IHBmX3FtLSZndDt2ZXIgJmd0Oz0gUU1fSFdfVjMpIHsKLQkJdmZfaWQgPSBwY2lfaW92X3ZmX2lkKHBkZXYpOwotCQlpZiAodmZfaWQgJmd0Oz0gMCkKJiM0MzsJCWlmIChwZGV2LSZndDtpc192aXJ0Zm4pCiAJCQlvcHMgPSAmYW1wO2hpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wczsKIAkJZWxzZQogCQkJcGNpX3dhcm4ocGRldiwgJiMzNDttaWdyYXRpb24gc3VwcG9ydCBmYWlsZWQsIGNvbnRpbnVlIHdpdGggZ2VuZXJpYyBpbnRlcmZhY2VcbiYjMzQ7KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI2NwoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDM5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBWRklPIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIHRoZSBgaGlzaV9hY2NfdmZpb19wY2kuY2AgZHJpdmVyLCB3aGljaCBmcm9tIHRoZSBuYW1lLCBJJiMzOTttIGluZmVycmluZyBpcyBhIFZGSU8gUENJIGRyaXZlciBzcGVjaWZpYyB0byBIaXNpbGljb24gQUNDIGRldmljZXMuIFRoYXQgaW1tZWRpYXRlbHkgcmFpc2VzIHNvbWUgZmxhZ3MuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgc29tZSBzYWZldHkgY2hlY2tzIGZvciBgcW1gIGFuZCBgcW0tJmd0O2lvX2Jhc2VgIHdpdGhpbiB0aGUgcmVzZXQgYW5kIEFFUiByZXNldCBmdW5jdGlvbnMgKGBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZWAgYW5kIGBoaXNpX2FjY192Zl9wY2lfYWVyX3Jlc2V0X2RvbmVgKS4gVGhleSYjMzk7dmUgYWxzbyBwdXQgaW4gYSBib3VuZGFyeSBjaGVjayByZWxhdGVkIHRvIGBIV19BQ0NfTUlHX1ZGX0NUUkxgIGxlbmd0aCwgYW5kIGFub3RoZXIgY2hlY2sgaW4gYGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2YCB0byBlbnN1cmUgdGhlIGBwZl9xbWAgaXNuJiMzOTt0IG51bGwuIEZpbmFsbHksIHRoZXJlIGlzIGEgY2hhbmdlIHRoYXQgcmVwbGFjZXMgYHZmX2lkYCBjaGVja3Mgd2l0aCBhIGNoZWNrIHRvIGBwZGV2LSZndDtpc192aXJ0Zm5gLiBUaGlzIGlzIHRoZSBmaXJzdCB0aGluZyB0byBqdW1wIG91dCB0byBtZS4KCk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogKmlzIHRoaXMgZHJpdmVyIGV2ZW4gcmVhY2hhYmxlIG9yIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VPyogVGhlIGZpbGUgbmFtZSBzYXlzICYjMzQ7VkZJTyYjMzQ7LiBWRklPIGRyaXZlcnMgYXJlIGRlc2lnbmVkIHRvIGRpcmVjdGx5IGV4cG9zZSBoYXJkd2FyZSB0byBhIHZpcnR1YWwgbWFjaGluZSAoVk0pLiBIb3dldmVyLCB0aGlzIGlzIGZvciBhICpzcGVjaWZpYyogcGllY2Ugb2YgaGFyZHdhcmU6IEhpc2lsaWNvbiBBQ0MuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCAmIzM0O2NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7IGFyZSBub3Qgbm9ybWFsbHkgZnV6emFibGUgdW5sZXNzIHlvdSBoYXZlIHRoZSBoYXJkd2FyZS4KCkdpdmVuIHRoYXQgSGlzaWxpY29uIEFDQyBpcyBhIGhhcmR3YXJlIGFjY2VsZXJhdG9yLCBpdCBzZWVtcyBoaWdobHkgbGlrZWx5IHRoYXQgdGhpcyBkcml2ZXIgaXMgZGVwZW5kZW50IG9uIHRoZSBwaHlzaWNhbCBwcmVzZW5jZSBvZiB0aGUgSGlzaWxpY29uIEFDQyBkZXZpY2UuIFZGSU8gZHJpdmVycywgYnkgdGhlaXIgbmF0dXJlLCBiaW5kIHRvIGEgcGh5c2ljYWwgZGV2aWNlLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgc3VjaCBkcml2ZXJzLCBlc3BlY2lhbGx5IHRob3NlIHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUgYWNjZWxlcmF0b3JzLCBhcmUgKmdlbmVyYWxseSogbm90IGZ1enphYmxlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB3aGV0aGVyIG9yIG5vdCB0aGlzIHNwZWNpZmljIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGZ1enphYmxlLCBhcyB0aGVyZSBhcmUgZXhjZXB0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwOTowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtoaXNpX2FjY192ZmlvX3BjaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19ISVNJX0FDQ19WRklPX1BDSSkgJiM0Mzs9IGhpc2ktYWNjLXZmaW8tcGNpLm9cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL01ha2VmaWxlOjM6aGlzaS1hY2MtdmZpby1wY2kteSA6PSBoaXNpX2FjY192ZmlvX3BjaS5vXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9NYWtlZmlsZS00LVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYtXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3OiNpbmNsdWRlIFwmIzM0O2hpc2lfYWNjX3ZmaW9fcGNpLmhcJiMzNDtcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTgtXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTAwPXN0YXRpYyBzdHJ1Y3QgZmlsZSAqXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjExMDE6aGlzaV9hY2NfdmZpb19wY2lfc2V0X2RldmljZV9zdGF0ZShzdHJ1Y3QgdmZpb19kZXZpY2UgKnZkZXYsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTExMDItXHRcdFx0XHQgICBlbnVtIHZmaW9fZGV2aWNlX21pZ19zdGF0ZSBuZXdfc3RhdGUpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTMzPXN0YXRpYyBpbnRcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTEzNDpoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGF0YV9zaXplKHN0cnVjdCB2ZmlvX2RldmljZSAqdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTEzNS1cdFx0XHRcdHVuc2lnbmVkIGxvbmcgKnN0b3BfY29weV9sZW5ndGgpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTQxPXN0YXRpYyBpbnRcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTE0MjpoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGV2aWNlX3N0YXRlKHN0cnVjdCB2ZmlvX2RldmljZSAqdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTE0My1cdFx0XHRcdCAgIGVudW0gdmZpb19kZXZpY2VfbWlnX3N0YXRlICpjdXJyX3N0YXRlKVxuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTMyMj1zdGF0aWMgaW50IGhpc2lfYWNjX3BjaV9yd19hY2Nlc3NfY2hlY2soc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzQ0LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzQ1OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbW1hcChzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTM0Ni1cdFx0XHRcdCAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzY5LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzcwOnN0YXRpYyBzc2l6ZV90IGhpc2lfYWNjX3ZmaW9fcGNpX3dyaXRlKHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2LFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzcxLVx0XHRcdFx0ICAgICAgIGNvbnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzODMtXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjEzODQ6c3RhdGljIHNzaXplX3QgaGlzaV9hY2NfdmZpb19wY2lfcmVhZChzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTM4NS1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTE1MTg9c3RhdGljIGludCBoaXNpX2FjY192Zl9taWdmX3JlYWQoc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTM5LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNTQwOnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfb3Blbl9kZXZpY2Uoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1NDEte1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU2Ny1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU2ODpzdGF0aWMgdm9pZCBoaXNpX2FjY192ZmlvX3BjaV9jbG9zZV9kZXZpY2Uoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1Njkte1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU4MS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU4MjpzdGF0aWMgY29uc3Qgc3RydWN0IHZmaW9fbWlncmF0aW9uX29wcyBoaXNpX2FjY192ZmlvX3BjaV9taWdybl9zdGF0ZV9vcHMgPSB7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODM6XHQubWlncmF0aW9uX3NldF9zdGF0ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3NldF9kZXZpY2Vfc3RhdGUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODQ6XHQubWlncmF0aW9uX2dldF9zdGF0ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX2dldF9kZXZpY2Vfc3RhdGUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODU6XHQubWlncmF0aW9uX2dldF9kYXRhX3NpemUgPSBoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGF0YV9zaXplLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTg2LX07XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1ODctXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODg6c3RhdGljIGludCBoaXNpX2FjY192ZmlvX3BjaV9taWdybl9pbml0X2RldihzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldilcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU4OS17XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjA2LVx0Y29yZV92ZGV2LVx1MDAzZW1pZ3JhdGlvbl9mbGFncyA9IFZGSU9fTUlHUkFUSU9OX1NUT1BfQ09QWSB8IFZGSU9fTUlHUkFUSU9OX1BSRV9DT1BZO1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjA3Olx0Y29yZV92ZGV2LVx1MDAzZW1pZ19vcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9taWdybl9zdGF0ZV9vcHM7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MDgtXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjExLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjEyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdmZpb19kZXZpY2Vfb3BzIGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wcyA9IHtcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxMy1cdC5uYW1lID0gXCYjMzQ7aGlzaS1hY2MtdmZpby1wY2ktbWlncmF0aW9uXCYjMzQ7LFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjE0Olx0LmluaXQgPSBoaXNpX2FjY192ZmlvX3BjaV9taWdybl9pbml0X2RldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxNS1cdC5yZWxlYXNlID0gdmZpb19wY2lfY29yZV9yZWxlYXNlX2RldixcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYxNjpcdC5vcGVuX2RldmljZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX29wZW5fZGV2aWNlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjE3Olx0LmNsb3NlX2RldmljZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX2Nsb3NlX2RldmljZSxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxOC1cdC5pb2N0bCA9IHZmaW9fcGNpX2NvcmVfaW9jdGwsXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjIwLVx0LmRldmljZV9mZWF0dXJlID0gdmZpb19wY2lfY29yZV9pb2N0bF9mZWF0dXJlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjIxOlx0LnJlYWQgPSBoaXNpX2FjY192ZmlvX3BjaV9yZWFkLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjIyOlx0LndyaXRlID0gaGlzaV9hY2NfdmZpb19wY2lfd3JpdGUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MjM6XHQubW1hcCA9IGhpc2lfYWNjX3ZmaW9fcGNpX21tYXAsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MjQtXHQucmVxdWVzdCA9IHZmaW9fcGNpX2NvcmVfcmVxdWVzdCxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzItXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MzM6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgaGlzaV9hY2NfdmZpb19wY2lfb3BzID0ge1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjM0LVx0Lm5hbWUgPSBcJiMzNDtoaXNpLWFjYy12ZmlvLXBjaVwmIzM0Oyxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzYtXHQucmVsZWFzZSA9IHZmaW9fcGNpX2NvcmVfcmVsZWFzZV9kZXYsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2Mzc6XHQub3Blbl9kZXZpY2UgPSBoaXNpX2FjY192ZmlvX3BjaV9vcGVuX2RldmljZSxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYzOC1cdC5jbG9zZV9kZXZpY2UgPSB2ZmlvX3BjaV9jb3JlX2Nsb3NlX2RldmljZSxcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTE2NTQ9c3RhdGljIHZvaWQgaGlzaV9hY2NfdmZpb19kZWJ1Z19pbml0KHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldilcbi0tXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2NjUtXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2NjY6XHRpZiAodmRldi1cdTAwM2VvcHMgIT0gXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzKVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjY3LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xNjkzPXN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX2RlYnVnZnNfZXhpdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjk4LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjk5OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcwMC17XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MDEtXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXY7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3MDI6XHRjb25zdCBzdHJ1Y3QgdmZpb19kZXZpY2Vfb3BzICpvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9vcHM7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MDMtXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW07XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzA4LVx0XHRpZiAocGRldi1cdTAwM2Vpc192aXJ0Zm4pXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3MDk6XHRcdFx0b3BzID0gXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzO1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzEwLVx0XHRlbHNlXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzMxLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzMyOnN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmaW9fcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTczMy17XG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQwLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzQxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBoaXNpX2FjY192ZmlvX3BjaV90YWJsZVtdID0ge1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQyLVx0eyBQQ0lfRFJJVkVSX09WRVJSSURFX0RFVklDRV9WRklPKFBDSV9WRU5ET1JfSURfSFVBV0VJLCBQQ0lfREVWSUNFX0lEX0hVQVdFSV9TRUNfVkYpIH0sXG4tLVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQ3LVxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzQ4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoaXNpX2FjY192ZmlvX3BjaV90YWJsZSk7XG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NDktXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTE3NTA9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXJyb3JfaGFuZGxlcnMgaGlzaV9hY2NfdmZfZXJyX2hhbmRsZXJzID0ge1xuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTc1NS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc1NjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaGlzaV9hY2NfdmZpb19wY2lfZHJpdmVyID0ge1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzU3LVx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc1ODpcdC5pZF90YWJsZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3RhYmxlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzU5Olx0LnByb2JlID0gaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUsXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3NjA6XHQucmVtb3ZlID0gaGlzaV9hY2NfdmZpb19wY2lfcmVtb3ZlLFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzYxLVx0LmVycl9oYW5kbGVyID0gXHUwMDI2aGlzaV9hY2NfdmZfZXJyX2hhbmRsZXJzLFxuLS1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTc2NC1cbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc2NTptb2R1bGVfcGNpX2RyaXZlcihoaXNpX2FjY192ZmlvX3BjaV9kcml2ZXIpO1xuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzY2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDA5OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg1OTIKCQkJCQkJCW91dHB1dDogMTAyCgkJCQkJCQl0aG91Z2h0czogMzk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IE5vdCBXb3J0aCBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBoaXNpX2FjY192ZmlvX3BjaWAgZHJpdmVyLiBGcm9tIHRoZSBuYW1pbmcsIEkga25vdyBpdCYjMzk7cyBhIFBDSSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBIaXNpbGljb24gQUNDIFZGSU8sIGxpa2VseSBkZWFsaW5nIHdpdGggdGhlaXIgaGFyZHdhcmUgbGlrZSBTRUMsIEhQUkUsIGFuZCBaSVAuIEl0IGJpbmRzIHRvIHRob3NlIEh1YXdlaSB2ZW5kb3IgYW5kIGRldmljZSBJRHMuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGFzaywgaXMgdGhpcyBoYXJkd2FyZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VPyBJIGFscmVhZHkga25vdyB0aGUgYW5zd2VyLCBvZiBjb3Vyc2U7IHRoaXMgaXMgc3BlY2lhbGl6ZWQgSGlzaWxpY29uIHNpbGljb24uIE5vLCBpdCBpc24mIzM5O3QuCgpOb3csIGJlY2F1c2UgaXQmIzM5O3MgYSBWRklPIGRyaXZlciwgdGhlIHdob2xlIHB1cnBvc2UgaXMgdG8gcGFzcyB0aHJvdWdoIHBoeXNpY2FsIGRldmljZXMgdG8gdXNlcnNwYWNlL1ZNcy4gV2l0aG91dCB0aGF0IGFjdHVhbCBIaXNpbGljb24gQUNDIGhhcmR3YXJlIHByZXNlbnQsIHRoaXMgZHJpdmVyIHNpbXBseSBjYW5ub3QgYmUgcHJvYmVkIG9yIGV4ZXJjaXNlZC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlIGVtdWxhdGlvbi4gSSBzaG91bGQgbWFyayBpdCBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgdGhvdWdoLCBvbiBhbnkgd2VpcmQgY29ybmVyLWNhc2VzLiBWRklPIGRyaXZlcnMgZm9yIHNwZWNpYWxpemVkIGhhcmR3YXJlIGxpa2UgdGhpcyBhcmUgYWxtb3N0ICpuZXZlciogZW11bGF0ZWQuIExldCYjMzk7cyBzZWUuLi4gdGhlIHByb21wdCBzdGF0ZXMgJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUmIzM0Oy4gQWgsIGFuZCB0aGVyZSYjMzk7cyB0aGF0IGhlbHBmdWwgZXhhbXBsZTogJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4KClRoaXMgcGVyZmVjdGx5IG1hdGNoZXMgdGhlIGRlc2NyaXB0aW9uOiBpdCYjMzk7cyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQywgd2hpY2gsIGJ5IGRlZmluaXRpb24sIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgdGhhdCBhcmUgKm5vdCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gU28sIHllYWgsIHRoaXMgaXMgYSBkZWFkIGVuZC4gRGVmaW5pdGVseSBub3Qgd29ydGggZnV6emluZyBpbiB0aGlzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIHZlbmRvci1zcGVjaWZpYyBWRklPIFBDSSBkcml2ZXIgZm9yIEhpc2lsaWNvbiBBQ0MgZGV2aWNlcyAoaGlzaV9hY2NfdmZpb19wY2kpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBIaXNpbGljb24gUENJZSBoYXJkd2FyZSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBhdmFpbGFibGUgaW4gdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDk6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjM4LjQyOTY0NDEzM1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTkxOTczNjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjM4LjQyOTY0ODQ3M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ0NDE2OTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTVkNzY1OGFmNDc0YjY1MTdlODFhMDQ4NDJjZDE4NjhkMzZjY2VmMlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwOTowMDozNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jIGIvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuY1xcbmluZGV4IDg2MzYyZWM0MjRhNTAuLjRlODQ1NDc0ZmE5MGIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuY1xcbisrKyBiL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcXG5AQCAtMTE1NCw5ICsxMTU0LDE0IEBAIHN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX3BjaV9yZXNldF9wcmVwYXJlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiB7XFxuIFxcdHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldiA9IGhpc2lfYWNjX2RydmRhdGEocGRldik7XFxuIFxcdHN0cnVjdCBoaXNpX3FtICpxbSA9IGhpc2lfYWNjX3ZkZXYtXFx1MDAzZXBmX3FtO1xcbi1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cW0tXFx1MDAzZXBkZXYtXFx1MDAzZWRldjtcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnBkZXYtXFx1MDAzZWRldjtcXG4gXFx0dTMyIGRlbGF5ID0gMDtcXG4gXFxuK1xcdGlmICghcW0gfHwgIXFtLVxcdTAwM2Vpb19iYXNlKSB7XFxuK1xcdFxcdGRldl9lcnIoZGV2LCBcXFwiUEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcXFxcblxcXCIpO1xcbitcXHRcXHRyZXR1cm47XFxuK1xcdH1cXG4rXFxuIFxcdC8qIEFsbCByZXNldCByZXF1ZXN0cyBuZWVkIHRvIGJlIHF1ZXVlZCBmb3IgcHJvY2Vzc2luZyAqL1xcbiBcXHR3aGlsZSAodGVzdF9hbmRfc2V0X2JpdChRTV9SRVNFVFRJTkcsIFxcdTAwMjZxbS1cXHUwMDNlbWlzY19jdGwpKSB7XFxuIFxcdFxcdG1zbGVlcCgxKTtcXG5AQCAtMTE3NCw4ICsxMTc5LDEyIEBAIHN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX3BjaV9hZXJfcmVzZXRfZG9uZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gXFx0c3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2ID0gaGlzaV9hY2NfZHJ2ZGF0YShwZGV2KTtcXG4gXFx0c3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi1cXHUwMDNlcGZfcW07XFxuIFxcbi1cXHRpZiAoaGlzaV9hY2NfdmRldi1cXHUwMDNlc2V0X3Jlc2V0X2ZsYWcpXFxuLVxcdFxcdGNsZWFyX2JpdChRTV9SRVNFVFRJTkcsIFxcdTAwMjZxbS1cXHUwMDNlbWlzY19jdGwpO1xcbitcXHRpZiAoaGlzaV9hY2NfdmRldi1cXHUwMDNlc2V0X3Jlc2V0X2ZsYWcpIHtcXG4rXFx0XFx0aWYgKHFtIFxcdTAwMjZcXHUwMDI2IHFtLVxcdTAwM2Vpb19iYXNlKVxcbitcXHRcXHRcXHRjbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCBcXHUwMDI2cW0tXFx1MDAzZW1pc2NfY3RsKTtcXG4rXFx0XFx0ZWxzZVxcbitcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJQRiBRTSBub3QgYXZhaWxhYmxlIGZvciByZXNldCBkb25lXFxcXG5cXFwiKTtcXG4rXFx0fVxcbiBcXG4gXFx0aWYgKCFoaXNpX2FjY192ZGV2LVxcdTAwM2Vjb3JlX2RldmljZS52ZGV2Lm1pZ19vcHMpXFxuIFxcdFxcdHJldHVybjtcXG5AQCAtMTE5OSw2ICsxMjA4LDIzIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZfcW1faW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXFxuIFxcdGVsc2VcXG4gXFx0XFx0aGlzaV9hY2NfdmRldi1cXHUwMDNlZHJ2X21vZGUgPSBIV19BQ0NfTUlHX1ZGX0NUUkw7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBPbiBWRl9DVFJMIGhhcmR3YXJlLCBCQVIyIGhvbGRzIDMyS0IgZnVuY3Rpb25hbCArIDMyS0JcXG4rXFx0ICogbWlncmF0aW9uIHJlZ2lzdGVycy4gV2hlbiB0aGUgaG9zdCBwYWdlIGV4Y2VlZHMgMzJLQiwgdGhlXFxuK1xcdCAqIHR3byBzaGFyZSBvbmUgcGh5c2ljYWwgcGFnZSBhbmQgY2Fubm90IGJlIGlzb2xhdGVkIGJ5IG1tYXAuXFxuK1xcdCAqIFJlamVjdCB0aGUgb3BlbiBzbyBRRU1VIGZhaWxzIGNsZWFubHkgYXQgc3RhcnR1cC5cXG4rXFx0ICovXFxuK1xcdGlmIChoaXNpX2FjY192ZGV2LVxcdTAwM2VkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1ZGX0NUUkwpIHtcXG4rXFx0XFx0cmVzb3VyY2Vfc2l6ZV90IGZ1bmNfbGVuID1cXG4rXFx0XFx0XFx0cGNpX3Jlc291cmNlX2xlbih2Zl9kZXYsIFZGSU9fUENJX0JBUjJfUkVHSU9OX0lOREVYKSBcXHUwMDNlXFx1MDAzZSAxO1xcbitcXG4rXFx0XFx0aWYgKGZ1bmNfbGVuIFxcdTAwM2MgUEFHRV9TSVpFKSB7XFxuK1xcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnZmX2Rldi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXHRcXFwibWlncmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gNjRLQiBwYWdlcyB3aXRoIFFNX0hXX1YzXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4gXFx0aWYgKGhpc2lfYWNjX3ZkZXYtXFx1MDAzZWRydl9tb2RlID09IEhXX0FDQ19NSUdfUEZfQ1RSTCkge1xcbiBcXHRcXHQvKlxcbiBcXHRcXHQgKiBPbiBoYXJkd2FyZSBwbGF0Zm9ybXMgZ3JlYXRlciB0aGFuIFFNX0hXX1YzLCB0aGUgbWlncmF0aW9uIGZ1bmN0aW9uXFxuQEAgLTE1NjUsNiArMTU5MSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2KHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2KVxcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoY29yZV92ZGV2LVxcdTAwM2VkZXYpO1xcbiBcXHRzdHJ1Y3QgaGlzaV9xbSAqcGZfcW0gPSBoaXNpX2FjY19nZXRfcGZfcW0ocGRldik7XFxuIFxcbitcXHRpZiAoIXBmX3FtKSB7XFxuK1xcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIlBGIGRyaXZlciBub3QgbG9hZGVkLCBjYW5ub3QgZW5hYmxlIG1pZ3JhdGlvblxcXFxuXFxcIik7XFxuK1xcdFxcdHJldHVybiAtRU5PREVWO1xcbitcXHR9XFxuK1xcbiBcXHRoaXNpX2FjY192ZGV2LVxcdTAwM2V2Zl9pZCA9IHBjaV9pb3ZfdmZfaWQocGRldikgKyAxO1xcbiBcXHRoaXNpX2FjY192ZGV2LVxcdTAwM2VwZl9xbSA9IHBmX3FtO1xcbiBcXHRoaXNpX2FjY192ZGV2LVxcdTAwM2V2Zl9kZXYgPSBwZGV2O1xcbkBAIC0xNjcwLDEzICsxNzAxLDExIEBAIHN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlXFxuIFxcdHN0cnVjdCBoaXNpX2FjY192Zl9jb3JlX2RldmljZSAqaGlzaV9hY2NfdmRldjtcXG4gXFx0Y29uc3Qgc3RydWN0IHZmaW9fZGV2aWNlX29wcyAqb3BzID0gXFx1MDAyNmhpc2lfYWNjX3ZmaW9fcGNpX29wcztcXG4gXFx0c3RydWN0IGhpc2lfcW0gKnBmX3FtO1xcbi1cXHRpbnQgdmZfaWQ7XFxuIFxcdGludCByZXQ7XFxuIFxcbiBcXHRwZl9xbSA9IGhpc2lfYWNjX2dldF9wZl9xbShwZGV2KTtcXG4gXFx0aWYgKHBmX3FtIFxcdTAwMjZcXHUwMDI2IHBmX3FtLVxcdTAwM2V2ZXIgXFx1MDAzZT0gUU1fSFdfVjMpIHtcXG4tXFx0XFx0dmZfaWQgPSBwY2lfaW92X3ZmX2lkKHBkZXYpO1xcbi1cXHRcXHRpZiAodmZfaWQgXFx1MDAzZT0gMClcXG4rXFx0XFx0aWYgKHBkZXYtXFx1MDAzZWlzX3ZpcnRmbilcXG4gXFx0XFx0XFx0b3BzID0gXFx1MDAyNmhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wcztcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRwY2lfd2FybihwZGV2LCBcXFwibWlncmF0aW9uIHN1cHBvcnQgZmFpbGVkLCBjb250aW51ZSB3aXRoIGdlbmVyaWMgaW50ZXJmYWNlXFxcXG5cXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDk6MDA6MzguOTc0NzAxMTk2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTc0NDY5MDM2NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgdmVuZG9yLXNwZWNpZmljIFZGSU8gUENJIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQyBkZXZpY2VzIChoaXNpX2FjY192ZmlvX3BjaSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEhpc2lsaWNvbiBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NWQ3NjU4YWY0NzRiNjUxN2U4MWEwNDg0MmNkMTg2OGQzNmNjZWYyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDk6MDA6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jIGIvZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuY1xuaW5kZXggODYzNjJlYzQyNGE1MC4uNGU4NDU0NzRmYTkwYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcbisrKyBiL2RyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmNcbkBAIC0xMTU0LDkgKzExNTQsMTQgQEAgc3RhdGljIHZvaWQgaGlzaV9hY2NfdmZfcGNpX3Jlc2V0X3ByZXBhcmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4ge1xuIFx0c3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2ID0gaGlzaV9hY2NfZHJ2ZGF0YShwZGV2KTtcbiBcdHN0cnVjdCBoaXNpX3FtICpxbSA9IGhpc2lfYWNjX3ZkZXYtXHUwMDNlcGZfcW07XG4tXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZxbS1cdTAwM2VwZGV2LVx1MDAzZWRldjtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIGRlbGF5ID0gMDtcbiBcbitcdGlmICghcW0gfHwgIXFtLVx1MDAzZWlvX2Jhc2UpIHtcbitcdFx0ZGV2X2VycihkZXYsIFwiUEYgUU0gbm90IGF2YWlsYWJsZSBmb3IgcmVzZXRcXG5cIik7XG4rXHRcdHJldHVybjtcbitcdH1cbitcbiBcdC8qIEFsbCByZXNldCByZXF1ZXN0cyBuZWVkIHRvIGJlIHF1ZXVlZCBmb3IgcHJvY2Vzc2luZyAqL1xuIFx0d2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoUU1fUkVTRVRUSU5HLCBcdTAwMjZxbS1cdTAwM2VtaXNjX2N0bCkpIHtcbiBcdFx0bXNsZWVwKDEpO1xuQEAgLTExNzQsOCArMTE3OSwxMiBAQCBzdGF0aWMgdm9pZCBoaXNpX2FjY192Zl9wY2lfYWVyX3Jlc2V0X2RvbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYgPSBoaXNpX2FjY19kcnZkYXRhKHBkZXYpO1xuIFx0c3RydWN0IGhpc2lfcW0gKnFtID0gaGlzaV9hY2NfdmRldi1cdTAwM2VwZl9xbTtcbiBcbi1cdGlmIChoaXNpX2FjY192ZGV2LVx1MDAzZXNldF9yZXNldF9mbGFnKVxuLVx0XHRjbGVhcl9iaXQoUU1fUkVTRVRUSU5HLCBcdTAwMjZxbS1cdTAwM2VtaXNjX2N0bCk7XG4rXHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VzZXRfcmVzZXRfZmxhZykge1xuK1x0XHRpZiAocW0gXHUwMDI2XHUwMDI2IHFtLVx1MDAzZWlvX2Jhc2UpXG4rXHRcdFx0Y2xlYXJfYml0KFFNX1JFU0VUVElORywgXHUwMDI2cW0tXHUwMDNlbWlzY19jdGwpO1xuK1x0XHRlbHNlXG4rXHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCJQRiBRTSBub3QgYXZhaWxhYmxlIGZvciByZXNldCBkb25lXFxuXCIpO1xuK1x0fVxuIFxuIFx0aWYgKCFoaXNpX2FjY192ZGV2LVx1MDAzZWNvcmVfZGV2aWNlLnZkZXYubWlnX29wcylcbiBcdFx0cmV0dXJuO1xuQEAgLTExOTksNiArMTIwOCwyMyBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmX3FtX2luaXQoc3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2KVxuIFx0ZWxzZVxuIFx0XHRoaXNpX2FjY192ZGV2LVx1MDAzZWRydl9tb2RlID0gSFdfQUNDX01JR19WRl9DVFJMO1xuIFxuK1x0LypcbitcdCAqIE9uIFZGX0NUUkwgaGFyZHdhcmUsIEJBUjIgaG9sZHMgMzJLQiBmdW5jdGlvbmFsICsgMzJLQlxuK1x0ICogbWlncmF0aW9uIHJlZ2lzdGVycy4gV2hlbiB0aGUgaG9zdCBwYWdlIGV4Y2VlZHMgMzJLQiwgdGhlXG4rXHQgKiB0d28gc2hhcmUgb25lIHBoeXNpY2FsIHBhZ2UgYW5kIGNhbm5vdCBiZSBpc29sYXRlZCBieSBtbWFwLlxuK1x0ICogUmVqZWN0IHRoZSBvcGVuIHNvIFFFTVUgZmFpbHMgY2xlYW5seSBhdCBzdGFydHVwLlxuK1x0ICovXG4rXHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1ZGX0NUUkwpIHtcbitcdFx0cmVzb3VyY2Vfc2l6ZV90IGZ1bmNfbGVuID1cbitcdFx0XHRwY2lfcmVzb3VyY2VfbGVuKHZmX2RldiwgVkZJT19QQ0lfQkFSMl9SRUdJT05fSU5ERVgpIFx1MDAzZVx1MDAzZSAxO1xuK1xuK1x0XHRpZiAoZnVuY19sZW4gXHUwMDNjIFBBR0VfU0laRSkge1xuK1x0XHRcdGRldl9lcnIoXHUwMDI2dmZfZGV2LVx1MDAzZWRldixcbitcdFx0XHRcdFwibWlncmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gNjRLQiBwYWdlcyB3aXRoIFFNX0hXX1YzXFxuXCIpO1xuK1x0XHRcdHJldHVybiAtRUlOVkFMO1xuK1x0XHR9XG4rXHR9XG4rXG4gXHRpZiAoaGlzaV9hY2NfdmRldi1cdTAwM2VkcnZfbW9kZSA9PSBIV19BQ0NfTUlHX1BGX0NUUkwpIHtcbiBcdFx0LypcbiBcdFx0ICogT24gaGFyZHdhcmUgcGxhdGZvcm1zIGdyZWF0ZXIgdGhhbiBRTV9IV19WMywgdGhlIG1pZ3JhdGlvbiBmdW5jdGlvblxuQEAgLTE1NjUsNiArMTU5MSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2KHN0cnVjdCB2ZmlvX2RldmljZSAqY29yZV92ZGV2KVxuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGNvcmVfdmRldi1cdTAwM2VkZXYpO1xuIFx0c3RydWN0IGhpc2lfcW0gKnBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpO1xuIFxuK1x0aWYgKCFwZl9xbSkge1xuK1x0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcIlBGIGRyaXZlciBub3QgbG9hZGVkLCBjYW5ub3QgZW5hYmxlIG1pZ3JhdGlvblxcblwiKTtcbitcdFx0cmV0dXJuIC1FTk9ERVY7XG4rXHR9XG4rXG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXZmX2lkID0gcGNpX2lvdl92Zl9pZChwZGV2KSArIDE7XG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXBmX3FtID0gcGZfcW07XG4gXHRoaXNpX2FjY192ZGV2LVx1MDAzZXZmX2RldiA9IHBkZXY7XG5AQCAtMTY3MCwxMyArMTcwMSwxMSBAQCBzdGF0aWMgaW50IGhpc2lfYWNjX3ZmaW9fcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZVxuIFx0c3RydWN0IGhpc2lfYWNjX3ZmX2NvcmVfZGV2aWNlICpoaXNpX2FjY192ZGV2O1xuIFx0Y29uc3Qgc3RydWN0IHZmaW9fZGV2aWNlX29wcyAqb3BzID0gXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfb3BzO1xuIFx0c3RydWN0IGhpc2lfcW0gKnBmX3FtO1xuLVx0aW50IHZmX2lkO1xuIFx0aW50IHJldDtcbiBcbiBcdHBmX3FtID0gaGlzaV9hY2NfZ2V0X3BmX3FtKHBkZXYpO1xuIFx0aWYgKHBmX3FtIFx1MDAyNlx1MDAyNiBwZl9xbS1cdTAwM2V2ZXIgXHUwMDNlPSBRTV9IV19WMykge1xuLVx0XHR2Zl9pZCA9IHBjaV9pb3ZfdmZfaWQocGRldik7XG4tXHRcdGlmICh2Zl9pZCBcdTAwM2U9IDApXG4rXHRcdGlmIChwZGV2LVx1MDAzZWlzX3ZpcnRmbilcbiBcdFx0XHRvcHMgPSBcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9taWdybl9vcHM7XG4gXHRcdGVsc2VcbiBcdFx0XHRwY2lfd2FybihwZGV2LCBcIm1pZ3JhdGlvbiBzdXBwb3J0IGZhaWxlZCwgY29udGludWUgd2l0aCBnZW5lcmljIGludGVyZmFjZVxcblwiKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjM4Ljk3NDcwMjc0NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyNDI1MzkxMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVkZJTyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIHRoZSBgaGlzaV9hY2NfdmZpb19wY2kuY2AgZHJpdmVyLCB3aGljaCBmcm9tIHRoZSBuYW1lLCBJJ20gaW5mZXJyaW5nIGlzIGEgVkZJTyBQQ0kgZHJpdmVyIHNwZWNpZmljIHRvIEhpc2lsaWNvbiBBQ0MgZGV2aWNlcy4gVGhhdCBpbW1lZGlhdGVseSByYWlzZXMgc29tZSBmbGFncy4gSXQgbG9va3MgbGlrZSB0aGV5J3ZlIGFkZGVkIHNvbWUgc2FmZXR5IGNoZWNrcyBmb3IgYHFtYCBhbmQgYHFtLVx1MDAzZWlvX2Jhc2VgIHdpdGhpbiB0aGUgcmVzZXQgYW5kIEFFUiByZXNldCBmdW5jdGlvbnMgKGBoaXNpX2FjY192Zl9wY2lfcmVzZXRfcHJlcGFyZWAgYW5kIGBoaXNpX2FjY192Zl9wY2lfYWVyX3Jlc2V0X2RvbmVgKS4gVGhleSd2ZSBhbHNvIHB1dCBpbiBhIGJvdW5kYXJ5IGNoZWNrIHJlbGF0ZWQgdG8gYEhXX0FDQ19NSUdfVkZfQ1RSTGAgbGVuZ3RoLCBhbmQgYW5vdGhlciBjaGVjayBpbiBgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5faW5pdF9kZXZgIHRvIGVuc3VyZSB0aGUgYHBmX3FtYCBpc24ndCBudWxsLiBGaW5hbGx5LCB0aGVyZSBpcyBhIGNoYW5nZSB0aGF0IHJlcGxhY2VzIGB2Zl9pZGAgY2hlY2tzIHdpdGggYSBjaGVjayB0byBgcGRldi1cdTAwM2Vpc192aXJ0Zm5gLiBUaGlzIGlzIHRoZSBmaXJzdCB0aGluZyB0byBqdW1wIG91dCB0byBtZS5cblxuTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiAqaXMgdGhpcyBkcml2ZXIgZXZlbiByZWFjaGFibGUgb3IgcmVsZXZhbnQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVU/KiBUaGUgZmlsZSBuYW1lIHNheXMgXCJWRklPXCIuIFZGSU8gZHJpdmVycyBhcmUgZGVzaWduZWQgdG8gZGlyZWN0bHkgZXhwb3NlIGhhcmR3YXJlIHRvIGEgdmlydHVhbCBtYWNoaW5lIChWTSkuIEhvd2V2ZXIsIHRoaXMgaXMgZm9yIGEgKnNwZWNpZmljKiBwaWVjZSBvZiBoYXJkd2FyZTogSGlzaWxpY29uIEFDQy4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IFwiY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIgYXJlIG5vdCBub3JtYWxseSBmdXp6YWJsZSB1bmxlc3MgeW91IGhhdmUgdGhlIGhhcmR3YXJlLlxuXG5HaXZlbiB0aGF0IEhpc2lsaWNvbiBBQ0MgaXMgYSBoYXJkd2FyZSBhY2NlbGVyYXRvciwgaXQgc2VlbXMgaGlnaGx5IGxpa2VseSB0aGF0IHRoaXMgZHJpdmVyIGlzIGRlcGVuZGVudCBvbiB0aGUgcGh5c2ljYWwgcHJlc2VuY2Ugb2YgdGhlIEhpc2lsaWNvbiBBQ0MgZGV2aWNlLiBWRklPIGRyaXZlcnMsIGJ5IHRoZWlyIG5hdHVyZSwgYmluZCB0byBhIHBoeXNpY2FsIGRldmljZS4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IHN1Y2ggZHJpdmVycywgZXNwZWNpYWxseSB0aG9zZSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlIGFjY2VsZXJhdG9ycywgYXJlICpnZW5lcmFsbHkqIG5vdCBmdXp6YWJsZSBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgd2hldGhlciBvciBub3QgdGhpcyBzcGVjaWZpYyBwaWVjZSBvZiBoYXJkd2FyZSBpcyBmdXp6YWJsZSwgYXMgdGhlcmUgYXJlIGV4Y2VwdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNjcsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTowMDo0Ni4yMTcyNDUxNzZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxNzcyMjMxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoaXNpX2FjY192ZmlvX3BjaVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19ISVNJX0FDQ19WRklPX1BDSSkgKz0gaGlzaS1hY2MtdmZpby1wY2kub1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL01ha2VmaWxlOjM6aGlzaS1hY2MtdmZpby1wY2kteSA6PSBoaXNpX2FjY192ZmlvX3BjaS5vXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vTWFrZWZpbGUtNC1cXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzojaW5jbHVkZSBcXFwiaGlzaV9hY2NfdmZpb19wY2kuaFxcXCJcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE4LVxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xMTAwPXN0YXRpYyBzdHJ1Y3QgZmlsZSAqXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMTAxOmhpc2lfYWNjX3ZmaW9fcGNpX3NldF9kZXZpY2Vfc3RhdGUoc3RydWN0IHZmaW9fZGV2aWNlICp2ZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTEwMi1cXHRcXHRcXHRcXHQgICBlbnVtIHZmaW9fZGV2aWNlX21pZ19zdGF0ZSBuZXdfc3RhdGUpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jPTExMzM9c3RhdGljIGludFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTEzNDpoaXNpX2FjY192ZmlvX3BjaV9nZXRfZGF0YV9zaXplKHN0cnVjdCB2ZmlvX2RldmljZSAqdmRldixcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTExMzUtXFx0XFx0XFx0XFx0dW5zaWduZWQgbG9uZyAqc3RvcF9jb3B5X2xlbmd0aClcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTE0MT1zdGF0aWMgaW50XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMTQyOmhpc2lfYWNjX3ZmaW9fcGNpX2dldF9kZXZpY2Vfc3RhdGUoc3RydWN0IHZmaW9fZGV2aWNlICp2ZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTE0My1cXHRcXHRcXHRcXHQgICBlbnVtIHZmaW9fZGV2aWNlX21pZ19zdGF0ZSAqY3Vycl9zdGF0ZSlcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTMyMj1zdGF0aWMgaW50IGhpc2lfYWNjX3BjaV9yd19hY2Nlc3NfY2hlY2soc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzNDQtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzQ1OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbW1hcChzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldixcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzNDYtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSlcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTM2OS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjEzNzA6c3RhdGljIHNzaXplX3QgaGlzaV9hY2NfdmZpb19wY2lfd3JpdGUoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzcxLVxcdFxcdFxcdFxcdCAgICAgICBjb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTEzODMtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxMzg0OnN0YXRpYyBzc2l6ZV90IGhpc2lfYWNjX3ZmaW9fcGNpX3JlYWQoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xMzg1LVxcdFxcdFxcdFxcdCAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTUxOD1zdGF0aWMgaW50IGhpc2lfYWNjX3ZmX21pZ2ZfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTUzOS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1NDA6c3RhdGljIGludCBoaXNpX2FjY192ZmlvX3BjaV9vcGVuX2RldmljZShzdHJ1Y3QgdmZpb19kZXZpY2UgKmNvcmVfdmRldilcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1NDEte1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTY3LVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU2ODpzdGF0aWMgdm9pZCBoaXNpX2FjY192ZmlvX3BjaV9jbG9zZV9kZXZpY2Uoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTY5LXtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTU4MS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODI6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX21pZ3JhdGlvbl9vcHMgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5fc3RhdGVfb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTU4MzpcXHQubWlncmF0aW9uX3NldF9zdGF0ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3NldF9kZXZpY2Vfc3RhdGUsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNTg0OlxcdC5taWdyYXRpb25fZ2V0X3N0YXRlID0gaGlzaV9hY2NfdmZpb19wY2lfZ2V0X2RldmljZV9zdGF0ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE1ODU6XFx0Lm1pZ3JhdGlvbl9nZXRfZGF0YV9zaXplID0gaGlzaV9hY2NfdmZpb19wY2lfZ2V0X2RhdGFfc2l6ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1ODYtfTtcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE1ODctXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNTg4OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5faW5pdF9kZXYoc3RydWN0IHZmaW9fZGV2aWNlICpjb3JlX3ZkZXYpXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNTg5LXtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYwNi1cXHRjb3JlX3ZkZXYtXFx1MDAzZW1pZ3JhdGlvbl9mbGFncyA9IFZGSU9fTUlHUkFUSU9OX1NUT1BfQ09QWSB8IFZGSU9fTUlHUkFUSU9OX1BSRV9DT1BZO1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYwNzpcXHRjb3JlX3ZkZXYtXFx1MDAzZW1pZ19vcHMgPSBcXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fc3RhdGVfb3BzO1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYwOC1cXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxMS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MTI6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgaGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxMy1cXHQubmFtZSA9IFxcXCJoaXNpLWFjYy12ZmlvLXBjaS1taWdyYXRpb25cXFwiLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYxNDpcXHQuaW5pdCA9IGhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX2luaXRfZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxNS1cXHQucmVsZWFzZSA9IHZmaW9fcGNpX2NvcmVfcmVsZWFzZV9kZXYsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjE2OlxcdC5vcGVuX2RldmljZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX29wZW5fZGV2aWNlLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYxNzpcXHQuY2xvc2VfZGV2aWNlID0gaGlzaV9hY2NfdmZpb19wY2lfY2xvc2VfZGV2aWNlLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYxOC1cXHQuaW9jdGwgPSB2ZmlvX3BjaV9jb3JlX2lvY3RsLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNjIwLVxcdC5kZXZpY2VfZmVhdHVyZSA9IHZmaW9fcGNpX2NvcmVfaW9jdGxfZmVhdHVyZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MjE6XFx0LnJlYWQgPSBoaXNpX2FjY192ZmlvX3BjaV9yZWFkLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYyMjpcXHQud3JpdGUgPSBoaXNpX2FjY192ZmlvX3BjaV93cml0ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MjM6XFx0Lm1tYXAgPSBoaXNpX2FjY192ZmlvX3BjaV9tbWFwLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYyNC1cXHQucmVxdWVzdCA9IHZmaW9fcGNpX2NvcmVfcmVxdWVzdCxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYzMi1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE2MzM6c3RhdGljIGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgaGlzaV9hY2NfdmZpb19wY2lfb3BzID0ge1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTYzNC1cXHQubmFtZSA9IFxcXCJoaXNpLWFjYy12ZmlvLXBjaVxcXCIsXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzYtXFx0LnJlbGVhc2UgPSB2ZmlvX3BjaV9jb3JlX3JlbGVhc2VfZGV2LFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTYzNzpcXHQub3Blbl9kZXZpY2UgPSBoaXNpX2FjY192ZmlvX3BjaV9vcGVuX2RldmljZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2MzgtXFx0LmNsb3NlX2RldmljZSA9IHZmaW9fcGNpX2NvcmVfY2xvc2VfZGV2aWNlLFxcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xNjU0PXN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmaW9fZGVidWdfaW5pdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2NjUtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjY2OlxcdGlmICh2ZGV2LVxcdTAwM2VvcHMgIT0gXFx1MDAyNmhpc2lfYWNjX3ZmaW9fcGNpX21pZ3JuX29wcylcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2NjctXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYz0xNjkzPXN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmX2RlYnVnZnNfZXhpdChzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXYpXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE2OTgtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNjk5OnN0YXRpYyBpbnQgaGlzaV9hY2NfdmZpb19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MDAte1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcwMS1cXHRzdHJ1Y3QgaGlzaV9hY2NfdmZfY29yZV9kZXZpY2UgKmhpc2lfYWNjX3ZkZXY7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzAyOlxcdGNvbnN0IHN0cnVjdCB2ZmlvX2RldmljZV9vcHMgKm9wcyA9IFxcdTAwMjZoaXNpX2FjY192ZmlvX3BjaV9vcHM7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzAzLVxcdHN0cnVjdCBoaXNpX3FtICpwZl9xbTtcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcwOC1cXHRcXHRpZiAocGRldi1cXHUwMDNlaXNfdmlydGZuKVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTcwOTpcXHRcXHRcXHRvcHMgPSBcXHUwMDI2aGlzaV9hY2NfdmZpb19wY2lfbWlncm5fb3BzO1xcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTcxMC1cXHRcXHRlbHNlXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MzEtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzMyOnN0YXRpYyB2b2lkIGhpc2lfYWNjX3ZmaW9fcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3MzMte1xcbi0tXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQwLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc0MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaGlzaV9hY2NfdmZpb19wY2lfdGFibGVbXSA9IHtcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NDItXFx0eyBQQ0lfRFJJVkVSX09WRVJSSURFX0RFVklDRV9WRklPKFBDSV9WRU5ET1JfSURfSFVBV0VJLCBQQ0lfREVWSUNFX0lEX0hVQVdFSV9TRUNfVkYpIH0sXFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NDctXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzQ4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoaXNpX2FjY192ZmlvX3BjaV90YWJsZSk7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzQ5LVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM9MTc1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcnJvcl9oYW5kbGVycyBoaXNpX2FjY192Zl9lcnJfaGFuZGxlcnMgPSB7XFxuLS1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NTUtXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzU2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaXNpX2FjY192ZmlvX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYy0xNzU3LVxcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXFxuZHJpdmVycy92ZmlvL3BjaS9oaXNpbGljb24vaGlzaV9hY2NfdmZpb19wY2kuYzoxNzU4OlxcdC5pZF90YWJsZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3RhYmxlLFxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmM6MTc1OTpcXHQucHJvYmUgPSBoaXNpX2FjY192ZmlvX3BjaV9wcm9iZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3NjA6XFx0LnJlbW92ZSA9IGhpc2lfYWNjX3ZmaW9fcGNpX3JlbW92ZSxcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NjEtXFx0LmVycl9oYW5kbGVyID0gXFx1MDAyNmhpc2lfYWNjX3ZmX2Vycl9oYW5kbGVycyxcXG4tLVxcbmRyaXZlcnMvdmZpby9wY2kvaGlzaWxpY29uL2hpc2lfYWNjX3ZmaW9fcGNpLmMtMTc2NC1cXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jOjE3NjU6bW9kdWxlX3BjaV9kcml2ZXIoaGlzaV9hY2NfdmZpb19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL3ZmaW8vcGNpL2hpc2lsaWNvbi9oaXNpX2FjY192ZmlvX3BjaS5jLTE3NjYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjQ3LjgzNDk3NTEyMloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1ODY2MDQzMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBoaXNpX2FjY192ZmlvX3BjaWAgZHJpdmVyLiBGcm9tIHRoZSBuYW1pbmcsIEkga25vdyBpdCdzIGEgUENJIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIEhpc2lsaWNvbiBBQ0MgVkZJTywgbGlrZWx5IGRlYWxpbmcgd2l0aCB0aGVpciBoYXJkd2FyZSBsaWtlIFNFQywgSFBSRSwgYW5kIFpJUC4gSXQgYmluZHMgdG8gdGhvc2UgSHVhd2VpIHZlbmRvciBhbmQgZGV2aWNlIElEcy4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gYXNrLCBpcyB0aGlzIGhhcmR3YXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVU/IEkgYWxyZWFkeSBrbm93IHRoZSBhbnN3ZXIsIG9mIGNvdXJzZTsgdGhpcyBpcyBzcGVjaWFsaXplZCBIaXNpbGljb24gc2lsaWNvbi4gTm8sIGl0IGlzbid0LlxuXG5Ob3csIGJlY2F1c2UgaXQncyBhIFZGSU8gZHJpdmVyLCB0aGUgd2hvbGUgcHVycG9zZSBpcyB0byBwYXNzIHRocm91Z2ggcGh5c2ljYWwgZGV2aWNlcyB0byB1c2Vyc3BhY2UvVk1zLiBXaXRob3V0IHRoYXQgYWN0dWFsIEhpc2lsaWNvbiBBQ0MgaGFyZHdhcmUgcHJlc2VudCwgdGhpcyBkcml2ZXIgc2ltcGx5IGNhbm5vdCBiZSBwcm9iZWQgb3IgZXhlcmNpc2VkLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBtYXJrIGl0IGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgb24gYW55IHdlaXJkIGNvcm5lci1jYXNlcy4gVkZJTyBkcml2ZXJzIGZvciBzcGVjaWFsaXplZCBoYXJkd2FyZSBsaWtlIHRoaXMgYXJlIGFsbW9zdCAqbmV2ZXIqIGVtdWxhdGVkLiBMZXQncyBzZWUuLi4gdGhlIHByb21wdCBzdGF0ZXMgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gQWgsIGFuZCB0aGVyZSdzIHRoYXQgaGVscGZ1bCBleGFtcGxlOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVVwiLlxuXG5UaGlzIHBlcmZlY3RseSBtYXRjaGVzIHRoZSBkZXNjcmlwdGlvbjogaXQncyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQywgd2hpY2gsIGJ5IGRlZmluaXRpb24sIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgdGhhdCBhcmUgKm5vdCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gU28sIHllYWgsIHRoaXMgaXMgYSBkZWFkIGVuZC4gRGVmaW5pdGVseSBub3Qgd29ydGggZnV6emluZyBpbiB0aGlzIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg1OTIsIk91dHB1dFRva2VucyI6MTAyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDA5OjAwOjU2LjQyMTU4MTk2MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEyMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSB2ZW5kb3Itc3BlY2lmaWMgVkZJTyBQQ0kgZHJpdmVyIGZvciBIaXNpbGljb24gQUNDIGRldmljZXMgKGhpc2lfYWNjX3ZmaW9fcGNpKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSGlzaWxpY29uIFBDSWUgaGFyZHdhcmUgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgYXZhaWxhYmxlIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgdmVuZG9yLXNwZWNpZmljIFZGSU8gUENJIGRyaXZlciBmb3IgSGlzaWxpY29uIEFDQyBkZXZpY2VzIChoaXNpX2FjY192ZmlvX3BjaSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEhpc2lsaWNvbiBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwOTowMDo1Ni40MjE2MDY1MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowmlr5n[1] Phase: Running StartedAt: 2026-08-24 09:01:07 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmlr5n[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-24 09:01:07 +0000 UTC FinishedAt: 2026-08-24 09:01:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}