Name: series-workflowdkmr4 Phase: Failed StartedAt: 2026-07-15 10:47:30 +0000 UTC FinishedAt: 2026-07-15 11:28:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdkmr4[0] Phase: Succeeded StartedAt: 2026-07-15 10:47:30 +0000 UTC FinishedAt: 2026-07-15 11:28:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdkmr4[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 10:47:30 +0000 UTC FinishedAt: 2026-07-15 11:28:06 +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+CgkJCTx0ZD4yMDI2LzA3LzE1IDExOjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXHUwMDNlc3RhdHMpIHdpdGggREVWX1NUQVRTX0lOQyBhbmQgREVWX1NUQVRTX1JFQUQgbWFjcm9zLiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcvY2xlYW51cCBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhbmQgdGhlcmVmb3JlIGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTE6Mjc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiZGI2ODg4NGUyZTQ4NjhiOWI3N2QzOWY3YTdlYzM5NjFmMDMyMWZjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMTE6Mjc6NDcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuaW5kZXggNzE3YzFkM2FhOTUzODAuLmVmNTRlMGEwNDYyYTE3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG5AQCAtMTQ4Miw3ICYjNDM7MTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXG4gIG91dGY6XG4gXHRrZnJlZV9za2Ioc2tiKTtcbi1cdCYjNDM7JiM0MztkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZDtcbiYjNDM7XHRERVZfU1RBVFNfSU5DKGRldiwgdHhfZHJvcHBlZCk7XG4gXHRyZXR1cm4gTkVUREVWX1RYX09LO1xuIH1cbiBcbkBAIC0xNTMyLDExICYjNDM7MTUzMiwxMSBAQCBwcHBfbmV0X3Npb2NkZXZwcml2YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLFxuIHN0YXRpYyB2b2lkXG4gcHBwX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHM2NClcbiB7XG4tXHRzdGF0czY0LVx1MDAzZXJ4X2Vycm9ycyAgICAgICAgPSBkZXYtXHUwMDNlc3RhdHMucnhfZXJyb3JzO1xuLVx0c3RhdHM2NC1cdTAwM2V0eF9lcnJvcnMgICAgICAgID0gZGV2LVx1MDAzZXN0YXRzLnR4X2Vycm9ycztcbi1cdHN0YXRzNjQtXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IGRldi1cdTAwM2VzdGF0cy5yeF9kcm9wcGVkO1xuLVx0c3RhdHM2NC1cdTAwM2V0eF9kcm9wcGVkICAgICAgID0gZGV2LVx1MDAzZXN0YXRzLnR4X2Ryb3BwZWQ7XG4tXHRzdGF0czY0LVx1MDAzZXJ4X2xlbmd0aF9lcnJvcnMgPSBkZXYtXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcbiYjNDM7XHRzdGF0czY0LVx1MDAzZXJ4X2Vycm9ycyAgICAgICAgPSBERVZfU1RBVFNfUkVBRChkZXYsIHJ4X2Vycm9ycyk7XG4mIzQzO1x0c3RhdHM2NC1cdTAwM2V0eF9lcnJvcnMgICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCB0eF9lcnJvcnMpO1xuJiM0MztcdHN0YXRzNjQtXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZHJvcHBlZCk7XG4mIzQzO1x0c3RhdHM2NC1cdTAwM2V0eF9kcm9wcGVkICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCB0eF9kcm9wcGVkKTtcbiYjNDM7XHRzdGF0czY0LVx1MDAzZXJ4X2xlbmd0aF9lcnJvcnMgPSBERVZfU1RBVFNfUkVBRChkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0ZGV2X2ZldGNoX3N3X25ldHN0YXRzKHN0YXRzNjQsIGRldi1cdTAwM2V0c3RhdHMpO1xuIH1cbiBcbkBAIC0xODg5LDcgJiM0MzsxODg5LDcgQEAgcHBwX3ByZXBhcmVfdHhfc2tiKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKipwc2tiKVxuIFxuICBkcm9wOlxuIFx0a2ZyZWVfc2tiKHNrYik7XG4tXHQmIzQzOyYjNDM7cHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4mIzQzO1x0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCB0eF9lcnJvcnMpO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTIxNTYsNyAmIzQzOzIxNTYsNyBAQCBzdGF0aWMgaW50IHBwcF9tcF9leHBsb2RlKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiAgZXJyX2xpbmVhcml6ZTpcbiBcdGlmIChwcHAtXHUwMDNlZGVidWcgXHUwMDI2IDEpXG4gXHRcdG5ldGRldl9lcnIocHBwLVx1MDAzZWRldiwgXCYjMzQ7UFBQOiBubyBtZW1vcnkgKGZyYWdtZW50KVxcblwmIzM0Oyk7XG4tXHQmIzQzOyYjNDM7cHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4mIzQzO1x0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCB0eF9lcnJvcnMpO1xuIFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VueHNlcTtcbiBcdHJldHVybiAxO1x0LyogYWJhbmRvbiB0aGUgZnJhbWUgKi9cbiB9XG5AQCAtMjMyOSw3ICYjNDM7MjMyOSw3IEBAIHBwcF9pbnB1dChzdHJ1Y3QgcHBwX2NoYW5uZWwgKmNoYW4sIHN0cnVjdCBza19idWZmICpza2IpXG4gXHRpZiAoIXBwcF9kZWNvbXByZXNzX3Byb3RvKHNrYikpIHtcbiBcdFx0a2ZyZWVfc2tiKHNrYik7XG4gXHRcdGlmIChwcHApIHtcbi1cdFx0XHQmIzQzOyYjNDM7cHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuJiM0MztcdFx0XHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0XHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdH1cbiBcdFx0Z290byBkb25lO1xuQEAgLTIzOTEsNyAmIzQzOzIzOTEsNyBAQCBwcHBfcmVjZWl2ZV9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpXG4gc3RhdGljIHZvaWRcbiBwcHBfcmVjZWl2ZV9lcnJvcihzdHJ1Y3QgcHBwICpwcHApXG4ge1xuLVx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZXJyb3JzO1xuJiM0MztcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfZXJyb3JzKTtcbiBcdGlmIChwcHAtXHUwMDNldmopXG4gXHRcdHNsaGNfdG9zcyhwcHAtXHUwMDNldmopO1xuIH1cbkBAIC0yNjU4LDcgJiM0MzsyNjU4LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0ICovXG4gXHRpZiAoc2VxX2JlZm9yZShzZXEsIHBwcC1cdTAwM2VuZXh0c2VxKSkge1xuIFx0XHRrZnJlZV9za2Ioc2tiKTtcbi1cdFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcbiYjNDM7XHRcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfZHJvcHBlZCk7XG4gXHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbkBAIC0yNjk0LDcgJiM0MzsyNjk0LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0XHRpZiAocHNrYl9tYXlfcHVsbChza2IsIDIpKVxuIFx0XHRcdHBwcF9yZWNlaXZlX25vbm1wX2ZyYW1lKHBwcCwgc2tiKTtcbiBcdFx0ZWxzZSB7XG4tXHRcdFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcbiYjNDM7XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcbiBcdFx0XHRrZnJlZV9za2Ioc2tiKTtcbiBcdFx0XHRwcHBfcmVjZWl2ZV9lcnJvcihwcHApO1xuIFx0XHR9XG5AQCAtMjgwMCw3ICYjNDM7MjgwMCw3IEBAIHBwcF9tcF9yZWNvbnN0cnVjdChzdHJ1Y3QgcHBwICpwcHApXG4gXHRcdGlmIChsb3N0ID09IDAgXHUwMDI2XHUwMDI2IChQUFBfTVBfQ0IocCktXHUwMDNlQkViaXRzIFx1MDAyNiBFKSBcdTAwMjZcdTAwMjZcbiBcdFx0ICAgIChQUFBfTVBfQ0IoaGVhZCktXHUwMDNlQkViaXRzIFx1MDAyNiBCKSkge1xuIFx0XHRcdGlmIChsZW4gXHUwMDNlIHBwcC1cdTAwM2VtcnJ1ICYjNDM7IDIpIHtcbi1cdFx0XHRcdCYjNDM7JiM0MztwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnJ4X2xlbmd0aF9lcnJvcnM7XG4mIzQzO1x0XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcbiBcdFx0XHRcdG5ldGRldl9wcmludGsoS0VSTl9ERUJVRywgcHBwLVx1MDAzZWRldixcbiBcdFx0XHRcdFx0ICAgICAgXCYjMzQ7UFBQOiByZWNvbnN0cnVjdGVkIHBhY2tldFwmIzM0O1xuIFx0XHRcdFx0XHQgICAgICBcJiMzNDsgaXMgdG9vIGxvbmcgKCVkKVxcblwmIzM0OywgbGVuKTtcbkBAIC0yODU1LDcgJiM0MzsyODU1LDcgQEAgcHBwX21wX3JlY29uc3RydWN0KHN0cnVjdCBwcHAgKnBwcClcbiBcdFx0XHRcdFx0ICAgICAgXCYjMzQ7ICBtaXNzZWQgcGt0cyAldS4uJXVcXG5cJiMzNDssXG4gXHRcdFx0XHRcdCAgICAgIHBwcC1cdTAwM2VuZXh0c2VxLFxuIFx0XHRcdFx0XHQgICAgICBQUFBfTVBfQ0IoaGVhZCktXHUwMDNlc2VxdWVuY2UtMSk7XG4tXHRcdFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcbiYjNDM7XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9kcm9wcGVkKTtcbiBcdFx0XHRwcHBfcmVjZWl2ZV9lcnJvcihwcHApO1xuIFx0XHR9XG4gXG5AQCAtMzMyMiw4ICYjNDM7MzMyMiw4IEBAIHBwcF9nZXRfc3RhdHMoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3QgcHBwX3N0YXRzICpzdClcbiBcdFx0c3QtXHUwMDNlcC5wcHBfb3BhY2tldHMgJiM0Mzs9IHR4X3BhY2tldHM7XG4gXHRcdHN0LVx1MDAzZXAucHBwX29ieXRlcyAmIzQzOz0gdHhfYnl0ZXM7XG4gXHR9XG4tXHRzdC1cdTAwM2VwLnBwcF9pZXJyb3JzID0gcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9lcnJvcnM7XG4tXHRzdC1cdTAwM2VwLnBwcF9vZXJyb3JzID0gcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4mIzQzO1x0c3QtXHUwMDNlcC5wcHBfaWVycm9ycyA9IERFVl9TVEFUU19SRUFEKHBwcC1cdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XG4mIzQzO1x0c3QtXHUwMDNlcC5wcHBfb2Vycm9ycyA9IERFVl9TVEFUU19SRUFEKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHRpZiAoIXZqKVxuIFx0XHRyZXR1cm47XG4gXHRzdC1cdTAwM2V2ai52anNfcGFja2V0cyA9IHZqLVx1MDAzZXNsc19vX2NvbXByZXNzZWQgJiM0MzsgdmotXHUwMDNlc2xzX29fdW5jb21wcmVzc2VkO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDExOjI3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXHUwMDNlc3RhdHMpIHdpdGggREVWX1NUQVRTX0lOQyBhbmQgREVWX1NUQVRTX1JFQUQgbWFjcm9zLiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcvY2xlYW51cCBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhbmQgdGhlcmVmb3JlIGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGJkYjY4ODg0ZTJlNDg2OGI5Yjc3ZDM5ZjdhN2VjMzk2MWYwMzIxZmMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAxNSAxMToyNzo0NyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKaW5kZXggNzE3YzFkM2FhOTUzODAuLmVmNTRlMGEwNDYyYTE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwpAQCAtMTQ4Miw3ICYjNDM7MTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKICBvdXRmOgogCWtmcmVlX3NrYihza2IpOwotCSYjNDM7JiM0MztkZXYtJmd0O3N0YXRzLnR4X2Ryb3BwZWQ7CiYjNDM7CURFVl9TVEFUU19JTkMoZGV2LCB0eF9kcm9wcGVkKTsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCkBAIC0xNTMyLDExICYjNDM7MTUzMiwxMSBAQCBwcHBfbmV0X3Npb2NkZXZwcml2YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLAogc3RhdGljIHZvaWQKIHBwcF9nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzNjQpCiB7Ci0Jc3RhdHM2NC0mZ3Q7cnhfZXJyb3JzICAgICAgICA9IGRldi0mZ3Q7c3RhdHMucnhfZXJyb3JzOwotCXN0YXRzNjQtJmd0O3R4X2Vycm9ycyAgICAgICAgPSBkZXYtJmd0O3N0YXRzLnR4X2Vycm9yczsKLQlzdGF0czY0LSZndDtyeF9kcm9wcGVkICAgICAgID0gZGV2LSZndDtzdGF0cy5yeF9kcm9wcGVkOwotCXN0YXRzNjQtJmd0O3R4X2Ryb3BwZWQgICAgICAgPSBkZXYtJmd0O3N0YXRzLnR4X2Ryb3BwZWQ7Ci0Jc3RhdHM2NC0mZ3Q7cnhfbGVuZ3RoX2Vycm9ycyA9IGRldi0mZ3Q7c3RhdHMucnhfbGVuZ3RoX2Vycm9yczsKJiM0MzsJc3RhdHM2NC0mZ3Q7cnhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZXJyb3JzKTsKJiM0MzsJc3RhdHM2NC0mZ3Q7dHhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgdHhfZXJyb3JzKTsKJiM0MzsJc3RhdHM2NC0mZ3Q7cnhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZHJvcHBlZCk7CiYjNDM7CXN0YXRzNjQtJmd0O3R4X2Ryb3BwZWQgICAgICAgPSBERVZfU1RBVFNfUkVBRChkZXYsIHR4X2Ryb3BwZWQpOwomIzQzOwlzdGF0czY0LSZndDtyeF9sZW5ndGhfZXJyb3JzID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9sZW5ndGhfZXJyb3JzKTsKIAlkZXZfZmV0Y2hfc3dfbmV0c3RhdHMoc3RhdHM2NCwgZGV2LSZndDt0c3RhdHMpOwogfQogCkBAIC0xODg5LDcgJiM0MzsxODg5LDcgQEAgcHBwX3ByZXBhcmVfdHhfc2tiKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKipwc2tiKQogCiAgZHJvcDoKIAlrZnJlZV9za2Ioc2tiKTsKLQkmIzQzOyYjNDM7cHBwLSZndDtkZXYtJmd0O3N0YXRzLnR4X2Vycm9yczsKJiM0MzsJREVWX1NUQVRTX0lOQyhwcHAtJmd0O2RldiwgdHhfZXJyb3JzKTsKIAlyZXR1cm4gMTsKIH0KIApAQCAtMjE1Niw3ICYjNDM7MjE1Niw3IEBAIHN0YXRpYyBpbnQgcHBwX21wX2V4cGxvZGUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogIGVycl9saW5lYXJpemU6CiAJaWYgKHBwcC0mZ3Q7ZGVidWcgJmFtcDsgMSkKIAkJbmV0ZGV2X2VycihwcHAtJmd0O2RldiwgJiMzNDtQUFA6IG5vIG1lbW9yeSAoZnJhZ21lbnQpXG4mIzM0Oyk7Ci0JJiM0MzsmIzQzO3BwcC0mZ3Q7ZGV2LSZndDtzdGF0cy50eF9lcnJvcnM7CiYjNDM7CURFVl9TVEFUU19JTkMocHBwLSZndDtkZXYsIHR4X2Vycm9ycyk7CiAJJiM0MzsmIzQzO3BwcC0mZ3Q7bnhzZXE7CiAJcmV0dXJuIDE7CS8qIGFiYW5kb24gdGhlIGZyYW1lICovCiB9CkBAIC0yMzI5LDcgJiM0MzsyMzI5LDcgQEAgcHBwX2lucHV0KHN0cnVjdCBwcHBfY2hhbm5lbCAqY2hhbiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlpZiAoIXBwcF9kZWNvbXByZXNzX3Byb3RvKHNrYikpIHsKIAkJa2ZyZWVfc2tiKHNrYik7CiAJCWlmIChwcHApIHsKLQkJCSYjNDM7JiM0MztwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfbGVuZ3RoX2Vycm9yczsKJiM0MzsJCQlERVZfU1RBVFNfSU5DKHBwcC0mZ3Q7ZGV2LCByeF9sZW5ndGhfZXJyb3JzKTsKIAkJCXBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7CiAJCX0KIAkJZ290byBkb25lOwpAQCAtMjM5MSw3ICYjNDM7MjM5MSw3IEBAIHBwcF9yZWNlaXZlX2ZyYW1lKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNoYW5uZWwgKnBjaCkKIHN0YXRpYyB2b2lkCiBwcHBfcmVjZWl2ZV9lcnJvcihzdHJ1Y3QgcHBwICpwcHApCiB7Ci0JJiM0MzsmIzQzO3BwcC0mZ3Q7ZGV2LSZndDtzdGF0cy5yeF9lcnJvcnM7CiYjNDM7CURFVl9TVEFUU19JTkMocHBwLSZndDtkZXYsIHJ4X2Vycm9ycyk7CiAJaWYgKHBwcC0mZ3Q7dmopCiAJCXNsaGNfdG9zcyhwcHAtJmd0O3ZqKTsKIH0KQEAgLTI2NTgsNyAmIzQzOzI2NTgsNyBAQCBwcHBfcmVjZWl2ZV9tcF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpCiAJICovCiAJaWYgKHNlcV9iZWZvcmUoc2VxLCBwcHAtJmd0O25leHRzZXEpKSB7CiAJCWtmcmVlX3NrYihza2IpOwotCQkmIzQzOyYjNDM7cHBwLSZndDtkZXYtJmd0O3N0YXRzLnJ4X2Ryb3BwZWQ7CiYjNDM7CQlERVZfU1RBVFNfSU5DKHBwcC0mZ3Q7ZGV2LCByeF9kcm9wcGVkKTsKIAkJcHBwX3JlY2VpdmVfZXJyb3IocHBwKTsKIAkJcmV0dXJuOwogCX0KQEAgLTI2OTQsNyAmIzQzOzI2OTQsNyBAQCBwcHBfcmVjZWl2ZV9tcF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpCiAJCWlmIChwc2tiX21heV9wdWxsKHNrYiwgMikpCiAJCQlwcHBfcmVjZWl2ZV9ub25tcF9mcmFtZShwcHAsIHNrYik7CiAJCWVsc2UgewotCQkJJiM0MzsmIzQzO3BwcC0mZ3Q7ZGV2LSZndDtzdGF0cy5yeF9sZW5ndGhfZXJyb3JzOwomIzQzOwkJCURFVl9TVEFUU19JTkMocHBwLSZndDtkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpOwogCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQlwcHBfcmVjZWl2ZV9lcnJvcihwcHApOwogCQl9CkBAIC0yODAwLDcgJiM0MzsyODAwLDcgQEAgcHBwX21wX3JlY29uc3RydWN0KHN0cnVjdCBwcHAgKnBwcCkKIAkJaWYgKGxvc3QgPT0gMCAmYW1wOyZhbXA7IChQUFBfTVBfQ0IocCktJmd0O0JFYml0cyAmYW1wOyBFKSAmYW1wOyZhbXA7CiAJCSAgICAoUFBQX01QX0NCKGhlYWQpLSZndDtCRWJpdHMgJmFtcDsgQikpIHsKIAkJCWlmIChsZW4gJmd0OyBwcHAtJmd0O21ycnUgJiM0MzsgMikgewotCQkJCSYjNDM7JiM0MztwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfbGVuZ3RoX2Vycm9yczsKJiM0MzsJCQkJREVWX1NUQVRTX0lOQyhwcHAtJmd0O2RldiwgcnhfbGVuZ3RoX2Vycm9ycyk7CiAJCQkJbmV0ZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBwcHAtJmd0O2RldiwKIAkJCQkJICAgICAgJiMzNDtQUFA6IHJlY29uc3RydWN0ZWQgcGFja2V0JiMzNDsKIAkJCQkJICAgICAgJiMzNDsgaXMgdG9vIGxvbmcgKCVkKVxuJiMzNDssIGxlbik7CkBAIC0yODU1LDcgJiM0MzsyODU1LDcgQEAgcHBwX21wX3JlY29uc3RydWN0KHN0cnVjdCBwcHAgKnBwcCkKIAkJCQkJICAgICAgJiMzNDsgIG1pc3NlZCBwa3RzICV1Li4ldVxuJiMzNDssCiAJCQkJCSAgICAgIHBwcC0mZ3Q7bmV4dHNlcSwKIAkJCQkJICAgICAgUFBQX01QX0NCKGhlYWQpLSZndDtzZXF1ZW5jZS0xKTsKLQkJCSYjNDM7JiM0MztwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfZHJvcHBlZDsKJiM0MzsJCQlERVZfU1RBVFNfSU5DKHBwcC0mZ3Q7ZGV2LCByeF9kcm9wcGVkKTsKIAkJCXBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7CiAJCX0KIApAQCAtMzMyMiw4ICYjNDM7MzMyMiw4IEBAIHBwcF9nZXRfc3RhdHMoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3QgcHBwX3N0YXRzICpzdCkKIAkJc3QtJmd0O3AucHBwX29wYWNrZXRzICYjNDM7PSB0eF9wYWNrZXRzOwogCQlzdC0mZ3Q7cC5wcHBfb2J5dGVzICYjNDM7PSB0eF9ieXRlczsKIAl9Ci0Jc3QtJmd0O3AucHBwX2llcnJvcnMgPSBwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfZXJyb3JzOwotCXN0LSZndDtwLnBwcF9vZXJyb3JzID0gcHBwLSZndDtkZXYtJmd0O3N0YXRzLnR4X2Vycm9yczsKJiM0MzsJc3QtJmd0O3AucHBwX2llcnJvcnMgPSBERVZfU1RBVFNfUkVBRChwcHAtJmd0O2RldiwgcnhfZXJyb3JzKTsKJiM0MzsJc3QtJmd0O3AucHBwX29lcnJvcnMgPSBERVZfU1RBVFNfUkVBRChwcHAtJmd0O2RldiwgdHhfZXJyb3JzKTsKIAlpZiAoIXZqKQogCQlyZXR1cm47CiAJc3QtJmd0O3ZqLnZqc19wYWNrZXRzID0gdmotJmd0O3Nsc19vX2NvbXByZXNzZWQgJiM0MzsgdmotJmd0O3Nsc19vX3VuY29tcHJlc3NlZDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTE6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQyMQoJCQkJCQkJb3V0cHV0OiA4NwoJCQkJCQkJdGhvdWdodHM6IDE5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWZhY3RvcmluZyBOZXR3b3JrIERldmljZSBTdGF0aXN0aWNzIFVwZGF0ZXMgaW4gYHBwcF9nZW5lcmljLmNgKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jYCBpcyBjaGFuZ2luZyBob3cgdGhlIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgYXJlIGFjY2Vzc2VkLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHN3YXBwaW5nIGRpcmVjdCByZWFkcyBhbmQgd3JpdGVzIHRvIGBkZXYtJmd0O3N0YXRzYCB3aXRoIGBERVZfU1RBVFNfSU5DYCBhbmQgYERFVl9TVEFUU19SRUFEYC4gVGhpcyBsb29rcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIG1hY3JvIHJlcGxhY2VtZW50LCBub3RoaW5nIG1vcmUuIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0JiMzOTtzIGEgY29kZSBjbGVhbnVwLCBhIHJlZmFjdG9yaW5nIGZvciBzdGF0aXN0aWNzIGhhbmRsaW5nLCBidXQgaXQgKmRvZXNuJiMzOTt0KiB0b3VjaCB0aGUgZnVuZGFtZW50YWwgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbCYjMzk7cyBQUFAgaW1wbGVtZW50YXRpb24uCgpMZXQgbWUganVzdCBxdWlja2x5IHZlcmlmeSB3aGVyZSB0aG9zZSBtYWNyb3MgYXJlIGRlZmluZWQuIEkmIzM5O20gYmV0dGluZyB0aGV5JiMzOTtyZSBpbiBgaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaGAuIFJpZ2h0LCBzbyB0aGV5JiMzOTtyZSBwcm9iYWJseSBzb21lIGtpbmQgb2Ygd3JhcHBlciBmb3IgdXBkYXRpbmcgc3RhdHMuIEl0IGNvdWxkIGJlIGZvciBhdG9taWMgdXBkYXRlcywgcGVyaGFwcyBwZXItQ1BVIGNvdW50ZXJzLCBvciBqdXN0IGEgbW9yZSBnZW5lcmljIGFuZCBjb25zaXN0ZW50IHdheSB0byBoYW5kbGUgdGhlc2Ugc3RhdGlzdGljcy4gR2l2ZW4gdGhhdCBpdCAqb25seSogZGVhbHMgd2l0aCBzdGF0cyB1cGRhdGVzLCBpdCYjMzk7cyBub3QgdGhlIGtpbmQgb2YgY2hhbmdlIHRoYXQgd291bGQgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGZsYXdzIHRoYXQgd291bGQgYmUgZXhwb3NlZCBieSBmdXp6aW5nLgoKR2l2ZW4gYWxsIHRoaXMsIEkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0JiMzOTtzIGEgbm9uLWlzc3VlIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDExOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgZGlyZWN0IGFjY2Vzc2VzIHRvIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgKGRldi1cdTAwM2VzdGF0cykgd2l0aCBERVZfU1RBVFNfSU5DIGFuZCBERVZfU1RBVFNfUkVBRCBtYWNyb3MuIFRoaXMgaXMgYSByZWZhY3RvcmluZy9jbGVhbnVwIGNoYW5nZSB0aGF0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFuZCB0aGVyZWZvcmUgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgZGlyZWN0IGFjY2Vzc2VzIHRvIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgKGRldi1cdTAwM2VzdGF0cykgd2l0aCBERVZfU1RBVFNfSU5DIGFuZCBERVZfU1RBVFNfUkVBRCBtYWNyb3MuIFRoaXMgaXMgYSByZWZhY3RvcmluZy9jbGVhbnVwIGNoYW5nZSB0aGF0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFuZCB0aGVyZWZvcmUgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDExOjI3OjQ4Ljk5NTAyNTA0M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MTE5OTM1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXFx1MDAzZXN0YXRzKSB3aXRoIERFVl9TVEFUU19JTkMgYW5kIERFVl9TVEFUU19SRUFEIG1hY3Jvcy4gVGhpcyBpcyBhIHJlZmFjdG9yaW5nL2NsZWFudXAgY2hhbmdlIHRoYXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYW5kIHRoZXJlZm9yZSBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMToyNzo0OC45OTUwMzA5MDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMjk2NDA2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGJkYjY4ODg0ZTJlNDg2OGI5Yjc3ZDM5ZjdhN2VjMzk2MWYwMzIxZmNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMTUgMTE6Mjc6NDcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xcbmluZGV4IDcxN2MxZDNhYTk1MzgwLi5lZjU0ZTBhMDQ2MmExNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXFxuQEAgLTE0ODIsNyArMTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcbiAgb3V0ZjpcXG4gXFx0a2ZyZWVfc2tiKHNrYik7XFxuLVxcdCsrZGV2LVxcdTAwM2VzdGF0cy50eF9kcm9wcGVkO1xcbitcXHRERVZfU1RBVFNfSU5DKGRldiwgdHhfZHJvcHBlZCk7XFxuIFxcdHJldHVybiBORVRERVZfVFhfT0s7XFxuIH1cXG4gXFxuQEAgLTE1MzIsMTEgKzE1MzIsMTEgQEAgcHBwX25ldF9zaW9jZGV2cHJpdmF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmcixcXG4gc3RhdGljIHZvaWRcXG4gcHBwX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHM2NClcXG4ge1xcbi1cXHRzdGF0czY0LVxcdTAwM2VyeF9lcnJvcnMgICAgICAgID0gZGV2LVxcdTAwM2VzdGF0cy5yeF9lcnJvcnM7XFxuLVxcdHN0YXRzNjQtXFx1MDAzZXR4X2Vycm9ycyAgICAgICAgPSBkZXYtXFx1MDAzZXN0YXRzLnR4X2Vycm9ycztcXG4tXFx0c3RhdHM2NC1cXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IGRldi1cXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcXG4tXFx0c3RhdHM2NC1cXHUwMDNldHhfZHJvcHBlZCAgICAgICA9IGRldi1cXHUwMDNlc3RhdHMudHhfZHJvcHBlZDtcXG4tXFx0c3RhdHM2NC1cXHUwMDNlcnhfbGVuZ3RoX2Vycm9ycyA9IGRldi1cXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcXG4rXFx0c3RhdHM2NC1cXHUwMDNlcnhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZXJyb3JzKTtcXG4rXFx0c3RhdHM2NC1cXHUwMDNldHhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgdHhfZXJyb3JzKTtcXG4rXFx0c3RhdHM2NC1cXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZHJvcHBlZCk7XFxuK1xcdHN0YXRzNjQtXFx1MDAzZXR4X2Ryb3BwZWQgICAgICAgPSBERVZfU1RBVFNfUkVBRChkZXYsIHR4X2Ryb3BwZWQpO1xcbitcXHRzdGF0czY0LVxcdTAwM2VyeF9sZW5ndGhfZXJyb3JzID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcXG4gXFx0ZGV2X2ZldGNoX3N3X25ldHN0YXRzKHN0YXRzNjQsIGRldi1cXHUwMDNldHN0YXRzKTtcXG4gfVxcbiBcXG5AQCAtMTg4OSw3ICsxODg5LDcgQEAgcHBwX3ByZXBhcmVfdHhfc2tiKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKipwc2tiKVxcbiBcXG4gIGRyb3A6XFxuIFxcdGtmcmVlX3NrYihza2IpO1xcbi1cXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy50eF9lcnJvcnM7XFxuK1xcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHR4X2Vycm9ycyk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuIFxcbkBAIC0yMTU2LDcgKzIxNTYsNyBAQCBzdGF0aWMgaW50IHBwcF9tcF9leHBsb2RlKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gIGVycl9saW5lYXJpemU6XFxuIFxcdGlmIChwcHAtXFx1MDAzZWRlYnVnIFxcdTAwMjYgMSlcXG4gXFx0XFx0bmV0ZGV2X2VycihwcHAtXFx1MDAzZWRldiwgXFxcIlBQUDogbm8gbWVtb3J5IChmcmFnbWVudClcXFxcblxcXCIpO1xcbi1cXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy50eF9lcnJvcnM7XFxuK1xcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHR4X2Vycm9ycyk7XFxuIFxcdCsrcHBwLVxcdTAwM2VueHNlcTtcXG4gXFx0cmV0dXJuIDE7XFx0LyogYWJhbmRvbiB0aGUgZnJhbWUgKi9cXG4gfVxcbkBAIC0yMzI5LDcgKzIzMjksNyBAQCBwcHBfaW5wdXQoc3RydWN0IHBwcF9jaGFubmVsICpjaGFuLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHRpZiAoIXBwcF9kZWNvbXByZXNzX3Byb3RvKHNrYikpIHtcXG4gXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuIFxcdFxcdGlmIChwcHApIHtcXG4tXFx0XFx0XFx0KytwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcXG4rXFx0XFx0XFx0REVWX1NUQVRTX0lOQyhwcHAtXFx1MDAzZWRldiwgcnhfbGVuZ3RoX2Vycm9ycyk7XFxuIFxcdFxcdFxcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XFxuIFxcdFxcdH1cXG4gXFx0XFx0Z290byBkb25lO1xcbkBAIC0yMzkxLDcgKzIzOTEsNyBAQCBwcHBfcmVjZWl2ZV9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpXFxuIHN0YXRpYyB2b2lkXFxuIHBwcF9yZWNlaXZlX2Vycm9yKHN0cnVjdCBwcHAgKnBwcClcXG4ge1xcbi1cXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy5yeF9lcnJvcnM7XFxuK1xcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XFxuIFxcdGlmIChwcHAtXFx1MDAzZXZqKVxcbiBcXHRcXHRzbGhjX3Rvc3MocHBwLVxcdTAwM2V2aik7XFxuIH1cXG5AQCAtMjY1OCw3ICsyNjU4LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxcbiBcXHQgKi9cXG4gXFx0aWYgKHNlcV9iZWZvcmUoc2VxLCBwcHAtXFx1MDAzZW5leHRzZXEpKSB7XFxuIFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbi1cXHRcXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy5yeF9kcm9wcGVkO1xcbitcXHRcXHRERVZfU1RBVFNfSU5DKHBwcC1cXHUwMDNlZGV2LCByeF9kcm9wcGVkKTtcXG4gXFx0XFx0cHBwX3JlY2VpdmVfZXJyb3IocHBwKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuQEAgLTI2OTQsNyArMjY5NCw3IEBAIHBwcF9yZWNlaXZlX21wX2ZyYW1lKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNoYW5uZWwgKnBjaClcXG4gXFx0XFx0aWYgKHBza2JfbWF5X3B1bGwoc2tiLCAyKSlcXG4gXFx0XFx0XFx0cHBwX3JlY2VpdmVfbm9ubXBfZnJhbWUocHBwLCBza2IpO1xcbiBcXHRcXHRlbHNlIHtcXG4tXFx0XFx0XFx0KytwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcXG4rXFx0XFx0XFx0REVWX1NUQVRTX0lOQyhwcHAtXFx1MDAzZWRldiwgcnhfbGVuZ3RoX2Vycm9ycyk7XFxuIFxcdFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbiBcXHRcXHRcXHRwcHBfcmVjZWl2ZV9lcnJvcihwcHApO1xcbiBcXHRcXHR9XFxuQEAgLTI4MDAsNyArMjgwMCw3IEBAIHBwcF9tcF9yZWNvbnN0cnVjdChzdHJ1Y3QgcHBwICpwcHApXFxuIFxcdFxcdGlmIChsb3N0ID09IDAgXFx1MDAyNlxcdTAwMjYgKFBQUF9NUF9DQihwKS1cXHUwMDNlQkViaXRzIFxcdTAwMjYgRSkgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0ICAgIChQUFBfTVBfQ0IoaGVhZCktXFx1MDAzZUJFYml0cyBcXHUwMDI2IEIpKSB7XFxuIFxcdFxcdFxcdGlmIChsZW4gXFx1MDAzZSBwcHAtXFx1MDAzZW1ycnUgKyAyKSB7XFxuLVxcdFxcdFxcdFxcdCsrcHBwLVxcdTAwM2VkZXYtXFx1MDAzZXN0YXRzLnJ4X2xlbmd0aF9lcnJvcnM7XFxuK1xcdFxcdFxcdFxcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xcbiBcXHRcXHRcXHRcXHRuZXRkZXZfcHJpbnRrKEtFUk5fREVCVUcsIHBwcC1cXHUwMDNlZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBcXFwiUFBQOiByZWNvbnN0cnVjdGVkIHBhY2tldFxcXCJcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgXFxcIiBpcyB0b28gbG9uZyAoJWQpXFxcXG5cXFwiLCBsZW4pO1xcbkBAIC0yODU1LDcgKzI4NTUsNyBAQCBwcHBfbXBfcmVjb25zdHJ1Y3Qoc3RydWN0IHBwcCAqcHBwKVxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBcXFwiICBtaXNzZWQgcGt0cyAldS4uJXVcXFxcblxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgIHBwcC1cXHUwMDNlbmV4dHNlcSxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgUFBQX01QX0NCKGhlYWQpLVxcdTAwM2VzZXF1ZW5jZS0xKTtcXG4tXFx0XFx0XFx0KytwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcXG4rXFx0XFx0XFx0REVWX1NUQVRTX0lOQyhwcHAtXFx1MDAzZWRldiwgcnhfZHJvcHBlZCk7XFxuIFxcdFxcdFxcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XFxuIFxcdFxcdH1cXG4gXFxuQEAgLTMzMjIsOCArMzMyMiw4IEBAIHBwcF9nZXRfc3RhdHMoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3QgcHBwX3N0YXRzICpzdClcXG4gXFx0XFx0c3QtXFx1MDAzZXAucHBwX29wYWNrZXRzICs9IHR4X3BhY2tldHM7XFxuIFxcdFxcdHN0LVxcdTAwM2VwLnBwcF9vYnl0ZXMgKz0gdHhfYnl0ZXM7XFxuIFxcdH1cXG4tXFx0c3QtXFx1MDAzZXAucHBwX2llcnJvcnMgPSBwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfZXJyb3JzO1xcbi1cXHRzdC1cXHUwMDNlcC5wcHBfb2Vycm9ycyA9IHBwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy50eF9lcnJvcnM7XFxuK1xcdHN0LVxcdTAwM2VwLnBwcF9pZXJyb3JzID0gREVWX1NUQVRTX1JFQUQocHBwLVxcdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XFxuK1xcdHN0LVxcdTAwM2VwLnBwcF9vZXJyb3JzID0gREVWX1NUQVRTX1JFQUQocHBwLVxcdTAwM2VkZXYsIHR4X2Vycm9ycyk7XFxuIFxcdGlmICghdmopXFxuIFxcdFxcdHJldHVybjtcXG4gXFx0c3QtXFx1MDAzZXZqLnZqc19wYWNrZXRzID0gdmotXFx1MDAzZXNsc19vX2NvbXByZXNzZWQgKyB2ai1cXHUwMDNlc2xzX29fdW5jb21wcmVzc2VkO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMToyNzo0OS43MTEwNzAyNTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxOTU5Mzc5ODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXFx1MDAzZXN0YXRzKSB3aXRoIERFVl9TVEFUU19JTkMgYW5kIERFVl9TVEFUU19SRUFEIG1hY3Jvcy4gVGhpcyBpcyBhIHJlZmFjdG9yaW5nL2NsZWFudXAgY2hhbmdlIHRoYXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYW5kIHRoZXJlZm9yZSBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJkYjY4ODg0ZTJlNDg2OGI5Yjc3ZDM5ZjdhN2VjMzk2MWYwMzIxZmNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxMToyNzo0NyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbmluZGV4IDcxN2MxZDNhYTk1MzgwLi5lZjU0ZTBhMDQ2MmExNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG4rKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuQEAgLTE0ODIsNyArMTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXG4gIG91dGY6XG4gXHRrZnJlZV9za2Ioc2tiKTtcbi1cdCsrZGV2LVx1MDAzZXN0YXRzLnR4X2Ryb3BwZWQ7XG4rXHRERVZfU1RBVFNfSU5DKGRldiwgdHhfZHJvcHBlZCk7XG4gXHRyZXR1cm4gTkVUREVWX1RYX09LO1xuIH1cbiBcbkBAIC0xNTMyLDExICsxNTMyLDExIEBAIHBwcF9uZXRfc2lvY2RldnByaXZhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsXG4gc3RhdGljIHZvaWRcbiBwcHBfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0czY0KVxuIHtcbi1cdHN0YXRzNjQtXHUwMDNlcnhfZXJyb3JzICAgICAgICA9IGRldi1cdTAwM2VzdGF0cy5yeF9lcnJvcnM7XG4tXHRzdGF0czY0LVx1MDAzZXR4X2Vycm9ycyAgICAgICAgPSBkZXYtXHUwMDNlc3RhdHMudHhfZXJyb3JzO1xuLVx0c3RhdHM2NC1cdTAwM2VyeF9kcm9wcGVkICAgICAgID0gZGV2LVx1MDAzZXN0YXRzLnJ4X2Ryb3BwZWQ7XG4tXHRzdGF0czY0LVx1MDAzZXR4X2Ryb3BwZWQgICAgICAgPSBkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZDtcbi1cdHN0YXRzNjQtXHUwMDNlcnhfbGVuZ3RoX2Vycm9ycyA9IGRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuK1x0c3RhdHM2NC1cdTAwM2VyeF9lcnJvcnMgICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9lcnJvcnMpO1xuK1x0c3RhdHM2NC1cdTAwM2V0eF9lcnJvcnMgICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCB0eF9lcnJvcnMpO1xuK1x0c3RhdHM2NC1cdTAwM2VyeF9kcm9wcGVkICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9kcm9wcGVkKTtcbitcdHN0YXRzNjQtXHUwMDNldHhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgdHhfZHJvcHBlZCk7XG4rXHRzdGF0czY0LVx1MDAzZXJ4X2xlbmd0aF9lcnJvcnMgPSBERVZfU1RBVFNfUkVBRChkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0ZGV2X2ZldGNoX3N3X25ldHN0YXRzKHN0YXRzNjQsIGRldi1cdTAwM2V0c3RhdHMpO1xuIH1cbiBcbkBAIC0xODg5LDcgKzE4ODksNyBAQCBwcHBfcHJlcGFyZV90eF9za2Ioc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqKnBza2IpXG4gXG4gIGRyb3A6XG4gXHRrZnJlZV9za2Ioc2tiKTtcbi1cdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4rXHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHRyZXR1cm4gMTtcbiB9XG4gXG5AQCAtMjE1Niw3ICsyMTU2LDcgQEAgc3RhdGljIGludCBwcHBfbXBfZXhwbG9kZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IpXG4gIGVycl9saW5lYXJpemU6XG4gXHRpZiAocHBwLVx1MDAzZWRlYnVnIFx1MDAyNiAxKVxuIFx0XHRuZXRkZXZfZXJyKHBwcC1cdTAwM2VkZXYsIFwiUFBQOiBubyBtZW1vcnkgKGZyYWdtZW50KVxcblwiKTtcbi1cdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4rXHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHQrK3BwcC1cdTAwM2VueHNlcTtcbiBcdHJldHVybiAxO1x0LyogYWJhbmRvbiB0aGUgZnJhbWUgKi9cbiB9XG5AQCAtMjMyOSw3ICsyMzI5LDcgQEAgcHBwX2lucHV0KHN0cnVjdCBwcHBfY2hhbm5lbCAqY2hhbiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcdGlmICghcHBwX2RlY29tcHJlc3NfcHJvdG8oc2tiKSkge1xuIFx0XHRrZnJlZV9za2Ioc2tiKTtcbiBcdFx0aWYgKHBwcCkge1xuLVx0XHRcdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuK1x0XHRcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfbGVuZ3RoX2Vycm9ycyk7XG4gXHRcdFx0cHBwX3JlY2VpdmVfZXJyb3IocHBwKTtcbiBcdFx0fVxuIFx0XHRnb3RvIGRvbmU7XG5AQCAtMjM5MSw3ICsyMzkxLDcgQEAgcHBwX3JlY2VpdmVfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIHN0YXRpYyB2b2lkXG4gcHBwX3JlY2VpdmVfZXJyb3Ioc3RydWN0IHBwcCAqcHBwKVxuIHtcbi1cdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9lcnJvcnM7XG4rXHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XG4gXHRpZiAocHBwLVx1MDAzZXZqKVxuIFx0XHRzbGhjX3Rvc3MocHBwLVx1MDAzZXZqKTtcbiB9XG5AQCAtMjY1OCw3ICsyNjU4LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0ICovXG4gXHRpZiAoc2VxX2JlZm9yZShzZXEsIHBwcC1cdTAwM2VuZXh0c2VxKSkge1xuIFx0XHRrZnJlZV9za2Ioc2tiKTtcbi1cdFx0KytwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnJ4X2Ryb3BwZWQ7XG4rXHRcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfZHJvcHBlZCk7XG4gXHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbkBAIC0yNjk0LDcgKzI2OTQsNyBAQCBwcHBfcmVjZWl2ZV9tcF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRcdGlmIChwc2tiX21heV9wdWxsKHNrYiwgMikpXG4gXHRcdFx0cHBwX3JlY2VpdmVfbm9ubXBfZnJhbWUocHBwLCBza2IpO1xuIFx0XHRlbHNlIHtcbi1cdFx0XHQrK3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcbitcdFx0XHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0XHRcdGtmcmVlX3NrYihza2IpO1xuIFx0XHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdH1cbkBAIC0yODAwLDcgKzI4MDAsNyBAQCBwcHBfbXBfcmVjb25zdHJ1Y3Qoc3RydWN0IHBwcCAqcHBwKVxuIFx0XHRpZiAobG9zdCA9PSAwIFx1MDAyNlx1MDAyNiAoUFBQX01QX0NCKHApLVx1MDAzZUJFYml0cyBcdTAwMjYgRSkgXHUwMDI2XHUwMDI2XG4gXHRcdCAgICAoUFBQX01QX0NCKGhlYWQpLVx1MDAzZUJFYml0cyBcdTAwMjYgQikpIHtcbiBcdFx0XHRpZiAobGVuIFx1MDAzZSBwcHAtXHUwMDNlbXJydSArIDIpIHtcbi1cdFx0XHRcdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuK1x0XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcbiBcdFx0XHRcdG5ldGRldl9wcmludGsoS0VSTl9ERUJVRywgcHBwLVx1MDAzZWRldixcbiBcdFx0XHRcdFx0ICAgICAgXCJQUFA6IHJlY29uc3RydWN0ZWQgcGFja2V0XCJcbiBcdFx0XHRcdFx0ICAgICAgXCIgaXMgdG9vIGxvbmcgKCVkKVxcblwiLCBsZW4pO1xuQEAgLTI4NTUsNyArMjg1NSw3IEBAIHBwcF9tcF9yZWNvbnN0cnVjdChzdHJ1Y3QgcHBwICpwcHApXG4gXHRcdFx0XHRcdCAgICAgIFwiICBtaXNzZWQgcGt0cyAldS4uJXVcXG5cIixcbiBcdFx0XHRcdFx0ICAgICAgcHBwLVx1MDAzZW5leHRzZXEsXG4gXHRcdFx0XHRcdCAgICAgIFBQUF9NUF9DQihoZWFkKS1cdTAwM2VzZXF1ZW5jZS0xKTtcbi1cdFx0XHQrK3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcbitcdFx0XHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2Ryb3BwZWQpO1xuIFx0XHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdH1cbiBcbkBAIC0zMzIyLDggKzMzMjIsOCBAQCBwcHBfZ2V0X3N0YXRzKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHBwcF9zdGF0cyAqc3QpXG4gXHRcdHN0LVx1MDAzZXAucHBwX29wYWNrZXRzICs9IHR4X3BhY2tldHM7XG4gXHRcdHN0LVx1MDAzZXAucHBwX29ieXRlcyArPSB0eF9ieXRlcztcbiBcdH1cbi1cdHN0LVx1MDAzZXAucHBwX2llcnJvcnMgPSBwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnJ4X2Vycm9ycztcbi1cdHN0LVx1MDAzZXAucHBwX29lcnJvcnMgPSBwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnR4X2Vycm9ycztcbitcdHN0LVx1MDAzZXAucHBwX2llcnJvcnMgPSBERVZfU1RBVFNfUkVBRChwcHAtXHUwMDNlZGV2LCByeF9lcnJvcnMpO1xuK1x0c3QtXHUwMDNlcC5wcHBfb2Vycm9ycyA9IERFVl9TVEFUU19SRUFEKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHRpZiAoIXZqKVxuIFx0XHRyZXR1cm47XG4gXHRzdC1cdTAwM2V2ai52anNfcGFja2V0cyA9IHZqLVx1MDAzZXNsc19vX2NvbXByZXNzZWQgKyB2ai1cdTAwM2VzbHNfb191bmNvbXByZXNzZWQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMToyNzo0OS43MTEwNzI2MjNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTk1ODY5ODI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlZmFjdG9yaW5nIE5ldHdvcmsgRGV2aWNlIFN0YXRpc3RpY3MgVXBkYXRlcyBpbiBgcHBwX2dlbmVyaWMuY2AqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGluIGBkcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY2AgaXMgY2hhbmdpbmcgaG93IHRoZSBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIGFyZSBhY2Nlc3NlZC4gU3BlY2lmaWNhbGx5LCBpdCdzIHN3YXBwaW5nIGRpcmVjdCByZWFkcyBhbmQgd3JpdGVzIHRvIGBkZXYtXHUwMDNlc3RhdHNgIHdpdGggYERFVl9TVEFUU19JTkNgIGFuZCBgREVWX1NUQVRTX1JFQURgLiBUaGlzIGxvb2tzIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgbWFjcm8gcmVwbGFjZW1lbnQsIG5vdGhpbmcgbW9yZS4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgaXQncyBhIGNvZGUgY2xlYW51cCwgYSByZWZhY3RvcmluZyBmb3Igc3RhdGlzdGljcyBoYW5kbGluZywgYnV0IGl0ICpkb2Vzbid0KiB0b3VjaCB0aGUgZnVuZGFtZW50YWwgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbCdzIFBQUCBpbXBsZW1lbnRhdGlvbi5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSB2ZXJpZnkgd2hlcmUgdGhvc2UgbWFjcm9zIGFyZSBkZWZpbmVkLiBJJ20gYmV0dGluZyB0aGV5J3JlIGluIGBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oYC4gUmlnaHQsIHNvIHRoZXkncmUgcHJvYmFibHkgc29tZSBraW5kIG9mIHdyYXBwZXIgZm9yIHVwZGF0aW5nIHN0YXRzLiBJdCBjb3VsZCBiZSBmb3IgYXRvbWljIHVwZGF0ZXMsIHBlcmhhcHMgcGVyLUNQVSBjb3VudGVycywgb3IganVzdCBhIG1vcmUgZ2VuZXJpYyBhbmQgY29uc2lzdGVudCB3YXkgdG8gaGFuZGxlIHRoZXNlIHN0YXRpc3RpY3MuIEdpdmVuIHRoYXQgaXQgKm9ubHkqIGRlYWxzIHdpdGggc3RhdHMgdXBkYXRlcywgaXQncyBub3QgdGhlIGtpbmQgb2YgY2hhbmdlIHRoYXQgd291bGQgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGZsYXdzIHRoYXQgd291bGQgYmUgZXhwb3NlZCBieSBmdXp6aW5nLlxuXG5HaXZlbiBhbGwgdGhpcywgSSdtIGNvbmZpZGVudCBpbiBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCdzIGEgbm9uLWlzc3VlIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDIxLCJPdXRwdXRUb2tlbnMiOjg3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTE6Mjc6NTQuOTA2OTQ1MjE5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDg0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBkaXJlY3QgYWNjZXNzZXMgdG8gbmV0d29yayBkZXZpY2Ugc3RhdGlzdGljcyAoZGV2LVxcdTAwM2VzdGF0cykgd2l0aCBERVZfU1RBVFNfSU5DIGFuZCBERVZfU1RBVFNfUkVBRCBtYWNyb3MuIFRoaXMgaXMgYSByZWZhY3RvcmluZy9jbGVhbnVwIGNoYW5nZSB0aGF0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFuZCB0aGVyZWZvcmUgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgZGlyZWN0IGFjY2Vzc2VzIHRvIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgKGRldi1cXHUwMDNlc3RhdHMpIHdpdGggREVWX1NUQVRTX0lOQyBhbmQgREVWX1NUQVRTX1JFQUQgbWFjcm9zLiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcvY2xlYW51cCBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhbmQgdGhlcmVmb3JlIGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowdkmr4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 10:47:30 +0000 UTC FinishedAt: 2026-07-15 11:27:56 +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+CgkJCTx0ZD4yMDI2LzA3LzE1IDExOjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXHUwMDNlc3RhdHMpIHdpdGggREVWX1NUQVRTX0lOQyBhbmQgREVWX1NUQVRTX1JFQUQgbWFjcm9zLiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcvY2xlYW51cCBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhbmQgdGhlcmVmb3JlIGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTE6Mjc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiZGI2ODg4NGUyZTQ4NjhiOWI3N2QzOWY3YTdlYzM5NjFmMDMyMWZjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMTE6Mjc6NDcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuaW5kZXggNzE3YzFkM2FhOTUzODAuLmVmNTRlMGEwNDYyYTE3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG5AQCAtMTQ4Miw3ICYjNDM7MTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXG4gIG91dGY6XG4gXHRrZnJlZV9za2Ioc2tiKTtcbi1cdCYjNDM7JiM0MztkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZDtcbiYjNDM7XHRERVZfU1RBVFNfSU5DKGRldiwgdHhfZHJvcHBlZCk7XG4gXHRyZXR1cm4gTkVUREVWX1RYX09LO1xuIH1cbiBcbkBAIC0xNTMyLDExICYjNDM7MTUzMiwxMSBAQCBwcHBfbmV0X3Npb2NkZXZwcml2YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLFxuIHN0YXRpYyB2b2lkXG4gcHBwX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHM2NClcbiB7XG4tXHRzdGF0czY0LVx1MDAzZXJ4X2Vycm9ycyAgICAgICAgPSBkZXYtXHUwMDNlc3RhdHMucnhfZXJyb3JzO1xuLVx0c3RhdHM2NC1cdTAwM2V0eF9lcnJvcnMgICAgICAgID0gZGV2LVx1MDAzZXN0YXRzLnR4X2Vycm9ycztcbi1cdHN0YXRzNjQtXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IGRldi1cdTAwM2VzdGF0cy5yeF9kcm9wcGVkO1xuLVx0c3RhdHM2NC1cdTAwM2V0eF9kcm9wcGVkICAgICAgID0gZGV2LVx1MDAzZXN0YXRzLnR4X2Ryb3BwZWQ7XG4tXHRzdGF0czY0LVx1MDAzZXJ4X2xlbmd0aF9lcnJvcnMgPSBkZXYtXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcbiYjNDM7XHRzdGF0czY0LVx1MDAzZXJ4X2Vycm9ycyAgICAgICAgPSBERVZfU1RBVFNfUkVBRChkZXYsIHJ4X2Vycm9ycyk7XG4mIzQzO1x0c3RhdHM2NC1cdTAwM2V0eF9lcnJvcnMgICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCB0eF9lcnJvcnMpO1xuJiM0MztcdHN0YXRzNjQtXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZHJvcHBlZCk7XG4mIzQzO1x0c3RhdHM2NC1cdTAwM2V0eF9kcm9wcGVkICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCB0eF9kcm9wcGVkKTtcbiYjNDM7XHRzdGF0czY0LVx1MDAzZXJ4X2xlbmd0aF9lcnJvcnMgPSBERVZfU1RBVFNfUkVBRChkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0ZGV2X2ZldGNoX3N3X25ldHN0YXRzKHN0YXRzNjQsIGRldi1cdTAwM2V0c3RhdHMpO1xuIH1cbiBcbkBAIC0xODg5LDcgJiM0MzsxODg5LDcgQEAgcHBwX3ByZXBhcmVfdHhfc2tiKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKipwc2tiKVxuIFxuICBkcm9wOlxuIFx0a2ZyZWVfc2tiKHNrYik7XG4tXHQmIzQzOyYjNDM7cHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4mIzQzO1x0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCB0eF9lcnJvcnMpO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTIxNTYsNyAmIzQzOzIxNTYsNyBAQCBzdGF0aWMgaW50IHBwcF9tcF9leHBsb2RlKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiAgZXJyX2xpbmVhcml6ZTpcbiBcdGlmIChwcHAtXHUwMDNlZGVidWcgXHUwMDI2IDEpXG4gXHRcdG5ldGRldl9lcnIocHBwLVx1MDAzZWRldiwgXCYjMzQ7UFBQOiBubyBtZW1vcnkgKGZyYWdtZW50KVxcblwmIzM0Oyk7XG4tXHQmIzQzOyYjNDM7cHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4mIzQzO1x0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCB0eF9lcnJvcnMpO1xuIFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VueHNlcTtcbiBcdHJldHVybiAxO1x0LyogYWJhbmRvbiB0aGUgZnJhbWUgKi9cbiB9XG5AQCAtMjMyOSw3ICYjNDM7MjMyOSw3IEBAIHBwcF9pbnB1dChzdHJ1Y3QgcHBwX2NoYW5uZWwgKmNoYW4sIHN0cnVjdCBza19idWZmICpza2IpXG4gXHRpZiAoIXBwcF9kZWNvbXByZXNzX3Byb3RvKHNrYikpIHtcbiBcdFx0a2ZyZWVfc2tiKHNrYik7XG4gXHRcdGlmIChwcHApIHtcbi1cdFx0XHQmIzQzOyYjNDM7cHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuJiM0MztcdFx0XHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0XHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdH1cbiBcdFx0Z290byBkb25lO1xuQEAgLTIzOTEsNyAmIzQzOzIzOTEsNyBAQCBwcHBfcmVjZWl2ZV9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpXG4gc3RhdGljIHZvaWRcbiBwcHBfcmVjZWl2ZV9lcnJvcihzdHJ1Y3QgcHBwICpwcHApXG4ge1xuLVx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZXJyb3JzO1xuJiM0MztcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfZXJyb3JzKTtcbiBcdGlmIChwcHAtXHUwMDNldmopXG4gXHRcdHNsaGNfdG9zcyhwcHAtXHUwMDNldmopO1xuIH1cbkBAIC0yNjU4LDcgJiM0MzsyNjU4LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0ICovXG4gXHRpZiAoc2VxX2JlZm9yZShzZXEsIHBwcC1cdTAwM2VuZXh0c2VxKSkge1xuIFx0XHRrZnJlZV9za2Ioc2tiKTtcbi1cdFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcbiYjNDM7XHRcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfZHJvcHBlZCk7XG4gXHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbkBAIC0yNjk0LDcgJiM0MzsyNjk0LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0XHRpZiAocHNrYl9tYXlfcHVsbChza2IsIDIpKVxuIFx0XHRcdHBwcF9yZWNlaXZlX25vbm1wX2ZyYW1lKHBwcCwgc2tiKTtcbiBcdFx0ZWxzZSB7XG4tXHRcdFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcbiYjNDM7XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcbiBcdFx0XHRrZnJlZV9za2Ioc2tiKTtcbiBcdFx0XHRwcHBfcmVjZWl2ZV9lcnJvcihwcHApO1xuIFx0XHR9XG5AQCAtMjgwMCw3ICYjNDM7MjgwMCw3IEBAIHBwcF9tcF9yZWNvbnN0cnVjdChzdHJ1Y3QgcHBwICpwcHApXG4gXHRcdGlmIChsb3N0ID09IDAgXHUwMDI2XHUwMDI2IChQUFBfTVBfQ0IocCktXHUwMDNlQkViaXRzIFx1MDAyNiBFKSBcdTAwMjZcdTAwMjZcbiBcdFx0ICAgIChQUFBfTVBfQ0IoaGVhZCktXHUwMDNlQkViaXRzIFx1MDAyNiBCKSkge1xuIFx0XHRcdGlmIChsZW4gXHUwMDNlIHBwcC1cdTAwM2VtcnJ1ICYjNDM7IDIpIHtcbi1cdFx0XHRcdCYjNDM7JiM0MztwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnJ4X2xlbmd0aF9lcnJvcnM7XG4mIzQzO1x0XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcbiBcdFx0XHRcdG5ldGRldl9wcmludGsoS0VSTl9ERUJVRywgcHBwLVx1MDAzZWRldixcbiBcdFx0XHRcdFx0ICAgICAgXCYjMzQ7UFBQOiByZWNvbnN0cnVjdGVkIHBhY2tldFwmIzM0O1xuIFx0XHRcdFx0XHQgICAgICBcJiMzNDsgaXMgdG9vIGxvbmcgKCVkKVxcblwmIzM0OywgbGVuKTtcbkBAIC0yODU1LDcgJiM0MzsyODU1LDcgQEAgcHBwX21wX3JlY29uc3RydWN0KHN0cnVjdCBwcHAgKnBwcClcbiBcdFx0XHRcdFx0ICAgICAgXCYjMzQ7ICBtaXNzZWQgcGt0cyAldS4uJXVcXG5cJiMzNDssXG4gXHRcdFx0XHRcdCAgICAgIHBwcC1cdTAwM2VuZXh0c2VxLFxuIFx0XHRcdFx0XHQgICAgICBQUFBfTVBfQ0IoaGVhZCktXHUwMDNlc2VxdWVuY2UtMSk7XG4tXHRcdFx0JiM0MzsmIzQzO3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcbiYjNDM7XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9kcm9wcGVkKTtcbiBcdFx0XHRwcHBfcmVjZWl2ZV9lcnJvcihwcHApO1xuIFx0XHR9XG4gXG5AQCAtMzMyMiw4ICYjNDM7MzMyMiw4IEBAIHBwcF9nZXRfc3RhdHMoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3QgcHBwX3N0YXRzICpzdClcbiBcdFx0c3QtXHUwMDNlcC5wcHBfb3BhY2tldHMgJiM0Mzs9IHR4X3BhY2tldHM7XG4gXHRcdHN0LVx1MDAzZXAucHBwX29ieXRlcyAmIzQzOz0gdHhfYnl0ZXM7XG4gXHR9XG4tXHRzdC1cdTAwM2VwLnBwcF9pZXJyb3JzID0gcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9lcnJvcnM7XG4tXHRzdC1cdTAwM2VwLnBwcF9vZXJyb3JzID0gcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4mIzQzO1x0c3QtXHUwMDNlcC5wcHBfaWVycm9ycyA9IERFVl9TVEFUU19SRUFEKHBwcC1cdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XG4mIzQzO1x0c3QtXHUwMDNlcC5wcHBfb2Vycm9ycyA9IERFVl9TVEFUU19SRUFEKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHRpZiAoIXZqKVxuIFx0XHRyZXR1cm47XG4gXHRzdC1cdTAwM2V2ai52anNfcGFja2V0cyA9IHZqLVx1MDAzZXNsc19vX2NvbXByZXNzZWQgJiM0MzsgdmotXHUwMDNlc2xzX29fdW5jb21wcmVzc2VkO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDExOjI3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXHUwMDNlc3RhdHMpIHdpdGggREVWX1NUQVRTX0lOQyBhbmQgREVWX1NUQVRTX1JFQUQgbWFjcm9zLiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcvY2xlYW51cCBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhbmQgdGhlcmVmb3JlIGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGJkYjY4ODg0ZTJlNDg2OGI5Yjc3ZDM5ZjdhN2VjMzk2MWYwMzIxZmMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAxNSAxMToyNzo0NyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKaW5kZXggNzE3YzFkM2FhOTUzODAuLmVmNTRlMGEwNDYyYTE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwpAQCAtMTQ4Miw3ICYjNDM7MTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKICBvdXRmOgogCWtmcmVlX3NrYihza2IpOwotCSYjNDM7JiM0MztkZXYtJmd0O3N0YXRzLnR4X2Ryb3BwZWQ7CiYjNDM7CURFVl9TVEFUU19JTkMoZGV2LCB0eF9kcm9wcGVkKTsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCkBAIC0xNTMyLDExICYjNDM7MTUzMiwxMSBAQCBwcHBfbmV0X3Npb2NkZXZwcml2YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqaWZyLAogc3RhdGljIHZvaWQKIHBwcF9nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKnN0YXRzNjQpCiB7Ci0Jc3RhdHM2NC0mZ3Q7cnhfZXJyb3JzICAgICAgICA9IGRldi0mZ3Q7c3RhdHMucnhfZXJyb3JzOwotCXN0YXRzNjQtJmd0O3R4X2Vycm9ycyAgICAgICAgPSBkZXYtJmd0O3N0YXRzLnR4X2Vycm9yczsKLQlzdGF0czY0LSZndDtyeF9kcm9wcGVkICAgICAgID0gZGV2LSZndDtzdGF0cy5yeF9kcm9wcGVkOwotCXN0YXRzNjQtJmd0O3R4X2Ryb3BwZWQgICAgICAgPSBkZXYtJmd0O3N0YXRzLnR4X2Ryb3BwZWQ7Ci0Jc3RhdHM2NC0mZ3Q7cnhfbGVuZ3RoX2Vycm9ycyA9IGRldi0mZ3Q7c3RhdHMucnhfbGVuZ3RoX2Vycm9yczsKJiM0MzsJc3RhdHM2NC0mZ3Q7cnhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZXJyb3JzKTsKJiM0MzsJc3RhdHM2NC0mZ3Q7dHhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgdHhfZXJyb3JzKTsKJiM0MzsJc3RhdHM2NC0mZ3Q7cnhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZHJvcHBlZCk7CiYjNDM7CXN0YXRzNjQtJmd0O3R4X2Ryb3BwZWQgICAgICAgPSBERVZfU1RBVFNfUkVBRChkZXYsIHR4X2Ryb3BwZWQpOwomIzQzOwlzdGF0czY0LSZndDtyeF9sZW5ndGhfZXJyb3JzID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9sZW5ndGhfZXJyb3JzKTsKIAlkZXZfZmV0Y2hfc3dfbmV0c3RhdHMoc3RhdHM2NCwgZGV2LSZndDt0c3RhdHMpOwogfQogCkBAIC0xODg5LDcgJiM0MzsxODg5LDcgQEAgcHBwX3ByZXBhcmVfdHhfc2tiKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKipwc2tiKQogCiAgZHJvcDoKIAlrZnJlZV9za2Ioc2tiKTsKLQkmIzQzOyYjNDM7cHBwLSZndDtkZXYtJmd0O3N0YXRzLnR4X2Vycm9yczsKJiM0MzsJREVWX1NUQVRTX0lOQyhwcHAtJmd0O2RldiwgdHhfZXJyb3JzKTsKIAlyZXR1cm4gMTsKIH0KIApAQCAtMjE1Niw3ICYjNDM7MjE1Niw3IEBAIHN0YXRpYyBpbnQgcHBwX21wX2V4cGxvZGUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogIGVycl9saW5lYXJpemU6CiAJaWYgKHBwcC0mZ3Q7ZGVidWcgJmFtcDsgMSkKIAkJbmV0ZGV2X2VycihwcHAtJmd0O2RldiwgJiMzNDtQUFA6IG5vIG1lbW9yeSAoZnJhZ21lbnQpXG4mIzM0Oyk7Ci0JJiM0MzsmIzQzO3BwcC0mZ3Q7ZGV2LSZndDtzdGF0cy50eF9lcnJvcnM7CiYjNDM7CURFVl9TVEFUU19JTkMocHBwLSZndDtkZXYsIHR4X2Vycm9ycyk7CiAJJiM0MzsmIzQzO3BwcC0mZ3Q7bnhzZXE7CiAJcmV0dXJuIDE7CS8qIGFiYW5kb24gdGhlIGZyYW1lICovCiB9CkBAIC0yMzI5LDcgJiM0MzsyMzI5LDcgQEAgcHBwX2lucHV0KHN0cnVjdCBwcHBfY2hhbm5lbCAqY2hhbiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlpZiAoIXBwcF9kZWNvbXByZXNzX3Byb3RvKHNrYikpIHsKIAkJa2ZyZWVfc2tiKHNrYik7CiAJCWlmIChwcHApIHsKLQkJCSYjNDM7JiM0MztwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfbGVuZ3RoX2Vycm9yczsKJiM0MzsJCQlERVZfU1RBVFNfSU5DKHBwcC0mZ3Q7ZGV2LCByeF9sZW5ndGhfZXJyb3JzKTsKIAkJCXBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7CiAJCX0KIAkJZ290byBkb25lOwpAQCAtMjM5MSw3ICYjNDM7MjM5MSw3IEBAIHBwcF9yZWNlaXZlX2ZyYW1lKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNoYW5uZWwgKnBjaCkKIHN0YXRpYyB2b2lkCiBwcHBfcmVjZWl2ZV9lcnJvcihzdHJ1Y3QgcHBwICpwcHApCiB7Ci0JJiM0MzsmIzQzO3BwcC0mZ3Q7ZGV2LSZndDtzdGF0cy5yeF9lcnJvcnM7CiYjNDM7CURFVl9TVEFUU19JTkMocHBwLSZndDtkZXYsIHJ4X2Vycm9ycyk7CiAJaWYgKHBwcC0mZ3Q7dmopCiAJCXNsaGNfdG9zcyhwcHAtJmd0O3ZqKTsKIH0KQEAgLTI2NTgsNyAmIzQzOzI2NTgsNyBAQCBwcHBfcmVjZWl2ZV9tcF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpCiAJICovCiAJaWYgKHNlcV9iZWZvcmUoc2VxLCBwcHAtJmd0O25leHRzZXEpKSB7CiAJCWtmcmVlX3NrYihza2IpOwotCQkmIzQzOyYjNDM7cHBwLSZndDtkZXYtJmd0O3N0YXRzLnJ4X2Ryb3BwZWQ7CiYjNDM7CQlERVZfU1RBVFNfSU5DKHBwcC0mZ3Q7ZGV2LCByeF9kcm9wcGVkKTsKIAkJcHBwX3JlY2VpdmVfZXJyb3IocHBwKTsKIAkJcmV0dXJuOwogCX0KQEAgLTI2OTQsNyAmIzQzOzI2OTQsNyBAQCBwcHBfcmVjZWl2ZV9tcF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpCiAJCWlmIChwc2tiX21heV9wdWxsKHNrYiwgMikpCiAJCQlwcHBfcmVjZWl2ZV9ub25tcF9mcmFtZShwcHAsIHNrYik7CiAJCWVsc2UgewotCQkJJiM0MzsmIzQzO3BwcC0mZ3Q7ZGV2LSZndDtzdGF0cy5yeF9sZW5ndGhfZXJyb3JzOwomIzQzOwkJCURFVl9TVEFUU19JTkMocHBwLSZndDtkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpOwogCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQlwcHBfcmVjZWl2ZV9lcnJvcihwcHApOwogCQl9CkBAIC0yODAwLDcgJiM0MzsyODAwLDcgQEAgcHBwX21wX3JlY29uc3RydWN0KHN0cnVjdCBwcHAgKnBwcCkKIAkJaWYgKGxvc3QgPT0gMCAmYW1wOyZhbXA7IChQUFBfTVBfQ0IocCktJmd0O0JFYml0cyAmYW1wOyBFKSAmYW1wOyZhbXA7CiAJCSAgICAoUFBQX01QX0NCKGhlYWQpLSZndDtCRWJpdHMgJmFtcDsgQikpIHsKIAkJCWlmIChsZW4gJmd0OyBwcHAtJmd0O21ycnUgJiM0MzsgMikgewotCQkJCSYjNDM7JiM0MztwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfbGVuZ3RoX2Vycm9yczsKJiM0MzsJCQkJREVWX1NUQVRTX0lOQyhwcHAtJmd0O2RldiwgcnhfbGVuZ3RoX2Vycm9ycyk7CiAJCQkJbmV0ZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBwcHAtJmd0O2RldiwKIAkJCQkJICAgICAgJiMzNDtQUFA6IHJlY29uc3RydWN0ZWQgcGFja2V0JiMzNDsKIAkJCQkJICAgICAgJiMzNDsgaXMgdG9vIGxvbmcgKCVkKVxuJiMzNDssIGxlbik7CkBAIC0yODU1LDcgJiM0MzsyODU1LDcgQEAgcHBwX21wX3JlY29uc3RydWN0KHN0cnVjdCBwcHAgKnBwcCkKIAkJCQkJICAgICAgJiMzNDsgIG1pc3NlZCBwa3RzICV1Li4ldVxuJiMzNDssCiAJCQkJCSAgICAgIHBwcC0mZ3Q7bmV4dHNlcSwKIAkJCQkJICAgICAgUFBQX01QX0NCKGhlYWQpLSZndDtzZXF1ZW5jZS0xKTsKLQkJCSYjNDM7JiM0MztwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfZHJvcHBlZDsKJiM0MzsJCQlERVZfU1RBVFNfSU5DKHBwcC0mZ3Q7ZGV2LCByeF9kcm9wcGVkKTsKIAkJCXBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7CiAJCX0KIApAQCAtMzMyMiw4ICYjNDM7MzMyMiw4IEBAIHBwcF9nZXRfc3RhdHMoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3QgcHBwX3N0YXRzICpzdCkKIAkJc3QtJmd0O3AucHBwX29wYWNrZXRzICYjNDM7PSB0eF9wYWNrZXRzOwogCQlzdC0mZ3Q7cC5wcHBfb2J5dGVzICYjNDM7PSB0eF9ieXRlczsKIAl9Ci0Jc3QtJmd0O3AucHBwX2llcnJvcnMgPSBwcHAtJmd0O2Rldi0mZ3Q7c3RhdHMucnhfZXJyb3JzOwotCXN0LSZndDtwLnBwcF9vZXJyb3JzID0gcHBwLSZndDtkZXYtJmd0O3N0YXRzLnR4X2Vycm9yczsKJiM0MzsJc3QtJmd0O3AucHBwX2llcnJvcnMgPSBERVZfU1RBVFNfUkVBRChwcHAtJmd0O2RldiwgcnhfZXJyb3JzKTsKJiM0MzsJc3QtJmd0O3AucHBwX29lcnJvcnMgPSBERVZfU1RBVFNfUkVBRChwcHAtJmd0O2RldiwgdHhfZXJyb3JzKTsKIAlpZiAoIXZqKQogCQlyZXR1cm47CiAJc3QtJmd0O3ZqLnZqc19wYWNrZXRzID0gdmotJmd0O3Nsc19vX2NvbXByZXNzZWQgJiM0MzsgdmotJmd0O3Nsc19vX3VuY29tcHJlc3NlZDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTE6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQyMQoJCQkJCQkJb3V0cHV0OiA4NwoJCQkJCQkJdGhvdWdodHM6IDE5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWZhY3RvcmluZyBOZXR3b3JrIERldmljZSBTdGF0aXN0aWNzIFVwZGF0ZXMgaW4gYHBwcF9nZW5lcmljLmNgKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jYCBpcyBjaGFuZ2luZyBob3cgdGhlIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgYXJlIGFjY2Vzc2VkLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHN3YXBwaW5nIGRpcmVjdCByZWFkcyBhbmQgd3JpdGVzIHRvIGBkZXYtJmd0O3N0YXRzYCB3aXRoIGBERVZfU1RBVFNfSU5DYCBhbmQgYERFVl9TVEFUU19SRUFEYC4gVGhpcyBsb29rcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIG1hY3JvIHJlcGxhY2VtZW50LCBub3RoaW5nIG1vcmUuIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0JiMzOTtzIGEgY29kZSBjbGVhbnVwLCBhIHJlZmFjdG9yaW5nIGZvciBzdGF0aXN0aWNzIGhhbmRsaW5nLCBidXQgaXQgKmRvZXNuJiMzOTt0KiB0b3VjaCB0aGUgZnVuZGFtZW50YWwgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbCYjMzk7cyBQUFAgaW1wbGVtZW50YXRpb24uCgpMZXQgbWUganVzdCBxdWlja2x5IHZlcmlmeSB3aGVyZSB0aG9zZSBtYWNyb3MgYXJlIGRlZmluZWQuIEkmIzM5O20gYmV0dGluZyB0aGV5JiMzOTtyZSBpbiBgaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaGAuIFJpZ2h0LCBzbyB0aGV5JiMzOTtyZSBwcm9iYWJseSBzb21lIGtpbmQgb2Ygd3JhcHBlciBmb3IgdXBkYXRpbmcgc3RhdHMuIEl0IGNvdWxkIGJlIGZvciBhdG9taWMgdXBkYXRlcywgcGVyaGFwcyBwZXItQ1BVIGNvdW50ZXJzLCBvciBqdXN0IGEgbW9yZSBnZW5lcmljIGFuZCBjb25zaXN0ZW50IHdheSB0byBoYW5kbGUgdGhlc2Ugc3RhdGlzdGljcy4gR2l2ZW4gdGhhdCBpdCAqb25seSogZGVhbHMgd2l0aCBzdGF0cyB1cGRhdGVzLCBpdCYjMzk7cyBub3QgdGhlIGtpbmQgb2YgY2hhbmdlIHRoYXQgd291bGQgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGZsYXdzIHRoYXQgd291bGQgYmUgZXhwb3NlZCBieSBmdXp6aW5nLgoKR2l2ZW4gYWxsIHRoaXMsIEkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0JiMzOTtzIGEgbm9uLWlzc3VlIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDExOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgZGlyZWN0IGFjY2Vzc2VzIHRvIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgKGRldi1cdTAwM2VzdGF0cykgd2l0aCBERVZfU1RBVFNfSU5DIGFuZCBERVZfU1RBVFNfUkVBRCBtYWNyb3MuIFRoaXMgaXMgYSByZWZhY3RvcmluZy9jbGVhbnVwIGNoYW5nZSB0aGF0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFuZCB0aGVyZWZvcmUgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVwbGFjZXMgZGlyZWN0IGFjY2Vzc2VzIHRvIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgKGRldi1cdTAwM2VzdGF0cykgd2l0aCBERVZfU1RBVFNfSU5DIGFuZCBERVZfU1RBVFNfUkVBRCBtYWNyb3MuIFRoaXMgaXMgYSByZWZhY3RvcmluZy9jbGVhbnVwIGNoYW5nZSB0aGF0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFuZCB0aGVyZWZvcmUgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDExOjI3OjQ4Ljk5NTAyNTA0M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MTE5OTM1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXFx1MDAzZXN0YXRzKSB3aXRoIERFVl9TVEFUU19JTkMgYW5kIERFVl9TVEFUU19SRUFEIG1hY3Jvcy4gVGhpcyBpcyBhIHJlZmFjdG9yaW5nL2NsZWFudXAgY2hhbmdlIHRoYXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYW5kIHRoZXJlZm9yZSBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMToyNzo0OC45OTUwMzA5MDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMjk2NDA2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGJkYjY4ODg0ZTJlNDg2OGI5Yjc3ZDM5ZjdhN2VjMzk2MWYwMzIxZmNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMTUgMTE6Mjc6NDcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xcbmluZGV4IDcxN2MxZDNhYTk1MzgwLi5lZjU0ZTBhMDQ2MmExNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXFxuQEAgLTE0ODIsNyArMTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcbiAgb3V0ZjpcXG4gXFx0a2ZyZWVfc2tiKHNrYik7XFxuLVxcdCsrZGV2LVxcdTAwM2VzdGF0cy50eF9kcm9wcGVkO1xcbitcXHRERVZfU1RBVFNfSU5DKGRldiwgdHhfZHJvcHBlZCk7XFxuIFxcdHJldHVybiBORVRERVZfVFhfT0s7XFxuIH1cXG4gXFxuQEAgLTE1MzIsMTEgKzE1MzIsMTEgQEAgcHBwX25ldF9zaW9jZGV2cHJpdmF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmcixcXG4gc3RhdGljIHZvaWRcXG4gcHBwX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHM2NClcXG4ge1xcbi1cXHRzdGF0czY0LVxcdTAwM2VyeF9lcnJvcnMgICAgICAgID0gZGV2LVxcdTAwM2VzdGF0cy5yeF9lcnJvcnM7XFxuLVxcdHN0YXRzNjQtXFx1MDAzZXR4X2Vycm9ycyAgICAgICAgPSBkZXYtXFx1MDAzZXN0YXRzLnR4X2Vycm9ycztcXG4tXFx0c3RhdHM2NC1cXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IGRldi1cXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcXG4tXFx0c3RhdHM2NC1cXHUwMDNldHhfZHJvcHBlZCAgICAgICA9IGRldi1cXHUwMDNlc3RhdHMudHhfZHJvcHBlZDtcXG4tXFx0c3RhdHM2NC1cXHUwMDNlcnhfbGVuZ3RoX2Vycm9ycyA9IGRldi1cXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcXG4rXFx0c3RhdHM2NC1cXHUwMDNlcnhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZXJyb3JzKTtcXG4rXFx0c3RhdHM2NC1cXHUwMDNldHhfZXJyb3JzICAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgdHhfZXJyb3JzKTtcXG4rXFx0c3RhdHM2NC1cXHUwMDNlcnhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgcnhfZHJvcHBlZCk7XFxuK1xcdHN0YXRzNjQtXFx1MDAzZXR4X2Ryb3BwZWQgICAgICAgPSBERVZfU1RBVFNfUkVBRChkZXYsIHR4X2Ryb3BwZWQpO1xcbitcXHRzdGF0czY0LVxcdTAwM2VyeF9sZW5ndGhfZXJyb3JzID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcXG4gXFx0ZGV2X2ZldGNoX3N3X25ldHN0YXRzKHN0YXRzNjQsIGRldi1cXHUwMDNldHN0YXRzKTtcXG4gfVxcbiBcXG5AQCAtMTg4OSw3ICsxODg5LDcgQEAgcHBwX3ByZXBhcmVfdHhfc2tiKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKipwc2tiKVxcbiBcXG4gIGRyb3A6XFxuIFxcdGtmcmVlX3NrYihza2IpO1xcbi1cXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy50eF9lcnJvcnM7XFxuK1xcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHR4X2Vycm9ycyk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuIFxcbkBAIC0yMTU2LDcgKzIxNTYsNyBAQCBzdGF0aWMgaW50IHBwcF9tcF9leHBsb2RlKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gIGVycl9saW5lYXJpemU6XFxuIFxcdGlmIChwcHAtXFx1MDAzZWRlYnVnIFxcdTAwMjYgMSlcXG4gXFx0XFx0bmV0ZGV2X2VycihwcHAtXFx1MDAzZWRldiwgXFxcIlBQUDogbm8gbWVtb3J5IChmcmFnbWVudClcXFxcblxcXCIpO1xcbi1cXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy50eF9lcnJvcnM7XFxuK1xcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHR4X2Vycm9ycyk7XFxuIFxcdCsrcHBwLVxcdTAwM2VueHNlcTtcXG4gXFx0cmV0dXJuIDE7XFx0LyogYWJhbmRvbiB0aGUgZnJhbWUgKi9cXG4gfVxcbkBAIC0yMzI5LDcgKzIzMjksNyBAQCBwcHBfaW5wdXQoc3RydWN0IHBwcF9jaGFubmVsICpjaGFuLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHRpZiAoIXBwcF9kZWNvbXByZXNzX3Byb3RvKHNrYikpIHtcXG4gXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuIFxcdFxcdGlmIChwcHApIHtcXG4tXFx0XFx0XFx0KytwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcXG4rXFx0XFx0XFx0REVWX1NUQVRTX0lOQyhwcHAtXFx1MDAzZWRldiwgcnhfbGVuZ3RoX2Vycm9ycyk7XFxuIFxcdFxcdFxcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XFxuIFxcdFxcdH1cXG4gXFx0XFx0Z290byBkb25lO1xcbkBAIC0yMzkxLDcgKzIzOTEsNyBAQCBwcHBfcmVjZWl2ZV9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpXFxuIHN0YXRpYyB2b2lkXFxuIHBwcF9yZWNlaXZlX2Vycm9yKHN0cnVjdCBwcHAgKnBwcClcXG4ge1xcbi1cXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy5yeF9lcnJvcnM7XFxuK1xcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XFxuIFxcdGlmIChwcHAtXFx1MDAzZXZqKVxcbiBcXHRcXHRzbGhjX3Rvc3MocHBwLVxcdTAwM2V2aik7XFxuIH1cXG5AQCAtMjY1OCw3ICsyNjU4LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxcbiBcXHQgKi9cXG4gXFx0aWYgKHNlcV9iZWZvcmUoc2VxLCBwcHAtXFx1MDAzZW5leHRzZXEpKSB7XFxuIFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbi1cXHRcXHQrK3BwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy5yeF9kcm9wcGVkO1xcbitcXHRcXHRERVZfU1RBVFNfSU5DKHBwcC1cXHUwMDNlZGV2LCByeF9kcm9wcGVkKTtcXG4gXFx0XFx0cHBwX3JlY2VpdmVfZXJyb3IocHBwKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuQEAgLTI2OTQsNyArMjY5NCw3IEBAIHBwcF9yZWNlaXZlX21wX2ZyYW1lKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNoYW5uZWwgKnBjaClcXG4gXFx0XFx0aWYgKHBza2JfbWF5X3B1bGwoc2tiLCAyKSlcXG4gXFx0XFx0XFx0cHBwX3JlY2VpdmVfbm9ubXBfZnJhbWUocHBwLCBza2IpO1xcbiBcXHRcXHRlbHNlIHtcXG4tXFx0XFx0XFx0KytwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcXG4rXFx0XFx0XFx0REVWX1NUQVRTX0lOQyhwcHAtXFx1MDAzZWRldiwgcnhfbGVuZ3RoX2Vycm9ycyk7XFxuIFxcdFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbiBcXHRcXHRcXHRwcHBfcmVjZWl2ZV9lcnJvcihwcHApO1xcbiBcXHRcXHR9XFxuQEAgLTI4MDAsNyArMjgwMCw3IEBAIHBwcF9tcF9yZWNvbnN0cnVjdChzdHJ1Y3QgcHBwICpwcHApXFxuIFxcdFxcdGlmIChsb3N0ID09IDAgXFx1MDAyNlxcdTAwMjYgKFBQUF9NUF9DQihwKS1cXHUwMDNlQkViaXRzIFxcdTAwMjYgRSkgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0ICAgIChQUFBfTVBfQ0IoaGVhZCktXFx1MDAzZUJFYml0cyBcXHUwMDI2IEIpKSB7XFxuIFxcdFxcdFxcdGlmIChsZW4gXFx1MDAzZSBwcHAtXFx1MDAzZW1ycnUgKyAyKSB7XFxuLVxcdFxcdFxcdFxcdCsrcHBwLVxcdTAwM2VkZXYtXFx1MDAzZXN0YXRzLnJ4X2xlbmd0aF9lcnJvcnM7XFxuK1xcdFxcdFxcdFxcdERFVl9TVEFUU19JTkMocHBwLVxcdTAwM2VkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xcbiBcXHRcXHRcXHRcXHRuZXRkZXZfcHJpbnRrKEtFUk5fREVCVUcsIHBwcC1cXHUwMDNlZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBcXFwiUFBQOiByZWNvbnN0cnVjdGVkIHBhY2tldFxcXCJcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgXFxcIiBpcyB0b28gbG9uZyAoJWQpXFxcXG5cXFwiLCBsZW4pO1xcbkBAIC0yODU1LDcgKzI4NTUsNyBAQCBwcHBfbXBfcmVjb25zdHJ1Y3Qoc3RydWN0IHBwcCAqcHBwKVxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBcXFwiICBtaXNzZWQgcGt0cyAldS4uJXVcXFxcblxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgIHBwcC1cXHUwMDNlbmV4dHNlcSxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgUFBQX01QX0NCKGhlYWQpLVxcdTAwM2VzZXF1ZW5jZS0xKTtcXG4tXFx0XFx0XFx0KytwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcXG4rXFx0XFx0XFx0REVWX1NUQVRTX0lOQyhwcHAtXFx1MDAzZWRldiwgcnhfZHJvcHBlZCk7XFxuIFxcdFxcdFxcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XFxuIFxcdFxcdH1cXG4gXFxuQEAgLTMzMjIsOCArMzMyMiw4IEBAIHBwcF9nZXRfc3RhdHMoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3QgcHBwX3N0YXRzICpzdClcXG4gXFx0XFx0c3QtXFx1MDAzZXAucHBwX29wYWNrZXRzICs9IHR4X3BhY2tldHM7XFxuIFxcdFxcdHN0LVxcdTAwM2VwLnBwcF9vYnl0ZXMgKz0gdHhfYnl0ZXM7XFxuIFxcdH1cXG4tXFx0c3QtXFx1MDAzZXAucHBwX2llcnJvcnMgPSBwcHAtXFx1MDAzZWRldi1cXHUwMDNlc3RhdHMucnhfZXJyb3JzO1xcbi1cXHRzdC1cXHUwMDNlcC5wcHBfb2Vycm9ycyA9IHBwcC1cXHUwMDNlZGV2LVxcdTAwM2VzdGF0cy50eF9lcnJvcnM7XFxuK1xcdHN0LVxcdTAwM2VwLnBwcF9pZXJyb3JzID0gREVWX1NUQVRTX1JFQUQocHBwLVxcdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XFxuK1xcdHN0LVxcdTAwM2VwLnBwcF9vZXJyb3JzID0gREVWX1NUQVRTX1JFQUQocHBwLVxcdTAwM2VkZXYsIHR4X2Vycm9ycyk7XFxuIFxcdGlmICghdmopXFxuIFxcdFxcdHJldHVybjtcXG4gXFx0c3QtXFx1MDAzZXZqLnZqc19wYWNrZXRzID0gdmotXFx1MDAzZXNsc19vX2NvbXByZXNzZWQgKyB2ai1cXHUwMDNlc2xzX29fdW5jb21wcmVzc2VkO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMToyNzo0OS43MTEwNzAyNTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxOTU5Mzc5ODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGRpcmVjdCBhY2Nlc3NlcyB0byBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIChkZXYtXFx1MDAzZXN0YXRzKSB3aXRoIERFVl9TVEFUU19JTkMgYW5kIERFVl9TVEFUU19SRUFEIG1hY3Jvcy4gVGhpcyBpcyBhIHJlZmFjdG9yaW5nL2NsZWFudXAgY2hhbmdlIHRoYXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYW5kIHRoZXJlZm9yZSBkb2VzIG5vdCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJkYjY4ODg0ZTJlNDg2OGI5Yjc3ZDM5ZjdhN2VjMzk2MWYwMzIxZmNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxMToyNzo0NyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbmluZGV4IDcxN2MxZDNhYTk1MzgwLi5lZjU0ZTBhMDQ2MmExNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG4rKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuQEAgLTE0ODIsNyArMTQ4Miw3IEBAIHBwcF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXG4gIG91dGY6XG4gXHRrZnJlZV9za2Ioc2tiKTtcbi1cdCsrZGV2LVx1MDAzZXN0YXRzLnR4X2Ryb3BwZWQ7XG4rXHRERVZfU1RBVFNfSU5DKGRldiwgdHhfZHJvcHBlZCk7XG4gXHRyZXR1cm4gTkVUREVWX1RYX09LO1xuIH1cbiBcbkBAIC0xNTMyLDExICsxNTMyLDExIEBAIHBwcF9uZXRfc2lvY2RldnByaXZhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsXG4gc3RhdGljIHZvaWRcbiBwcHBfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0czY0KVxuIHtcbi1cdHN0YXRzNjQtXHUwMDNlcnhfZXJyb3JzICAgICAgICA9IGRldi1cdTAwM2VzdGF0cy5yeF9lcnJvcnM7XG4tXHRzdGF0czY0LVx1MDAzZXR4X2Vycm9ycyAgICAgICAgPSBkZXYtXHUwMDNlc3RhdHMudHhfZXJyb3JzO1xuLVx0c3RhdHM2NC1cdTAwM2VyeF9kcm9wcGVkICAgICAgID0gZGV2LVx1MDAzZXN0YXRzLnJ4X2Ryb3BwZWQ7XG4tXHRzdGF0czY0LVx1MDAzZXR4X2Ryb3BwZWQgICAgICAgPSBkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZDtcbi1cdHN0YXRzNjQtXHUwMDNlcnhfbGVuZ3RoX2Vycm9ycyA9IGRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuK1x0c3RhdHM2NC1cdTAwM2VyeF9lcnJvcnMgICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9lcnJvcnMpO1xuK1x0c3RhdHM2NC1cdTAwM2V0eF9lcnJvcnMgICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCB0eF9lcnJvcnMpO1xuK1x0c3RhdHM2NC1cdTAwM2VyeF9kcm9wcGVkICAgICAgID0gREVWX1NUQVRTX1JFQUQoZGV2LCByeF9kcm9wcGVkKTtcbitcdHN0YXRzNjQtXHUwMDNldHhfZHJvcHBlZCAgICAgICA9IERFVl9TVEFUU19SRUFEKGRldiwgdHhfZHJvcHBlZCk7XG4rXHRzdGF0czY0LVx1MDAzZXJ4X2xlbmd0aF9lcnJvcnMgPSBERVZfU1RBVFNfUkVBRChkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0ZGV2X2ZldGNoX3N3X25ldHN0YXRzKHN0YXRzNjQsIGRldi1cdTAwM2V0c3RhdHMpO1xuIH1cbiBcbkBAIC0xODg5LDcgKzE4ODksNyBAQCBwcHBfcHJlcGFyZV90eF9za2Ioc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqKnBza2IpXG4gXG4gIGRyb3A6XG4gXHRrZnJlZV9za2Ioc2tiKTtcbi1cdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4rXHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHRyZXR1cm4gMTtcbiB9XG4gXG5AQCAtMjE1Niw3ICsyMTU2LDcgQEAgc3RhdGljIGludCBwcHBfbXBfZXhwbG9kZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IpXG4gIGVycl9saW5lYXJpemU6XG4gXHRpZiAocHBwLVx1MDAzZWRlYnVnIFx1MDAyNiAxKVxuIFx0XHRuZXRkZXZfZXJyKHBwcC1cdTAwM2VkZXYsIFwiUFBQOiBubyBtZW1vcnkgKGZyYWdtZW50KVxcblwiKTtcbi1cdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy50eF9lcnJvcnM7XG4rXHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHQrK3BwcC1cdTAwM2VueHNlcTtcbiBcdHJldHVybiAxO1x0LyogYWJhbmRvbiB0aGUgZnJhbWUgKi9cbiB9XG5AQCAtMjMyOSw3ICsyMzI5LDcgQEAgcHBwX2lucHV0KHN0cnVjdCBwcHBfY2hhbm5lbCAqY2hhbiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcdGlmICghcHBwX2RlY29tcHJlc3NfcHJvdG8oc2tiKSkge1xuIFx0XHRrZnJlZV9za2Ioc2tiKTtcbiBcdFx0aWYgKHBwcCkge1xuLVx0XHRcdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuK1x0XHRcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfbGVuZ3RoX2Vycm9ycyk7XG4gXHRcdFx0cHBwX3JlY2VpdmVfZXJyb3IocHBwKTtcbiBcdFx0fVxuIFx0XHRnb3RvIGRvbmU7XG5AQCAtMjM5MSw3ICsyMzkxLDcgQEAgcHBwX3JlY2VpdmVfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIHN0YXRpYyB2b2lkXG4gcHBwX3JlY2VpdmVfZXJyb3Ioc3RydWN0IHBwcCAqcHBwKVxuIHtcbi1cdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9lcnJvcnM7XG4rXHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2Vycm9ycyk7XG4gXHRpZiAocHBwLVx1MDAzZXZqKVxuIFx0XHRzbGhjX3Rvc3MocHBwLVx1MDAzZXZqKTtcbiB9XG5AQCAtMjY1OCw3ICsyNjU4LDcgQEAgcHBwX3JlY2VpdmVfbXBfZnJhbWUoc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0ICovXG4gXHRpZiAoc2VxX2JlZm9yZShzZXEsIHBwcC1cdTAwM2VuZXh0c2VxKSkge1xuIFx0XHRrZnJlZV9za2Ioc2tiKTtcbi1cdFx0KytwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnJ4X2Ryb3BwZWQ7XG4rXHRcdERFVl9TVEFUU19JTkMocHBwLVx1MDAzZWRldiwgcnhfZHJvcHBlZCk7XG4gXHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbkBAIC0yNjk0LDcgKzI2OTQsNyBAQCBwcHBfcmVjZWl2ZV9tcF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRcdGlmIChwc2tiX21heV9wdWxsKHNrYiwgMikpXG4gXHRcdFx0cHBwX3JlY2VpdmVfbm9ubXBfZnJhbWUocHBwLCBza2IpO1xuIFx0XHRlbHNlIHtcbi1cdFx0XHQrK3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfbGVuZ3RoX2Vycm9ycztcbitcdFx0XHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2xlbmd0aF9lcnJvcnMpO1xuIFx0XHRcdGtmcmVlX3NrYihza2IpO1xuIFx0XHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdH1cbkBAIC0yODAwLDcgKzI4MDAsNyBAQCBwcHBfbXBfcmVjb25zdHJ1Y3Qoc3RydWN0IHBwcCAqcHBwKVxuIFx0XHRpZiAobG9zdCA9PSAwIFx1MDAyNlx1MDAyNiAoUFBQX01QX0NCKHApLVx1MDAzZUJFYml0cyBcdTAwMjYgRSkgXHUwMDI2XHUwMDI2XG4gXHRcdCAgICAoUFBQX01QX0NCKGhlYWQpLVx1MDAzZUJFYml0cyBcdTAwMjYgQikpIHtcbiBcdFx0XHRpZiAobGVuIFx1MDAzZSBwcHAtXHUwMDNlbXJydSArIDIpIHtcbi1cdFx0XHRcdCsrcHBwLVx1MDAzZWRldi1cdTAwM2VzdGF0cy5yeF9sZW5ndGhfZXJyb3JzO1xuK1x0XHRcdFx0REVWX1NUQVRTX0lOQyhwcHAtXHUwMDNlZGV2LCByeF9sZW5ndGhfZXJyb3JzKTtcbiBcdFx0XHRcdG5ldGRldl9wcmludGsoS0VSTl9ERUJVRywgcHBwLVx1MDAzZWRldixcbiBcdFx0XHRcdFx0ICAgICAgXCJQUFA6IHJlY29uc3RydWN0ZWQgcGFja2V0XCJcbiBcdFx0XHRcdFx0ICAgICAgXCIgaXMgdG9vIGxvbmcgKCVkKVxcblwiLCBsZW4pO1xuQEAgLTI4NTUsNyArMjg1NSw3IEBAIHBwcF9tcF9yZWNvbnN0cnVjdChzdHJ1Y3QgcHBwICpwcHApXG4gXHRcdFx0XHRcdCAgICAgIFwiICBtaXNzZWQgcGt0cyAldS4uJXVcXG5cIixcbiBcdFx0XHRcdFx0ICAgICAgcHBwLVx1MDAzZW5leHRzZXEsXG4gXHRcdFx0XHRcdCAgICAgIFBQUF9NUF9DQihoZWFkKS1cdTAwM2VzZXF1ZW5jZS0xKTtcbi1cdFx0XHQrK3BwcC1cdTAwM2VkZXYtXHUwMDNlc3RhdHMucnhfZHJvcHBlZDtcbitcdFx0XHRERVZfU1RBVFNfSU5DKHBwcC1cdTAwM2VkZXYsIHJ4X2Ryb3BwZWQpO1xuIFx0XHRcdHBwcF9yZWNlaXZlX2Vycm9yKHBwcCk7XG4gXHRcdH1cbiBcbkBAIC0zMzIyLDggKzMzMjIsOCBAQCBwcHBfZ2V0X3N0YXRzKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHBwcF9zdGF0cyAqc3QpXG4gXHRcdHN0LVx1MDAzZXAucHBwX29wYWNrZXRzICs9IHR4X3BhY2tldHM7XG4gXHRcdHN0LVx1MDAzZXAucHBwX29ieXRlcyArPSB0eF9ieXRlcztcbiBcdH1cbi1cdHN0LVx1MDAzZXAucHBwX2llcnJvcnMgPSBwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnJ4X2Vycm9ycztcbi1cdHN0LVx1MDAzZXAucHBwX29lcnJvcnMgPSBwcHAtXHUwMDNlZGV2LVx1MDAzZXN0YXRzLnR4X2Vycm9ycztcbitcdHN0LVx1MDAzZXAucHBwX2llcnJvcnMgPSBERVZfU1RBVFNfUkVBRChwcHAtXHUwMDNlZGV2LCByeF9lcnJvcnMpO1xuK1x0c3QtXHUwMDNlcC5wcHBfb2Vycm9ycyA9IERFVl9TVEFUU19SRUFEKHBwcC1cdTAwM2VkZXYsIHR4X2Vycm9ycyk7XG4gXHRpZiAoIXZqKVxuIFx0XHRyZXR1cm47XG4gXHRzdC1cdTAwM2V2ai52anNfcGFja2V0cyA9IHZqLVx1MDAzZXNsc19vX2NvbXByZXNzZWQgKyB2ai1cdTAwM2VzbHNfb191bmNvbXByZXNzZWQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMToyNzo0OS43MTEwNzI2MjNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTk1ODY5ODI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlZmFjdG9yaW5nIE5ldHdvcmsgRGV2aWNlIFN0YXRpc3RpY3MgVXBkYXRlcyBpbiBgcHBwX2dlbmVyaWMuY2AqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGluIGBkcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY2AgaXMgY2hhbmdpbmcgaG93IHRoZSBuZXR3b3JrIGRldmljZSBzdGF0aXN0aWNzIGFyZSBhY2Nlc3NlZC4gU3BlY2lmaWNhbGx5LCBpdCdzIHN3YXBwaW5nIGRpcmVjdCByZWFkcyBhbmQgd3JpdGVzIHRvIGBkZXYtXHUwMDNlc3RhdHNgIHdpdGggYERFVl9TVEFUU19JTkNgIGFuZCBgREVWX1NUQVRTX1JFQURgLiBUaGlzIGxvb2tzIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgbWFjcm8gcmVwbGFjZW1lbnQsIG5vdGhpbmcgbW9yZS4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgaXQncyBhIGNvZGUgY2xlYW51cCwgYSByZWZhY3RvcmluZyBmb3Igc3RhdGlzdGljcyBoYW5kbGluZywgYnV0IGl0ICpkb2Vzbid0KiB0b3VjaCB0aGUgZnVuZGFtZW50YWwgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbCdzIFBQUCBpbXBsZW1lbnRhdGlvbi5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSB2ZXJpZnkgd2hlcmUgdGhvc2UgbWFjcm9zIGFyZSBkZWZpbmVkLiBJJ20gYmV0dGluZyB0aGV5J3JlIGluIGBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oYC4gUmlnaHQsIHNvIHRoZXkncmUgcHJvYmFibHkgc29tZSBraW5kIG9mIHdyYXBwZXIgZm9yIHVwZGF0aW5nIHN0YXRzLiBJdCBjb3VsZCBiZSBmb3IgYXRvbWljIHVwZGF0ZXMsIHBlcmhhcHMgcGVyLUNQVSBjb3VudGVycywgb3IganVzdCBhIG1vcmUgZ2VuZXJpYyBhbmQgY29uc2lzdGVudCB3YXkgdG8gaGFuZGxlIHRoZXNlIHN0YXRpc3RpY3MuIEdpdmVuIHRoYXQgaXQgKm9ubHkqIGRlYWxzIHdpdGggc3RhdHMgdXBkYXRlcywgaXQncyBub3QgdGhlIGtpbmQgb2YgY2hhbmdlIHRoYXQgd291bGQgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGZsYXdzIHRoYXQgd291bGQgYmUgZXhwb3NlZCBieSBmdXp6aW5nLlxuXG5HaXZlbiBhbGwgdGhpcywgSSdtIGNvbmZpZGVudCBpbiBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCdzIGEgbm9uLWlzc3VlIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDIxLCJPdXRwdXRUb2tlbnMiOjg3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTE6Mjc6NTQuOTA2OTQ1MjE5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDg0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBkaXJlY3QgYWNjZXNzZXMgdG8gbmV0d29yayBkZXZpY2Ugc3RhdGlzdGljcyAoZGV2LVxcdTAwM2VzdGF0cykgd2l0aCBERVZfU1RBVFNfSU5DIGFuZCBERVZfU1RBVFNfUkVBRCBtYWNyb3MuIFRoaXMgaXMgYSByZWZhY3RvcmluZy9jbGVhbnVwIGNoYW5nZSB0aGF0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFuZCB0aGVyZWZvcmUgZG9lcyBub3QgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgZGlyZWN0IGFjY2Vzc2VzIHRvIG5ldHdvcmsgZGV2aWNlIHN0YXRpc3RpY3MgKGRldi1cXHUwMDNlc3RhdHMpIHdpdGggREVWX1NUQVRTX0lOQyBhbmQgREVWX1NUQVRTX1JFQUQgbWFjcm9zLiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcvY2xlYW51cCBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhbmQgdGhlcmVmb3JlIGRvZXMgbm90IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowdkmr4[1] Phase: Running StartedAt: 2026-07-15 11:28:06 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdkmr4[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-15 11:28:06 +0000 UTC FinishedAt: 2026-07-15 11:28:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}