Name: series-workflowqrvbc Phase: Failed StartedAt: 2026-06-24 03:35:50 +0000 UTC FinishedAt: 2026-06-24 03:55:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvbc[0] Phase: Succeeded StartedAt: 2026-06-24 03:35:50 +0000 UTC FinishedAt: 2026-06-24 03:55:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvbc[0].run-triage Phase: Succeeded StartedAt: 2026-06-24 03:35:50 +0000 UTC FinishedAt: 2026-06-24 03:55:35 +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+CgkJCTx0ZD4yMDI2LzA2LzI0IDAzOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjYTMyM2JjOWRmNTA3N2ViNWNhOGY2ODc3NmI1YTc4YzU5NTM2ZjFjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMDM6NTQ6NDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcbmluZGV4IDMyNzFkZTU4NDRmODRiLi4xN2EwZDA3ODdlZDIwMCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcbkBAIC01MTQsMTUgJiM0Mzs1MTQsMTUgQEAgc3RhdGljIGludCBnZmFyX3BhcnNlX2dyb3VwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsXG4gXHRpZiAoIWdycC1cdTAwM2VyZWdzKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbi1cdGdmYXJfaXJxKGdycCwgVFgpLVx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAwKTtcbiYjNDM7XHRnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAwKTtcbiBcbiBcdC8qIElmIHdlIGFyZW4mIzM5O3QgdGhlIEZFQyB3ZSBoYXZlIG11bHRpcGxlIGludGVycnVwdHMgKi9cbiBcdGlmIChtb2RlbCBcdTAwMjZcdTAwMjYgc3RyY2FzZWNtcChtb2RlbCwgXCYjMzQ7RkVDXCYjMzQ7KSkge1xuLVx0XHRnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMSk7XG4tXHRcdGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTtcbi1cdFx0aWYgKCFnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEpXG4mIzQzO1x0XHRnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAxKTtcbiYjNDM7XHRcdGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDIpO1xuJiM0MztcdFx0aWYgKGdmYXJfaXJxKGdycCwgVFgpLVx1MDAzZWlycSBcdTAwM2MgMCB8fFxuJiM0MztcdFx0ICAgIGdmYXJfaXJxKGdycCwgUlgpLVx1MDAzZWlycSBcdTAwM2MgMCB8fFxuJiM0MztcdFx0ICAgIGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSBcdTAwM2MgMClcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaFxuaW5kZXggNjhiNTlkMzIwMmUzZGQuLmM2ZjFjMGI2MjI5ZWFiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaFxuQEAgLTEwNzQsNyAmIzQzOzEwNzQsNyBAQCBlbnVtIGdmYXJfaXJxaW5mb19pZCB7XG4gfTtcbiBcbiBzdHJ1Y3QgZ2Zhcl9pcnFpbmZvIHtcbi1cdHVuc2lnbmVkIGludCBpcnE7XG4mIzQzO1x0aW50IGlycTtcbiBcdGNoYXIgbmFtZVtHRkFSX0lOVF9OQU1FX01BWF07XG4gfTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAwMzo1NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciBkdXJpbmcgcHJvYmUuIFRoaXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NCBRRU1VIG9yIEdDRSkgd2l0aG91dCBhIGN1c3RvbSBkZXZpY2UgdHJlZSwgYW5kIHRoZSBjaGFuZ2UgaXRzZWxmIGlzIGEgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIGZldGNoaW5nIElSUXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjYTMyM2JjOWRmNTA3N2ViNWNhOGY2ODc3NmI1YTc4YzU5NTM2ZjFjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdW4gMjQgMDM6NTQ6NDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYwppbmRleCAzMjcxZGU1ODQ0Zjg0Yi4uMTdhMGQwNzg3ZWQyMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYwpAQCAtNTE0LDE1ICYjNDM7NTE0LDE1IEBAIHN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCWlmICghZ3JwLSZndDtyZWdzKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWdmYXJfaXJxKGdycCwgVFgpLSZndDtpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMCk7CiYjNDM7CWdmYXJfaXJxKGdycCwgVFgpLSZndDtpcnEgPSBvZl9pcnFfZ2V0KG5wLCAwKTsKIAogCS8qIElmIHdlIGFyZW4mIzM5O3QgdGhlIEZFQyB3ZSBoYXZlIG11bHRpcGxlIGludGVycnVwdHMgKi8KIAlpZiAobW9kZWwgJmFtcDsmYW1wOyBzdHJjYXNlY21wKG1vZGVsLCAmIzM0O0ZFQyYjMzQ7KSkgewotCQlnZmFyX2lycShncnAsIFJYKS0mZ3Q7aXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDEpOwotCQlnZmFyX2lycShncnAsIEVSKS0mZ3Q7aXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDIpOwotCQlpZiAoIWdmYXJfaXJxKGdycCwgVFgpLSZndDtpcnEgfHwKLQkJICAgICFnZmFyX2lycShncnAsIFJYKS0mZ3Q7aXJxIHx8Ci0JCSAgICAhZ2Zhcl9pcnEoZ3JwLCBFUiktJmd0O2lycSkKJiM0MzsJCWdmYXJfaXJxKGdycCwgUlgpLSZndDtpcnEgPSBvZl9pcnFfZ2V0KG5wLCAxKTsKJiM0MzsJCWdmYXJfaXJxKGdycCwgRVIpLSZndDtpcnEgPSBvZl9pcnFfZ2V0KG5wLCAyKTsKJiM0MzsJCWlmIChnZmFyX2lycShncnAsIFRYKS0mZ3Q7aXJxICZsdDsgMCB8fAomIzQzOwkJICAgIGdmYXJfaXJxKGdycCwgUlgpLSZndDtpcnEgJmx0OyAwIHx8CiYjNDM7CQkgICAgZ2Zhcl9pcnEoZ3JwLCBFUiktJmd0O2lycSAmbHQ7IDApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oCmluZGV4IDY4YjU5ZDMyMDJlM2RkLi5jNmYxYzBiNjIyOWVhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oCkBAIC0xMDc0LDcgJiM0MzsxMDc0LDcgQEAgZW51bSBnZmFyX2lycWluZm9faWQgewogfTsKIAogc3RydWN0IGdmYXJfaXJxaW5mbyB7Ci0JdW5zaWduZWQgaW50IGlycTsKJiM0MzsJaW50IGlycTsKIAljaGFyIG5hbWVbR0ZBUl9JTlRfTkFNRV9NQVhdOwogfTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAwMzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzExCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaCBmb3IgR2lhbmZhciBFdGhlcm5ldCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIHRvdWNoaW5nIHRoZSBGcmVlc2NhbGUgR2lhbmZhciBFdGhlcm5ldCBkcml2ZXIgZmlsZXM6IGBnaWFuZmFyLmNgIGFuZCBgZ2lhbmZhci5oYC4gVGhlIGNoYW5nZXMgYXJlIGZvY3VzZWQgb24gdGhlIGludGVycnVwdCBoYW5kbGluZywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGdmYXJfcGFyc2VfZ3JvdXBgIGZ1bmN0aW9uLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIHRyYW5zaXRpb25pbmcgZnJvbSB1c2luZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHRvIGBvZl9pcnFfZ2V0YCwgd2hpY2ggaXMgYSBjb21tb24gYW5kIHVzdWFsbHkgbW9yZSBtb2Rlcm4gYXBwcm9hY2ggZm9yIHJldHJpZXZpbmcgaW50ZXJydXB0IG51bWJlcnMgZnJvbSBkZXZpY2UgdHJlZSBkYXRhLiBUaGV5JiMzOTtyZSBhbHNvIHVwZGF0aW5nIHRoZSBgaXJxYCBtZW1iZXIgaW4gdGhlIGBnZmFyX2lycWluZm9gIHN0cnVjdCB0byBiZSBhIHNpZ25lZCBpbnRlZ2VyIChgaW50YCkgaW5zdGVhZCBvZiBhbiB1bnNpZ25lZCBvbmUgKGB1bnNpZ25lZCBpbnRgKS4gQW5kIGZpbmFsbHksIHRoZSBlcnJvciBjaGVja2luZyBpcyBiZWluZyB1cGRhdGVkIGZyb20gYCFpcnFgIHRvIGBpcnEgJmx0OyAwYCwgcmVmbGVjdGluZyB0aGUgY2hhbmdlIHRvIGEgc2lnbmVkIGludGVnZXIgd2hlcmUgYSBuZWdhdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IHdoZXJlIGRvZXMgdGhpcyBkcml2ZXIgZXZlbiAqbWF0dGVyKj8gVGhpcyBpcyBhIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciwgc28gaXQmIzM5O3MgdGFsa2luZyBhYm91dCBoYXJkd2FyZSBjb250cm9sbGVycyBsaWtlIGVUU0VDLCBUU0VDLCBhbmQgRkVDLCB0eXBpY2FsbHkgZm91bmQgb24gUG93ZXJQQyBhbmQgY2VydGFpbiBBUk0gU29Dcy4gSW4gbXkgZXhwZXJpZW5jZSwgdGhlc2UgY29udHJvbGxlcnMgYXJlIGhpZ2hseSB1bmxpa2VseSB0byBiZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCB4ODYgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIHVubGVzcyBzcGVjaWZpY2FsbHkgY29uZmlndXJlZCBmb3IgaXQuIFNvLCBob3cgY2FuIEkgZXZlbiB0ZXN0IHRoaXM/CgpXYWl0Li4uIEkgcmVtZW1iZXIgc29tZXRoaW5nIGFib3V0IFFFTVUgaGF2aW5nIGFuIGBlVFNFQ2AgZGV2aWNlIGZvciBQb3dlclBDLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBlNTAwIGNvcmUuIElzIEdpYW5mYXIgZW11bGF0ZWQgaW4gUUVNVT8gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMgYSByZWFjaGFibGUgdGFyZ2V0LiBMZXQmIzM5O3Mgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgR2lhbmZhciBhbmQgc2VlIGlmIHRoZXJlJiMzOTtzIGFueSByZWxldmFudCBzdXBwb3J0IG9yIGNvbmZpZ3VyYXRpb24gdG8gZW5hYmxlIHRoZSBHaWFuZmFyIGhhcmR3YXJlLiBUaGF0JiMzOTtzIHRoZSBmaXJzdCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDAzOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBHSUFORkFSJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc9ODk9Y29uZmlnIFVHRVRIX1RYX09OX0RFTUFORFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc6OTM6Y29uZmlnIEdJQU5GQVJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTk0LVx0dHJpc3RhdGUgXCYjMzQ7R2lhbmZhciBFdGhlcm5ldFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTkKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipHSUFORkFSJiMzOTtzIERlcGVuZGVuY2llczogQSBRdWljayBNZW50YWwgQXVkaXQqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gcXVpY2tseSBtYXAgb3V0IHRoZSBkZXBlbmRlbmN5IGdyYXBoIGZvciBHSUFORkFSLiBOb3QganVzdCB0aGUgb2J2aW91cyBpbXBvcnRzLCBidXQgdGhlICpyZWFsbHkqIGNydWNpYWwgb25lcyB0aGF0IHVuZGVycGluIGl0cyBmdW5jdGlvbmFsaXR5LiBJJiMzOTttIHRoaW5raW5nIGJleW9uZCB0aGUgZGlyZWN0IGBpbXBvcnRgIHN0YXRlbWVudHM7IEkgbmVlZCB0byBjb25zaWRlciBhbnkgZXh0ZXJuYWwgbGlicmFyaWVzIGl0IG1pZ2h0IGxldmVyYWdlLCBoaWRkZW4gZnJhbWV3b3Jrcywgb3IgZXZlbiBzdWJ0bGUgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIGludGVybmFsIGNvbXBvbmVudHMuIFdoZXJlIGRvZXMgaXQgbGVhbiBvbiBleHRlcm5hbCBzZXJ2aWNlcywgYW5kIHdoYXQmIzM5O3MgdGhlIHZlcnNpb24gbG9jay1kb3duIHNpdHVhdGlvbiB0aGVyZT8gQW55IGNyaXRpY2FsIGxvdy1sZXZlbCBsaWJyYXJpZXMgaW4gQyBvciBSdXN0IHRoYXQgY291bGQgYml0ZSB1cyBkb3duIHRoZSBsaW5lPyBUaGlzIGlzbuKAmXQganVzdCBhYm91dCBsaXN0aW5nIGByZXF1aXJlbWVudHMudHh0YDsgaXQmIzM5O3MgYWJvdXQgdW5kZXJzdGFuZGluZyB0aGUgYXJjaGl0ZWN0dXJhbCBpbnRlZ3JpdHkgb2YgR0lBTkZBUiBhbmQgd2hlcmUgaXTigJlzIHZ1bG5lcmFibGUgdG8gY2hhbmdlLCBvciB3aGVyZSBpdHMgb3duIG1vZGlmaWNhdGlvbnMgbWlnaHQgcmlwcGxlIG91dHdhcmRzLiBHb3R0YSBpZGVudGlmeSB0aG9zZSBjcml0aWNhbCBwYXRocyB3aGVyZSBhIGJyZWFraW5nIGNoYW5nZSBpbiBhIGRvd25zdHJlYW0gbGlicmFyeSB3b3VsZCBpbW1lZGlhdGVseSBjcmlwcGxlIGl0LiBEZWVwIGRpdmUgdGltZSEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogOTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA5MDpcdFx0Ym9vbCBcJiMzNDtUcmFuc21pdCBvbiBEZW1hbmQgc3VwcG9ydFwmIzM0O1xuICA5MTpcdFx0ZGVwZW5kcyBvbiBVQ0NfR0VUSFxuICA5MjpcdFxuICA5MzpcdGNvbmZpZyBHSUFORkFSXG4gIDk0Olx0XHR0cmlzdGF0ZSBcJiMzNDtHaWFuZmFyIEV0aGVybmV0XCYjMzQ7XG4gIDk1Olx0XHRkZXBlbmRzIG9uIEhBU19ETUFcbiAgOTY6XHRcdHNlbGVjdCBGU0xfUFFfTURJT1xuICA5NzpcdFx0c2VsZWN0IFBIWUxJQlxuICA5ODpcdFx0c2VsZWN0IEZJWEVEX1BIWVxuICA5OTpcdFx0c2VsZWN0IENSQzMyXG4gMTAwOlx0XHRoZWxwXG4gMTAxOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBHaWdhYml0IFRTRUMgb24gdGhlIE1QQzgzeHgsIE1QQzg1eHgsXG4gMTAyOlx0XHQgIGFuZCBNUEM4Nnh4IGZhbWlseSBvZiBjaGlwcywgdGhlIGVUU0VDIG9uIExTMTAyMUEgYW5kIHRoZSBGRUNcbiAxMDM6XHRcdCAgb24gdGhlIDg1NDAuXG4gMTA0Olx0XG4gMTA1Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWdcJiMzNDtcbiAxMDY6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWdcJiMzNDtcbiAxMDc6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWdcJiMzNDtcbiAxMDg6XHRcbiAxMDk6XHRlbmRpZiAjIE5FVF9WRU5ET1JfRlJFRVNDQUxFXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY3OAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDI1NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIFN5emthbGxlciBUZXN0YWJpbGl0eSBvZiBUaGlzIERyaXZlciBDaGFuZ2UqKgoKT2theSwgc28gdGhpcyBjaGFuZ2UgZGVwZW5kcyBvbiBgSEFTX0RNQWAgYW5kIHRhcmdldHMgc3BlY2lmaWMgRnJlZXNjYWxlIFBvd2VyUEMgYW5kIEFSTSBTb0NzOiBNUEM4M3h4LCBNUEM4NXh4LCBNUEM4Nnh4LCBhbmQgTFMxMDIxQS4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBiZSB0ZXN0ZWQgdXNpbmcgc3l6a2FsbGVyPyBOb3csIHN5emthbGxlciBpcyB1c3VhbGx5IHNldCB1cCBmb3IgeDg2XzY0LCBhcm02NCwgYW5kIHJpc2N2LCBzbyB0YXJnZXRpbmcgdGhlc2Ugc3BlY2lmaWMgYXJjaGl0ZWN0dXJlcyBkaXJlY3RseSBpcyB0aGUgZmlyc3QgY29uc2lkZXJhdGlvbi4gVGhlIGRyaXZlciBjaGFuZ2UgaXRzZWxmIGlzIHJlbGF0aXZlbHkgY29udGFpbmVkOiBpdCYjMzk7cyBzd2FwcGluZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHdpdGggYG9mX2lycV9nZXRgIHdpdGhpbiB0aGUgZGV2aWNlIHByb2JlIGZ1bmN0aW9uLCBgZ2Zhcl9wYXJzZV9ncm91cGAuCgpUaGlzIHBvaW50cyB0byBhIGRldmljZSB0cmVlIHBhcnNpbmcgZnVuY3Rpb24sIGFuZCB0aGF0JiMzOTtzIGtleS4gVW5sZXNzIGEgZGV2aWNlIHRyZWUgc3BlY2lmaWNhbGx5IGluY2x1ZGVzIHRoaXMgZGV2aWNlLCB0aGUgZHJpdmVyIGxpa2VseSB3b24mIzM5O3QgZXZlbiBiZSBwcm9iZWQuIEFuZCB3aGlsZSBzeXprYWxsZXIgZG9lcyAqc29tZSogZGV2aWNlIHRyZWUgZnV6emluZywgaXQmIzM5O3MgdHlwaWNhbGx5IGZvciBnZW5lcmljIHN1YnN5c3RlbXMgb3Igc3BlY2lmaWMgdmlydHVhbCBkZXZpY2VzLCBvciB3aGVuIHRoZXJlJiMzOTtzIGEgZ29vZCB3YXkgdG8gaW5qZWN0IERUIG5vZGVzLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgRFQgZnV6emluZyBpcyBub3QgdmVyeSBleHRlbnNpdmUsIGFuZCBJIGRvbiYjMzk7dCBzZWUgaG93IHRoaXMgc3BlY2lmaWMgRnJlZXNjYWxlIEV0aGVybmV0IGNvbnRyb2xsZXIgd291bGQgYmUgZWFzaWx5IHRhcmdldGVkIGluIHRoYXQgd2F5LiBTeXprYWxsZXImIzM5O3MgRFQgZnV6emluZyBmZWVscyB2ZXJ5IGxpbWl0ZWQuCgpUaGUgZmFjdCB0aGF0IHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgcHJvYmUgZnVuY3Rpb24gbWFrZXMgbWUgZnVydGhlciBsZWFuIHRvd2FyZHMgaXQgYmVpbmcgZGlmZmljdWx0IHRvIGZ1enogZWZmZWN0aXZlbHkuIEdpdmVuIHRoaXMgaXMgYSBkcml2ZXIgcHJvYmUgcm91dGluZSBmb3IgYSBwYXJ0aWN1bGFyIEZyZWVzY2FsZSBFdGhlcm5ldCBjb250cm9sbGVyLCBpdCBtaWdodCBiZSBtb3JlIHRyb3VibGUgdGhhbiBpdCYjMzk7cyB3b3J0aCB0byB0cnkgYW5kIGxldmVyYWdlIHN5emthbGxlci4KClVsdGltYXRlbHksIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGNvZGUgaXMgZXZlbiByZWFjaGFibGUgaW4gdGhlIGZpcnN0IHBsYWNlLCBidXQgbXkgaW5pdGlhbCBpbmNsaW5hdGlvbiBpcyB0aGF0IHN5emthbGxlciBpcyBub3QgYSBwcmFjdGljYWwgdGVzdGluZyBwYXRoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Z2Zhcl9wYXJzZV9ncm91cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYz00OTE9c3RhdGljIHZvaWQgZW5hYmxlX25hcGkoc3RydWN0IGdmYXJfcHJpdmF0ZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTUwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM6NTAxOnN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy01MDItXHRcdFx0ICAgIHN0cnVjdCBnZmFyX3ByaXZhdGUgKnByaXYsIGNvbnN0IGNoYXIgKm1vZGVsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM9NjE2PXN0YXRpYyBpbnQgZ2Zhcl9vZl9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jOjcxNDpcdFx0XHRlcnIgPSBnZmFyX3BhcnNlX2dyb3VwKGNoaWxkLCBwcml2LCBtb2RlbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTcxNS1cdFx0XHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MjAtXHR9IGVsc2UgeyAvKiBTUV9TR19NT0RFICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jOjcyMTpcdFx0ZXJyID0gZ2Zhcl9wYXJzZV9ncm91cChucCwgcHJpdiwgbW9kZWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MjItXHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcxMgoJCQkJCQkJb3V0cHV0OiA5OAoJCQkJCQkJdGhvdWdodHM6IDI0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50OiBOb3QgV29ydGggRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGZyYW5rbHksIGl0JiMzOTtzIGEgYml0IG9mIGEgbm9uLXN0YXJ0ZXIgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIEl0JiMzOTtzIHRyaWdnZXJlZCB3aXRoaW4gYGdmYXJfb2ZfaW5pdGAsIHdoaWNoIGl0c2VsZiBnZXRzIGNhbGxlZCBieSB0aGUgcGxhdGZvcm0gZHJpdmVyJiMzOTtzIHByb2JlIGZ1bmN0aW9uLiBUaGlzIGlzIGFsbCBjb250aW5nZW50IG9uIGEgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSDigJMgJiMzNDtmc2wsZXRzZWMyJiMzNDssICYjMzQ7ZnNsLGdpYW5mYXImIzM0OywgZXRjLiDigJMgYmVpbmcgcHJlc2VudC4gSW4gb3RoZXIgd29yZHMsIHlvdSYjMzk7cmUgbm90IGdvaW5nIHRvIGhpdCB0aGlzIGluIHlvdXIgYXZlcmFnZSB2aXJ0dWFsaXplZCBzZXR1cCB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhvc2UgYXJlbiYjMzk7dCBleGFjdGx5IHRoZSBub3JtLgoKRXZlbiBpZiB5b3UgKmRpZCogbWFuYWdlIHRvIHdyYW5nbGUgdGhlIHJpZ2h0IGVudmlyb25tZW50LCB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlIGlzIGluY3JlZGlibHkgbWlub3IuIFdlJiMzOTtyZSB0YWxraW5nIGEgc3RyYWlnaHQtdXAgcmVwbGFjZW1lbnQgb2YgYGlycV9vZl9wYXJzZV9hbmRfbWFwYCB3aXRoIGBvZl9pcnFfZ2V0YCBhbmQgYSB0d2VhayB0byB0aGUgZXJyb3IgaGFuZGxpbmcuIFRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBBUEkgdXBkYXRlIGZvciBJUlEgZmV0Y2hpbmcsIGEgcHVyZWx5IGZ1bmN0aW9uYWwgY2hhbmdlLiBOb3RoaW5nIGhlcmUgc3VnZ2VzdHMgYW55IHJlYWwgYXR0YWNrIHN1cmZhY2UsIG9yIGFueXRoaW5nIHRoYXQgd291bGQgYmUgcGFydGljdWxhcmx5IHNlbnNpdGl2ZSB0byBmdXp6aW5nLgoKTXkgcmVhc29uaW5nPyBUaGUgcGF0Y2ggaXMgZXhjbHVzaXZlbHkgbW9kaWZ5aW5nIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyJiMzOTtzIHByb2JlIG9wZXJhdGlvbi4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgc28gc3RhbmRhcmQgdmlydHVhbGl6YXRpb24gaXMgYSBub24tc3RhcnRlciB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCB3aGljaCBpcyBhIG5pY2hlIHNjZW5hcmlvLiBNb3Jlb3ZlciwgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzdHJhaWdodGZvcndhcmQgQVBJIHVwZGF0ZSByZWxhdGVkIHRvIHJldHJpZXZpbmcgSVJRcy4gVGhlcmVmb3JlLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjYWxsaW5nIHRoaXMgYFdvcnRoRnV6emluZyA9IGZhbHNlYC4gTm8gZnV6emluZyBuZWVkZWQgaGVyZSwgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciBkdXJpbmcgcHJvYmUuIFRoaXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NCBRRU1VIG9yIEdDRSkgd2l0aG91dCBhIGN1c3RvbSBkZXZpY2UgdHJlZSwgYW5kIHRoZSBjaGFuZ2UgaXRzZWxmIGlzIGEgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIGZldGNoaW5nIElSUXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciBkdXJpbmcgcHJvYmUuIFRoaXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NCBRRU1VIG9yIEdDRSkgd2l0aG91dCBhIGN1c3RvbSBkZXZpY2UgdHJlZSwgYW5kIHRoZSBjaGFuZ2UgaXRzZWxmIGlzIGEgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIGZldGNoaW5nIElSUXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDEuNDI4NzI2NDYyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMyMjI0NDQ5MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDAzOjU0OjQxLjQyODczMzczMloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQwMzU1MjY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgY2EzMjNiYzlkZjUwNzdlYjVjYThmNjg3NzZiNWE3OGM1OTUzNmYxY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1biAyNCAwMzo1NDo0MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xcbmluZGV4IDMyNzFkZTU4NDRmODRiLi4xN2EwZDA3ODdlZDIwMCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xcbkBAIC01MTQsMTUgKzUxNCwxNSBAQCBzdGF0aWMgaW50IGdmYXJfcGFyc2VfZ3JvdXAoc3RydWN0IGRldmljZV9ub2RlICpucCxcXG4gXFx0aWYgKCFncnAtXFx1MDAzZXJlZ3MpXFxuIFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiBcXG4tXFx0Z2Zhcl9pcnEoZ3JwLCBUWCktXFx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAwKTtcXG4rXFx0Z2Zhcl9pcnEoZ3JwLCBUWCktXFx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDApO1xcbiBcXG4gXFx0LyogSWYgd2UgYXJlbid0IHRoZSBGRUMgd2UgaGF2ZSBtdWx0aXBsZSBpbnRlcnJ1cHRzICovXFxuIFxcdGlmIChtb2RlbCBcXHUwMDI2XFx1MDAyNiBzdHJjYXNlY21wKG1vZGVsLCBcXFwiRkVDXFxcIikpIHtcXG4tXFx0XFx0Z2Zhcl9pcnEoZ3JwLCBSWCktXFx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAxKTtcXG4tXFx0XFx0Z2Zhcl9pcnEoZ3JwLCBFUiktXFx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTtcXG4tXFx0XFx0aWYgKCFnZmFyX2lycShncnAsIFRYKS1cXHUwMDNlaXJxIHx8XFxuLVxcdFxcdCAgICAhZ2Zhcl9pcnEoZ3JwLCBSWCktXFx1MDAzZWlycSB8fFxcbi1cXHRcXHQgICAgIWdmYXJfaXJxKGdycCwgRVIpLVxcdTAwM2VpcnEpXFxuK1xcdFxcdGdmYXJfaXJxKGdycCwgUlgpLVxcdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAxKTtcXG4rXFx0XFx0Z2Zhcl9pcnEoZ3JwLCBFUiktXFx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDIpO1xcbitcXHRcXHRpZiAoZ2Zhcl9pcnEoZ3JwLCBUWCktXFx1MDAzZWlycSBcXHUwMDNjIDAgfHxcXG4rXFx0XFx0ICAgIGdmYXJfaXJxKGdycCwgUlgpLVxcdTAwM2VpcnEgXFx1MDAzYyAwIHx8XFxuK1xcdFxcdCAgICBnZmFyX2lycShncnAsIEVSKS1cXHUwMDNlaXJxIFxcdTAwM2MgMClcXG4gXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oXFxuaW5kZXggNjhiNTlkMzIwMmUzZGQuLmM2ZjFjMGI2MjI5ZWFiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oXFxuQEAgLTEwNzQsNyArMTA3NCw3IEBAIGVudW0gZ2Zhcl9pcnFpbmZvX2lkIHtcXG4gfTtcXG4gXFxuIHN0cnVjdCBnZmFyX2lycWluZm8ge1xcbi1cXHR1bnNpZ25lZCBpbnQgaXJxO1xcbitcXHRpbnQgaXJxO1xcbiBcXHRjaGFyIG5hbWVbR0ZBUl9JTlRfTkFNRV9NQVhdO1xcbiB9O1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDEuOTcwNzE0NDU4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMjY4MDQ1MDYyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRldmljZSB0cmVlIHBhcnNpbmcgbG9naWMgZm9yIHRoZSBGcmVlc2NhbGUgR2lhbmZhciBFdGhlcm5ldCBkcml2ZXIgZHVyaW5nIHByb2JlLiBUaGlzIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSB4ODZfNjQgUUVNVSBvciBHQ0UpIHdpdGhvdXQgYSBjdXN0b20gZGV2aWNlIHRyZWUsIGFuZCB0aGUgY2hhbmdlIGl0c2VsZiBpcyBhIHNpbXBsZSBBUEkgdXBkYXRlIGZvciBmZXRjaGluZyBJUlFzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjYTMyM2JjOWRmNTA3N2ViNWNhOGY2ODc3NmI1YTc4YzU5NTM2ZjFjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMDM6NTQ6NDAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xuaW5kZXggMzI3MWRlNTg0NGY4NGIuLjE3YTBkMDc4N2VkMjAwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xuQEAgLTUxNCwxNSArNTE0LDE1IEBAIHN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuIFx0aWYgKCFncnAtXHUwMDNlcmVncylcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMCk7XG4rXHRnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAwKTtcbiBcbiBcdC8qIElmIHdlIGFyZW4ndCB0aGUgRkVDIHdlIGhhdmUgbXVsdGlwbGUgaW50ZXJydXB0cyAqL1xuIFx0aWYgKG1vZGVsIFx1MDAyNlx1MDAyNiBzdHJjYXNlY21wKG1vZGVsLCBcIkZFQ1wiKSkge1xuLVx0XHRnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMSk7XG4tXHRcdGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTtcbi1cdFx0aWYgKCFnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEpXG4rXHRcdGdmYXJfaXJxKGdycCwgUlgpLVx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDEpO1xuK1x0XHRnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAyKTtcbitcdFx0aWYgKGdmYXJfaXJxKGdycCwgVFgpLVx1MDAzZWlycSBcdTAwM2MgMCB8fFxuK1x0XHQgICAgZ2Zhcl9pcnEoZ3JwLCBSWCktXHUwMDNlaXJxIFx1MDAzYyAwIHx8XG4rXHRcdCAgICBnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEgXHUwMDNjIDApXG4gXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcbmluZGV4IDY4YjU5ZDMyMDJlM2RkLi5jNmYxYzBiNjIyOWVhYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcbkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBlbnVtIGdmYXJfaXJxaW5mb19pZCB7XG4gfTtcbiBcbiBzdHJ1Y3QgZ2Zhcl9pcnFpbmZvIHtcbi1cdHVuc2lnbmVkIGludCBpcnE7XG4rXHRpbnQgaXJxO1xuIFx0Y2hhciBuYW1lW0dGQVJfSU5UX05BTUVfTUFYXTtcbiB9O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDEuOTcwNzE3NDk4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3MTc5NzM2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEcml2ZXIgUGF0Y2ggZm9yIEdpYW5mYXIgRXRoZXJuZXQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyB0b3VjaGluZyB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGZpbGVzOiBgZ2lhbmZhci5jYCBhbmQgYGdpYW5mYXIuaGAuIFRoZSBjaGFuZ2VzIGFyZSBmb2N1c2VkIG9uIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBnZmFyX3BhcnNlX2dyb3VwYCBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIHRyYW5zaXRpb25pbmcgZnJvbSB1c2luZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHRvIGBvZl9pcnFfZ2V0YCwgd2hpY2ggaXMgYSBjb21tb24gYW5kIHVzdWFsbHkgbW9yZSBtb2Rlcm4gYXBwcm9hY2ggZm9yIHJldHJpZXZpbmcgaW50ZXJydXB0IG51bWJlcnMgZnJvbSBkZXZpY2UgdHJlZSBkYXRhLiBUaGV5J3JlIGFsc28gdXBkYXRpbmcgdGhlIGBpcnFgIG1lbWJlciBpbiB0aGUgYGdmYXJfaXJxaW5mb2Agc3RydWN0IHRvIGJlIGEgc2lnbmVkIGludGVnZXIgKGBpbnRgKSBpbnN0ZWFkIG9mIGFuIHVuc2lnbmVkIG9uZSAoYHVuc2lnbmVkIGludGApLiBBbmQgZmluYWxseSwgdGhlIGVycm9yIGNoZWNraW5nIGlzIGJlaW5nIHVwZGF0ZWQgZnJvbSBgIWlycWAgdG8gYGlycSBcdTAwM2MgMGAsIHJlZmxlY3RpbmcgdGhlIGNoYW5nZSB0byBhIHNpZ25lZCBpbnRlZ2VyIHdoZXJlIGEgbmVnYXRpdmUgdmFsdWUgaW5kaWNhdGVzIGFuIGVycm9yLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IHdoZXJlIGRvZXMgdGhpcyBkcml2ZXIgZXZlbiAqbWF0dGVyKj8gVGhpcyBpcyBhIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciwgc28gaXQncyB0YWxraW5nIGFib3V0IGhhcmR3YXJlIGNvbnRyb2xsZXJzIGxpa2UgZVRTRUMsIFRTRUMsIGFuZCBGRUMsIHR5cGljYWxseSBmb3VuZCBvbiBQb3dlclBDIGFuZCBjZXJ0YWluIEFSTSBTb0NzLiBJbiBteSBleHBlcmllbmNlLCB0aGVzZSBjb250cm9sbGVycyBhcmUgaGlnaGx5IHVubGlrZWx5IHRvIGJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIHg4NiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSwgdW5sZXNzIHNwZWNpZmljYWxseSBjb25maWd1cmVkIGZvciBpdC4gU28sIGhvdyBjYW4gSSBldmVuIHRlc3QgdGhpcz9cblxuV2FpdC4uLiBJIHJlbWVtYmVyIHNvbWV0aGluZyBhYm91dCBRRU1VIGhhdmluZyBhbiBgZVRTRUNgIGRldmljZSBmb3IgUG93ZXJQQywgc3BlY2lmaWNhbGx5IGZvciB0aGUgZTUwMCBjb3JlLiBJcyBHaWFuZmFyIGVtdWxhdGVkIGluIFFFTVU/IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGlzIGEgcmVhY2hhYmxlIHRhcmdldC4gTGV0J3Mgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgR2lhbmZhciBhbmQgc2VlIGlmIHRoZXJlJ3MgYW55IHJlbGV2YW50IHN1cHBvcnQgb3IgY29uZmlndXJhdGlvbiB0byBlbmFibGUgdGhlIEdpYW5mYXIgaGFyZHdhcmUuIFRoYXQncyB0aGUgZmlyc3Qgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMxMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDAzOjU0OjQ4LjA0MjUxNzc4OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDAzODcxMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEdJQU5GQVJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc9ODk9Y29uZmlnIFVHRVRIX1RYX09OX0RFTUFORFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWctOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc6OTM6Y29uZmlnIEdJQU5GQVJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZy05NC1cXHR0cmlzdGF0ZSBcXFwiR2lhbmZhciBFdGhlcm5ldFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDguMTgyOTExNjM1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxMjQxMDE3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqR0lBTkZBUidzIERlcGVuZGVuY2llczogQSBRdWljayBNZW50YWwgQXVkaXQqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHF1aWNrbHkgbWFwIG91dCB0aGUgZGVwZW5kZW5jeSBncmFwaCBmb3IgR0lBTkZBUi4gTm90IGp1c3QgdGhlIG9idmlvdXMgaW1wb3J0cywgYnV0IHRoZSAqcmVhbGx5KiBjcnVjaWFsIG9uZXMgdGhhdCB1bmRlcnBpbiBpdHMgZnVuY3Rpb25hbGl0eS4gSSdtIHRoaW5raW5nIGJleW9uZCB0aGUgZGlyZWN0IGBpbXBvcnRgIHN0YXRlbWVudHM7IEkgbmVlZCB0byBjb25zaWRlciBhbnkgZXh0ZXJuYWwgbGlicmFyaWVzIGl0IG1pZ2h0IGxldmVyYWdlLCBoaWRkZW4gZnJhbWV3b3Jrcywgb3IgZXZlbiBzdWJ0bGUgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIGludGVybmFsIGNvbXBvbmVudHMuIFdoZXJlIGRvZXMgaXQgbGVhbiBvbiBleHRlcm5hbCBzZXJ2aWNlcywgYW5kIHdoYXQncyB0aGUgdmVyc2lvbiBsb2NrLWRvd24gc2l0dWF0aW9uIHRoZXJlPyBBbnkgY3JpdGljYWwgbG93LWxldmVsIGxpYnJhcmllcyBpbiBDIG9yIFJ1c3QgdGhhdCBjb3VsZCBiaXRlIHVzIGRvd24gdGhlIGxpbmU/IFRoaXMgaXNu4oCZdCBqdXN0IGFib3V0IGxpc3RpbmcgYHJlcXVpcmVtZW50cy50eHRgOyBpdCdzIGFib3V0IHVuZGVyc3RhbmRpbmcgdGhlIGFyY2hpdGVjdHVyYWwgaW50ZWdyaXR5IG9mIEdJQU5GQVIgYW5kIHdoZXJlIGl04oCZcyB2dWxuZXJhYmxlIHRvIGNoYW5nZSwgb3Igd2hlcmUgaXRzIG93biBtb2RpZmljYXRpb25zIG1pZ2h0IHJpcHBsZSBvdXR3YXJkcy4gR290dGEgaWRlbnRpZnkgdGhvc2UgY3JpdGljYWwgcGF0aHMgd2hlcmUgYSBicmVha2luZyBjaGFuZ2UgaW4gYSBkb3duc3RyZWFtIGxpYnJhcnkgd291bGQgaW1tZWRpYXRlbHkgY3JpcHBsZSBpdC4gRGVlcCBkaXZlIHRpbWUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwOTksIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQwMzo1NDo1MS40OTUzMjc0NDlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDEwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA5MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA5MDpcXHRcXHRib29sIFxcXCJUcmFuc21pdCBvbiBEZW1hbmQgc3VwcG9ydFxcXCJcXG4gIDkxOlxcdFxcdGRlcGVuZHMgb24gVUNDX0dFVEhcXG4gIDkyOlxcdFxcbiAgOTM6XFx0Y29uZmlnIEdJQU5GQVJcXG4gIDk0OlxcdFxcdHRyaXN0YXRlIFxcXCJHaWFuZmFyIEV0aGVybmV0XFxcIlxcbiAgOTU6XFx0XFx0ZGVwZW5kcyBvbiBIQVNfRE1BXFxuICA5NjpcXHRcXHRzZWxlY3QgRlNMX1BRX01ESU9cXG4gIDk3OlxcdFxcdHNlbGVjdCBQSFlMSUJcXG4gIDk4OlxcdFxcdHNlbGVjdCBGSVhFRF9QSFlcXG4gIDk5OlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAxMDA6XFx0XFx0aGVscFxcbiAxMDE6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyB0aGUgR2lnYWJpdCBUU0VDIG9uIHRoZSBNUEM4M3h4LCBNUEM4NXh4LFxcbiAxMDI6XFx0XFx0ICBhbmQgTVBDODZ4eCBmYW1pbHkgb2YgY2hpcHMsIHRoZSBlVFNFQyBvbiBMUzEwMjFBIGFuZCB0aGUgRkVDXFxuIDEwMzpcXHRcXHQgIG9uIHRoZSA4NTQwLlxcbiAxMDQ6XFx0XFxuIDEwNTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWdcXFwiXFxuIDEwNjpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnXFxcIlxcbiAxMDc6XFx0c291cmNlIFxcXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZ1xcXCJcXG4gMTA4OlxcdFxcbiAxMDk6XFx0ZW5kaWYgIyBORVRfVkVORE9SX0ZSRUVTQ0FMRVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQwMzo1NDo1MS40OTU0MDM3NDlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzgyNjc2NTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgU3l6a2FsbGVyIFRlc3RhYmlsaXR5IG9mIFRoaXMgRHJpdmVyIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgY2hhbmdlIGRlcGVuZHMgb24gYEhBU19ETUFgIGFuZCB0YXJnZXRzIHNwZWNpZmljIEZyZWVzY2FsZSBQb3dlclBDIGFuZCBBUk0gU29DczogTVBDODN4eCwgTVBDODV4eCwgTVBDODZ4eCwgYW5kIExTMTAyMUEuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgYmUgdGVzdGVkIHVzaW5nIHN5emthbGxlcj8gTm93LCBzeXprYWxsZXIgaXMgdXN1YWxseSBzZXQgdXAgZm9yIHg4Nl82NCwgYXJtNjQsIGFuZCByaXNjdiwgc28gdGFyZ2V0aW5nIHRoZXNlIHNwZWNpZmljIGFyY2hpdGVjdHVyZXMgZGlyZWN0bHkgaXMgdGhlIGZpcnN0IGNvbnNpZGVyYXRpb24uIFRoZSBkcml2ZXIgY2hhbmdlIGl0c2VsZiBpcyByZWxhdGl2ZWx5IGNvbnRhaW5lZDogaXQncyBzd2FwcGluZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHdpdGggYG9mX2lycV9nZXRgIHdpdGhpbiB0aGUgZGV2aWNlIHByb2JlIGZ1bmN0aW9uLCBgZ2Zhcl9wYXJzZV9ncm91cGAuXG5cblRoaXMgcG9pbnRzIHRvIGEgZGV2aWNlIHRyZWUgcGFyc2luZyBmdW5jdGlvbiwgYW5kIHRoYXQncyBrZXkuIFVubGVzcyBhIGRldmljZSB0cmVlIHNwZWNpZmljYWxseSBpbmNsdWRlcyB0aGlzIGRldmljZSwgdGhlIGRyaXZlciBsaWtlbHkgd29uJ3QgZXZlbiBiZSBwcm9iZWQuIEFuZCB3aGlsZSBzeXprYWxsZXIgZG9lcyAqc29tZSogZGV2aWNlIHRyZWUgZnV6emluZywgaXQncyB0eXBpY2FsbHkgZm9yIGdlbmVyaWMgc3Vic3lzdGVtcyBvciBzcGVjaWZpYyB2aXJ0dWFsIGRldmljZXMsIG9yIHdoZW4gdGhlcmUncyBhIGdvb2Qgd2F5IHRvIGluamVjdCBEVCBub2Rlcy4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IERUIGZ1enppbmcgaXMgbm90IHZlcnkgZXh0ZW5zaXZlLCBhbmQgSSBkb24ndCBzZWUgaG93IHRoaXMgc3BlY2lmaWMgRnJlZXNjYWxlIEV0aGVybmV0IGNvbnRyb2xsZXIgd291bGQgYmUgZWFzaWx5IHRhcmdldGVkIGluIHRoYXQgd2F5LiBTeXprYWxsZXIncyBEVCBmdXp6aW5nIGZlZWxzIHZlcnkgbGltaXRlZC5cblxuVGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIHByb2JlIGZ1bmN0aW9uIG1ha2VzIG1lIGZ1cnRoZXIgbGVhbiB0b3dhcmRzIGl0IGJlaW5nIGRpZmZpY3VsdCB0byBmdXp6IGVmZmVjdGl2ZWx5LiBHaXZlbiB0aGlzIGlzIGEgZHJpdmVyIHByb2JlIHJvdXRpbmUgZm9yIGEgcGFydGljdWxhciBGcmVlc2NhbGUgRXRoZXJuZXQgY29udHJvbGxlciwgaXQgbWlnaHQgYmUgbW9yZSB0cm91YmxlIHRoYW4gaXQncyB3b3J0aCB0byB0cnkgYW5kIGxldmVyYWdlIHN5emthbGxlci5cblxuVWx0aW1hdGVseSwgSSdsbCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjb2RlIGlzIGV2ZW4gcmVhY2hhYmxlIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IG15IGluaXRpYWwgaW5jbGluYXRpb24gaXMgdGhhdCBzeXprYWxsZXIgaXMgbm90IGEgcHJhY3RpY2FsIHRlc3RpbmcgcGF0aCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjc4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NTcuODc4MDgzMzUyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MzUyNzI3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJnZmFyX3BhcnNlX2dyb3VwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYz00OTE9c3RhdGljIHZvaWQgZW5hYmxlX25hcGkoc3RydWN0IGdmYXJfcHJpdmF0ZSAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM6NTAxOnN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMtNTAyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgZ2Zhcl9wcml2YXRlICpwcml2LCBjb25zdCBjaGFyICptb2RlbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM9NjE2PXN0YXRpYyBpbnQgZ2Zhcl9vZl9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTcxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jOjcxNDpcXHRcXHRcXHRlcnIgPSBnZmFyX3BhcnNlX2dyb3VwKGNoaWxkLCBwcml2LCBtb2RlbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MTUtXFx0XFx0XFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MjAtXFx0fSBlbHNlIHsgLyogU1FfU0dfTU9ERSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM6NzIxOlxcdFxcdGVyciA9IGdmYXJfcGFyc2VfZ3JvdXAobnAsIHByaXYsIG1vZGVsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTcyMi1cXHRcXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQwMzo1NDo1OC4yNDE2MTYyMTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NDA5NTE2NzQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQ6IE5vdCBXb3J0aCBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGZyYW5rbHksIGl0J3MgYSBiaXQgb2YgYSBub24tc3RhcnRlciBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gSXQncyB0cmlnZ2VyZWQgd2l0aGluIGBnZmFyX29mX2luaXRgLCB3aGljaCBpdHNlbGYgZ2V0cyBjYWxsZWQgYnkgdGhlIHBsYXRmb3JtIGRyaXZlcidzIHByb2JlIGZ1bmN0aW9uLiBUaGlzIGlzIGFsbCBjb250aW5nZW50IG9uIGEgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSDigJMgXCJmc2wsZXRzZWMyXCIsIFwiZnNsLGdpYW5mYXJcIiwgZXRjLiDigJMgYmVpbmcgcHJlc2VudC4gSW4gb3RoZXIgd29yZHMsIHlvdSdyZSBub3QgZ29pbmcgdG8gaGl0IHRoaXMgaW4geW91ciBhdmVyYWdlIHZpcnR1YWxpemVkIHNldHVwIHdpdGhvdXQgYSBjdXN0b20gZGV2aWNlIHRyZWUsIGFuZCB0aG9zZSBhcmVuJ3QgZXhhY3RseSB0aGUgbm9ybS5cblxuRXZlbiBpZiB5b3UgKmRpZCogbWFuYWdlIHRvIHdyYW5nbGUgdGhlIHJpZ2h0IGVudmlyb25tZW50LCB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlIGlzIGluY3JlZGlibHkgbWlub3IuIFdlJ3JlIHRhbGtpbmcgYSBzdHJhaWdodC11cCByZXBsYWNlbWVudCBvZiBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHdpdGggYG9mX2lycV9nZXRgIGFuZCBhIHR3ZWFrIHRvIHRoZSBlcnJvciBoYW5kbGluZy4gVGhpcyBpcyBhIHZlcnkgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIElSUSBmZXRjaGluZywgYSBwdXJlbHkgZnVuY3Rpb25hbCBjaGFuZ2UuIE5vdGhpbmcgaGVyZSBzdWdnZXN0cyBhbnkgcmVhbCBhdHRhY2sgc3VyZmFjZSwgb3IgYW55dGhpbmcgdGhhdCB3b3VsZCBiZSBwYXJ0aWN1bGFybHkgc2Vuc2l0aXZlIHRvIGZ1enppbmcuXG5cbk15IHJlYXNvbmluZz8gVGhlIHBhdGNoIGlzIGV4Y2x1c2l2ZWx5IG1vZGlmeWluZyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlcidzIHByb2JlIG9wZXJhdGlvbi4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgc28gc3RhbmRhcmQgdmlydHVhbGl6YXRpb24gaXMgYSBub24tc3RhcnRlciB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCB3aGljaCBpcyBhIG5pY2hlIHNjZW5hcmlvLiBNb3Jlb3ZlciwgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzdHJhaWdodGZvcndhcmQgQVBJIHVwZGF0ZSByZWxhdGVkIHRvIHJldHJpZXZpbmcgSVJRcy4gVGhlcmVmb3JlLCBJJ20gY29uZmlkZW50IGluIGNhbGxpbmcgdGhpcyBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBObyBmdXp6aW5nIG5lZWRlZCBoZXJlLCBtb3ZlIG9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzEyLCJPdXRwdXRUb2tlbnMiOjk4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDAzOjU1OjA0LjY1MTEzNTQ2NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3NjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvbc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-24 03:35:50 +0000 UTC FinishedAt: 2026-06-24 03:55:05 +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+CgkJCTx0ZD4yMDI2LzA2LzI0IDAzOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjYTMyM2JjOWRmNTA3N2ViNWNhOGY2ODc3NmI1YTc4YzU5NTM2ZjFjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMDM6NTQ6NDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcbmluZGV4IDMyNzFkZTU4NDRmODRiLi4xN2EwZDA3ODdlZDIwMCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcbkBAIC01MTQsMTUgJiM0Mzs1MTQsMTUgQEAgc3RhdGljIGludCBnZmFyX3BhcnNlX2dyb3VwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsXG4gXHRpZiAoIWdycC1cdTAwM2VyZWdzKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbi1cdGdmYXJfaXJxKGdycCwgVFgpLVx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAwKTtcbiYjNDM7XHRnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAwKTtcbiBcbiBcdC8qIElmIHdlIGFyZW4mIzM5O3QgdGhlIEZFQyB3ZSBoYXZlIG11bHRpcGxlIGludGVycnVwdHMgKi9cbiBcdGlmIChtb2RlbCBcdTAwMjZcdTAwMjYgc3RyY2FzZWNtcChtb2RlbCwgXCYjMzQ7RkVDXCYjMzQ7KSkge1xuLVx0XHRnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMSk7XG4tXHRcdGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTtcbi1cdFx0aWYgKCFnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEpXG4mIzQzO1x0XHRnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAxKTtcbiYjNDM7XHRcdGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDIpO1xuJiM0MztcdFx0aWYgKGdmYXJfaXJxKGdycCwgVFgpLVx1MDAzZWlycSBcdTAwM2MgMCB8fFxuJiM0MztcdFx0ICAgIGdmYXJfaXJxKGdycCwgUlgpLVx1MDAzZWlycSBcdTAwM2MgMCB8fFxuJiM0MztcdFx0ICAgIGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSBcdTAwM2MgMClcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaFxuaW5kZXggNjhiNTlkMzIwMmUzZGQuLmM2ZjFjMGI2MjI5ZWFiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaFxuQEAgLTEwNzQsNyAmIzQzOzEwNzQsNyBAQCBlbnVtIGdmYXJfaXJxaW5mb19pZCB7XG4gfTtcbiBcbiBzdHJ1Y3QgZ2Zhcl9pcnFpbmZvIHtcbi1cdHVuc2lnbmVkIGludCBpcnE7XG4mIzQzO1x0aW50IGlycTtcbiBcdGNoYXIgbmFtZVtHRkFSX0lOVF9OQU1FX01BWF07XG4gfTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAwMzo1NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciBkdXJpbmcgcHJvYmUuIFRoaXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NCBRRU1VIG9yIEdDRSkgd2l0aG91dCBhIGN1c3RvbSBkZXZpY2UgdHJlZSwgYW5kIHRoZSBjaGFuZ2UgaXRzZWxmIGlzIGEgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIGZldGNoaW5nIElSUXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjYTMyM2JjOWRmNTA3N2ViNWNhOGY2ODc3NmI1YTc4YzU5NTM2ZjFjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdW4gMjQgMDM6NTQ6NDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYwppbmRleCAzMjcxZGU1ODQ0Zjg0Yi4uMTdhMGQwNzg3ZWQyMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYwpAQCAtNTE0LDE1ICYjNDM7NTE0LDE1IEBAIHN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCWlmICghZ3JwLSZndDtyZWdzKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWdmYXJfaXJxKGdycCwgVFgpLSZndDtpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMCk7CiYjNDM7CWdmYXJfaXJxKGdycCwgVFgpLSZndDtpcnEgPSBvZl9pcnFfZ2V0KG5wLCAwKTsKIAogCS8qIElmIHdlIGFyZW4mIzM5O3QgdGhlIEZFQyB3ZSBoYXZlIG11bHRpcGxlIGludGVycnVwdHMgKi8KIAlpZiAobW9kZWwgJmFtcDsmYW1wOyBzdHJjYXNlY21wKG1vZGVsLCAmIzM0O0ZFQyYjMzQ7KSkgewotCQlnZmFyX2lycShncnAsIFJYKS0mZ3Q7aXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDEpOwotCQlnZmFyX2lycShncnAsIEVSKS0mZ3Q7aXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDIpOwotCQlpZiAoIWdmYXJfaXJxKGdycCwgVFgpLSZndDtpcnEgfHwKLQkJICAgICFnZmFyX2lycShncnAsIFJYKS0mZ3Q7aXJxIHx8Ci0JCSAgICAhZ2Zhcl9pcnEoZ3JwLCBFUiktJmd0O2lycSkKJiM0MzsJCWdmYXJfaXJxKGdycCwgUlgpLSZndDtpcnEgPSBvZl9pcnFfZ2V0KG5wLCAxKTsKJiM0MzsJCWdmYXJfaXJxKGdycCwgRVIpLSZndDtpcnEgPSBvZl9pcnFfZ2V0KG5wLCAyKTsKJiM0MzsJCWlmIChnZmFyX2lycShncnAsIFRYKS0mZ3Q7aXJxICZsdDsgMCB8fAomIzQzOwkJICAgIGdmYXJfaXJxKGdycCwgUlgpLSZndDtpcnEgJmx0OyAwIHx8CiYjNDM7CQkgICAgZ2Zhcl9pcnEoZ3JwLCBFUiktJmd0O2lycSAmbHQ7IDApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oCmluZGV4IDY4YjU5ZDMyMDJlM2RkLi5jNmYxYzBiNjIyOWVhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oCkBAIC0xMDc0LDcgJiM0MzsxMDc0LDcgQEAgZW51bSBnZmFyX2lycWluZm9faWQgewogfTsKIAogc3RydWN0IGdmYXJfaXJxaW5mbyB7Ci0JdW5zaWduZWQgaW50IGlycTsKJiM0MzsJaW50IGlycTsKIAljaGFyIG5hbWVbR0ZBUl9JTlRfTkFNRV9NQVhdOwogfTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAwMzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzExCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaCBmb3IgR2lhbmZhciBFdGhlcm5ldCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIHRvdWNoaW5nIHRoZSBGcmVlc2NhbGUgR2lhbmZhciBFdGhlcm5ldCBkcml2ZXIgZmlsZXM6IGBnaWFuZmFyLmNgIGFuZCBgZ2lhbmZhci5oYC4gVGhlIGNoYW5nZXMgYXJlIGZvY3VzZWQgb24gdGhlIGludGVycnVwdCBoYW5kbGluZywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGdmYXJfcGFyc2VfZ3JvdXBgIGZ1bmN0aW9uLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIHRyYW5zaXRpb25pbmcgZnJvbSB1c2luZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHRvIGBvZl9pcnFfZ2V0YCwgd2hpY2ggaXMgYSBjb21tb24gYW5kIHVzdWFsbHkgbW9yZSBtb2Rlcm4gYXBwcm9hY2ggZm9yIHJldHJpZXZpbmcgaW50ZXJydXB0IG51bWJlcnMgZnJvbSBkZXZpY2UgdHJlZSBkYXRhLiBUaGV5JiMzOTtyZSBhbHNvIHVwZGF0aW5nIHRoZSBgaXJxYCBtZW1iZXIgaW4gdGhlIGBnZmFyX2lycWluZm9gIHN0cnVjdCB0byBiZSBhIHNpZ25lZCBpbnRlZ2VyIChgaW50YCkgaW5zdGVhZCBvZiBhbiB1bnNpZ25lZCBvbmUgKGB1bnNpZ25lZCBpbnRgKS4gQW5kIGZpbmFsbHksIHRoZSBlcnJvciBjaGVja2luZyBpcyBiZWluZyB1cGRhdGVkIGZyb20gYCFpcnFgIHRvIGBpcnEgJmx0OyAwYCwgcmVmbGVjdGluZyB0aGUgY2hhbmdlIHRvIGEgc2lnbmVkIGludGVnZXIgd2hlcmUgYSBuZWdhdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IHdoZXJlIGRvZXMgdGhpcyBkcml2ZXIgZXZlbiAqbWF0dGVyKj8gVGhpcyBpcyBhIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciwgc28gaXQmIzM5O3MgdGFsa2luZyBhYm91dCBoYXJkd2FyZSBjb250cm9sbGVycyBsaWtlIGVUU0VDLCBUU0VDLCBhbmQgRkVDLCB0eXBpY2FsbHkgZm91bmQgb24gUG93ZXJQQyBhbmQgY2VydGFpbiBBUk0gU29Dcy4gSW4gbXkgZXhwZXJpZW5jZSwgdGhlc2UgY29udHJvbGxlcnMgYXJlIGhpZ2hseSB1bmxpa2VseSB0byBiZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCB4ODYgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIHVubGVzcyBzcGVjaWZpY2FsbHkgY29uZmlndXJlZCBmb3IgaXQuIFNvLCBob3cgY2FuIEkgZXZlbiB0ZXN0IHRoaXM/CgpXYWl0Li4uIEkgcmVtZW1iZXIgc29tZXRoaW5nIGFib3V0IFFFTVUgaGF2aW5nIGFuIGBlVFNFQ2AgZGV2aWNlIGZvciBQb3dlclBDLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBlNTAwIGNvcmUuIElzIEdpYW5mYXIgZW11bGF0ZWQgaW4gUUVNVT8gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMgYSByZWFjaGFibGUgdGFyZ2V0LiBMZXQmIzM5O3Mgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgR2lhbmZhciBhbmQgc2VlIGlmIHRoZXJlJiMzOTtzIGFueSByZWxldmFudCBzdXBwb3J0IG9yIGNvbmZpZ3VyYXRpb24gdG8gZW5hYmxlIHRoZSBHaWFuZmFyIGhhcmR3YXJlLiBUaGF0JiMzOTtzIHRoZSBmaXJzdCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDAzOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBHSUFORkFSJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc9ODk9Y29uZmlnIFVHRVRIX1RYX09OX0RFTUFORFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc6OTM6Y29uZmlnIEdJQU5GQVJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTk0LVx0dHJpc3RhdGUgXCYjMzQ7R2lhbmZhciBFdGhlcm5ldFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTkKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipHSUFORkFSJiMzOTtzIERlcGVuZGVuY2llczogQSBRdWljayBNZW50YWwgQXVkaXQqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gcXVpY2tseSBtYXAgb3V0IHRoZSBkZXBlbmRlbmN5IGdyYXBoIGZvciBHSUFORkFSLiBOb3QganVzdCB0aGUgb2J2aW91cyBpbXBvcnRzLCBidXQgdGhlICpyZWFsbHkqIGNydWNpYWwgb25lcyB0aGF0IHVuZGVycGluIGl0cyBmdW5jdGlvbmFsaXR5LiBJJiMzOTttIHRoaW5raW5nIGJleW9uZCB0aGUgZGlyZWN0IGBpbXBvcnRgIHN0YXRlbWVudHM7IEkgbmVlZCB0byBjb25zaWRlciBhbnkgZXh0ZXJuYWwgbGlicmFyaWVzIGl0IG1pZ2h0IGxldmVyYWdlLCBoaWRkZW4gZnJhbWV3b3Jrcywgb3IgZXZlbiBzdWJ0bGUgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIGludGVybmFsIGNvbXBvbmVudHMuIFdoZXJlIGRvZXMgaXQgbGVhbiBvbiBleHRlcm5hbCBzZXJ2aWNlcywgYW5kIHdoYXQmIzM5O3MgdGhlIHZlcnNpb24gbG9jay1kb3duIHNpdHVhdGlvbiB0aGVyZT8gQW55IGNyaXRpY2FsIGxvdy1sZXZlbCBsaWJyYXJpZXMgaW4gQyBvciBSdXN0IHRoYXQgY291bGQgYml0ZSB1cyBkb3duIHRoZSBsaW5lPyBUaGlzIGlzbuKAmXQganVzdCBhYm91dCBsaXN0aW5nIGByZXF1aXJlbWVudHMudHh0YDsgaXQmIzM5O3MgYWJvdXQgdW5kZXJzdGFuZGluZyB0aGUgYXJjaGl0ZWN0dXJhbCBpbnRlZ3JpdHkgb2YgR0lBTkZBUiBhbmQgd2hlcmUgaXTigJlzIHZ1bG5lcmFibGUgdG8gY2hhbmdlLCBvciB3aGVyZSBpdHMgb3duIG1vZGlmaWNhdGlvbnMgbWlnaHQgcmlwcGxlIG91dHdhcmRzLiBHb3R0YSBpZGVudGlmeSB0aG9zZSBjcml0aWNhbCBwYXRocyB3aGVyZSBhIGJyZWFraW5nIGNoYW5nZSBpbiBhIGRvd25zdHJlYW0gbGlicmFyeSB3b3VsZCBpbW1lZGlhdGVseSBjcmlwcGxlIGl0LiBEZWVwIGRpdmUgdGltZSEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogOTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA5MDpcdFx0Ym9vbCBcJiMzNDtUcmFuc21pdCBvbiBEZW1hbmQgc3VwcG9ydFwmIzM0O1xuICA5MTpcdFx0ZGVwZW5kcyBvbiBVQ0NfR0VUSFxuICA5MjpcdFxuICA5MzpcdGNvbmZpZyBHSUFORkFSXG4gIDk0Olx0XHR0cmlzdGF0ZSBcJiMzNDtHaWFuZmFyIEV0aGVybmV0XCYjMzQ7XG4gIDk1Olx0XHRkZXBlbmRzIG9uIEhBU19ETUFcbiAgOTY6XHRcdHNlbGVjdCBGU0xfUFFfTURJT1xuICA5NzpcdFx0c2VsZWN0IFBIWUxJQlxuICA5ODpcdFx0c2VsZWN0IEZJWEVEX1BIWVxuICA5OTpcdFx0c2VsZWN0IENSQzMyXG4gMTAwOlx0XHRoZWxwXG4gMTAxOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBHaWdhYml0IFRTRUMgb24gdGhlIE1QQzgzeHgsIE1QQzg1eHgsXG4gMTAyOlx0XHQgIGFuZCBNUEM4Nnh4IGZhbWlseSBvZiBjaGlwcywgdGhlIGVUU0VDIG9uIExTMTAyMUEgYW5kIHRoZSBGRUNcbiAxMDM6XHRcdCAgb24gdGhlIDg1NDAuXG4gMTA0Olx0XG4gMTA1Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWdcJiMzNDtcbiAxMDY6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWdcJiMzNDtcbiAxMDc6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWdcJiMzNDtcbiAxMDg6XHRcbiAxMDk6XHRlbmRpZiAjIE5FVF9WRU5ET1JfRlJFRVNDQUxFXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY3OAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDI1NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIFN5emthbGxlciBUZXN0YWJpbGl0eSBvZiBUaGlzIERyaXZlciBDaGFuZ2UqKgoKT2theSwgc28gdGhpcyBjaGFuZ2UgZGVwZW5kcyBvbiBgSEFTX0RNQWAgYW5kIHRhcmdldHMgc3BlY2lmaWMgRnJlZXNjYWxlIFBvd2VyUEMgYW5kIEFSTSBTb0NzOiBNUEM4M3h4LCBNUEM4NXh4LCBNUEM4Nnh4LCBhbmQgTFMxMDIxQS4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBiZSB0ZXN0ZWQgdXNpbmcgc3l6a2FsbGVyPyBOb3csIHN5emthbGxlciBpcyB1c3VhbGx5IHNldCB1cCBmb3IgeDg2XzY0LCBhcm02NCwgYW5kIHJpc2N2LCBzbyB0YXJnZXRpbmcgdGhlc2Ugc3BlY2lmaWMgYXJjaGl0ZWN0dXJlcyBkaXJlY3RseSBpcyB0aGUgZmlyc3QgY29uc2lkZXJhdGlvbi4gVGhlIGRyaXZlciBjaGFuZ2UgaXRzZWxmIGlzIHJlbGF0aXZlbHkgY29udGFpbmVkOiBpdCYjMzk7cyBzd2FwcGluZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHdpdGggYG9mX2lycV9nZXRgIHdpdGhpbiB0aGUgZGV2aWNlIHByb2JlIGZ1bmN0aW9uLCBgZ2Zhcl9wYXJzZV9ncm91cGAuCgpUaGlzIHBvaW50cyB0byBhIGRldmljZSB0cmVlIHBhcnNpbmcgZnVuY3Rpb24sIGFuZCB0aGF0JiMzOTtzIGtleS4gVW5sZXNzIGEgZGV2aWNlIHRyZWUgc3BlY2lmaWNhbGx5IGluY2x1ZGVzIHRoaXMgZGV2aWNlLCB0aGUgZHJpdmVyIGxpa2VseSB3b24mIzM5O3QgZXZlbiBiZSBwcm9iZWQuIEFuZCB3aGlsZSBzeXprYWxsZXIgZG9lcyAqc29tZSogZGV2aWNlIHRyZWUgZnV6emluZywgaXQmIzM5O3MgdHlwaWNhbGx5IGZvciBnZW5lcmljIHN1YnN5c3RlbXMgb3Igc3BlY2lmaWMgdmlydHVhbCBkZXZpY2VzLCBvciB3aGVuIHRoZXJlJiMzOTtzIGEgZ29vZCB3YXkgdG8gaW5qZWN0IERUIG5vZGVzLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgRFQgZnV6emluZyBpcyBub3QgdmVyeSBleHRlbnNpdmUsIGFuZCBJIGRvbiYjMzk7dCBzZWUgaG93IHRoaXMgc3BlY2lmaWMgRnJlZXNjYWxlIEV0aGVybmV0IGNvbnRyb2xsZXIgd291bGQgYmUgZWFzaWx5IHRhcmdldGVkIGluIHRoYXQgd2F5LiBTeXprYWxsZXImIzM5O3MgRFQgZnV6emluZyBmZWVscyB2ZXJ5IGxpbWl0ZWQuCgpUaGUgZmFjdCB0aGF0IHRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgcHJvYmUgZnVuY3Rpb24gbWFrZXMgbWUgZnVydGhlciBsZWFuIHRvd2FyZHMgaXQgYmVpbmcgZGlmZmljdWx0IHRvIGZ1enogZWZmZWN0aXZlbHkuIEdpdmVuIHRoaXMgaXMgYSBkcml2ZXIgcHJvYmUgcm91dGluZSBmb3IgYSBwYXJ0aWN1bGFyIEZyZWVzY2FsZSBFdGhlcm5ldCBjb250cm9sbGVyLCBpdCBtaWdodCBiZSBtb3JlIHRyb3VibGUgdGhhbiBpdCYjMzk7cyB3b3J0aCB0byB0cnkgYW5kIGxldmVyYWdlIHN5emthbGxlci4KClVsdGltYXRlbHksIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGNvZGUgaXMgZXZlbiByZWFjaGFibGUgaW4gdGhlIGZpcnN0IHBsYWNlLCBidXQgbXkgaW5pdGlhbCBpbmNsaW5hdGlvbiBpcyB0aGF0IHN5emthbGxlciBpcyBub3QgYSBwcmFjdGljYWwgdGVzdGluZyBwYXRoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Z2Zhcl9wYXJzZV9ncm91cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYz00OTE9c3RhdGljIHZvaWQgZW5hYmxlX25hcGkoc3RydWN0IGdmYXJfcHJpdmF0ZSAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTUwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM6NTAxOnN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy01MDItXHRcdFx0ICAgIHN0cnVjdCBnZmFyX3ByaXZhdGUgKnByaXYsIGNvbnN0IGNoYXIgKm1vZGVsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM9NjE2PXN0YXRpYyBpbnQgZ2Zhcl9vZl9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jOjcxNDpcdFx0XHRlcnIgPSBnZmFyX3BhcnNlX2dyb3VwKGNoaWxkLCBwcml2LCBtb2RlbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTcxNS1cdFx0XHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MjAtXHR9IGVsc2UgeyAvKiBTUV9TR19NT0RFICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jOjcyMTpcdFx0ZXJyID0gZ2Zhcl9wYXJzZV9ncm91cChucCwgcHJpdiwgbW9kZWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MjItXHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcxMgoJCQkJCQkJb3V0cHV0OiA5OAoJCQkJCQkJdGhvdWdodHM6IDI0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50OiBOb3QgV29ydGggRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGZyYW5rbHksIGl0JiMzOTtzIGEgYml0IG9mIGEgbm9uLXN0YXJ0ZXIgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIEl0JiMzOTtzIHRyaWdnZXJlZCB3aXRoaW4gYGdmYXJfb2ZfaW5pdGAsIHdoaWNoIGl0c2VsZiBnZXRzIGNhbGxlZCBieSB0aGUgcGxhdGZvcm0gZHJpdmVyJiMzOTtzIHByb2JlIGZ1bmN0aW9uLiBUaGlzIGlzIGFsbCBjb250aW5nZW50IG9uIGEgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSDigJMgJiMzNDtmc2wsZXRzZWMyJiMzNDssICYjMzQ7ZnNsLGdpYW5mYXImIzM0OywgZXRjLiDigJMgYmVpbmcgcHJlc2VudC4gSW4gb3RoZXIgd29yZHMsIHlvdSYjMzk7cmUgbm90IGdvaW5nIHRvIGhpdCB0aGlzIGluIHlvdXIgYXZlcmFnZSB2aXJ0dWFsaXplZCBzZXR1cCB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhvc2UgYXJlbiYjMzk7dCBleGFjdGx5IHRoZSBub3JtLgoKRXZlbiBpZiB5b3UgKmRpZCogbWFuYWdlIHRvIHdyYW5nbGUgdGhlIHJpZ2h0IGVudmlyb25tZW50LCB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlIGlzIGluY3JlZGlibHkgbWlub3IuIFdlJiMzOTtyZSB0YWxraW5nIGEgc3RyYWlnaHQtdXAgcmVwbGFjZW1lbnQgb2YgYGlycV9vZl9wYXJzZV9hbmRfbWFwYCB3aXRoIGBvZl9pcnFfZ2V0YCBhbmQgYSB0d2VhayB0byB0aGUgZXJyb3IgaGFuZGxpbmcuIFRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBBUEkgdXBkYXRlIGZvciBJUlEgZmV0Y2hpbmcsIGEgcHVyZWx5IGZ1bmN0aW9uYWwgY2hhbmdlLiBOb3RoaW5nIGhlcmUgc3VnZ2VzdHMgYW55IHJlYWwgYXR0YWNrIHN1cmZhY2UsIG9yIGFueXRoaW5nIHRoYXQgd291bGQgYmUgcGFydGljdWxhcmx5IHNlbnNpdGl2ZSB0byBmdXp6aW5nLgoKTXkgcmVhc29uaW5nPyBUaGUgcGF0Y2ggaXMgZXhjbHVzaXZlbHkgbW9kaWZ5aW5nIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyJiMzOTtzIHByb2JlIG9wZXJhdGlvbi4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgc28gc3RhbmRhcmQgdmlydHVhbGl6YXRpb24gaXMgYSBub24tc3RhcnRlciB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCB3aGljaCBpcyBhIG5pY2hlIHNjZW5hcmlvLiBNb3Jlb3ZlciwgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzdHJhaWdodGZvcndhcmQgQVBJIHVwZGF0ZSByZWxhdGVkIHRvIHJldHJpZXZpbmcgSVJRcy4gVGhlcmVmb3JlLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjYWxsaW5nIHRoaXMgYFdvcnRoRnV6emluZyA9IGZhbHNlYC4gTm8gZnV6emluZyBuZWVkZWQgaGVyZSwgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMDM6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciBkdXJpbmcgcHJvYmUuIFRoaXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NCBRRU1VIG9yIEdDRSkgd2l0aG91dCBhIGN1c3RvbSBkZXZpY2UgdHJlZSwgYW5kIHRoZSBjaGFuZ2UgaXRzZWxmIGlzIGEgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIGZldGNoaW5nIElSUXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciBkdXJpbmcgcHJvYmUuIFRoaXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NCBRRU1VIG9yIEdDRSkgd2l0aG91dCBhIGN1c3RvbSBkZXZpY2UgdHJlZSwgYW5kIHRoZSBjaGFuZ2UgaXRzZWxmIGlzIGEgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIGZldGNoaW5nIElSUXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDEuNDI4NzI2NDYyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMyMjI0NDQ5MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDAzOjU0OjQxLjQyODczMzczMloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQwMzU1MjY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgY2EzMjNiYzlkZjUwNzdlYjVjYThmNjg3NzZiNWE3OGM1OTUzNmYxY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1biAyNCAwMzo1NDo0MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xcbmluZGV4IDMyNzFkZTU4NDRmODRiLi4xN2EwZDA3ODdlZDIwMCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xcbkBAIC01MTQsMTUgKzUxNCwxNSBAQCBzdGF0aWMgaW50IGdmYXJfcGFyc2VfZ3JvdXAoc3RydWN0IGRldmljZV9ub2RlICpucCxcXG4gXFx0aWYgKCFncnAtXFx1MDAzZXJlZ3MpXFxuIFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiBcXG4tXFx0Z2Zhcl9pcnEoZ3JwLCBUWCktXFx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAwKTtcXG4rXFx0Z2Zhcl9pcnEoZ3JwLCBUWCktXFx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDApO1xcbiBcXG4gXFx0LyogSWYgd2UgYXJlbid0IHRoZSBGRUMgd2UgaGF2ZSBtdWx0aXBsZSBpbnRlcnJ1cHRzICovXFxuIFxcdGlmIChtb2RlbCBcXHUwMDI2XFx1MDAyNiBzdHJjYXNlY21wKG1vZGVsLCBcXFwiRkVDXFxcIikpIHtcXG4tXFx0XFx0Z2Zhcl9pcnEoZ3JwLCBSWCktXFx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAxKTtcXG4tXFx0XFx0Z2Zhcl9pcnEoZ3JwLCBFUiktXFx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTtcXG4tXFx0XFx0aWYgKCFnZmFyX2lycShncnAsIFRYKS1cXHUwMDNlaXJxIHx8XFxuLVxcdFxcdCAgICAhZ2Zhcl9pcnEoZ3JwLCBSWCktXFx1MDAzZWlycSB8fFxcbi1cXHRcXHQgICAgIWdmYXJfaXJxKGdycCwgRVIpLVxcdTAwM2VpcnEpXFxuK1xcdFxcdGdmYXJfaXJxKGdycCwgUlgpLVxcdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAxKTtcXG4rXFx0XFx0Z2Zhcl9pcnEoZ3JwLCBFUiktXFx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDIpO1xcbitcXHRcXHRpZiAoZ2Zhcl9pcnEoZ3JwLCBUWCktXFx1MDAzZWlycSBcXHUwMDNjIDAgfHxcXG4rXFx0XFx0ICAgIGdmYXJfaXJxKGdycCwgUlgpLVxcdTAwM2VpcnEgXFx1MDAzYyAwIHx8XFxuK1xcdFxcdCAgICBnZmFyX2lycShncnAsIEVSKS1cXHUwMDNlaXJxIFxcdTAwM2MgMClcXG4gXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oXFxuaW5kZXggNjhiNTlkMzIwMmUzZGQuLmM2ZjFjMGI2MjI5ZWFiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5oXFxuQEAgLTEwNzQsNyArMTA3NCw3IEBAIGVudW0gZ2Zhcl9pcnFpbmZvX2lkIHtcXG4gfTtcXG4gXFxuIHN0cnVjdCBnZmFyX2lycWluZm8ge1xcbi1cXHR1bnNpZ25lZCBpbnQgaXJxO1xcbitcXHRpbnQgaXJxO1xcbiBcXHRjaGFyIG5hbWVbR0ZBUl9JTlRfTkFNRV9NQVhdO1xcbiB9O1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDEuOTcwNzE0NDU4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMjY4MDQ1MDYyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRldmljZSB0cmVlIHBhcnNpbmcgbG9naWMgZm9yIHRoZSBGcmVlc2NhbGUgR2lhbmZhciBFdGhlcm5ldCBkcml2ZXIgZHVyaW5nIHByb2JlLiBUaGlzIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSB4ODZfNjQgUUVNVSBvciBHQ0UpIHdpdGhvdXQgYSBjdXN0b20gZGV2aWNlIHRyZWUsIGFuZCB0aGUgY2hhbmdlIGl0c2VsZiBpcyBhIHNpbXBsZSBBUEkgdXBkYXRlIGZvciBmZXRjaGluZyBJUlFzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjYTMyM2JjOWRmNTA3N2ViNWNhOGY2ODc3NmI1YTc4YzU5NTM2ZjFjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdW4gMjQgMDM6NTQ6NDAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xuaW5kZXggMzI3MWRlNTg0NGY4NGIuLjE3YTBkMDc4N2VkMjAwIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuY1xuQEAgLTUxNCwxNSArNTE0LDE1IEBAIHN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuIFx0aWYgKCFncnAtXHUwMDNlcmVncylcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMCk7XG4rXHRnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAwKTtcbiBcbiBcdC8qIElmIHdlIGFyZW4ndCB0aGUgRkVDIHdlIGhhdmUgbXVsdGlwbGUgaW50ZXJydXB0cyAqL1xuIFx0aWYgKG1vZGVsIFx1MDAyNlx1MDAyNiBzdHJjYXNlY21wKG1vZGVsLCBcIkZFQ1wiKSkge1xuLVx0XHRnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMSk7XG4tXHRcdGdmYXJfaXJxKGdycCwgRVIpLVx1MDAzZWlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTtcbi1cdFx0aWYgKCFnZmFyX2lycShncnAsIFRYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIFJYKS1cdTAwM2VpcnEgfHxcbi1cdFx0ICAgICFnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEpXG4rXHRcdGdmYXJfaXJxKGdycCwgUlgpLVx1MDAzZWlycSA9IG9mX2lycV9nZXQobnAsIDEpO1xuK1x0XHRnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEgPSBvZl9pcnFfZ2V0KG5wLCAyKTtcbitcdFx0aWYgKGdmYXJfaXJxKGdycCwgVFgpLVx1MDAzZWlycSBcdTAwM2MgMCB8fFxuK1x0XHQgICAgZ2Zhcl9pcnEoZ3JwLCBSWCktXHUwMDNlaXJxIFx1MDAzYyAwIHx8XG4rXHRcdCAgICBnZmFyX2lycShncnAsIEVSKS1cdTAwM2VpcnEgXHUwMDNjIDApXG4gXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcbmluZGV4IDY4YjU5ZDMyMDJlM2RkLi5jNmYxYzBiNjIyOWVhYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmhcbkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBlbnVtIGdmYXJfaXJxaW5mb19pZCB7XG4gfTtcbiBcbiBzdHJ1Y3QgZ2Zhcl9pcnFpbmZvIHtcbi1cdHVuc2lnbmVkIGludCBpcnE7XG4rXHRpbnQgaXJxO1xuIFx0Y2hhciBuYW1lW0dGQVJfSU5UX05BTUVfTUFYXTtcbiB9O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDEuOTcwNzE3NDk4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3MTc5NzM2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEcml2ZXIgUGF0Y2ggZm9yIEdpYW5mYXIgRXRoZXJuZXQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyB0b3VjaGluZyB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGZpbGVzOiBgZ2lhbmZhci5jYCBhbmQgYGdpYW5mYXIuaGAuIFRoZSBjaGFuZ2VzIGFyZSBmb2N1c2VkIG9uIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBnZmFyX3BhcnNlX2dyb3VwYCBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIHRyYW5zaXRpb25pbmcgZnJvbSB1c2luZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHRvIGBvZl9pcnFfZ2V0YCwgd2hpY2ggaXMgYSBjb21tb24gYW5kIHVzdWFsbHkgbW9yZSBtb2Rlcm4gYXBwcm9hY2ggZm9yIHJldHJpZXZpbmcgaW50ZXJydXB0IG51bWJlcnMgZnJvbSBkZXZpY2UgdHJlZSBkYXRhLiBUaGV5J3JlIGFsc28gdXBkYXRpbmcgdGhlIGBpcnFgIG1lbWJlciBpbiB0aGUgYGdmYXJfaXJxaW5mb2Agc3RydWN0IHRvIGJlIGEgc2lnbmVkIGludGVnZXIgKGBpbnRgKSBpbnN0ZWFkIG9mIGFuIHVuc2lnbmVkIG9uZSAoYHVuc2lnbmVkIGludGApLiBBbmQgZmluYWxseSwgdGhlIGVycm9yIGNoZWNraW5nIGlzIGJlaW5nIHVwZGF0ZWQgZnJvbSBgIWlycWAgdG8gYGlycSBcdTAwM2MgMGAsIHJlZmxlY3RpbmcgdGhlIGNoYW5nZSB0byBhIHNpZ25lZCBpbnRlZ2VyIHdoZXJlIGEgbmVnYXRpdmUgdmFsdWUgaW5kaWNhdGVzIGFuIGVycm9yLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IHdoZXJlIGRvZXMgdGhpcyBkcml2ZXIgZXZlbiAqbWF0dGVyKj8gVGhpcyBpcyBhIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlciwgc28gaXQncyB0YWxraW5nIGFib3V0IGhhcmR3YXJlIGNvbnRyb2xsZXJzIGxpa2UgZVRTRUMsIFRTRUMsIGFuZCBGRUMsIHR5cGljYWxseSBmb3VuZCBvbiBQb3dlclBDIGFuZCBjZXJ0YWluIEFSTSBTb0NzLiBJbiBteSBleHBlcmllbmNlLCB0aGVzZSBjb250cm9sbGVycyBhcmUgaGlnaGx5IHVubGlrZWx5IHRvIGJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIHg4NiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSwgdW5sZXNzIHNwZWNpZmljYWxseSBjb25maWd1cmVkIGZvciBpdC4gU28sIGhvdyBjYW4gSSBldmVuIHRlc3QgdGhpcz9cblxuV2FpdC4uLiBJIHJlbWVtYmVyIHNvbWV0aGluZyBhYm91dCBRRU1VIGhhdmluZyBhbiBgZVRTRUNgIGRldmljZSBmb3IgUG93ZXJQQywgc3BlY2lmaWNhbGx5IGZvciB0aGUgZTUwMCBjb3JlLiBJcyBHaWFuZmFyIGVtdWxhdGVkIGluIFFFTVU/IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGlzIGEgcmVhY2hhYmxlIHRhcmdldC4gTGV0J3Mgc3RhcnQgYnkgY2hlY2tpbmcgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgR2lhbmZhciBhbmQgc2VlIGlmIHRoZXJlJ3MgYW55IHJlbGV2YW50IHN1cHBvcnQgb3IgY29uZmlndXJhdGlvbiB0byBlbmFibGUgdGhlIEdpYW5mYXIgaGFyZHdhcmUuIFRoYXQncyB0aGUgZmlyc3Qgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMxMSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDAzOjU0OjQ4LjA0MjUxNzc4OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDAzODcxMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEdJQU5GQVJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc9ODk9Y29uZmlnIFVHRVRIX1RYX09OX0RFTUFORFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWctOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWc6OTM6Y29uZmlnIEdJQU5GQVJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZy05NC1cXHR0cmlzdGF0ZSBcXFwiR2lhbmZhciBFdGhlcm5ldFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NDguMTgyOTExNjM1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxMjQxMDE3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqR0lBTkZBUidzIERlcGVuZGVuY2llczogQSBRdWljayBNZW50YWwgQXVkaXQqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHF1aWNrbHkgbWFwIG91dCB0aGUgZGVwZW5kZW5jeSBncmFwaCBmb3IgR0lBTkZBUi4gTm90IGp1c3QgdGhlIG9idmlvdXMgaW1wb3J0cywgYnV0IHRoZSAqcmVhbGx5KiBjcnVjaWFsIG9uZXMgdGhhdCB1bmRlcnBpbiBpdHMgZnVuY3Rpb25hbGl0eS4gSSdtIHRoaW5raW5nIGJleW9uZCB0aGUgZGlyZWN0IGBpbXBvcnRgIHN0YXRlbWVudHM7IEkgbmVlZCB0byBjb25zaWRlciBhbnkgZXh0ZXJuYWwgbGlicmFyaWVzIGl0IG1pZ2h0IGxldmVyYWdlLCBoaWRkZW4gZnJhbWV3b3Jrcywgb3IgZXZlbiBzdWJ0bGUgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIGludGVybmFsIGNvbXBvbmVudHMuIFdoZXJlIGRvZXMgaXQgbGVhbiBvbiBleHRlcm5hbCBzZXJ2aWNlcywgYW5kIHdoYXQncyB0aGUgdmVyc2lvbiBsb2NrLWRvd24gc2l0dWF0aW9uIHRoZXJlPyBBbnkgY3JpdGljYWwgbG93LWxldmVsIGxpYnJhcmllcyBpbiBDIG9yIFJ1c3QgdGhhdCBjb3VsZCBiaXRlIHVzIGRvd24gdGhlIGxpbmU/IFRoaXMgaXNu4oCZdCBqdXN0IGFib3V0IGxpc3RpbmcgYHJlcXVpcmVtZW50cy50eHRgOyBpdCdzIGFib3V0IHVuZGVyc3RhbmRpbmcgdGhlIGFyY2hpdGVjdHVyYWwgaW50ZWdyaXR5IG9mIEdJQU5GQVIgYW5kIHdoZXJlIGl04oCZcyB2dWxuZXJhYmxlIHRvIGNoYW5nZSwgb3Igd2hlcmUgaXRzIG93biBtb2RpZmljYXRpb25zIG1pZ2h0IHJpcHBsZSBvdXR3YXJkcy4gR290dGEgaWRlbnRpZnkgdGhvc2UgY3JpdGljYWwgcGF0aHMgd2hlcmUgYSBicmVha2luZyBjaGFuZ2UgaW4gYSBkb3duc3RyZWFtIGxpYnJhcnkgd291bGQgaW1tZWRpYXRlbHkgY3JpcHBsZSBpdC4gRGVlcCBkaXZlIHRpbWUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwOTksIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQwMzo1NDo1MS40OTUzMjc0NDlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDEwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA5MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA5MDpcXHRcXHRib29sIFxcXCJUcmFuc21pdCBvbiBEZW1hbmQgc3VwcG9ydFxcXCJcXG4gIDkxOlxcdFxcdGRlcGVuZHMgb24gVUNDX0dFVEhcXG4gIDkyOlxcdFxcbiAgOTM6XFx0Y29uZmlnIEdJQU5GQVJcXG4gIDk0OlxcdFxcdHRyaXN0YXRlIFxcXCJHaWFuZmFyIEV0aGVybmV0XFxcIlxcbiAgOTU6XFx0XFx0ZGVwZW5kcyBvbiBIQVNfRE1BXFxuICA5NjpcXHRcXHRzZWxlY3QgRlNMX1BRX01ESU9cXG4gIDk3OlxcdFxcdHNlbGVjdCBQSFlMSUJcXG4gIDk4OlxcdFxcdHNlbGVjdCBGSVhFRF9QSFlcXG4gIDk5OlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAxMDA6XFx0XFx0aGVscFxcbiAxMDE6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyB0aGUgR2lnYWJpdCBUU0VDIG9uIHRoZSBNUEM4M3h4LCBNUEM4NXh4LFxcbiAxMDI6XFx0XFx0ICBhbmQgTVBDODZ4eCBmYW1pbHkgb2YgY2hpcHMsIHRoZSBlVFNFQyBvbiBMUzEwMjFBIGFuZCB0aGUgRkVDXFxuIDEwMzpcXHRcXHQgIG9uIHRoZSA4NTQwLlxcbiAxMDQ6XFx0XFxuIDEwNTpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWdcXFwiXFxuIDEwNjpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnXFxcIlxcbiAxMDc6XFx0c291cmNlIFxcXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZ1xcXCJcXG4gMTA4OlxcdFxcbiAxMDk6XFx0ZW5kaWYgIyBORVRfVkVORE9SX0ZSRUVTQ0FMRVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQwMzo1NDo1MS40OTU0MDM3NDlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzgyNjc2NTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgU3l6a2FsbGVyIFRlc3RhYmlsaXR5IG9mIFRoaXMgRHJpdmVyIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgY2hhbmdlIGRlcGVuZHMgb24gYEhBU19ETUFgIGFuZCB0YXJnZXRzIHNwZWNpZmljIEZyZWVzY2FsZSBQb3dlclBDIGFuZCBBUk0gU29DczogTVBDODN4eCwgTVBDODV4eCwgTVBDODZ4eCwgYW5kIExTMTAyMUEuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgYmUgdGVzdGVkIHVzaW5nIHN5emthbGxlcj8gTm93LCBzeXprYWxsZXIgaXMgdXN1YWxseSBzZXQgdXAgZm9yIHg4Nl82NCwgYXJtNjQsIGFuZCByaXNjdiwgc28gdGFyZ2V0aW5nIHRoZXNlIHNwZWNpZmljIGFyY2hpdGVjdHVyZXMgZGlyZWN0bHkgaXMgdGhlIGZpcnN0IGNvbnNpZGVyYXRpb24uIFRoZSBkcml2ZXIgY2hhbmdlIGl0c2VsZiBpcyByZWxhdGl2ZWx5IGNvbnRhaW5lZDogaXQncyBzd2FwcGluZyBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHdpdGggYG9mX2lycV9nZXRgIHdpdGhpbiB0aGUgZGV2aWNlIHByb2JlIGZ1bmN0aW9uLCBgZ2Zhcl9wYXJzZV9ncm91cGAuXG5cblRoaXMgcG9pbnRzIHRvIGEgZGV2aWNlIHRyZWUgcGFyc2luZyBmdW5jdGlvbiwgYW5kIHRoYXQncyBrZXkuIFVubGVzcyBhIGRldmljZSB0cmVlIHNwZWNpZmljYWxseSBpbmNsdWRlcyB0aGlzIGRldmljZSwgdGhlIGRyaXZlciBsaWtlbHkgd29uJ3QgZXZlbiBiZSBwcm9iZWQuIEFuZCB3aGlsZSBzeXprYWxsZXIgZG9lcyAqc29tZSogZGV2aWNlIHRyZWUgZnV6emluZywgaXQncyB0eXBpY2FsbHkgZm9yIGdlbmVyaWMgc3Vic3lzdGVtcyBvciBzcGVjaWZpYyB2aXJ0dWFsIGRldmljZXMsIG9yIHdoZW4gdGhlcmUncyBhIGdvb2Qgd2F5IHRvIGluamVjdCBEVCBub2Rlcy4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IERUIGZ1enppbmcgaXMgbm90IHZlcnkgZXh0ZW5zaXZlLCBhbmQgSSBkb24ndCBzZWUgaG93IHRoaXMgc3BlY2lmaWMgRnJlZXNjYWxlIEV0aGVybmV0IGNvbnRyb2xsZXIgd291bGQgYmUgZWFzaWx5IHRhcmdldGVkIGluIHRoYXQgd2F5LiBTeXprYWxsZXIncyBEVCBmdXp6aW5nIGZlZWxzIHZlcnkgbGltaXRlZC5cblxuVGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIHByb2JlIGZ1bmN0aW9uIG1ha2VzIG1lIGZ1cnRoZXIgbGVhbiB0b3dhcmRzIGl0IGJlaW5nIGRpZmZpY3VsdCB0byBmdXp6IGVmZmVjdGl2ZWx5LiBHaXZlbiB0aGlzIGlzIGEgZHJpdmVyIHByb2JlIHJvdXRpbmUgZm9yIGEgcGFydGljdWxhciBGcmVlc2NhbGUgRXRoZXJuZXQgY29udHJvbGxlciwgaXQgbWlnaHQgYmUgbW9yZSB0cm91YmxlIHRoYW4gaXQncyB3b3J0aCB0byB0cnkgYW5kIGxldmVyYWdlIHN5emthbGxlci5cblxuVWx0aW1hdGVseSwgSSdsbCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjb2RlIGlzIGV2ZW4gcmVhY2hhYmxlIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IG15IGluaXRpYWwgaW5jbGluYXRpb24gaXMgdGhhdCBzeXprYWxsZXIgaXMgbm90IGEgcHJhY3RpY2FsIHRlc3RpbmcgcGF0aCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjc4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMDM6NTQ6NTcuODc4MDgzMzUyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MzUyNzI3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJnZmFyX3BhcnNlX2dyb3VwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYz00OTE9c3RhdGljIHZvaWQgZW5hYmxlX25hcGkoc3RydWN0IGdmYXJfcHJpdmF0ZSAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM6NTAxOnN0YXRpYyBpbnQgZ2Zhcl9wYXJzZV9ncm91cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMtNTAyLVxcdFxcdFxcdCAgICBzdHJ1Y3QgZ2Zhcl9wcml2YXRlICpwcml2LCBjb25zdCBjaGFyICptb2RlbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM9NjE2PXN0YXRpYyBpbnQgZ2Zhcl9vZl9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTcxMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jOjcxNDpcXHRcXHRcXHRlcnIgPSBnZmFyX3BhcnNlX2dyb3VwKGNoaWxkLCBwcml2LCBtb2RlbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MTUtXFx0XFx0XFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYy03MjAtXFx0fSBlbHNlIHsgLyogU1FfU0dfTU9ERSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmM6NzIxOlxcdFxcdGVyciA9IGdmYXJfcGFyc2VfZ3JvdXAobnAsIHByaXYsIG1vZGVsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jLTcyMi1cXHRcXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQwMzo1NDo1OC4yNDE2MTYyMTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NDA5NTE2NzQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQ6IE5vdCBXb3J0aCBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGZyYW5rbHksIGl0J3MgYSBiaXQgb2YgYSBub24tc3RhcnRlciBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4gSXQncyB0cmlnZ2VyZWQgd2l0aGluIGBnZmFyX29mX2luaXRgLCB3aGljaCBpdHNlbGYgZ2V0cyBjYWxsZWQgYnkgdGhlIHBsYXRmb3JtIGRyaXZlcidzIHByb2JlIGZ1bmN0aW9uLiBUaGlzIGlzIGFsbCBjb250aW5nZW50IG9uIGEgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSDigJMgXCJmc2wsZXRzZWMyXCIsIFwiZnNsLGdpYW5mYXJcIiwgZXRjLiDigJMgYmVpbmcgcHJlc2VudC4gSW4gb3RoZXIgd29yZHMsIHlvdSdyZSBub3QgZ29pbmcgdG8gaGl0IHRoaXMgaW4geW91ciBhdmVyYWdlIHZpcnR1YWxpemVkIHNldHVwIHdpdGhvdXQgYSBjdXN0b20gZGV2aWNlIHRyZWUsIGFuZCB0aG9zZSBhcmVuJ3QgZXhhY3RseSB0aGUgbm9ybS5cblxuRXZlbiBpZiB5b3UgKmRpZCogbWFuYWdlIHRvIHdyYW5nbGUgdGhlIHJpZ2h0IGVudmlyb25tZW50LCB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlIGlzIGluY3JlZGlibHkgbWlub3IuIFdlJ3JlIHRhbGtpbmcgYSBzdHJhaWdodC11cCByZXBsYWNlbWVudCBvZiBgaXJxX29mX3BhcnNlX2FuZF9tYXBgIHdpdGggYG9mX2lycV9nZXRgIGFuZCBhIHR3ZWFrIHRvIHRoZSBlcnJvciBoYW5kbGluZy4gVGhpcyBpcyBhIHZlcnkgc2ltcGxlIEFQSSB1cGRhdGUgZm9yIElSUSBmZXRjaGluZywgYSBwdXJlbHkgZnVuY3Rpb25hbCBjaGFuZ2UuIE5vdGhpbmcgaGVyZSBzdWdnZXN0cyBhbnkgcmVhbCBhdHRhY2sgc3VyZmFjZSwgb3IgYW55dGhpbmcgdGhhdCB3b3VsZCBiZSBwYXJ0aWN1bGFybHkgc2Vuc2l0aXZlIHRvIGZ1enppbmcuXG5cbk15IHJlYXNvbmluZz8gVGhlIHBhdGNoIGlzIGV4Y2x1c2l2ZWx5IG1vZGlmeWluZyB0aGUgZGV2aWNlIHRyZWUgcGFyc2luZyBsb2dpYyBmb3IgdGhlIEZyZWVzY2FsZSBHaWFuZmFyIEV0aGVybmV0IGRyaXZlcidzIHByb2JlIG9wZXJhdGlvbi4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgc28gc3RhbmRhcmQgdmlydHVhbGl6YXRpb24gaXMgYSBub24tc3RhcnRlciB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCB3aGljaCBpcyBhIG5pY2hlIHNjZW5hcmlvLiBNb3Jlb3ZlciwgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzdHJhaWdodGZvcndhcmQgQVBJIHVwZGF0ZSByZWxhdGVkIHRvIHJldHJpZXZpbmcgSVJRcy4gVGhlcmVmb3JlLCBJJ20gY29uZmlkZW50IGluIGNhbGxpbmcgdGhpcyBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBObyBmdXp6aW5nIG5lZWRlZCBoZXJlLCBtb3ZlIG9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzEyLCJPdXRwdXRUb2tlbnMiOjk4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDAzOjU1OjA0LjY1MTEzNTQ2NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3NjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkZXZpY2UgdHJlZSBwYXJzaW5nIGxvZ2ljIGZvciB0aGUgRnJlZXNjYWxlIEdpYW5mYXIgRXRoZXJuZXQgZHJpdmVyIGR1cmluZyBwcm9iZS4gVGhpcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0IFFFTVUgb3IgR0NFKSB3aXRob3V0IGEgY3VzdG9tIGRldmljZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBpdHNlbGYgaXMgYSBzaW1wbGUgQVBJIHVwZGF0ZSBmb3IgZmV0Y2hpbmcgSVJRcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvbc[1] Phase: Running StartedAt: 2026-06-24 03:55:35 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvbc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-24 03:55:35 +0000 UTC FinishedAt: 2026-06-24 03:55:40 +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,}