Name: series-workflownbjlt Phase: Failed StartedAt: 2026-07-03 05:20:13 +0000 UTC FinishedAt: 2026-07-03 05:42:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflownbjlt[0] Phase: Succeeded StartedAt: 2026-07-03 05:20:13 +0000 UTC FinishedAt: 2026-07-03 05:41:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflownbjlt[0].run-triage Phase: Succeeded StartedAt: 2026-07-03 05:20:13 +0000 UTC FinishedAt: 2026-07-03 05:41:52 +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+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvbnZlcnRzIGFuIGV4aXN0aW5nIHJhbmRvbTMyIHNlbGYtdGVzdCBpbnRvIGEgS1VuaXQgdGVzdC4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIG9yIGludHJvZHVjZSBuZXcgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjQwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzg4Y2I2MzExM2JlNGYzMzBiMDYyMGQ3YTYwZmFhYTZkNzgzM2EwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDU6NDA6NTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZ1xuaW5kZXggMjkyMzkyNGJlYTc4Y2IuLjVmMTg1ZTlmMWU5MmJkIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnXG5AQCAtMTU2LDEyICYjNDM7MTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXG4gXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IENPTVBBVFxuIFx0ZGVmYXVsdCB5XG4gXG4tY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUXG4tXHRib29sIFwmIzM0O1BSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdFwmIzM0O1xuLVx0aGVscFxuLVx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSAzMiBiaXQgUFJORyBsaWJyYXJ5IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGFcbi1cdCAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLlxuLVxuICNcbiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0JiMzOTtlZCBpZiBuZWVkZWRcbiAjXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnLmRlYnVnXG5AQCAtMzM1NCw2ICYjNDM7MzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXG4gXG4gXHQgIElmIHVuc3VyZSwgc2F5IE5cbiBcbiYjNDM7Y29uZmlnIFBSQU5ET01fS1VOSVRfVEVTVFxuJiM0MztcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb21cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuJiM0MztcdGRlcGVuZHMgb24gS1VOSVRcbiYjNDM7XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuJiM0MztcdGhlbHBcbiYjNDM7XHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxuJiM0MztcbiYjNDM7XHQgIElmIHVuc3VyZSwgc2F5IE5cbiYjNDM7XG4gZW5kaWYgIyBSVU5USU1FX1RFU1RJTkdfTUVOVVxuIFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXG5kaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuY1xuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9yYW5kb20zMi5jXG5AQCAtNDEsNiAmIzQzOzQxLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Zpc2liaWxpdHkuaFx1MDAzZVxuIFxuIC8qKlxuICAqXHRwcmFuZG9tX3UzMl9zdGF0ZSAtIHNlZWRlZCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuXG5AQCAtOTIsNyAmIzQzOzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpXG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XG4gXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4mIzQzOy8qXG4mIzQzOyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGVcbiYjNDM7ICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cbiYjNDM7ICovXG4mIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVClcbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzOyNlbmRpZlxuJiM0MztWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4ge1xuIFx0LyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi9cbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbkBAIC0xMDYsNiAmIzQzOzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIH1cbiYjNDM7RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XG4gXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIHtcbkBAIC0xMjUsMTc2ICYjNDM7MTM0LDMgQEAgdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIFx0fVxuIH1cbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKTtcbi1cbi0jaWZkZWYgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIHJlc3VsdDtcbi19IHRlc3QxW10gPSB7XG4tXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuLVx0eyAyVSwgMjYyMzEzMDA1OVUgfSxcbi1cdHsgM1UsIDMxMjUxMzM4OTNVIH0sXG4tXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuLX07XG4tXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIGl0ZXJhdGlvbjtcbi1cdHUzMiByZXN1bHQ7XG4tfSB0ZXN0MltdID0ge1xuLVx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cbi1cdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4tXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxuLVx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcbi1cdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4tXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxuLVx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcbi1cdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4tXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxuLVx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcbi1cdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4tXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxuLVx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcbi1cdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4tXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxuLVx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcbi1cdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4tXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxuLVx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcbi1cdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4tXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxuLVx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcbi1cdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4tXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxuLVx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcbi1cdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4tXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxuLVx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcbi1cdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4tXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxuLVx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcbi1cdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4tXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxuLVx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcbi1cdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4tXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxuLVx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcbi1cdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4tXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxuLVx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcbi1cdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4tXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxuLVx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcbi1cdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4tXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxuLVx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcbi1cdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4tXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxuLVx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcbi1cdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4tXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxuLVx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcbi1cdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4tXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxuLVx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcbi1cdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4tXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxuLVx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcbi1cdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4tXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxuLVx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcbi1cdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4tXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxuLVx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcbi1cdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4tXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxuLVx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcbi1cdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4tXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxuLVx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcbi1cdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4tXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxuLVx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcbi1cdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4tXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxuLVx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcbi1cdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4tXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxuLVx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcbi1cdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4tXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxuLVx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcbi1cdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4tXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxuLVx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcbi1cdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4tXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxuLVx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcbi1cdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4tXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxuLVx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcbi1cdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4tXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxuLVx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcbi1cdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4tXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxuLVx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcbi1cdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4tXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxuLVx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcbi1cdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4tfTtcbi1cbi1zdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxuLXtcbi0jZGVmaW5lIExDRyh4KVx0ICgoeCkgKiA2OTA2OVUpXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cbi1cdHN0YXRlLVx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcbi1cdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuLVx0c3RhdGUtXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMyKSwgIDE2VSk7XG4tXHRzdGF0ZS1cdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczMpLCAxMjhVKTtcbi19XG4tXG4tc3RhdGljIGludCBfX2luaXQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCh2b2lkKVxuLXtcbi1cdGludCBpLCBqLCBlcnJvcnMgPSAwLCBydW5zID0gMDtcbi1cdGJvb2wgZXJyb3IgPSBmYWxzZTtcbi1cbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpJiM0MzsmIzQzOykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9yID0gdHJ1ZTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcilcbi1cdFx0cHJfd2FybihcJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcXG5cJiMzNDspO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwmIzM0O3ByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcblwmIzM0Oyk7XG4tXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbi1cdFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbi1cbi1cdFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbi1cdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbi1cdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9ycyYjNDM7JiM0Mzs7XG4tXG4tXHRcdHJ1bnMmIzQzOyYjNDM7O1xuLVx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcnMpXG4tXHRcdHByX3dhcm4oXCYjMzQ7cHJhbmRvbTogJWQvJWQgc2VsZiB0ZXN0cyBmYWlsZWRcXG5cJiMzNDssIGVycm9ycywgcnVucyk7XG4tXHRlbHNlXG4tXHRcdHByX2luZm8oXCYjMzQ7cHJhbmRvbTogJWQgc2VsZiB0ZXN0cyBwYXNzZWRcXG5cJiMzNDssIHJ1bnMpO1xuLVx0cmV0dXJuIDA7XG4tfVxuLWNvcmVfaW5pdGNhbGwocHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCk7XG4tI2VuZGlmXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL01ha2VmaWxlIGIvbGliL3Rlc3RzL01ha2VmaWxlXG5pbmRleCA2MDFkYmE0YjdkOTY2ZC4uMzlkMjgzYjI2ZmUyYjQgMTAwNjQ0XG4tLS0gYS9saWIvdGVzdHMvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9NYWtlZmlsZVxuQEAgLTQ5LDUgJiM0Mzs0OSw2IEBAIG9iai0kKENPTkZJR19TVFJJTkdfSEVMUEVSU19LVU5JVF9URVNUKSAmIzQzOz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xuIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSAmIzQzOz0gdXNlcmNvcHlfa3VuaXQub1xuIG9iai0kKENPTkZJR19VVElMX01BQ1JPU19LVU5JVCkgJiM0Mzs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cbiBvYmotJChDT05GSUdfUkFURUxJTUlUX0tVTklUX1RFU1QpICYjNDM7PSB0ZXN0X3JhdGVsaW1pdC5vXG4mIzQzO29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICYjNDM7PSByYW5kb20zMl9rdW5pdC5vXG4gXG4gb2JqLSQoQ09ORklHX1RFU1RfUlVOVElNRV9NT0RVTEUpXHRcdCYjNDM7PSBtb2R1bGUvXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcbkBAIC0wLDAgJiM0MzsxLDE4MiBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MzsvKlxuJiM0MzsgKiBUZXN0IGNhc2VzIGZvciByYW5kb20zMiBmdW5jdGlvbnMuXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvcHJhbmRvbS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuJiM0MztcbiYjNDM7LyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi9cbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEge1xuJiM0MztcdHUzMiBzZWVkO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDFbXSA9IHtcbiYjNDM7XHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuJiM0MztcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4mIzQzO1x0eyAzVSwgMzEyNTEzMzg5M1UgfSxcbiYjNDM7XHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbiYjNDM7XHR1MzIgc2VlZDtcbiYjNDM7XHR1MzIgaXRlcmF0aW9uO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDJbXSA9IHtcbiYjNDM7XHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xuJiM0MztcdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4mIzQzO1x0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbiYjNDM7XHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxuJiM0MztcdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4mIzQzO1x0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbiYjNDM7XHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxuJiM0MztcdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4mIzQzO1x0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbiYjNDM7XHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxuJiM0MztcdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4mIzQzO1x0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbiYjNDM7XHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxuJiM0MztcdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4mIzQzO1x0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbiYjNDM7XHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxuJiM0MztcdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4mIzQzO1x0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbiYjNDM7XHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxuJiM0MztcdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4mIzQzO1x0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbiYjNDM7XHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxuJiM0MztcdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4mIzQzO1x0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbiYjNDM7XHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxuJiM0MztcdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4mIzQzO1x0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbiYjNDM7XHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxuJiM0MztcdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4mIzQzO1x0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbiYjNDM7XHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxuJiM0MztcdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4mIzQzO1x0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbiYjNDM7XHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxuJiM0MztcdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4mIzQzO1x0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbiYjNDM7XHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxuJiM0MztcdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4mIzQzO1x0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbiYjNDM7XHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxuJiM0MztcdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4mIzQzO1x0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbiYjNDM7XHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxuJiM0MztcdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4mIzQzO1x0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbiYjNDM7XHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxuJiM0MztcdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4mIzQzO1x0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbiYjNDM7XHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxuJiM0MztcdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4mIzQzO1x0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbiYjNDM7XHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxuJiM0MztcdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4mIzQzO1x0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbiYjNDM7XHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxuJiM0MztcdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4mIzQzO1x0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbiYjNDM7XHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxuJiM0MztcdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4mIzQzO1x0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbiYjNDM7XHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxuJiM0MztcdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4mIzQzO1x0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbiYjNDM7XHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxuJiM0MztcdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4mIzQzO1x0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbiYjNDM7XHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxuJiM0MztcdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4mIzQzO1x0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbiYjNDM7XHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxuJiM0MztcdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4mIzQzO1x0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbiYjNDM7XHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxuJiM0MztcdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4mIzQzO1x0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbiYjNDM7XHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxuJiM0MztcdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4mIzQzO1x0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbiYjNDM7XHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxuJiM0MztcdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4mIzQzO1x0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbiYjNDM7XHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxuJiM0MztcdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4mIzQzO1x0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbiYjNDM7XHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxuJiM0MztcdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4mIzQzO1x0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbiYjNDM7XHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxuJiM0MztcdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4mIzQzO1x0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbiYjNDM7XHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxuJiM0MztcdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4mIzQzO1x0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbiYjNDM7XHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxuJiM0MztcdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4mIzQzO1x0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbiYjNDM7XHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxuJiM0MztcdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4mIzQzO1x0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbiYjNDM7XHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxuJiM0MztcdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4mIzQzO3tcbiYjNDM7I2RlZmluZSBMQ0coeClcdCAoKHgpICogNjkwNjlVKVx0Lyogc3VwZXItZHVwZXIgTENHICovXG4mIzQzO1x0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMiksICAxNlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaTtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MVtpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fdGF1czExMyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaSwgajtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XG4mIzQzO1x0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbiYjNDM7XHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuJiM0MztcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgcHJhbmRvbV90ZXN0X2Nhc2VzW10gPSB7XG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksXG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXG4mIzQzO1x0e31cbiYjNDM7fTtcbiYjNDM7XG4mIzQzO3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgcHJhbmRvbV90ZXN0X3N1aXRlID0ge1xuJiM0MztcdC5uYW1lID0gXCYjMzQ7cHJhbmRvbVwmIzM0OyxcbiYjNDM7XHQudGVzdF9jYXNlcyA9IHByYW5kb21fdGVzdF9jYXNlcyxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO2t1bml0X3Rlc3Rfc3VpdGUocHJhbmRvbV90ZXN0X3N1aXRlKTtcbiYjNDM7XG4mIzQzO01PRFVMRV9ERVNDUklQVElPTihcJiMzNDtLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0lNUE9SVF9OUyhcJiMzNDtFWFBPUlRFRF9GT1JfS1VOSVRfVEVTVElOR1wmIzM0Oyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc4OGNiNjMxMTNiZTRmMzMwYjA2MjBkN2E2MGZhYWE2ZDc4MzNhMGIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzIDA1OjQwOjU0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZwppbmRleCAyOTIzOTI0YmVhNzhjYi4uNWYxODVlOWYxZTkyYmQgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnCkBAIC0xNTYsMTIgJiM0MzsxNTYsNiBAQCBjb25maWcgQVVESVRfQ09NUEFUX0dFTkVSSUMKIAlkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgJmFtcDsmYW1wOyBBVURJVF9BUkNIX0NPTVBBVF9HRU5FUklDICZhbXA7JmFtcDsgQ09NUEFUCiAJZGVmYXVsdCB5CiAKLWNvbmZpZyBSQU5ET00zMl9TRUxGVEVTVAotCWJvb2wgJiMzNDtQUk5HIHBlcmZvcm0gc2VsZiB0ZXN0IG9uIGluaXQmIzM0OwotCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIDMyIGJpdCBQUk5HIGxpYnJhcnkgZnVuY3Rpb25zIHRvIHBlcmZvcm0gYQotCSAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLgotCiAjCiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0JiMzOTtlZCBpZiBuZWVkZWQKICMKZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWcKaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NAotLS0gYS9saWIvS2NvbmZpZy5kZWJ1ZwomIzQzOyYjNDM7JiM0MzsgYi9saWIvS2NvbmZpZy5kZWJ1ZwpAQCAtMzM1NCw2ICYjNDM7MzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4KIAomIzQzO2NvbmZpZyBQUkFORE9NX0tVTklUX1RFU1QKJiM0MzsJdHJpc3RhdGUgJiMzNDtLVW5pdCB0ZXN0IGZvciBwcmFuZG9tJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUUwomIzQzOwlkZXBlbmRzIG9uIEtVTklUCiYjNDM7CWRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTCiYjNDM7CWhlbHAKJiM0MzsJICBFbmFibGUgdGhpcyBvcHRpb24gdG8gdGVzdCB0aGUgcHJhbmRvbSBmdW5jdGlvbnMgYXQgcnVudGltZS4KJiM0MzsKJiM0MzsJICBJZiB1bnN1cmUsIHNheSBOCiYjNDM7CiBlbmRpZiAjIFJVTlRJTUVfVEVTVElOR19NRU5VCiAKIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUCmRpZmYgLS1naXQgYS9saWIvcmFuZG9tMzIuYyBiL2xpYi9yYW5kb20zMi5jCmluZGV4IDI0ZTdhY2Q5MzQzZjY4Li5kYWQ5MDIxOWMzNTExZCAxMDA2NDQKLS0tIGEvbGliL3JhbmRvbTMyLmMKJiM0MzsmIzQzOyYjNDM7IGIvbGliL3JhbmRvbTMyLmMKQEAgLTQxLDYgJiM0Mzs0MSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvYml0b3BzLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvc2xhYi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3VuYWxpZ25lZC5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtrdW5pdC92aXNpYmlsaXR5LmgmZ3Q7CiAKIC8qKgogICoJcHJhbmRvbV91MzJfc3RhdGUgLSBzZWVkZWQgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgpAQCAtOTIsNyAmIzQzOzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpCiB9CiBFWFBPUlRfU1lNQk9MKHByYW5kb21fYnl0ZXNfc3RhdGUpOwogCi1zdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSkKJiM0MzsvKgomIzQzOyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGUKJiM0MzsgKiBub24tc3RhdGljIGZvciBLVW5pdCB0ZXN0aW5nIChhdm9pZHMgLVdtaXNzaW5nLXByb3RvdHlwZXMpLgomIzQzOyAqLwomIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVCkKJiM0Mzt2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTsKJiM0MzsjZW5kaWYKJiM0MztWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpCiB7CiAJLyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi8KIAlwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7CkBAIC0xMDYsNiAmIzQzOzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKQogCXByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTsKIAlwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7CiB9CiYjNDM7RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7CiAKIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSkKIHsKQEAgLTEyNSwxNzYgJiM0MzsxMzQsMyBAQCB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpCiAJfQogfQogRVhQT1JUX1NZTUJPTChwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZSk7Ci0KLSNpZmRlZiBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1QKLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7Ci0JdTMyIHNlZWQ7Ci0JdTMyIHJlc3VsdDsKLX0gdGVzdDFbXSA9IHsKLQl7IDFVLCAzNDg0MzUxNjg1VSB9LAotCXsgMlUsIDI2MjMxMzAwNTlVIH0sCi0JeyAzVSwgMzEyNTEzMzg5M1UgfSwKLQl7IDRVLCAgOTg0ODQ3MjU0VSB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHsKLQl1MzIgc2VlZDsKLQl1MzIgaXRlcmF0aW9uOwotCXUzMiByZXN1bHQ7Ci19IHRlc3QyW10gPSB7Ci0JLyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi8KLQl7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LAotCXsgMTMzOTY5MzI5NVUsIDg3NlUsIDM4ODc3NzY1MzJVIH0sCi0JeyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSwKLQl7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LAotCXsgMTAyNzUxNjA0N1UsIDY4N1UsICA1MTE5ODMwNzlVIH0sCi0JeyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSwKLQl7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LAotCXsgIDM2NjIyMTQ0M1UsIDYxN1UsIDI5OTI4NTc3NjNVIH0sCi0JeyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSwKLQl7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LAotCXsgIDY4NDkwNzIxOFUsIDc5OVUsICAzNjc3ODk0OTFVIH0sCi0JeyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSwKLQl7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LAotCXsgIDc2ODA0NjA2NlUsIDg4M1UsIDIwMzQwNzczOTBVIH0sCi0JeyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSwKLQl7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LAotCXsgMTAwODEyOTM3M1UsIDY0MlUsIDE0NzgwODA3NzZVIH0sCi0JeyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSwKLQl7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LAotCXsgMTkyMzAxOTY5N1UsIDczMFUsIDM4MjE0MTk2MjlVIH0sCi0JeyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSwKLQl7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LAotCXsgMjAzMDIwNTk2NFUsIDk2MlUsIDEzMjUxNDQyMjdVIH0sCi0JeyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSwKLQl7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LAotCXsgMTI1Mjc4ODkzMVUsIDY5OVUsICA4NjcxOTU0MzRVIH0sCi0JeyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSwKLQl7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LAotCXsgMTI4MTg0ODM2N1UsIDkzMlUsIDEwMDMxMDAwMzlVIH0sCi0JeyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSwKLQl7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LAotCXsgMTg5Njc1Njk5NlUsIDc2MlUsIDExMjc4NTEwNTVVIH0sCi0JeyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSwKLQl7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LAotCXsgMTY4NTA3MTY4MlUsIDU2N1UsIDE5NjE4MTAzOTZVIH0sCi0JeyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSwKLQl7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LAotCXsgMTgxNzI2OTkyN1UsIDY5M1UsIDQyNzkxMjI1NzNVIH0sCi0JeyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSwKLQl7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LAotCXsgIDM5OTMyNDM1OVUsIDcwMlUsIDE4MDM1OTgxMTZVIH0sCi0JeyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSwKLQl7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LAotCXsgMTY5NjUwNzc3M1UsIDg0MFUsICA1Nzc0MTU0NDdVIH0sCi0JeyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSwKLQl7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LAotCXsgMTI1MDY4MzUwNlUsIDc0OVUsICA4MzY0MTk4NTlVIH0sCi0JeyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSwKLQl7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LAotCXsgIDYxOTQzMzQ3OVUsIDYxMFUsIDM5OTE3ODM4NzVVIH0sCi0JeyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSwKLQl7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LAotCXsgMTMxODIzMzE1MlUsIDkyMlUsIDM4ODAzNjExMzRVIH0sCi0JeyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSwKLQl7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LAotCXsgIDY3ODkzMTc1OFUsIDg0MFUsICAzODA2MTYwNDNVIH0sCi0JeyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSwKLQl7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LAotCXsgICA5MjM5MzIyM1UsIDU4NlUsIDE1MjIxMjg0NzFVIH0sCi0JeyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSwKLQl7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LAotCXsgMTkzNTA1Njk0NVUsIDk1OFUsICA1MTQ4NjQ0NzdVIH0sCi0JeyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSwKLQl7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LAotCXsgICA3MDYxNjM2MVUsIDgyOVUsICAgMjI0ODMwOThVIH0sCi0JeyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSwKLQl7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LAotCXsgIDUzOTQ0NDY1NFUsIDY4MlUsIDE4MzUxNDEyNTlVIH0sCi0JeyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSwKLQl7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LAotCXsgIDQ2OTAyMzgzOFUsIDcxNlUsIDE2Mzc5MTgyMDJVIH0sCi0JeyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSwKLQl7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LAotCXsgIDQwNDcyMjI0OVUsIDk2NVUsIDI3MDQxMTY5OTlVIH0sCi0JeyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSwKLQl7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LAotCXsgMTY1ODA3MTEyNlUsIDY5NFUsIDIyMTQ1Njk0OTBVIH0sCi0JeyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSwKLQl7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LAotCXsgMTAyOTQyNDc5OVUsIDkzN1UsIDM3ODc3NDY4NDFVIH0sCi0JeyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSwKLQl7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LAotCXsgMTMzMDYzNTUzM1UsIDg1N1UsIDMwNDA4MDY1MDRVIH0sCi0JeyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSwKLQl7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LAotCXsgMTg3Nzg0Nzg5OFUsIDk0NVUsIDI5MTUxNDcxNDNVIH0sCi0JeyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSwKLQl7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LAotCXsgMTk0ODA5MzIxMFUsIDYzM1UsIDEzNDY1OTc2ODRVIH0sCi0JeyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSwKLQl7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LAotCXsgMTM2MDMwMjk2NVUsIDY5NlUsIDE2NjUzOTQ0NjFVIH0sCi0JeyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSwKLQl7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LAotCXsgMTYxMzg2ODc5MVUsIDU5MlUsICA4Mjg1NDY4ODNVIH0sCi0JeyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSwKLQl7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LAotCXsgMTM2NDM0MDAyMVUsIDgzNlUsIDM3MTA1MTM0ODZVIH0sCi0JeyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSwKLQl7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LAotfTsKLQotc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZCkKLXsKLSNkZWZpbmUgTENHKHgpCSAoKHgpICogNjkwNjlVKQkvKiBzdXBlci1kdXBlciBMQ0cgKi8KLQlzdGF0ZS0mZ3Q7czEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpOwotCXN0YXRlLSZndDtzMiA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MxKSwgICA4VSk7Ci0Jc3RhdGUtJmd0O3MzID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czIpLCAgMTZVKTsKLQlzdGF0ZS0mZ3Q7czQgPSBfX3NlZWQoTENHKHN0YXRlLSZndDtzMyksIDEyOFUpOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KHZvaWQpCi17Ci0JaW50IGksIGosIGVycm9ycyA9IDAsIHJ1bnMgPSAwOwotCWJvb2wgZXJyb3IgPSBmYWxzZTsKLQotCWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHsKLQkJc3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTsKLQotCQlwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoJmFtcDtzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7Ci0JCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwotCi0JCWlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpCi0JCQllcnJvciA9IHRydWU7Ci0JfQotCi0JaWYgKGVycm9yKQotCQlwcl93YXJuKCYjMzQ7cHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgZmFpbGVkXG4mIzM0Oyk7Ci0JZWxzZQotCQlwcl9pbmZvKCYjMzQ7cHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgcGFzc2VkXG4mIzM0Oyk7Ci0KLQlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRSh0ZXN0Mik7IGkmIzQzOyYjNDM7KSB7Ci0JCXN0cnVjdCBybmRfc3RhdGUgc3RhdGU7Ci0KLQkJcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKCZhbXA7c3RhdGUsIHRlc3QyW2ldLnNlZWQpOwotCQlwcmFuZG9tX3dhcm11cCgmYW1wO3N0YXRlKTsKLQotCQlmb3IgKGogPSAwOyBqICZsdDsgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaiYjNDM7JiM0MzspCi0JCQlwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKTsKLQotCQlpZiAodGVzdDJbaV0ucmVzdWx0ICE9IHByYW5kb21fdTMyX3N0YXRlKCZhbXA7c3RhdGUpKQotCQkJZXJyb3JzJiM0MzsmIzQzOzsKLQotCQlydW5zJiM0MzsmIzQzOzsKLQkJY29uZF9yZXNjaGVkKCk7Ci0JfQotCi0JaWYgKGVycm9ycykKLQkJcHJfd2FybigmIzM0O3ByYW5kb206ICVkLyVkIHNlbGYgdGVzdHMgZmFpbGVkXG4mIzM0OywgZXJyb3JzLCBydW5zKTsKLQllbHNlCi0JCXByX2luZm8oJiMzNDtwcmFuZG9tOiAlZCBzZWxmIHRlc3RzIHBhc3NlZFxuJiMzNDssIHJ1bnMpOwotCXJldHVybiAwOwotfQotY29yZV9pbml0Y2FsbChwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL01ha2VmaWxlIGIvbGliL3Rlc3RzL01ha2VmaWxlCmluZGV4IDYwMWRiYTRiN2Q5NjZkLi4zOWQyODNiMjZmZTJiNCAxMDA2NDQKLS0tIGEvbGliL3Rlc3RzL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9NYWtlZmlsZQpAQCAtNDksNSAmIzQzOzQ5LDYgQEAgb2JqLSQoQ09ORklHX1NUUklOR19IRUxQRVJTX0tVTklUX1RFU1QpICYjNDM7PSBzdHJpbmdfaGVscGVyc19rdW5pdC5vCiBvYmotJChDT05GSUdfVVNFUkNPUFlfS1VOSVRfVEVTVCkgJiM0Mzs9IHVzZXJjb3B5X2t1bml0Lm8KIG9iai0kKENPTkZJR19VVElMX01BQ1JPU19LVU5JVCkgJiM0Mzs9IHV0aWxfbWFjcm9zX2t1bml0Lm8KIG9iai0kKENPTkZJR19SQVRFTElNSVRfS1VOSVRfVEVTVCkgJiM0Mzs9IHRlc3RfcmF0ZWxpbWl0Lm8KJiM0MztvYmotJChDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUKSAmIzQzOz0gcmFuZG9tMzJfa3VuaXQubwogCiBvYmotJChDT05GSUdfVEVTVF9SVU5USU1FX01PRFVMRSkJCSYjNDM7PSBtb2R1bGUvCmRpZmYgLS1naXQgYS9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuYyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jCkBAIC0wLDAgJiM0MzsxLDE4MiBAQAomIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiYjNDM7LyoKJiM0MzsgKiBUZXN0IGNhc2VzIGZvciByYW5kb20zMiBmdW5jdGlvbnMuCiYjNDM7ICovCiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3ByYW5kb20uaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7a3VuaXQvdGVzdC5oJmd0OwomIzQzOwomIzQzOy8qIHByYW5kb21fd2FybXVwKCkgaXMgc3RhdGljIGluIGxpYi9yYW5kb20zMi5jOyBleHBvc2VkIGZvciB0ZXN0aW5nIG9ubHkuICovCiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHsKJiM0MzsJdTMyIHNlZWQ7CiYjNDM7CXUzMiByZXN1bHQ7CiYjNDM7fSB0ZXN0MVtdID0gewomIzQzOwl7IDFVLCAzNDg0MzUxNjg1VSB9LAomIzQzOwl7IDJVLCAyNjIzMTMwMDU5VSB9LAomIzQzOwl7IDNVLCAzMTI1MTMzODkzVSB9LAomIzQzOwl7IDRVLCAgOTg0ODQ3MjU0VSB9LAomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHsKJiM0MzsJdTMyIHNlZWQ7CiYjNDM7CXUzMiBpdGVyYXRpb247CiYjNDM7CXUzMiByZXN1bHQ7CiYjNDM7fSB0ZXN0MltdID0gewomIzQzOwkvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqLwomIzQzOwl7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LAomIzQzOwl7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LAomIzQzOwl7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LAomIzQzOwl7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LAomIzQzOwl7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LAomIzQzOwl7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LAomIzQzOwl7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LAomIzQzOwl7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LAomIzQzOwl7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LAomIzQzOwl7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LAomIzQzOwl7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LAomIzQzOwl7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LAomIzQzOwl7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LAomIzQzOwl7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LAomIzQzOwl7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LAomIzQzOwl7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LAomIzQzOwl7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LAomIzQzOwl7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LAomIzQzOwl7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LAomIzQzOwl7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LAomIzQzOwl7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LAomIzQzOwl7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LAomIzQzOwl7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LAomIzQzOwl7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LAomIzQzOwl7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LAomIzQzOwl7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LAomIzQzOwl7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LAomIzQzOwl7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LAomIzQzOwl7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LAomIzQzOwl7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LAomIzQzOwl7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LAomIzQzOwl7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LAomIzQzOwl7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LAomIzQzOwl7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LAomIzQzOwl7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LAomIzQzOwl7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LAomIzQzOwl7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LAomIzQzOwl7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LAomIzQzOwl7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LAomIzQzOwl7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LAomIzQzOwl7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LAomIzQzOwl7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LAomIzQzOwl7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LAomIzQzOwl7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LAomIzQzOwl7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LAomIzQzOwl7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LAomIzQzOwl7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LAomIzQzOwl7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LAomIzQzOwl7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LAomIzQzOwl7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LAomIzQzOwl7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LAomIzQzOwl7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LAomIzQzOwl7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LAomIzQzOwl7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LAomIzQzOwl7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LAomIzQzOwl7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LAomIzQzOwl7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LAomIzQzOwl7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LAomIzQzOwl7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LAomIzQzOwl7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LAomIzQzOwl7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LAomIzQzOwl7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LAomIzQzOwl7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LAomIzQzOwl7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LAomIzQzOwl7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LAomIzQzOwl7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LAomIzQzOwl7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LAomIzQzOwl7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LAomIzQzOwl7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LAomIzQzOwl7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LAomIzQzOwl7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LAomIzQzOwl7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LAomIzQzOwl7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LAomIzQzOwl7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LAomIzQzOwl7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LAomIzQzOwl7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LAomIzQzOwl7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LAomIzQzOwl7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LAomIzQzOwl7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LAomIzQzOwl7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LAomIzQzOwl7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LAomIzQzOwl7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LAomIzQzOwl7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LAomIzQzOwl7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LAomIzQzOwl7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LAomIzQzOwl7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LAomIzQzOwl7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LAomIzQzOwl7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LAomIzQzOwl7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LAomIzQzOwl7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LAomIzQzOwl7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LAomIzQzOwl7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LAomIzQzOwl7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LAomIzQzOwl7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LAomIzQzOwl7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LAomIzQzOwl7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LAomIzQzOwl7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LAomIzQzOwl7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LAomIzQzOwl7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LAomIzQzOwl7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LAomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKQomIzQzO3sKJiM0MzsjZGVmaW5lIExDRyh4KQkgKCh4KSAqIDY5MDY5VSkJLyogc3VwZXItZHVwZXIgTENHICovCiYjNDM7CXN0YXRlLSZndDtzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7CiYjNDM7CXN0YXRlLSZndDtzMiA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MxKSwgICA4VSk7CiYjNDM7CXN0YXRlLSZndDtzMyA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MyKSwgIDE2VSk7CiYjNDM7CXN0YXRlLSZndDtzNCA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MzKSwgMTI4VSk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KHN0cnVjdCBrdW5pdCAqdGVzdCkKJiM0Mzt7CiYjNDM7CWludCBpOwomIzQzOwlzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlOwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRSh0ZXN0MSk7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZCgmYW1wO3N0YXRlLCB0ZXN0MVtpXS5zZWVkKTsKJiM0MzsJCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwomIzQzOwkJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QxW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpOwomIzQzOwl9CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV90YXVzMTEzKHN0cnVjdCBrdW5pdCAqdGVzdCkKJiM0Mzt7CiYjNDM7CWludCBpLCBqOwomIzQzOwlzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlOwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRSh0ZXN0Mik7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZCgmYW1wO3N0YXRlLCB0ZXN0MltpXS5zZWVkKTsKJiM0MzsJCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwomIzQzOwomIzQzOwkJZm9yIChqID0gMDsgaiAmbHQ7IHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGomIzQzOyYjNDM7KQomIzQzOwkJCXByYW5kb21fdTMyX3N0YXRlKCZhbXA7c3RhdGUpOwomIzQzOwomIzQzOwkJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QyW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpOwomIzQzOwl9CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBwcmFuZG9tX3Rlc3RfY2FzZXNbXSA9IHsKJiM0MzsJS1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksCiYjNDM7CUtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3RhdXMxMTMpLAomIzQzOwl7fQomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBwcmFuZG9tX3Rlc3Rfc3VpdGUgPSB7CiYjNDM7CS5uYW1lID0gJiMzNDtwcmFuZG9tJiMzNDssCiYjNDM7CS50ZXN0X2Nhc2VzID0gcHJhbmRvbV90ZXN0X2Nhc2VzLAomIzQzO307CiYjNDM7CiYjNDM7a3VuaXRfdGVzdF9zdWl0ZShwcmFuZG9tX3Rlc3Rfc3VpdGUpOwomIzQzOwomIzQzO01PRFVMRV9ERVNDUklQVElPTigmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb20mIzM0Oyk7CiYjNDM7TU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CiYjNDM7TU9EVUxFX0lNUE9SVF9OUygmIzM0O0VYUE9SVEVEX0ZPUl9LVU5JVF9URVNUSU5HJiMzNDspOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTYxOQoJCQkJCQkJb3V0cHV0OiA2NgoJCQkJCQkJdGhvdWdodHM6IDI5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLVW5pdCBUZXN0IENvbnZlcnNpb24gZm9yIHRoZSBSYW5kb20zMiBTZWxmLVRlc3QqKgoKT2theSwgc28gSSYjMzk7dmUganVzdCBiZWVuIGxvb2tpbmcgb3ZlciB0aGlzIHBhdGNoLiBJdCYjMzk7cyBlc3NlbnRpYWxseSBhIHN0cmFpZ2h0Zm9yd2FyZCBjb252ZXJzaW9uIG9mIHRoZSBleGlzdGluZyBgcmFuZG9tMzJgIHNlbGYtdGVzdCB0byBhIEtVbml0IHRlc3QgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgdGFrZWF3YXkgaXMgdGhhdCB0aGlzIGlzIGEgKnB1cmVseSogcmVmYWN0b3JpbmcgZWZmb3J0IGZvciB0ZXN0aW5nOyB0aGVyZSYjMzk7cyBubyBhbHRlcmF0aW9uIHRvIHRoZSB1bmRlcmx5aW5nIFBSTkcgbG9naWMgaXRzZWxmLCB3aGljaCBpcyB3aGF0IEkmIzM5O20gbW9zdCBjb25jZXJuZWQgd2l0aCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4KClNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSBgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUYCBpcyBnZXR0aW5nIHJlbW92ZWQsIGFuZCBpbiBpdHMgcGxhY2Ugd2UmIzM5O3JlIHNlZWluZyBgQ09ORklHX1BSQU5ET01fS1VOSVRfVEVTVGAgaW50cm9kdWNlZC4gVGhlIHRlc3QgY29kZSBpdHNlbGYgaGFzIGJlZW4gbW92ZWQgb3V0IG9mIGBsaWIvcmFuZG9tMzIuY2AgYW5kIGludG8gaXRzIG93biBkZWRpY2F0ZWQgS1VuaXQgdGVzdCBmaWxlLCBgbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNgLiBJbXBvcnRhbnRseSwgdGhleSYjMzk7dmUgbW9kaWZpZWQgYGxpYi9yYW5kb20zMi5jYCB0byBleHBvc2UgYHByYW5kb21fd2FybXVwYCBzcGVjaWZpY2FsbHkgZm9yIEtVbml0IHVzYWdlLiBUaGlzIGlzIGEgc2Vuc2libGUgbW92ZS4KCkxldCBtZSBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9mIHRoZSBjaGFuZ2VzLi4uIFllcCwgYXMgZXhwZWN0ZWQ6IGBsaWIvS2NvbmZpZ2AgaGFzIHRoZSBgUkFORE9NMzJfU0VMRlRFU1RgIHJlbW92YWwsIGBsaWIvS2NvbmZpZy5kZWJ1Z2Agbm93IGluY2x1ZGVzIHRoZSBgUFJBTkRPTV9LVU5JVF9URVNUYC4gVGhlIG1haW4gYHJhbmRvbTMyLmNgIGZpbGUgaXMgYmVpbmcgY2xlYW5lZCB1cCDigJMgYHByYW5kb21fd2FybXVwYCBpcyBleHBvc2VkLCBidXQgdGhlIG9sZCBzZWxmdGVzdCBmdW5jdGlvbnMgYW5kIGRhdGEgYXJlIG5vdyBnb25lLiBBbmQgb2YgY291cnNlLCB0aGUgYGxpYi90ZXN0cy9NYWtlZmlsZWAgaGFzIGJlZW4gdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBuZXcgYHJhbmRvbTMyX2t1bml0Lm9gIGFuZCB0aGUgYHJhbmRvbTMyX2t1bml0LmNgIGZpbGUgaXRzZWxmLgoKU2luY2UgdGhpcyBpcyBtZXJlbHkgYSB0ZXN0IHJlc3RydWN0dXJpbmcsIGFuZCB0aGUgY29yZSBQUk5HIGZ1bmN0aW9uYWxpdHkgaXMgdW50b3VjaGVkLCBJJiMzOTttIGNvbmZpZGVudCBpbiBhc3Nlc3NpbmcgdGhpcyBhcyAqKm5vdCoqIGludHJvZHVjaW5nIGFueSBuZXcgZnVuY3Rpb25hbCBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuIFNvLCBJIHdpbGwgYmUgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvbnZlcnRzIGFuIGV4aXN0aW5nIHJhbmRvbTMyIHNlbGYtdGVzdCBpbnRvIGEgS1VuaXQgdGVzdC4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIG9yIGludHJvZHVjZSBuZXcgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NDA6NTUuMTIwNDI2NDUxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM5ODI5MzY4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjQwOjU1LjEyMDQzMDcwMVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzIxMzQ4NTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzg4Y2I2MzExM2JlNGYzMzBiMDYyMGQ3YTYwZmFhYTZkNzgzM2EwYlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAzIDA1OjQwOjU0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnIGIvbGliL0tjb25maWdcXG5pbmRleCAyOTIzOTI0YmVhNzhjYi4uNWYxODVlOWYxZTkyYmQgMTAwNjQ0XFxuLS0tIGEvbGliL0tjb25maWdcXG4rKysgYi9saWIvS2NvbmZpZ1xcbkBAIC0xNTYsMTIgKzE1Niw2IEBAIGNvbmZpZyBBVURJVF9DT01QQVRfR0VORVJJQ1xcbiBcXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXFx1MDAyNlxcdTAwMjYgQVVESVRfQVJDSF9DT01QQVRfR0VORVJJQyBcXHUwMDI2XFx1MDAyNiBDT01QQVRcXG4gXFx0ZGVmYXVsdCB5XFxuIFxcbi1jb25maWcgUkFORE9NMzJfU0VMRlRFU1RcXG4tXFx0Ym9vbCBcXFwiUFJORyBwZXJmb3JtIHNlbGYgdGVzdCBvbiBpbml0XFxcIlxcbi1cXHRoZWxwXFxuLVxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgMzIgYml0IFBSTkcgbGlicmFyeSBmdW5jdGlvbnMgdG8gcGVyZm9ybSBhXFxuLVxcdCAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLlxcbi1cXG4gI1xcbiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0J2VkIGlmIG5lZWRlZFxcbiAjXFxuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWdcXG5pbmRleCBiYTM2OTM5ZmRhNzliZi4uMDIxNGE1ODU5M2Q3ZmIgMTAwNjQ0XFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcXG4rKysgYi9saWIvS2NvbmZpZy5kZWJ1Z1xcbkBAIC0zMzU0LDYgKzMzNTQsMTUgQEAgY29uZmlnIFBSSU1FX05VTUJFUlNfS1VOSVRfVEVTVFxcbiBcXG4gXFx0ICBJZiB1bnN1cmUsIHNheSBOXFxuIFxcbitjb25maWcgUFJBTkRPTV9LVU5JVF9URVNUXFxuK1xcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuK1xcdGRlcGVuZHMgb24gS1VOSVRcXG4rXFx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG4rXFx0aGVscFxcbitcXHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxcbitcXG4rXFx0ICBJZiB1bnN1cmUsIHNheSBOXFxuK1xcbiBlbmRpZiAjIFJVTlRJTUVfVEVTVElOR19NRU5VXFxuIFxcbiBjb25maWcgQVJDSF9VU0VfTUVNVEVTVFxcbmRpZmYgLS1naXQgYS9saWIvcmFuZG9tMzIuYyBiL2xpYi9yYW5kb20zMi5jXFxuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxcbi0tLSBhL2xpYi9yYW5kb20zMi5jXFxuKysrIGIvbGliL3JhbmRvbTMyLmNcXG5AQCAtNDEsNiArNDEsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvYml0b3BzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zbGFiLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC91bmFsaWduZWQuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2t1bml0L3Zpc2liaWxpdHkuaFxcdTAwM2VcXG4gXFxuIC8qKlxcbiAgKlxcdHByYW5kb21fdTMyX3N0YXRlIC0gc2VlZGVkIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvci5cXG5AQCAtOTIsNyArOTMsMTQgQEAgdm9pZCBwcmFuZG9tX2J5dGVzX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB2b2lkICpidWYsIHNpemVfdCBieXRlcylcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fYnl0ZXNfc3RhdGUpO1xcbiBcXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXFxuKy8qXFxuKyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGVcXG4rICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cXG4rICovXFxuKyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVClcXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XFxuKyNlbmRpZlxcbitWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXFxuIHtcXG4gXFx0LyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi9cXG4gXFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xcbkBAIC0xMDYsNiArMTE0LDcgQEAgc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXFxuIFxcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcXG4gXFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xcbiB9XFxuK0VYUE9SVF9TWU1CT0xfSUZfS1VOSVQocHJhbmRvbV93YXJtdXApO1xcbiBcXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxcbiB7XFxuQEAgLTEyNSwxNzYgKzEzNCwzIEBAIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSlcXG4gXFx0fVxcbiB9XFxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUpO1xcbi1cXG4tI2lmZGVmIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVFxcbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDEge1xcbi1cXHR1MzIgc2VlZDtcXG4tXFx0dTMyIHJlc3VsdDtcXG4tfSB0ZXN0MVtdID0ge1xcbi1cXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxcbi1cXHR7IDJVLCAyNjIzMTMwMDU5VSB9LFxcbi1cXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxcbi1cXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxcbi19O1xcbi1cXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcXG4tXFx0dTMyIHNlZWQ7XFxuLVxcdHUzMiBpdGVyYXRpb247XFxuLVxcdHUzMiByZXN1bHQ7XFxuLX0gdGVzdDJbXSA9IHtcXG4tXFx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cXG4tXFx0eyAgOTMxNTU3NjU2VSwgOTU5VSwgMjk3NTU5Mzc4MlUgfSxcXG4tXFx0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcXG4tXFx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcXG4tXFx0eyAgNjAxNzMwNzc2VSwgNzIzVSwgMTc3NjE2MjY1MVUgfSxcXG4tXFx0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcXG4tXFx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcXG4tXFx0eyAxMzk1NTIyMDMyVSwgNjUyVSwgMjIyMjA2MzY3NlUgfSxcXG4tXFx0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcXG4tXFx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcXG4tXFx0eyAgNTU2MjA2NjcxVSwgOTk0VSwgIDc5OTYyNjQ1OVUgfSxcXG4tXFx0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcXG4tXFx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcXG4tXFx0eyAxNjY4NTE2NDUxVSwgNjQ0VSwgMzYyMDU5MDY4NVUgfSxcXG4tXFx0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcXG4tXFx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcXG4tXFx0eyAgNTM2NTg1MTQ1VSwgOTk2VSwgMzU3NzI1OTIwNFUgfSxcXG4tXFx0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcXG4tXFx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcXG4tXFx0eyAxOTY3ODgzMTYzVSwgNTA4VSwgICAxMDczNDYyNFUgfSxcXG4tXFx0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcXG4tXFx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcXG4tXFx0eyAxOTYxMzAyNzE0VSwgODQ1VSwgIDg0MTk2MjU3MlUgfSxcXG4tXFx0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcXG4tXFx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcXG4tXFx0eyAgNjM1NDgyNTAyVSwgNzc5VSwgNDIwMDQ4OTc0NlUgfSxcXG4tXFx0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcXG4tXFx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcXG4tXFx0eyAxMDcxNDY4MjE2VSwgOTgzVSwgIDkxNzg3NjYzMFUgfSxcXG4tXFx0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcXG4tXFx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcXG4tXFx0eyAxOTczNjcyNzc3VSwgODUzVSwgMTA3MTM2ODg3MlUgfSxcXG4tXFx0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcXG4tXFx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcXG4tXFx0eyAxMjQwNTIwNTEwVSwgOTUxVSwgMjg0OTU3NjY1N1UgfSxcXG4tXFx0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcXG4tXFx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcXG4tXFx0eyAxMjA4MTE4OTAzVSwgNjEyVSwgMTYxMzE0NTAyMlUgfSxcXG4tXFx0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcXG4tXFx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcXG4tXFx0eyAgMzY1OTE2ODUwVSwgODA3VSwgIDYwMDQyNDMxNFUgfSxcXG4tXFx0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcXG4tXFx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcXG4tXFx0eyAgNjk3NzU4MTE1VSwgODQwVSwgMTQ4MzYzOTQwMlUgfSxcXG4tXFx0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcXG4tXFx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcXG4tXFx0eyAgOTU1NjQ2Njg3VSwgNzQyVSwgMzg0NjQ5NDM1N1UgfSxcXG4tXFx0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcXG4tXFx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcXG4tXFx0eyAgIDQ3NDg1MzM4VSwgNTU4VSwgMzUyMTEyMDgzNFUgfSxcXG4tXFx0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcXG4tXFx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcXG4tXFx0eyAxNzEyMjI0OTg0VSwgNjA2VSwgMjM5MzMxMjAwM1UgfSxcXG4tXFx0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcXG4tXFx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcXG4tXFx0eyAgIDY0NzIxNDIxVSwgNzAzVSwgIDY4Mzg2MDU1MFUgfSxcXG4tXFx0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcXG4tXFx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcXG4tXFx0eyAgNjc3NzAzNjE5VSwgNTMwVSwgMjgyNjkxNDE2MVUgfSxcXG4tXFx0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcXG4tXFx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcXG4tXFx0eyAgMzU4Mjg4OTg2VSwgNjk1VSwgMTA5MTk1Njk5OFUgfSxcXG4tXFx0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcXG4tXFx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcXG4tXFx0eyAxNTYwMDg5NDAyVSwgODk3VSwgMjIzODU1MTI4N1UgfSxcXG4tXFx0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcXG4tXFx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcXG4tXFx0eyAgIDIwMjIxMTkwVSwgODc5VSwgMTU2NDE1Mjk3MFUgfSxcXG4tXFx0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcXG4tXFx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcXG4tXFx0eyAyMDE5Mjk1NTQ0VSwgNjQ1VSwgMzI4NjQzODkzMFUgfSxcXG4tXFx0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcXG4tXFx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcXG4tXFx0eyAgNDAwNjcyMDM2VSwgODA5VSwgNDI2NDIxMjc4NVUgfSxcXG4tXFx0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcXG4tXFx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcXG4tXFx0eyAgNTE5OTUzOTU0VSwgNjY3VSwgMjU3NDQzNjIzN1UgfSxcXG4tXFx0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcXG4tXFx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcXG4tXFx0eyAgNjkwMTAzNjQ3VSwgOTY5VSwgMzcwMDc1ODA4M1UgfSxcXG4tXFx0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcXG4tXFx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcXG4tXFx0eyAxNTM1NDMyODg3VSwgOTk4VSwgICA0MjYxMDk0M1UgfSxcXG4tXFx0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcXG4tXFx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcXG4tXFx0eyAxMzIyNDExNTM3VSwgNjgwVSwgMzIyMzI1MDMyNFUgfSxcXG4tXFx0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcXG4tXFx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcXG4tXFx0eyAgODA1Njg3NTM2VSwgNzQ0VSwgNDAzMjI3NzkyMFUgfSxcXG4tXFx0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcXG4tXFx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcXG4tXFx0eyAgNjkwMjQxMzA0VSwgNzcwVSwgMTIwMTAzMTI5OFUgfSxcXG4tXFx0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcXG4tXFx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcXG4tXFx0eyAgNDQ3MDkyMjUxVSwgNTAwVSwgMzQzODc0MzM3NVUgfSxcXG4tXFx0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcXG4tXFx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcXG4tXFx0eyAgNzI2NjkyODk5VSwgODEwVSwgMTY1Njg3Mjg2N1UgfSxcXG4tXFx0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcXG4tXFx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcXG4tXFx0eyAgNDA3OTgzOTY0VSwgOTIxVSwgIDcyODc2NzA1OVUgfSxcXG4tfTtcXG4tXFxuLXN0YXRpYyB2b2lkIHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXFxuLXtcXG4tI2RlZmluZSBMQ0coeClcXHQgKCh4KSAqIDY5MDY5VSlcXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cXG4tXFx0c3RhdGUtXFx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcXG4tXFx0c3RhdGUtXFx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cXHUwMDNlczEpLCAgIDhVKTtcXG4tXFx0c3RhdGUtXFx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cXHUwMDNlczIpLCAgMTZVKTtcXG4tXFx0c3RhdGUtXFx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cXHUwMDNlczMpLCAxMjhVKTtcXG4tfVxcbi1cXG4tc3RhdGljIGludCBfX2luaXQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCh2b2lkKVxcbi17XFxuLVxcdGludCBpLCBqLCBlcnJvcnMgPSAwLCBydW5zID0gMDtcXG4tXFx0Ym9vbCBlcnJvciA9IGZhbHNlO1xcbi1cXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpKyspIHtcXG4tXFx0XFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4tXFxuLVxcdFxcdHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xcbi1cXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbi1cXG4tXFx0XFx0aWYgKHRlc3QxW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpKVxcbi1cXHRcXHRcXHRlcnJvciA9IHRydWU7XFxuLVxcdH1cXG4tXFxuLVxcdGlmIChlcnJvcilcXG4tXFx0XFx0cHJfd2FybihcXFwicHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgZmFpbGVkXFxcXG5cXFwiKTtcXG4tXFx0ZWxzZVxcbi1cXHRcXHRwcl9pbmZvKFxcXCJwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBwYXNzZWRcXFxcblxcXCIpO1xcbi1cXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGVzdDIpOyBpKyspIHtcXG4tXFx0XFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4tXFxuLVxcdFxcdHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xcbi1cXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbi1cXG4tXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcXG4tXFx0XFx0XFx0cHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKTtcXG4tXFxuLVxcdFxcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKSlcXG4tXFx0XFx0XFx0ZXJyb3JzKys7XFxuLVxcbi1cXHRcXHRydW5zKys7XFxuLVxcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbi1cXHR9XFxuLVxcbi1cXHRpZiAoZXJyb3JzKVxcbi1cXHRcXHRwcl93YXJuKFxcXCJwcmFuZG9tOiAlZC8lZCBzZWxmIHRlc3RzIGZhaWxlZFxcXFxuXFxcIiwgZXJyb3JzLCBydW5zKTtcXG4tXFx0ZWxzZVxcbi1cXHRcXHRwcl9pbmZvKFxcXCJwcmFuZG9tOiAlZCBzZWxmIHRlc3RzIHBhc3NlZFxcXFxuXFxcIiwgcnVucyk7XFxuLVxcdHJldHVybiAwO1xcbi19XFxuLWNvcmVfaW5pdGNhbGwocHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCk7XFxuLSNlbmRpZlxcbmRpZmYgLS1naXQgYS9saWIvdGVzdHMvTWFrZWZpbGUgYi9saWIvdGVzdHMvTWFrZWZpbGVcXG5pbmRleCA2MDFkYmE0YjdkOTY2ZC4uMzlkMjgzYjI2ZmUyYjQgMTAwNjQ0XFxuLS0tIGEvbGliL3Rlc3RzL01ha2VmaWxlXFxuKysrIGIvbGliL3Rlc3RzL01ha2VmaWxlXFxuQEAgLTQ5LDUgKzQ5LDYgQEAgb2JqLSQoQ09ORklHX1NUUklOR19IRUxQRVJTX0tVTklUX1RFU1QpICs9IHN0cmluZ19oZWxwZXJzX2t1bml0Lm9cXG4gb2JqLSQoQ09ORklHX1VTRVJDT1BZX0tVTklUX1RFU1QpICs9IHVzZXJjb3B5X2t1bml0Lm9cXG4gb2JqLSQoQ09ORklHX1VUSUxfTUFDUk9TX0tVTklUKSArPSB1dGlsX21hY3Jvc19rdW5pdC5vXFxuIG9iai0kKENPTkZJR19SQVRFTElNSVRfS1VOSVRfVEVTVCkgKz0gdGVzdF9yYXRlbGltaXQub1xcbitvYmotJChDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUKSArPSByYW5kb20zMl9rdW5pdC5vXFxuIFxcbiBvYmotJChDT05GSUdfVEVTVF9SVU5USU1FX01PRFVMRSlcXHRcXHQrPSBtb2R1bGUvXFxuZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jIGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMlxcbi0tLSAvZGV2L251bGxcXG4rKysgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xcbkBAIC0wLDAgKzEsMTgyIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuKy8qXFxuKyAqIFRlc3QgY2FzZXMgZm9yIHJhbmRvbTMyIGZ1bmN0aW9ucy5cXG4rICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcHJhbmRvbS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNja3VuaXQvdGVzdC5oXFx1MDAzZVxcbitcXG4rLyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi9cXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XFxuK1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEge1xcbitcXHR1MzIgc2VlZDtcXG4rXFx0dTMyIHJlc3VsdDtcXG4rfSB0ZXN0MVtdID0ge1xcbitcXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxcbitcXHR7IDJVLCAyNjIzMTMwMDU5VSB9LFxcbitcXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxcbitcXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxcbit9O1xcbitcXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcXG4rXFx0dTMyIHNlZWQ7XFxuK1xcdHUzMiBpdGVyYXRpb247XFxuK1xcdHUzMiByZXN1bHQ7XFxuK30gdGVzdDJbXSA9IHtcXG4rXFx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cXG4rXFx0eyAgOTMxNTU3NjU2VSwgOTU5VSwgMjk3NTU5Mzc4MlUgfSxcXG4rXFx0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcXG4rXFx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcXG4rXFx0eyAgNjAxNzMwNzc2VSwgNzIzVSwgMTc3NjE2MjY1MVUgfSxcXG4rXFx0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcXG4rXFx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcXG4rXFx0eyAxMzk1NTIyMDMyVSwgNjUyVSwgMjIyMjA2MzY3NlUgfSxcXG4rXFx0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcXG4rXFx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcXG4rXFx0eyAgNTU2MjA2NjcxVSwgOTk0VSwgIDc5OTYyNjQ1OVUgfSxcXG4rXFx0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcXG4rXFx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcXG4rXFx0eyAxNjY4NTE2NDUxVSwgNjQ0VSwgMzYyMDU5MDY4NVUgfSxcXG4rXFx0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcXG4rXFx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcXG4rXFx0eyAgNTM2NTg1MTQ1VSwgOTk2VSwgMzU3NzI1OTIwNFUgfSxcXG4rXFx0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcXG4rXFx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcXG4rXFx0eyAxOTY3ODgzMTYzVSwgNTA4VSwgICAxMDczNDYyNFUgfSxcXG4rXFx0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcXG4rXFx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcXG4rXFx0eyAxOTYxMzAyNzE0VSwgODQ1VSwgIDg0MTk2MjU3MlUgfSxcXG4rXFx0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcXG4rXFx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcXG4rXFx0eyAgNjM1NDgyNTAyVSwgNzc5VSwgNDIwMDQ4OTc0NlUgfSxcXG4rXFx0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcXG4rXFx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcXG4rXFx0eyAxMDcxNDY4MjE2VSwgOTgzVSwgIDkxNzg3NjYzMFUgfSxcXG4rXFx0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcXG4rXFx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcXG4rXFx0eyAxOTczNjcyNzc3VSwgODUzVSwgMTA3MTM2ODg3MlUgfSxcXG4rXFx0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcXG4rXFx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcXG4rXFx0eyAxMjQwNTIwNTEwVSwgOTUxVSwgMjg0OTU3NjY1N1UgfSxcXG4rXFx0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcXG4rXFx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcXG4rXFx0eyAxMjA4MTE4OTAzVSwgNjEyVSwgMTYxMzE0NTAyMlUgfSxcXG4rXFx0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcXG4rXFx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcXG4rXFx0eyAgMzY1OTE2ODUwVSwgODA3VSwgIDYwMDQyNDMxNFUgfSxcXG4rXFx0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcXG4rXFx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcXG4rXFx0eyAgNjk3NzU4MTE1VSwgODQwVSwgMTQ4MzYzOTQwMlUgfSxcXG4rXFx0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcXG4rXFx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcXG4rXFx0eyAgOTU1NjQ2Njg3VSwgNzQyVSwgMzg0NjQ5NDM1N1UgfSxcXG4rXFx0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcXG4rXFx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcXG4rXFx0eyAgIDQ3NDg1MzM4VSwgNTU4VSwgMzUyMTEyMDgzNFUgfSxcXG4rXFx0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcXG4rXFx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcXG4rXFx0eyAxNzEyMjI0OTg0VSwgNjA2VSwgMjM5MzMxMjAwM1UgfSxcXG4rXFx0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcXG4rXFx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcXG4rXFx0eyAgIDY0NzIxNDIxVSwgNzAzVSwgIDY4Mzg2MDU1MFUgfSxcXG4rXFx0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcXG4rXFx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcXG4rXFx0eyAgNjc3NzAzNjE5VSwgNTMwVSwgMjgyNjkxNDE2MVUgfSxcXG4rXFx0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcXG4rXFx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcXG4rXFx0eyAgMzU4Mjg4OTg2VSwgNjk1VSwgMTA5MTk1Njk5OFUgfSxcXG4rXFx0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcXG4rXFx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcXG4rXFx0eyAxNTYwMDg5NDAyVSwgODk3VSwgMjIzODU1MTI4N1UgfSxcXG4rXFx0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcXG4rXFx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcXG4rXFx0eyAgIDIwMjIxMTkwVSwgODc5VSwgMTU2NDE1Mjk3MFUgfSxcXG4rXFx0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcXG4rXFx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcXG4rXFx0eyAyMDE5Mjk1NTQ0VSwgNjQ1VSwgMzI4NjQzODkzMFUgfSxcXG4rXFx0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcXG4rXFx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcXG4rXFx0eyAgNDAwNjcyMDM2VSwgODA5VSwgNDI2NDIxMjc4NVUgfSxcXG4rXFx0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcXG4rXFx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcXG4rXFx0eyAgNTE5OTUzOTU0VSwgNjY3VSwgMjU3NDQzNjIzN1UgfSxcXG4rXFx0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcXG4rXFx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcXG4rXFx0eyAgNjkwMTAzNjQ3VSwgOTY5VSwgMzcwMDc1ODA4M1UgfSxcXG4rXFx0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcXG4rXFx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcXG4rXFx0eyAxNTM1NDMyODg3VSwgOTk4VSwgICA0MjYxMDk0M1UgfSxcXG4rXFx0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcXG4rXFx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcXG4rXFx0eyAxMzIyNDExNTM3VSwgNjgwVSwgMzIyMzI1MDMyNFUgfSxcXG4rXFx0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcXG4rXFx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcXG4rXFx0eyAgODA1Njg3NTM2VSwgNzQ0VSwgNDAzMjI3NzkyMFUgfSxcXG4rXFx0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcXG4rXFx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcXG4rXFx0eyAgNjkwMjQxMzA0VSwgNzcwVSwgMTIwMTAzMTI5OFUgfSxcXG4rXFx0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcXG4rXFx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcXG4rXFx0eyAgNDQ3MDkyMjUxVSwgNTAwVSwgMzQzODc0MzM3NVUgfSxcXG4rXFx0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcXG4rXFx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcXG4rXFx0eyAgNzI2NjkyODk5VSwgODEwVSwgMTY1Njg3Mjg2N1UgfSxcXG4rXFx0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcXG4rXFx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcXG4rXFx0eyAgNDA3OTgzOTY0VSwgOTIxVSwgIDcyODc2NzA1OVUgfSxcXG4rfTtcXG4rXFxuK3N0YXRpYyB2b2lkIHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZClcXG4re1xcbisjZGVmaW5lIExDRyh4KVxcdCAoKHgpICogNjkwNjlVKVxcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xcbitcXHRzdGF0ZS1cXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xcbitcXHRzdGF0ZS1cXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMSksICAgOFUpO1xcbitcXHRzdGF0ZS1cXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMiksICAxNlUpO1xcbitcXHRzdGF0ZS1cXHUwMDNlczQgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMyksIDEyOFUpO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuK3tcXG4rXFx0aW50IGk7XFxuK1xcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xcbitcXHRcXHRwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xcbitcXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbitcXHRcXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDFbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpKTtcXG4rXFx0fVxcbit9XFxuK1xcbitzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fdGF1czExMyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuK3tcXG4rXFx0aW50IGksIGo7XFxuK1xcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0Mik7IGkrKykge1xcbitcXHRcXHRwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xcbitcXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbitcXG4rXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcXG4rXFx0XFx0XFx0cHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKTtcXG4rXFxuK1xcdFxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFxcdTAwMjZzdGF0ZSkpO1xcbitcXHR9XFxuK31cXG4rXFxuK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBwcmFuZG9tX3Rlc3RfY2FzZXNbXSA9IHtcXG4rXFx0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksXFxuK1xcdEtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3RhdXMxMTMpLFxcbitcXHR7fVxcbit9O1xcbitcXG4rc3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBwcmFuZG9tX3Rlc3Rfc3VpdGUgPSB7XFxuK1xcdC5uYW1lID0gXFxcInByYW5kb21cXFwiLFxcbitcXHQudGVzdF9jYXNlcyA9IHByYW5kb21fdGVzdF9jYXNlcyxcXG4rfTtcXG4rXFxuK2t1bml0X3Rlc3Rfc3VpdGUocHJhbmRvbV90ZXN0X3N1aXRlKTtcXG4rXFxuK01PRFVMRV9ERVNDUklQVElPTihcXFwiS1VuaXQgdGVzdCBmb3IgcHJhbmRvbVxcXCIpO1xcbitNT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuK01PRFVMRV9JTVBPUlRfTlMoXFxcIkVYUE9SVEVEX0ZPUl9LVU5JVF9URVNUSU5HXFxcIik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjQwOjU1LjQ0MjM4NjY2OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3NjMyNzE1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzg4Y2I2MzExM2JlNGYzMzBiMDYyMGQ3YTYwZmFhYTZkNzgzM2EwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDU6NDA6NTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZyBiL2xpYi9LY29uZmlnXG5pbmRleCAyOTIzOTI0YmVhNzhjYi4uNWYxODVlOWYxZTkyYmQgMTAwNjQ0XG4tLS0gYS9saWIvS2NvbmZpZ1xuKysrIGIvbGliL0tjb25maWdcbkBAIC0xNTYsMTIgKzE1Niw2IEBAIGNvbmZpZyBBVURJVF9DT01QQVRfR0VORVJJQ1xuIFx0ZGVwZW5kcyBvbiBBVURJVF9HRU5FUklDIFx1MDAyNlx1MDAyNiBBVURJVF9BUkNIX0NPTVBBVF9HRU5FUklDIFx1MDAyNlx1MDAyNiBDT01QQVRcbiBcdGRlZmF1bHQgeVxuIFxuLWNvbmZpZyBSQU5ET00zMl9TRUxGVEVTVFxuLVx0Ym9vbCBcIlBSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdFwiXG4tXHRoZWxwXG4tXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIDMyIGJpdCBQUk5HIGxpYnJhcnkgZnVuY3Rpb25zIHRvIHBlcmZvcm0gYVxuLVx0ICBzZWxmIHRlc3Qgb24gaW5pdGlhbGl6YXRpb24uXG4tXG4gI1xuICMgY29tcHJlc3Npb24gc3VwcG9ydCBpcyBzZWxlY3QnZWQgaWYgbmVlZGVkXG4gI1xuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWdcbmluZGV4IGJhMzY5MzlmZGE3OWJmLi4wMjE0YTU4NTkzZDdmYiAxMDA2NDRcbi0tLSBhL2xpYi9LY29uZmlnLmRlYnVnXG4rKysgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuQEAgLTMzNTQsNiArMzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXG4gXG4gXHQgIElmIHVuc3VyZSwgc2F5IE5cbiBcbitjb25maWcgUFJBTkRPTV9LVU5JVF9URVNUXG4rXHR0cmlzdGF0ZSBcIktVbml0IHRlc3QgZm9yIHByYW5kb21cIiBpZiAhS1VOSVRfQUxMX1RFU1RTXG4rXHRkZXBlbmRzIG9uIEtVTklUXG4rXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuK1x0aGVscFxuK1x0ICBFbmFibGUgdGhpcyBvcHRpb24gdG8gdGVzdCB0aGUgcHJhbmRvbSBmdW5jdGlvbnMgYXQgcnVudGltZS5cbitcbitcdCAgSWYgdW5zdXJlLCBzYXkgTlxuK1xuIGVuZGlmICMgUlVOVElNRV9URVNUSU5HX01FTlVcbiBcbiBjb25maWcgQVJDSF9VU0VfTUVNVEVTVFxuZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmNcbmluZGV4IDI0ZTdhY2Q5MzQzZjY4Li5kYWQ5MDIxOWMzNTExZCAxMDA2NDRcbi0tLSBhL2xpYi9yYW5kb20zMi5jXG4rKysgYi9saWIvcmFuZG9tMzIuY1xuQEAgLTQxLDYgKzQxLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNja3VuaXQvdmlzaWJpbGl0eS5oXHUwMDNlXG4gXG4gLyoqXG4gICpcdHByYW5kb21fdTMyX3N0YXRlIC0gc2VlZGVkIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvci5cbkBAIC05Miw3ICs5MywxNCBAQCB2b2lkIHByYW5kb21fYnl0ZXNfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ5dGVzKVxuIH1cbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fYnl0ZXNfc3RhdGUpO1xuIFxuLXN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuKy8qXG4rICogT25seSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQgaXQgaGFzIGEgcHJvdG90eXBlIHdoZW4gbWFkZVxuKyAqIG5vbi1zdGF0aWMgZm9yIEtVbml0IHRlc3RpbmcgKGF2b2lkcyAtV21pc3NpbmctcHJvdG90eXBlcykuXG4rICovXG4rI2lmIElTX0VOQUJMRUQoQ09ORklHX0tVTklUKVxuK3ZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpO1xuKyNlbmRpZlxuK1ZJU0lCTEVfSUZfS1VOSVQgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcbiB7XG4gXHQvKiBDYWxsaW5nIFJORyB0ZW4gdGltZXMgdG8gc2F0aXNmeSByZWN1cnJlbmNlIGNvbmRpdGlvbiAqL1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuQEAgLTEwNiw2ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbiB9XG4rRVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XG4gXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIHtcbkBAIC0xMjUsMTc2ICsxMzQsMyBAQCB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpXG4gXHR9XG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUpO1xuLVxuLSNpZmRlZiBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1Rcbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDEge1xuLVx0dTMyIHNlZWQ7XG4tXHR1MzIgcmVzdWx0O1xuLX0gdGVzdDFbXSA9IHtcbi1cdHsgMVUsIDM0ODQzNTE2ODVVIH0sXG4tXHR7IDJVLCAyNjIzMTMwMDU5VSB9LFxuLVx0eyAzVSwgMzEyNTEzMzg5M1UgfSxcbi1cdHsgNFUsICA5ODQ4NDcyNTRVIH0sXG4tfTtcbi1cbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDIge1xuLVx0dTMyIHNlZWQ7XG4tXHR1MzIgaXRlcmF0aW9uO1xuLVx0dTMyIHJlc3VsdDtcbi19IHRlc3QyW10gPSB7XG4tXHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xuLVx0eyAgOTMxNTU3NjU2VSwgOTU5VSwgMjk3NTU5Mzc4MlUgfSxcbi1cdHsgMTMzOTY5MzI5NVUsIDg3NlUsIDM4ODc3NzY1MzJVIH0sXG4tXHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxuLVx0eyAgNjAxNzMwNzc2VSwgNzIzVSwgMTc3NjE2MjY1MVUgfSxcbi1cdHsgMTAyNzUxNjA0N1UsIDY4N1UsICA1MTE5ODMwNzlVIH0sXG4tXHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxuLVx0eyAxMzk1NTIyMDMyVSwgNjUyVSwgMjIyMjA2MzY3NlUgfSxcbi1cdHsgIDM2NjIyMTQ0M1UsIDYxN1UsIDI5OTI4NTc3NjNVIH0sXG4tXHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxuLVx0eyAgNTU2MjA2NjcxVSwgOTk0VSwgIDc5OTYyNjQ1OVUgfSxcbi1cdHsgIDY4NDkwNzIxOFUsIDc5OVUsICAzNjc3ODk0OTFVIH0sXG4tXHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxuLVx0eyAxNjY4NTE2NDUxVSwgNjQ0VSwgMzYyMDU5MDY4NVUgfSxcbi1cdHsgIDc2ODA0NjA2NlUsIDg4M1UsIDIwMzQwNzczOTBVIH0sXG4tXHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxuLVx0eyAgNTM2NTg1MTQ1VSwgOTk2VSwgMzU3NzI1OTIwNFUgfSxcbi1cdHsgMTAwODEyOTM3M1UsIDY0MlUsIDE0NzgwODA3NzZVIH0sXG4tXHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxuLVx0eyAxOTY3ODgzMTYzVSwgNTA4VSwgICAxMDczNDYyNFUgfSxcbi1cdHsgMTkyMzAxOTY5N1UsIDczMFUsIDM4MjE0MTk2MjlVIH0sXG4tXHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxuLVx0eyAxOTYxMzAyNzE0VSwgODQ1VSwgIDg0MTk2MjU3MlUgfSxcbi1cdHsgMjAzMDIwNTk2NFUsIDk2MlUsIDEzMjUxNDQyMjdVIH0sXG4tXHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxuLVx0eyAgNjM1NDgyNTAyVSwgNzc5VSwgNDIwMDQ4OTc0NlUgfSxcbi1cdHsgMTI1Mjc4ODkzMVUsIDY5OVUsICA4NjcxOTU0MzRVIH0sXG4tXHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxuLVx0eyAxMDcxNDY4MjE2VSwgOTgzVSwgIDkxNzg3NjYzMFUgfSxcbi1cdHsgMTI4MTg0ODM2N1UsIDkzMlUsIDEwMDMxMDAwMzlVIH0sXG4tXHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxuLVx0eyAxOTczNjcyNzc3VSwgODUzVSwgMTA3MTM2ODg3MlUgfSxcbi1cdHsgMTg5Njc1Njk5NlUsIDc2MlUsIDExMjc4NTEwNTVVIH0sXG4tXHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxuLVx0eyAxMjQwNTIwNTEwVSwgOTUxVSwgMjg0OTU3NjY1N1UgfSxcbi1cdHsgMTY4NTA3MTY4MlUsIDU2N1UsIDE5NjE4MTAzOTZVIH0sXG4tXHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxuLVx0eyAxMjA4MTE4OTAzVSwgNjEyVSwgMTYxMzE0NTAyMlUgfSxcbi1cdHsgMTgxNzI2OTkyN1UsIDY5M1UsIDQyNzkxMjI1NzNVIH0sXG4tXHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxuLVx0eyAgMzY1OTE2ODUwVSwgODA3VSwgIDYwMDQyNDMxNFUgfSxcbi1cdHsgIDM5OTMyNDM1OVUsIDcwMlUsIDE4MDM1OTgxMTZVIH0sXG4tXHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxuLVx0eyAgNjk3NzU4MTE1VSwgODQwVSwgMTQ4MzYzOTQwMlUgfSxcbi1cdHsgMTY5NjUwNzc3M1UsIDg0MFUsICA1Nzc0MTU0NDdVIH0sXG4tXHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxuLVx0eyAgOTU1NjQ2Njg3VSwgNzQyVSwgMzg0NjQ5NDM1N1UgfSxcbi1cdHsgMTI1MDY4MzUwNlUsIDc0OVUsICA4MzY0MTk4NTlVIH0sXG4tXHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxuLVx0eyAgIDQ3NDg1MzM4VSwgNTU4VSwgMzUyMTEyMDgzNFUgfSxcbi1cdHsgIDYxOTQzMzQ3OVUsIDYxMFUsIDM5OTE3ODM4NzVVIH0sXG4tXHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxuLVx0eyAxNzEyMjI0OTg0VSwgNjA2VSwgMjM5MzMxMjAwM1UgfSxcbi1cdHsgMTMxODIzMzE1MlUsIDkyMlUsIDM4ODAzNjExMzRVIH0sXG4tXHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxuLVx0eyAgIDY0NzIxNDIxVSwgNzAzVSwgIDY4Mzg2MDU1MFUgfSxcbi1cdHsgIDY3ODkzMTc1OFUsIDg0MFUsICAzODA2MTYwNDNVIH0sXG4tXHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxuLVx0eyAgNjc3NzAzNjE5VSwgNTMwVSwgMjgyNjkxNDE2MVUgfSxcbi1cdHsgICA5MjM5MzIyM1UsIDU4NlUsIDE1MjIxMjg0NzFVIH0sXG4tXHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxuLVx0eyAgMzU4Mjg4OTg2VSwgNjk1VSwgMTA5MTk1Njk5OFUgfSxcbi1cdHsgMTkzNTA1Njk0NVUsIDk1OFUsICA1MTQ4NjQ0NzdVIH0sXG4tXHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxuLVx0eyAxNTYwMDg5NDAyVSwgODk3VSwgMjIzODU1MTI4N1UgfSxcbi1cdHsgICA3MDYxNjM2MVUsIDgyOVUsICAgMjI0ODMwOThVIH0sXG4tXHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxuLVx0eyAgIDIwMjIxMTkwVSwgODc5VSwgMTU2NDE1Mjk3MFUgfSxcbi1cdHsgIDUzOTQ0NDY1NFUsIDY4MlUsIDE4MzUxNDEyNTlVIH0sXG4tXHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxuLVx0eyAyMDE5Mjk1NTQ0VSwgNjQ1VSwgMzI4NjQzODkzMFUgfSxcbi1cdHsgIDQ2OTAyMzgzOFUsIDcxNlUsIDE2Mzc5MTgyMDJVIH0sXG4tXHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxuLVx0eyAgNDAwNjcyMDM2VSwgODA5VSwgNDI2NDIxMjc4NVUgfSxcbi1cdHsgIDQwNDcyMjI0OVUsIDk2NVUsIDI3MDQxMTY5OTlVIH0sXG4tXHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxuLVx0eyAgNTE5OTUzOTU0VSwgNjY3VSwgMjU3NDQzNjIzN1UgfSxcbi1cdHsgMTY1ODA3MTEyNlUsIDY5NFUsIDIyMTQ1Njk0OTBVIH0sXG4tXHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxuLVx0eyAgNjkwMTAzNjQ3VSwgOTY5VSwgMzcwMDc1ODA4M1UgfSxcbi1cdHsgMTAyOTQyNDc5OVUsIDkzN1UsIDM3ODc3NDY4NDFVIH0sXG4tXHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxuLVx0eyAxNTM1NDMyODg3VSwgOTk4VSwgICA0MjYxMDk0M1UgfSxcbi1cdHsgMTMzMDYzNTUzM1UsIDg1N1UsIDMwNDA4MDY1MDRVIH0sXG4tXHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxuLVx0eyAxMzIyNDExNTM3VSwgNjgwVSwgMzIyMzI1MDMyNFUgfSxcbi1cdHsgMTg3Nzg0Nzg5OFUsIDk0NVUsIDI5MTUxNDcxNDNVIH0sXG4tXHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxuLVx0eyAgODA1Njg3NTM2VSwgNzQ0VSwgNDAzMjI3NzkyMFUgfSxcbi1cdHsgMTk0ODA5MzIxMFUsIDYzM1UsIDEzNDY1OTc2ODRVIH0sXG4tXHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxuLVx0eyAgNjkwMjQxMzA0VSwgNzcwVSwgMTIwMTAzMTI5OFUgfSxcbi1cdHsgMTM2MDMwMjk2NVUsIDY5NlUsIDE2NjUzOTQ0NjFVIH0sXG4tXHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxuLVx0eyAgNDQ3MDkyMjUxVSwgNTAwVSwgMzQzODc0MzM3NVUgfSxcbi1cdHsgMTYxMzg2ODc5MVUsIDU5MlUsICA4Mjg1NDY4ODNVIH0sXG4tXHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxuLVx0eyAgNzI2NjkyODk5VSwgODEwVSwgMTY1Njg3Mjg2N1UgfSxcbi1cdHsgMTM2NDM0MDAyMVUsIDgzNlUsIDM3MTA1MTM0ODZVIH0sXG4tXHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxuLVx0eyAgNDA3OTgzOTY0VSwgOTIxVSwgIDcyODc2NzA1OVUgfSxcbi19O1xuLVxuLXN0YXRpYyB2b2lkIHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4te1xuLSNkZWZpbmUgTENHKHgpXHQgKCh4KSAqIDY5MDY5VSlcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xuLVx0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuLVx0c3RhdGUtXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMxKSwgICA4VSk7XG4tXHRzdGF0ZS1cdTAwM2VzMyA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczIpLCAgMTZVKTtcbi1cdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuLX1cbi1cbi1zdGF0aWMgaW50IF9faW5pdCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KHZvaWQpXG4te1xuLVx0aW50IGksIGosIGVycm9ycyA9IDAsIHJ1bnMgPSAwO1xuLVx0Ym9vbCBlcnJvciA9IGZhbHNlO1xuLVxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9yID0gdHJ1ZTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcilcbi1cdFx0cHJfd2FybihcInByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IGZhaWxlZFxcblwiKTtcbi1cdGVsc2Vcbi1cdFx0cHJfaW5mbyhcInByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcblwiKTtcbi1cbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDIpOyBpKyspIHtcbi1cdFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbi1cbi1cdFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbi1cdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqKyspXG4tXHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRpZiAodGVzdDJbaV0ucmVzdWx0ICE9IHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSlcbi1cdFx0XHRlcnJvcnMrKztcbi1cbi1cdFx0cnVucysrO1xuLVx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcnMpXG4tXHRcdHByX3dhcm4oXCJwcmFuZG9tOiAlZC8lZCBzZWxmIHRlc3RzIGZhaWxlZFxcblwiLCBlcnJvcnMsIHJ1bnMpO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwicHJhbmRvbTogJWQgc2VsZiB0ZXN0cyBwYXNzZWRcXG5cIiwgcnVucyk7XG4tXHRyZXR1cm4gMDtcbi19XG4tY29yZV9pbml0Y2FsbChwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KTtcbi0jZW5kaWZcbmRpZmYgLS1naXQgYS9saWIvdGVzdHMvTWFrZWZpbGUgYi9saWIvdGVzdHMvTWFrZWZpbGVcbmluZGV4IDYwMWRiYTRiN2Q5NjZkLi4zOWQyODNiMjZmZTJiNCAxMDA2NDRcbi0tLSBhL2xpYi90ZXN0cy9NYWtlZmlsZVxuKysrIGIvbGliL3Rlc3RzL01ha2VmaWxlXG5AQCAtNDksNSArNDksNiBAQCBvYmotJChDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVCkgKz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xuIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSArPSB1c2VyY29weV9rdW5pdC5vXG4gb2JqLSQoQ09ORklHX1VUSUxfTUFDUk9TX0tVTklUKSArPSB1dGlsX21hY3Jvc19rdW5pdC5vXG4gb2JqLSQoQ09ORklHX1JBVEVMSU1JVF9LVU5JVF9URVNUKSArPSB0ZXN0X3JhdGVsaW1pdC5vXG4rb2JqLSQoQ09ORklHX1BSQU5ET01fS1VOSVRfVEVTVCkgKz0gcmFuZG9tMzJfa3VuaXQub1xuIFxuIG9iai0kKENPTkZJR19URVNUX1JVTlRJTUVfTU9EVUxFKVx0XHQrPSBtb2R1bGUvXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcbkBAIC0wLDAgKzEsMTgyIEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbisvKlxuKyAqIFRlc3QgY2FzZXMgZm9yIHJhbmRvbTMyIGZ1bmN0aW9ucy5cbisgKi9cbitcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9wcmFuZG9tLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NrdW5pdC90ZXN0LmhcdTAwM2VcbitcbisvKiBwcmFuZG9tX3dhcm11cCgpIGlzIHN0YXRpYyBpbiBsaWIvcmFuZG9tMzIuYzsgZXhwb3NlZCBmb3IgdGVzdGluZyBvbmx5LiAqL1xuK3ZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpO1xuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XG4rXHR1MzIgc2VlZDtcbitcdHUzMiByZXN1bHQ7XG4rfSB0ZXN0MVtdID0ge1xuK1x0eyAxVSwgMzQ4NDM1MTY4NVUgfSxcbitcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4rXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxuK1x0eyA0VSwgIDk4NDg0NzI1NFUgfSxcbit9O1xuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJhbmRvbV90ZXN0MiB7XG4rXHR1MzIgc2VlZDtcbitcdHUzMiBpdGVyYXRpb247XG4rXHR1MzIgcmVzdWx0O1xuK30gdGVzdDJbXSA9IHtcbitcdC8qIFRlc3QgY2FzZXMgYWdhaW5zdCB0YXVzMTEzIGZyb20gR1NMIGxpYnJhcnkuICovXG4rXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxuK1x0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbitcdHsgMTU0NTU1NjI4NVUsIDk2MVUsIDE2MTU1Mzg4MzNVIH0sXG4rXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxuK1x0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbitcdHsgIDQxNjUyNjI5OFUsIDcwMFUsICA5MTYxNTY1NTJVIH0sXG4rXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxuK1x0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbitcdHsgMTUzOTgzNjk2NVUsIDcxNFUsIDM3ODMyNjU3MjVVIH0sXG4rXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxuK1x0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbitcdHsgMjEyMTIzMDcwMVUsIDkzMVUsIDIxMTU0NjcwMDFVIH0sXG4rXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxuK1x0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbitcdHsgMTk4OTE1OTEzNlUsIDgzM1UsIDExOTU3NjczMDVVIH0sXG4rXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxuK1x0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbitcdHsgMTc0MDc3NTYwNFUsIDkzOVUsIDEyNjQ5ODAzNzJVIH0sXG4rXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxuK1x0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbitcdHsgIDQ0MjA3OTkzMlUsIDU2MFUsIDM0NDAwMzIzNDNVIH0sXG4rXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxuK1x0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbitcdHsgMTE2MDQwNzUyOVUsIDUwN1UsICAyNDA5NDA4NThVIH0sXG4rXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxuK1x0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbitcdHsgMTk2MTgxNzEzMVUsIDcxOVUsICA2NjgyMzc2NTdVIH0sXG4rXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxuK1x0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbitcdHsgIDU4MjUzNzExOVUsIDc4MFUsIDExMjcyNzM3NzhVIH0sXG4rXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxuK1x0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbitcdHsgIDg0NzkxNzA1NFUsIDUwMFUsIDE3MTc0OTkwNzVVIH0sXG4rXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxuK1x0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbitcdHsgMTUxNjIzMjEyOVUsIDU1N1UsICAgIDMxNzM4NzdVIH0sXG4rXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxuK1x0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbitcdHsgMTUxMDA5MTcwMVUsIDcxN1UsICA2MzgxOTEyMjlVIH0sXG4rXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxuK1x0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbitcdHsgMTMxODQ4MDI3NFUsIDc3OVUsIDIwNzQyMzcwMjJVIH0sXG4rXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxuK1x0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbitcdHsgMjA4MTk3OTEyMVUsIDk4MVUsIDMwNDE0ODY0NDlVIH0sXG4rXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxuK1x0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbitcdHsgIDU5NTAwMzEwMlUsIDUzNFUsICAzNjY3OTQxMDlVIH0sXG4rXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxuK1x0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbitcdHsgIDcwNDA5NjUyMFUsIDUxOFUsIDQxMzk0OTM4NTJVIH0sXG4rXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxuK1x0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbitcdHsgIDg1NTU3Mjk5MlUsIDc2MVUsIDE0NzI5NzQ3ODdVIH0sXG4rXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxuK1x0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbitcdHsgIDY5MjcxMTk3M1UsIDc3OFUsIDEzODIzNjE5NDdVIH0sXG4rXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxuK1x0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbitcdHsgMTIyMjU5MjkyMFUsIDc0M1UsIDM0NjY3MjY2NjdVIH0sXG4rXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxuK1x0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbitcdHsgIDczNTY3NTk5M1UsIDk5MFUsIDEyOTQyMzk5ODlVIH0sXG4rXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxuK1x0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbitcdHsgIDM2ODIzNDcwMFUsIDczMVUsIDI5MTM4NzUwODRVIH0sXG4rXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxuK1x0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbitcdHsgMTMxNDk4NzI5N1UsIDg0MFUsIDE4MDExMTQxMzZVIH0sXG4rXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxuK1x0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbitcdHsgMTg0Mzc1NDQ5NlUsIDY1M1UsIDI1NjIwOTIxNTJVIH0sXG4rXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxuK1x0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbitcdHsgIDYwMDcwMjIwOVUsIDc1OFUsICA1ODQ5Nzk5ODZVIH0sXG4rXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxuK1x0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbitcdHsgIDQyMDQ4MDAzN1UsIDc0OVUsIDM0MzAwMTA4NjZVIH0sXG4rXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxuK1x0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbitcdHsgMjAxMjYwODY2OVUsIDUwNlUsIDMzNjI2Mjg5NzNVIH0sXG4rXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxuK1x0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbitcdHsgMTIyMzgwMDU1MFUsIDUzOVUsIDM5NTQyMjk1MTdVIH0sXG4rXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxuK1x0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbitcdHsgMTY0NjM1NjA5OVUsIDg3NFUsICA5NjU5ODgyODBVIH0sXG4rXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxuK1x0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbitcdHsgIDM5MjYwOTc0NFUsIDc4M1UsIDE2MzYwODMyOTVVIH0sXG4rXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxuK1x0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbitcdHsgMTIyMDA5MDk0NlUsIDc4MFUsIDEzMTY5MjI4MTJVIH0sXG4rXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxuK1x0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbitcdHsgIDUyMzQzMDk1MVUsIDU0OFUsIDI1NTIzOTIzMDRVIH0sXG4rXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxuK1x0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbitcdHsgMTk4NjI1NzcyOVUsIDkzMVUsICA5MzUwMTM5NjJVIH0sXG4rXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxuK307XG4rXG4rc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxuK3tcbisjZGVmaW5lIExDRyh4KVx0ICgoeCkgKiA2OTA2OVUpXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cbitcdHN0YXRlLVx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcbitcdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuK1x0c3RhdGUtXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMyKSwgIDE2VSk7XG4rXHRzdGF0ZS1cdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczMpLCAxMjhVKTtcbit9XG4rXG4rc3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3NlZWRfYm91bmRhcnkoc3RydWN0IGt1bml0ICp0ZXN0KVxuK3tcbitcdGludCBpO1xuK1x0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbitcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpKyspIHtcbitcdFx0cHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuK1x0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4rXHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4rXHR9XG4rfVxuK1xuK3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV90YXVzMTEzKHN0cnVjdCBrdW5pdCAqdGVzdClcbit7XG4rXHRpbnQgaSwgajtcbitcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XG4rXG4rXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSsrKSB7XG4rXHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbitcdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuK1xuK1x0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqKyspXG4rXHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuK1xuK1x0XHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDJbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSkpO1xuK1x0fVxuK31cbitcbitzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgcHJhbmRvbV90ZXN0X2Nhc2VzW10gPSB7XG4rXHRLVU5JVF9DQVNFKHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KSxcbitcdEtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3RhdXMxMTMpLFxuK1x0e31cbit9O1xuK1xuK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgcHJhbmRvbV90ZXN0X3N1aXRlID0ge1xuK1x0Lm5hbWUgPSBcInByYW5kb21cIixcbitcdC50ZXN0X2Nhc2VzID0gcHJhbmRvbV90ZXN0X2Nhc2VzLFxuK307XG4rXG4ra3VuaXRfdGVzdF9zdWl0ZShwcmFuZG9tX3Rlc3Rfc3VpdGUpO1xuK1xuK01PRFVMRV9ERVNDUklQVElPTihcIktVbml0IHRlc3QgZm9yIHByYW5kb21cIik7XG4rTU9EVUxFX0xJQ0VOU0UoXCJHUExcIik7XG4rTU9EVUxFX0lNUE9SVF9OUyhcIkVYUE9SVEVEX0ZPUl9LVU5JVF9URVNUSU5HXCIpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NDA6NTUuNDQyMzg3ODg5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3NjMwMjIzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLVW5pdCBUZXN0IENvbnZlcnNpb24gZm9yIHRoZSBSYW5kb20zMiBTZWxmLVRlc3QqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGp1c3QgYmVlbiBsb29raW5nIG92ZXIgdGhpcyBwYXRjaC4gSXQncyBlc3NlbnRpYWxseSBhIHN0cmFpZ2h0Zm9yd2FyZCBjb252ZXJzaW9uIG9mIHRoZSBleGlzdGluZyBgcmFuZG9tMzJgIHNlbGYtdGVzdCB0byBhIEtVbml0IHRlc3QgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgdGFrZWF3YXkgaXMgdGhhdCB0aGlzIGlzIGEgKnB1cmVseSogcmVmYWN0b3JpbmcgZWZmb3J0IGZvciB0ZXN0aW5nOyB0aGVyZSdzIG5vIGFsdGVyYXRpb24gdG8gdGhlIHVuZGVybHlpbmcgUFJORyBsb2dpYyBpdHNlbGYsIHdoaWNoIGlzIHdoYXQgSSdtIG1vc3QgY29uY2VybmVkIHdpdGggZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuXG5cblNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSBgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUYCBpcyBnZXR0aW5nIHJlbW92ZWQsIGFuZCBpbiBpdHMgcGxhY2Ugd2UncmUgc2VlaW5nIGBDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUYCBpbnRyb2R1Y2VkLiBUaGUgdGVzdCBjb2RlIGl0c2VsZiBoYXMgYmVlbiBtb3ZlZCBvdXQgb2YgYGxpYi9yYW5kb20zMi5jYCBhbmQgaW50byBpdHMgb3duIGRlZGljYXRlZCBLVW5pdCB0ZXN0IGZpbGUsIGBsaWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY2AuIEltcG9ydGFudGx5LCB0aGV5J3ZlIG1vZGlmaWVkIGBsaWIvcmFuZG9tMzIuY2AgdG8gZXhwb3NlIGBwcmFuZG9tX3dhcm11cGAgc3BlY2lmaWNhbGx5IGZvciBLVW5pdCB1c2FnZS4gVGhpcyBpcyBhIHNlbnNpYmxlIG1vdmUuXG5cbkxldCBtZSBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9mIHRoZSBjaGFuZ2VzLi4uIFllcCwgYXMgZXhwZWN0ZWQ6IGBsaWIvS2NvbmZpZ2AgaGFzIHRoZSBgUkFORE9NMzJfU0VMRlRFU1RgIHJlbW92YWwsIGBsaWIvS2NvbmZpZy5kZWJ1Z2Agbm93IGluY2x1ZGVzIHRoZSBgUFJBTkRPTV9LVU5JVF9URVNUYC4gVGhlIG1haW4gYHJhbmRvbTMyLmNgIGZpbGUgaXMgYmVpbmcgY2xlYW5lZCB1cCDigJMgYHByYW5kb21fd2FybXVwYCBpcyBleHBvc2VkLCBidXQgdGhlIG9sZCBzZWxmdGVzdCBmdW5jdGlvbnMgYW5kIGRhdGEgYXJlIG5vdyBnb25lLiBBbmQgb2YgY291cnNlLCB0aGUgYGxpYi90ZXN0cy9NYWtlZmlsZWAgaGFzIGJlZW4gdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBuZXcgYHJhbmRvbTMyX2t1bml0Lm9gIGFuZCB0aGUgYHJhbmRvbTMyX2t1bml0LmNgIGZpbGUgaXRzZWxmLlxuXG5TaW5jZSB0aGlzIGlzIG1lcmVseSBhIHRlc3QgcmVzdHJ1Y3R1cmluZywgYW5kIHRoZSBjb3JlIFBSTkcgZnVuY3Rpb25hbGl0eSBpcyB1bnRvdWNoZWQsIEknbSBjb25maWRlbnQgaW4gYXNzZXNzaW5nIHRoaXMgYXMgKipub3QqKiBpbnRyb2R1Y2luZyBhbnkgbmV3IGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljIHRoYXQgd291bGQgcmVxdWlyZSBmdXp6aW5nLiBTbywgSSB3aWxsIGJlIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE2MTksIk91dHB1dFRva2VucyI6NjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo0MTowMS41MTg2OTIyNDhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNvbnZlcnRzIGFuIGV4aXN0aW5nIHJhbmRvbTMyIHNlbGYtdGVzdCBpbnRvIGEgS1VuaXQgdGVzdC4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIG9yIGludHJvZHVjZSBuZXcgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb252ZXJ0cyBhbiBleGlzdGluZyByYW5kb20zMiBzZWxmLXRlc3QgaW50byBhIEtVbml0IHRlc3QuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBsb2dpYyBvciBpbnRyb2R1Y2UgbmV3IGZlYXR1cmVzIHRoYXQgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflownbjlt[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-03 05:20:13 +0000 UTC FinishedAt: 2026-07-03 05:41:02 +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+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvbnZlcnRzIGFuIGV4aXN0aW5nIHJhbmRvbTMyIHNlbGYtdGVzdCBpbnRvIGEgS1VuaXQgdGVzdC4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIG9yIGludHJvZHVjZSBuZXcgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjQwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzg4Y2I2MzExM2JlNGYzMzBiMDYyMGQ3YTYwZmFhYTZkNzgzM2EwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDU6NDA6NTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZ1xuaW5kZXggMjkyMzkyNGJlYTc4Y2IuLjVmMTg1ZTlmMWU5MmJkIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnXG5AQCAtMTU2LDEyICYjNDM7MTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXG4gXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IENPTVBBVFxuIFx0ZGVmYXVsdCB5XG4gXG4tY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUXG4tXHRib29sIFwmIzM0O1BSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdFwmIzM0O1xuLVx0aGVscFxuLVx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSAzMiBiaXQgUFJORyBsaWJyYXJ5IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGFcbi1cdCAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLlxuLVxuICNcbiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0JiMzOTtlZCBpZiBuZWVkZWRcbiAjXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnLmRlYnVnXG5AQCAtMzM1NCw2ICYjNDM7MzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXG4gXG4gXHQgIElmIHVuc3VyZSwgc2F5IE5cbiBcbiYjNDM7Y29uZmlnIFBSQU5ET01fS1VOSVRfVEVTVFxuJiM0MztcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb21cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuJiM0MztcdGRlcGVuZHMgb24gS1VOSVRcbiYjNDM7XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuJiM0MztcdGhlbHBcbiYjNDM7XHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxuJiM0MztcbiYjNDM7XHQgIElmIHVuc3VyZSwgc2F5IE5cbiYjNDM7XG4gZW5kaWYgIyBSVU5USU1FX1RFU1RJTkdfTUVOVVxuIFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXG5kaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuY1xuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9yYW5kb20zMi5jXG5AQCAtNDEsNiAmIzQzOzQxLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Zpc2liaWxpdHkuaFx1MDAzZVxuIFxuIC8qKlxuICAqXHRwcmFuZG9tX3UzMl9zdGF0ZSAtIHNlZWRlZCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuXG5AQCAtOTIsNyAmIzQzOzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpXG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XG4gXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4mIzQzOy8qXG4mIzQzOyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGVcbiYjNDM7ICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cbiYjNDM7ICovXG4mIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVClcbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzOyNlbmRpZlxuJiM0MztWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4ge1xuIFx0LyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi9cbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbkBAIC0xMDYsNiAmIzQzOzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIH1cbiYjNDM7RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XG4gXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIHtcbkBAIC0xMjUsMTc2ICYjNDM7MTM0LDMgQEAgdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIFx0fVxuIH1cbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKTtcbi1cbi0jaWZkZWYgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIHJlc3VsdDtcbi19IHRlc3QxW10gPSB7XG4tXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuLVx0eyAyVSwgMjYyMzEzMDA1OVUgfSxcbi1cdHsgM1UsIDMxMjUxMzM4OTNVIH0sXG4tXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuLX07XG4tXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIGl0ZXJhdGlvbjtcbi1cdHUzMiByZXN1bHQ7XG4tfSB0ZXN0MltdID0ge1xuLVx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cbi1cdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4tXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxuLVx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcbi1cdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4tXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxuLVx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcbi1cdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4tXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxuLVx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcbi1cdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4tXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxuLVx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcbi1cdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4tXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxuLVx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcbi1cdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4tXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxuLVx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcbi1cdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4tXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxuLVx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcbi1cdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4tXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxuLVx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcbi1cdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4tXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxuLVx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcbi1cdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4tXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxuLVx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcbi1cdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4tXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxuLVx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcbi1cdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4tXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxuLVx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcbi1cdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4tXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxuLVx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcbi1cdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4tXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxuLVx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcbi1cdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4tXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxuLVx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcbi1cdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4tXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxuLVx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcbi1cdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4tXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxuLVx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcbi1cdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4tXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxuLVx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcbi1cdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4tXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxuLVx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcbi1cdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4tXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxuLVx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcbi1cdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4tXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxuLVx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcbi1cdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4tXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxuLVx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcbi1cdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4tXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxuLVx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcbi1cdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4tXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxuLVx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcbi1cdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4tXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxuLVx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcbi1cdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4tXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxuLVx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcbi1cdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4tXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxuLVx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcbi1cdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4tXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxuLVx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcbi1cdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4tXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxuLVx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcbi1cdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4tXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxuLVx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcbi1cdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4tXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxuLVx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcbi1cdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4tXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxuLVx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcbi1cdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4tXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxuLVx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcbi1cdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4tfTtcbi1cbi1zdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxuLXtcbi0jZGVmaW5lIExDRyh4KVx0ICgoeCkgKiA2OTA2OVUpXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cbi1cdHN0YXRlLVx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcbi1cdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuLVx0c3RhdGUtXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMyKSwgIDE2VSk7XG4tXHRzdGF0ZS1cdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczMpLCAxMjhVKTtcbi19XG4tXG4tc3RhdGljIGludCBfX2luaXQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCh2b2lkKVxuLXtcbi1cdGludCBpLCBqLCBlcnJvcnMgPSAwLCBydW5zID0gMDtcbi1cdGJvb2wgZXJyb3IgPSBmYWxzZTtcbi1cbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpJiM0MzsmIzQzOykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9yID0gdHJ1ZTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcilcbi1cdFx0cHJfd2FybihcJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcXG5cJiMzNDspO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwmIzM0O3ByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcblwmIzM0Oyk7XG4tXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbi1cdFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbi1cbi1cdFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbi1cdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbi1cdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9ycyYjNDM7JiM0Mzs7XG4tXG4tXHRcdHJ1bnMmIzQzOyYjNDM7O1xuLVx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcnMpXG4tXHRcdHByX3dhcm4oXCYjMzQ7cHJhbmRvbTogJWQvJWQgc2VsZiB0ZXN0cyBmYWlsZWRcXG5cJiMzNDssIGVycm9ycywgcnVucyk7XG4tXHRlbHNlXG4tXHRcdHByX2luZm8oXCYjMzQ7cHJhbmRvbTogJWQgc2VsZiB0ZXN0cyBwYXNzZWRcXG5cJiMzNDssIHJ1bnMpO1xuLVx0cmV0dXJuIDA7XG4tfVxuLWNvcmVfaW5pdGNhbGwocHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCk7XG4tI2VuZGlmXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL01ha2VmaWxlIGIvbGliL3Rlc3RzL01ha2VmaWxlXG5pbmRleCA2MDFkYmE0YjdkOTY2ZC4uMzlkMjgzYjI2ZmUyYjQgMTAwNjQ0XG4tLS0gYS9saWIvdGVzdHMvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9NYWtlZmlsZVxuQEAgLTQ5LDUgJiM0Mzs0OSw2IEBAIG9iai0kKENPTkZJR19TVFJJTkdfSEVMUEVSU19LVU5JVF9URVNUKSAmIzQzOz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xuIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSAmIzQzOz0gdXNlcmNvcHlfa3VuaXQub1xuIG9iai0kKENPTkZJR19VVElMX01BQ1JPU19LVU5JVCkgJiM0Mzs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cbiBvYmotJChDT05GSUdfUkFURUxJTUlUX0tVTklUX1RFU1QpICYjNDM7PSB0ZXN0X3JhdGVsaW1pdC5vXG4mIzQzO29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICYjNDM7PSByYW5kb20zMl9rdW5pdC5vXG4gXG4gb2JqLSQoQ09ORklHX1RFU1RfUlVOVElNRV9NT0RVTEUpXHRcdCYjNDM7PSBtb2R1bGUvXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcbkBAIC0wLDAgJiM0MzsxLDE4MiBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MzsvKlxuJiM0MzsgKiBUZXN0IGNhc2VzIGZvciByYW5kb20zMiBmdW5jdGlvbnMuXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvcHJhbmRvbS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuJiM0MztcbiYjNDM7LyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi9cbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEge1xuJiM0MztcdHUzMiBzZWVkO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDFbXSA9IHtcbiYjNDM7XHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuJiM0MztcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4mIzQzO1x0eyAzVSwgMzEyNTEzMzg5M1UgfSxcbiYjNDM7XHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbiYjNDM7XHR1MzIgc2VlZDtcbiYjNDM7XHR1MzIgaXRlcmF0aW9uO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDJbXSA9IHtcbiYjNDM7XHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xuJiM0MztcdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4mIzQzO1x0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbiYjNDM7XHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxuJiM0MztcdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4mIzQzO1x0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbiYjNDM7XHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxuJiM0MztcdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4mIzQzO1x0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbiYjNDM7XHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxuJiM0MztcdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4mIzQzO1x0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbiYjNDM7XHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxuJiM0MztcdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4mIzQzO1x0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbiYjNDM7XHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxuJiM0MztcdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4mIzQzO1x0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbiYjNDM7XHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxuJiM0MztcdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4mIzQzO1x0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbiYjNDM7XHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxuJiM0MztcdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4mIzQzO1x0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbiYjNDM7XHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxuJiM0MztcdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4mIzQzO1x0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbiYjNDM7XHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxuJiM0MztcdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4mIzQzO1x0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbiYjNDM7XHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxuJiM0MztcdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4mIzQzO1x0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbiYjNDM7XHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxuJiM0MztcdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4mIzQzO1x0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbiYjNDM7XHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxuJiM0MztcdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4mIzQzO1x0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbiYjNDM7XHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxuJiM0MztcdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4mIzQzO1x0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbiYjNDM7XHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxuJiM0MztcdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4mIzQzO1x0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbiYjNDM7XHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxuJiM0MztcdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4mIzQzO1x0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbiYjNDM7XHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxuJiM0MztcdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4mIzQzO1x0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbiYjNDM7XHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxuJiM0MztcdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4mIzQzO1x0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbiYjNDM7XHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxuJiM0MztcdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4mIzQzO1x0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbiYjNDM7XHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxuJiM0MztcdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4mIzQzO1x0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbiYjNDM7XHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxuJiM0MztcdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4mIzQzO1x0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbiYjNDM7XHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxuJiM0MztcdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4mIzQzO1x0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbiYjNDM7XHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxuJiM0MztcdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4mIzQzO1x0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbiYjNDM7XHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxuJiM0MztcdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4mIzQzO1x0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbiYjNDM7XHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxuJiM0MztcdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4mIzQzO1x0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbiYjNDM7XHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxuJiM0MztcdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4mIzQzO1x0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbiYjNDM7XHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxuJiM0MztcdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4mIzQzO1x0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbiYjNDM7XHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxuJiM0MztcdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4mIzQzO1x0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbiYjNDM7XHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxuJiM0MztcdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4mIzQzO1x0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbiYjNDM7XHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxuJiM0MztcdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4mIzQzO1x0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbiYjNDM7XHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxuJiM0MztcdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4mIzQzO1x0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbiYjNDM7XHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxuJiM0MztcdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4mIzQzO1x0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbiYjNDM7XHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxuJiM0MztcdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4mIzQzO1x0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbiYjNDM7XHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxuJiM0MztcdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4mIzQzO3tcbiYjNDM7I2RlZmluZSBMQ0coeClcdCAoKHgpICogNjkwNjlVKVx0Lyogc3VwZXItZHVwZXIgTENHICovXG4mIzQzO1x0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMiksICAxNlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaTtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MVtpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fdGF1czExMyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaSwgajtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XG4mIzQzO1x0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbiYjNDM7XHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuJiM0MztcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgcHJhbmRvbV90ZXN0X2Nhc2VzW10gPSB7XG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksXG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXG4mIzQzO1x0e31cbiYjNDM7fTtcbiYjNDM7XG4mIzQzO3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgcHJhbmRvbV90ZXN0X3N1aXRlID0ge1xuJiM0MztcdC5uYW1lID0gXCYjMzQ7cHJhbmRvbVwmIzM0OyxcbiYjNDM7XHQudGVzdF9jYXNlcyA9IHByYW5kb21fdGVzdF9jYXNlcyxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO2t1bml0X3Rlc3Rfc3VpdGUocHJhbmRvbV90ZXN0X3N1aXRlKTtcbiYjNDM7XG4mIzQzO01PRFVMRV9ERVNDUklQVElPTihcJiMzNDtLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0lNUE9SVF9OUyhcJiMzNDtFWFBPUlRFRF9GT1JfS1VOSVRfVEVTVElOR1wmIzM0Oyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc4OGNiNjMxMTNiZTRmMzMwYjA2MjBkN2E2MGZhYWE2ZDc4MzNhMGIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzIDA1OjQwOjU0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZwppbmRleCAyOTIzOTI0YmVhNzhjYi4uNWYxODVlOWYxZTkyYmQgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnCkBAIC0xNTYsMTIgJiM0MzsxNTYsNiBAQCBjb25maWcgQVVESVRfQ09NUEFUX0dFTkVSSUMKIAlkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgJmFtcDsmYW1wOyBBVURJVF9BUkNIX0NPTVBBVF9HRU5FUklDICZhbXA7JmFtcDsgQ09NUEFUCiAJZGVmYXVsdCB5CiAKLWNvbmZpZyBSQU5ET00zMl9TRUxGVEVTVAotCWJvb2wgJiMzNDtQUk5HIHBlcmZvcm0gc2VsZiB0ZXN0IG9uIGluaXQmIzM0OwotCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIDMyIGJpdCBQUk5HIGxpYnJhcnkgZnVuY3Rpb25zIHRvIHBlcmZvcm0gYQotCSAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLgotCiAjCiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0JiMzOTtlZCBpZiBuZWVkZWQKICMKZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWcKaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NAotLS0gYS9saWIvS2NvbmZpZy5kZWJ1ZwomIzQzOyYjNDM7JiM0MzsgYi9saWIvS2NvbmZpZy5kZWJ1ZwpAQCAtMzM1NCw2ICYjNDM7MzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4KIAomIzQzO2NvbmZpZyBQUkFORE9NX0tVTklUX1RFU1QKJiM0MzsJdHJpc3RhdGUgJiMzNDtLVW5pdCB0ZXN0IGZvciBwcmFuZG9tJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUUwomIzQzOwlkZXBlbmRzIG9uIEtVTklUCiYjNDM7CWRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTCiYjNDM7CWhlbHAKJiM0MzsJICBFbmFibGUgdGhpcyBvcHRpb24gdG8gdGVzdCB0aGUgcHJhbmRvbSBmdW5jdGlvbnMgYXQgcnVudGltZS4KJiM0MzsKJiM0MzsJICBJZiB1bnN1cmUsIHNheSBOCiYjNDM7CiBlbmRpZiAjIFJVTlRJTUVfVEVTVElOR19NRU5VCiAKIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUCmRpZmYgLS1naXQgYS9saWIvcmFuZG9tMzIuYyBiL2xpYi9yYW5kb20zMi5jCmluZGV4IDI0ZTdhY2Q5MzQzZjY4Li5kYWQ5MDIxOWMzNTExZCAxMDA2NDQKLS0tIGEvbGliL3JhbmRvbTMyLmMKJiM0MzsmIzQzOyYjNDM7IGIvbGliL3JhbmRvbTMyLmMKQEAgLTQxLDYgJiM0Mzs0MSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvYml0b3BzLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvc2xhYi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3VuYWxpZ25lZC5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtrdW5pdC92aXNpYmlsaXR5LmgmZ3Q7CiAKIC8qKgogICoJcHJhbmRvbV91MzJfc3RhdGUgLSBzZWVkZWQgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgpAQCAtOTIsNyAmIzQzOzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpCiB9CiBFWFBPUlRfU1lNQk9MKHByYW5kb21fYnl0ZXNfc3RhdGUpOwogCi1zdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSkKJiM0MzsvKgomIzQzOyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGUKJiM0MzsgKiBub24tc3RhdGljIGZvciBLVW5pdCB0ZXN0aW5nIChhdm9pZHMgLVdtaXNzaW5nLXByb3RvdHlwZXMpLgomIzQzOyAqLwomIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVCkKJiM0Mzt2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTsKJiM0MzsjZW5kaWYKJiM0MztWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpCiB7CiAJLyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi8KIAlwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7CkBAIC0xMDYsNiAmIzQzOzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKQogCXByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTsKIAlwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7CiB9CiYjNDM7RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7CiAKIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSkKIHsKQEAgLTEyNSwxNzYgJiM0MzsxMzQsMyBAQCB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpCiAJfQogfQogRVhQT1JUX1NZTUJPTChwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZSk7Ci0KLSNpZmRlZiBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1QKLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7Ci0JdTMyIHNlZWQ7Ci0JdTMyIHJlc3VsdDsKLX0gdGVzdDFbXSA9IHsKLQl7IDFVLCAzNDg0MzUxNjg1VSB9LAotCXsgMlUsIDI2MjMxMzAwNTlVIH0sCi0JeyAzVSwgMzEyNTEzMzg5M1UgfSwKLQl7IDRVLCAgOTg0ODQ3MjU0VSB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHsKLQl1MzIgc2VlZDsKLQl1MzIgaXRlcmF0aW9uOwotCXUzMiByZXN1bHQ7Ci19IHRlc3QyW10gPSB7Ci0JLyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi8KLQl7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LAotCXsgMTMzOTY5MzI5NVUsIDg3NlUsIDM4ODc3NzY1MzJVIH0sCi0JeyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSwKLQl7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LAotCXsgMTAyNzUxNjA0N1UsIDY4N1UsICA1MTE5ODMwNzlVIH0sCi0JeyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSwKLQl7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LAotCXsgIDM2NjIyMTQ0M1UsIDYxN1UsIDI5OTI4NTc3NjNVIH0sCi0JeyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSwKLQl7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LAotCXsgIDY4NDkwNzIxOFUsIDc5OVUsICAzNjc3ODk0OTFVIH0sCi0JeyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSwKLQl7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LAotCXsgIDc2ODA0NjA2NlUsIDg4M1UsIDIwMzQwNzczOTBVIH0sCi0JeyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSwKLQl7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LAotCXsgMTAwODEyOTM3M1UsIDY0MlUsIDE0NzgwODA3NzZVIH0sCi0JeyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSwKLQl7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LAotCXsgMTkyMzAxOTY5N1UsIDczMFUsIDM4MjE0MTk2MjlVIH0sCi0JeyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSwKLQl7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LAotCXsgMjAzMDIwNTk2NFUsIDk2MlUsIDEzMjUxNDQyMjdVIH0sCi0JeyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSwKLQl7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LAotCXsgMTI1Mjc4ODkzMVUsIDY5OVUsICA4NjcxOTU0MzRVIH0sCi0JeyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSwKLQl7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LAotCXsgMTI4MTg0ODM2N1UsIDkzMlUsIDEwMDMxMDAwMzlVIH0sCi0JeyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSwKLQl7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LAotCXsgMTg5Njc1Njk5NlUsIDc2MlUsIDExMjc4NTEwNTVVIH0sCi0JeyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSwKLQl7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LAotCXsgMTY4NTA3MTY4MlUsIDU2N1UsIDE5NjE4MTAzOTZVIH0sCi0JeyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSwKLQl7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LAotCXsgMTgxNzI2OTkyN1UsIDY5M1UsIDQyNzkxMjI1NzNVIH0sCi0JeyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSwKLQl7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LAotCXsgIDM5OTMyNDM1OVUsIDcwMlUsIDE4MDM1OTgxMTZVIH0sCi0JeyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSwKLQl7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LAotCXsgMTY5NjUwNzc3M1UsIDg0MFUsICA1Nzc0MTU0NDdVIH0sCi0JeyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSwKLQl7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LAotCXsgMTI1MDY4MzUwNlUsIDc0OVUsICA4MzY0MTk4NTlVIH0sCi0JeyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSwKLQl7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LAotCXsgIDYxOTQzMzQ3OVUsIDYxMFUsIDM5OTE3ODM4NzVVIH0sCi0JeyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSwKLQl7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LAotCXsgMTMxODIzMzE1MlUsIDkyMlUsIDM4ODAzNjExMzRVIH0sCi0JeyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSwKLQl7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LAotCXsgIDY3ODkzMTc1OFUsIDg0MFUsICAzODA2MTYwNDNVIH0sCi0JeyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSwKLQl7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LAotCXsgICA5MjM5MzIyM1UsIDU4NlUsIDE1MjIxMjg0NzFVIH0sCi0JeyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSwKLQl7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LAotCXsgMTkzNTA1Njk0NVUsIDk1OFUsICA1MTQ4NjQ0NzdVIH0sCi0JeyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSwKLQl7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LAotCXsgICA3MDYxNjM2MVUsIDgyOVUsICAgMjI0ODMwOThVIH0sCi0JeyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSwKLQl7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LAotCXsgIDUzOTQ0NDY1NFUsIDY4MlUsIDE4MzUxNDEyNTlVIH0sCi0JeyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSwKLQl7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LAotCXsgIDQ2OTAyMzgzOFUsIDcxNlUsIDE2Mzc5MTgyMDJVIH0sCi0JeyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSwKLQl7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LAotCXsgIDQwNDcyMjI0OVUsIDk2NVUsIDI3MDQxMTY5OTlVIH0sCi0JeyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSwKLQl7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LAotCXsgMTY1ODA3MTEyNlUsIDY5NFUsIDIyMTQ1Njk0OTBVIH0sCi0JeyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSwKLQl7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LAotCXsgMTAyOTQyNDc5OVUsIDkzN1UsIDM3ODc3NDY4NDFVIH0sCi0JeyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSwKLQl7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LAotCXsgMTMzMDYzNTUzM1UsIDg1N1UsIDMwNDA4MDY1MDRVIH0sCi0JeyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSwKLQl7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LAotCXsgMTg3Nzg0Nzg5OFUsIDk0NVUsIDI5MTUxNDcxNDNVIH0sCi0JeyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSwKLQl7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LAotCXsgMTk0ODA5MzIxMFUsIDYzM1UsIDEzNDY1OTc2ODRVIH0sCi0JeyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSwKLQl7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LAotCXsgMTM2MDMwMjk2NVUsIDY5NlUsIDE2NjUzOTQ0NjFVIH0sCi0JeyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSwKLQl7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LAotCXsgMTYxMzg2ODc5MVUsIDU5MlUsICA4Mjg1NDY4ODNVIH0sCi0JeyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSwKLQl7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LAotCXsgMTM2NDM0MDAyMVUsIDgzNlUsIDM3MTA1MTM0ODZVIH0sCi0JeyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSwKLQl7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LAotfTsKLQotc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZCkKLXsKLSNkZWZpbmUgTENHKHgpCSAoKHgpICogNjkwNjlVKQkvKiBzdXBlci1kdXBlciBMQ0cgKi8KLQlzdGF0ZS0mZ3Q7czEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpOwotCXN0YXRlLSZndDtzMiA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MxKSwgICA4VSk7Ci0Jc3RhdGUtJmd0O3MzID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czIpLCAgMTZVKTsKLQlzdGF0ZS0mZ3Q7czQgPSBfX3NlZWQoTENHKHN0YXRlLSZndDtzMyksIDEyOFUpOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KHZvaWQpCi17Ci0JaW50IGksIGosIGVycm9ycyA9IDAsIHJ1bnMgPSAwOwotCWJvb2wgZXJyb3IgPSBmYWxzZTsKLQotCWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHsKLQkJc3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTsKLQotCQlwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoJmFtcDtzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7Ci0JCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwotCi0JCWlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpCi0JCQllcnJvciA9IHRydWU7Ci0JfQotCi0JaWYgKGVycm9yKQotCQlwcl93YXJuKCYjMzQ7cHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgZmFpbGVkXG4mIzM0Oyk7Ci0JZWxzZQotCQlwcl9pbmZvKCYjMzQ7cHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgcGFzc2VkXG4mIzM0Oyk7Ci0KLQlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRSh0ZXN0Mik7IGkmIzQzOyYjNDM7KSB7Ci0JCXN0cnVjdCBybmRfc3RhdGUgc3RhdGU7Ci0KLQkJcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKCZhbXA7c3RhdGUsIHRlc3QyW2ldLnNlZWQpOwotCQlwcmFuZG9tX3dhcm11cCgmYW1wO3N0YXRlKTsKLQotCQlmb3IgKGogPSAwOyBqICZsdDsgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaiYjNDM7JiM0MzspCi0JCQlwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKTsKLQotCQlpZiAodGVzdDJbaV0ucmVzdWx0ICE9IHByYW5kb21fdTMyX3N0YXRlKCZhbXA7c3RhdGUpKQotCQkJZXJyb3JzJiM0MzsmIzQzOzsKLQotCQlydW5zJiM0MzsmIzQzOzsKLQkJY29uZF9yZXNjaGVkKCk7Ci0JfQotCi0JaWYgKGVycm9ycykKLQkJcHJfd2FybigmIzM0O3ByYW5kb206ICVkLyVkIHNlbGYgdGVzdHMgZmFpbGVkXG4mIzM0OywgZXJyb3JzLCBydW5zKTsKLQllbHNlCi0JCXByX2luZm8oJiMzNDtwcmFuZG9tOiAlZCBzZWxmIHRlc3RzIHBhc3NlZFxuJiMzNDssIHJ1bnMpOwotCXJldHVybiAwOwotfQotY29yZV9pbml0Y2FsbChwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL01ha2VmaWxlIGIvbGliL3Rlc3RzL01ha2VmaWxlCmluZGV4IDYwMWRiYTRiN2Q5NjZkLi4zOWQyODNiMjZmZTJiNCAxMDA2NDQKLS0tIGEvbGliL3Rlc3RzL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9NYWtlZmlsZQpAQCAtNDksNSAmIzQzOzQ5LDYgQEAgb2JqLSQoQ09ORklHX1NUUklOR19IRUxQRVJTX0tVTklUX1RFU1QpICYjNDM7PSBzdHJpbmdfaGVscGVyc19rdW5pdC5vCiBvYmotJChDT05GSUdfVVNFUkNPUFlfS1VOSVRfVEVTVCkgJiM0Mzs9IHVzZXJjb3B5X2t1bml0Lm8KIG9iai0kKENPTkZJR19VVElMX01BQ1JPU19LVU5JVCkgJiM0Mzs9IHV0aWxfbWFjcm9zX2t1bml0Lm8KIG9iai0kKENPTkZJR19SQVRFTElNSVRfS1VOSVRfVEVTVCkgJiM0Mzs9IHRlc3RfcmF0ZWxpbWl0Lm8KJiM0MztvYmotJChDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUKSAmIzQzOz0gcmFuZG9tMzJfa3VuaXQubwogCiBvYmotJChDT05GSUdfVEVTVF9SVU5USU1FX01PRFVMRSkJCSYjNDM7PSBtb2R1bGUvCmRpZmYgLS1naXQgYS9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuYyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jCkBAIC0wLDAgJiM0MzsxLDE4MiBAQAomIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiYjNDM7LyoKJiM0MzsgKiBUZXN0IGNhc2VzIGZvciByYW5kb20zMiBmdW5jdGlvbnMuCiYjNDM7ICovCiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3ByYW5kb20uaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7a3VuaXQvdGVzdC5oJmd0OwomIzQzOwomIzQzOy8qIHByYW5kb21fd2FybXVwKCkgaXMgc3RhdGljIGluIGxpYi9yYW5kb20zMi5jOyBleHBvc2VkIGZvciB0ZXN0aW5nIG9ubHkuICovCiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHsKJiM0MzsJdTMyIHNlZWQ7CiYjNDM7CXUzMiByZXN1bHQ7CiYjNDM7fSB0ZXN0MVtdID0gewomIzQzOwl7IDFVLCAzNDg0MzUxNjg1VSB9LAomIzQzOwl7IDJVLCAyNjIzMTMwMDU5VSB9LAomIzQzOwl7IDNVLCAzMTI1MTMzODkzVSB9LAomIzQzOwl7IDRVLCAgOTg0ODQ3MjU0VSB9LAomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHsKJiM0MzsJdTMyIHNlZWQ7CiYjNDM7CXUzMiBpdGVyYXRpb247CiYjNDM7CXUzMiByZXN1bHQ7CiYjNDM7fSB0ZXN0MltdID0gewomIzQzOwkvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqLwomIzQzOwl7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LAomIzQzOwl7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LAomIzQzOwl7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LAomIzQzOwl7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LAomIzQzOwl7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LAomIzQzOwl7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LAomIzQzOwl7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LAomIzQzOwl7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LAomIzQzOwl7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LAomIzQzOwl7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LAomIzQzOwl7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LAomIzQzOwl7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LAomIzQzOwl7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LAomIzQzOwl7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LAomIzQzOwl7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LAomIzQzOwl7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LAomIzQzOwl7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LAomIzQzOwl7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LAomIzQzOwl7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LAomIzQzOwl7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LAomIzQzOwl7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LAomIzQzOwl7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LAomIzQzOwl7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LAomIzQzOwl7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LAomIzQzOwl7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LAomIzQzOwl7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LAomIzQzOwl7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LAomIzQzOwl7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LAomIzQzOwl7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LAomIzQzOwl7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LAomIzQzOwl7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LAomIzQzOwl7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LAomIzQzOwl7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LAomIzQzOwl7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LAomIzQzOwl7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LAomIzQzOwl7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LAomIzQzOwl7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LAomIzQzOwl7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LAomIzQzOwl7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LAomIzQzOwl7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LAomIzQzOwl7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LAomIzQzOwl7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LAomIzQzOwl7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LAomIzQzOwl7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LAomIzQzOwl7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LAomIzQzOwl7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LAomIzQzOwl7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LAomIzQzOwl7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LAomIzQzOwl7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LAomIzQzOwl7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LAomIzQzOwl7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LAomIzQzOwl7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LAomIzQzOwl7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LAomIzQzOwl7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LAomIzQzOwl7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LAomIzQzOwl7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LAomIzQzOwl7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LAomIzQzOwl7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LAomIzQzOwl7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LAomIzQzOwl7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LAomIzQzOwl7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LAomIzQzOwl7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LAomIzQzOwl7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LAomIzQzOwl7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LAomIzQzOwl7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LAomIzQzOwl7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LAomIzQzOwl7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LAomIzQzOwl7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LAomIzQzOwl7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LAomIzQzOwl7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LAomIzQzOwl7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LAomIzQzOwl7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LAomIzQzOwl7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LAomIzQzOwl7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LAomIzQzOwl7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LAomIzQzOwl7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LAomIzQzOwl7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LAomIzQzOwl7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LAomIzQzOwl7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LAomIzQzOwl7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LAomIzQzOwl7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LAomIzQzOwl7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LAomIzQzOwl7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LAomIzQzOwl7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LAomIzQzOwl7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LAomIzQzOwl7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LAomIzQzOwl7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LAomIzQzOwl7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LAomIzQzOwl7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LAomIzQzOwl7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LAomIzQzOwl7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LAomIzQzOwl7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LAomIzQzOwl7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LAomIzQzOwl7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LAomIzQzOwl7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LAomIzQzOwl7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LAomIzQzOwl7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LAomIzQzOwl7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LAomIzQzOwl7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LAomIzQzOwl7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LAomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKQomIzQzO3sKJiM0MzsjZGVmaW5lIExDRyh4KQkgKCh4KSAqIDY5MDY5VSkJLyogc3VwZXItZHVwZXIgTENHICovCiYjNDM7CXN0YXRlLSZndDtzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7CiYjNDM7CXN0YXRlLSZndDtzMiA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MxKSwgICA4VSk7CiYjNDM7CXN0YXRlLSZndDtzMyA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MyKSwgIDE2VSk7CiYjNDM7CXN0YXRlLSZndDtzNCA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MzKSwgMTI4VSk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KHN0cnVjdCBrdW5pdCAqdGVzdCkKJiM0Mzt7CiYjNDM7CWludCBpOwomIzQzOwlzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlOwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRSh0ZXN0MSk7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZCgmYW1wO3N0YXRlLCB0ZXN0MVtpXS5zZWVkKTsKJiM0MzsJCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwomIzQzOwkJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QxW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpOwomIzQzOwl9CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV90YXVzMTEzKHN0cnVjdCBrdW5pdCAqdGVzdCkKJiM0Mzt7CiYjNDM7CWludCBpLCBqOwomIzQzOwlzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlOwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRSh0ZXN0Mik7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZCgmYW1wO3N0YXRlLCB0ZXN0MltpXS5zZWVkKTsKJiM0MzsJCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwomIzQzOwomIzQzOwkJZm9yIChqID0gMDsgaiAmbHQ7IHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGomIzQzOyYjNDM7KQomIzQzOwkJCXByYW5kb21fdTMyX3N0YXRlKCZhbXA7c3RhdGUpOwomIzQzOwomIzQzOwkJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QyW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpOwomIzQzOwl9CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBwcmFuZG9tX3Rlc3RfY2FzZXNbXSA9IHsKJiM0MzsJS1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksCiYjNDM7CUtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3RhdXMxMTMpLAomIzQzOwl7fQomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBwcmFuZG9tX3Rlc3Rfc3VpdGUgPSB7CiYjNDM7CS5uYW1lID0gJiMzNDtwcmFuZG9tJiMzNDssCiYjNDM7CS50ZXN0X2Nhc2VzID0gcHJhbmRvbV90ZXN0X2Nhc2VzLAomIzQzO307CiYjNDM7CiYjNDM7a3VuaXRfdGVzdF9zdWl0ZShwcmFuZG9tX3Rlc3Rfc3VpdGUpOwomIzQzOwomIzQzO01PRFVMRV9ERVNDUklQVElPTigmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb20mIzM0Oyk7CiYjNDM7TU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CiYjNDM7TU9EVUxFX0lNUE9SVF9OUygmIzM0O0VYUE9SVEVEX0ZPUl9LVU5JVF9URVNUSU5HJiMzNDspOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTYxOQoJCQkJCQkJb3V0cHV0OiA2NgoJCQkJCQkJdGhvdWdodHM6IDI5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLVW5pdCBUZXN0IENvbnZlcnNpb24gZm9yIHRoZSBSYW5kb20zMiBTZWxmLVRlc3QqKgoKT2theSwgc28gSSYjMzk7dmUganVzdCBiZWVuIGxvb2tpbmcgb3ZlciB0aGlzIHBhdGNoLiBJdCYjMzk7cyBlc3NlbnRpYWxseSBhIHN0cmFpZ2h0Zm9yd2FyZCBjb252ZXJzaW9uIG9mIHRoZSBleGlzdGluZyBgcmFuZG9tMzJgIHNlbGYtdGVzdCB0byBhIEtVbml0IHRlc3QgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgdGFrZWF3YXkgaXMgdGhhdCB0aGlzIGlzIGEgKnB1cmVseSogcmVmYWN0b3JpbmcgZWZmb3J0IGZvciB0ZXN0aW5nOyB0aGVyZSYjMzk7cyBubyBhbHRlcmF0aW9uIHRvIHRoZSB1bmRlcmx5aW5nIFBSTkcgbG9naWMgaXRzZWxmLCB3aGljaCBpcyB3aGF0IEkmIzM5O20gbW9zdCBjb25jZXJuZWQgd2l0aCBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZS4KClNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSBgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUYCBpcyBnZXR0aW5nIHJlbW92ZWQsIGFuZCBpbiBpdHMgcGxhY2Ugd2UmIzM5O3JlIHNlZWluZyBgQ09ORklHX1BSQU5ET01fS1VOSVRfVEVTVGAgaW50cm9kdWNlZC4gVGhlIHRlc3QgY29kZSBpdHNlbGYgaGFzIGJlZW4gbW92ZWQgb3V0IG9mIGBsaWIvcmFuZG9tMzIuY2AgYW5kIGludG8gaXRzIG93biBkZWRpY2F0ZWQgS1VuaXQgdGVzdCBmaWxlLCBgbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNgLiBJbXBvcnRhbnRseSwgdGhleSYjMzk7dmUgbW9kaWZpZWQgYGxpYi9yYW5kb20zMi5jYCB0byBleHBvc2UgYHByYW5kb21fd2FybXVwYCBzcGVjaWZpY2FsbHkgZm9yIEtVbml0IHVzYWdlLiBUaGlzIGlzIGEgc2Vuc2libGUgbW92ZS4KCkxldCBtZSBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9mIHRoZSBjaGFuZ2VzLi4uIFllcCwgYXMgZXhwZWN0ZWQ6IGBsaWIvS2NvbmZpZ2AgaGFzIHRoZSBgUkFORE9NMzJfU0VMRlRFU1RgIHJlbW92YWwsIGBsaWIvS2NvbmZpZy5kZWJ1Z2Agbm93IGluY2x1ZGVzIHRoZSBgUFJBTkRPTV9LVU5JVF9URVNUYC4gVGhlIG1haW4gYHJhbmRvbTMyLmNgIGZpbGUgaXMgYmVpbmcgY2xlYW5lZCB1cCDigJMgYHByYW5kb21fd2FybXVwYCBpcyBleHBvc2VkLCBidXQgdGhlIG9sZCBzZWxmdGVzdCBmdW5jdGlvbnMgYW5kIGRhdGEgYXJlIG5vdyBnb25lLiBBbmQgb2YgY291cnNlLCB0aGUgYGxpYi90ZXN0cy9NYWtlZmlsZWAgaGFzIGJlZW4gdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBuZXcgYHJhbmRvbTMyX2t1bml0Lm9gIGFuZCB0aGUgYHJhbmRvbTMyX2t1bml0LmNgIGZpbGUgaXRzZWxmLgoKU2luY2UgdGhpcyBpcyBtZXJlbHkgYSB0ZXN0IHJlc3RydWN0dXJpbmcsIGFuZCB0aGUgY29yZSBQUk5HIGZ1bmN0aW9uYWxpdHkgaXMgdW50b3VjaGVkLCBJJiMzOTttIGNvbmZpZGVudCBpbiBhc3Nlc3NpbmcgdGhpcyBhcyAqKm5vdCoqIGludHJvZHVjaW5nIGFueSBuZXcgZnVuY3Rpb25hbCBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuIFNvLCBJIHdpbGwgYmUgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvbnZlcnRzIGFuIGV4aXN0aW5nIHJhbmRvbTMyIHNlbGYtdGVzdCBpbnRvIGEgS1VuaXQgdGVzdC4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIG9yIGludHJvZHVjZSBuZXcgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NDA6NTUuMTIwNDI2NDUxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM5ODI5MzY4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjQwOjU1LjEyMDQzMDcwMVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzIxMzQ4NTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzg4Y2I2MzExM2JlNGYzMzBiMDYyMGQ3YTYwZmFhYTZkNzgzM2EwYlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAzIDA1OjQwOjU0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnIGIvbGliL0tjb25maWdcXG5pbmRleCAyOTIzOTI0YmVhNzhjYi4uNWYxODVlOWYxZTkyYmQgMTAwNjQ0XFxuLS0tIGEvbGliL0tjb25maWdcXG4rKysgYi9saWIvS2NvbmZpZ1xcbkBAIC0xNTYsMTIgKzE1Niw2IEBAIGNvbmZpZyBBVURJVF9DT01QQVRfR0VORVJJQ1xcbiBcXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXFx1MDAyNlxcdTAwMjYgQVVESVRfQVJDSF9DT01QQVRfR0VORVJJQyBcXHUwMDI2XFx1MDAyNiBDT01QQVRcXG4gXFx0ZGVmYXVsdCB5XFxuIFxcbi1jb25maWcgUkFORE9NMzJfU0VMRlRFU1RcXG4tXFx0Ym9vbCBcXFwiUFJORyBwZXJmb3JtIHNlbGYgdGVzdCBvbiBpbml0XFxcIlxcbi1cXHRoZWxwXFxuLVxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgMzIgYml0IFBSTkcgbGlicmFyeSBmdW5jdGlvbnMgdG8gcGVyZm9ybSBhXFxuLVxcdCAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLlxcbi1cXG4gI1xcbiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0J2VkIGlmIG5lZWRlZFxcbiAjXFxuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWdcXG5pbmRleCBiYTM2OTM5ZmRhNzliZi4uMDIxNGE1ODU5M2Q3ZmIgMTAwNjQ0XFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcXG4rKysgYi9saWIvS2NvbmZpZy5kZWJ1Z1xcbkBAIC0zMzU0LDYgKzMzNTQsMTUgQEAgY29uZmlnIFBSSU1FX05VTUJFUlNfS1VOSVRfVEVTVFxcbiBcXG4gXFx0ICBJZiB1bnN1cmUsIHNheSBOXFxuIFxcbitjb25maWcgUFJBTkRPTV9LVU5JVF9URVNUXFxuK1xcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuK1xcdGRlcGVuZHMgb24gS1VOSVRcXG4rXFx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG4rXFx0aGVscFxcbitcXHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxcbitcXG4rXFx0ICBJZiB1bnN1cmUsIHNheSBOXFxuK1xcbiBlbmRpZiAjIFJVTlRJTUVfVEVTVElOR19NRU5VXFxuIFxcbiBjb25maWcgQVJDSF9VU0VfTUVNVEVTVFxcbmRpZmYgLS1naXQgYS9saWIvcmFuZG9tMzIuYyBiL2xpYi9yYW5kb20zMi5jXFxuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxcbi0tLSBhL2xpYi9yYW5kb20zMi5jXFxuKysrIGIvbGliL3JhbmRvbTMyLmNcXG5AQCAtNDEsNiArNDEsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvYml0b3BzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zbGFiLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC91bmFsaWduZWQuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2t1bml0L3Zpc2liaWxpdHkuaFxcdTAwM2VcXG4gXFxuIC8qKlxcbiAgKlxcdHByYW5kb21fdTMyX3N0YXRlIC0gc2VlZGVkIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvci5cXG5AQCAtOTIsNyArOTMsMTQgQEAgdm9pZCBwcmFuZG9tX2J5dGVzX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB2b2lkICpidWYsIHNpemVfdCBieXRlcylcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fYnl0ZXNfc3RhdGUpO1xcbiBcXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXFxuKy8qXFxuKyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGVcXG4rICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cXG4rICovXFxuKyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVClcXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XFxuKyNlbmRpZlxcbitWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXFxuIHtcXG4gXFx0LyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi9cXG4gXFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xcbkBAIC0xMDYsNiArMTE0LDcgQEAgc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXFxuIFxcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcXG4gXFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xcbiB9XFxuK0VYUE9SVF9TWU1CT0xfSUZfS1VOSVQocHJhbmRvbV93YXJtdXApO1xcbiBcXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxcbiB7XFxuQEAgLTEyNSwxNzYgKzEzNCwzIEBAIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSlcXG4gXFx0fVxcbiB9XFxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUpO1xcbi1cXG4tI2lmZGVmIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVFxcbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDEge1xcbi1cXHR1MzIgc2VlZDtcXG4tXFx0dTMyIHJlc3VsdDtcXG4tfSB0ZXN0MVtdID0ge1xcbi1cXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxcbi1cXHR7IDJVLCAyNjIzMTMwMDU5VSB9LFxcbi1cXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxcbi1cXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxcbi19O1xcbi1cXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcXG4tXFx0dTMyIHNlZWQ7XFxuLVxcdHUzMiBpdGVyYXRpb247XFxuLVxcdHUzMiByZXN1bHQ7XFxuLX0gdGVzdDJbXSA9IHtcXG4tXFx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cXG4tXFx0eyAgOTMxNTU3NjU2VSwgOTU5VSwgMjk3NTU5Mzc4MlUgfSxcXG4tXFx0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcXG4tXFx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcXG4tXFx0eyAgNjAxNzMwNzc2VSwgNzIzVSwgMTc3NjE2MjY1MVUgfSxcXG4tXFx0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcXG4tXFx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcXG4tXFx0eyAxMzk1NTIyMDMyVSwgNjUyVSwgMjIyMjA2MzY3NlUgfSxcXG4tXFx0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcXG4tXFx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcXG4tXFx0eyAgNTU2MjA2NjcxVSwgOTk0VSwgIDc5OTYyNjQ1OVUgfSxcXG4tXFx0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcXG4tXFx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcXG4tXFx0eyAxNjY4NTE2NDUxVSwgNjQ0VSwgMzYyMDU5MDY4NVUgfSxcXG4tXFx0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcXG4tXFx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcXG4tXFx0eyAgNTM2NTg1MTQ1VSwgOTk2VSwgMzU3NzI1OTIwNFUgfSxcXG4tXFx0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcXG4tXFx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcXG4tXFx0eyAxOTY3ODgzMTYzVSwgNTA4VSwgICAxMDczNDYyNFUgfSxcXG4tXFx0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcXG4tXFx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcXG4tXFx0eyAxOTYxMzAyNzE0VSwgODQ1VSwgIDg0MTk2MjU3MlUgfSxcXG4tXFx0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcXG4tXFx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcXG4tXFx0eyAgNjM1NDgyNTAyVSwgNzc5VSwgNDIwMDQ4OTc0NlUgfSxcXG4tXFx0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcXG4tXFx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcXG4tXFx0eyAxMDcxNDY4MjE2VSwgOTgzVSwgIDkxNzg3NjYzMFUgfSxcXG4tXFx0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcXG4tXFx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcXG4tXFx0eyAxOTczNjcyNzc3VSwgODUzVSwgMTA3MTM2ODg3MlUgfSxcXG4tXFx0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcXG4tXFx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcXG4tXFx0eyAxMjQwNTIwNTEwVSwgOTUxVSwgMjg0OTU3NjY1N1UgfSxcXG4tXFx0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcXG4tXFx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcXG4tXFx0eyAxMjA4MTE4OTAzVSwgNjEyVSwgMTYxMzE0NTAyMlUgfSxcXG4tXFx0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcXG4tXFx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcXG4tXFx0eyAgMzY1OTE2ODUwVSwgODA3VSwgIDYwMDQyNDMxNFUgfSxcXG4tXFx0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcXG4tXFx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcXG4tXFx0eyAgNjk3NzU4MTE1VSwgODQwVSwgMTQ4MzYzOTQwMlUgfSxcXG4tXFx0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcXG4tXFx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcXG4tXFx0eyAgOTU1NjQ2Njg3VSwgNzQyVSwgMzg0NjQ5NDM1N1UgfSxcXG4tXFx0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcXG4tXFx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcXG4tXFx0eyAgIDQ3NDg1MzM4VSwgNTU4VSwgMzUyMTEyMDgzNFUgfSxcXG4tXFx0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcXG4tXFx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcXG4tXFx0eyAxNzEyMjI0OTg0VSwgNjA2VSwgMjM5MzMxMjAwM1UgfSxcXG4tXFx0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcXG4tXFx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcXG4tXFx0eyAgIDY0NzIxNDIxVSwgNzAzVSwgIDY4Mzg2MDU1MFUgfSxcXG4tXFx0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcXG4tXFx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcXG4tXFx0eyAgNjc3NzAzNjE5VSwgNTMwVSwgMjgyNjkxNDE2MVUgfSxcXG4tXFx0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcXG4tXFx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcXG4tXFx0eyAgMzU4Mjg4OTg2VSwgNjk1VSwgMTA5MTk1Njk5OFUgfSxcXG4tXFx0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcXG4tXFx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcXG4tXFx0eyAxNTYwMDg5NDAyVSwgODk3VSwgMjIzODU1MTI4N1UgfSxcXG4tXFx0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcXG4tXFx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcXG4tXFx0eyAgIDIwMjIxMTkwVSwgODc5VSwgMTU2NDE1Mjk3MFUgfSxcXG4tXFx0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcXG4tXFx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcXG4tXFx0eyAyMDE5Mjk1NTQ0VSwgNjQ1VSwgMzI4NjQzODkzMFUgfSxcXG4tXFx0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcXG4tXFx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcXG4tXFx0eyAgNDAwNjcyMDM2VSwgODA5VSwgNDI2NDIxMjc4NVUgfSxcXG4tXFx0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcXG4tXFx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcXG4tXFx0eyAgNTE5OTUzOTU0VSwgNjY3VSwgMjU3NDQzNjIzN1UgfSxcXG4tXFx0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcXG4tXFx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcXG4tXFx0eyAgNjkwMTAzNjQ3VSwgOTY5VSwgMzcwMDc1ODA4M1UgfSxcXG4tXFx0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcXG4tXFx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcXG4tXFx0eyAxNTM1NDMyODg3VSwgOTk4VSwgICA0MjYxMDk0M1UgfSxcXG4tXFx0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcXG4tXFx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcXG4tXFx0eyAxMzIyNDExNTM3VSwgNjgwVSwgMzIyMzI1MDMyNFUgfSxcXG4tXFx0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcXG4tXFx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcXG4tXFx0eyAgODA1Njg3NTM2VSwgNzQ0VSwgNDAzMjI3NzkyMFUgfSxcXG4tXFx0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcXG4tXFx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcXG4tXFx0eyAgNjkwMjQxMzA0VSwgNzcwVSwgMTIwMTAzMTI5OFUgfSxcXG4tXFx0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcXG4tXFx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcXG4tXFx0eyAgNDQ3MDkyMjUxVSwgNTAwVSwgMzQzODc0MzM3NVUgfSxcXG4tXFx0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcXG4tXFx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcXG4tXFx0eyAgNzI2NjkyODk5VSwgODEwVSwgMTY1Njg3Mjg2N1UgfSxcXG4tXFx0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcXG4tXFx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcXG4tXFx0eyAgNDA3OTgzOTY0VSwgOTIxVSwgIDcyODc2NzA1OVUgfSxcXG4tfTtcXG4tXFxuLXN0YXRpYyB2b2lkIHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXFxuLXtcXG4tI2RlZmluZSBMQ0coeClcXHQgKCh4KSAqIDY5MDY5VSlcXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cXG4tXFx0c3RhdGUtXFx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcXG4tXFx0c3RhdGUtXFx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cXHUwMDNlczEpLCAgIDhVKTtcXG4tXFx0c3RhdGUtXFx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cXHUwMDNlczIpLCAgMTZVKTtcXG4tXFx0c3RhdGUtXFx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cXHUwMDNlczMpLCAxMjhVKTtcXG4tfVxcbi1cXG4tc3RhdGljIGludCBfX2luaXQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCh2b2lkKVxcbi17XFxuLVxcdGludCBpLCBqLCBlcnJvcnMgPSAwLCBydW5zID0gMDtcXG4tXFx0Ym9vbCBlcnJvciA9IGZhbHNlO1xcbi1cXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpKyspIHtcXG4tXFx0XFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4tXFxuLVxcdFxcdHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xcbi1cXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbi1cXG4tXFx0XFx0aWYgKHRlc3QxW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpKVxcbi1cXHRcXHRcXHRlcnJvciA9IHRydWU7XFxuLVxcdH1cXG4tXFxuLVxcdGlmIChlcnJvcilcXG4tXFx0XFx0cHJfd2FybihcXFwicHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgZmFpbGVkXFxcXG5cXFwiKTtcXG4tXFx0ZWxzZVxcbi1cXHRcXHRwcl9pbmZvKFxcXCJwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBwYXNzZWRcXFxcblxcXCIpO1xcbi1cXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUodGVzdDIpOyBpKyspIHtcXG4tXFx0XFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4tXFxuLVxcdFxcdHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xcbi1cXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbi1cXG4tXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcXG4tXFx0XFx0XFx0cHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKTtcXG4tXFxuLVxcdFxcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKSlcXG4tXFx0XFx0XFx0ZXJyb3JzKys7XFxuLVxcbi1cXHRcXHRydW5zKys7XFxuLVxcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbi1cXHR9XFxuLVxcbi1cXHRpZiAoZXJyb3JzKVxcbi1cXHRcXHRwcl93YXJuKFxcXCJwcmFuZG9tOiAlZC8lZCBzZWxmIHRlc3RzIGZhaWxlZFxcXFxuXFxcIiwgZXJyb3JzLCBydW5zKTtcXG4tXFx0ZWxzZVxcbi1cXHRcXHRwcl9pbmZvKFxcXCJwcmFuZG9tOiAlZCBzZWxmIHRlc3RzIHBhc3NlZFxcXFxuXFxcIiwgcnVucyk7XFxuLVxcdHJldHVybiAwO1xcbi19XFxuLWNvcmVfaW5pdGNhbGwocHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCk7XFxuLSNlbmRpZlxcbmRpZmYgLS1naXQgYS9saWIvdGVzdHMvTWFrZWZpbGUgYi9saWIvdGVzdHMvTWFrZWZpbGVcXG5pbmRleCA2MDFkYmE0YjdkOTY2ZC4uMzlkMjgzYjI2ZmUyYjQgMTAwNjQ0XFxuLS0tIGEvbGliL3Rlc3RzL01ha2VmaWxlXFxuKysrIGIvbGliL3Rlc3RzL01ha2VmaWxlXFxuQEAgLTQ5LDUgKzQ5LDYgQEAgb2JqLSQoQ09ORklHX1NUUklOR19IRUxQRVJTX0tVTklUX1RFU1QpICs9IHN0cmluZ19oZWxwZXJzX2t1bml0Lm9cXG4gb2JqLSQoQ09ORklHX1VTRVJDT1BZX0tVTklUX1RFU1QpICs9IHVzZXJjb3B5X2t1bml0Lm9cXG4gb2JqLSQoQ09ORklHX1VUSUxfTUFDUk9TX0tVTklUKSArPSB1dGlsX21hY3Jvc19rdW5pdC5vXFxuIG9iai0kKENPTkZJR19SQVRFTElNSVRfS1VOSVRfVEVTVCkgKz0gdGVzdF9yYXRlbGltaXQub1xcbitvYmotJChDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUKSArPSByYW5kb20zMl9rdW5pdC5vXFxuIFxcbiBvYmotJChDT05GSUdfVEVTVF9SVU5USU1FX01PRFVMRSlcXHRcXHQrPSBtb2R1bGUvXFxuZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jIGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMlxcbi0tLSAvZGV2L251bGxcXG4rKysgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xcbkBAIC0wLDAgKzEsMTgyIEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuKy8qXFxuKyAqIFRlc3QgY2FzZXMgZm9yIHJhbmRvbTMyIGZ1bmN0aW9ucy5cXG4rICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcHJhbmRvbS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNja3VuaXQvdGVzdC5oXFx1MDAzZVxcbitcXG4rLyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi9cXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XFxuK1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEge1xcbitcXHR1MzIgc2VlZDtcXG4rXFx0dTMyIHJlc3VsdDtcXG4rfSB0ZXN0MVtdID0ge1xcbitcXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxcbitcXHR7IDJVLCAyNjIzMTMwMDU5VSB9LFxcbitcXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxcbitcXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxcbit9O1xcbitcXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcXG4rXFx0dTMyIHNlZWQ7XFxuK1xcdHUzMiBpdGVyYXRpb247XFxuK1xcdHUzMiByZXN1bHQ7XFxuK30gdGVzdDJbXSA9IHtcXG4rXFx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cXG4rXFx0eyAgOTMxNTU3NjU2VSwgOTU5VSwgMjk3NTU5Mzc4MlUgfSxcXG4rXFx0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcXG4rXFx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcXG4rXFx0eyAgNjAxNzMwNzc2VSwgNzIzVSwgMTc3NjE2MjY1MVUgfSxcXG4rXFx0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcXG4rXFx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcXG4rXFx0eyAxMzk1NTIyMDMyVSwgNjUyVSwgMjIyMjA2MzY3NlUgfSxcXG4rXFx0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcXG4rXFx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcXG4rXFx0eyAgNTU2MjA2NjcxVSwgOTk0VSwgIDc5OTYyNjQ1OVUgfSxcXG4rXFx0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcXG4rXFx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcXG4rXFx0eyAxNjY4NTE2NDUxVSwgNjQ0VSwgMzYyMDU5MDY4NVUgfSxcXG4rXFx0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcXG4rXFx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcXG4rXFx0eyAgNTM2NTg1MTQ1VSwgOTk2VSwgMzU3NzI1OTIwNFUgfSxcXG4rXFx0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcXG4rXFx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcXG4rXFx0eyAxOTY3ODgzMTYzVSwgNTA4VSwgICAxMDczNDYyNFUgfSxcXG4rXFx0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcXG4rXFx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcXG4rXFx0eyAxOTYxMzAyNzE0VSwgODQ1VSwgIDg0MTk2MjU3MlUgfSxcXG4rXFx0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcXG4rXFx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcXG4rXFx0eyAgNjM1NDgyNTAyVSwgNzc5VSwgNDIwMDQ4OTc0NlUgfSxcXG4rXFx0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcXG4rXFx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcXG4rXFx0eyAxMDcxNDY4MjE2VSwgOTgzVSwgIDkxNzg3NjYzMFUgfSxcXG4rXFx0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcXG4rXFx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcXG4rXFx0eyAxOTczNjcyNzc3VSwgODUzVSwgMTA3MTM2ODg3MlUgfSxcXG4rXFx0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcXG4rXFx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcXG4rXFx0eyAxMjQwNTIwNTEwVSwgOTUxVSwgMjg0OTU3NjY1N1UgfSxcXG4rXFx0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcXG4rXFx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcXG4rXFx0eyAxMjA4MTE4OTAzVSwgNjEyVSwgMTYxMzE0NTAyMlUgfSxcXG4rXFx0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcXG4rXFx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcXG4rXFx0eyAgMzY1OTE2ODUwVSwgODA3VSwgIDYwMDQyNDMxNFUgfSxcXG4rXFx0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcXG4rXFx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcXG4rXFx0eyAgNjk3NzU4MTE1VSwgODQwVSwgMTQ4MzYzOTQwMlUgfSxcXG4rXFx0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcXG4rXFx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcXG4rXFx0eyAgOTU1NjQ2Njg3VSwgNzQyVSwgMzg0NjQ5NDM1N1UgfSxcXG4rXFx0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcXG4rXFx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcXG4rXFx0eyAgIDQ3NDg1MzM4VSwgNTU4VSwgMzUyMTEyMDgzNFUgfSxcXG4rXFx0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcXG4rXFx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcXG4rXFx0eyAxNzEyMjI0OTg0VSwgNjA2VSwgMjM5MzMxMjAwM1UgfSxcXG4rXFx0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcXG4rXFx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcXG4rXFx0eyAgIDY0NzIxNDIxVSwgNzAzVSwgIDY4Mzg2MDU1MFUgfSxcXG4rXFx0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcXG4rXFx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcXG4rXFx0eyAgNjc3NzAzNjE5VSwgNTMwVSwgMjgyNjkxNDE2MVUgfSxcXG4rXFx0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcXG4rXFx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcXG4rXFx0eyAgMzU4Mjg4OTg2VSwgNjk1VSwgMTA5MTk1Njk5OFUgfSxcXG4rXFx0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcXG4rXFx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcXG4rXFx0eyAxNTYwMDg5NDAyVSwgODk3VSwgMjIzODU1MTI4N1UgfSxcXG4rXFx0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcXG4rXFx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcXG4rXFx0eyAgIDIwMjIxMTkwVSwgODc5VSwgMTU2NDE1Mjk3MFUgfSxcXG4rXFx0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcXG4rXFx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcXG4rXFx0eyAyMDE5Mjk1NTQ0VSwgNjQ1VSwgMzI4NjQzODkzMFUgfSxcXG4rXFx0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcXG4rXFx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcXG4rXFx0eyAgNDAwNjcyMDM2VSwgODA5VSwgNDI2NDIxMjc4NVUgfSxcXG4rXFx0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcXG4rXFx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcXG4rXFx0eyAgNTE5OTUzOTU0VSwgNjY3VSwgMjU3NDQzNjIzN1UgfSxcXG4rXFx0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcXG4rXFx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcXG4rXFx0eyAgNjkwMTAzNjQ3VSwgOTY5VSwgMzcwMDc1ODA4M1UgfSxcXG4rXFx0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcXG4rXFx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcXG4rXFx0eyAxNTM1NDMyODg3VSwgOTk4VSwgICA0MjYxMDk0M1UgfSxcXG4rXFx0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcXG4rXFx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcXG4rXFx0eyAxMzIyNDExNTM3VSwgNjgwVSwgMzIyMzI1MDMyNFUgfSxcXG4rXFx0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcXG4rXFx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcXG4rXFx0eyAgODA1Njg3NTM2VSwgNzQ0VSwgNDAzMjI3NzkyMFUgfSxcXG4rXFx0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcXG4rXFx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcXG4rXFx0eyAgNjkwMjQxMzA0VSwgNzcwVSwgMTIwMTAzMTI5OFUgfSxcXG4rXFx0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcXG4rXFx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcXG4rXFx0eyAgNDQ3MDkyMjUxVSwgNTAwVSwgMzQzODc0MzM3NVUgfSxcXG4rXFx0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcXG4rXFx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcXG4rXFx0eyAgNzI2NjkyODk5VSwgODEwVSwgMTY1Njg3Mjg2N1UgfSxcXG4rXFx0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcXG4rXFx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcXG4rXFx0eyAgNDA3OTgzOTY0VSwgOTIxVSwgIDcyODc2NzA1OVUgfSxcXG4rfTtcXG4rXFxuK3N0YXRpYyB2b2lkIHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZClcXG4re1xcbisjZGVmaW5lIExDRyh4KVxcdCAoKHgpICogNjkwNjlVKVxcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xcbitcXHRzdGF0ZS1cXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xcbitcXHRzdGF0ZS1cXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMSksICAgOFUpO1xcbitcXHRzdGF0ZS1cXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMiksICAxNlUpO1xcbitcXHRzdGF0ZS1cXHUwMDNlczQgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMyksIDEyOFUpO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuK3tcXG4rXFx0aW50IGk7XFxuK1xcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xcbitcXHRcXHRwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xcbitcXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbitcXHRcXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDFbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpKTtcXG4rXFx0fVxcbit9XFxuK1xcbitzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fdGF1czExMyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuK3tcXG4rXFx0aW50IGksIGo7XFxuK1xcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0Mik7IGkrKykge1xcbitcXHRcXHRwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChcXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xcbitcXHRcXHRwcmFuZG9tX3dhcm11cChcXHUwMDI2c3RhdGUpO1xcbitcXG4rXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcXG4rXFx0XFx0XFx0cHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKTtcXG4rXFxuK1xcdFxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFxcdTAwMjZzdGF0ZSkpO1xcbitcXHR9XFxuK31cXG4rXFxuK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBwcmFuZG9tX3Rlc3RfY2FzZXNbXSA9IHtcXG4rXFx0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksXFxuK1xcdEtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3RhdXMxMTMpLFxcbitcXHR7fVxcbit9O1xcbitcXG4rc3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBwcmFuZG9tX3Rlc3Rfc3VpdGUgPSB7XFxuK1xcdC5uYW1lID0gXFxcInByYW5kb21cXFwiLFxcbitcXHQudGVzdF9jYXNlcyA9IHByYW5kb21fdGVzdF9jYXNlcyxcXG4rfTtcXG4rXFxuK2t1bml0X3Rlc3Rfc3VpdGUocHJhbmRvbV90ZXN0X3N1aXRlKTtcXG4rXFxuK01PRFVMRV9ERVNDUklQVElPTihcXFwiS1VuaXQgdGVzdCBmb3IgcHJhbmRvbVxcXCIpO1xcbitNT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuK01PRFVMRV9JTVBPUlRfTlMoXFxcIkVYUE9SVEVEX0ZPUl9LVU5JVF9URVNUSU5HXFxcIik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjQwOjU1LjQ0MjM4NjY2OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3NjMyNzE1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29udmVydHMgYW4gZXhpc3RpbmcgcmFuZG9tMzIgc2VsZi10ZXN0IGludG8gYSBLVW5pdCB0ZXN0LiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgbG9naWMgb3IgaW50cm9kdWNlIG5ldyBmZWF0dXJlcyB0aGF0IHJlcXVpcmUgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzg4Y2I2MzExM2JlNGYzMzBiMDYyMGQ3YTYwZmFhYTZkNzgzM2EwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDU6NDA6NTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZyBiL2xpYi9LY29uZmlnXG5pbmRleCAyOTIzOTI0YmVhNzhjYi4uNWYxODVlOWYxZTkyYmQgMTAwNjQ0XG4tLS0gYS9saWIvS2NvbmZpZ1xuKysrIGIvbGliL0tjb25maWdcbkBAIC0xNTYsMTIgKzE1Niw2IEBAIGNvbmZpZyBBVURJVF9DT01QQVRfR0VORVJJQ1xuIFx0ZGVwZW5kcyBvbiBBVURJVF9HRU5FUklDIFx1MDAyNlx1MDAyNiBBVURJVF9BUkNIX0NPTVBBVF9HRU5FUklDIFx1MDAyNlx1MDAyNiBDT01QQVRcbiBcdGRlZmF1bHQgeVxuIFxuLWNvbmZpZyBSQU5ET00zMl9TRUxGVEVTVFxuLVx0Ym9vbCBcIlBSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdFwiXG4tXHRoZWxwXG4tXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIDMyIGJpdCBQUk5HIGxpYnJhcnkgZnVuY3Rpb25zIHRvIHBlcmZvcm0gYVxuLVx0ICBzZWxmIHRlc3Qgb24gaW5pdGlhbGl6YXRpb24uXG4tXG4gI1xuICMgY29tcHJlc3Npb24gc3VwcG9ydCBpcyBzZWxlY3QnZWQgaWYgbmVlZGVkXG4gI1xuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnLmRlYnVnIGIvbGliL0tjb25maWcuZGVidWdcbmluZGV4IGJhMzY5MzlmZGE3OWJmLi4wMjE0YTU4NTkzZDdmYiAxMDA2NDRcbi0tLSBhL2xpYi9LY29uZmlnLmRlYnVnXG4rKysgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuQEAgLTMzNTQsNiArMzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXG4gXG4gXHQgIElmIHVuc3VyZSwgc2F5IE5cbiBcbitjb25maWcgUFJBTkRPTV9LVU5JVF9URVNUXG4rXHR0cmlzdGF0ZSBcIktVbml0IHRlc3QgZm9yIHByYW5kb21cIiBpZiAhS1VOSVRfQUxMX1RFU1RTXG4rXHRkZXBlbmRzIG9uIEtVTklUXG4rXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuK1x0aGVscFxuK1x0ICBFbmFibGUgdGhpcyBvcHRpb24gdG8gdGVzdCB0aGUgcHJhbmRvbSBmdW5jdGlvbnMgYXQgcnVudGltZS5cbitcbitcdCAgSWYgdW5zdXJlLCBzYXkgTlxuK1xuIGVuZGlmICMgUlVOVElNRV9URVNUSU5HX01FTlVcbiBcbiBjb25maWcgQVJDSF9VU0VfTUVNVEVTVFxuZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmNcbmluZGV4IDI0ZTdhY2Q5MzQzZjY4Li5kYWQ5MDIxOWMzNTExZCAxMDA2NDRcbi0tLSBhL2xpYi9yYW5kb20zMi5jXG4rKysgYi9saWIvcmFuZG9tMzIuY1xuQEAgLTQxLDYgKzQxLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNja3VuaXQvdmlzaWJpbGl0eS5oXHUwMDNlXG4gXG4gLyoqXG4gICpcdHByYW5kb21fdTMyX3N0YXRlIC0gc2VlZGVkIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvci5cbkBAIC05Miw3ICs5MywxNCBAQCB2b2lkIHByYW5kb21fYnl0ZXNfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ5dGVzKVxuIH1cbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fYnl0ZXNfc3RhdGUpO1xuIFxuLXN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuKy8qXG4rICogT25seSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQgaXQgaGFzIGEgcHJvdG90eXBlIHdoZW4gbWFkZVxuKyAqIG5vbi1zdGF0aWMgZm9yIEtVbml0IHRlc3RpbmcgKGF2b2lkcyAtV21pc3NpbmctcHJvdG90eXBlcykuXG4rICovXG4rI2lmIElTX0VOQUJMRUQoQ09ORklHX0tVTklUKVxuK3ZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpO1xuKyNlbmRpZlxuK1ZJU0lCTEVfSUZfS1VOSVQgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcbiB7XG4gXHQvKiBDYWxsaW5nIFJORyB0ZW4gdGltZXMgdG8gc2F0aXNmeSByZWN1cnJlbmNlIGNvbmRpdGlvbiAqL1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuQEAgLTEwNiw2ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbiB9XG4rRVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XG4gXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIHtcbkBAIC0xMjUsMTc2ICsxMzQsMyBAQCB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpXG4gXHR9XG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUpO1xuLVxuLSNpZmRlZiBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1Rcbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDEge1xuLVx0dTMyIHNlZWQ7XG4tXHR1MzIgcmVzdWx0O1xuLX0gdGVzdDFbXSA9IHtcbi1cdHsgMVUsIDM0ODQzNTE2ODVVIH0sXG4tXHR7IDJVLCAyNjIzMTMwMDU5VSB9LFxuLVx0eyAzVSwgMzEyNTEzMzg5M1UgfSxcbi1cdHsgNFUsICA5ODQ4NDcyNTRVIH0sXG4tfTtcbi1cbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDIge1xuLVx0dTMyIHNlZWQ7XG4tXHR1MzIgaXRlcmF0aW9uO1xuLVx0dTMyIHJlc3VsdDtcbi19IHRlc3QyW10gPSB7XG4tXHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xuLVx0eyAgOTMxNTU3NjU2VSwgOTU5VSwgMjk3NTU5Mzc4MlUgfSxcbi1cdHsgMTMzOTY5MzI5NVUsIDg3NlUsIDM4ODc3NzY1MzJVIH0sXG4tXHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxuLVx0eyAgNjAxNzMwNzc2VSwgNzIzVSwgMTc3NjE2MjY1MVUgfSxcbi1cdHsgMTAyNzUxNjA0N1UsIDY4N1UsICA1MTE5ODMwNzlVIH0sXG4tXHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxuLVx0eyAxMzk1NTIyMDMyVSwgNjUyVSwgMjIyMjA2MzY3NlUgfSxcbi1cdHsgIDM2NjIyMTQ0M1UsIDYxN1UsIDI5OTI4NTc3NjNVIH0sXG4tXHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxuLVx0eyAgNTU2MjA2NjcxVSwgOTk0VSwgIDc5OTYyNjQ1OVUgfSxcbi1cdHsgIDY4NDkwNzIxOFUsIDc5OVUsICAzNjc3ODk0OTFVIH0sXG4tXHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxuLVx0eyAxNjY4NTE2NDUxVSwgNjQ0VSwgMzYyMDU5MDY4NVUgfSxcbi1cdHsgIDc2ODA0NjA2NlUsIDg4M1UsIDIwMzQwNzczOTBVIH0sXG4tXHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxuLVx0eyAgNTM2NTg1MTQ1VSwgOTk2VSwgMzU3NzI1OTIwNFUgfSxcbi1cdHsgMTAwODEyOTM3M1UsIDY0MlUsIDE0NzgwODA3NzZVIH0sXG4tXHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxuLVx0eyAxOTY3ODgzMTYzVSwgNTA4VSwgICAxMDczNDYyNFUgfSxcbi1cdHsgMTkyMzAxOTY5N1UsIDczMFUsIDM4MjE0MTk2MjlVIH0sXG4tXHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxuLVx0eyAxOTYxMzAyNzE0VSwgODQ1VSwgIDg0MTk2MjU3MlUgfSxcbi1cdHsgMjAzMDIwNTk2NFUsIDk2MlUsIDEzMjUxNDQyMjdVIH0sXG4tXHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxuLVx0eyAgNjM1NDgyNTAyVSwgNzc5VSwgNDIwMDQ4OTc0NlUgfSxcbi1cdHsgMTI1Mjc4ODkzMVUsIDY5OVUsICA4NjcxOTU0MzRVIH0sXG4tXHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxuLVx0eyAxMDcxNDY4MjE2VSwgOTgzVSwgIDkxNzg3NjYzMFUgfSxcbi1cdHsgMTI4MTg0ODM2N1UsIDkzMlUsIDEwMDMxMDAwMzlVIH0sXG4tXHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxuLVx0eyAxOTczNjcyNzc3VSwgODUzVSwgMTA3MTM2ODg3MlUgfSxcbi1cdHsgMTg5Njc1Njk5NlUsIDc2MlUsIDExMjc4NTEwNTVVIH0sXG4tXHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxuLVx0eyAxMjQwNTIwNTEwVSwgOTUxVSwgMjg0OTU3NjY1N1UgfSxcbi1cdHsgMTY4NTA3MTY4MlUsIDU2N1UsIDE5NjE4MTAzOTZVIH0sXG4tXHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxuLVx0eyAxMjA4MTE4OTAzVSwgNjEyVSwgMTYxMzE0NTAyMlUgfSxcbi1cdHsgMTgxNzI2OTkyN1UsIDY5M1UsIDQyNzkxMjI1NzNVIH0sXG4tXHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxuLVx0eyAgMzY1OTE2ODUwVSwgODA3VSwgIDYwMDQyNDMxNFUgfSxcbi1cdHsgIDM5OTMyNDM1OVUsIDcwMlUsIDE4MDM1OTgxMTZVIH0sXG4tXHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxuLVx0eyAgNjk3NzU4MTE1VSwgODQwVSwgMTQ4MzYzOTQwMlUgfSxcbi1cdHsgMTY5NjUwNzc3M1UsIDg0MFUsICA1Nzc0MTU0NDdVIH0sXG4tXHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxuLVx0eyAgOTU1NjQ2Njg3VSwgNzQyVSwgMzg0NjQ5NDM1N1UgfSxcbi1cdHsgMTI1MDY4MzUwNlUsIDc0OVUsICA4MzY0MTk4NTlVIH0sXG4tXHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxuLVx0eyAgIDQ3NDg1MzM4VSwgNTU4VSwgMzUyMTEyMDgzNFUgfSxcbi1cdHsgIDYxOTQzMzQ3OVUsIDYxMFUsIDM5OTE3ODM4NzVVIH0sXG4tXHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxuLVx0eyAxNzEyMjI0OTg0VSwgNjA2VSwgMjM5MzMxMjAwM1UgfSxcbi1cdHsgMTMxODIzMzE1MlUsIDkyMlUsIDM4ODAzNjExMzRVIH0sXG4tXHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxuLVx0eyAgIDY0NzIxNDIxVSwgNzAzVSwgIDY4Mzg2MDU1MFUgfSxcbi1cdHsgIDY3ODkzMTc1OFUsIDg0MFUsICAzODA2MTYwNDNVIH0sXG4tXHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxuLVx0eyAgNjc3NzAzNjE5VSwgNTMwVSwgMjgyNjkxNDE2MVUgfSxcbi1cdHsgICA5MjM5MzIyM1UsIDU4NlUsIDE1MjIxMjg0NzFVIH0sXG4tXHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxuLVx0eyAgMzU4Mjg4OTg2VSwgNjk1VSwgMTA5MTk1Njk5OFUgfSxcbi1cdHsgMTkzNTA1Njk0NVUsIDk1OFUsICA1MTQ4NjQ0NzdVIH0sXG4tXHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxuLVx0eyAxNTYwMDg5NDAyVSwgODk3VSwgMjIzODU1MTI4N1UgfSxcbi1cdHsgICA3MDYxNjM2MVUsIDgyOVUsICAgMjI0ODMwOThVIH0sXG4tXHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxuLVx0eyAgIDIwMjIxMTkwVSwgODc5VSwgMTU2NDE1Mjk3MFUgfSxcbi1cdHsgIDUzOTQ0NDY1NFUsIDY4MlUsIDE4MzUxNDEyNTlVIH0sXG4tXHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxuLVx0eyAyMDE5Mjk1NTQ0VSwgNjQ1VSwgMzI4NjQzODkzMFUgfSxcbi1cdHsgIDQ2OTAyMzgzOFUsIDcxNlUsIDE2Mzc5MTgyMDJVIH0sXG4tXHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxuLVx0eyAgNDAwNjcyMDM2VSwgODA5VSwgNDI2NDIxMjc4NVUgfSxcbi1cdHsgIDQwNDcyMjI0OVUsIDk2NVUsIDI3MDQxMTY5OTlVIH0sXG4tXHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxuLVx0eyAgNTE5OTUzOTU0VSwgNjY3VSwgMjU3NDQzNjIzN1UgfSxcbi1cdHsgMTY1ODA3MTEyNlUsIDY5NFUsIDIyMTQ1Njk0OTBVIH0sXG4tXHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxuLVx0eyAgNjkwMTAzNjQ3VSwgOTY5VSwgMzcwMDc1ODA4M1UgfSxcbi1cdHsgMTAyOTQyNDc5OVUsIDkzN1UsIDM3ODc3NDY4NDFVIH0sXG4tXHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxuLVx0eyAxNTM1NDMyODg3VSwgOTk4VSwgICA0MjYxMDk0M1UgfSxcbi1cdHsgMTMzMDYzNTUzM1UsIDg1N1UsIDMwNDA4MDY1MDRVIH0sXG4tXHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxuLVx0eyAxMzIyNDExNTM3VSwgNjgwVSwgMzIyMzI1MDMyNFUgfSxcbi1cdHsgMTg3Nzg0Nzg5OFUsIDk0NVUsIDI5MTUxNDcxNDNVIH0sXG4tXHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxuLVx0eyAgODA1Njg3NTM2VSwgNzQ0VSwgNDAzMjI3NzkyMFUgfSxcbi1cdHsgMTk0ODA5MzIxMFUsIDYzM1UsIDEzNDY1OTc2ODRVIH0sXG4tXHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxuLVx0eyAgNjkwMjQxMzA0VSwgNzcwVSwgMTIwMTAzMTI5OFUgfSxcbi1cdHsgMTM2MDMwMjk2NVUsIDY5NlUsIDE2NjUzOTQ0NjFVIH0sXG4tXHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxuLVx0eyAgNDQ3MDkyMjUxVSwgNTAwVSwgMzQzODc0MzM3NVUgfSxcbi1cdHsgMTYxMzg2ODc5MVUsIDU5MlUsICA4Mjg1NDY4ODNVIH0sXG4tXHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxuLVx0eyAgNzI2NjkyODk5VSwgODEwVSwgMTY1Njg3Mjg2N1UgfSxcbi1cdHsgMTM2NDM0MDAyMVUsIDgzNlUsIDM3MTA1MTM0ODZVIH0sXG4tXHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxuLVx0eyAgNDA3OTgzOTY0VSwgOTIxVSwgIDcyODc2NzA1OVUgfSxcbi19O1xuLVxuLXN0YXRpYyB2b2lkIHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4te1xuLSNkZWZpbmUgTENHKHgpXHQgKCh4KSAqIDY5MDY5VSlcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xuLVx0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuLVx0c3RhdGUtXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMxKSwgICA4VSk7XG4tXHRzdGF0ZS1cdTAwM2VzMyA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczIpLCAgMTZVKTtcbi1cdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuLX1cbi1cbi1zdGF0aWMgaW50IF9faW5pdCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KHZvaWQpXG4te1xuLVx0aW50IGksIGosIGVycm9ycyA9IDAsIHJ1bnMgPSAwO1xuLVx0Ym9vbCBlcnJvciA9IGZhbHNlO1xuLVxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9yID0gdHJ1ZTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcilcbi1cdFx0cHJfd2FybihcInByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IGZhaWxlZFxcblwiKTtcbi1cdGVsc2Vcbi1cdFx0cHJfaW5mbyhcInByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcblwiKTtcbi1cbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDIpOyBpKyspIHtcbi1cdFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbi1cbi1cdFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbi1cdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqKyspXG4tXHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRpZiAodGVzdDJbaV0ucmVzdWx0ICE9IHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSlcbi1cdFx0XHRlcnJvcnMrKztcbi1cbi1cdFx0cnVucysrO1xuLVx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcnMpXG4tXHRcdHByX3dhcm4oXCJwcmFuZG9tOiAlZC8lZCBzZWxmIHRlc3RzIGZhaWxlZFxcblwiLCBlcnJvcnMsIHJ1bnMpO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwicHJhbmRvbTogJWQgc2VsZiB0ZXN0cyBwYXNzZWRcXG5cIiwgcnVucyk7XG4tXHRyZXR1cm4gMDtcbi19XG4tY29yZV9pbml0Y2FsbChwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KTtcbi0jZW5kaWZcbmRpZmYgLS1naXQgYS9saWIvdGVzdHMvTWFrZWZpbGUgYi9saWIvdGVzdHMvTWFrZWZpbGVcbmluZGV4IDYwMWRiYTRiN2Q5NjZkLi4zOWQyODNiMjZmZTJiNCAxMDA2NDRcbi0tLSBhL2xpYi90ZXN0cy9NYWtlZmlsZVxuKysrIGIvbGliL3Rlc3RzL01ha2VmaWxlXG5AQCAtNDksNSArNDksNiBAQCBvYmotJChDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVCkgKz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xuIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSArPSB1c2VyY29weV9rdW5pdC5vXG4gb2JqLSQoQ09ORklHX1VUSUxfTUFDUk9TX0tVTklUKSArPSB1dGlsX21hY3Jvc19rdW5pdC5vXG4gb2JqLSQoQ09ORklHX1JBVEVMSU1JVF9LVU5JVF9URVNUKSArPSB0ZXN0X3JhdGVsaW1pdC5vXG4rb2JqLSQoQ09ORklHX1BSQU5ET01fS1VOSVRfVEVTVCkgKz0gcmFuZG9tMzJfa3VuaXQub1xuIFxuIG9iai0kKENPTkZJR19URVNUX1JVTlRJTUVfTU9EVUxFKVx0XHQrPSBtb2R1bGUvXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi4wYjRhZjJiMDljMDExMlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcbkBAIC0wLDAgKzEsMTgyIEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbisvKlxuKyAqIFRlc3QgY2FzZXMgZm9yIHJhbmRvbTMyIGZ1bmN0aW9ucy5cbisgKi9cbitcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9wcmFuZG9tLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NrdW5pdC90ZXN0LmhcdTAwM2VcbitcbisvKiBwcmFuZG9tX3dhcm11cCgpIGlzIHN0YXRpYyBpbiBsaWIvcmFuZG9tMzIuYzsgZXhwb3NlZCBmb3IgdGVzdGluZyBvbmx5LiAqL1xuK3ZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpO1xuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XG4rXHR1MzIgc2VlZDtcbitcdHUzMiByZXN1bHQ7XG4rfSB0ZXN0MVtdID0ge1xuK1x0eyAxVSwgMzQ4NDM1MTY4NVUgfSxcbitcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4rXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxuK1x0eyA0VSwgIDk4NDg0NzI1NFUgfSxcbit9O1xuK1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJhbmRvbV90ZXN0MiB7XG4rXHR1MzIgc2VlZDtcbitcdHUzMiBpdGVyYXRpb247XG4rXHR1MzIgcmVzdWx0O1xuK30gdGVzdDJbXSA9IHtcbitcdC8qIFRlc3QgY2FzZXMgYWdhaW5zdCB0YXVzMTEzIGZyb20gR1NMIGxpYnJhcnkuICovXG4rXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxuK1x0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbitcdHsgMTU0NTU1NjI4NVUsIDk2MVUsIDE2MTU1Mzg4MzNVIH0sXG4rXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxuK1x0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbitcdHsgIDQxNjUyNjI5OFUsIDcwMFUsICA5MTYxNTY1NTJVIH0sXG4rXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxuK1x0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbitcdHsgMTUzOTgzNjk2NVUsIDcxNFUsIDM3ODMyNjU3MjVVIH0sXG4rXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxuK1x0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbitcdHsgMjEyMTIzMDcwMVUsIDkzMVUsIDIxMTU0NjcwMDFVIH0sXG4rXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxuK1x0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbitcdHsgMTk4OTE1OTEzNlUsIDgzM1UsIDExOTU3NjczMDVVIH0sXG4rXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxuK1x0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbitcdHsgMTc0MDc3NTYwNFUsIDkzOVUsIDEyNjQ5ODAzNzJVIH0sXG4rXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxuK1x0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbitcdHsgIDQ0MjA3OTkzMlUsIDU2MFUsIDM0NDAwMzIzNDNVIH0sXG4rXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxuK1x0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbitcdHsgMTE2MDQwNzUyOVUsIDUwN1UsICAyNDA5NDA4NThVIH0sXG4rXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxuK1x0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbitcdHsgMTk2MTgxNzEzMVUsIDcxOVUsICA2NjgyMzc2NTdVIH0sXG4rXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxuK1x0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbitcdHsgIDU4MjUzNzExOVUsIDc4MFUsIDExMjcyNzM3NzhVIH0sXG4rXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxuK1x0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbitcdHsgIDg0NzkxNzA1NFUsIDUwMFUsIDE3MTc0OTkwNzVVIH0sXG4rXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxuK1x0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbitcdHsgMTUxNjIzMjEyOVUsIDU1N1UsICAgIDMxNzM4NzdVIH0sXG4rXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxuK1x0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbitcdHsgMTUxMDA5MTcwMVUsIDcxN1UsICA2MzgxOTEyMjlVIH0sXG4rXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxuK1x0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbitcdHsgMTMxODQ4MDI3NFUsIDc3OVUsIDIwNzQyMzcwMjJVIH0sXG4rXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxuK1x0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbitcdHsgMjA4MTk3OTEyMVUsIDk4MVUsIDMwNDE0ODY0NDlVIH0sXG4rXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxuK1x0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbitcdHsgIDU5NTAwMzEwMlUsIDUzNFUsICAzNjY3OTQxMDlVIH0sXG4rXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxuK1x0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbitcdHsgIDcwNDA5NjUyMFUsIDUxOFUsIDQxMzk0OTM4NTJVIH0sXG4rXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxuK1x0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbitcdHsgIDg1NTU3Mjk5MlUsIDc2MVUsIDE0NzI5NzQ3ODdVIH0sXG4rXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxuK1x0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbitcdHsgIDY5MjcxMTk3M1UsIDc3OFUsIDEzODIzNjE5NDdVIH0sXG4rXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxuK1x0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbitcdHsgMTIyMjU5MjkyMFUsIDc0M1UsIDM0NjY3MjY2NjdVIH0sXG4rXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxuK1x0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbitcdHsgIDczNTY3NTk5M1UsIDk5MFUsIDEyOTQyMzk5ODlVIH0sXG4rXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxuK1x0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbitcdHsgIDM2ODIzNDcwMFUsIDczMVUsIDI5MTM4NzUwODRVIH0sXG4rXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxuK1x0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbitcdHsgMTMxNDk4NzI5N1UsIDg0MFUsIDE4MDExMTQxMzZVIH0sXG4rXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxuK1x0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbitcdHsgMTg0Mzc1NDQ5NlUsIDY1M1UsIDI1NjIwOTIxNTJVIH0sXG4rXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxuK1x0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbitcdHsgIDYwMDcwMjIwOVUsIDc1OFUsICA1ODQ5Nzk5ODZVIH0sXG4rXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxuK1x0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbitcdHsgIDQyMDQ4MDAzN1UsIDc0OVUsIDM0MzAwMTA4NjZVIH0sXG4rXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxuK1x0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbitcdHsgMjAxMjYwODY2OVUsIDUwNlUsIDMzNjI2Mjg5NzNVIH0sXG4rXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxuK1x0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbitcdHsgMTIyMzgwMDU1MFUsIDUzOVUsIDM5NTQyMjk1MTdVIH0sXG4rXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxuK1x0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbitcdHsgMTY0NjM1NjA5OVUsIDg3NFUsICA5NjU5ODgyODBVIH0sXG4rXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxuK1x0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbitcdHsgIDM5MjYwOTc0NFUsIDc4M1UsIDE2MzYwODMyOTVVIH0sXG4rXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxuK1x0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbitcdHsgMTIyMDA5MDk0NlUsIDc4MFUsIDEzMTY5MjI4MTJVIH0sXG4rXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxuK1x0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbitcdHsgIDUyMzQzMDk1MVUsIDU0OFUsIDI1NTIzOTIzMDRVIH0sXG4rXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxuK1x0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbitcdHsgMTk4NjI1NzcyOVUsIDkzMVUsICA5MzUwMTM5NjJVIH0sXG4rXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxuK307XG4rXG4rc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxuK3tcbisjZGVmaW5lIExDRyh4KVx0ICgoeCkgKiA2OTA2OVUpXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cbitcdHN0YXRlLVx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcbitcdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuK1x0c3RhdGUtXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMyKSwgIDE2VSk7XG4rXHRzdGF0ZS1cdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczMpLCAxMjhVKTtcbit9XG4rXG4rc3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3NlZWRfYm91bmRhcnkoc3RydWN0IGt1bml0ICp0ZXN0KVxuK3tcbitcdGludCBpO1xuK1x0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbitcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpKyspIHtcbitcdFx0cHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuK1x0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4rXHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4rXHR9XG4rfVxuK1xuK3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV90YXVzMTEzKHN0cnVjdCBrdW5pdCAqdGVzdClcbit7XG4rXHRpbnQgaSwgajtcbitcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XG4rXG4rXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSsrKSB7XG4rXHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbitcdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuK1xuK1x0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqKyspXG4rXHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuK1xuK1x0XHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDJbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSkpO1xuK1x0fVxuK31cbitcbitzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgcHJhbmRvbV90ZXN0X2Nhc2VzW10gPSB7XG4rXHRLVU5JVF9DQVNFKHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KSxcbitcdEtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3RhdXMxMTMpLFxuK1x0e31cbit9O1xuK1xuK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgcHJhbmRvbV90ZXN0X3N1aXRlID0ge1xuK1x0Lm5hbWUgPSBcInByYW5kb21cIixcbitcdC50ZXN0X2Nhc2VzID0gcHJhbmRvbV90ZXN0X2Nhc2VzLFxuK307XG4rXG4ra3VuaXRfdGVzdF9zdWl0ZShwcmFuZG9tX3Rlc3Rfc3VpdGUpO1xuK1xuK01PRFVMRV9ERVNDUklQVElPTihcIktVbml0IHRlc3QgZm9yIHByYW5kb21cIik7XG4rTU9EVUxFX0xJQ0VOU0UoXCJHUExcIik7XG4rTU9EVUxFX0lNUE9SVF9OUyhcIkVYUE9SVEVEX0ZPUl9LVU5JVF9URVNUSU5HXCIpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NDA6NTUuNDQyMzg3ODg5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3NjMwMjIzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLVW5pdCBUZXN0IENvbnZlcnNpb24gZm9yIHRoZSBSYW5kb20zMiBTZWxmLVRlc3QqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGp1c3QgYmVlbiBsb29raW5nIG92ZXIgdGhpcyBwYXRjaC4gSXQncyBlc3NlbnRpYWxseSBhIHN0cmFpZ2h0Zm9yd2FyZCBjb252ZXJzaW9uIG9mIHRoZSBleGlzdGluZyBgcmFuZG9tMzJgIHNlbGYtdGVzdCB0byBhIEtVbml0IHRlc3QgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgdGFrZWF3YXkgaXMgdGhhdCB0aGlzIGlzIGEgKnB1cmVseSogcmVmYWN0b3JpbmcgZWZmb3J0IGZvciB0ZXN0aW5nOyB0aGVyZSdzIG5vIGFsdGVyYXRpb24gdG8gdGhlIHVuZGVybHlpbmcgUFJORyBsb2dpYyBpdHNlbGYsIHdoaWNoIGlzIHdoYXQgSSdtIG1vc3QgY29uY2VybmVkIHdpdGggZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuXG5cblNwZWNpZmljYWxseSwgaXQgbG9va3MgbGlrZSBgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUYCBpcyBnZXR0aW5nIHJlbW92ZWQsIGFuZCBpbiBpdHMgcGxhY2Ugd2UncmUgc2VlaW5nIGBDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUYCBpbnRyb2R1Y2VkLiBUaGUgdGVzdCBjb2RlIGl0c2VsZiBoYXMgYmVlbiBtb3ZlZCBvdXQgb2YgYGxpYi9yYW5kb20zMi5jYCBhbmQgaW50byBpdHMgb3duIGRlZGljYXRlZCBLVW5pdCB0ZXN0IGZpbGUsIGBsaWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY2AuIEltcG9ydGFudGx5LCB0aGV5J3ZlIG1vZGlmaWVkIGBsaWIvcmFuZG9tMzIuY2AgdG8gZXhwb3NlIGBwcmFuZG9tX3dhcm11cGAgc3BlY2lmaWNhbGx5IGZvciBLVW5pdCB1c2FnZS4gVGhpcyBpcyBhIHNlbnNpYmxlIG1vdmUuXG5cbkxldCBtZSBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9mIHRoZSBjaGFuZ2VzLi4uIFllcCwgYXMgZXhwZWN0ZWQ6IGBsaWIvS2NvbmZpZ2AgaGFzIHRoZSBgUkFORE9NMzJfU0VMRlRFU1RgIHJlbW92YWwsIGBsaWIvS2NvbmZpZy5kZWJ1Z2Agbm93IGluY2x1ZGVzIHRoZSBgUFJBTkRPTV9LVU5JVF9URVNUYC4gVGhlIG1haW4gYHJhbmRvbTMyLmNgIGZpbGUgaXMgYmVpbmcgY2xlYW5lZCB1cCDigJMgYHByYW5kb21fd2FybXVwYCBpcyBleHBvc2VkLCBidXQgdGhlIG9sZCBzZWxmdGVzdCBmdW5jdGlvbnMgYW5kIGRhdGEgYXJlIG5vdyBnb25lLiBBbmQgb2YgY291cnNlLCB0aGUgYGxpYi90ZXN0cy9NYWtlZmlsZWAgaGFzIGJlZW4gdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBuZXcgYHJhbmRvbTMyX2t1bml0Lm9gIGFuZCB0aGUgYHJhbmRvbTMyX2t1bml0LmNgIGZpbGUgaXRzZWxmLlxuXG5TaW5jZSB0aGlzIGlzIG1lcmVseSBhIHRlc3QgcmVzdHJ1Y3R1cmluZywgYW5kIHRoZSBjb3JlIFBSTkcgZnVuY3Rpb25hbGl0eSBpcyB1bnRvdWNoZWQsIEknbSBjb25maWRlbnQgaW4gYXNzZXNzaW5nIHRoaXMgYXMgKipub3QqKiBpbnRyb2R1Y2luZyBhbnkgbmV3IGZ1bmN0aW9uYWwga2VybmVsIGxvZ2ljIHRoYXQgd291bGQgcmVxdWlyZSBmdXp6aW5nLiBTbywgSSB3aWxsIGJlIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE2MTksIk91dHB1dFRva2VucyI6NjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo0MTowMS41MTg2OTIyNDhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNvbnZlcnRzIGFuIGV4aXN0aW5nIHJhbmRvbTMyIHNlbGYtdGVzdCBpbnRvIGEgS1VuaXQgdGVzdC4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGxvZ2ljIG9yIGludHJvZHVjZSBuZXcgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb252ZXJ0cyBhbiBleGlzdGluZyByYW5kb20zMiBzZWxmLXRlc3QgaW50byBhIEtVbml0IHRlc3QuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBsb2dpYyBvciBpbnRyb2R1Y2UgbmV3IGZlYXR1cmVzIHRoYXQgcmVxdWlyZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflownbjlt[1] Phase: Running StartedAt: 2026-07-03 05:41:52 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownbjlt[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-03 05:41:52 +0000 UTC FinishedAt: 2026-07-03 05:41:59 +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,}