Name: series-workflowd9dl6 Phase: Failed StartedAt: 2026-07-13 07:56:47 +0000 UTC FinishedAt: 2026-07-13 08:19:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd9dl6[0] Phase: Succeeded StartedAt: 2026-07-13 07:56:47 +0000 UTC FinishedAt: 2026-07-13 08:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd9dl6[0].run-triage Phase: Succeeded StartedAt: 2026-07-13 07:56:47 +0000 UTC FinishedAt: 2026-07-13 08:18:55 +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+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGFuIGVycm9yIGNoZWNrIGluIGBtY3RwX2RldmljZV9pbml0YCwgd2hpY2ggaXMgY2FsbGVkIGZyb20gYG1jdHBfaW5pdGAuIGBtY3RwX2luaXRgIGlzIGEgYHN1YnN5c19pbml0Y2FsbGAgZm9yIHRoZSBidWlsdC1pbiBNQ1RQIHN1YnN5c3RlbSAoQ09ORklHX01DVFAgaXMgYSBib29sKS4gU2luY2UgdGhpcyBpbml0aWFsaXphdGlvbiBjb2RlIHJ1bnMgZXhhY3RseSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBkeW5hbWljYWxseSBieSBhIGZ1enplciwgaXQgaXMgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZmY3Y2VhOTI1YWNiYjQ5YjM2OTQyYTdlMzliMjlhOTUxYmRhNGU0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmNcbmluZGV4IDJjODRkZjY3NDY2OWIyLi44MjIxMjBlODYwYzgyYSAxMDA2NDRcbi0tLSBhL25ldC9tY3RwL2RldmljZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWN0cC9kZXZpY2UuY1xuQEAgLTUzNiw3ICYjNDM7NTM2LDkgQEAgaW50IF9faW5pdCBtY3RwX2RldmljZV9pbml0KHZvaWQpXG4ge1xuIFx0aW50IGVycjtcbiBcbi1cdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtY3RwX2Rldl9uYik7XG4mIzQzO1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbiYjNDM7XHRpZiAoZXJyKVxuJiM0MztcdFx0cmV0dXJuIGVycjtcbiBcbiBcdGVyciA9IHJ0bmxfYWZfcmVnaXN0ZXIoXHUwMDI2bWN0cF9hZl9vcHMpO1xuIFx0aWYgKGVycilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmY3Y2VhOTI1YWNiYjQ5YjM2OTQyYTdlMzliMjlhOTUxYmRhNGU0ZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuYwppbmRleCAyYzg0ZGY2NzQ2NjliMi4uODIyMTIwZTg2MGM4MmEgMTAwNjQ0Ci0tLSBhL25ldC9tY3RwL2RldmljZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tY3RwL2RldmljZS5jCkBAIC01MzYsNyAmIzQzOzUzNiw5IEBAIGludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKQogewogCWludCBlcnI7CiAKLQlyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmFtcDttY3RwX2Rldl9uYik7CiYjNDM7CWVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcigmYW1wO21jdHBfZGV2X25iKTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiAKIAllcnIgPSBydG5sX2FmX3JlZ2lzdGVyKCZhbXA7bWN0cF9hZl9vcHMpOwogCWlmIChlcnIpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MjkKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tY3RwL2RldmljZS5jYC4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyBsaWtlIHNvbWVvbmUmIzM5O3MgYWRkZWQgYSBjaGVjayBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKCZhbXA7bWN0cF9kZXZfbmIpYCB3aXRoaW4gdGhlIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbi4gUmlnaHQsIHNvIGl0JiMzOTtzIGxpa2VseSBhIGNyaXRpY2FsIGNoZWNrLCBwcmV2ZW50aW5nIGEgY29uZGl0aW9uIGZ1cnRoZXIgZG93biB0aGUgcm9hZC4gTGV0IG1lIGp1bXAgaW50byBgbmV0L21jdHAvZGV2aWNlLmNgIGFuZCB0YWtlIGEgbG9vayBhdCB3aGF0IGBtY3RwX2RldmljZV9pbml0YCBhY3R1YWxseSAqZG9lcyouIEFoLCBpdCYjMzk7cyBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgbWFrZXMgc2Vuc2UuIFRoaXMgaXMgcHJvYmFibHkgaGFwcGVuaW5nIGR1cmluZyBtb2R1bGUgb3Igc3Vic3lzdGVtIGluaXRpYWxpemF0aW9uIHRoZW4uIEkgd29uZGVyICp3aGVyZSogZXhhY3RseSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBpcyBiZWluZyBjYWxsZWQuLi4gSSBzaG91bGQgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGNhbGxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21jdHBfZGV2aWNlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWN0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21jdHAvYWZfbWN0cC5jPTg0OD1zdGF0aWMgX19pbml0IGludCBtY3RwX2luaXQodm9pZClcbi0tXG5uZXQvbWN0cC9hZl9tY3RwLmMtODczLVxubmV0L21jdHAvYWZfbWN0cC5jOjg3NDpcdHJjID0gbWN0cF9kZXZpY2VfaW5pdCgpO1xubmV0L21jdHAvYWZfbWN0cC5jLTg3NS1cdGlmIChyYylcbi0tXG5uZXQvbWN0cC9kZXZpY2UuYz01MjY9c3RhdGljIGNvbnN0IHN0cnVjdCBydG5sX21zZ19oYW5kbGVyIG1jdHBfZGV2aWNlX3J0bmxfbXNnX2hhbmRsZXJzW10gPSB7XG4tLVxubmV0L21jdHAvZGV2aWNlLmMtNTM0LVxubmV0L21jdHAvZGV2aWNlLmM6NTM1OmludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKVxubmV0L21jdHAvZGV2aWNlLmMtNTM2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzg1CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBmaXggcmVsYXRlZCB0byBlcnJvciBoYW5kbGluZyB3aXRoaW4gdGhlIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBhZGRyZXNzZXMgYSBzaXR1YXRpb24gd2hlcmUgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAgZmFpbHMsIGVuc3VyaW5nIHRoZSBlcnJvciBpc24mIzM5O3Qgc2lsZW50bHkgaWdub3JlZC4gVGhpcyBzZWVtcyBsaWtlIGEgZ29vZCwgYmFzaWMgZml4LCBmdW5jdGlvbmFsbHkgaW1wcm92aW5nIHRoZSBjb2RlLiBJdOKAmXMgYW4gaW5pdCBwYXRoIGNoYW5nZSwgdGhvdWdoLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gY29uc2lkZXIuCgpUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZz8gR2VuZXJhbGx5LCBmdXp6aW5nIGluaXQgcGF0aHMgaXNuJiMzOTt0IHN1cGVyIGZydWl0ZnVsIHVubGVzcyB0aGVyZSYjMzk7cyBkeW5hbWljIHRyaWdnZXJhYmlsaXR5LCBsaWtlIHdpdGggbW9kdWxlIGxvYWRpbmcuIEkmIzM5O3ZlIHNlZW4gc29tZSBzdWNjZXNzIHdoZXJlIGEgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSYjMzk7cyBpbml0aWFsaXphdGlvbiBjYW4gZXhwb3NlIHZ1bG5lcmFiaWxpdGllcyBub3QgcmVhY2hhYmxlIG90aGVyd2lzZS4gQnV0LCBsZXQgbWUgZG91YmxlLWNoZWNrLi4uIHRoaXMgYG1jdHBfaW5pdGAg4oCTIGl0JiMzOTtzIGEgbW9kdWxlIGluaXQgZnVuY3Rpb24gb3Igc3Vic3lzdGVtIGluaXQsIGlzbiYjMzk7dCBpdD8gT2theSwgc28gdGhhdCBzdWdnZXN0cyB0aGlzIG1pZ2h0IGJlIG1vZHVsZS1yZWxhdGVkLiBUaW1lIHRvIHF1aWNrbHkgY29uZmlybSBpZiBgTUNUUGAgKmlzKiBpbmRlZWQgYSBtb2R1bGUuIFRoYXQmIzM5O3MgdGhlIGtleSBxdWVzdGlvbiBoZXJlLCByZWFsbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3NQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbml0aWFsIFJlYWN0aW9uIHRvIGBzdWJzeXNfaW5pdGNhbGxgKioKCldhaXQsIGBzdWJzeXNfaW5pdGNhbGxgPyBUaGF0JiMzOTtzIGEgYml0IG9mIGEgdHJpZ2dlci4gTXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgdG8gdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgc3BlY2lmaWNhbGx5IHRoZSBzdWJzeXN0ZW0gaW5pdGlhbGl6YXRpb24gcGhhc2UuIFRoaXMgY2FsbHMgdXAgbWVtb3JpZXMgb2YgcGFzdCBkZWJ1Z2dpbmcgc2Vzc2lvbnMsIHRyYWNpbmcgZGVwZW5kZW5jaWVzLCBhbmQgZW5zdXJpbmcgcHJvcGVyIG9yZGVyaW5nIHdpdGhpbiB0aGUgYm9vdCBwcm9jZXNzLiBJdCBmb3JjZXMgbWUgdG8gdGhpbmsgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gd291bGQgaW50ZWdyYXRlIGludG8gdGhlIGJvb3QgcHJvY2VzcyBhbmQgaG93IGl0cyB1c2Ugd291bGQgYWZmZWN0IHRoZSBsb2FkIG9yZGVyIG9mIHRoZSBhc3NvY2lhdGVkIG1vZHVsZXMuIEkmIzM5O20gd29uZGVyaW5nIGlmIHRoaXMgaXMgcmVsYXRlZCB0byBhIG5ldyBwaWVjZSBvZiBoYXJkd2FyZSBiZWluZyBhZGRlZCB0byB0aGUga2VybmVsIG9yIHBlcmhhcHMgcmVsYXRlZCB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgYW4gZXhpc3Rpbmcgc3Vic3lzdGVtLiBBbmQsIEkmIzM5O20gYWxyZWFkeSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgaXNzdWVzIGFyb3VuZCByYWNlIGNvbmRpdGlvbnMgYW5kIGRlYWRsb2NrIGlmIG5vdCBpbXBsZW1lbnRlZCBjb3JyZWN0bHkuIEkmIzM5O20gY3VyaW91cyB0byBzZWUgd2hhdCBjb21lcyBuZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N1YnN5c19pbml0Y2FsbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWN0cC9hZl9tY3RwLmM9ODkyPXN0YXRpYyBfX2V4aXQgdm9pZCBtY3RwX2V4aXQodm9pZClcbi0tXG5uZXQvbWN0cC9hZl9tY3RwLmMtOTAwLVxubmV0L21jdHAvYWZfbWN0cC5jOjkwMTpzdWJzeXNfaW5pdGNhbGwobWN0cF9pbml0KTtcbm5ldC9tY3RwL2FmX21jdHAuYy05MDItbW9kdWxlX2V4aXQobWN0cF9leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTI3CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaGlzIEJvb3QtVGltZSBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgc3Vic3lzX2luaXRjYWxsYCwgd2hpY2ggbWVhbnMgaXTigJlzIG9ubHkgZXhlY3V0ZWQgb25jZSwgcmlnaHQgYXQgYm9vdC4gVGhlIGNvZGUgY2FsbHMgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAuIElmIHRoYXQgY2FsbCBmYWlscywgaXQgaW1tZWRpYXRlbHkgcmV0dXJucyBhbiBlcnJvci4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtDb3VsZCBJIGZ1enogdGhpcz8mIzM0OyBCdXQgdGhlbiBJIHJlYWxpemVkLCBzaW5jZSBpdOKAmXMgYSBib290LXRpbWUgZnVuY3Rpb24sIGZ1enppbmcgd291bGRuJiMzOTt0IG1ha2UgbXVjaCBzZW5zZS4gSXQgb25seSBleGVjdXRlcyB0aGF0IHNpbmdsZSB0aW1lIGR1cmluZyBzeXN0ZW0gc3RhcnR1cDsgdGhlcmUmIzM5O3Mgbm8gY29udGludW91cyBpbnRlcmFjdGlvbi4KCldhaXQsIGNhbiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhY3R1YWxseSBmYWlsPyBZZXMsIG9mIGNvdXJzZS4gSWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHMgd2l0aGluIHRoYXQgZnVuY3Rpb24sIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yLiBCdXQgc3RpbGwsIHRoZSBib290LXRpbWUgY29uc3RyYWludCBtYWtlcyBmdXp6aW5nIHBvaW50bGVzcy4gU28sIGl0JiMzOTtzIG5vdCBhIGZ1enppbmcgdGFyZ2V0LgoKTm93IEkmIzM5O20gd29uZGVyaW5n4oCmIGNhbiB0aGlzIHRoaW5nIGJlIGxvYWRlZCBhcyBhIG1vZHVsZT8gVGhlIGBtb2R1bGVfZXhpdChtY3RwX2V4aXQpYCBmdW5jdGlvbiBjYWxsIHN1cmUgc3VnZ2VzdHMgaXQuIExldCBtZSBqdXN0IHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBgbmV0L21jdHAvS2NvbmZpZ2AgZmlsZSB0byBjb25maXJtIHRoYXQgaHlwb3RoZXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1DVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWN0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21jdHAvS2NvbmZpZy0xLVxubmV0L21jdHAvS2NvbmZpZzoyOm1lbnVjb25maWcgTUNUUFxubmV0L21jdHAvS2NvbmZpZy0zLVx0ZGVwZW5kcyBvbiBORVRcbi0tXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxubmV0L21jdHAvS2NvbmZpZzoxNTpjb25maWcgTUNUUF9URVNUXG5uZXQvbWN0cC9LY29uZmlnLTE2LSAgICAgICAgYm9vbCBcJiMzNDtNQ1RQIGNvcmUgdGVzdHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tY3RwL0tjb25maWctMjAtXG5uZXQvbWN0cC9LY29uZmlnOjIxOmNvbmZpZyBNQ1RQX0ZMT1dTXG5uZXQvbWN0cC9LY29uZmlnLTIyLVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzAyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgTUNUUCYjMzk7cyBDb25maWd1cmF0aW9uIE9wdGlvbnMqKgoKQWxyaWdodCwgdGhhdCYjMzk7cyBvZGQuIGBtZW51Y29uZmlnIE1DVFBgIGluIHRoZSB0b3AtbGV2ZWwgY29uZmlndXJhdGlvbiBkb2VzbiYjMzk7dCBkaXJlY3RseSBpbmRpY2F0ZSB3aGV0aGVyIE1DVFAgaXMgdHJpc3RhdGUuIFRoYXQmIzM5O3MgYSBiaXQgdW51c3VhbDsgSSB1c3VhbGx5IGV4cGVjdCBhIHRvcC1sZXZlbCBmZWF0dXJlIGxpa2UgdGhpcyB0byBiZSBjbGVhcmx5IGRlZmluZWQuIE9rYXksIHRpbWUgdG8gZGl2ZSBkZWVwZXIuIExldCYjMzk7cyBsb29rIGF0IHRoZSBhY3R1YWwgS2NvbmZpZyBmaWxlIGZvciB0aGUgTUNUUCBzdWJzeXN0ZW0uIE15IG5leHQgc3RlcCBpcyBjbGVhcmx5IGdvaW5nIHRvIGJlIGV4YW1pbmluZyB0aGUgY29udGVudHMgb2YgYG5ldC9tY3RwL0tjb25maWdgIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgZGVmYXVsdCB2YWx1ZXMgYXQgYSBsb3dlciBsZXZlbC4gSG9wZWZ1bGx5LCB0aGUgYW5zd2VyIGlzIGluIHRoZXJlLiBJIGJldCBpdCBpcyBkZWZpbmVkIGFzIHRyaXN0YXRlLCBidXQgdGhlIG1lbnVjb25maWcgYXQgdGhlIHRvcCBsZXZlbCBpcyB3aGF0JiMzOTtzIGNvbmZ1c2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWN0cC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0XG4gICAyOlx0bWVudWNvbmZpZyBNQ1RQXG4gICAzOlx0XHRkZXBlbmRzIG9uIE5FVFxuICAgNDpcdFx0Ym9vbCBcJiMzNDtNQ1RQIGNvcmUgcHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBNYW5hZ2VtZW50IENvbXBvbmVudCBUcmFuc3BvcnQgUHJvdG9jb2wgKE1DVFApIGlzIGFuIGluLXN5c3RlbVxuICAgNzpcdFx0ICBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyBiZXR3ZWVuIG1hbmFnZW1lbnQgY29udHJvbGxlcnMgYW5kXG4gICA4Olx0XHQgIHRoZWlyIG1hbmFnZWQgZGV2aWNlcyAocGVyaXBoZXJhbHMsIGhvc3QgcHJvY2Vzc29ycywgZXRjLikuIFRoZVxuICAgOTpcdFx0ICBwcm90b2NvbCBpcyBkZWZpbmVkIGJ5IERNVEYgc3BlY2lmaWNhdGlvbiBEU1AwMjM2LlxuICAxMDpcdFxuICAxMTpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNvcmUgTUNUUCBzdXBwb3J0LiBGb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyXG4gIDEyOlx0XHQgIGRldmljZXMsIHlvdSYjMzk7bGwgd2FudCB0byBlbmFibGUgYSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmVcbiAgMTM6XHRcdCAgY2hhbm5lbC5cbiAgMTQ6XHRcbiAgMTU6XHRjb25maWcgTUNUUF9URVNUXG4gIDE2Olx0ICAgICAgICBib29sIFwmIzM0O01DVFAgY29yZSB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gIDE3Olx0ICAgICAgICBzZWxlY3QgTUNUUF9GTE9XU1xuICAxODpcdCAgICAgICAgZGVwZW5kcyBvbiBNQ1RQPXkgXHUwMDI2XHUwMDI2IEtVTklUPXlcbiAgMTk6XHQgICAgICAgIGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXG4gIDIwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMTcKCQkJCQkJCW91dHB1dDogMTIwCgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBBbmFseXNpcyAtIE1DVFAgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgdGFrZW4gYSBsb29rIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSByZWxldmFudCBjb2RlLiBUaGUgY3JpdGljYWwgcGFydCBoZXJlIHNlZW1zIHRvIGJlIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgYG1jdHBfaW5pdGAuIEl0JiMzOTtzIGEgYGJvb2xgLCB3aGljaCBtZWFucyBpdCYjMzk7cyBvbmUgb2YgdGhvc2UgYnVpbHQtaW4gc3lzdGVtIGZ1bmN0aW9ucy4gQW5kIGJlY2F1c2Ugb2YgdGhhdCwgSSBrbm93IGBzdWJzeXNfaW5pdGNhbGwobWN0cF9pbml0KWAgaXMgZ29pbmcgdG8gcnVuICpvbmx5KiBhdCBib290IHRpbWUuIFRoZXJlJiMzOTtzIG5vIHdheSB0byBkeW5hbWljYWxseSB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIGR1cmluZyBub3JtYWwgb3BlcmF0aW9uLiBHaXZlbiB0aGF0LCBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBmdXp6aW5nIHRoaXMgc3BlY2lmaWMgcGFydCBvZiB0aGUgc3lzdGVtIHdvdWxkIGJlIGEgd2FzdGUgb2YgdGltZSBhbmQgcmVzb3VyY2VzLiBUaGVyZSYjMzk7cyBubyBkeW5hbWljIGVudHJ5IHBvaW50IGZvciBhIGZ1enplciB0byBleHBsb2l0LiBUaGVyZWZvcmUsIEkgd2lsbCByZXR1cm4gYFdvcnRoRnV6emluZzogZmFsc2VgLiBJJiMzOTtsbCBhbHNvIGFkZCBhIGNsZWFyIGV4cGxhbmF0aW9uIHRoYXQgdGhpcyBpcyBhIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhbmQgY2FuJiMzOTt0IGJlIHRyaWdnZXJlZCBkeW5hbWljYWxseSBhZnRlciBib290LiBUaGUgcG90ZW50aWFsIHJldHVybiBpcyBqdXN0IHRvbyBsb3cgdG8gd2FycmFudCB0aW1lIHNwZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGFuIGVycm9yIGNoZWNrIGluIGBtY3RwX2RldmljZV9pbml0YCwgd2hpY2ggaXMgY2FsbGVkIGZyb20gYG1jdHBfaW5pdGAuIGBtY3RwX2luaXRgIGlzIGEgYHN1YnN5c19pbml0Y2FsbGAgZm9yIHRoZSBidWlsdC1pbiBNQ1RQIHN1YnN5c3RlbSAoQ09ORklHX01DVFAgaXMgYSBib29sKS4gU2luY2UgdGhpcyBpbml0aWFsaXphdGlvbiBjb2RlIHJ1bnMgZXhhY3RseSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBkeW5hbWljYWxseSBieSBhIGZ1enplciwgaXQgaXMgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDA4OjE4OjE3LjYzMzk3MTM1MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NDc4NzM5NDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MTcuNjMzOTc4NzIyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTY2ODQxOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmZjdjZWE5MjVhY2JiNDliMzY5NDJhN2UzOWIyOWE5NTFiZGE0ZTRlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmNcXG5pbmRleCAyYzg0ZGY2NzQ2NjliMi4uODIyMTIwZTg2MGM4MmEgMTAwNjQ0XFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcXG4rKysgYi9uZXQvbWN0cC9kZXZpY2UuY1xcbkBAIC01MzYsNyArNTM2LDkgQEAgaW50IF9faW5pdCBtY3RwX2RldmljZV9pbml0KHZvaWQpXFxuIHtcXG4gXFx0aW50IGVycjtcXG4gXFxuLVxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2bWN0cF9kZXZfbmIpO1xcbitcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1jdHBfZGV2X25iKTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuIFxcdGVyciA9IHJ0bmxfYWZfcmVnaXN0ZXIoXFx1MDAyNm1jdHBfYWZfb3BzKTtcXG4gXFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MTguMjMxMjg2NTM2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTg4MTQxODMwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYW4gZXJyb3IgY2hlY2sgaW4gYG1jdHBfZGV2aWNlX2luaXRgLCB3aGljaCBpcyBjYWxsZWQgZnJvbSBgbWN0cF9pbml0YC4gYG1jdHBfaW5pdGAgaXMgYSBgc3Vic3lzX2luaXRjYWxsYCBmb3IgdGhlIGJ1aWx0LWluIE1DVFAgc3Vic3lzdGVtIChDT05GSUdfTUNUUCBpcyBhIGJvb2wpLiBTaW5jZSB0aGlzIGluaXRpYWxpemF0aW9uIGNvZGUgcnVucyBleGFjdGx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgdHJpZ2dlcmVkIGR5bmFtaWNhbGx5IGJ5IGEgZnV6emVyLCBpdCBpcyBub3Qgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmY3Y2VhOTI1YWNiYjQ5YjM2OTQyYTdlMzliMjlhOTUxYmRhNGU0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuY1xuaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcbisrKyBiL25ldC9tY3RwL2RldmljZS5jXG5AQCAtNTM2LDcgKzUzNiw5IEBAIGludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKVxuIHtcbiBcdGludCBlcnI7XG4gXG4tXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWN0cF9kZXZfbmIpO1xuK1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4gXG4gXHRlcnIgPSBydG5sX2FmX3JlZ2lzdGVyKFx1MDAyNm1jdHBfYWZfb3BzKTtcbiBcdGlmIChlcnIpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoxOC4yMzEyOTI4ODZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDUzMTQ4OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRGV2aWNlIEluaXRpYWxpemF0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbmV0L21jdHAvZGV2aWNlLmNgLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGxpa2Ugc29tZW9uZSdzIGFkZGVkIGEgY2hlY2sgZm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtY3RwX2Rldl9uYilgIHdpdGhpbiB0aGUgYG1jdHBfZGV2aWNlX2luaXRgIGZ1bmN0aW9uLiBSaWdodCwgc28gaXQncyBsaWtlbHkgYSBjcml0aWNhbCBjaGVjaywgcHJldmVudGluZyBhIGNvbmRpdGlvbiBmdXJ0aGVyIGRvd24gdGhlIHJvYWQuIExldCBtZSBqdW1wIGludG8gYG5ldC9tY3RwL2RldmljZS5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgd2hhdCBgbWN0cF9kZXZpY2VfaW5pdGAgYWN0dWFsbHkgKmRvZXMqLiBBaCwgaXQncyBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgbWFrZXMgc2Vuc2UuIFRoaXMgaXMgcHJvYmFibHkgaGFwcGVuaW5nIGR1cmluZyBtb2R1bGUgb3Igc3Vic3lzdGVtIGluaXRpYWxpemF0aW9uIHRoZW4uIEkgd29uZGVyICp3aGVyZSogZXhhY3RseSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBpcyBiZWluZyBjYWxsZWQuLi4gSSBzaG91bGQgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGNhbGxzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODI5LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MjIuMjg0NDQ0MjEzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTI3NzI1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtY3RwX2RldmljZV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWN0cC9hZl9tY3RwLmM9ODQ4PXN0YXRpYyBfX2luaXQgaW50IG1jdHBfaW5pdCh2b2lkKVxcbi0tXFxubmV0L21jdHAvYWZfbWN0cC5jLTg3My1cXG5uZXQvbWN0cC9hZl9tY3RwLmM6ODc0OlxcdHJjID0gbWN0cF9kZXZpY2VfaW5pdCgpO1xcbm5ldC9tY3RwL2FmX21jdHAuYy04NzUtXFx0aWYgKHJjKVxcbi0tXFxubmV0L21jdHAvZGV2aWNlLmM9NTI2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRubF9tc2dfaGFuZGxlciBtY3RwX2RldmljZV9ydG5sX21zZ19oYW5kbGVyc1tdID0ge1xcbi0tXFxubmV0L21jdHAvZGV2aWNlLmMtNTM0LVxcbm5ldC9tY3RwL2RldmljZS5jOjUzNTppbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcXG5uZXQvbWN0cC9kZXZpY2UuYy01MzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoyMi40ODU3MjczODFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjA3NzkxMzA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGZpeCByZWxhdGVkIHRvIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgYG1jdHBfZGV2aWNlX2luaXRgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0IGFkZHJlc3NlcyBhIHNpdHVhdGlvbiB3aGVyZSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBmYWlscywgZW5zdXJpbmcgdGhlIGVycm9yIGlzbid0IHNpbGVudGx5IGlnbm9yZWQuIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QsIGJhc2ljIGZpeCwgZnVuY3Rpb25hbGx5IGltcHJvdmluZyB0aGUgY29kZS4gSXTigJlzIGFuIGluaXQgcGF0aCBjaGFuZ2UsIHRob3VnaCwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyLlxuXG5UaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZz8gR2VuZXJhbGx5LCBmdXp6aW5nIGluaXQgcGF0aHMgaXNuJ3Qgc3VwZXIgZnJ1aXRmdWwgdW5sZXNzIHRoZXJlJ3MgZHluYW1pYyB0cmlnZ2VyYWJpbGl0eSwgbGlrZSB3aXRoIG1vZHVsZSBsb2FkaW5nLiBJJ3ZlIHNlZW4gc29tZSBzdWNjZXNzIHdoZXJlIGEgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSdzIGluaXRpYWxpemF0aW9uIGNhbiBleHBvc2UgdnVsbmVyYWJpbGl0aWVzIG5vdCByZWFjaGFibGUgb3RoZXJ3aXNlLiBCdXQsIGxldCBtZSBkb3VibGUtY2hlY2suLi4gdGhpcyBgbWN0cF9pbml0YCDigJMgaXQncyBhIG1vZHVsZSBpbml0IGZ1bmN0aW9uIG9yIHN1YnN5c3RlbSBpbml0LCBpc24ndCBpdD8gT2theSwgc28gdGhhdCBzdWdnZXN0cyB0aGlzIG1pZ2h0IGJlIG1vZHVsZS1yZWxhdGVkLiBUaW1lIHRvIHF1aWNrbHkgY29uZmlybSBpZiBgTUNUUGAgKmlzKiBpbmRlZWQgYSBtb2R1bGUuIFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uIGhlcmUsIHJlYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM4NSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoyNy4wOTM1MjA0NTRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1MDkwNzMzMSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21jdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoyOC4yNDQ0NDAzOTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDU4NjE4Njg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBSZWFjdGlvbiB0byBgc3Vic3lzX2luaXRjYWxsYCoqXG5cbldhaXQsIGBzdWJzeXNfaW5pdGNhbGxgPyBUaGF0J3MgYSBiaXQgb2YgYSB0cmlnZ2VyLiBNeSBicmFpbiBpbW1lZGlhdGVseSBqdW1wcyB0byB0aGUga2VybmVsIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLCBzcGVjaWZpY2FsbHkgdGhlIHN1YnN5c3RlbSBpbml0aWFsaXphdGlvbiBwaGFzZS4gVGhpcyBjYWxscyB1cCBtZW1vcmllcyBvZiBwYXN0IGRlYnVnZ2luZyBzZXNzaW9ucywgdHJhY2luZyBkZXBlbmRlbmNpZXMsIGFuZCBlbnN1cmluZyBwcm9wZXIgb3JkZXJpbmcgd2l0aGluIHRoZSBib290IHByb2Nlc3MuIEl0IGZvcmNlcyBtZSB0byB0aGluayBhYm91dCBob3cgdGhpcyBmdW5jdGlvbiB3b3VsZCBpbnRlZ3JhdGUgaW50byB0aGUgYm9vdCBwcm9jZXNzIGFuZCBob3cgaXRzIHVzZSB3b3VsZCBhZmZlY3QgdGhlIGxvYWQgb3JkZXIgb2YgdGhlIGFzc29jaWF0ZWQgbW9kdWxlcy4gSSdtIHdvbmRlcmluZyBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gYSBuZXcgcGllY2Ugb2YgaGFyZHdhcmUgYmVpbmcgYWRkZWQgdG8gdGhlIGtlcm5lbCBvciBwZXJoYXBzIHJlbGF0ZWQgdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIGFuIGV4aXN0aW5nIHN1YnN5c3RlbS4gQW5kLCBJJ20gYWxyZWFkeSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgaXNzdWVzIGFyb3VuZCByYWNlIGNvbmRpdGlvbnMgYW5kIGRlYWRsb2NrIGlmIG5vdCBpbXBsZW1lbnRlZCBjb3JyZWN0bHkuIEknbSBjdXJpb3VzIHRvIHNlZSB3aGF0IGNvbWVzIG5leHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NzUsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozMS4zMDMwNjEyMjJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA3MTQyMDgzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN1YnN5c19pbml0Y2FsbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWN0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21jdHAvYWZfbWN0cC5jPTg5Mj1zdGF0aWMgX19leGl0IHZvaWQgbWN0cF9leGl0KHZvaWQpXFxuLS1cXG5uZXQvbWN0cC9hZl9tY3RwLmMtOTAwLVxcbm5ldC9tY3RwL2FmX21jdHAuYzo5MDE6c3Vic3lzX2luaXRjYWxsKG1jdHBfaW5pdCk7XFxubmV0L21jdHAvYWZfbWN0cC5jLTkwMi1tb2R1bGVfZXhpdChtY3RwX2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozMS40MTAyMDgyNTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTEwODczMjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaGlzIEJvb3QtVGltZSBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHN1YnN5c19pbml0Y2FsbGAsIHdoaWNoIG1lYW5zIGl04oCZcyBvbmx5IGV4ZWN1dGVkIG9uY2UsIHJpZ2h0IGF0IGJvb3QuIFRoZSBjb2RlIGNhbGxzIGByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJgLiBJZiB0aGF0IGNhbGwgZmFpbHMsIGl0IGltbWVkaWF0ZWx5IHJldHVybnMgYW4gZXJyb3IuIE15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiQ291bGQgSSBmdXp6IHRoaXM/XCIgQnV0IHRoZW4gSSByZWFsaXplZCwgc2luY2UgaXTigJlzIGEgYm9vdC10aW1lIGZ1bmN0aW9uLCBmdXp6aW5nIHdvdWxkbid0IG1ha2UgbXVjaCBzZW5zZS4gSXQgb25seSBleGVjdXRlcyB0aGF0IHNpbmdsZSB0aW1lIGR1cmluZyBzeXN0ZW0gc3RhcnR1cDsgdGhlcmUncyBubyBjb250aW51b3VzIGludGVyYWN0aW9uLlxuXG5XYWl0LCBjYW4gYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAgYWN0dWFsbHkgZmFpbD8gWWVzLCBvZiBjb3Vyc2UuIElmIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxzIHdpdGhpbiB0aGF0IGZ1bmN0aW9uLCBpdCB3aWxsIHJldHVybiBhbiBlcnJvci4gQnV0IHN0aWxsLCB0aGUgYm9vdC10aW1lIGNvbnN0cmFpbnQgbWFrZXMgZnV6emluZyBwb2ludGxlc3MuIFNvLCBpdCdzIG5vdCBhIGZ1enppbmcgdGFyZ2V0LlxuXG5Ob3cgSSdtIHdvbmRlcmluZ+KApiBjYW4gdGhpcyB0aGluZyBiZSBsb2FkZWQgYXMgYSBtb2R1bGU/IFRoZSBgbW9kdWxlX2V4aXQobWN0cF9leGl0KWAgZnVuY3Rpb24gY2FsbCBzdXJlIHN1Z2dlc3RzIGl0LiBMZXQgbWUganVzdCB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUgYG5ldC9tY3RwL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aGF0IGh5cG90aGVzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMjcsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MzUuOTIxMDgzODY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc4ODc0MTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1DVFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21jdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tY3RwL0tjb25maWctMS1cXG5uZXQvbWN0cC9LY29uZmlnOjI6bWVudWNvbmZpZyBNQ1RQXFxubmV0L21jdHAvS2NvbmZpZy0zLVxcdGRlcGVuZHMgb24gTkVUXFxuLS1cXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxcbm5ldC9tY3RwL0tjb25maWc6MTU6Y29uZmlnIE1DVFBfVEVTVFxcbm5ldC9tY3RwL0tjb25maWctMTYtICAgICAgICBib29sIFxcXCJNQ1RQIGNvcmUgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tY3RwL0tjb25maWctMjAtXFxubmV0L21jdHAvS2NvbmZpZzoyMTpjb25maWcgTUNUUF9GTE9XU1xcbm5ldC9tY3RwL0tjb25maWctMjItXFx0Ym9vbFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozNi4yMDg5Nzc0NDdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA0MTgwNTEwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBNQ1RQJ3MgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuQWxyaWdodCwgdGhhdCdzIG9kZC4gYG1lbnVjb25maWcgTUNUUGAgaW4gdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIGRvZXNuJ3QgZGlyZWN0bHkgaW5kaWNhdGUgd2hldGhlciBNQ1RQIGlzIHRyaXN0YXRlLiBUaGF0J3MgYSBiaXQgdW51c3VhbDsgSSB1c3VhbGx5IGV4cGVjdCBhIHRvcC1sZXZlbCBmZWF0dXJlIGxpa2UgdGhpcyB0byBiZSBjbGVhcmx5IGRlZmluZWQuIE9rYXksIHRpbWUgdG8gZGl2ZSBkZWVwZXIuIExldCdzIGxvb2sgYXQgdGhlIGFjdHVhbCBLY29uZmlnIGZpbGUgZm9yIHRoZSBNQ1RQIHN1YnN5c3RlbS4gTXkgbmV4dCBzdGVwIGlzIGNsZWFybHkgZ29pbmcgdG8gYmUgZXhhbWluaW5nIHRoZSBjb250ZW50cyBvZiBgbmV0L21jdHAvS2NvbmZpZ2AgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIGFuZCBkZWZhdWx0IHZhbHVlcyBhdCBhIGxvd2VyIGxldmVsLiBIb3BlZnVsbHksIHRoZSBhbnN3ZXIgaXMgaW4gdGhlcmUuIEkgYmV0IGl0IGlzIGRlZmluZWQgYXMgdHJpc3RhdGUsIGJ1dCB0aGUgbWVudWNvbmZpZyBhdCB0aGUgdG9wIGxldmVsIGlzIHdoYXQncyBjb25mdXNpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozOS4yNTA3ODU2NTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIxNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21jdHAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdFxcbiAgIDI6XFx0bWVudWNvbmZpZyBNQ1RQXFxuICAgMzpcXHRcXHRkZXBlbmRzIG9uIE5FVFxcbiAgIDQ6XFx0XFx0Ym9vbCBcXFwiTUNUUCBjb3JlIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIE1hbmFnZW1lbnQgQ29tcG9uZW50IFRyYW5zcG9ydCBQcm90b2NvbCAoTUNUUCkgaXMgYW4gaW4tc3lzdGVtXFxuICAgNzpcXHRcXHQgIHByb3RvY29sIGZvciBjb21tdW5pY2F0aW5nIGJldHdlZW4gbWFuYWdlbWVudCBjb250cm9sbGVycyBhbmRcXG4gICA4OlxcdFxcdCAgdGhlaXIgbWFuYWdlZCBkZXZpY2VzIChwZXJpcGhlcmFscywgaG9zdCBwcm9jZXNzb3JzLCBldGMuKS4gVGhlXFxuICAgOTpcXHRcXHQgIHByb3RvY29sIGlzIGRlZmluZWQgYnkgRE1URiBzcGVjaWZpY2F0aW9uIERTUDAyMzYuXFxuICAxMDpcXHRcXG4gIDExOlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBjb3JlIE1DVFAgc3VwcG9ydC4gRm9yIGNvbW11bmljYXRpbmcgd2l0aCBvdGhlclxcbiAgMTI6XFx0XFx0ICBkZXZpY2VzLCB5b3UnbGwgd2FudCB0byBlbmFibGUgYSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmVcXG4gIDEzOlxcdFxcdCAgY2hhbm5lbC5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0Y29uZmlnIE1DVFBfVEVTVFxcbiAgMTY6XFx0ICAgICAgICBib29sIFxcXCJNQ1RQIGNvcmUgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4gIDE3OlxcdCAgICAgICAgc2VsZWN0IE1DVFBfRkxPV1NcXG4gIDE4OlxcdCAgICAgICAgZGVwZW5kcyBvbiBNQ1RQPXkgXFx1MDAyNlxcdTAwMjYgS1VOSVQ9eVxcbiAgMTk6XFx0ICAgICAgICBkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xcbiAgMjA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDA4OjE4OjM5LjI1MDg1OTMzNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODYxODE2MDM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgQW5hbHlzaXMgLSBNQ1RQIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIHJlbGV2YW50IGNvZGUuIFRoZSBjcml0aWNhbCBwYXJ0IGhlcmUgc2VlbXMgdG8gYmUgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCBgbWN0cF9pbml0YC4gSXQncyBhIGBib29sYCwgd2hpY2ggbWVhbnMgaXQncyBvbmUgb2YgdGhvc2UgYnVpbHQtaW4gc3lzdGVtIGZ1bmN0aW9ucy4gQW5kIGJlY2F1c2Ugb2YgdGhhdCwgSSBrbm93IGBzdWJzeXNfaW5pdGNhbGwobWN0cF9pbml0KWAgaXMgZ29pbmcgdG8gcnVuICpvbmx5KiBhdCBib290IHRpbWUuIFRoZXJlJ3Mgbm8gd2F5IHRvIGR5bmFtaWNhbGx5IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGggZHVyaW5nIG5vcm1hbCBvcGVyYXRpb24uIEdpdmVuIHRoYXQsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGZ1enppbmcgdGhpcyBzcGVjaWZpYyBwYXJ0IG9mIHRoZSBzeXN0ZW0gd291bGQgYmUgYSB3YXN0ZSBvZiB0aW1lIGFuZCByZXNvdXJjZXMuIFRoZXJlJ3Mgbm8gZHluYW1pYyBlbnRyeSBwb2ludCBmb3IgYSBmdXp6ZXIgdG8gZXhwbG9pdC4gVGhlcmVmb3JlLCBJIHdpbGwgcmV0dXJuIGBXb3J0aEZ1enppbmc6IGZhbHNlYC4gSSdsbCBhbHNvIGFkZCBhIGNsZWFyIGV4cGxhbmF0aW9uIHRoYXQgdGhpcyBpcyBhIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhbmQgY2FuJ3QgYmUgdHJpZ2dlcmVkIGR5bmFtaWNhbGx5IGFmdGVyIGJvb3QuIFRoZSBwb3RlbnRpYWwgcmV0dXJuIGlzIGp1c3QgdG9vIGxvdyB0byB3YXJyYW50IHRpbWUgc3BlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMTcsIk91dHB1dFRva2VucyI6MTIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODo0NC4xMTI2NzgwMTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYW4gZXJyb3IgY2hlY2sgaW4gYG1jdHBfZGV2aWNlX2luaXRgLCB3aGljaCBpcyBjYWxsZWQgZnJvbSBgbWN0cF9pbml0YC4gYG1jdHBfaW5pdGAgaXMgYSBgc3Vic3lzX2luaXRjYWxsYCBmb3IgdGhlIGJ1aWx0LWluIE1DVFAgc3Vic3lzdGVtIChDT05GSUdfTUNUUCBpcyBhIGJvb2wpLiBTaW5jZSB0aGlzIGluaXRpYWxpemF0aW9uIGNvZGUgcnVucyBleGFjdGx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgdHJpZ2dlcmVkIGR5bmFtaWNhbGx5IGJ5IGEgZnV6emVyLCBpdCBpcyBub3Qgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowd9dl6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-13 07:56:47 +0000 UTC FinishedAt: 2026-07-13 08:18:45 +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+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGFuIGVycm9yIGNoZWNrIGluIGBtY3RwX2RldmljZV9pbml0YCwgd2hpY2ggaXMgY2FsbGVkIGZyb20gYG1jdHBfaW5pdGAuIGBtY3RwX2luaXRgIGlzIGEgYHN1YnN5c19pbml0Y2FsbGAgZm9yIHRoZSBidWlsdC1pbiBNQ1RQIHN1YnN5c3RlbSAoQ09ORklHX01DVFAgaXMgYSBib29sKS4gU2luY2UgdGhpcyBpbml0aWFsaXphdGlvbiBjb2RlIHJ1bnMgZXhhY3RseSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBkeW5hbWljYWxseSBieSBhIGZ1enplciwgaXQgaXMgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZmY3Y2VhOTI1YWNiYjQ5YjM2OTQyYTdlMzliMjlhOTUxYmRhNGU0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmNcbmluZGV4IDJjODRkZjY3NDY2OWIyLi44MjIxMjBlODYwYzgyYSAxMDA2NDRcbi0tLSBhL25ldC9tY3RwL2RldmljZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWN0cC9kZXZpY2UuY1xuQEAgLTUzNiw3ICYjNDM7NTM2LDkgQEAgaW50IF9faW5pdCBtY3RwX2RldmljZV9pbml0KHZvaWQpXG4ge1xuIFx0aW50IGVycjtcbiBcbi1cdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtY3RwX2Rldl9uYik7XG4mIzQzO1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbiYjNDM7XHRpZiAoZXJyKVxuJiM0MztcdFx0cmV0dXJuIGVycjtcbiBcbiBcdGVyciA9IHJ0bmxfYWZfcmVnaXN0ZXIoXHUwMDI2bWN0cF9hZl9vcHMpO1xuIFx0aWYgKGVycilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmY3Y2VhOTI1YWNiYjQ5YjM2OTQyYTdlMzliMjlhOTUxYmRhNGU0ZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuYwppbmRleCAyYzg0ZGY2NzQ2NjliMi4uODIyMTIwZTg2MGM4MmEgMTAwNjQ0Ci0tLSBhL25ldC9tY3RwL2RldmljZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tY3RwL2RldmljZS5jCkBAIC01MzYsNyAmIzQzOzUzNiw5IEBAIGludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKQogewogCWludCBlcnI7CiAKLQlyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmFtcDttY3RwX2Rldl9uYik7CiYjNDM7CWVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcigmYW1wO21jdHBfZGV2X25iKTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiAKIAllcnIgPSBydG5sX2FmX3JlZ2lzdGVyKCZhbXA7bWN0cF9hZl9vcHMpOwogCWlmIChlcnIpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MjkKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tY3RwL2RldmljZS5jYC4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyBsaWtlIHNvbWVvbmUmIzM5O3MgYWRkZWQgYSBjaGVjayBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKCZhbXA7bWN0cF9kZXZfbmIpYCB3aXRoaW4gdGhlIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbi4gUmlnaHQsIHNvIGl0JiMzOTtzIGxpa2VseSBhIGNyaXRpY2FsIGNoZWNrLCBwcmV2ZW50aW5nIGEgY29uZGl0aW9uIGZ1cnRoZXIgZG93biB0aGUgcm9hZC4gTGV0IG1lIGp1bXAgaW50byBgbmV0L21jdHAvZGV2aWNlLmNgIGFuZCB0YWtlIGEgbG9vayBhdCB3aGF0IGBtY3RwX2RldmljZV9pbml0YCBhY3R1YWxseSAqZG9lcyouIEFoLCBpdCYjMzk7cyBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgbWFrZXMgc2Vuc2UuIFRoaXMgaXMgcHJvYmFibHkgaGFwcGVuaW5nIGR1cmluZyBtb2R1bGUgb3Igc3Vic3lzdGVtIGluaXRpYWxpemF0aW9uIHRoZW4uIEkgd29uZGVyICp3aGVyZSogZXhhY3RseSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBpcyBiZWluZyBjYWxsZWQuLi4gSSBzaG91bGQgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGNhbGxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21jdHBfZGV2aWNlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWN0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21jdHAvYWZfbWN0cC5jPTg0OD1zdGF0aWMgX19pbml0IGludCBtY3RwX2luaXQodm9pZClcbi0tXG5uZXQvbWN0cC9hZl9tY3RwLmMtODczLVxubmV0L21jdHAvYWZfbWN0cC5jOjg3NDpcdHJjID0gbWN0cF9kZXZpY2VfaW5pdCgpO1xubmV0L21jdHAvYWZfbWN0cC5jLTg3NS1cdGlmIChyYylcbi0tXG5uZXQvbWN0cC9kZXZpY2UuYz01MjY9c3RhdGljIGNvbnN0IHN0cnVjdCBydG5sX21zZ19oYW5kbGVyIG1jdHBfZGV2aWNlX3J0bmxfbXNnX2hhbmRsZXJzW10gPSB7XG4tLVxubmV0L21jdHAvZGV2aWNlLmMtNTM0LVxubmV0L21jdHAvZGV2aWNlLmM6NTM1OmludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKVxubmV0L21jdHAvZGV2aWNlLmMtNTM2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzg1CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBmaXggcmVsYXRlZCB0byBlcnJvciBoYW5kbGluZyB3aXRoaW4gdGhlIGBtY3RwX2RldmljZV9pbml0YCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBhZGRyZXNzZXMgYSBzaXR1YXRpb24gd2hlcmUgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAgZmFpbHMsIGVuc3VyaW5nIHRoZSBlcnJvciBpc24mIzM5O3Qgc2lsZW50bHkgaWdub3JlZC4gVGhpcyBzZWVtcyBsaWtlIGEgZ29vZCwgYmFzaWMgZml4LCBmdW5jdGlvbmFsbHkgaW1wcm92aW5nIHRoZSBjb2RlLiBJdOKAmXMgYW4gaW5pdCBwYXRoIGNoYW5nZSwgdGhvdWdoLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gY29uc2lkZXIuCgpUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZz8gR2VuZXJhbGx5LCBmdXp6aW5nIGluaXQgcGF0aHMgaXNuJiMzOTt0IHN1cGVyIGZydWl0ZnVsIHVubGVzcyB0aGVyZSYjMzk7cyBkeW5hbWljIHRyaWdnZXJhYmlsaXR5LCBsaWtlIHdpdGggbW9kdWxlIGxvYWRpbmcuIEkmIzM5O3ZlIHNlZW4gc29tZSBzdWNjZXNzIHdoZXJlIGEgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSYjMzk7cyBpbml0aWFsaXphdGlvbiBjYW4gZXhwb3NlIHZ1bG5lcmFiaWxpdGllcyBub3QgcmVhY2hhYmxlIG90aGVyd2lzZS4gQnV0LCBsZXQgbWUgZG91YmxlLWNoZWNrLi4uIHRoaXMgYG1jdHBfaW5pdGAg4oCTIGl0JiMzOTtzIGEgbW9kdWxlIGluaXQgZnVuY3Rpb24gb3Igc3Vic3lzdGVtIGluaXQsIGlzbiYjMzk7dCBpdD8gT2theSwgc28gdGhhdCBzdWdnZXN0cyB0aGlzIG1pZ2h0IGJlIG1vZHVsZS1yZWxhdGVkLiBUaW1lIHRvIHF1aWNrbHkgY29uZmlybSBpZiBgTUNUUGAgKmlzKiBpbmRlZWQgYSBtb2R1bGUuIFRoYXQmIzM5O3MgdGhlIGtleSBxdWVzdGlvbiBoZXJlLCByZWFsbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3NQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbml0aWFsIFJlYWN0aW9uIHRvIGBzdWJzeXNfaW5pdGNhbGxgKioKCldhaXQsIGBzdWJzeXNfaW5pdGNhbGxgPyBUaGF0JiMzOTtzIGEgYml0IG9mIGEgdHJpZ2dlci4gTXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgdG8gdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgc3BlY2lmaWNhbGx5IHRoZSBzdWJzeXN0ZW0gaW5pdGlhbGl6YXRpb24gcGhhc2UuIFRoaXMgY2FsbHMgdXAgbWVtb3JpZXMgb2YgcGFzdCBkZWJ1Z2dpbmcgc2Vzc2lvbnMsIHRyYWNpbmcgZGVwZW5kZW5jaWVzLCBhbmQgZW5zdXJpbmcgcHJvcGVyIG9yZGVyaW5nIHdpdGhpbiB0aGUgYm9vdCBwcm9jZXNzLiBJdCBmb3JjZXMgbWUgdG8gdGhpbmsgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gd291bGQgaW50ZWdyYXRlIGludG8gdGhlIGJvb3QgcHJvY2VzcyBhbmQgaG93IGl0cyB1c2Ugd291bGQgYWZmZWN0IHRoZSBsb2FkIG9yZGVyIG9mIHRoZSBhc3NvY2lhdGVkIG1vZHVsZXMuIEkmIzM5O20gd29uZGVyaW5nIGlmIHRoaXMgaXMgcmVsYXRlZCB0byBhIG5ldyBwaWVjZSBvZiBoYXJkd2FyZSBiZWluZyBhZGRlZCB0byB0aGUga2VybmVsIG9yIHBlcmhhcHMgcmVsYXRlZCB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgYW4gZXhpc3Rpbmcgc3Vic3lzdGVtLiBBbmQsIEkmIzM5O20gYWxyZWFkeSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgaXNzdWVzIGFyb3VuZCByYWNlIGNvbmRpdGlvbnMgYW5kIGRlYWRsb2NrIGlmIG5vdCBpbXBsZW1lbnRlZCBjb3JyZWN0bHkuIEkmIzM5O20gY3VyaW91cyB0byBzZWUgd2hhdCBjb21lcyBuZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N1YnN5c19pbml0Y2FsbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWN0cC9hZl9tY3RwLmM9ODkyPXN0YXRpYyBfX2V4aXQgdm9pZCBtY3RwX2V4aXQodm9pZClcbi0tXG5uZXQvbWN0cC9hZl9tY3RwLmMtOTAwLVxubmV0L21jdHAvYWZfbWN0cC5jOjkwMTpzdWJzeXNfaW5pdGNhbGwobWN0cF9pbml0KTtcbm5ldC9tY3RwL2FmX21jdHAuYy05MDItbW9kdWxlX2V4aXQobWN0cF9leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTI3CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaGlzIEJvb3QtVGltZSBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgc3Vic3lzX2luaXRjYWxsYCwgd2hpY2ggbWVhbnMgaXTigJlzIG9ubHkgZXhlY3V0ZWQgb25jZSwgcmlnaHQgYXQgYm9vdC4gVGhlIGNvZGUgY2FsbHMgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAuIElmIHRoYXQgY2FsbCBmYWlscywgaXQgaW1tZWRpYXRlbHkgcmV0dXJucyBhbiBlcnJvci4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtDb3VsZCBJIGZ1enogdGhpcz8mIzM0OyBCdXQgdGhlbiBJIHJlYWxpemVkLCBzaW5jZSBpdOKAmXMgYSBib290LXRpbWUgZnVuY3Rpb24sIGZ1enppbmcgd291bGRuJiMzOTt0IG1ha2UgbXVjaCBzZW5zZS4gSXQgb25seSBleGVjdXRlcyB0aGF0IHNpbmdsZSB0aW1lIGR1cmluZyBzeXN0ZW0gc3RhcnR1cDsgdGhlcmUmIzM5O3Mgbm8gY29udGludW91cyBpbnRlcmFjdGlvbi4KCldhaXQsIGNhbiBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBhY3R1YWxseSBmYWlsPyBZZXMsIG9mIGNvdXJzZS4gSWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHMgd2l0aGluIHRoYXQgZnVuY3Rpb24sIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yLiBCdXQgc3RpbGwsIHRoZSBib290LXRpbWUgY29uc3RyYWludCBtYWtlcyBmdXp6aW5nIHBvaW50bGVzcy4gU28sIGl0JiMzOTtzIG5vdCBhIGZ1enppbmcgdGFyZ2V0LgoKTm93IEkmIzM5O20gd29uZGVyaW5n4oCmIGNhbiB0aGlzIHRoaW5nIGJlIGxvYWRlZCBhcyBhIG1vZHVsZT8gVGhlIGBtb2R1bGVfZXhpdChtY3RwX2V4aXQpYCBmdW5jdGlvbiBjYWxsIHN1cmUgc3VnZ2VzdHMgaXQuIExldCBtZSBqdXN0IHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBgbmV0L21jdHAvS2NvbmZpZ2AgZmlsZSB0byBjb25maXJtIHRoYXQgaHlwb3RoZXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1DVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWN0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21jdHAvS2NvbmZpZy0xLVxubmV0L21jdHAvS2NvbmZpZzoyOm1lbnVjb25maWcgTUNUUFxubmV0L21jdHAvS2NvbmZpZy0zLVx0ZGVwZW5kcyBvbiBORVRcbi0tXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxubmV0L21jdHAvS2NvbmZpZzoxNTpjb25maWcgTUNUUF9URVNUXG5uZXQvbWN0cC9LY29uZmlnLTE2LSAgICAgICAgYm9vbCBcJiMzNDtNQ1RQIGNvcmUgdGVzdHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tY3RwL0tjb25maWctMjAtXG5uZXQvbWN0cC9LY29uZmlnOjIxOmNvbmZpZyBNQ1RQX0ZMT1dTXG5uZXQvbWN0cC9LY29uZmlnLTIyLVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzAyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgTUNUUCYjMzk7cyBDb25maWd1cmF0aW9uIE9wdGlvbnMqKgoKQWxyaWdodCwgdGhhdCYjMzk7cyBvZGQuIGBtZW51Y29uZmlnIE1DVFBgIGluIHRoZSB0b3AtbGV2ZWwgY29uZmlndXJhdGlvbiBkb2VzbiYjMzk7dCBkaXJlY3RseSBpbmRpY2F0ZSB3aGV0aGVyIE1DVFAgaXMgdHJpc3RhdGUuIFRoYXQmIzM5O3MgYSBiaXQgdW51c3VhbDsgSSB1c3VhbGx5IGV4cGVjdCBhIHRvcC1sZXZlbCBmZWF0dXJlIGxpa2UgdGhpcyB0byBiZSBjbGVhcmx5IGRlZmluZWQuIE9rYXksIHRpbWUgdG8gZGl2ZSBkZWVwZXIuIExldCYjMzk7cyBsb29rIGF0IHRoZSBhY3R1YWwgS2NvbmZpZyBmaWxlIGZvciB0aGUgTUNUUCBzdWJzeXN0ZW0uIE15IG5leHQgc3RlcCBpcyBjbGVhcmx5IGdvaW5nIHRvIGJlIGV4YW1pbmluZyB0aGUgY29udGVudHMgb2YgYG5ldC9tY3RwL0tjb25maWdgIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgZGVmYXVsdCB2YWx1ZXMgYXQgYSBsb3dlciBsZXZlbC4gSG9wZWZ1bGx5LCB0aGUgYW5zd2VyIGlzIGluIHRoZXJlLiBJIGJldCBpdCBpcyBkZWZpbmVkIGFzIHRyaXN0YXRlLCBidXQgdGhlIG1lbnVjb25maWcgYXQgdGhlIHRvcCBsZXZlbCBpcyB3aGF0JiMzOTtzIGNvbmZ1c2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMDg6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWN0cC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0XG4gICAyOlx0bWVudWNvbmZpZyBNQ1RQXG4gICAzOlx0XHRkZXBlbmRzIG9uIE5FVFxuICAgNDpcdFx0Ym9vbCBcJiMzNDtNQ1RQIGNvcmUgcHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBNYW5hZ2VtZW50IENvbXBvbmVudCBUcmFuc3BvcnQgUHJvdG9jb2wgKE1DVFApIGlzIGFuIGluLXN5c3RlbVxuICAgNzpcdFx0ICBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyBiZXR3ZWVuIG1hbmFnZW1lbnQgY29udHJvbGxlcnMgYW5kXG4gICA4Olx0XHQgIHRoZWlyIG1hbmFnZWQgZGV2aWNlcyAocGVyaXBoZXJhbHMsIGhvc3QgcHJvY2Vzc29ycywgZXRjLikuIFRoZVxuICAgOTpcdFx0ICBwcm90b2NvbCBpcyBkZWZpbmVkIGJ5IERNVEYgc3BlY2lmaWNhdGlvbiBEU1AwMjM2LlxuICAxMDpcdFxuICAxMTpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNvcmUgTUNUUCBzdXBwb3J0LiBGb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyXG4gIDEyOlx0XHQgIGRldmljZXMsIHlvdSYjMzk7bGwgd2FudCB0byBlbmFibGUgYSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmVcbiAgMTM6XHRcdCAgY2hhbm5lbC5cbiAgMTQ6XHRcbiAgMTU6XHRjb25maWcgTUNUUF9URVNUXG4gIDE2Olx0ICAgICAgICBib29sIFwmIzM0O01DVFAgY29yZSB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gIDE3Olx0ICAgICAgICBzZWxlY3QgTUNUUF9GTE9XU1xuICAxODpcdCAgICAgICAgZGVwZW5kcyBvbiBNQ1RQPXkgXHUwMDI2XHUwMDI2IEtVTklUPXlcbiAgMTk6XHQgICAgICAgIGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXG4gIDIwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDA4OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMTcKCQkJCQkJCW91dHB1dDogMTIwCgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBBbmFseXNpcyAtIE1DVFAgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgdGFrZW4gYSBsb29rIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSByZWxldmFudCBjb2RlLiBUaGUgY3JpdGljYWwgcGFydCBoZXJlIHNlZW1zIHRvIGJlIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgYG1jdHBfaW5pdGAuIEl0JiMzOTtzIGEgYGJvb2xgLCB3aGljaCBtZWFucyBpdCYjMzk7cyBvbmUgb2YgdGhvc2UgYnVpbHQtaW4gc3lzdGVtIGZ1bmN0aW9ucy4gQW5kIGJlY2F1c2Ugb2YgdGhhdCwgSSBrbm93IGBzdWJzeXNfaW5pdGNhbGwobWN0cF9pbml0KWAgaXMgZ29pbmcgdG8gcnVuICpvbmx5KiBhdCBib290IHRpbWUuIFRoZXJlJiMzOTtzIG5vIHdheSB0byBkeW5hbWljYWxseSB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIGR1cmluZyBub3JtYWwgb3BlcmF0aW9uLiBHaXZlbiB0aGF0LCBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBmdXp6aW5nIHRoaXMgc3BlY2lmaWMgcGFydCBvZiB0aGUgc3lzdGVtIHdvdWxkIGJlIGEgd2FzdGUgb2YgdGltZSBhbmQgcmVzb3VyY2VzLiBUaGVyZSYjMzk7cyBubyBkeW5hbWljIGVudHJ5IHBvaW50IGZvciBhIGZ1enplciB0byBleHBsb2l0LiBUaGVyZWZvcmUsIEkgd2lsbCByZXR1cm4gYFdvcnRoRnV6emluZzogZmFsc2VgLiBJJiMzOTtsbCBhbHNvIGFkZCBhIGNsZWFyIGV4cGxhbmF0aW9uIHRoYXQgdGhpcyBpcyBhIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhbmQgY2FuJiMzOTt0IGJlIHRyaWdnZXJlZCBkeW5hbWljYWxseSBhZnRlciBib290LiBUaGUgcG90ZW50aWFsIHJldHVybiBpcyBqdXN0IHRvbyBsb3cgdG8gd2FycmFudCB0aW1lIHNwZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAwODoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGFuIGVycm9yIGNoZWNrIGluIGBtY3RwX2RldmljZV9pbml0YCwgd2hpY2ggaXMgY2FsbGVkIGZyb20gYG1jdHBfaW5pdGAuIGBtY3RwX2luaXRgIGlzIGEgYHN1YnN5c19pbml0Y2FsbGAgZm9yIHRoZSBidWlsdC1pbiBNQ1RQIHN1YnN5c3RlbSAoQ09ORklHX01DVFAgaXMgYSBib29sKS4gU2luY2UgdGhpcyBpbml0aWFsaXphdGlvbiBjb2RlIHJ1bnMgZXhhY3RseSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBkeW5hbWljYWxseSBieSBhIGZ1enplciwgaXQgaXMgbm90IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDA4OjE4OjE3LjYzMzk3MTM1MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NDc4NzM5NDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MTcuNjMzOTc4NzIyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTY2ODQxOTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmZjdjZWE5MjVhY2JiNDliMzY5NDJhN2UzOWIyOWE5NTFiZGE0ZTRlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tY3RwL2RldmljZS5jIGIvbmV0L21jdHAvZGV2aWNlLmNcXG5pbmRleCAyYzg0ZGY2NzQ2NjliMi4uODIyMTIwZTg2MGM4MmEgMTAwNjQ0XFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcXG4rKysgYi9uZXQvbWN0cC9kZXZpY2UuY1xcbkBAIC01MzYsNyArNTM2LDkgQEAgaW50IF9faW5pdCBtY3RwX2RldmljZV9pbml0KHZvaWQpXFxuIHtcXG4gXFx0aW50IGVycjtcXG4gXFxuLVxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2bWN0cF9kZXZfbmIpO1xcbitcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1jdHBfZGV2X25iKTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuIFxcdGVyciA9IHJ0bmxfYWZfcmVnaXN0ZXIoXFx1MDAyNm1jdHBfYWZfb3BzKTtcXG4gXFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MTguMjMxMjg2NTM2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTg4MTQxODMwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYW4gZXJyb3IgY2hlY2sgaW4gYG1jdHBfZGV2aWNlX2luaXRgLCB3aGljaCBpcyBjYWxsZWQgZnJvbSBgbWN0cF9pbml0YC4gYG1jdHBfaW5pdGAgaXMgYSBgc3Vic3lzX2luaXRjYWxsYCBmb3IgdGhlIGJ1aWx0LWluIE1DVFAgc3Vic3lzdGVtIChDT05GSUdfTUNUUCBpcyBhIGJvb2wpLiBTaW5jZSB0aGlzIGluaXRpYWxpemF0aW9uIGNvZGUgcnVucyBleGFjdGx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgdHJpZ2dlcmVkIGR5bmFtaWNhbGx5IGJ5IGEgZnV6emVyLCBpdCBpcyBub3Qgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmY3Y2VhOTI1YWNiYjQ5YjM2OTQyYTdlMzliMjlhOTUxYmRhNGU0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDEzIDA4OjE4OjE2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21jdHAvZGV2aWNlLmMgYi9uZXQvbWN0cC9kZXZpY2UuY1xuaW5kZXggMmM4NGRmNjc0NjY5YjIuLjgyMjEyMGU4NjBjODJhIDEwMDY0NFxuLS0tIGEvbmV0L21jdHAvZGV2aWNlLmNcbisrKyBiL25ldC9tY3RwL2RldmljZS5jXG5AQCAtNTM2LDcgKzUzNiw5IEBAIGludCBfX2luaXQgbWN0cF9kZXZpY2VfaW5pdCh2b2lkKVxuIHtcbiBcdGludCBlcnI7XG4gXG4tXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWN0cF9kZXZfbmIpO1xuK1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1jdHBfZGV2X25iKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4gXG4gXHRlcnIgPSBydG5sX2FmX3JlZ2lzdGVyKFx1MDAyNm1jdHBfYWZfb3BzKTtcbiBcdGlmIChlcnIpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoxOC4yMzEyOTI4ODZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDUzMTQ4OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRGV2aWNlIEluaXRpYWxpemF0aW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbmV0L21jdHAvZGV2aWNlLmNgLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGxpa2Ugc29tZW9uZSdzIGFkZGVkIGEgY2hlY2sgZm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtY3RwX2Rldl9uYilgIHdpdGhpbiB0aGUgYG1jdHBfZGV2aWNlX2luaXRgIGZ1bmN0aW9uLiBSaWdodCwgc28gaXQncyBsaWtlbHkgYSBjcml0aWNhbCBjaGVjaywgcHJldmVudGluZyBhIGNvbmRpdGlvbiBmdXJ0aGVyIGRvd24gdGhlIHJvYWQuIExldCBtZSBqdW1wIGludG8gYG5ldC9tY3RwL2RldmljZS5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgd2hhdCBgbWN0cF9kZXZpY2VfaW5pdGAgYWN0dWFsbHkgKmRvZXMqLiBBaCwgaXQncyBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgbWFrZXMgc2Vuc2UuIFRoaXMgaXMgcHJvYmFibHkgaGFwcGVuaW5nIGR1cmluZyBtb2R1bGUgb3Igc3Vic3lzdGVtIGluaXRpYWxpemF0aW9uIHRoZW4uIEkgd29uZGVyICp3aGVyZSogZXhhY3RseSB0aGlzIGBtY3RwX2RldmljZV9pbml0YCBpcyBiZWluZyBjYWxsZWQuLi4gSSBzaG91bGQgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGNhbGxzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODI5LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MjIuMjg0NDQ0MjEzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTI3NzI1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtY3RwX2RldmljZV9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWN0cC9hZl9tY3RwLmM9ODQ4PXN0YXRpYyBfX2luaXQgaW50IG1jdHBfaW5pdCh2b2lkKVxcbi0tXFxubmV0L21jdHAvYWZfbWN0cC5jLTg3My1cXG5uZXQvbWN0cC9hZl9tY3RwLmM6ODc0OlxcdHJjID0gbWN0cF9kZXZpY2VfaW5pdCgpO1xcbm5ldC9tY3RwL2FmX21jdHAuYy04NzUtXFx0aWYgKHJjKVxcbi0tXFxubmV0L21jdHAvZGV2aWNlLmM9NTI2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRubF9tc2dfaGFuZGxlciBtY3RwX2RldmljZV9ydG5sX21zZ19oYW5kbGVyc1tdID0ge1xcbi0tXFxubmV0L21jdHAvZGV2aWNlLmMtNTM0LVxcbm5ldC9tY3RwL2RldmljZS5jOjUzNTppbnQgX19pbml0IG1jdHBfZGV2aWNlX2luaXQodm9pZClcXG5uZXQvbWN0cC9kZXZpY2UuYy01MzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoyMi40ODU3MjczODFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjA3NzkxMzA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGZpeCByZWxhdGVkIHRvIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgYG1jdHBfZGV2aWNlX2luaXRgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0IGFkZHJlc3NlcyBhIHNpdHVhdGlvbiB3aGVyZSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBmYWlscywgZW5zdXJpbmcgdGhlIGVycm9yIGlzbid0IHNpbGVudGx5IGlnbm9yZWQuIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QsIGJhc2ljIGZpeCwgZnVuY3Rpb25hbGx5IGltcHJvdmluZyB0aGUgY29kZS4gSXTigJlzIGFuIGluaXQgcGF0aCBjaGFuZ2UsIHRob3VnaCwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyLlxuXG5UaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZz8gR2VuZXJhbGx5LCBmdXp6aW5nIGluaXQgcGF0aHMgaXNuJ3Qgc3VwZXIgZnJ1aXRmdWwgdW5sZXNzIHRoZXJlJ3MgZHluYW1pYyB0cmlnZ2VyYWJpbGl0eSwgbGlrZSB3aXRoIG1vZHVsZSBsb2FkaW5nLiBJJ3ZlIHNlZW4gc29tZSBzdWNjZXNzIHdoZXJlIGEgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZSdzIGluaXRpYWxpemF0aW9uIGNhbiBleHBvc2UgdnVsbmVyYWJpbGl0aWVzIG5vdCByZWFjaGFibGUgb3RoZXJ3aXNlLiBCdXQsIGxldCBtZSBkb3VibGUtY2hlY2suLi4gdGhpcyBgbWN0cF9pbml0YCDigJMgaXQncyBhIG1vZHVsZSBpbml0IGZ1bmN0aW9uIG9yIHN1YnN5c3RlbSBpbml0LCBpc24ndCBpdD8gT2theSwgc28gdGhhdCBzdWdnZXN0cyB0aGlzIG1pZ2h0IGJlIG1vZHVsZS1yZWxhdGVkLiBUaW1lIHRvIHF1aWNrbHkgY29uZmlybSBpZiBgTUNUUGAgKmlzKiBpbmRlZWQgYSBtb2R1bGUuIFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uIGhlcmUsIHJlYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM4NSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoyNy4wOTM1MjA0NTRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1MDkwNzMzMSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21jdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODoyOC4yNDQ0NDAzOTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDU4NjE4Njg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBSZWFjdGlvbiB0byBgc3Vic3lzX2luaXRjYWxsYCoqXG5cbldhaXQsIGBzdWJzeXNfaW5pdGNhbGxgPyBUaGF0J3MgYSBiaXQgb2YgYSB0cmlnZ2VyLiBNeSBicmFpbiBpbW1lZGlhdGVseSBqdW1wcyB0byB0aGUga2VybmVsIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLCBzcGVjaWZpY2FsbHkgdGhlIHN1YnN5c3RlbSBpbml0aWFsaXphdGlvbiBwaGFzZS4gVGhpcyBjYWxscyB1cCBtZW1vcmllcyBvZiBwYXN0IGRlYnVnZ2luZyBzZXNzaW9ucywgdHJhY2luZyBkZXBlbmRlbmNpZXMsIGFuZCBlbnN1cmluZyBwcm9wZXIgb3JkZXJpbmcgd2l0aGluIHRoZSBib290IHByb2Nlc3MuIEl0IGZvcmNlcyBtZSB0byB0aGluayBhYm91dCBob3cgdGhpcyBmdW5jdGlvbiB3b3VsZCBpbnRlZ3JhdGUgaW50byB0aGUgYm9vdCBwcm9jZXNzIGFuZCBob3cgaXRzIHVzZSB3b3VsZCBhZmZlY3QgdGhlIGxvYWQgb3JkZXIgb2YgdGhlIGFzc29jaWF0ZWQgbW9kdWxlcy4gSSdtIHdvbmRlcmluZyBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gYSBuZXcgcGllY2Ugb2YgaGFyZHdhcmUgYmVpbmcgYWRkZWQgdG8gdGhlIGtlcm5lbCBvciBwZXJoYXBzIHJlbGF0ZWQgdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIGFuIGV4aXN0aW5nIHN1YnN5c3RlbS4gQW5kLCBJJ20gYWxyZWFkeSBzdGFydGluZyB0byB0aGluayBhYm91dCBwb3RlbnRpYWwgaXNzdWVzIGFyb3VuZCByYWNlIGNvbmRpdGlvbnMgYW5kIGRlYWRsb2NrIGlmIG5vdCBpbXBsZW1lbnRlZCBjb3JyZWN0bHkuIEknbSBjdXJpb3VzIHRvIHNlZSB3aGF0IGNvbWVzIG5leHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NzUsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozMS4zMDMwNjEyMjJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA3MTQyMDgzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN1YnN5c19pbml0Y2FsbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWN0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21jdHAvYWZfbWN0cC5jPTg5Mj1zdGF0aWMgX19leGl0IHZvaWQgbWN0cF9leGl0KHZvaWQpXFxuLS1cXG5uZXQvbWN0cC9hZl9tY3RwLmMtOTAwLVxcbm5ldC9tY3RwL2FmX21jdHAuYzo5MDE6c3Vic3lzX2luaXRjYWxsKG1jdHBfaW5pdCk7XFxubmV0L21jdHAvYWZfbWN0cC5jLTkwMi1tb2R1bGVfZXhpdChtY3RwX2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozMS40MTAyMDgyNTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTEwODczMjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaGlzIEJvb3QtVGltZSBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHN1YnN5c19pbml0Y2FsbGAsIHdoaWNoIG1lYW5zIGl04oCZcyBvbmx5IGV4ZWN1dGVkIG9uY2UsIHJpZ2h0IGF0IGJvb3QuIFRoZSBjb2RlIGNhbGxzIGByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJgLiBJZiB0aGF0IGNhbGwgZmFpbHMsIGl0IGltbWVkaWF0ZWx5IHJldHVybnMgYW4gZXJyb3IuIE15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiQ291bGQgSSBmdXp6IHRoaXM/XCIgQnV0IHRoZW4gSSByZWFsaXplZCwgc2luY2UgaXTigJlzIGEgYm9vdC10aW1lIGZ1bmN0aW9uLCBmdXp6aW5nIHdvdWxkbid0IG1ha2UgbXVjaCBzZW5zZS4gSXQgb25seSBleGVjdXRlcyB0aGF0IHNpbmdsZSB0aW1lIGR1cmluZyBzeXN0ZW0gc3RhcnR1cDsgdGhlcmUncyBubyBjb250aW51b3VzIGludGVyYWN0aW9uLlxuXG5XYWl0LCBjYW4gYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAgYWN0dWFsbHkgZmFpbD8gWWVzLCBvZiBjb3Vyc2UuIElmIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxzIHdpdGhpbiB0aGF0IGZ1bmN0aW9uLCBpdCB3aWxsIHJldHVybiBhbiBlcnJvci4gQnV0IHN0aWxsLCB0aGUgYm9vdC10aW1lIGNvbnN0cmFpbnQgbWFrZXMgZnV6emluZyBwb2ludGxlc3MuIFNvLCBpdCdzIG5vdCBhIGZ1enppbmcgdGFyZ2V0LlxuXG5Ob3cgSSdtIHdvbmRlcmluZ+KApiBjYW4gdGhpcyB0aGluZyBiZSBsb2FkZWQgYXMgYSBtb2R1bGU/IFRoZSBgbW9kdWxlX2V4aXQobWN0cF9leGl0KWAgZnVuY3Rpb24gY2FsbCBzdXJlIHN1Z2dlc3RzIGl0LiBMZXQgbWUganVzdCB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUgYG5ldC9tY3RwL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aGF0IGh5cG90aGVzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMjcsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMDg6MTg6MzUuOTIxMDgzODY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc4ODc0MTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1DVFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21jdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tY3RwL0tjb25maWctMS1cXG5uZXQvbWN0cC9LY29uZmlnOjI6bWVudWNvbmZpZyBNQ1RQXFxubmV0L21jdHAvS2NvbmZpZy0zLVxcdGRlcGVuZHMgb24gTkVUXFxuLS1cXG5uZXQvbWN0cC9LY29uZmlnLTE0LVxcbm5ldC9tY3RwL0tjb25maWc6MTU6Y29uZmlnIE1DVFBfVEVTVFxcbm5ldC9tY3RwL0tjb25maWctMTYtICAgICAgICBib29sIFxcXCJNQ1RQIGNvcmUgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tY3RwL0tjb25maWctMjAtXFxubmV0L21jdHAvS2NvbmZpZzoyMTpjb25maWcgTUNUUF9GTE9XU1xcbm5ldC9tY3RwL0tjb25maWctMjItXFx0Ym9vbFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozNi4yMDg5Nzc0NDdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA0MTgwNTEwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBNQ1RQJ3MgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuQWxyaWdodCwgdGhhdCdzIG9kZC4gYG1lbnVjb25maWcgTUNUUGAgaW4gdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIGRvZXNuJ3QgZGlyZWN0bHkgaW5kaWNhdGUgd2hldGhlciBNQ1RQIGlzIHRyaXN0YXRlLiBUaGF0J3MgYSBiaXQgdW51c3VhbDsgSSB1c3VhbGx5IGV4cGVjdCBhIHRvcC1sZXZlbCBmZWF0dXJlIGxpa2UgdGhpcyB0byBiZSBjbGVhcmx5IGRlZmluZWQuIE9rYXksIHRpbWUgdG8gZGl2ZSBkZWVwZXIuIExldCdzIGxvb2sgYXQgdGhlIGFjdHVhbCBLY29uZmlnIGZpbGUgZm9yIHRoZSBNQ1RQIHN1YnN5c3RlbS4gTXkgbmV4dCBzdGVwIGlzIGNsZWFybHkgZ29pbmcgdG8gYmUgZXhhbWluaW5nIHRoZSBjb250ZW50cyBvZiBgbmV0L21jdHAvS2NvbmZpZ2AgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIGFuZCBkZWZhdWx0IHZhbHVlcyBhdCBhIGxvd2VyIGxldmVsLiBIb3BlZnVsbHksIHRoZSBhbnN3ZXIgaXMgaW4gdGhlcmUuIEkgYmV0IGl0IGlzIGRlZmluZWQgYXMgdHJpc3RhdGUsIGJ1dCB0aGUgbWVudWNvbmZpZyBhdCB0aGUgdG9wIGxldmVsIGlzIHdoYXQncyBjb25mdXNpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODozOS4yNTA3ODU2NTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIxNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21jdHAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdFxcbiAgIDI6XFx0bWVudWNvbmZpZyBNQ1RQXFxuICAgMzpcXHRcXHRkZXBlbmRzIG9uIE5FVFxcbiAgIDQ6XFx0XFx0Ym9vbCBcXFwiTUNUUCBjb3JlIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIE1hbmFnZW1lbnQgQ29tcG9uZW50IFRyYW5zcG9ydCBQcm90b2NvbCAoTUNUUCkgaXMgYW4gaW4tc3lzdGVtXFxuICAgNzpcXHRcXHQgIHByb3RvY29sIGZvciBjb21tdW5pY2F0aW5nIGJldHdlZW4gbWFuYWdlbWVudCBjb250cm9sbGVycyBhbmRcXG4gICA4OlxcdFxcdCAgdGhlaXIgbWFuYWdlZCBkZXZpY2VzIChwZXJpcGhlcmFscywgaG9zdCBwcm9jZXNzb3JzLCBldGMuKS4gVGhlXFxuICAgOTpcXHRcXHQgIHByb3RvY29sIGlzIGRlZmluZWQgYnkgRE1URiBzcGVjaWZpY2F0aW9uIERTUDAyMzYuXFxuICAxMDpcXHRcXG4gIDExOlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBjb3JlIE1DVFAgc3VwcG9ydC4gRm9yIGNvbW11bmljYXRpbmcgd2l0aCBvdGhlclxcbiAgMTI6XFx0XFx0ICBkZXZpY2VzLCB5b3UnbGwgd2FudCB0byBlbmFibGUgYSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgaGFyZHdhcmVcXG4gIDEzOlxcdFxcdCAgY2hhbm5lbC5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0Y29uZmlnIE1DVFBfVEVTVFxcbiAgMTY6XFx0ICAgICAgICBib29sIFxcXCJNQ1RQIGNvcmUgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4gIDE3OlxcdCAgICAgICAgc2VsZWN0IE1DVFBfRkxPV1NcXG4gIDE4OlxcdCAgICAgICAgZGVwZW5kcyBvbiBNQ1RQPXkgXFx1MDAyNlxcdTAwMjYgS1VOSVQ9eVxcbiAgMTk6XFx0ICAgICAgICBkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xcbiAgMjA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDA4OjE4OjM5LjI1MDg1OTMzNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODYxODE2MDM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgQW5hbHlzaXMgLSBNQ1RQIEluaXRpYWxpemF0aW9uKipcblxuT2theSwgc28gSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIHJlbGV2YW50IGNvZGUuIFRoZSBjcml0aWNhbCBwYXJ0IGhlcmUgc2VlbXMgdG8gYmUgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCBgbWN0cF9pbml0YC4gSXQncyBhIGBib29sYCwgd2hpY2ggbWVhbnMgaXQncyBvbmUgb2YgdGhvc2UgYnVpbHQtaW4gc3lzdGVtIGZ1bmN0aW9ucy4gQW5kIGJlY2F1c2Ugb2YgdGhhdCwgSSBrbm93IGBzdWJzeXNfaW5pdGNhbGwobWN0cF9pbml0KWAgaXMgZ29pbmcgdG8gcnVuICpvbmx5KiBhdCBib290IHRpbWUuIFRoZXJlJ3Mgbm8gd2F5IHRvIGR5bmFtaWNhbGx5IHRyaWdnZXIgdGhpcyBjb2RlIHBhdGggZHVyaW5nIG5vcm1hbCBvcGVyYXRpb24uIEdpdmVuIHRoYXQsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGZ1enppbmcgdGhpcyBzcGVjaWZpYyBwYXJ0IG9mIHRoZSBzeXN0ZW0gd291bGQgYmUgYSB3YXN0ZSBvZiB0aW1lIGFuZCByZXNvdXJjZXMuIFRoZXJlJ3Mgbm8gZHluYW1pYyBlbnRyeSBwb2ludCBmb3IgYSBmdXp6ZXIgdG8gZXhwbG9pdC4gVGhlcmVmb3JlLCBJIHdpbGwgcmV0dXJuIGBXb3J0aEZ1enppbmc6IGZhbHNlYC4gSSdsbCBhbHNvIGFkZCBhIGNsZWFyIGV4cGxhbmF0aW9uIHRoYXQgdGhpcyBpcyBhIGJvb3QtdGltZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhbmQgY2FuJ3QgYmUgdHJpZ2dlcmVkIGR5bmFtaWNhbGx5IGFmdGVyIGJvb3QuIFRoZSBwb3RlbnRpYWwgcmV0dXJuIGlzIGp1c3QgdG9vIGxvdyB0byB3YXJyYW50IHRpbWUgc3BlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMTcsIk91dHB1dFRva2VucyI6MTIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QwODoxODo0NC4xMTI2NzgwMTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhbiBlcnJvciBjaGVjayBpbiBgbWN0cF9kZXZpY2VfaW5pdGAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtY3RwX2luaXRgLiBgbWN0cF9pbml0YCBpcyBhIGBzdWJzeXNfaW5pdGNhbGxgIGZvciB0aGUgYnVpbHQtaW4gTUNUUCBzdWJzeXN0ZW0gKENPTkZJR19NQ1RQIGlzIGEgYm9vbCkuIFNpbmNlIHRoaXMgaW5pdGlhbGl6YXRpb24gY29kZSBydW5zIGV4YWN0bHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgZHluYW1pY2FsbHkgYnkgYSBmdXp6ZXIsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYW4gZXJyb3IgY2hlY2sgaW4gYG1jdHBfZGV2aWNlX2luaXRgLCB3aGljaCBpcyBjYWxsZWQgZnJvbSBgbWN0cF9pbml0YC4gYG1jdHBfaW5pdGAgaXMgYSBgc3Vic3lzX2luaXRjYWxsYCBmb3IgdGhlIGJ1aWx0LWluIE1DVFAgc3Vic3lzdGVtIChDT05GSUdfTUNUUCBpcyBhIGJvb2wpLiBTaW5jZSB0aGlzIGluaXRpYWxpemF0aW9uIGNvZGUgcnVucyBleGFjdGx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgdHJpZ2dlcmVkIGR5bmFtaWNhbGx5IGJ5IGEgZnV6emVyLCBpdCBpcyBub3Qgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowd9dl6[1] Phase: Running StartedAt: 2026-07-13 08:18:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd9dl6[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-13 08:18:55 +0000 UTC FinishedAt: 2026-07-13 08:19:01 +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,}