Name: series-workflowqmk2z Phase: Failed StartedAt: 2026-08-01 09:43:57 +0000 UTC FinishedAt: 2026-08-01 09:46:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqmk2z[0] Phase: Succeeded StartedAt: 2026-08-01 09:43:57 +0000 UTC FinishedAt: 2026-08-01 09:46:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqmk2z[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 09:43:57 +0000 UTC FinishedAt: 2026-08-01 09:46:23 +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+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzM3OTg0MjI2MDc4MzUyNGFkMzc2NDUwZjAzNTdmMTQzNTQ5MzUyYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDY6MDcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaCBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcbmluZGV4IDA5YWQ1N2FjNGI3M2UuLjkzMDExZjgwMGQwZjcgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oXG5AQCAtMzk4LDcgJiM0MzszOTgsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAjZGVmaW5lIF9UUkFDRV9QRVJGX0lOSVQoY2FsbClcbiAjZW5kaWYgLyogQ09ORklHX1BFUkZfRVZFTlRTICovXG4gXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4mIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4gLypcbiAgKiBQZXItdGVtcGxhdGUgQlRGIGlkIGxpc3QsIHBvcHVsYXRlZCBhdCBsaW5rIHRpbWUgYnkgcmVzb2x2ZV9idGZpZHM6XG4gICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlX1x1MDAzY2NhbGxcdTAwM2UgICAgICh0aGUgQlBGIGRpc3BhdGNoZXIpXG5AQCAtNDA2LDggJiM0Mzs0MDYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAgKiBFeHBvc2VkIHZpYSB0aGUgZXZlbnRzL1x1MDAzY3N5c1x1MDAzZS9cdTAwM2NuYW1lXHUwMDNlL2J0Zl9pZHMgdHJhY2VmcyBmaWxlLlxuICAqL1xuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVx0XHRcdFx0XHRcXFxuLVx0ZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbFtdO1x0XHRcdFxcXG4tXHRCVEZfSURfTElTVF9HTE9CQUwoX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGwsIDIpXHRcdFxcXG4mIzQzO1x0QlRGX0lEX0xJU1QoX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGwpXHRcdFx0XHRcXFxuIFx0QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2VfIyNjYWxsKVx0XHRcdFx0XFxcbiBcdEJURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd18jI2NhbGwpXG4gXG5AQCAtNDE3LDcgJiM0Mzs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAjZWxzZVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfSU5JVChjYWxsKVxuLSNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyAqL1xuJiM0MzsjZW5kaWYgLyogQ09ORklHX0JQRl9FVkVOVFMgXHUwMDI2XHUwMDI2IENPTkZJR19ERUJVR19JTkZPX0JURiAqL1xuIFxuICNpbmNsdWRlIFwmIzM0O3N0YWdlcy9zdGFnZTZfZXZlbnRfY2FsbGJhY2suaFwmIzM0O1xuIFxuZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbmluZGV4IDQ4ZWYxYTkzZTU3NjEuLmUzNTc0NDA0OWUzZjIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbkBAIC05LDYgJiM0Mzs5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9mdHJhY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BlcmZfZXZlbnQuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3hhcnJheS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2J0Zl9pZHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2FzbS9zeXNjYWxsLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcJiMzNDt0cmFjZV9vdXRwdXQuaFwmIzM0O1xuQEAgLTEzMDMsMTUgJiM0MzsxMzA0LDE1IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9mdW5jdGlvbnMgZXhpdF9zeXNjYWxsX3ByaW50X2Z1bmNzID0ge1xuIFx0LnRyYWNlXHRcdD0gcHJpbnRfc3lzY2FsbF9leGl0LFxuIH07XG4gXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4tLypcbi0gKiBCVEYgaWQgbGlzdHMgZ2VuZXJhdGVkIGJ5IERFQ0xBUkVfRVZFTlRfQ0xBU1MgZm9yIHRoZSBzeXNfZW50ZXIgYW5kXG4tICogc3lzX2V4aXQgdHJhY2Vwb2ludHMuIFRoZSBhdXRvLWdlbmVyYXRlZCBldmVudF9jbGFzc19zeXNfe2VudGVyLGV4aXR9XG4tICogaXMgdW51c2VkIChwZXItc3lzY2FsbCBldmVudHMgc2hhcmUgdGhlIGhhbmRjcmFmdGVkIGNsYXNzZXMgYmVsb3cpLFxuLSAqIGJ1dCB0aGUgaWQgbGlzdHMgdGhlbXNlbHZlcyBhcmUgZ2xvYmFsIGFuZCByZXVzYWJsZS5cbi0gKi9cbi1leHRlcm4gdTMyIF9fYnBmX3RyYWNlX2J0Zl9pZHNfc3lzX2VudGVyW107XG4tZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0W107XG4mIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4mIzQzOy8qIEJURiBpZCBsaXN0cyBmb3IgdGhlIHNoYXJlZCBzeXNfZW50ZXIvc3lzX2V4aXQgZGlzcGF0Y2hlciB0cmFjZXBvaW50cy4gKi9cbiYjNDM7QlRGX0lEX0xJU1Qoc3lzY2FsbF9lbnRlcl9idGZfaWRzKVxuJiM0MztCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZW50ZXIpXG4mIzQzO0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZW50ZXIpXG4mIzQzO1xuJiM0MztCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylcbiYjNDM7QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2V4aXQpXG4mIzQzO0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZXhpdClcbiAjZW5kaWZcbiBcbiBzdHJ1Y3QgdHJhY2VfZXZlbnRfY2xhc3MgX19yZWZkYXRhIGV2ZW50X2NsYXNzX3N5c2NhbGxfZW50ZXIgPSB7XG5AQCAtMTMyMCw4ICYjNDM7MTMyMSw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHtcbiBcdC5maWVsZHNfYXJyYXlcdD0gc3lzY2FsbF9lbnRlcl9maWVsZHNfYXJyYXksXG4gXHQuZ2V0X2ZpZWxkc1x0PSBzeXNjYWxsX2dldF9lbnRlcl9maWVsZHMsXG4gXHQucmF3X2luaXRcdD0gaW5pdF9zeXNjYWxsX3RyYWNlLFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuLVx0LmJ0Zl9pZHNcdD0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXIsXG4mIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4mIzQzO1x0LmJ0Zl9pZHNcdD0gc3lzY2FsbF9lbnRlcl9idGZfaWRzLFxuICNlbmRpZlxuIH07XG4gXG5AQCAtMTMzNSw4ICYjNDM7MTMzNiw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9leGl0ID0ge1xuIFx0fSxcbiBcdC5maWVsZHNcdFx0PSBMSVNUX0hFQURfSU5JVChldmVudF9jbGFzc19zeXNjYWxsX2V4aXQuZmllbGRzKSxcbiBcdC5yYXdfaW5pdFx0PSBpbml0X3N5c2NhbGxfdHJhY2UsXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4tXHQuYnRmX2lkc1x0PSBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0LFxuJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0RFQlVHX0lORk9fQlRGKVxuJiM0MztcdC5idGZfaWRzXHQ9IHN5c2NhbGxfZXhpdF9idGZfaWRzLFxuICNlbmRpZlxuIH07XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzM3OTg0MjI2MDc4MzUyNGFkMzc2NDUwZjAzNTdmMTQzNTQ5MzUyYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMDk6NDY6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oIGIvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaAppbmRleCAwOWFkNTdhYzRiNzNlLi45MzAxMWY4MDBkMGY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmgKQEAgLTM5OCw3ICYjNDM7Mzk4LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIGludCB0cmFjZV9ldmVudF9nZXRfb2Zmc2V0c18jI2NhbGwoCQlcCiAjZGVmaW5lIF9UUkFDRV9QRVJGX0lOSVQoY2FsbCkKICNlbmRpZiAvKiBDT05GSUdfUEVSRl9FVkVOVFMgKi8KIAotI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTCiYjNDM7I2lmIGRlZmluZWQoQ09ORklHX0JQRl9FVkVOVFMpICZhbXA7JmFtcDsgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpCiAvKgogICogUGVyLXRlbXBsYXRlIEJURiBpZCBsaXN0LCBwb3B1bGF0ZWQgYXQgbGluayB0aW1lIGJ5IHJlc29sdmVfYnRmaWRzOgogICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlXyZsdDtjYWxsJmd0OyAgICAgKHRoZSBCUEYgZGlzcGF0Y2hlcikKQEAgLTQwNiw4ICYjNDM7NDA2LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIGludCB0cmFjZV9ldmVudF9nZXRfb2Zmc2V0c18jI2NhbGwoCQlcCiAgKiBFeHBvc2VkIHZpYSB0aGUgZXZlbnRzLyZsdDtzeXMmZ3Q7LyZsdDtuYW1lJmd0Oy9idGZfaWRzIHRyYWNlZnMgZmlsZS4KICAqLwogI2RlZmluZSBfVFJBQ0VfQlRGX0lEU19ERUNMQVJFKGNhbGwpCQkJCQlcCi0JZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbFtdOwkJCVwKLQlCVEZfSURfTElTVF9HTE9CQUwoX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGwsIDIpCQlcCiYjNDM7CUJURl9JRF9MSVNUKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsKQkJCQlcCiAJQlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2VfIyNjYWxsKQkJCQlcCiAJQlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3XyMjY2FsbCkKIApAQCAtNDE3LDcgJiM0Mzs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbCgJCVwKICNlbHNlCiAjZGVmaW5lIF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbCkKICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfSU5JVChjYWxsKQotI2VuZGlmIC8qIENPTkZJR19CUEZfRVZFTlRTICovCiYjNDM7I2VuZGlmIC8qIENPTkZJR19CUEZfRVZFTlRTICZhbXA7JmFtcDsgQ09ORklHX0RFQlVHX0lORk9fQlRGICovCiAKICNpbmNsdWRlICYjMzQ7c3RhZ2VzL3N0YWdlNl9ldmVudF9jYWxsYmFjay5oJiMzNDsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYwppbmRleCA0OGVmMWE5M2U1NzYxLi5lMzU3NDQwNDllM2YyIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYwpAQCAtOSw2ICYjNDM7OSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvZnRyYWNlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGVyZl9ldmVudC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3hhcnJheS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9idGZfaWRzLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7YXNtL3N5c2NhbGwuaCZndDsKIAogI2luY2x1ZGUgJiMzNDt0cmFjZV9vdXRwdXQuaCYjMzQ7CkBAIC0xMzAzLDE1ICYjNDM7MTMwNCwxNSBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZnVuY3Rpb25zIGV4aXRfc3lzY2FsbF9wcmludF9mdW5jcyA9IHsKIAkudHJhY2UJCT0gcHJpbnRfc3lzY2FsbF9leGl0LAogfTsKIAotI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTCi0vKgotICogQlRGIGlkIGxpc3RzIGdlbmVyYXRlZCBieSBERUNMQVJFX0VWRU5UX0NMQVNTIGZvciB0aGUgc3lzX2VudGVyIGFuZAotICogc3lzX2V4aXQgdHJhY2Vwb2ludHMuIFRoZSBhdXRvLWdlbmVyYXRlZCBldmVudF9jbGFzc19zeXNfe2VudGVyLGV4aXR9Ci0gKiBpcyB1bnVzZWQgKHBlci1zeXNjYWxsIGV2ZW50cyBzaGFyZSB0aGUgaGFuZGNyYWZ0ZWQgY2xhc3NlcyBiZWxvdyksCi0gKiBidXQgdGhlIGlkIGxpc3RzIHRoZW1zZWx2ZXMgYXJlIGdsb2JhbCBhbmQgcmV1c2FibGUuCi0gKi8KLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXJbXTsKLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdFtdOwomIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSAmYW1wOyZhbXA7IGRlZmluZWQoQ09ORklHX0RFQlVHX0lORk9fQlRGKQomIzQzOy8qIEJURiBpZCBsaXN0cyBmb3IgdGhlIHNoYXJlZCBzeXNfZW50ZXIvc3lzX2V4aXQgZGlzcGF0Y2hlciB0cmFjZXBvaW50cy4gKi8KJiM0MztCVEZfSURfTElTVChzeXNjYWxsX2VudGVyX2J0Zl9pZHMpCiYjNDM7QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2VudGVyKQomIzQzO0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZW50ZXIpCiYjNDM7CiYjNDM7QlRGX0lEX0xJU1Qoc3lzY2FsbF9leGl0X2J0Zl9pZHMpCiYjNDM7QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2V4aXQpCiYjNDM7QlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3X3N5c19leGl0KQogI2VuZGlmCiAKIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHsKQEAgLTEzMjAsOCAmIzQzOzEzMjEsOCBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfY2xhc3MgX19yZWZkYXRhIGV2ZW50X2NsYXNzX3N5c2NhbGxfZW50ZXIgPSB7CiAJLmZpZWxkc19hcnJheQk9IHN5c2NhbGxfZW50ZXJfZmllbGRzX2FycmF5LAogCS5nZXRfZmllbGRzCT0gc3lzY2FsbF9nZXRfZW50ZXJfZmllbGRzLAogCS5yYXdfaW5pdAk9IGluaXRfc3lzY2FsbF90cmFjZSwKLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UUwotCS5idGZfaWRzCT0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXIsCiYjNDM7I2lmIGRlZmluZWQoQ09ORklHX0JQRl9FVkVOVFMpICZhbXA7JmFtcDsgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpCiYjNDM7CS5idGZfaWRzCT0gc3lzY2FsbF9lbnRlcl9idGZfaWRzLAogI2VuZGlmCiB9OwogCkBAIC0xMzM1LDggJiM0MzsxMzM2LDggQEAgc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzIF9fcmVmZGF0YSBldmVudF9jbGFzc19zeXNjYWxsX2V4aXQgPSB7CiAJfSwKIAkuZmllbGRzCQk9IExJU1RfSEVBRF9JTklUKGV2ZW50X2NsYXNzX3N5c2NhbGxfZXhpdC5maWVsZHMpLAogCS5yYXdfaW5pdAk9IGluaXRfc3lzY2FsbF90cmFjZSwKLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UUwotCS5idGZfaWRzCT0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdCwKJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgJmFtcDsmYW1wOyBkZWZpbmVkKENPTkZJR19ERUJVR19JTkZPX0JURikKJiM0MzsJLmJ0Zl9pZHMJPSBzeXNjYWxsX2V4aXRfYnRmX2lkcywKICNlbmRpZgogfTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjU0CgkJCQkJCQlvdXRwdXQ6IDgxCgkJCQkJCQl0aG91Z2h0czogNjE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBhdGNoIEFuYWx5c2lzOiBCVEYgSUQgRGVjbGFyYXRpb25zIGZvciBUcmFjZSBFdmVudHMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nIHNvbWUgQlRGIElEIGdlbmVyYXRpb24gb3IgY29tcGlsYXRpb24gcXVpcmtzIHJlbGF0ZWQgdG8gQlBGIGV2ZW50cyB3aXRoaW4gdGhlIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuIEl0JiMzOTtzIHRvdWNoaW5nIGBpbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oYCBhbmQgYGtlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jYCwgZm9jdXNpbmcgb24gdGhlIGRlY2xhcmF0aW9uIGFuZCBpbml0aWFsaXphdGlvbiBvZiBCVEYgSURzLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gc2VlaW5nIGNoYW5nZXMgYXJvdW5kIGhvdyBgQlRGX0lEX0xJU1RgIGlzIHVzZWQsIHJlcGxhY2luZyBgQlRGX0lEX0xJU1RfR0xPQkFMYCBpbiB0aGUgYF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbClgIG1hY3JvLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGd1YXJkaW5nIHRoZSBjb2RlIHdpdGggYm90aCBgQ09ORklHX0JQRl9FVkVOVFNgIGFuZCBgQ09ORklHX0RFQlVHX0lORk9fQlRGYCwgaW5zdGVhZCBvZiBqdXN0IHRoZSBmb3JtZXIsIHdoaWNoIGlzIGEga2V5IG9ic2VydmF0aW9uLiBUaGUgYWRkaXRpb24gb2YgYEJURl9JRF9MSVNUKHN5c2NhbGxfZW50ZXJfYnRmX2lkcylgIGFuZCBgQlRGX0lEX0xJU1Qoc3lzY2FsbF9leGl0X2J0Zl9pZHMpYCBpbiBgdHJhY2Vfc3lzY2FsbHMuY2AgaXMgYWxzbyBub3RpY2VhYmxlLgoKTXkgZmlyc3QgaW1wcmVzc2lvbiBpcyB0aGF0IHRoaXMgaXMgdW5saWtlbHkgdG8gaW50cm9kdWNlIGFueSBuZXcgZnV6emFibGUgc3VyZmFjZS4gVGhlIGNvcmUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gbWFjcm8gZGVmaW5pdGlvbnMgYW5kIEJURiBJRCBsaXN0IGRlY2xhcmF0aW9ucy4gSSB3YXMgaW5pdGlhbGx5IGdvaW5nIHRvIG1hcmsgaXQgYXMgbm90IHdvcnRoIGZ1enppbmcsIGJ1dCBpdCBpcyBhbHdheXMgZ29vZCB0byBjaGVjayB0byBlbnN1cmUgSSBkb24mIzM5O3QgbWlzcyBzb21ldGhpbmcuIEkgd2lsbCBtYWtlIHN1cmUgdGhpcyBpcyBzaW1wbHkgYSBjb21waWxhdGlvbiBmaXggYW5kIG5vdCBhIGNoYW5nZSB0byB0aGUgcnVudGltZSBiZWhhdmlvci4KCk9rYXksIGxldCYjMzk7cyBkaWcgYSBiaXQgZGVlcGVyLiBUaGVzZSBCVEYgSURzIGFyZSBjcml0aWNhbCBmb3IgQlBGIHByb2dyYW1zIHRvIHBlcmZvcm0gdHlwZSB2ZXJpZmljYXRpb24uIFRoZSBzd2l0Y2ggZnJvbSBhIGdsb2JhbCB0byBhIGxvY2FsIEJURiBJRCBsaXN0IGlzIGEgYml0IG1vcmUgaW50ZXJlc3RpbmcsIHRob3VnaC4gV2UmIzM5O3JlIG5vdyBkZWFsaW5nIHdpdGggc3RhdGljIGFycmF5cyAobG9jYWwpIGluc3RlYWQgb2YgZ2xvYmFsIG9uZXMuIEkgc2VlIHRoYXQgdGhlIG9yaWdpbmFsIGNvZGUsIGluc2lkZSBgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKWAgdXNlZCBgQlRGX0lEX0xJU1RfR0xPQkFMKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsLCAyKWAgYW5kIHRoYXQgYHRyYWNlX3N5c2NhbGxzLmNgIGhhZCBgZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19lbnRlcltdO2AuIE5vdywgYHN5c2NhbGxfZW50ZXJfYnRmX2lkc2AgaXMgZGVmaW5lZCBsb2NhbGx5IHdpdGhpbiBgdHJhY2Vfc3lzY2FsbHMuY2AuIFRoaXMgaXMgbG9va2luZyBsaWtlIGEgcmVmYWN0b3JpbmcvY2xlYW51cCwgcmF0aGVyIHRoYW4gZnVuY3Rpb25hbCBjaGFuZ2UuCgpBbHJpZ2h0LCBJJiMzOTttIGNvbmZpZGVudC4gVGhpcyBpcyBwdXJlbHkgYSBidWlsZC10aW1lL0JURiBnZW5lcmF0aW9uIGZpeCwgY29tcGxldGVseSBvcnRob2dvbmFsIHRvIGFueSBuZXcgZXhlY3V0aW9uIHBhdGhzIG9yIGxvZ2ljIHRoYXQgd291bGQgYmUgcmVsZXZhbnQgZm9yIGZ1enppbmcuIEl0IGRvZXMgbm90IHdhcnJhbnQgYW55IGZ1cnRoZXIgZnV6emluZyBlZmZvcnRzLiBJJiMzOTtsbCBmbGFnIGl0IGFzIFdvcnRoRnV6emluZz1mYWxzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJURiBJRCBsaXN0IGRlY2xhcmF0aW9ucyAoY2hhbmdpbmcgZ2xvYmFsIHRvIGxvY2FsKSBhbmQgYWRkcyBhIG1pc3NpbmcgQ09ORklHX0RFQlVHX0lORk9fQlRGIGNoZWNrIGZvciBCUEYgdHJhY2UgZXZlbnRzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgdGhhdCByZXF1aXJlcyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ2OjA4LjIxNzAzMTI5NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg5MzM1NjQxNzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0NjowOC4yMTcwMzYwNDZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NDUxNDMzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDczNzk4NDIyNjA3ODM1MjRhZDM3NjQ1MGYwMzU3ZjE0MzU0OTM1MmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBBdWcgMSAwOTo0NjowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oIGIvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaFxcbmluZGV4IDA5YWQ1N2FjNGI3M2UuLjkzMDExZjgwMGQwZjcgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaFxcbisrKyBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcXG5AQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRpYyBpbmxpbmUgbm90cmFjZSBpbnQgdHJhY2VfZXZlbnRfZ2V0X29mZnNldHNfIyNjYWxsKFxcdFxcdFxcXFxcXG4gI2RlZmluZSBfVFJBQ0VfUEVSRl9JTklUKGNhbGwpXFxuICNlbmRpZiAvKiBDT05GSUdfUEVSRl9FVkVOVFMgKi9cXG4gXFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuIC8qXFxuICAqIFBlci10ZW1wbGF0ZSBCVEYgaWQgbGlzdCwgcG9wdWxhdGVkIGF0IGxpbmsgdGltZSBieSByZXNvbHZlX2J0ZmlkczpcXG4gICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlX1xcdTAwM2NjYWxsXFx1MDAzZSAgICAgKHRoZSBCUEYgZGlzcGF0Y2hlcilcXG5AQCAtNDA2LDggKzQwNiw3IEBAIHN0YXRpYyBpbmxpbmUgbm90cmFjZSBpbnQgdHJhY2VfZXZlbnRfZ2V0X29mZnNldHNfIyNjYWxsKFxcdFxcdFxcXFxcXG4gICogRXhwb3NlZCB2aWEgdGhlIGV2ZW50cy9cXHUwMDNjc3lzXFx1MDAzZS9cXHUwMDNjbmFtZVxcdTAwM2UvYnRmX2lkcyB0cmFjZWZzIGZpbGUuXFxuICAqL1xcbiAjZGVmaW5lIF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbClcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLVxcdGV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGxbXTtcXHRcXHRcXHRcXFxcXFxuLVxcdEJURl9JRF9MSVNUX0dMT0JBTChfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbCwgMilcXHRcXHRcXFxcXFxuK1xcdEJURl9JRF9MSVNUKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsKVxcdFxcdFxcdFxcdFxcXFxcXG4gXFx0QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2VfIyNjYWxsKVxcdFxcdFxcdFxcdFxcXFxcXG4gXFx0QlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3XyMjY2FsbClcXG4gXFxuQEAgLTQxNyw3ICs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcXHRcXHRcXFxcXFxuICNlbHNlXFxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVxcbiAjZGVmaW5lIF9UUkFDRV9CVEZfSURTX0lOSVQoY2FsbClcXG4tI2VuZGlmIC8qIENPTkZJR19CUEZfRVZFTlRTICovXFxuKyNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyBcXHUwMDI2XFx1MDAyNiBDT05GSUdfREVCVUdfSU5GT19CVEYgKi9cXG4gXFxuICNpbmNsdWRlIFxcXCJzdGFnZXMvc3RhZ2U2X2V2ZW50X2NhbGxiYWNrLmhcXFwiXFxuIFxcbmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jXFxuaW5kZXggNDhlZjFhOTNlNTc2MS4uZTM1NzQ0MDQ5ZTNmMiAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY1xcbisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jXFxuQEAgLTksNiArOSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9mdHJhY2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BlcmZfZXZlbnQuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3hhcnJheS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYnRmX2lkcy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjYXNtL3N5c2NhbGwuaFxcdTAwM2VcXG4gXFxuICNpbmNsdWRlIFxcXCJ0cmFjZV9vdXRwdXQuaFxcXCJcXG5AQCAtMTMwMywxNSArMTMwNCwxNSBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZnVuY3Rpb25zIGV4aXRfc3lzY2FsbF9wcmludF9mdW5jcyA9IHtcXG4gXFx0LnRyYWNlXFx0XFx0PSBwcmludF9zeXNjYWxsX2V4aXQsXFxuIH07XFxuIFxcbi0jaWZkZWYgQ09ORklHX0JQRl9FVkVOVFNcXG4tLypcXG4tICogQlRGIGlkIGxpc3RzIGdlbmVyYXRlZCBieSBERUNMQVJFX0VWRU5UX0NMQVNTIGZvciB0aGUgc3lzX2VudGVyIGFuZFxcbi0gKiBzeXNfZXhpdCB0cmFjZXBvaW50cy4gVGhlIGF1dG8tZ2VuZXJhdGVkIGV2ZW50X2NsYXNzX3N5c197ZW50ZXIsZXhpdH1cXG4tICogaXMgdW51c2VkIChwZXItc3lzY2FsbCBldmVudHMgc2hhcmUgdGhlIGhhbmRjcmFmdGVkIGNsYXNzZXMgYmVsb3cpLFxcbi0gKiBidXQgdGhlIGlkIGxpc3RzIHRoZW1zZWx2ZXMgYXJlIGdsb2JhbCBhbmQgcmV1c2FibGUuXFxuLSAqL1xcbi1leHRlcm4gdTMyIF9fYnBmX3RyYWNlX2J0Zl9pZHNfc3lzX2VudGVyW107XFxuLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdFtdO1xcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuKy8qIEJURiBpZCBsaXN0cyBmb3IgdGhlIHNoYXJlZCBzeXNfZW50ZXIvc3lzX2V4aXQgZGlzcGF0Y2hlciB0cmFjZXBvaW50cy4gKi9cXG4rQlRGX0lEX0xJU1Qoc3lzY2FsbF9lbnRlcl9idGZfaWRzKVxcbitCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZW50ZXIpXFxuK0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZW50ZXIpXFxuK1xcbitCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylcXG4rQlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2V4aXQpXFxuK0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZXhpdClcXG4gI2VuZGlmXFxuIFxcbiBzdHJ1Y3QgdHJhY2VfZXZlbnRfY2xhc3MgX19yZWZkYXRhIGV2ZW50X2NsYXNzX3N5c2NhbGxfZW50ZXIgPSB7XFxuQEAgLTEzMjAsOCArMTMyMSw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHtcXG4gXFx0LmZpZWxkc19hcnJheVxcdD0gc3lzY2FsbF9lbnRlcl9maWVsZHNfYXJyYXksXFxuIFxcdC5nZXRfZmllbGRzXFx0PSBzeXNjYWxsX2dldF9lbnRlcl9maWVsZHMsXFxuIFxcdC5yYXdfaW5pdFxcdD0gaW5pdF9zeXNjYWxsX3RyYWNlLFxcbi0jaWZkZWYgQ09ORklHX0JQRl9FVkVOVFNcXG4tXFx0LmJ0Zl9pZHNcXHQ9IF9fYnBmX3RyYWNlX2J0Zl9pZHNfc3lzX2VudGVyLFxcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuK1xcdC5idGZfaWRzXFx0PSBzeXNjYWxsX2VudGVyX2J0Zl9pZHMsXFxuICNlbmRpZlxcbiB9O1xcbiBcXG5AQCAtMTMzNSw4ICsxMzM2LDggQEAgc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzIF9fcmVmZGF0YSBldmVudF9jbGFzc19zeXNjYWxsX2V4aXQgPSB7XFxuIFxcdH0sXFxuIFxcdC5maWVsZHNcXHRcXHQ9IExJU1RfSEVBRF9JTklUKGV2ZW50X2NsYXNzX3N5c2NhbGxfZXhpdC5maWVsZHMpLFxcbiBcXHQucmF3X2luaXRcXHQ9IGluaXRfc3lzY2FsbF90cmFjZSxcXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXFxuLVxcdC5idGZfaWRzXFx0PSBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0LFxcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuK1xcdC5idGZfaWRzXFx0PSBzeXNjYWxsX2V4aXRfYnRmX2lkcyxcXG4gI2VuZGlmXFxuIH07XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0NjowOC42ODI1OTU0MjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo4NDY3OTkyMDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJURiBJRCBsaXN0IGRlY2xhcmF0aW9ucyAoY2hhbmdpbmcgZ2xvYmFsIHRvIGxvY2FsKSBhbmQgYWRkcyBhIG1pc3NpbmcgQ09ORklHX0RFQlVHX0lORk9fQlRGIGNoZWNrIGZvciBCUEYgdHJhY2UgZXZlbnRzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgdGhhdCByZXF1aXJlcyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzM3OTg0MjI2MDc4MzUyNGFkMzc2NDUwZjAzNTdmMTQzNTQ5MzUyYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDY6MDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oIGIvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaFxuaW5kZXggMDlhZDU3YWM0YjczZS4uOTMwMTFmODAwZDBmNyAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcbisrKyBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcbkBAIC0zOTgsNyArMzk4LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIGludCB0cmFjZV9ldmVudF9nZXRfb2Zmc2V0c18jI2NhbGwoXHRcdFxcXG4gI2RlZmluZSBfVFJBQ0VfUEVSRl9JTklUKGNhbGwpXG4gI2VuZGlmIC8qIENPTkZJR19QRVJGX0VWRU5UUyAqL1xuIFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuKyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4gLypcbiAgKiBQZXItdGVtcGxhdGUgQlRGIGlkIGxpc3QsIHBvcHVsYXRlZCBhdCBsaW5rIHRpbWUgYnkgcmVzb2x2ZV9idGZpZHM6XG4gICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlX1x1MDAzY2NhbGxcdTAwM2UgICAgICh0aGUgQlBGIGRpc3BhdGNoZXIpXG5AQCAtNDA2LDggKzQwNiw3IEBAIHN0YXRpYyBpbmxpbmUgbm90cmFjZSBpbnQgdHJhY2VfZXZlbnRfZ2V0X29mZnNldHNfIyNjYWxsKFx0XHRcXFxuICAqIEV4cG9zZWQgdmlhIHRoZSBldmVudHMvXHUwMDNjc3lzXHUwMDNlL1x1MDAzY25hbWVcdTAwM2UvYnRmX2lkcyB0cmFjZWZzIGZpbGUuXG4gICovXG4gI2RlZmluZSBfVFJBQ0VfQlRGX0lEU19ERUNMQVJFKGNhbGwpXHRcdFx0XHRcdFxcXG4tXHRleHRlcm4gdTMyIF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsW107XHRcdFx0XFxcbi1cdEJURl9JRF9MSVNUX0dMT0JBTChfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbCwgMilcdFx0XFxcbitcdEJURl9JRF9MSVNUKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsKVx0XHRcdFx0XFxcbiBcdEJURl9JRChmdW5jLCAgIF9fYnBmX3RyYWNlXyMjY2FsbClcdFx0XHRcdFxcXG4gXHRCVEZfSUQoc3RydWN0LCB0cmFjZV9ldmVudF9yYXdfIyNjYWxsKVxuIFxuQEAgLTQxNyw3ICs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAjZWxzZVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfSU5JVChjYWxsKVxuLSNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyAqL1xuKyNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyBcdTAwMjZcdTAwMjYgQ09ORklHX0RFQlVHX0lORk9fQlRGICovXG4gXG4gI2luY2x1ZGUgXCJzdGFnZXMvc3RhZ2U2X2V2ZW50X2NhbGxiYWNrLmhcIlxuIFxuZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbmluZGV4IDQ4ZWYxYTkzZTU3NjEuLmUzNTc0NDA0OWUzZjIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY1xuKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbkBAIC05LDYgKzksNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2Z0cmFjZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGVyZl9ldmVudC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgveGFycmF5LmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9idGZfaWRzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20vc3lzY2FsbC5oXHUwMDNlXG4gXG4gI2luY2x1ZGUgXCJ0cmFjZV9vdXRwdXQuaFwiXG5AQCAtMTMwMywxNSArMTMwNCwxNSBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZnVuY3Rpb25zIGV4aXRfc3lzY2FsbF9wcmludF9mdW5jcyA9IHtcbiBcdC50cmFjZVx0XHQ9IHByaW50X3N5c2NhbGxfZXhpdCxcbiB9O1xuIFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuLS8qXG4tICogQlRGIGlkIGxpc3RzIGdlbmVyYXRlZCBieSBERUNMQVJFX0VWRU5UX0NMQVNTIGZvciB0aGUgc3lzX2VudGVyIGFuZFxuLSAqIHN5c19leGl0IHRyYWNlcG9pbnRzLiBUaGUgYXV0by1nZW5lcmF0ZWQgZXZlbnRfY2xhc3Nfc3lzX3tlbnRlcixleGl0fVxuLSAqIGlzIHVudXNlZCAocGVyLXN5c2NhbGwgZXZlbnRzIHNoYXJlIHRoZSBoYW5kY3JhZnRlZCBjbGFzc2VzIGJlbG93KSxcbi0gKiBidXQgdGhlIGlkIGxpc3RzIHRoZW1zZWx2ZXMgYXJlIGdsb2JhbCBhbmQgcmV1c2FibGUuXG4tICovXG4tZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19lbnRlcltdO1xuLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdFtdO1xuKyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4rLyogQlRGIGlkIGxpc3RzIGZvciB0aGUgc2hhcmVkIHN5c19lbnRlci9zeXNfZXhpdCBkaXNwYXRjaGVyIHRyYWNlcG9pbnRzLiAqL1xuK0JURl9JRF9MSVNUKHN5c2NhbGxfZW50ZXJfYnRmX2lkcylcbitCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZW50ZXIpXG4rQlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3X3N5c19lbnRlcilcbitcbitCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylcbitCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZXhpdClcbitCVEZfSUQoc3RydWN0LCB0cmFjZV9ldmVudF9yYXdfc3lzX2V4aXQpXG4gI2VuZGlmXG4gXG4gc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzIF9fcmVmZGF0YSBldmVudF9jbGFzc19zeXNjYWxsX2VudGVyID0ge1xuQEAgLTEzMjAsOCArMTMyMSw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHtcbiBcdC5maWVsZHNfYXJyYXlcdD0gc3lzY2FsbF9lbnRlcl9maWVsZHNfYXJyYXksXG4gXHQuZ2V0X2ZpZWxkc1x0PSBzeXNjYWxsX2dldF9lbnRlcl9maWVsZHMsXG4gXHQucmF3X2luaXRcdD0gaW5pdF9zeXNjYWxsX3RyYWNlLFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuLVx0LmJ0Zl9pZHNcdD0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXIsXG4rI2lmIGRlZmluZWQoQ09ORklHX0JQRl9FVkVOVFMpIFx1MDAyNlx1MDAyNiBkZWZpbmVkKENPTkZJR19ERUJVR19JTkZPX0JURilcbitcdC5idGZfaWRzXHQ9IHN5c2NhbGxfZW50ZXJfYnRmX2lkcyxcbiAjZW5kaWZcbiB9O1xuIFxuQEAgLTEzMzUsOCArMTMzNiw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9leGl0ID0ge1xuIFx0fSxcbiBcdC5maWVsZHNcdFx0PSBMSVNUX0hFQURfSU5JVChldmVudF9jbGFzc19zeXNjYWxsX2V4aXQuZmllbGRzKSxcbiBcdC5yYXdfaW5pdFx0PSBpbml0X3N5c2NhbGxfdHJhY2UsXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4tXHQuYnRmX2lkc1x0PSBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0LFxuKyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4rXHQuYnRmX2lkc1x0PSBzeXNjYWxsX2V4aXRfYnRmX2lkcyxcbiAjZW5kaWZcbiB9O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDY6MDguNjgyNTk3NjI5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODQ2Nzk1NTgxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQYXRjaCBBbmFseXNpczogQlRGIElEIERlY2xhcmF0aW9ucyBmb3IgVHJhY2UgRXZlbnRzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIHBhdGNoIGlzIGFkZHJlc3Npbmcgc29tZSBCVEYgSUQgZ2VuZXJhdGlvbiBvciBjb21waWxhdGlvbiBxdWlya3MgcmVsYXRlZCB0byBCUEYgZXZlbnRzIHdpdGhpbiB0aGUgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS4gSXQncyB0b3VjaGluZyBgaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaGAgYW5kIGBrZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY2AsIGZvY3VzaW5nIG9uIHRoZSBkZWNsYXJhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24gb2YgQlRGIElEcy4gU3BlY2lmaWNhbGx5LCBJJ20gc2VlaW5nIGNoYW5nZXMgYXJvdW5kIGhvdyBgQlRGX0lEX0xJU1RgIGlzIHVzZWQsIHJlcGxhY2luZyBgQlRGX0lEX0xJU1RfR0xPQkFMYCBpbiB0aGUgYF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbClgIG1hY3JvLiBJdCBsb29rcyBsaWtlIGl0J3MgZ3VhcmRpbmcgdGhlIGNvZGUgd2l0aCBib3RoIGBDT05GSUdfQlBGX0VWRU5UU2AgYW5kIGBDT05GSUdfREVCVUdfSU5GT19CVEZgLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIGZvcm1lciwgd2hpY2ggaXMgYSBrZXkgb2JzZXJ2YXRpb24uIFRoZSBhZGRpdGlvbiBvZiBgQlRGX0lEX0xJU1Qoc3lzY2FsbF9lbnRlcl9idGZfaWRzKWAgYW5kIGBCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylgIGluIGB0cmFjZV9zeXNjYWxscy5jYCBpcyBhbHNvIG5vdGljZWFibGUuXG5cbk15IGZpcnN0IGltcHJlc3Npb24gaXMgdGhhdCB0aGlzIGlzIHVubGlrZWx5IHRvIGludHJvZHVjZSBhbnkgbmV3IGZ1enphYmxlIHN1cmZhY2UuIFRoZSBjb3JlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIG1hY3JvIGRlZmluaXRpb25zIGFuZCBCVEYgSUQgbGlzdCBkZWNsYXJhdGlvbnMuIEkgd2FzIGluaXRpYWxseSBnb2luZyB0byBtYXJrIGl0IGFzIG5vdCB3b3J0aCBmdXp6aW5nLCBidXQgaXQgaXMgYWx3YXlzIGdvb2QgdG8gY2hlY2sgdG8gZW5zdXJlIEkgZG9uJ3QgbWlzcyBzb21ldGhpbmcuIEkgd2lsbCBtYWtlIHN1cmUgdGhpcyBpcyBzaW1wbHkgYSBjb21waWxhdGlvbiBmaXggYW5kIG5vdCBhIGNoYW5nZSB0byB0aGUgcnVudGltZSBiZWhhdmlvci5cblxuT2theSwgbGV0J3MgZGlnIGEgYml0IGRlZXBlci4gVGhlc2UgQlRGIElEcyBhcmUgY3JpdGljYWwgZm9yIEJQRiBwcm9ncmFtcyB0byBwZXJmb3JtIHR5cGUgdmVyaWZpY2F0aW9uLiBUaGUgc3dpdGNoIGZyb20gYSBnbG9iYWwgdG8gYSBsb2NhbCBCVEYgSUQgbGlzdCBpcyBhIGJpdCBtb3JlIGludGVyZXN0aW5nLCB0aG91Z2guIFdlJ3JlIG5vdyBkZWFsaW5nIHdpdGggc3RhdGljIGFycmF5cyAobG9jYWwpIGluc3RlYWQgb2YgZ2xvYmFsIG9uZXMuIEkgc2VlIHRoYXQgdGhlIG9yaWdpbmFsIGNvZGUsIGluc2lkZSBgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKWAgdXNlZCBgQlRGX0lEX0xJU1RfR0xPQkFMKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsLCAyKWAgYW5kIHRoYXQgYHRyYWNlX3N5c2NhbGxzLmNgIGhhZCBgZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19lbnRlcltdO2AuIE5vdywgYHN5c2NhbGxfZW50ZXJfYnRmX2lkc2AgaXMgZGVmaW5lZCBsb2NhbGx5IHdpdGhpbiBgdHJhY2Vfc3lzY2FsbHMuY2AuIFRoaXMgaXMgbG9va2luZyBsaWtlIGEgcmVmYWN0b3JpbmcvY2xlYW51cCwgcmF0aGVyIHRoYW4gZnVuY3Rpb25hbCBjaGFuZ2UuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQuIFRoaXMgaXMgcHVyZWx5IGEgYnVpbGQtdGltZS9CVEYgZ2VuZXJhdGlvbiBmaXgsIGNvbXBsZXRlbHkgb3J0aG9nb25hbCB0byBhbnkgbmV3IGV4ZWN1dGlvbiBwYXRocyBvciBsb2dpYyB0aGF0IHdvdWxkIGJlIHJlbGV2YW50IGZvciBmdXp6aW5nLiBJdCBkb2VzIG5vdCB3YXJyYW50IGFueSBmdXJ0aGVyIGZ1enppbmcgZWZmb3J0cy4gSSdsbCBmbGFnIGl0IGFzIFdvcnRoRnV6emluZz1mYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI1NCwiT3V0cHV0VG9rZW5zIjo4MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxOSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ2OjE3LjE1MDU1NTkxNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjkyNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCVEYgSUQgbGlzdCBkZWNsYXJhdGlvbnMgKGNoYW5naW5nIGdsb2JhbCB0byBsb2NhbCkgYW5kIGFkZHMgYSBtaXNzaW5nIENPTkZJR19ERUJVR19JTkZPX0JURiBjaGVjayBmb3IgQlBGIHRyYWNlIGV2ZW50cy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIGV4ZWN1dGlvbiBmbG93IHRoYXQgcmVxdWlyZXMgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowqmk2z[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 09:43:57 +0000 UTC FinishedAt: 2026-08-01 09:46:18 +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+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzM3OTg0MjI2MDc4MzUyNGFkMzc2NDUwZjAzNTdmMTQzNTQ5MzUyYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDY6MDcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaCBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcbmluZGV4IDA5YWQ1N2FjNGI3M2UuLjkzMDExZjgwMGQwZjcgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oXG5AQCAtMzk4LDcgJiM0MzszOTgsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAjZGVmaW5lIF9UUkFDRV9QRVJGX0lOSVQoY2FsbClcbiAjZW5kaWYgLyogQ09ORklHX1BFUkZfRVZFTlRTICovXG4gXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4mIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4gLypcbiAgKiBQZXItdGVtcGxhdGUgQlRGIGlkIGxpc3QsIHBvcHVsYXRlZCBhdCBsaW5rIHRpbWUgYnkgcmVzb2x2ZV9idGZpZHM6XG4gICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlX1x1MDAzY2NhbGxcdTAwM2UgICAgICh0aGUgQlBGIGRpc3BhdGNoZXIpXG5AQCAtNDA2LDggJiM0Mzs0MDYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAgKiBFeHBvc2VkIHZpYSB0aGUgZXZlbnRzL1x1MDAzY3N5c1x1MDAzZS9cdTAwM2NuYW1lXHUwMDNlL2J0Zl9pZHMgdHJhY2VmcyBmaWxlLlxuICAqL1xuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVx0XHRcdFx0XHRcXFxuLVx0ZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbFtdO1x0XHRcdFxcXG4tXHRCVEZfSURfTElTVF9HTE9CQUwoX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGwsIDIpXHRcdFxcXG4mIzQzO1x0QlRGX0lEX0xJU1QoX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGwpXHRcdFx0XHRcXFxuIFx0QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2VfIyNjYWxsKVx0XHRcdFx0XFxcbiBcdEJURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd18jI2NhbGwpXG4gXG5AQCAtNDE3LDcgJiM0Mzs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAjZWxzZVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfSU5JVChjYWxsKVxuLSNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyAqL1xuJiM0MzsjZW5kaWYgLyogQ09ORklHX0JQRl9FVkVOVFMgXHUwMDI2XHUwMDI2IENPTkZJR19ERUJVR19JTkZPX0JURiAqL1xuIFxuICNpbmNsdWRlIFwmIzM0O3N0YWdlcy9zdGFnZTZfZXZlbnRfY2FsbGJhY2suaFwmIzM0O1xuIFxuZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbmluZGV4IDQ4ZWYxYTkzZTU3NjEuLmUzNTc0NDA0OWUzZjIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbkBAIC05LDYgJiM0Mzs5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9mdHJhY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BlcmZfZXZlbnQuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3hhcnJheS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2J0Zl9pZHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2FzbS9zeXNjYWxsLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcJiMzNDt0cmFjZV9vdXRwdXQuaFwmIzM0O1xuQEAgLTEzMDMsMTUgJiM0MzsxMzA0LDE1IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9mdW5jdGlvbnMgZXhpdF9zeXNjYWxsX3ByaW50X2Z1bmNzID0ge1xuIFx0LnRyYWNlXHRcdD0gcHJpbnRfc3lzY2FsbF9leGl0LFxuIH07XG4gXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4tLypcbi0gKiBCVEYgaWQgbGlzdHMgZ2VuZXJhdGVkIGJ5IERFQ0xBUkVfRVZFTlRfQ0xBU1MgZm9yIHRoZSBzeXNfZW50ZXIgYW5kXG4tICogc3lzX2V4aXQgdHJhY2Vwb2ludHMuIFRoZSBhdXRvLWdlbmVyYXRlZCBldmVudF9jbGFzc19zeXNfe2VudGVyLGV4aXR9XG4tICogaXMgdW51c2VkIChwZXItc3lzY2FsbCBldmVudHMgc2hhcmUgdGhlIGhhbmRjcmFmdGVkIGNsYXNzZXMgYmVsb3cpLFxuLSAqIGJ1dCB0aGUgaWQgbGlzdHMgdGhlbXNlbHZlcyBhcmUgZ2xvYmFsIGFuZCByZXVzYWJsZS5cbi0gKi9cbi1leHRlcm4gdTMyIF9fYnBmX3RyYWNlX2J0Zl9pZHNfc3lzX2VudGVyW107XG4tZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0W107XG4mIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4mIzQzOy8qIEJURiBpZCBsaXN0cyBmb3IgdGhlIHNoYXJlZCBzeXNfZW50ZXIvc3lzX2V4aXQgZGlzcGF0Y2hlciB0cmFjZXBvaW50cy4gKi9cbiYjNDM7QlRGX0lEX0xJU1Qoc3lzY2FsbF9lbnRlcl9idGZfaWRzKVxuJiM0MztCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZW50ZXIpXG4mIzQzO0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZW50ZXIpXG4mIzQzO1xuJiM0MztCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylcbiYjNDM7QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2V4aXQpXG4mIzQzO0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZXhpdClcbiAjZW5kaWZcbiBcbiBzdHJ1Y3QgdHJhY2VfZXZlbnRfY2xhc3MgX19yZWZkYXRhIGV2ZW50X2NsYXNzX3N5c2NhbGxfZW50ZXIgPSB7XG5AQCAtMTMyMCw4ICYjNDM7MTMyMSw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHtcbiBcdC5maWVsZHNfYXJyYXlcdD0gc3lzY2FsbF9lbnRlcl9maWVsZHNfYXJyYXksXG4gXHQuZ2V0X2ZpZWxkc1x0PSBzeXNjYWxsX2dldF9lbnRlcl9maWVsZHMsXG4gXHQucmF3X2luaXRcdD0gaW5pdF9zeXNjYWxsX3RyYWNlLFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuLVx0LmJ0Zl9pZHNcdD0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXIsXG4mIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4mIzQzO1x0LmJ0Zl9pZHNcdD0gc3lzY2FsbF9lbnRlcl9idGZfaWRzLFxuICNlbmRpZlxuIH07XG4gXG5AQCAtMTMzNSw4ICYjNDM7MTMzNiw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9leGl0ID0ge1xuIFx0fSxcbiBcdC5maWVsZHNcdFx0PSBMSVNUX0hFQURfSU5JVChldmVudF9jbGFzc19zeXNjYWxsX2V4aXQuZmllbGRzKSxcbiBcdC5yYXdfaW5pdFx0PSBpbml0X3N5c2NhbGxfdHJhY2UsXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4tXHQuYnRmX2lkc1x0PSBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0LFxuJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXHUwMDI2XHUwMDI2IGRlZmluZWQoQ09ORklHX0RFQlVHX0lORk9fQlRGKVxuJiM0MztcdC5idGZfaWRzXHQ9IHN5c2NhbGxfZXhpdF9idGZfaWRzLFxuICNlbmRpZlxuIH07XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzM3OTg0MjI2MDc4MzUyNGFkMzc2NDUwZjAzNTdmMTQzNTQ5MzUyYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMDk6NDY6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oIGIvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaAppbmRleCAwOWFkNTdhYzRiNzNlLi45MzAxMWY4MDBkMGY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmgKQEAgLTM5OCw3ICYjNDM7Mzk4LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIGludCB0cmFjZV9ldmVudF9nZXRfb2Zmc2V0c18jI2NhbGwoCQlcCiAjZGVmaW5lIF9UUkFDRV9QRVJGX0lOSVQoY2FsbCkKICNlbmRpZiAvKiBDT05GSUdfUEVSRl9FVkVOVFMgKi8KIAotI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTCiYjNDM7I2lmIGRlZmluZWQoQ09ORklHX0JQRl9FVkVOVFMpICZhbXA7JmFtcDsgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpCiAvKgogICogUGVyLXRlbXBsYXRlIEJURiBpZCBsaXN0LCBwb3B1bGF0ZWQgYXQgbGluayB0aW1lIGJ5IHJlc29sdmVfYnRmaWRzOgogICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlXyZsdDtjYWxsJmd0OyAgICAgKHRoZSBCUEYgZGlzcGF0Y2hlcikKQEAgLTQwNiw4ICYjNDM7NDA2LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIGludCB0cmFjZV9ldmVudF9nZXRfb2Zmc2V0c18jI2NhbGwoCQlcCiAgKiBFeHBvc2VkIHZpYSB0aGUgZXZlbnRzLyZsdDtzeXMmZ3Q7LyZsdDtuYW1lJmd0Oy9idGZfaWRzIHRyYWNlZnMgZmlsZS4KICAqLwogI2RlZmluZSBfVFJBQ0VfQlRGX0lEU19ERUNMQVJFKGNhbGwpCQkJCQlcCi0JZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbFtdOwkJCVwKLQlCVEZfSURfTElTVF9HTE9CQUwoX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGwsIDIpCQlcCiYjNDM7CUJURl9JRF9MSVNUKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsKQkJCQlcCiAJQlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2VfIyNjYWxsKQkJCQlcCiAJQlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3XyMjY2FsbCkKIApAQCAtNDE3LDcgJiM0Mzs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbCgJCVwKICNlbHNlCiAjZGVmaW5lIF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbCkKICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfSU5JVChjYWxsKQotI2VuZGlmIC8qIENPTkZJR19CUEZfRVZFTlRTICovCiYjNDM7I2VuZGlmIC8qIENPTkZJR19CUEZfRVZFTlRTICZhbXA7JmFtcDsgQ09ORklHX0RFQlVHX0lORk9fQlRGICovCiAKICNpbmNsdWRlICYjMzQ7c3RhZ2VzL3N0YWdlNl9ldmVudF9jYWxsYmFjay5oJiMzNDsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYwppbmRleCA0OGVmMWE5M2U1NzYxLi5lMzU3NDQwNDllM2YyIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYwpAQCAtOSw2ICYjNDM7OSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvZnRyYWNlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGVyZl9ldmVudC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3hhcnJheS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9idGZfaWRzLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7YXNtL3N5c2NhbGwuaCZndDsKIAogI2luY2x1ZGUgJiMzNDt0cmFjZV9vdXRwdXQuaCYjMzQ7CkBAIC0xMzAzLDE1ICYjNDM7MTMwNCwxNSBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZnVuY3Rpb25zIGV4aXRfc3lzY2FsbF9wcmludF9mdW5jcyA9IHsKIAkudHJhY2UJCT0gcHJpbnRfc3lzY2FsbF9leGl0LAogfTsKIAotI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTCi0vKgotICogQlRGIGlkIGxpc3RzIGdlbmVyYXRlZCBieSBERUNMQVJFX0VWRU5UX0NMQVNTIGZvciB0aGUgc3lzX2VudGVyIGFuZAotICogc3lzX2V4aXQgdHJhY2Vwb2ludHMuIFRoZSBhdXRvLWdlbmVyYXRlZCBldmVudF9jbGFzc19zeXNfe2VudGVyLGV4aXR9Ci0gKiBpcyB1bnVzZWQgKHBlci1zeXNjYWxsIGV2ZW50cyBzaGFyZSB0aGUgaGFuZGNyYWZ0ZWQgY2xhc3NlcyBiZWxvdyksCi0gKiBidXQgdGhlIGlkIGxpc3RzIHRoZW1zZWx2ZXMgYXJlIGdsb2JhbCBhbmQgcmV1c2FibGUuCi0gKi8KLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXJbXTsKLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdFtdOwomIzQzOyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSAmYW1wOyZhbXA7IGRlZmluZWQoQ09ORklHX0RFQlVHX0lORk9fQlRGKQomIzQzOy8qIEJURiBpZCBsaXN0cyBmb3IgdGhlIHNoYXJlZCBzeXNfZW50ZXIvc3lzX2V4aXQgZGlzcGF0Y2hlciB0cmFjZXBvaW50cy4gKi8KJiM0MztCVEZfSURfTElTVChzeXNjYWxsX2VudGVyX2J0Zl9pZHMpCiYjNDM7QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2VudGVyKQomIzQzO0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZW50ZXIpCiYjNDM7CiYjNDM7QlRGX0lEX0xJU1Qoc3lzY2FsbF9leGl0X2J0Zl9pZHMpCiYjNDM7QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2V4aXQpCiYjNDM7QlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3X3N5c19leGl0KQogI2VuZGlmCiAKIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHsKQEAgLTEzMjAsOCAmIzQzOzEzMjEsOCBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfY2xhc3MgX19yZWZkYXRhIGV2ZW50X2NsYXNzX3N5c2NhbGxfZW50ZXIgPSB7CiAJLmZpZWxkc19hcnJheQk9IHN5c2NhbGxfZW50ZXJfZmllbGRzX2FycmF5LAogCS5nZXRfZmllbGRzCT0gc3lzY2FsbF9nZXRfZW50ZXJfZmllbGRzLAogCS5yYXdfaW5pdAk9IGluaXRfc3lzY2FsbF90cmFjZSwKLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UUwotCS5idGZfaWRzCT0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXIsCiYjNDM7I2lmIGRlZmluZWQoQ09ORklHX0JQRl9FVkVOVFMpICZhbXA7JmFtcDsgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpCiYjNDM7CS5idGZfaWRzCT0gc3lzY2FsbF9lbnRlcl9idGZfaWRzLAogI2VuZGlmCiB9OwogCkBAIC0xMzM1LDggJiM0MzsxMzM2LDggQEAgc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzIF9fcmVmZGF0YSBldmVudF9jbGFzc19zeXNjYWxsX2V4aXQgPSB7CiAJfSwKIAkuZmllbGRzCQk9IExJU1RfSEVBRF9JTklUKGV2ZW50X2NsYXNzX3N5c2NhbGxfZXhpdC5maWVsZHMpLAogCS5yYXdfaW5pdAk9IGluaXRfc3lzY2FsbF90cmFjZSwKLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UUwotCS5idGZfaWRzCT0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdCwKJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgJmFtcDsmYW1wOyBkZWZpbmVkKENPTkZJR19ERUJVR19JTkZPX0JURikKJiM0MzsJLmJ0Zl9pZHMJPSBzeXNjYWxsX2V4aXRfYnRmX2lkcywKICNlbmRpZgogfTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjU0CgkJCQkJCQlvdXRwdXQ6IDgxCgkJCQkJCQl0aG91Z2h0czogNjE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBhdGNoIEFuYWx5c2lzOiBCVEYgSUQgRGVjbGFyYXRpb25zIGZvciBUcmFjZSBFdmVudHMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nIHNvbWUgQlRGIElEIGdlbmVyYXRpb24gb3IgY29tcGlsYXRpb24gcXVpcmtzIHJlbGF0ZWQgdG8gQlBGIGV2ZW50cyB3aXRoaW4gdGhlIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuIEl0JiMzOTtzIHRvdWNoaW5nIGBpbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oYCBhbmQgYGtlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jYCwgZm9jdXNpbmcgb24gdGhlIGRlY2xhcmF0aW9uIGFuZCBpbml0aWFsaXphdGlvbiBvZiBCVEYgSURzLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gc2VlaW5nIGNoYW5nZXMgYXJvdW5kIGhvdyBgQlRGX0lEX0xJU1RgIGlzIHVzZWQsIHJlcGxhY2luZyBgQlRGX0lEX0xJU1RfR0xPQkFMYCBpbiB0aGUgYF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbClgIG1hY3JvLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGd1YXJkaW5nIHRoZSBjb2RlIHdpdGggYm90aCBgQ09ORklHX0JQRl9FVkVOVFNgIGFuZCBgQ09ORklHX0RFQlVHX0lORk9fQlRGYCwgaW5zdGVhZCBvZiBqdXN0IHRoZSBmb3JtZXIsIHdoaWNoIGlzIGEga2V5IG9ic2VydmF0aW9uLiBUaGUgYWRkaXRpb24gb2YgYEJURl9JRF9MSVNUKHN5c2NhbGxfZW50ZXJfYnRmX2lkcylgIGFuZCBgQlRGX0lEX0xJU1Qoc3lzY2FsbF9leGl0X2J0Zl9pZHMpYCBpbiBgdHJhY2Vfc3lzY2FsbHMuY2AgaXMgYWxzbyBub3RpY2VhYmxlLgoKTXkgZmlyc3QgaW1wcmVzc2lvbiBpcyB0aGF0IHRoaXMgaXMgdW5saWtlbHkgdG8gaW50cm9kdWNlIGFueSBuZXcgZnV6emFibGUgc3VyZmFjZS4gVGhlIGNvcmUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gbWFjcm8gZGVmaW5pdGlvbnMgYW5kIEJURiBJRCBsaXN0IGRlY2xhcmF0aW9ucy4gSSB3YXMgaW5pdGlhbGx5IGdvaW5nIHRvIG1hcmsgaXQgYXMgbm90IHdvcnRoIGZ1enppbmcsIGJ1dCBpdCBpcyBhbHdheXMgZ29vZCB0byBjaGVjayB0byBlbnN1cmUgSSBkb24mIzM5O3QgbWlzcyBzb21ldGhpbmcuIEkgd2lsbCBtYWtlIHN1cmUgdGhpcyBpcyBzaW1wbHkgYSBjb21waWxhdGlvbiBmaXggYW5kIG5vdCBhIGNoYW5nZSB0byB0aGUgcnVudGltZSBiZWhhdmlvci4KCk9rYXksIGxldCYjMzk7cyBkaWcgYSBiaXQgZGVlcGVyLiBUaGVzZSBCVEYgSURzIGFyZSBjcml0aWNhbCBmb3IgQlBGIHByb2dyYW1zIHRvIHBlcmZvcm0gdHlwZSB2ZXJpZmljYXRpb24uIFRoZSBzd2l0Y2ggZnJvbSBhIGdsb2JhbCB0byBhIGxvY2FsIEJURiBJRCBsaXN0IGlzIGEgYml0IG1vcmUgaW50ZXJlc3RpbmcsIHRob3VnaC4gV2UmIzM5O3JlIG5vdyBkZWFsaW5nIHdpdGggc3RhdGljIGFycmF5cyAobG9jYWwpIGluc3RlYWQgb2YgZ2xvYmFsIG9uZXMuIEkgc2VlIHRoYXQgdGhlIG9yaWdpbmFsIGNvZGUsIGluc2lkZSBgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKWAgdXNlZCBgQlRGX0lEX0xJU1RfR0xPQkFMKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsLCAyKWAgYW5kIHRoYXQgYHRyYWNlX3N5c2NhbGxzLmNgIGhhZCBgZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19lbnRlcltdO2AuIE5vdywgYHN5c2NhbGxfZW50ZXJfYnRmX2lkc2AgaXMgZGVmaW5lZCBsb2NhbGx5IHdpdGhpbiBgdHJhY2Vfc3lzY2FsbHMuY2AuIFRoaXMgaXMgbG9va2luZyBsaWtlIGEgcmVmYWN0b3JpbmcvY2xlYW51cCwgcmF0aGVyIHRoYW4gZnVuY3Rpb25hbCBjaGFuZ2UuCgpBbHJpZ2h0LCBJJiMzOTttIGNvbmZpZGVudC4gVGhpcyBpcyBwdXJlbHkgYSBidWlsZC10aW1lL0JURiBnZW5lcmF0aW9uIGZpeCwgY29tcGxldGVseSBvcnRob2dvbmFsIHRvIGFueSBuZXcgZXhlY3V0aW9uIHBhdGhzIG9yIGxvZ2ljIHRoYXQgd291bGQgYmUgcmVsZXZhbnQgZm9yIGZ1enppbmcuIEl0IGRvZXMgbm90IHdhcnJhbnQgYW55IGZ1cnRoZXIgZnV6emluZyBlZmZvcnRzLiBJJiMzOTtsbCBmbGFnIGl0IGFzIFdvcnRoRnV6emluZz1mYWxzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJURiBJRCBsaXN0IGRlY2xhcmF0aW9ucyAoY2hhbmdpbmcgZ2xvYmFsIHRvIGxvY2FsKSBhbmQgYWRkcyBhIG1pc3NpbmcgQ09ORklHX0RFQlVHX0lORk9fQlRGIGNoZWNrIGZvciBCUEYgdHJhY2UgZXZlbnRzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgdGhhdCByZXF1aXJlcyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ2OjA4LjIxNzAzMTI5NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg5MzM1NjQxNzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0NjowOC4yMTcwMzYwNDZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NDUxNDMzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDczNzk4NDIyNjA3ODM1MjRhZDM3NjQ1MGYwMzU3ZjE0MzU0OTM1MmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBBdWcgMSAwOTo0NjowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oIGIvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaFxcbmluZGV4IDA5YWQ1N2FjNGI3M2UuLjkzMDExZjgwMGQwZjcgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaFxcbisrKyBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcXG5AQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRpYyBpbmxpbmUgbm90cmFjZSBpbnQgdHJhY2VfZXZlbnRfZ2V0X29mZnNldHNfIyNjYWxsKFxcdFxcdFxcXFxcXG4gI2RlZmluZSBfVFJBQ0VfUEVSRl9JTklUKGNhbGwpXFxuICNlbmRpZiAvKiBDT05GSUdfUEVSRl9FVkVOVFMgKi9cXG4gXFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuIC8qXFxuICAqIFBlci10ZW1wbGF0ZSBCVEYgaWQgbGlzdCwgcG9wdWxhdGVkIGF0IGxpbmsgdGltZSBieSByZXNvbHZlX2J0ZmlkczpcXG4gICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlX1xcdTAwM2NjYWxsXFx1MDAzZSAgICAgKHRoZSBCUEYgZGlzcGF0Y2hlcilcXG5AQCAtNDA2LDggKzQwNiw3IEBAIHN0YXRpYyBpbmxpbmUgbm90cmFjZSBpbnQgdHJhY2VfZXZlbnRfZ2V0X29mZnNldHNfIyNjYWxsKFxcdFxcdFxcXFxcXG4gICogRXhwb3NlZCB2aWEgdGhlIGV2ZW50cy9cXHUwMDNjc3lzXFx1MDAzZS9cXHUwMDNjbmFtZVxcdTAwM2UvYnRmX2lkcyB0cmFjZWZzIGZpbGUuXFxuICAqL1xcbiAjZGVmaW5lIF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbClcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLVxcdGV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc18jI2NhbGxbXTtcXHRcXHRcXHRcXFxcXFxuLVxcdEJURl9JRF9MSVNUX0dMT0JBTChfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbCwgMilcXHRcXHRcXFxcXFxuK1xcdEJURl9JRF9MSVNUKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsKVxcdFxcdFxcdFxcdFxcXFxcXG4gXFx0QlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2VfIyNjYWxsKVxcdFxcdFxcdFxcdFxcXFxcXG4gXFx0QlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3XyMjY2FsbClcXG4gXFxuQEAgLTQxNyw3ICs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcXHRcXHRcXFxcXFxuICNlbHNlXFxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVxcbiAjZGVmaW5lIF9UUkFDRV9CVEZfSURTX0lOSVQoY2FsbClcXG4tI2VuZGlmIC8qIENPTkZJR19CUEZfRVZFTlRTICovXFxuKyNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyBcXHUwMDI2XFx1MDAyNiBDT05GSUdfREVCVUdfSU5GT19CVEYgKi9cXG4gXFxuICNpbmNsdWRlIFxcXCJzdGFnZXMvc3RhZ2U2X2V2ZW50X2NhbGxiYWNrLmhcXFwiXFxuIFxcbmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jXFxuaW5kZXggNDhlZjFhOTNlNTc2MS4uZTM1NzQ0MDQ5ZTNmMiAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY1xcbisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jXFxuQEAgLTksNiArOSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9mdHJhY2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BlcmZfZXZlbnQuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3hhcnJheS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYnRmX2lkcy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjYXNtL3N5c2NhbGwuaFxcdTAwM2VcXG4gXFxuICNpbmNsdWRlIFxcXCJ0cmFjZV9vdXRwdXQuaFxcXCJcXG5AQCAtMTMwMywxNSArMTMwNCwxNSBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZnVuY3Rpb25zIGV4aXRfc3lzY2FsbF9wcmludF9mdW5jcyA9IHtcXG4gXFx0LnRyYWNlXFx0XFx0PSBwcmludF9zeXNjYWxsX2V4aXQsXFxuIH07XFxuIFxcbi0jaWZkZWYgQ09ORklHX0JQRl9FVkVOVFNcXG4tLypcXG4tICogQlRGIGlkIGxpc3RzIGdlbmVyYXRlZCBieSBERUNMQVJFX0VWRU5UX0NMQVNTIGZvciB0aGUgc3lzX2VudGVyIGFuZFxcbi0gKiBzeXNfZXhpdCB0cmFjZXBvaW50cy4gVGhlIGF1dG8tZ2VuZXJhdGVkIGV2ZW50X2NsYXNzX3N5c197ZW50ZXIsZXhpdH1cXG4tICogaXMgdW51c2VkIChwZXItc3lzY2FsbCBldmVudHMgc2hhcmUgdGhlIGhhbmRjcmFmdGVkIGNsYXNzZXMgYmVsb3cpLFxcbi0gKiBidXQgdGhlIGlkIGxpc3RzIHRoZW1zZWx2ZXMgYXJlIGdsb2JhbCBhbmQgcmV1c2FibGUuXFxuLSAqL1xcbi1leHRlcm4gdTMyIF9fYnBmX3RyYWNlX2J0Zl9pZHNfc3lzX2VudGVyW107XFxuLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdFtdO1xcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuKy8qIEJURiBpZCBsaXN0cyBmb3IgdGhlIHNoYXJlZCBzeXNfZW50ZXIvc3lzX2V4aXQgZGlzcGF0Y2hlciB0cmFjZXBvaW50cy4gKi9cXG4rQlRGX0lEX0xJU1Qoc3lzY2FsbF9lbnRlcl9idGZfaWRzKVxcbitCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZW50ZXIpXFxuK0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZW50ZXIpXFxuK1xcbitCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylcXG4rQlRGX0lEKGZ1bmMsICAgX19icGZfdHJhY2Vfc3lzX2V4aXQpXFxuK0JURl9JRChzdHJ1Y3QsIHRyYWNlX2V2ZW50X3Jhd19zeXNfZXhpdClcXG4gI2VuZGlmXFxuIFxcbiBzdHJ1Y3QgdHJhY2VfZXZlbnRfY2xhc3MgX19yZWZkYXRhIGV2ZW50X2NsYXNzX3N5c2NhbGxfZW50ZXIgPSB7XFxuQEAgLTEzMjAsOCArMTMyMSw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHtcXG4gXFx0LmZpZWxkc19hcnJheVxcdD0gc3lzY2FsbF9lbnRlcl9maWVsZHNfYXJyYXksXFxuIFxcdC5nZXRfZmllbGRzXFx0PSBzeXNjYWxsX2dldF9lbnRlcl9maWVsZHMsXFxuIFxcdC5yYXdfaW5pdFxcdD0gaW5pdF9zeXNjYWxsX3RyYWNlLFxcbi0jaWZkZWYgQ09ORklHX0JQRl9FVkVOVFNcXG4tXFx0LmJ0Zl9pZHNcXHQ9IF9fYnBmX3RyYWNlX2J0Zl9pZHNfc3lzX2VudGVyLFxcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuK1xcdC5idGZfaWRzXFx0PSBzeXNjYWxsX2VudGVyX2J0Zl9pZHMsXFxuICNlbmRpZlxcbiB9O1xcbiBcXG5AQCAtMTMzNSw4ICsxMzM2LDggQEAgc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzIF9fcmVmZGF0YSBldmVudF9jbGFzc19zeXNjYWxsX2V4aXQgPSB7XFxuIFxcdH0sXFxuIFxcdC5maWVsZHNcXHRcXHQ9IExJU1RfSEVBRF9JTklUKGV2ZW50X2NsYXNzX3N5c2NhbGxfZXhpdC5maWVsZHMpLFxcbiBcXHQucmF3X2luaXRcXHQ9IGluaXRfc3lzY2FsbF90cmFjZSxcXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXFxuLVxcdC5idGZfaWRzXFx0PSBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0LFxcbisjaWYgZGVmaW5lZChDT05GSUdfQlBGX0VWRU5UUykgXFx1MDAyNlxcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXFxuK1xcdC5idGZfaWRzXFx0PSBzeXNjYWxsX2V4aXRfYnRmX2lkcyxcXG4gI2VuZGlmXFxuIH07XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0NjowOC42ODI1OTU0MjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo4NDY3OTkyMDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJURiBJRCBsaXN0IGRlY2xhcmF0aW9ucyAoY2hhbmdpbmcgZ2xvYmFsIHRvIGxvY2FsKSBhbmQgYWRkcyBhIG1pc3NpbmcgQ09ORklHX0RFQlVHX0lORk9fQlRGIGNoZWNrIGZvciBCUEYgdHJhY2UgZXZlbnRzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgdGhhdCByZXF1aXJlcyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzM3OTg0MjI2MDc4MzUyNGFkMzc2NDUwZjAzNTdmMTQzNTQ5MzUyYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDY6MDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oIGIvaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaFxuaW5kZXggMDlhZDU3YWM0YjczZS4uOTMwMTFmODAwZDBmNyAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcbisrKyBiL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmhcbkBAIC0zOTgsNyArMzk4LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIGludCB0cmFjZV9ldmVudF9nZXRfb2Zmc2V0c18jI2NhbGwoXHRcdFxcXG4gI2RlZmluZSBfVFJBQ0VfUEVSRl9JTklUKGNhbGwpXG4gI2VuZGlmIC8qIENPTkZJR19QRVJGX0VWRU5UUyAqL1xuIFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuKyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4gLypcbiAgKiBQZXItdGVtcGxhdGUgQlRGIGlkIGxpc3QsIHBvcHVsYXRlZCBhdCBsaW5rIHRpbWUgYnkgcmVzb2x2ZV9idGZpZHM6XG4gICogICBbMF0gRlVOQyAgIF9fYnBmX3RyYWNlX1x1MDAzY2NhbGxcdTAwM2UgICAgICh0aGUgQlBGIGRpc3BhdGNoZXIpXG5AQCAtNDA2LDggKzQwNiw3IEBAIHN0YXRpYyBpbmxpbmUgbm90cmFjZSBpbnQgdHJhY2VfZXZlbnRfZ2V0X29mZnNldHNfIyNjYWxsKFx0XHRcXFxuICAqIEV4cG9zZWQgdmlhIHRoZSBldmVudHMvXHUwMDNjc3lzXHUwMDNlL1x1MDAzY25hbWVcdTAwM2UvYnRmX2lkcyB0cmFjZWZzIGZpbGUuXG4gICovXG4gI2RlZmluZSBfVFJBQ0VfQlRGX0lEU19ERUNMQVJFKGNhbGwpXHRcdFx0XHRcdFxcXG4tXHRleHRlcm4gdTMyIF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsW107XHRcdFx0XFxcbi1cdEJURl9JRF9MSVNUX0dMT0JBTChfX2JwZl90cmFjZV9idGZfaWRzXyMjY2FsbCwgMilcdFx0XFxcbitcdEJURl9JRF9MSVNUKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsKVx0XHRcdFx0XFxcbiBcdEJURl9JRChmdW5jLCAgIF9fYnBmX3RyYWNlXyMjY2FsbClcdFx0XHRcdFxcXG4gXHRCVEZfSUQoc3RydWN0LCB0cmFjZV9ldmVudF9yYXdfIyNjYWxsKVxuIFxuQEAgLTQxNyw3ICs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIG5vdHJhY2UgaW50IHRyYWNlX2V2ZW50X2dldF9vZmZzZXRzXyMjY2FsbChcdFx0XFxcbiAjZWxzZVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKVxuICNkZWZpbmUgX1RSQUNFX0JURl9JRFNfSU5JVChjYWxsKVxuLSNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyAqL1xuKyNlbmRpZiAvKiBDT05GSUdfQlBGX0VWRU5UUyBcdTAwMjZcdTAwMjYgQ09ORklHX0RFQlVHX0lORk9fQlRGICovXG4gXG4gI2luY2x1ZGUgXCJzdGFnZXMvc3RhZ2U2X2V2ZW50X2NhbGxiYWNrLmhcIlxuIFxuZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zeXNjYWxscy5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbmluZGV4IDQ4ZWYxYTkzZTU3NjEuLmUzNTc0NDA0OWUzZjIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY1xuKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmNcbkBAIC05LDYgKzksNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2Z0cmFjZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGVyZl9ldmVudC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgveGFycmF5LmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9idGZfaWRzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20vc3lzY2FsbC5oXHUwMDNlXG4gXG4gI2luY2x1ZGUgXCJ0cmFjZV9vdXRwdXQuaFwiXG5AQCAtMTMwMywxNSArMTMwNCwxNSBAQCBzdHJ1Y3QgdHJhY2VfZXZlbnRfZnVuY3Rpb25zIGV4aXRfc3lzY2FsbF9wcmludF9mdW5jcyA9IHtcbiBcdC50cmFjZVx0XHQ9IHByaW50X3N5c2NhbGxfZXhpdCxcbiB9O1xuIFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuLS8qXG4tICogQlRGIGlkIGxpc3RzIGdlbmVyYXRlZCBieSBERUNMQVJFX0VWRU5UX0NMQVNTIGZvciB0aGUgc3lzX2VudGVyIGFuZFxuLSAqIHN5c19leGl0IHRyYWNlcG9pbnRzLiBUaGUgYXV0by1nZW5lcmF0ZWQgZXZlbnRfY2xhc3Nfc3lzX3tlbnRlcixleGl0fVxuLSAqIGlzIHVudXNlZCAocGVyLXN5c2NhbGwgZXZlbnRzIHNoYXJlIHRoZSBoYW5kY3JhZnRlZCBjbGFzc2VzIGJlbG93KSxcbi0gKiBidXQgdGhlIGlkIGxpc3RzIHRoZW1zZWx2ZXMgYXJlIGdsb2JhbCBhbmQgcmV1c2FibGUuXG4tICovXG4tZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19lbnRlcltdO1xuLWV4dGVybiB1MzIgX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZXhpdFtdO1xuKyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4rLyogQlRGIGlkIGxpc3RzIGZvciB0aGUgc2hhcmVkIHN5c19lbnRlci9zeXNfZXhpdCBkaXNwYXRjaGVyIHRyYWNlcG9pbnRzLiAqL1xuK0JURl9JRF9MSVNUKHN5c2NhbGxfZW50ZXJfYnRmX2lkcylcbitCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZW50ZXIpXG4rQlRGX0lEKHN0cnVjdCwgdHJhY2VfZXZlbnRfcmF3X3N5c19lbnRlcilcbitcbitCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylcbitCVEZfSUQoZnVuYywgICBfX2JwZl90cmFjZV9zeXNfZXhpdClcbitCVEZfSUQoc3RydWN0LCB0cmFjZV9ldmVudF9yYXdfc3lzX2V4aXQpXG4gI2VuZGlmXG4gXG4gc3RydWN0IHRyYWNlX2V2ZW50X2NsYXNzIF9fcmVmZGF0YSBldmVudF9jbGFzc19zeXNjYWxsX2VudGVyID0ge1xuQEAgLTEzMjAsOCArMTMyMSw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9lbnRlciA9IHtcbiBcdC5maWVsZHNfYXJyYXlcdD0gc3lzY2FsbF9lbnRlcl9maWVsZHNfYXJyYXksXG4gXHQuZ2V0X2ZpZWxkc1x0PSBzeXNjYWxsX2dldF9lbnRlcl9maWVsZHMsXG4gXHQucmF3X2luaXRcdD0gaW5pdF9zeXNjYWxsX3RyYWNlLFxuLSNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xuLVx0LmJ0Zl9pZHNcdD0gX19icGZfdHJhY2VfYnRmX2lkc19zeXNfZW50ZXIsXG4rI2lmIGRlZmluZWQoQ09ORklHX0JQRl9FVkVOVFMpIFx1MDAyNlx1MDAyNiBkZWZpbmVkKENPTkZJR19ERUJVR19JTkZPX0JURilcbitcdC5idGZfaWRzXHQ9IHN5c2NhbGxfZW50ZXJfYnRmX2lkcyxcbiAjZW5kaWZcbiB9O1xuIFxuQEAgLTEzMzUsOCArMTMzNiw4IEBAIHN0cnVjdCB0cmFjZV9ldmVudF9jbGFzcyBfX3JlZmRhdGEgZXZlbnRfY2xhc3Nfc3lzY2FsbF9leGl0ID0ge1xuIFx0fSxcbiBcdC5maWVsZHNcdFx0PSBMSVNUX0hFQURfSU5JVChldmVudF9jbGFzc19zeXNjYWxsX2V4aXQuZmllbGRzKSxcbiBcdC5yYXdfaW5pdFx0PSBpbml0X3N5c2NhbGxfdHJhY2UsXG4tI2lmZGVmIENPTkZJR19CUEZfRVZFTlRTXG4tXHQuYnRmX2lkc1x0PSBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19leGl0LFxuKyNpZiBkZWZpbmVkKENPTkZJR19CUEZfRVZFTlRTKSBcdTAwMjZcdTAwMjYgZGVmaW5lZChDT05GSUdfREVCVUdfSU5GT19CVEYpXG4rXHQuYnRmX2lkc1x0PSBzeXNjYWxsX2V4aXRfYnRmX2lkcyxcbiAjZW5kaWZcbiB9O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDY6MDguNjgyNTk3NjI5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODQ2Nzk1NTgxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQYXRjaCBBbmFseXNpczogQlRGIElEIERlY2xhcmF0aW9ucyBmb3IgVHJhY2UgRXZlbnRzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIHBhdGNoIGlzIGFkZHJlc3Npbmcgc29tZSBCVEYgSUQgZ2VuZXJhdGlvbiBvciBjb21waWxhdGlvbiBxdWlya3MgcmVsYXRlZCB0byBCUEYgZXZlbnRzIHdpdGhpbiB0aGUgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS4gSXQncyB0b3VjaGluZyBgaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaGAgYW5kIGBrZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuY2AsIGZvY3VzaW5nIG9uIHRoZSBkZWNsYXJhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24gb2YgQlRGIElEcy4gU3BlY2lmaWNhbGx5LCBJJ20gc2VlaW5nIGNoYW5nZXMgYXJvdW5kIGhvdyBgQlRGX0lEX0xJU1RgIGlzIHVzZWQsIHJlcGxhY2luZyBgQlRGX0lEX0xJU1RfR0xPQkFMYCBpbiB0aGUgYF9UUkFDRV9CVEZfSURTX0RFQ0xBUkUoY2FsbClgIG1hY3JvLiBJdCBsb29rcyBsaWtlIGl0J3MgZ3VhcmRpbmcgdGhlIGNvZGUgd2l0aCBib3RoIGBDT05GSUdfQlBGX0VWRU5UU2AgYW5kIGBDT05GSUdfREVCVUdfSU5GT19CVEZgLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIGZvcm1lciwgd2hpY2ggaXMgYSBrZXkgb2JzZXJ2YXRpb24uIFRoZSBhZGRpdGlvbiBvZiBgQlRGX0lEX0xJU1Qoc3lzY2FsbF9lbnRlcl9idGZfaWRzKWAgYW5kIGBCVEZfSURfTElTVChzeXNjYWxsX2V4aXRfYnRmX2lkcylgIGluIGB0cmFjZV9zeXNjYWxscy5jYCBpcyBhbHNvIG5vdGljZWFibGUuXG5cbk15IGZpcnN0IGltcHJlc3Npb24gaXMgdGhhdCB0aGlzIGlzIHVubGlrZWx5IHRvIGludHJvZHVjZSBhbnkgbmV3IGZ1enphYmxlIHN1cmZhY2UuIFRoZSBjb3JlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIG1hY3JvIGRlZmluaXRpb25zIGFuZCBCVEYgSUQgbGlzdCBkZWNsYXJhdGlvbnMuIEkgd2FzIGluaXRpYWxseSBnb2luZyB0byBtYXJrIGl0IGFzIG5vdCB3b3J0aCBmdXp6aW5nLCBidXQgaXQgaXMgYWx3YXlzIGdvb2QgdG8gY2hlY2sgdG8gZW5zdXJlIEkgZG9uJ3QgbWlzcyBzb21ldGhpbmcuIEkgd2lsbCBtYWtlIHN1cmUgdGhpcyBpcyBzaW1wbHkgYSBjb21waWxhdGlvbiBmaXggYW5kIG5vdCBhIGNoYW5nZSB0byB0aGUgcnVudGltZSBiZWhhdmlvci5cblxuT2theSwgbGV0J3MgZGlnIGEgYml0IGRlZXBlci4gVGhlc2UgQlRGIElEcyBhcmUgY3JpdGljYWwgZm9yIEJQRiBwcm9ncmFtcyB0byBwZXJmb3JtIHR5cGUgdmVyaWZpY2F0aW9uLiBUaGUgc3dpdGNoIGZyb20gYSBnbG9iYWwgdG8gYSBsb2NhbCBCVEYgSUQgbGlzdCBpcyBhIGJpdCBtb3JlIGludGVyZXN0aW5nLCB0aG91Z2guIFdlJ3JlIG5vdyBkZWFsaW5nIHdpdGggc3RhdGljIGFycmF5cyAobG9jYWwpIGluc3RlYWQgb2YgZ2xvYmFsIG9uZXMuIEkgc2VlIHRoYXQgdGhlIG9yaWdpbmFsIGNvZGUsIGluc2lkZSBgX1RSQUNFX0JURl9JRFNfREVDTEFSRShjYWxsKWAgdXNlZCBgQlRGX0lEX0xJU1RfR0xPQkFMKF9fYnBmX3RyYWNlX2J0Zl9pZHNfIyNjYWxsLCAyKWAgYW5kIHRoYXQgYHRyYWNlX3N5c2NhbGxzLmNgIGhhZCBgZXh0ZXJuIHUzMiBfX2JwZl90cmFjZV9idGZfaWRzX3N5c19lbnRlcltdO2AuIE5vdywgYHN5c2NhbGxfZW50ZXJfYnRmX2lkc2AgaXMgZGVmaW5lZCBsb2NhbGx5IHdpdGhpbiBgdHJhY2Vfc3lzY2FsbHMuY2AuIFRoaXMgaXMgbG9va2luZyBsaWtlIGEgcmVmYWN0b3JpbmcvY2xlYW51cCwgcmF0aGVyIHRoYW4gZnVuY3Rpb25hbCBjaGFuZ2UuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQuIFRoaXMgaXMgcHVyZWx5IGEgYnVpbGQtdGltZS9CVEYgZ2VuZXJhdGlvbiBmaXgsIGNvbXBsZXRlbHkgb3J0aG9nb25hbCB0byBhbnkgbmV3IGV4ZWN1dGlvbiBwYXRocyBvciBsb2dpYyB0aGF0IHdvdWxkIGJlIHJlbGV2YW50IGZvciBmdXp6aW5nLiBJdCBkb2VzIG5vdCB3YXJyYW50IGFueSBmdXJ0aGVyIGZ1enppbmcgZWZmb3J0cy4gSSdsbCBmbGFnIGl0IGFzIFdvcnRoRnV6emluZz1mYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI1NCwiT3V0cHV0VG9rZW5zIjo4MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxOSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ2OjE3LjE1MDU1NTkxNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjkyNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCVEYgSUQgbGlzdCBkZWNsYXJhdGlvbnMgKGNoYW5naW5nIGdsb2JhbCB0byBsb2NhbCkgYW5kIGFkZHMgYSBtaXNzaW5nIENPTkZJR19ERUJVR19JTkZPX0JURiBjaGVjayBmb3IgQlBGIHRyYWNlIGV2ZW50cy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGFsdGVyIGV4ZWN1dGlvbiBmbG93IHRoYXQgcmVxdWlyZXMgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlRGIElEIGxpc3QgZGVjbGFyYXRpb25zIChjaGFuZ2luZyBnbG9iYWwgdG8gbG9jYWwpIGFuZCBhZGRzIGEgbWlzc2luZyBDT05GSUdfREVCVUdfSU5GT19CVEYgY2hlY2sgZm9yIEJQRiB0cmFjZSBldmVudHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBhbHRlciBleGVjdXRpb24gZmxvdyB0aGF0IHJlcXVpcmVzIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowqmk2z[1] Phase: Running StartedAt: 2026-08-01 09:46:23 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqmk2z[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-01 09:46:23 +0000 UTC FinishedAt: 2026-08-01 09:46:29 +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,}