Name: series-workflowhmb4f Phase: Failed StartedAt: 2026-09-02 06:35:34 +0000 UTC FinishedAt: 2026-09-02 06:51:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhmb4f[0] Phase: Succeeded StartedAt: 2026-09-02 06:35:34 +0000 UTC FinishedAt: 2026-09-02 06:51:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhmb4f[0].run-triage Phase: Succeeded StartedAt: 2026-09-02 06:35:34 +0000 UTC FinishedAt: 2026-09-02 06:51:24 +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+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQ1ZDc0Nzc4ZDJlNWY3YWM3ZTM4NWMzNTU0Y2I1MmViZGU3ODA5ZGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA2OjUwOjMyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5pbmRleCA2NDYxOWU5YTcwNGRkLi5jNTkyMDFhZGVkMjZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY1xuQEAgLTc4NCwxMyAmIzQzOzc4NCwxNiBAQCBzdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4gXHRcdGludCBpLCBxaWQgPSBxIC0gXHUwMDI2cWRtYS1cdTAwM2VxX3J4WzBdO1xuIFx0XHRpbnQgaW50cl9yZWcgPSBxaWQgXHUwMDNjIFJYX0RPTkVfSElHSF9PRkZTRVQgPyBRRE1BX0lOVF9SRUdfSURYMVxuIFx0XHRcdFx0XHRcdFx0IDogUURNQV9JTlRfUkVHX0lEWDI7XG4mIzQzO1x0XHR1MzIgaXJxX2lkID0gcWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVDtcbiYjNDM7XHRcdHUzMiBpbnRyX21hc2sgPSBCSVQoaXJxX2lkKSB8XG4mIzQzO1x0XHRcdFx0QklUKGlycV9pZCAmIzQzOyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKTtcbiBcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShxZG1hLVx1MDAzZWlycV9iYW5rcyk7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdFx0aWYgKCEoQklUKHFpZCkgXHUwMDI2IFJYX0lSUV9CQU5LX1BJTl9NQVNLKGkpKSlcbiBcdFx0XHRcdGNvbnRpbnVlO1xuIFxuIFx0XHRcdGFpcm9oYV9xZG1hX2lycV9lbmFibGUoXHUwMDI2cWRtYS1cdTAwM2VpcnFfYmFua3NbaV0sIGludHJfcmVnLFxuLVx0XHRcdFx0XHQgICAgICAgQklUKHFpZCAlIFJYX0RPTkVfSElHSF9PRkZTRVQpKTtcbiYjNDM7XHRcdFx0XHRcdCAgICAgICBpbnRyX21hc2spO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtMTQ2OCwxNiAmIzQzOzE0NzEsMTkgQEAgc3RhdGljIGlycXJldHVybl90IGFpcm9oYV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4gXHRpZiAoIXRlc3RfYml0KERFVl9TVEFURV9JTklUSUFMSVpFRCwgXHUwMDI2cWRtYS1cdTAwM2VldGgtXHUwMDNlc3RhdGUpKVxuIFx0XHRyZXR1cm4gSVJRX05PTkU7XG4gXG4tXHRyeF9pbnRyMSA9IGludHJbMV0gXHUwMDI2IFJYX0RPTkVfTE9XX0lOVF9NQVNLO1xuJiM0MztcdHJ4X2ludHIxID0gaW50clsxXSBcdTAwMjYgKFJYX0RPTkVfTE9XX0lOVF9NQVNLIHwgUlhfTk9fQ1BVX0RTQ1BfTE9XX0lOVF9NQVNLKTtcbiBcdGlmIChyeF9pbnRyMSkge1xuIFx0XHRhaXJvaGFfcWRtYV9pcnFfZGlzYWJsZShpcnFfYmFuaywgUURNQV9JTlRfUkVHX0lEWDEsIHJ4X2ludHIxKTtcbi1cdFx0cnhfaW50cl9tYXNrIHw9IHJ4X2ludHIxO1xuJiM0MztcdFx0cnhfaW50cl9tYXNrIHw9IChyeF9pbnRyMSBcdTAwMjYgUlhfRE9ORV9MT1dfSU5UX01BU0spIHxcbiYjNDM7XHRcdFx0XHRSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0socnhfaW50cjEpO1xuIFx0fVxuIFxuLVx0cnhfaW50cjIgPSBpbnRyWzJdIFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0s7XG4mIzQzO1x0cnhfaW50cjIgPSBpbnRyWzJdIFx1MDAyNiAoUlhfRE9ORV9ISUdIX0lOVF9NQVNLIHwgUlhfTk9fQ1BVX0RTQ1BfSElHSF9JTlRfTUFTSyk7XG4gXHRpZiAocnhfaW50cjIpIHtcbiBcdFx0YWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoaXJxX2JhbmssIFFETUFfSU5UX1JFR19JRFgyLCByeF9pbnRyMik7XG4tXHRcdHJ4X2ludHJfbWFzayB8PSAocnhfaW50cjIgXHUwMDNjXHUwMDNjIDE2KTtcbiYjNDM7XHRcdHJ4X2ludHJfbWFzayB8PSAoKHJ4X2ludHIyIFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0spIFx1MDAzY1x1MDAzY1xuJiM0MztcdFx0XHRcdCBSWF9ET05FX0hJR0hfT0ZGU0VUKSB8XG4mIzQzO1x0XHRcdFx0KHJ4X2ludHIyIFx1MDAyNiBSWF9OT19DUFVfRFNDUF9ISUdIX0lOVF9NQVNLKTtcbiBcdH1cbiBcbiBcdGZvciAoaSA9IDA7IHJ4X2ludHJfbWFzayBcdTAwMjZcdTAwMjYgaSBcdTAwM2MgQVJSQVlfU0laRShxZG1hLVx1MDAzZXFfcngpOyBpJiM0MzsmIzQzOykge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oXG5pbmRleCBmYTlhOGVkY2UyMmZmLi43ZmMzN2YxNTlkMmI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxuQEAgLTQxLDkgJiM0Mzs0MSwxMCBAQFxuICNkZWZpbmUgVFhfRFNDUF9OVU1cdFx0XHQxMDI0XG4gI2RlZmluZSBSWF9EU0NQX05VTShfbilcdFx0XHRcXFxuIFx0KChfbikgPT0gIDIgPyAxMjggOlx0XHRcXFxuJiM0MztcdCAoX24pID09ICA0ID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDExID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDE1ID8gMTI4IDpcdFx0XFxcbi1cdCAoX24pID09ICAwID8gMTAyNCA6IDE2KVxuJiM0MztcdCAoX24pID09ICAwID8gMTAyNCA6IDMyKVxuIFxuICNkZWZpbmUgUFNFX1JTVl9QQUdFU1x0XHRcdDEyOFxuICNkZWZpbmUgUFNFX1FVRVVFX1JTVl9QQUdFU1x0XHQ2NFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmhcbmluZGV4IDQ0MmI0OGM5Yjk5MWUuLmJkZTNkNTk5ZDhiN2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmhcbkBAIC01NDksNiAmIzQzOzU0OSw4IEBAXG4gI2RlZmluZSBJTlRfUlgxX01BU0soX24pXHRcdFx0XHRcdFx0XHRcXFxuIFx0KCgoKF9uKSBcdTAwM2NcdTAwM2MgUlhfTk9fQ1BVX0RTQ1BfTE9XX09GRlNFVCkgXHUwMDI2IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSykgfFx0XFxcbiBcdCAoUlhfRE9ORV9MT1dfSU5UX01BU0sgXHUwMDI2IChfbikpKVxuJiM0MzsjZGVmaW5lIFJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhfbilcdFx0XHRcdFx0XFxcbiYjNDM7XHQoKChfbikgXHUwMDI2IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSykgXHUwMDNlXHUwMDNlIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpXG4gXG4gLyogUURNQV9DU1JfSU5UX0VOQUJMRTMgKi9cbiAjZGVmaW5lIFJYMzFfTk9fQ1BVX0RTQ1BfSU5UX01BU0tcdEJJVCgzMSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgQWlyb2hhIFNvQ3MgKGUuZy4sIEVONzU4MSkuIFRoaXMgaGFyZHdhcmUgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDVkNzQ3NzhkMmU1ZjdhYzdlMzg1YzM1NTRjYjUyZWJkZTc4MDlkZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgU2VwIDIgMDY6NTA6MzIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYwppbmRleCA2NDYxOWU5YTcwNGRkLi5jNTkyMDFhZGVkMjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMKQEAgLTc4NCwxMyAmIzQzOzc4NCwxNiBAQCBzdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJCWludCBpLCBxaWQgPSBxIC0gJmFtcDtxZG1hLSZndDtxX3J4WzBdOwogCQlpbnQgaW50cl9yZWcgPSBxaWQgJmx0OyBSWF9ET05FX0hJR0hfT0ZGU0VUID8gUURNQV9JTlRfUkVHX0lEWDEKIAkJCQkJCQkgOiBRRE1BX0lOVF9SRUdfSURYMjsKJiM0MzsJCXUzMiBpcnFfaWQgPSBxaWQgJSBSWF9ET05FX0hJR0hfT0ZGU0VUOwomIzQzOwkJdTMyIGludHJfbWFzayA9IEJJVChpcnFfaWQpIHwKJiM0MzsJCQkJQklUKGlycV9pZCAmIzQzOyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKTsKIAogCQlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRShxZG1hLSZndDtpcnFfYmFua3MpOyBpJiM0MzsmIzQzOykgewogCQkJaWYgKCEoQklUKHFpZCkgJmFtcDsgUlhfSVJRX0JBTktfUElOX01BU0soaSkpKQogCQkJCWNvbnRpbnVlOwogCiAJCQlhaXJvaGFfcWRtYV9pcnFfZW5hYmxlKCZhbXA7cWRtYS0mZ3Q7aXJxX2JhbmtzW2ldLCBpbnRyX3JlZywKLQkJCQkJICAgICAgIEJJVChxaWQgJSBSWF9ET05FX0hJR0hfT0ZGU0VUKSk7CiYjNDM7CQkJCQkgICAgICAgaW50cl9tYXNrKTsKIAkJfQogCX0KIApAQCAtMTQ2OCwxNiAmIzQzOzE0NzEsMTkgQEAgc3RhdGljIGlycXJldHVybl90IGFpcm9oYV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpCiAJaWYgKCF0ZXN0X2JpdChERVZfU1RBVEVfSU5JVElBTElaRUQsICZhbXA7cWRtYS0mZ3Q7ZXRoLSZndDtzdGF0ZSkpCiAJCXJldHVybiBJUlFfTk9ORTsKIAotCXJ4X2ludHIxID0gaW50clsxXSAmYW1wOyBSWF9ET05FX0xPV19JTlRfTUFTSzsKJiM0MzsJcnhfaW50cjEgPSBpbnRyWzFdICZhbXA7IChSWF9ET05FX0xPV19JTlRfTUFTSyB8IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSyk7CiAJaWYgKHJ4X2ludHIxKSB7CiAJCWFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMSwgcnhfaW50cjEpOwotCQlyeF9pbnRyX21hc2sgfD0gcnhfaW50cjE7CiYjNDM7CQlyeF9pbnRyX21hc2sgfD0gKHJ4X2ludHIxICZhbXA7IFJYX0RPTkVfTE9XX0lOVF9NQVNLKSB8CiYjNDM7CQkJCVJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhyeF9pbnRyMSk7CiAJfQogCi0JcnhfaW50cjIgPSBpbnRyWzJdICZhbXA7IFJYX0RPTkVfSElHSF9JTlRfTUFTSzsKJiM0MzsJcnhfaW50cjIgPSBpbnRyWzJdICZhbXA7IChSWF9ET05FX0hJR0hfSU5UX01BU0sgfCBSWF9OT19DUFVfRFNDUF9ISUdIX0lOVF9NQVNLKTsKIAlpZiAocnhfaW50cjIpIHsKIAkJYWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoaXJxX2JhbmssIFFETUFfSU5UX1JFR19JRFgyLCByeF9pbnRyMik7Ci0JCXJ4X2ludHJfbWFzayB8PSAocnhfaW50cjIgJmx0OyZsdDsgMTYpOwomIzQzOwkJcnhfaW50cl9tYXNrIHw9ICgocnhfaW50cjIgJmFtcDsgUlhfRE9ORV9ISUdIX0lOVF9NQVNLKSAmbHQ7Jmx0OwomIzQzOwkJCQkgUlhfRE9ORV9ISUdIX09GRlNFVCkgfAomIzQzOwkJCQkocnhfaW50cjIgJmFtcDsgUlhfTk9fQ1BVX0RTQ1BfSElHSF9JTlRfTUFTSyk7CiAJfQogCiAJZm9yIChpID0gMDsgcnhfaW50cl9tYXNrICZhbXA7JmFtcDsgaSAmbHQ7IEFSUkFZX1NJWkUocWRtYS0mZ3Q7cV9yeCk7IGkmIzQzOyYjNDM7KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaAppbmRleCBmYTlhOGVkY2UyMmZmLi43ZmMzN2YxNTlkMmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgKQEAgLTQxLDkgJiM0Mzs0MSwxMCBAQAogI2RlZmluZSBUWF9EU0NQX05VTQkJCTEwMjQKICNkZWZpbmUgUlhfRFNDUF9OVU0oX24pCQkJXAogCSgoX24pID09ICAyID8gMTI4IDoJCVwKJiM0MzsJIChfbikgPT0gIDQgPyAxMjggOgkJXAogCSAoX24pID09IDExID8gMTI4IDoJCVwKIAkgKF9uKSA9PSAxNSA/IDEyOCA6CQlcCi0JIChfbikgPT0gIDAgPyAxMDI0IDogMTYpCiYjNDM7CSAoX24pID09ICAwID8gMTAyNCA6IDMyKQogCiAjZGVmaW5lIFBTRV9SU1ZfUEFHRVMJCQkxMjgKICNkZWZpbmUgUFNFX1FVRVVFX1JTVl9QQUdFUwkJNjQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmgKaW5kZXggNDQyYjQ4YzliOTkxZS4uYmRlM2Q1OTlkOGI3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmgKQEAgLTU0OSw2ICYjNDM7NTQ5LDggQEAKICNkZWZpbmUgSU5UX1JYMV9NQVNLKF9uKQkJCQkJCQlcCiAJKCgoKF9uKSAmbHQ7Jmx0OyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKSAmYW1wOyBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIHwJXAogCSAoUlhfRE9ORV9MT1dfSU5UX01BU0sgJmFtcDsgKF9uKSkpCiYjNDM7I2RlZmluZSBSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0soX24pCQkJCQlcCiYjNDM7CSgoKF9uKSAmYW1wOyBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spICZndDsmZ3Q7IFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpCiAKIC8qIFFETUFfQ1NSX0lOVF9FTkFCTEUzICovCiAjZGVmaW5lIFJYMzFfTk9fQ1BVX0RTQ1BfSU5UX01BU0sJQklUKDMxKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzQ4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIGNvbnNjaW91c25lc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNgLCBgYWlyb2hhX2V0aC5oYCwgYW5kIGBhaXJvaGFfcmVncy5oYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7T2theSwgQWlyb2hhLiBSaWdodC4gTGV0JiMzOTtzIGdldCBhIGhhbmRsZSBvbiB0aGlzLiYjMzQ7IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQga2luZCBvZiBiZWFzdCB0aGlzIEFpcm9oYSBFdGhlcm5ldCBkcml2ZXIgKmlzKi4gSXMgdGhpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgYSBzcGVjaWZpYyBTb0M/IElzIGl0IGRlYWxpbmcgd2l0aCBhIHBoeXNpY2FsIEV0aGVybmV0IGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBkaXJlY3RseSBvbnRvIGFuIEFpcm9oYSBjaGlwPyBQZXJoYXBzIGl0JiMzOTtzIGEgUENJZSBiYXNlZCBzb2x1dGlvbj8gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoIHRoZSB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZS4gVGltZSB0byBlbXBsb3kgc29tZSBjbGFzc2ljIHRlY2huaXF1ZXMuIEkmIzM5O2xsIHByb2JhYmx5IHN0YXJ0IHdpdGggYSBxdWljayBgcmVhZC1maWxlYCBvciBgZ3JlcHBlcmAgc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gR2V0IGEgZmVlbCBmb3IgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIHRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlciwgb3IgYW55IGNsdWVzIGFib3V0IHRoZSBoYXJkd2FyZSBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoLiBHb3R0YSBidWlsZCB0aGF0IG1lbnRhbCBtb2RlbCwgcXVpY2tseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthaXJvaGEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzNjc1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19ORVRfQUlST0hBKSAmIzQzOz0gYWlyb2hhLWV0aC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6NzphaXJvaGEtZXRoLXkgOj0gYWlyb2hhX2V0aC5vIGFpcm9oYV9wcGUub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjg6YWlyb2hhLWV0aC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0FJUk9IQV9OUFUpICYjNDM7PSBhaXJvaGFfbnB1Lm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzojaW5jbHVkZSBcJiMzNDthaXJvaGFfcmVncy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE4OiNpbmNsdWRlIFwmIzM0O2Fpcm9oYV9ldGguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA6dTMyIGFpcm9oYV9ycih2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNTp2b2lkIGFpcm9oYV93cih2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMDp1MzIgYWlyb2hhX3Jtdyh2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMyOlx0dmFsIHw9IChhaXJvaGFfcnIoYmFzZSwgb2Zmc2V0KSBcdTAwMjYgfm1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMzpcdGFpcm9oYV93cihiYXNlLCBvZmZzZXQsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM4OnN0YXRpYyB2b2lkIGFpcm9oYV9xZG1hX3NldF9pcnFtYXNrKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOS1cdFx0XHRcdCAgICBpbnQgaW5kZXgsIHUzMiBjbGVhciwgdTMyIHNldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MTpcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSA9IGlycV9iYW5rLVx1MDAzZXFkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQyLVx0aW50IGJhbmsgPSBpcnFfYmFuayAtIFx1MDAyNnFkbWEtXHUwMDNlaXJxX2JhbmtzWzBdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEtXHRpcnFfYmFuay1cdTAwM2VpcnFtYXNrW2luZGV4XSB8PSBzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUyOlx0YWlyb2hhX3FkbWFfd3IocWRtYSwgUkVHX0lOVF9FTkFCTEUoYmFuaywgaW5kZXgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01My1cdFx0ICAgICAgIGlycV9iYW5rLVx1MDAzZWlycW1hc2tbaW5kZXhdKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3Olx0YWlyb2hhX3FkbWFfcnIocWRtYSwgUkVHX0lOVF9FTkFCTEUoYmFuaywgaW5kZXgpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjI6c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfaXJxX2VuYWJsZShzdHJ1Y3QgYWlyb2hhX2lycV9iYW5rICppcnFfYmFuayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjMtXHRcdFx0XHQgICBpbnQgaW5kZXgsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY1Olx0YWlyb2hhX3FkbWFfc2V0X2lycW1hc2soaXJxX2JhbmssIGluZGV4LCAwLCBtYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjYtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Njg6c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoc3RydWN0IGFpcm9oYV9pcnFfYmFuayAqaXJxX2JhbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY5LVx0XHRcdFx0ICAgIGludCBpbmRleCwgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTcwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzE6XHRhaXJvaGFfcWRtYV9zZXRfaXJxbWFzayhpcnFfYmFuaywgaW5kZXgsIG1hc2ssIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03Mi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTc1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzYtXHR1OCByZWZfYWRkcltFVEhfQUxFTl0gX19hbGlnbmVkKDIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NzpcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03OC1cdHUzMiByZWcsIHZhbCwgbG1pbiwgbG1heDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtODctXHRcdGludCBqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTItXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cdTAwM2VkZXZzKTsgaiYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6OTM6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICppdGVyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTQtXHRcdFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDA6XHRcdFx0aWYgKGFpcm9oYV9pc19sYW5fZ2RtX2RldihpdGVyX2RldikgIT1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTAxOlx0XHRcdCAgICBhaXJvaGFfaXNfbGFuX2dkbV9kZXYoZGV2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTAyLVx0XHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEzNDpcdHJlZyA9IGFpcm9oYV9pc19sYW5fZ2RtX2RldihkZXYpID8gUkVHX0ZFX0xBTl9NQUNfSCA6IFJFR19GRV9XQU5fTUFDX0g7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEzNS1cdHZhbCA9IChhZGRyWzBdIFx1MDAzY1x1MDAzYyAxNikgfCAoYWRkclsxXSBcdTAwM2NcdTAwM2MgOCkgfCBhZGRyWzJdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMzY6XHRhaXJvaGFfZmVfd3IoZXRoLCByZWcsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTM4Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX01BQ19MTUlOKHJlZyksIGxtaW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMzk6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfTUFDX0xNQVgocmVnKSwgbG1heCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE0MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTQxOlx0YWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oZGV2LCBhZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNDY6c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNDctXHRcdFx0XHRcdHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE0OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE0OTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fT0NGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTAtXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX09DRlFfTUFTSywgdmFsKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1MTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fTUNGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTItXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX01DRlFfTUFTSywgdmFsKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1MzpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fQkNGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTQtXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX0JDRlFfTUFTSywgdmFsKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1NTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fVUNGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTYtXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX1VDRlFfTUFTSywgdmFsKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1OTpzdGF0aWMgaW50IGFpcm9oYV9zZXRfdmlwX2Zvcl9nZG1fcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2MTpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTYyOlx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2My1cdHUzMiB2aXBfcG9ydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2Ni1cdGlmIChlbmFibGUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTY3Olx0XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX1ZJUF9QT1JUX0VOLCB2aXBfcG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2ODpcdFx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9JRkNfUE9SVF9FTiwgdmlwX3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjktXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzA6XHRcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9WSVBfUE9SVF9FTiwgdmlwX3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzE6XHRcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9JRkNfUE9SVF9FTiwgdmlwX3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzItXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE3NzpzdGF0aWMgdm9pZCBhaXJvaGFfZmVfbWFjY3JfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTgxLVx0Zm9yIChwID0gMTsgcCBcdTAwM2M9IEFSUkFZX1NJWkUoZXRoLVx1MDAzZXBvcnRzKTsgcCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTgyOlx0XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0dETV9GV0RfQ0ZHKHApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xODMtXHRcdFx0ICAgICAgR0RNX1RDUF9DS1NVTV9NQVNLIHwgR0RNX1VEUF9DS1NVTV9NQVNLIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTg0LVx0XHRcdCAgICAgIEdETV9JUDRfQ0tTVU1fTUFTSyB8IEdETV9EUk9QX0NSQ19FUlJfTUFTSyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE4NTpcdFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19HRE1fTEVOX0NGRyhwKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTg2LVx0XHRcdCAgICAgIEdETV9TSE9SVF9MRU5fTUFTSyB8IEdETV9MT05HX0xFTl9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9WTEFOX0NUUkwoMSksIENETV9WTEFOX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5Mi1cdFx0ICAgICAgRklFTERfUFJFUChDRE1fVkxBTl9NQVNLLCAweDgxMDApKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTQ6XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX0NQT1JUX0NGRywgRkVfQ1BPUlRfUEFEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTc6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3ZpcF9zZXR1cChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTk6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMyksIEVUSF9QX1BQUF9ESVNDKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjAwOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigzKSwgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTig0KSwgUFBQX0xDUCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oNCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwNC1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDYpLCBQUFBfSVBDUCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwODpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oNiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOS1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjEyOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDcpLCBQUFBfQ0hBUCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oNyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNC1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNy1cdC8qIEJPT1RQICgweDQzKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTg6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oOCksIDB4NDMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTk6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjAtXHRcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX1NQX0VOX01BU0sgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIzLVx0LyogQk9PVFAgKDB4NDQpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNDpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTig5KSwgMHg0NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNTpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oOSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNi1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjktXHQvKiBJU0FLTVAgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjMwOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDEwKSwgMHgxZjQwMWY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjMxOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxMCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIzMi1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fRFBfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIzNTpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigxMSksIFBQUF9JUFY2Q1ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMzY6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDExKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjM3LVx0XHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgRklFTERfUFJFUChQQVROX1RZUEVfTUFTSywgMSkgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQwLVx0LyogREhDUHY2ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0MTpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigxMiksIDB4MjIyMDIyMyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0MjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oMTIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDMtXHRcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0RQX0VOX01BU0sgfCBQQVROX1NQX0VOX01BU0sgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNDY6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMTkpLCBQUFBfUEFQKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjQ3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxOSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0OC1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1MS1cdC8qIEVUSC1cdTAwM2VFVEhfUF8xOTA1ICgweDg5M2EpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1MjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigyMCksIDB4ODkzYSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1MzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oMjApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTQtXHRcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1NjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigyMSksIEVUSF9QX0xMRFApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNTc6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDIxKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjU4LVx0XHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgUEFUTl9FTl9NQVNLKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjYxOnN0YXRpYyB1MzIgYWlyb2hhX2ZlX2dldF9wc2VfcXVldWVfcnN2X3BhZ2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2Mi1cdFx0XHRcdFx0ICAgICB1MzIgcG9ydCwgdTMyIHF1ZXVlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNjQ6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9RVUVVRV9DRkdfV1IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2NS1cdFx0ICAgICAgUFNFX0NGR19QT1JUX0lEX01BU0sgfCBQU0VfQ0ZHX1FVRVVFX0lEX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2OTpcdHJldHVybiBhaXJvaGFfZmVfZ2V0KGV0aCwgUkVHX0ZFX1BTRV9RVUVVRV9DRkdfVkFMLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzAtXHRcdFx0ICAgICBQU0VfQ0ZHX09RX1JTVl9NQVNLKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjczOnN0YXRpYyB2b2lkIGFpcm9oYV9mZV9zZXRfcHNlX3F1ZXVlX3Jzdl9wYWdlcyhzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzQtXHRcdFx0XHRcdCAgICAgIHUzMiBwb3J0LCB1MzIgcXVldWUsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI3NjpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX1FVRVVFX0NGR19WQUwsIFBTRV9DRkdfT1FfUlNWX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3Ny1cdFx0ICAgICAgRklFTERfUFJFUChQU0VfQ0ZHX09RX1JTVl9NQVNLLCB2YWwpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjc4Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfUVVFVUVfQ0ZHX1dSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzktXHRcdCAgICAgIFBTRV9DRkdfUE9SVF9JRF9NQVNLIHwgUFNFX0NGR19RVUVVRV9JRF9NQVNLIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjg2OnN0YXRpYyB1MzIgYWlyb2hhX2ZlX2dldF9wc2VfYWxsX3JzdihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyODg6XHRyZXR1cm4gYWlyb2hhX2ZlX2dldChldGgsIFJFR19GRV9QU0VfQlVGX1NFVCwgUFNFX0FMTFJTVl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjg5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyOTE6c3RhdGljIGludCBhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3Yoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkyLVx0XHRcdFx0ICAgIHUzMiBwb3J0LCB1MzIgcXVldWUsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI5NDpcdHUzMiBvcmlnX3ZhbCA9IGFpcm9oYV9mZV9nZXRfcHNlX3F1ZXVlX3Jzdl9wYWdlcyhldGgsIHBvcnQsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjk1LVx0dTMyIHRtcCwgYWxsX3JzdiwgZnFfbGltaXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjk3Olx0YWlyb2hhX2ZlX3NldF9wc2VfcXVldWVfcnN2X3BhZ2VzKGV0aCwgcG9ydCwgcXVldWUsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjk5LVx0LyogbW9kaWZ5IGFsbCByc3YgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAwOlx0YWxsX3JzdiA9IGFpcm9oYV9mZV9nZXRfcHNlX2FsbF9yc3YoZXRoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzAxLVx0YWxsX3JzdiAmIzQzOz0gKHZhbCAtIG9yaWdfdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAyOlx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfQlVGX1NFVCwgUFNFX0FMTFJTVl9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDMtXHRcdCAgICAgIEZJRUxEX1BSRVAoUFNFX0FMTFJTVl9NQVNLLCBhbGxfcnN2KSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDUtXHQvKiBtb2RpZnkgaHRoZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMDY6XHRmcV9saW1pdCA9IGFpcm9oYV9mZV9nZXQoZXRoLCBQU0VfRlFfQ0ZHLCBQU0VfRlFfTElNSVRfTUFTSyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwNy1cdHRtcCA9IGZxX2xpbWl0IC0gYWxsX3JzdiAtIDB4MjA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwODpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfUFNFX1NIQVJFX1VTRURfVEhELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDktXHRcdCAgICAgIFBTRV9TSEFSRV9VU0VEX0hUSERfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMi1cdHRtcCA9IGZxX2xpbWl0IC0gYWxsX3JzdiAtIDB4MTAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTM6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9TSEFSRV9VU0VEX1RIRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE0LVx0XHQgICAgICBQU0VfU0hBUkVfVVNFRF9NVEhEX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTYtXHR0bXAgPSAoMyAqIHRtcCkgXHUwMDNlXHUwMDNlIDI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX0JVRl9TRVQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxOC1cdFx0ICAgICAgUFNFX1NIQVJFX1VTRURfTFRIRF9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjQ6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3BzZV9wb3J0c19pbml0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0MTpcdGlmIChhaXJvaGFfcHBlX2lzX2VuYWJsZWQoZXRoLCAxKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDItXHRcdHUzMiBhbGxfcnN2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQ0LVx0XHQvKiBodyBtaXNzZXMgUFBFMiBvcSByc3YgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQ1Olx0XHRhbGxfcnN2ID0gYWlyb2hhX2ZlX2dldF9wc2VfYWxsX3JzdihldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDYtXHRcdGFsbF9yc3YgJiM0Mzs9IFBTRV9SU1ZfUEFHRVMgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDctXHRcdFx0ICAgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9QUEUyXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQ4Olx0XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9CVUZfU0VULCBQU0VfQUxMUlNWX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0OS1cdFx0XHQgICAgICBGSUVMRF9QUkVQKFBTRV9BTExSU1ZfTUFTSywgYWxsX3JzdikpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzUzLVx0Zm9yIChxID0gMDsgcSBcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9DRE0xXTsgcSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM1NDpcdFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNMSwgcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU1LVx0XHRcdFx0XHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTctXHRmb3IgKHEgPSAwOyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTFdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU4Olx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE0xLCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTktXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2MS1cdGZvciAocSA9IDY7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNMl07IHEmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjI6XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0dETTIsIHEsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjMtXHQvKiBHRE0zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2NC1cdGZvciAocSA9IDA7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNM107IHEmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjU6XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0dETTMsIHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2Ni1cdFx0XHRcdFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5LVx0XHRpZiAocSBcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9QUEUxXSAvIDIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3MDpcdFx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUxLCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzEtXHRcdFx0XHRcdFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzItXHRcdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczOlx0XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX1BQRTEsIHEsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzQtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzYtXHRmb3IgKHEgPSAwOyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTJdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzc3Olx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9DRE0yLCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzgtXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4MC1cdGZvciAocSA9IDA7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfQ0RNM10gLSAxOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzgxOlx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9DRE0zLCBxLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzgyLVx0LyogQ0RNNCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODMtXHRmb3IgKHEgPSA0OyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTRdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzg0Olx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9DRE00LCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODUtXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzg2Olx0aWYgKGFpcm9oYV9wcGVfaXNfZW5hYmxlZChldGgsIDEpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4Ny1cdFx0LyogUFBFMiAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzg5LVx0XHRcdGlmIChxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX1BQRTJdIC8gMilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzkwOlx0XHRcdFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfUFBFMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzkxLVx0XHRcdFx0XHRcdFx0IHEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTMtXHRcdFx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTQ6XHRcdFx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTUtXHRcdFx0XHRcdFx0XHQgcSwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTktXHRmb3IgKHEgPSAwOyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTRdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDAwOlx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE00LCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MDEtXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwMy1cdGZvciAocSA9IDA7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfQ0RNNV07IHEmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MDQ6XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0NETTUsIHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwNS1cdFx0XHRcdFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MDg6c3RhdGljIGludCBhaXJvaGFfZmVfbWNfdmxhbl9jbGVhcihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MTY6XHRcdGFpcm9oYV9mZV93cihldGgsIFJFR19NQ19WTEFOX0RBVEEsIDB4MCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQxNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQxOS1cdFx0ICAgICAgTUNfVkxBTl9DRkdfVEFCTEVfU0VMX01BU0sgfCBNQ19WTEFOX0NGR19SV19NQVNLO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MjA6XHRcdGFpcm9oYV9mZV93cihldGgsIFJFR19NQ19WTEFOX0NGRywgdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDIxOlx0XHRlcnIgPSByZWFkX3BvbGxfdGltZW91dChhaXJvaGFfZmVfcnIsIHZhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDIyLVx0XHRcdFx0XHR2YWwgXHUwMDI2IE1DX1ZMQU5fQ0ZHX0NNRF9ET05FX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MjgtXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFJUk9IQV9GRV9NQ19NQVhfVkxBTl9QT1JUOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0Mjk6XHRcdFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fREFUQSwgMHgwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDMwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDMzLVx0XHRcdCAgICAgIE1DX1ZMQU5fQ0ZHX1JXX01BU0s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQzNDpcdFx0XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfTUNfVkxBTl9DRkcsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQzNTpcdFx0XHRlcnIgPSByZWFkX3BvbGxfdGltZW91dChhaXJvaGFfZmVfcnIsIHZhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDM2LVx0XHRcdFx0XHRcdHZhbCBcdTAwMjYgTUNfVkxBTl9DRkdfQ01EX0RPTkVfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDQ4OnN0YXRpYyB2b2lkIGFpcm9oYV9mZV9jcnNuX3FzZWxfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NDkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTAtXHQvKiBDRE0xX0NSU05fUVNFTCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0NTE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yMiBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1Mi1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzIyKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1NC1cdFx0XHRcdCBDRE1fQ1JTTl9RU0VMX1ExKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1NTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0NSU05fUVNFTCgxLCBDUlNOXzA4IFx1MDAzZVx1MDAzZSAyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDU2LVx0XHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMDgpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDU4LVx0XHRcdFx0IENETV9DUlNOX1FTRUxfUTEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDU5Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fQ1JTTl9RU0VMKDEsIENSU05fMjEgXHUwMDNlXHUwMDNlIDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjAtXHRcdCAgICAgIENETV9DUlNOX1FTRUxfUkVBU09OX01BU0soQ1JTTl8yMSksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjItXHRcdFx0XHQgQ0RNX0NSU05fUVNFTF9RMSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0NjM6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yNCBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2NC1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzI0KSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2Ni1cdFx0XHRcdCBDRE1fQ1JTTl9RU0VMX1E2KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ2NzpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0NSU05fUVNFTCgxLCBDUlNOXzI1IFx1MDAzZVx1MDAzZSAyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDY4LVx0XHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjUpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDcxLVx0LyogQ0RNMl9DUlNOX1FTRUwgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDcyOlx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fQ1JTTl9RU0VMKDIsIENSU05fMDggXHUwMDNlXHUwMDNlIDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzMtXHRcdCAgICAgIENETV9DUlNOX1FTRUxfUkVBU09OX01BU0soQ1JTTl8wOCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzUtXHRcdFx0XHQgQ0RNX0NSU05fUVNFTF9RMSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0NzY6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yMSBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3Ny1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzIxKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3OS1cdFx0XHRcdCBDRE1fQ1JTTl9RU0VMX1ExKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4MDpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0NSU05fUVNFTCgyLCBDUlNOXzIyIFx1MDAzZVx1MDAzZSAyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDgxLVx0XHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjIpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDgzLVx0XHRcdFx0IENETV9DUlNOX1FTRUxfUTEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDg0Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fQ1JTTl9RU0VMKDIsIENSU05fMjQgXHUwMDNlXHUwMDNlIDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODUtXHRcdCAgICAgIENETV9DUlNOX1FTRUxfUkVBU09OX01BU0soQ1JTTl8yNCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODctXHRcdFx0XHQgQ0RNX0NSU05fUVNFTF9RNikpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0ODg6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yNSBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4OS1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzI1KSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDk0OnN0YXRpYyBpbnQgYWlyb2hhX2ZlX2luaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDk2Olx0YWlyb2hhX2ZlX21hY2NyX2luaXQoZXRoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00OTgtXHQvKiBQU0UgSVEgcmVzZXJ2ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0OTk6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9JUV9SRVYxLCBQU0VfSVFfUkVTMV9QMl9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MDAtXHRcdCAgICAgIEZJRUxEX1BSRVAoUFNFX0lRX1JFUzFfUDJfTUFTSywgMHgxMCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MDE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9JUV9SRVYyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MDItXHRcdCAgICAgIFBTRV9JUV9SRVMyX1A1X01BU0sgfCBQU0VfSVFfUkVTMl9QNF9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTA2LVx0LyogZW5hYmxlIEZFIGNvcHkgZW5naW5lIGZvciBLQS9EUEkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTA3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1BDRV9DRkcsIFBDRV9EUElfRU5fTUFTSyB8IFBDRV9LQV9FTl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTA4LVx0Lyogc2V0IHZpcCBxdWV1ZSBzZWxlY3Rpb24gdG8gcmluZyAxICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUwOTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0ZXRF9DRkcoMSksIENETV9WSVBfUVNFTF9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MTAtXHRcdCAgICAgIEZJRUxEX1BSRVAoQ0RNX1ZJUF9RU0VMX01BU0ssIDB4NCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MTE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9GV0RfQ0ZHKDIpLCBDRE1fVklQX1FTRUxfTUFTSyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEyLVx0XHQgICAgICBGSUVMRF9QUkVQKENETV9WSVBfUVNFTF9NQVNLLCAweDQpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEzLVx0Lyogc2V0IEdETTQgc291cmNlIGludGVyZmFjZSBvZmZzZXQgdG8gOCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MTQ6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9TUkNfUE9SVF9TRVQoNCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUxNS1cdFx0ICAgICAgR0RNX1NQT1JUX09GRjJfTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjItXHQvKiBzZXQgUFNFIFBhZ2UgYXMgMTI4QiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MjM6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX0RNQV9HTE9fQ0ZHLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjQtXHRcdCAgICAgIEZFX0RNQV9HTE9fTDJfU1BBQ0VfTUFTSyB8IEZFX0RNQV9HTE9fUEdfU1pfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUyNi1cdFx0ICAgICAgRkVfRE1BX0dMT19QR19TWl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTI3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1JTVF9HTE9fQ0ZHLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjgtXHRcdCAgICAgRkVfUlNUX0NPUkVfTUFTSyB8IEZFX1JTVF9HRE0zX01CSV9BUkJfTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MzQtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTM1Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMCwgQklUKDQpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTM2Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMSwgQklUKDI4KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUzNzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9DRE0xX09RX01BUDIsIEJJVCg0KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUzODpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9DRE0xX09RX01BUDMsIEJJVCgyOCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU0MDpcdGFpcm9oYV9mZV92aXBfc2V0dXAoZXRoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTQxOlx0YWlyb2hhX2ZlX3BzZV9wb3J0c19pbml0KGV0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTQzOlx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19HRE1fTUlTQ19DRkcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0NC1cdFx0ICAgICAgR0RNMl9SRE1fQUNLX1dBSVRfUFJFRl9NQVNLIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTQ1LVx0XHQgICAgICBHRE0yX0NITl9WTERfTU9ERV9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTQ2Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fRldEX0NGRygyKSwgQ0RNX09BTV9RU0VMX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0Ny1cdFx0ICAgICAgRklFTERfUFJFUChDRE1fT0FNX1FTRUxfTUFTSywgMTUpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1MC1cdC8qIE5QVSBDb3JlLTMsIE5QVSBCcmlkZ2UgQ2hhbm5lbC0zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU1MTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfSVBfRlJBR19GUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTUyLVx0XHQgICAgICBJUF9GUkFHTUVOVF9QT1JUX01BU0sgfCBJUF9GUkFHTUVOVF9OQlFfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1NS1cdC8qIFFETUEgTEFOLCBSWCBSaW5nLTIyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU1NjpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfSVBfRlJBR19GUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTU3LVx0XHQgICAgICBJUF9BU1NFTUJMRV9QT1JUX01BU0sgfCBJUF9BU1NFTUJMRV9OQlFfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTYxOlx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19HRE1fRldEX0NGRyhBSVJPSEFfR0RNM19JRFgpLCBHRE1fUEFEX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NjI6XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0dETV9GV0RfQ0ZHKEFJUk9IQV9HRE00X0lEWCksIEdETV9QQURfRU5fTUFTSyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTY0LVx0LyogRW5hYmxlIHNwbGl0IGZvciBNSUIgY291bnRlcnMgZm9yIEdETTMgYW5kIEdETTQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTY1Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9HRE1fTUlCX0NGRyhBSVJPSEFfR0RNM19JRFgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjYtXHRcdCAgICAgIEZFX0dETV9UWF9NSUJfU1BMSVRfRU5fTUFTSyB8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2Ny1cdFx0ICAgICAgRkVfR0RNX1JYX01JQl9TUExJVF9FTl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTY4Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9HRE1fTUlCX0NGRyhBSVJPSEFfR0RNNF9JRFgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjktXHRcdCAgICAgIEZFX0dETV9UWF9NSUJfU1BMSVRfRU5fTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3MjpcdGFpcm9oYV9mZV9jcnNuX3FzZWxfaW5pdChldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3NDpcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9DUE9SVF9DRkcsIEZFX0NQT1JUX1FVRVVFX1hGQ19NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTc1Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9DUE9SVF9DRkcsIEZFX0NQT1JUX1BPUlRfWEZDX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU3Ny1cdC8qIGRlZmF1bHQgYWdpbmcgbW9kZSBmb3IgbWJpIHVubG9jayBpc3N1ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1Nzg6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9DSE5fUkxTKDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzktXHRcdCAgICAgIE1CSV9SWF9BR0VfU0VMX01BU0sgfCBNQklfVFhfQUdFX1NFTF9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTgzLVx0LyogZGlzYWJsZSBJRkMgYnkgZGVmYXVsdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1ODQ6XHRhaXJvaGFfZmVfY2xlYXIoZXRoLCBSRUdfRkVfQ1NSX0lGQ19DRkcsIEZFX0lGQ19FTl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01ODYtXHQvKiBlbmFibGUgMTpOIHZsYW4gYWN0aW9uLCBpbml0IHZsYW4gdGFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTg3Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19NQ19WTEFOX0VOLCBNQ19WTEFOX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01ODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU4OTpcdHJldHVybiBhaXJvaGFfZmVfbWNfdmxhbl9jbGVhcihldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTAtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU5MjpzdGF0aWMgaW50IGFpcm9oYV9xZG1hX2ZpbGxfcnhfcXVldWUoc3RydWN0IGFpcm9oYV9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTkzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTk0Olx0c3RydWN0IGFpcm9oYV9xZG1hICpxZG1hID0gcS1cdTAwM2VxZG1hO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTUtXHRpbnQgcWlkID0gcSAtIFx1MDAyNnFkbWEtXHUwMDNlcV9yeFswXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU5OC1cdHdoaWxlIChxLVx1MDAzZXF1ZXVlZCBcdTAwM2MgcS1cdTAwM2VuZGVzYyAtIDEpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTk5Olx0XHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlX2VudHJ5ICplID0gXHUwMDI2cS1cdTAwM2VlbnRyeVtxLVx1MDAzZWhlYWRdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2MDA6XHRcdHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjID0gXHUwMDI2cS1cdTAwM2VkZXNjW3EtXHUwMDNlaGVhZF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYwMS1cdFx0c3RydWN0IHBhZ2UgKnBhZ2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzAtXHRpZiAobmZyYW1lcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjMxOlx0XHRhaXJvaGFfcWRtYV9ybXcocWRtYSwgUkVHX1JYX0NQVV9JRFgocWlkKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjMyLVx0XHRcdFx0UlhfUklOR19DUFVfSURYX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjYzODpzdGF0aWMgc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjM5OmFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NDAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NDE6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NDItXHR1MTYgcCwgZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjYwOnN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfcnhfcHJvY2VzcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxLCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjItXHRlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIgPSBwYWdlX3Bvb2xfZ2V0X2RtYV9kaXIocS1cdTAwM2VwYWdlX3Bvb2wpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NjM6XHRzdHJ1Y3QgYWlyb2hhX3FkbWEgKnFkbWEgPSBxLVx1MDAzZXFkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY2NDpcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBxZG1hLVx1MDAzZWV0aDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjY1LVx0aW50IHFpZCA9IHEgLSBcdTAwMjZxZG1hLVx1MDAzZXFfcnhbMF07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjgtXHR3aGlsZSAoZG9uZSBcdTAwM2MgYnVkZ2V0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY2OTpcdFx0c3RydWN0IGFpcm9oYV9xdWV1ZV9lbnRyeSAqZSA9IFx1MDAyNnEtXHUwMDNlZW50cnlbcS1cdTAwM2V0YWlsXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcwOlx0XHRzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYyA9IFx1MDAyNnEtXHUwMDNlZGVzY1txLVx1MDAzZXRhaWxdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NzEtXHRcdHUzMiBoYXNoLCByZWFzb24sIG1zZzEsIGRlc2NfY3RybDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcyOlx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjczLVx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2OTU6XHRcdGRldiA9IGFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KGV0aCwgZGVzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY5Ni1cdFx0aWYgKElTX0VSUihkZXYpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzI4LVx0XHRpZiAobmV0ZGV2X3VzZXNfZHNhKG5ldGRldikpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzI5Olx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzUyLVx0XHRpZiAocmVhc29uID09IFBQRV9DUFVfUkVBU09OX0hJVF9VTkJJTkRfUkFURV9SRUFDSEVEKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NTM6XHRcdFx0YWlyb2hhX3BwZV9jaGVja19za2IoXHUwMDI2ZXRoLVx1MDAzZXBwZS1cdTAwM2VkZXYsIHEtXHUwMDNlc2tiLCBoYXNoLFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NzkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgTkVUX0FJUk9IQSBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIEtjb25maWcgZm9yIE5FVF9BSVJPSEEuIEkmIzM5O20gZ29pbmcgdG8gdGFrZSBhIGxvb2sgYXQgdGhpcyBhbmQgc2VlIGhvdyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBsYWlkIG91dC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBmZWF0dXJlcyBhcmUgYmVpbmcgZXhwb3NlZCwgaG93IHRoZXkmIzM5O3JlIGRlcGVuZGVudCBvbiBvdGhlciBvcHRpb25zLCBhbmQgYW55IHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgZm9yIHRoZSBvdmVyYWxsIG5ldHdvcmsgc3RhY2suIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGFueSBzaWducyBvZiB2ZW5kb3Itc3BlY2lmaWMgcXVpcmtzIG9yIG9wdGltaXphdGlvbnMsIHVudXN1YWwgZGVwZW5kZW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IG1pZ2h0IHJlcXVpcmUgZGVlcGVyIGludmVzdGlnYXRpb24gZm9yIGludGVncmF0aW9uIG9yIGN1c3RvbWl6YXRpb24uIE15IGtleSBhcmVhcyBvZiBmb2N1cyB3aWxsIGluY2x1ZGUgdGhlIGRldmljZSBkcml2ZXIgb3B0aW9ucywgYW55IG5ldHdvcmsgcHJvdG9jb2wgc3VwcG9ydCwgc2VjdXJpdHkgZmVhdHVyZXMsIGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIHRhcmdldCBBaXJvaGEgU29DJiMzOTtzIGNhcGFiaWxpdGllcy4gSeKAmWxsIGFsc28gYmUgc2VhcmNoaW5nIGZvciBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBvciBhcmVhcyB3aGVyZSBwZXJmb3JtYW5jZSB0dW5pbmcgbWlnaHQgYmUgbmVjZXNzYXJ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O05FVF9BSVJPSEEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTg9aWYgTkVUX1ZFTkRPUl9BSVJPSEFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTExLVx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIE5QVSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxODpjb25maWcgTkVUX0FJUk9IQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMTktXHR0cmlzdGF0ZSBcJiMzNDtBaXJvaGEgU29DIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjAtXHRkZXBlbmRzIG9uIE5FVF9EU0EgfHwgIU5FVF9EU0FcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjIxOlx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yMi1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjI3OmNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI4LVx0ZGVmYXVsdCB5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yOS1cdGJvb2wgXCYjMzQ7QWlyb2hhIGZsb3cgc3RhdHNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFx1MDAyNlx1MDAyNiBORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMzEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfTkVUX0FJUk9IQSkgJiM0Mzs9IGFpcm9oYS1ldGgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlLTctYWlyb2hhLWV0aC15IDo9IGFpcm9oYV9ldGgubyBhaXJvaGFfcHBlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICYjNDM7PSBhaXJvaGFfcHBlX2RlYnVnZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSAmIzQzOz0gYWlyb2hhX25wdS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0zOD1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZ2V0X251bV9zdGF0c19lbnRyaWVzKHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NDA6XHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX05FVF9BSVJPSEFfRkxPV19TVEFUUykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTQxLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5MTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoaXMgdGFzaywgdGhpbmtpbmcgdGhyb3VnaCBpdCBzdGVwLWJ5LXN0ZXA6CgoqKkNoZWNraW5nIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEZpcnN0LCBteSBpbnN0aW5jdCBpcyB0byBqdW1wIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSBJIGV4cGVjdCB0byBmaW5kIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGRyaXZlciwgYW5kIGNydWNpYWxseSwgaG93IGBORVRfVkVORE9SX0FJUk9IQWAgaXMgZGVmaW5lZC4gS25vd2luZyB0aGF0IHN5bWJvbCBpcyBrZXkuIEkgbmVlZCB0byBrbm93ICppZiogaXQmIzM5O3MgZXZlbiBlbmFibGVkIGFuZCB3aGF0IGl0cyBkZXBlbmRlbmNpZXMgbWlnaHQgYmUuIE9uY2UgSSBoYXZlIHRoYXQsIEkgY2FuIGRldGVybWluZSB0aGUgbGV2ZWwgb2Ygc3VwcG9ydCB0aGlzIGRyaXZlciBoYXMgYXQgYSBnbGFuY2UuCgpOZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGRldmljZXMgb3IgYnVzZXMgdGhlIGBhaXJvaGFfZXRoYCBkcml2ZXIgaXMgZGVzaWduZWQgdG8gYmluZCB0by4gSXMgaXQgUENJLCBTUEksIFVTQiwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBLY29uZmlnIGxpa2VseSB3aWxsIHByb3ZpZGUgc29tZSBoaW50cywgYnV0IEkmIzM5O2xsIHByb2JhYmx5IGhhdmUgdG8gdHJhY2UgdGhlIGNvZGUgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBUaGlzIGNvbnRleHQgaXMgZXNzZW50aWFsIHRvIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaW50ZWdyYXRlcyBpbnRvIHRoZSBzeXN0ZW0gYW5kIHdoYXQgaGFyZHdhcmUgaXQmIzM5O3MgaW50ZW5kZWQgdG8gc3VwcG9ydC4gVGhpcyBpcyB3aGVyZSBJIGNhbiBzdGFydCB0byBkZXZlbG9wIGEgbWVudGFsIG1hcCBvZiB0aGUgZHJpdmVyJiMzOTtzIHJvbGUgaW4gdGhlIG5ldHdvcmtpbmcgbGFuZHNjYXBlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTkVUX1ZFTkRPUl9BSVJPSEFcbiAgIDM6XHRcdGJvb2wgXCYjMzQ7QWlyb2hhIGRldmljZXNcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9BSVJPSEEgfHwgQ09NUElMRV9URVNUXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIElmIHlvdSBoYXZlIGEgQWlyb2hhIFNvQyB3aXRoIGV0aGVybmV0LCBzYXkgWS5cbiAgIDc6XHRcbiAgIDg6XHRpZiBORVRfVkVORE9SX0FJUk9IQVxuICAgOTpcdFxuICAxMDpcdGNvbmZpZyBORVRfQUlST0hBX05QVVxuICAxMTpcdFx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIE5QVSBzdXBwb3J0XCYjMzQ7XG4gIDEyOlx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgMTM6XHRcdHNlbGVjdCBSRUdNQVBfTU1JT1xuICAxNDpcdFx0aGVscFxuICAxNTpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBBaXJvaGEgTmV0d29yayBQcm9jZXNzb3IgKE5QVSkgYXZhaWxhYmxlXG4gIDE2Olx0XHQgIG9uIHRoZSBBaXJvaGEgU29jIGZhbWlseS5cbiAgMTc6XHRcbiAgMTg6XHRjb25maWcgTkVUX0FJUk9IQVxuICAxOTpcdFx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiAgMjA6XHRcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxuICAyMTpcdFx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXG4gIDIyOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBnaWdhYml0IGV0aGVybmV0IE1BQ3MgaW4gdGhlXG4gIDI1Olx0XHQgIEFpcm9oYSBTb0MgZmFtaWx5LlxuICAyNjpcdFxuICAyNzpcdGNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcbiAgMjg6XHRcdGRlZmF1bHQgeVxuICAyOTpcdFx0Ym9vbCBcJiMzNDtBaXJvaGEgZmxvdyBzdGF0c1wmIzM0O1xuICAzMDpcdFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFx1MDAyNlx1MDAyNiBORVRfQUlST0hBX05QVVxuICAzMTpcdFx0aGVscFxuICAzMjpcdFx0ICBFbmFibGUgQWlyb2hhIGZsb3d0YWJsZSBzdGF0aXN0aWMgY291bnRlcnMuXG4gIDMzOlx0XG4gIDM0Olx0ZW5kaWYgI05FVF9WRU5ET1JfQUlST0hBXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3MDIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEFpcm9oYSBFdGhlcm5ldCBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW4uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgYGFpcm9oYV9ldGhgIGlzIGRvaW5nIGluIHRoaXMgY29udGV4dC4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGl0JiMzOTtzIGEgcGxhdGZvcm0gZHJpdmVyIHRhaWxvcmVkIGZvciBhbiBBaXJvaGEgU3lzdGVtLW9uLWEtQ2hpcC4gVGltZSB0byBjb25maXJtIHRoYXQuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBuYXZpZ2F0ZSBvdmVyIHRvIGBhaXJvaGFfZXRoLmNgIGFuZCB6ZXJvIGluIG9uIHRoZSBmYW1pbGlhciBwYXR0ZXJucyBvZiBhIHBsYXRmb3JtIGRyaXZlcjogc3BlY2lmaWNhbGx5LCBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBgbW9kdWxlX3BsYXRmb3JtX2RyaXZlcmAgb3IganVzdCBgcGxhdGZvcm1fZHJpdmVyYCB0byBzZWUgaWYgdGhpcyBhbGlnbnMgd2l0aCBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwbGF0Zm9ybV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk1OD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9haXJvaGFfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTYwOnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFpcm9oYV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjEtXHQucHJvYmUgPSBhaXJvaGFfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY3LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM5Njg6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihhaXJvaGFfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk2OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTgwNj1zdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo4MTU6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYWlyb2hhX25wdV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgxNi1cdC5wcm9iZSA9IGFpcm9oYV9ucHVfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzczCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyB0aGUgQWlyb2hhIEdpZ2FiaXQgRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgYWlyb2hhX2RyaXZlcmAuIFJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIFRoZSBzeXN0ZW0gaWRlbnRpZmllcyBpdCB1c2luZyB0aGUgRGV2aWNlIFRyZWUgbWF0Y2ggc3RyaW5nIGBvZl9haXJvaGFfbWF0Y2hgLiBBbHJpZ2h0LCB0aGF0JiMzOTtzIHdoYXQgSSBleHBlY3QuIEkgc2hvdWxkIGNoZWNrIHRoYXQgYG9mX2Fpcm9oYV9tYXRjaGAgZGVmaW5pdGlvbiwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhlIHN5c3RlbSBpcyBjb3JyZWN0bHkgaWRlbnRpZnlpbmcgdGhlIHRhcmdldCBoYXJkd2FyZS4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSB0aGF0Li4uIGl0JiMzOTtzIHRoZSBjcnVjaWFsIGxpbmsgaW4gdGhlIGNoYWluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvZl9haXJvaGFfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk0MT1zdGF0aWMgY29uc3Qgc3RydWN0IGFpcm9oYV9ldGhfc29jX2RhdGEgYW43NTgzX3NvY19kYXRhID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk1MzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9haXJvaGFfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk1NC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthaXJvaGEsZW43NTgxLWV0aFwmIzM0OywgLmRhdGEgPSBcdTAwMjZlbjc1ODFfc29jX2RhdGEgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NTctfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk1ODpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9haXJvaGFfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zOTYwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFpcm9oYV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY0LVx0XHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTY1Olx0XHQub2ZfbWF0Y2hfdGFibGUgPSBvZl9haXJvaGFfbWF0Y2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjYtXHR9LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjk3NwoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDYxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZm9yIGFuIFNvQy1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgQWlyb2hhIEVONzU4MS4gVGhlIGluc3RydWN0aW9ucyBhcmUgY2xlYXI6IGlmIHRoZSBjb2RlIGNoYW5nZSBjYW4mIzM5O3QgYmUgcmVhY2hlZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3ZSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUgaXMgd2hldGhlciBvciBub3QgdGhpcyBkcml2ZXIsIGRlc2lnbmVkIGZvciBhbiBBaXJvaGEgQVJNIFNvQywgaXMgYWNjZXNzaWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHRoZSBBaXJvaGEgRU43NTgxIGlzIGEgc3BlY2lhbGl6ZWQgcGllY2Ugb2YgaGFyZHdhcmUsIGEgcGxhdGZvcm0gZHJpdmVyIGRlcGVuZGVudCBvbiBzcGVjaWZpYyBTb0MgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIGhhcmR3YXJlIG1lbW9yeS1tYXBwZWQgSS9PLCBjbG9ja3MsIHJlc2V0cywgZXRjLiBJdCYjMzk7cyBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIHRoZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBTb0MuIFNvLCBubywgaXQmIzM5O3Mgbm90IHJlYWNoYWJsZS4KCkkmIzM5O3ZlIGNvbmZpcm1lZCBteSB1bmRlcnN0YW5kaW5nLiBUaGVyZSYjMzk7cyBubyBlbXVsYXRpb24gb3IgbW9jayBwbGF0Zm9ybSBkZXZpY2UgZm9yIHRoaXMgQWlyb2hhIGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVS4gSXQmIzM5O3MgYSByZWFsLXdvcmxkIFNvQywgcGFydCBvZiB0aGUgTWVkaWFUZWsgZ3JvdXAuCgpUaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGggYmVpbmcgbW9kaWZpZWQgaXMsIGJ5IGRlZmluaXRpb24sIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4gVGhlIGNvbmRpdGlvbiBpcyBtZXQgZm9yIGBXb3J0aEZ1enppbmdgIHRvIGJlIGBmYWxzZWAuCgpMZXQmIzM5O3MgcXVpY2tseSBjaGVjayB0aGUgcmVxdWlyZWQgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGBzZXQtcmVzdWx0c2AgY2FsbCB0byBtYWtlIHN1cmUgSSYjMzk7bSBkb2luZyBpdCByaWdodC4KCkhlcmUmIzM5O3MgbXkgYHNldC1yZXN1bHRzYCBkYXRhOgoKKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgCiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAoZW1wdHkgbGlzdCwgYXMgbm90aGluZyBuZWVkcyBzcGVjaWFsIGZvY3VzKQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChhbHNvIGVtcHR5LCBubyBjb25maWd1cmF0aW9ucyBuZWVkZWQpCiogICBgUmVhc29uaW5nYDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBBaXJvaGEgKEVONzU4MSkgU29DcyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7CgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuIERvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjMyLjgzMjcwMDY0NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5NjU2Nzg0MjUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6MzIuODMyNzA0ODg2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTc2NjczNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0NWQ3NDc3OGQyZTVmN2FjN2UzODVjMzU1NGNiNTJlYmRlNzgwOWRkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgU2VwIDIgMDY6NTA6MzIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcXG5pbmRleCA2NDYxOWU5YTcwNGRkLi5jNTkyMDFhZGVkMjZmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXFxuQEAgLTc4NCwxMyArNzg0LDE2IEBAIHN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfcnhfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4gXFx0XFx0aW50IGksIHFpZCA9IHEgLSBcXHUwMDI2cWRtYS1cXHUwMDNlcV9yeFswXTtcXG4gXFx0XFx0aW50IGludHJfcmVnID0gcWlkIFxcdTAwM2MgUlhfRE9ORV9ISUdIX09GRlNFVCA/IFFETUFfSU5UX1JFR19JRFgxXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCA6IFFETUFfSU5UX1JFR19JRFgyO1xcbitcXHRcXHR1MzIgaXJxX2lkID0gcWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVDtcXG4rXFx0XFx0dTMyIGludHJfbWFzayA9IEJJVChpcnFfaWQpIHxcXG4rXFx0XFx0XFx0XFx0QklUKGlycV9pZCArIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpO1xcbiBcXG4gXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUocWRtYS1cXHUwMDNlaXJxX2JhbmtzKTsgaSsrKSB7XFxuIFxcdFxcdFxcdGlmICghKEJJVChxaWQpIFxcdTAwMjYgUlhfSVJRX0JBTktfUElOX01BU0soaSkpKVxcbiBcXHRcXHRcXHRcXHRjb250aW51ZTtcXG4gXFxuIFxcdFxcdFxcdGFpcm9oYV9xZG1hX2lycV9lbmFibGUoXFx1MDAyNnFkbWEtXFx1MDAzZWlycV9iYW5rc1tpXSwgaW50cl9yZWcsXFxuLVxcdFxcdFxcdFxcdFxcdCAgICAgICBCSVQocWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVCkpO1xcbitcXHRcXHRcXHRcXHRcXHQgICAgICAgaW50cl9tYXNrKTtcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbkBAIC0xNDY4LDE2ICsxNDcxLDE5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhaXJvaGFfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxcbiBcXHRpZiAoIXRlc3RfYml0KERFVl9TVEFURV9JTklUSUFMSVpFRCwgXFx1MDAyNnFkbWEtXFx1MDAzZWV0aC1cXHUwMDNlc3RhdGUpKVxcbiBcXHRcXHRyZXR1cm4gSVJRX05PTkU7XFxuIFxcbi1cXHRyeF9pbnRyMSA9IGludHJbMV0gXFx1MDAyNiBSWF9ET05FX0xPV19JTlRfTUFTSztcXG4rXFx0cnhfaW50cjEgPSBpbnRyWzFdIFxcdTAwMjYgKFJYX0RPTkVfTE9XX0lOVF9NQVNLIHwgUlhfTk9fQ1BVX0RTQ1BfTE9XX0lOVF9NQVNLKTtcXG4gXFx0aWYgKHJ4X2ludHIxKSB7XFxuIFxcdFxcdGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMSwgcnhfaW50cjEpO1xcbi1cXHRcXHRyeF9pbnRyX21hc2sgfD0gcnhfaW50cjE7XFxuK1xcdFxcdHJ4X2ludHJfbWFzayB8PSAocnhfaW50cjEgXFx1MDAyNiBSWF9ET05FX0xPV19JTlRfTUFTSykgfFxcbitcXHRcXHRcXHRcXHRSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0socnhfaW50cjEpO1xcbiBcXHR9XFxuIFxcbi1cXHRyeF9pbnRyMiA9IGludHJbMl0gXFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0s7XFxuK1xcdHJ4X2ludHIyID0gaW50clsyXSBcXHUwMDI2IChSWF9ET05FX0hJR0hfSU5UX01BU0sgfCBSWF9OT19DUFVfRFNDUF9ISUdIX0lOVF9NQVNLKTtcXG4gXFx0aWYgKHJ4X2ludHIyKSB7XFxuIFxcdFxcdGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMiwgcnhfaW50cjIpO1xcbi1cXHRcXHRyeF9pbnRyX21hc2sgfD0gKHJ4X2ludHIyIFxcdTAwM2NcXHUwMDNjIDE2KTtcXG4rXFx0XFx0cnhfaW50cl9tYXNrIHw9ICgocnhfaW50cjIgXFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0spIFxcdTAwM2NcXHUwMDNjXFxuK1xcdFxcdFxcdFxcdCBSWF9ET05FX0hJR0hfT0ZGU0VUKSB8XFxuK1xcdFxcdFxcdFxcdChyeF9pbnRyMiBcXHUwMDI2IFJYX05PX0NQVV9EU0NQX0hJR0hfSU5UX01BU0spO1xcbiBcXHR9XFxuIFxcbiBcXHRmb3IgKGkgPSAwOyByeF9pbnRyX21hc2sgXFx1MDAyNlxcdTAwMjYgaSBcXHUwMDNjIEFSUkFZX1NJWkUocWRtYS1cXHUwMDNlcV9yeCk7IGkrKykge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxcbmluZGV4IGZhOWE4ZWRjZTIyZmYuLjdmYzM3ZjE1OWQyYjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhcXG5AQCAtNDEsOSArNDEsMTAgQEBcXG4gI2RlZmluZSBUWF9EU0NQX05VTVxcdFxcdFxcdDEwMjRcXG4gI2RlZmluZSBSWF9EU0NQX05VTShfbilcXHRcXHRcXHRcXFxcXFxuIFxcdCgoX24pID09ICAyID8gMTI4IDpcXHRcXHRcXFxcXFxuK1xcdCAoX24pID09ICA0ID8gMTI4IDpcXHRcXHRcXFxcXFxuIFxcdCAoX24pID09IDExID8gMTI4IDpcXHRcXHRcXFxcXFxuIFxcdCAoX24pID09IDE1ID8gMTI4IDpcXHRcXHRcXFxcXFxuLVxcdCAoX24pID09ICAwID8gMTAyNCA6IDE2KVxcbitcXHQgKF9uKSA9PSAgMCA/IDEwMjQgOiAzMilcXG4gXFxuICNkZWZpbmUgUFNFX1JTVl9QQUdFU1xcdFxcdFxcdDEyOFxcbiAjZGVmaW5lIFBTRV9RVUVVRV9SU1ZfUEFHRVNcXHRcXHQ2NFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oXFxuaW5kZXggNDQyYjQ4YzliOTkxZS4uYmRlM2Q1OTlkOGI3YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oXFxuQEAgLTU0OSw2ICs1NDksOCBAQFxcbiAjZGVmaW5lIElOVF9SWDFfTUFTSyhfbilcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuIFxcdCgoKChfbikgXFx1MDAzY1xcdTAwM2MgUlhfTk9fQ1BVX0RTQ1BfTE9XX09GRlNFVCkgXFx1MDAyNiBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIHxcXHRcXFxcXFxuIFxcdCAoUlhfRE9ORV9MT1dfSU5UX01BU0sgXFx1MDAyNiAoX24pKSlcXG4rI2RlZmluZSBSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0soX24pXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQoKChfbikgXFx1MDAyNiBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIFxcdTAwM2VcXHUwMDNlIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpXFxuIFxcbiAvKiBRRE1BX0NTUl9JTlRfRU5BQkxFMyAqL1xcbiAjZGVmaW5lIFJYMzFfTk9fQ1BVX0RTQ1BfSU5UX01BU0tcXHRCSVQoMzEpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjMzLjIzMTA0NzAyNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MzkyNTg0MjM4NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBBaXJvaGEgU29DIEdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvKSwgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IHRhcmdldGluZyBBaXJvaGEgU29DcyAoZS5nLiwgRU43NTgxKS4gVGhpcyBoYXJkd2FyZSBjYW5ub3QgYmUgcmVhY2hlZCBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ1ZDc0Nzc4ZDJlNWY3YWM3ZTM4NWMzNTU0Y2I1MmViZGU3ODA5ZGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA2OjUwOjMyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcbmluZGV4IDY0NjE5ZTlhNzA0ZGQuLmM1OTIwMWFkZWQyNmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5AQCAtNzg0LDEzICs3ODQsMTYgQEAgc3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuIFx0XHRpbnQgaSwgcWlkID0gcSAtIFx1MDAyNnFkbWEtXHUwMDNlcV9yeFswXTtcbiBcdFx0aW50IGludHJfcmVnID0gcWlkIFx1MDAzYyBSWF9ET05FX0hJR0hfT0ZGU0VUID8gUURNQV9JTlRfUkVHX0lEWDFcbiBcdFx0XHRcdFx0XHRcdCA6IFFETUFfSU5UX1JFR19JRFgyO1xuK1x0XHR1MzIgaXJxX2lkID0gcWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVDtcbitcdFx0dTMyIGludHJfbWFzayA9IEJJVChpcnFfaWQpIHxcbitcdFx0XHRcdEJJVChpcnFfaWQgKyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKTtcbiBcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShxZG1hLVx1MDAzZWlycV9iYW5rcyk7IGkrKykge1xuIFx0XHRcdGlmICghKEJJVChxaWQpIFx1MDAyNiBSWF9JUlFfQkFOS19QSU5fTUFTSyhpKSkpXG4gXHRcdFx0XHRjb250aW51ZTtcbiBcbiBcdFx0XHRhaXJvaGFfcWRtYV9pcnFfZW5hYmxlKFx1MDAyNnFkbWEtXHUwMDNlaXJxX2JhbmtzW2ldLCBpbnRyX3JlZyxcbi1cdFx0XHRcdFx0ICAgICAgIEJJVChxaWQgJSBSWF9ET05FX0hJR0hfT0ZGU0VUKSk7XG4rXHRcdFx0XHRcdCAgICAgICBpbnRyX21hc2spO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtMTQ2OCwxNiArMTQ3MSwxOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYWlyb2hhX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbiBcdGlmICghdGVzdF9iaXQoREVWX1NUQVRFX0lOSVRJQUxJWkVELCBcdTAwMjZxZG1hLVx1MDAzZWV0aC1cdTAwM2VzdGF0ZSkpXG4gXHRcdHJldHVybiBJUlFfTk9ORTtcbiBcbi1cdHJ4X2ludHIxID0gaW50clsxXSBcdTAwMjYgUlhfRE9ORV9MT1dfSU5UX01BU0s7XG4rXHRyeF9pbnRyMSA9IGludHJbMV0gXHUwMDI2IChSWF9ET05FX0xPV19JTlRfTUFTSyB8IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSyk7XG4gXHRpZiAocnhfaW50cjEpIHtcbiBcdFx0YWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoaXJxX2JhbmssIFFETUFfSU5UX1JFR19JRFgxLCByeF9pbnRyMSk7XG4tXHRcdHJ4X2ludHJfbWFzayB8PSByeF9pbnRyMTtcbitcdFx0cnhfaW50cl9tYXNrIHw9IChyeF9pbnRyMSBcdTAwMjYgUlhfRE9ORV9MT1dfSU5UX01BU0spIHxcbitcdFx0XHRcdFJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhyeF9pbnRyMSk7XG4gXHR9XG4gXG4tXHRyeF9pbnRyMiA9IGludHJbMl0gXHUwMDI2IFJYX0RPTkVfSElHSF9JTlRfTUFTSztcbitcdHJ4X2ludHIyID0gaW50clsyXSBcdTAwMjYgKFJYX0RPTkVfSElHSF9JTlRfTUFTSyB8IFJYX05PX0NQVV9EU0NQX0hJR0hfSU5UX01BU0spO1xuIFx0aWYgKHJ4X2ludHIyKSB7XG4gXHRcdGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMiwgcnhfaW50cjIpO1xuLVx0XHRyeF9pbnRyX21hc2sgfD0gKHJ4X2ludHIyIFx1MDAzY1x1MDAzYyAxNik7XG4rXHRcdHJ4X2ludHJfbWFzayB8PSAoKHJ4X2ludHIyIFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0spIFx1MDAzY1x1MDAzY1xuK1x0XHRcdFx0IFJYX0RPTkVfSElHSF9PRkZTRVQpIHxcbitcdFx0XHRcdChyeF9pbnRyMiBcdTAwMjYgUlhfTk9fQ1BVX0RTQ1BfSElHSF9JTlRfTUFTSyk7XG4gXHR9XG4gXG4gXHRmb3IgKGkgPSAwOyByeF9pbnRyX21hc2sgXHUwMDI2XHUwMDI2IGkgXHUwMDNjIEFSUkFZX1NJWkUocWRtYS1cdTAwM2VxX3J4KTsgaSsrKSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhcbmluZGV4IGZhOWE4ZWRjZTIyZmYuLjdmYzM3ZjE1OWQyYjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oXG5AQCAtNDEsOSArNDEsMTAgQEBcbiAjZGVmaW5lIFRYX0RTQ1BfTlVNXHRcdFx0MTAyNFxuICNkZWZpbmUgUlhfRFNDUF9OVU0oX24pXHRcdFx0XFxcbiBcdCgoX24pID09ICAyID8gMTI4IDpcdFx0XFxcbitcdCAoX24pID09ICA0ID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDExID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDE1ID8gMTI4IDpcdFx0XFxcbi1cdCAoX24pID09ICAwID8gMTAyNCA6IDE2KVxuK1x0IChfbikgPT0gIDAgPyAxMDI0IDogMzIpXG4gXG4gI2RlZmluZSBQU0VfUlNWX1BBR0VTXHRcdFx0MTI4XG4gI2RlZmluZSBQU0VfUVVFVUVfUlNWX1BBR0VTXHRcdDY0XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxuaW5kZXggNDQyYjQ4YzliOTkxZS4uYmRlM2Q1OTlkOGI3YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxuQEAgLTU0OSw2ICs1NDksOCBAQFxuICNkZWZpbmUgSU5UX1JYMV9NQVNLKF9uKVx0XHRcdFx0XHRcdFx0XFxcbiBcdCgoKChfbikgXHUwMDNjXHUwMDNjIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpIFx1MDAyNiBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIHxcdFxcXG4gXHQgKFJYX0RPTkVfTE9XX0lOVF9NQVNLIFx1MDAyNiAoX24pKSlcbisjZGVmaW5lIFJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhfbilcdFx0XHRcdFx0XFxcbitcdCgoKF9uKSBcdTAwMjYgUlhfTk9fQ1BVX0RTQ1BfTE9XX0lOVF9NQVNLKSBcdTAwM2VcdTAwM2UgUlhfTk9fQ1BVX0RTQ1BfTE9XX09GRlNFVClcbiBcbiAvKiBRRE1BX0NTUl9JTlRfRU5BQkxFMyAqL1xuICNkZWZpbmUgUlgzMV9OT19DUFVfRFNDUF9JTlRfTUFTS1x0QklUKDMxKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6MzMuMjMxMDQ4NTI2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NjA0MjIxMzExNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiBjb25zY2lvdXNuZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY2AsIGBhaXJvaGFfZXRoLmhgLCBhbmQgYGFpcm9oYV9yZWdzLmhgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCBBaXJvaGEuIFJpZ2h0LiBMZXQncyBnZXQgYSBoYW5kbGUgb24gdGhpcy5cIiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGtpbmQgb2YgYmVhc3QgdGhpcyBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyICppcyouIElzIHRoaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgU29DPyBJcyBpdCBkZWFsaW5nIHdpdGggYSBwaHlzaWNhbCBFdGhlcm5ldCBjb250cm9sbGVyIGludGVncmF0ZWQgZGlyZWN0bHkgb250byBhbiBBaXJvaGEgY2hpcD8gUGVyaGFwcyBpdCdzIGEgUENJZSBiYXNlZCBzb2x1dGlvbj8gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoIHRoZSB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZS4gVGltZSB0byBlbXBsb3kgc29tZSBjbGFzc2ljIHRlY2huaXF1ZXMuIEknbGwgcHJvYmFibHkgc3RhcnQgd2l0aCBhIHF1aWNrIGByZWFkLWZpbGVgIG9yIGBncmVwcGVyYCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwgc291cmNlLiBHZXQgYSBmZWVsIGZvciB0aGUgc3Vycm91bmRpbmcgY29kZSwgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzIGlmIGl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIsIG9yIGFueSBjbHVlcyBhYm91dCB0aGUgaGFyZHdhcmUgaXQncyBpbnRlcmZhY2luZyB3aXRoLiBHb3R0YSBidWlsZCB0aGF0IG1lbnRhbCBtb2RlbCwgcXVpY2tseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzM0OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6MzkuMjczMjY0MTgxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NTE4MTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFpcm9oYVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMzY3NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX05FVF9BSVJPSEEpICs9IGFpcm9oYS1ldGgub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo3OmFpcm9oYS1ldGgteSA6PSBhaXJvaGFfZXRoLm8gYWlyb2hhX3BwZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjg6YWlyb2hhLWV0aC0kKENPTkZJR19ERUJVR19GUykgKz0gYWlyb2hhX3BwZV9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0FJUk9IQV9OUFUpICs9IGFpcm9oYV9ucHUub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE3OiNpbmNsdWRlIFxcXCJhaXJvaGFfcmVncy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTg6I2luY2x1ZGUgXFxcImFpcm9oYV9ldGguaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA6dTMyIGFpcm9oYV9ycih2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjU6dm9pZCBhaXJvaGFfd3Iodm9pZCBfX2lvbWVtICpiYXNlLCB1MzIgb2Zmc2V0LCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwOnUzMiBhaXJvaGFfcm13KHZvaWQgX19pb21lbSAqYmFzZSwgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjpcXHR2YWwgfD0gKGFpcm9oYV9ycihiYXNlLCBvZmZzZXQpIFxcdTAwMjYgfm1hc2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzM6XFx0YWlyb2hhX3dyKGJhc2UsIG9mZnNldCwgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM4OnN0YXRpYyB2b2lkIGFpcm9oYV9xZG1hX3NldF9pcnFtYXNrKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzktXFx0XFx0XFx0XFx0ICAgIGludCBpbmRleCwgdTMyIGNsZWFyLCB1MzIgc2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDE6XFx0c3RydWN0IGFpcm9oYV9xZG1hICpxZG1hID0gaXJxX2JhbmstXFx1MDAzZXFkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00Mi1cXHRpbnQgYmFuayA9IGlycV9iYW5rIC0gXFx1MDAyNnFkbWEtXFx1MDAzZWlycV9iYW5rc1swXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEtXFx0aXJxX2JhbmstXFx1MDAzZWlycW1hc2tbaW5kZXhdIHw9IHNldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUyOlxcdGFpcm9oYV9xZG1hX3dyKHFkbWEsIFJFR19JTlRfRU5BQkxFKGJhbmssIGluZGV4KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUzLVxcdFxcdCAgICAgICBpcnFfYmFuay1cXHUwMDNlaXJxbWFza1tpbmRleF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01Ni1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3OlxcdGFpcm9oYV9xZG1hX3JyKHFkbWEsIFJFR19JTlRfRU5BQkxFKGJhbmssIGluZGV4KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2MjpzdGF0aWMgdm9pZCBhaXJvaGFfcWRtYV9pcnFfZW5hYmxlKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjMtXFx0XFx0XFx0XFx0ICAgaW50IGluZGV4LCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY1OlxcdGFpcm9oYV9xZG1hX3NldF9pcnFtYXNrKGlycV9iYW5rLCBpbmRleCwgMCwgbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02Ni19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY4OnN0YXRpYyB2b2lkIGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjktXFx0XFx0XFx0XFx0ICAgIGludCBpbmRleCwgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3MTpcXHRhaXJvaGFfcWRtYV9zZXRfaXJxbWFzayhpcnFfYmFuaywgaW5kZXgsIG1hc2ssIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03Ni1cXHR1OCByZWZfYWRkcltFVEhfQUxFTl0gX19hbGlnbmVkKDIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Nzc6XFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzgtXFx0dTMyIHJlZywgdmFsLCBsbWluLCBsbWF4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy04NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg3LVxcdFxcdGludCBqO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05Mi1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVJSQVlfU0laRShwb3J0LVxcdTAwM2VkZXZzKTsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo5MzpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKml0ZXJfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTQtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDA6XFx0XFx0XFx0aWYgKGFpcm9oYV9pc19sYW5fZ2RtX2RldihpdGVyX2RldikgIT1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwMTpcXHRcXHRcXHQgICAgYWlyb2hhX2lzX2xhbl9nZG1fZGV2KGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMDItXFx0XFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEzMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEzNDpcXHRyZWcgPSBhaXJvaGFfaXNfbGFuX2dkbV9kZXYoZGV2KSA/IFJFR19GRV9MQU5fTUFDX0ggOiBSRUdfRkVfV0FOX01BQ19IO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTM1LVxcdHZhbCA9IChhZGRyWzBdIFxcdTAwM2NcXHUwMDNjIDE2KSB8IChhZGRyWzFdIFxcdTAwM2NcXHUwMDNjIDgpIHwgYWRkclsyXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEzNjpcXHRhaXJvaGFfZmVfd3IoZXRoLCByZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMzg6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX01BQ19MTUlOKHJlZyksIGxtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTM5OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9NQUNfTE1BWChyZWcpLCBsbWF4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE0MTpcXHRhaXJvaGFfcHBlX2luaXRfdXBkX21lbShkZXYsIGFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNDY6c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQ3LVxcdFxcdFxcdFxcdFxcdHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTQ5OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fT0NGUV9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTUwLVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoR0RNX09DRlFfTUFTSywgdmFsKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNTE6XFx0YWlyb2hhX2ZlX3JtdyhldGgsIGFkZHIsIEdETV9NQ0ZRX01BU0ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTItXFx0XFx0ICAgICAgRklFTERfUFJFUChHRE1fTUNGUV9NQVNLLCB2YWwpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1MzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgYWRkciwgR0RNX0JDRlFfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE1NC1cXHRcXHQgICAgICBGSUVMRF9QUkVQKEdETV9CQ0ZRX01BU0ssIHZhbCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTU1OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fVUNGUV9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTU2LVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoR0RNX1VDRlFfTUFTSywgdmFsKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1OTpzdGF0aWMgaW50IGFpcm9oYV9zZXRfdmlwX2Zvcl9nZG1fcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTYxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNjI6XFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYzLVxcdHUzMiB2aXBfcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY2LVxcdGlmIChlbmFibGUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2NzpcXHRcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX1ZJUF9QT1JUX0VOLCB2aXBfcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNjg6XFx0XFx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9JRkNfUE9SVF9FTiwgdmlwX3BvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY5LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzA6XFx0XFx0YWlyb2hhX2ZlX2NsZWFyKGV0aCwgUkVHX0ZFX1ZJUF9QT1JUX0VOLCB2aXBfcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzE6XFx0XFx0YWlyb2hhX2ZlX2NsZWFyKGV0aCwgUkVHX0ZFX0lGQ19QT1JUX0VOLCB2aXBfcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzc6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX21hY2NyX2luaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE3OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE4MS1cXHRmb3IgKHAgPSAxOyBwIFxcdTAwM2M9IEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IHArKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTgyOlxcdFxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfR0RNX0ZXRF9DRkcocCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xODMtXFx0XFx0XFx0ICAgICAgR0RNX1RDUF9DS1NVTV9NQVNLIHwgR0RNX1VEUF9DS1NVTV9NQVNLIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE4NC1cXHRcXHRcXHQgICAgICBHRE1fSVA0X0NLU1VNX01BU0sgfCBHRE1fRFJPUF9DUkNfRVJSX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTg1OlxcdFxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfR0RNX0xFTl9DRkcocCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xODYtXFx0XFx0XFx0ICAgICAgR0RNX1NIT1JUX0xFTl9NQVNLIHwgR0RNX0xPTkdfTEVOX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5MTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9WTEFOX0NUUkwoMSksIENETV9WTEFOX01BU0ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTItXFx0XFx0ICAgICAgRklFTERfUFJFUChDRE1fVkxBTl9NQVNLLCAweDgxMDApKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NDpcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX0NQT1JUX0NGRywgRkVfQ1BPUlRfUEFEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTc6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3ZpcF9zZXR1cChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5OTpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMyksIEVUSF9QX1BQUF9ESVNDKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMDpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDMpLCBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fRU5fTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDI6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDQpLCBQUFBfTENQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDQpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA0LVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBGSUVMRF9QUkVQKFBBVE5fVFlQRV9NQVNLLCAxKSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwNzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oNiksIFBQUF9JUENQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwODpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDYpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA5LVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBGSUVMRF9QUkVQKFBBVE5fVFlQRV9NQVNLLCAxKSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMjpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oNyksIFBQUF9DSEFQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDcpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0LVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBGSUVMRF9QUkVQKFBBVE5fVFlQRV9NQVNLLCAxKSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNy1cXHQvKiBCT09UUCAoMHg0MykgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxODpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oOCksIDB4NDMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE5OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oOCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjAtXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMy1cXHQvKiBCT09UUCAoMHg0NCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNDpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oOSksIDB4NDQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjI1OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oOSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjYtXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyOS1cXHQvKiBJU0FLTVAgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIzMDpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMTApLCAweDFmNDAxZjQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjMxOlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oMTApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjMyLVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0RQX0VOX01BU0sgfCBQQVROX1NQX0VOX01BU0sgfFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMzU6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDExKSwgUFBQX0lQVjZDUCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMzY6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxMSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMzctXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQwLVxcdC8qIERIQ1B2NiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjQxOlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigxMiksIDB4MjIyMDIyMyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNDI6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxMiksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDMtXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fRFBfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NjpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMTkpLCBQUFBfUEFQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDE5KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0OC1cXHRcXHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgRklFTERfUFJFUChQQVROX1RZUEVfTUFTSywgMSkgfFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTEtXFx0LyogRVRILVxcdTAwM2VFVEhfUF8xOTA1ICgweDg5M2EpICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNTI6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDIwKSwgMHg4OTNhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1MzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDIwKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1NC1cXHRcXHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgUEFUTl9FTl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1NjpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMjEpLCBFVEhfUF9MTERQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1NzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDIxKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1OC1cXHRcXHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgUEFUTl9FTl9NQVNLKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjYxOnN0YXRpYyB1MzIgYWlyb2hhX2ZlX2dldF9wc2VfcXVldWVfcnN2X3BhZ2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjItXFx0XFx0XFx0XFx0XFx0ICAgICB1MzIgcG9ydCwgdTMyIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2NDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9RVUVVRV9DRkdfV1IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjUtXFx0XFx0ICAgICAgUFNFX0NGR19QT1JUX0lEX01BU0sgfCBQU0VfQ0ZHX1FVRVVFX0lEX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2OTpcXHRyZXR1cm4gYWlyb2hhX2ZlX2dldChldGgsIFJFR19GRV9QU0VfUVVFVUVfQ0ZHX1ZBTCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3MC1cXHRcXHRcXHQgICAgIFBTRV9DRkdfT1FfUlNWX01BU0spO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNzM6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3NldF9wc2VfcXVldWVfcnN2X3BhZ2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzQtXFx0XFx0XFx0XFx0XFx0ICAgICAgdTMyIHBvcnQsIHUzMiBxdWV1ZSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNzY6XFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfUVVFVUVfQ0ZHX1ZBTCwgUFNFX0NGR19PUV9SU1ZfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3Ny1cXHRcXHQgICAgICBGSUVMRF9QUkVQKFBTRV9DRkdfT1FfUlNWX01BU0ssIHZhbCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjc4OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX1FVRVVFX0NGR19XUixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3OS1cXHRcXHQgICAgICBQU0VfQ0ZHX1BPUlRfSURfTUFTSyB8IFBTRV9DRkdfUVVFVUVfSURfTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI4NjpzdGF0aWMgdTMyIGFpcm9oYV9mZV9nZXRfcHNlX2FsbF9yc3Yoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI4Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyODg6XFx0cmV0dXJuIGFpcm9oYV9mZV9nZXQoZXRoLCBSRUdfRkVfUFNFX0JVRl9TRVQsIFBTRV9BTExSU1ZfTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjkxOnN0YXRpYyBpbnQgYWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOTItXFx0XFx0XFx0XFx0ICAgIHUzMiBwb3J0LCB1MzIgcXVldWUsIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjk0OlxcdHUzMiBvcmlnX3ZhbCA9IGFpcm9oYV9mZV9nZXRfcHNlX3F1ZXVlX3Jzdl9wYWdlcyhldGgsIHBvcnQsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NS1cXHR1MzIgdG1wLCBhbGxfcnN2LCBmcV9saW1pdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI5NzpcXHRhaXJvaGFfZmVfc2V0X3BzZV9xdWV1ZV9yc3ZfcGFnZXMoZXRoLCBwb3J0LCBxdWV1ZSwgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5OS1cXHQvKiBtb2RpZnkgYWxsIHJzdiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAwOlxcdGFsbF9yc3YgPSBhaXJvaGFfZmVfZ2V0X3BzZV9hbGxfcnN2KGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDEtXFx0YWxsX3JzdiArPSAodmFsIC0gb3JpZ192YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAyOlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX0JVRl9TRVQsIFBTRV9BTExSU1ZfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwMy1cXHRcXHQgICAgICBGSUVMRF9QUkVQKFBTRV9BTExSU1ZfTUFTSywgYWxsX3JzdikpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDUtXFx0LyogbW9kaWZ5IGh0aGQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwNjpcXHRmcV9saW1pdCA9IGFpcm9oYV9mZV9nZXQoZXRoLCBQU0VfRlFfQ0ZHLCBQU0VfRlFfTElNSVRfTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDctXFx0dG1wID0gZnFfbGltaXQgLSBhbGxfcnN2IC0gMHgyMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwODpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9TSEFSRV9VU0VEX1RIRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwOS1cXHRcXHQgICAgICBQU0VfU0hBUkVfVVNFRF9IVEhEX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMi1cXHR0bXAgPSBmcV9saW1pdCAtIGFsbF9yc3YgLSAweDEwMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxMzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9TSEFSRV9VU0VEX1RIRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNC1cXHRcXHQgICAgICBQU0VfU0hBUkVfVVNFRF9NVEhEX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNi1cXHR0bXAgPSAoMyAqIHRtcCkgXFx1MDAzZVxcdTAwM2UgMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9CVUZfU0VULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE4LVxcdFxcdCAgICAgIFBTRV9TSEFSRV9VU0VEX0xUSERfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI0OnN0YXRpYyB2b2lkIGFpcm9oYV9mZV9wc2VfcG9ydHNfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQxOlxcdGlmIChhaXJvaGFfcHBlX2lzX2VuYWJsZWQoZXRoLCAxKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQyLVxcdFxcdHUzMiBhbGxfcnN2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDQtXFx0XFx0LyogaHcgbWlzc2VzIFBQRTIgb3EgcnN2ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDU6XFx0XFx0YWxsX3JzdiA9IGFpcm9oYV9mZV9nZXRfcHNlX2FsbF9yc3YoZXRoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0Ni1cXHRcXHRhbGxfcnN2ICs9IFBTRV9SU1ZfUEFHRVMgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQ3LVxcdFxcdFxcdCAgIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfUFBFMl07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDg6XFx0XFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfQlVGX1NFVCwgUFNFX0FMTFJTVl9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQ5LVxcdFxcdFxcdCAgICAgIEZJRUxEX1BSRVAoUFNFX0FMTFJTVl9NQVNLLCBhbGxfcnN2KSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1My1cXHRmb3IgKHEgPSAwOyBxIFxcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9DRE0xXTsgcSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU0OlxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0NETTEsIHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTUtXFx0XFx0XFx0XFx0XFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTctXFx0Zm9yIChxID0gMDsgcSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNMV07IHErKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM1ODpcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE0xLCBxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU5LVxcdFxcdFxcdFxcdFxcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzYxLVxcdGZvciAocSA9IDY7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTJdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjI6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfR0RNMiwgcSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjMtXFx0LyogR0RNMyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY0LVxcdGZvciAocSA9IDA7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTNdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjU6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfR0RNMywgcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2Ni1cXHRcXHRcXHRcXHRcXHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2OS1cXHRcXHRpZiAocSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfUFBFMV0gLyAyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzcwOlxcdFxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX1BQRTEsIHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzEtXFx0XFx0XFx0XFx0XFx0XFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzcyLVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3MzpcXHRcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUxLCBxLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3NC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3Ni1cXHRmb3IgKHEgPSAwOyBxIFxcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9DRE0yXTsgcSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzc3OlxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0NETTIsIHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzgtXFx0XFx0XFx0XFx0XFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODAtXFx0Zm9yIChxID0gMDsgcSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfQ0RNM10gLSAxOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODE6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNMywgcSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODItXFx0LyogQ0RNNCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzgzLVxcdGZvciAocSA9IDQ7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTRdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODQ6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNNCwgcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4NS1cXHRcXHRcXHRcXHRcXHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODY6XFx0aWYgKGFpcm9oYV9wcGVfaXNfZW5hYmxlZChldGgsIDEpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODctXFx0XFx0LyogUFBFMiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODktXFx0XFx0XFx0aWYgKHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX1BQRTJdIC8gMilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM5MDpcXHRcXHRcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzkxLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTMtXFx0XFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk0OlxcdFxcdFxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX1BQRTIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHEsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTktXFx0Zm9yIChxID0gMDsgcSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNNF07IHErKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQwMDpcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE00LCBxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAxLVxcdFxcdFxcdFxcdFxcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAzLVxcdGZvciAocSA9IDA7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTVdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MDQ6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNNSwgcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwNS1cXHRcXHRcXHRcXHRcXHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQwODpzdGF0aWMgaW50IGFpcm9oYV9mZV9tY192bGFuX2NsZWFyKHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MTY6XFx0XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fREFUQSwgMHgwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQxNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDE5LVxcdFxcdCAgICAgIE1DX1ZMQU5fQ0ZHX1RBQkxFX1NFTF9NQVNLIHwgTUNfVkxBTl9DRkdfUldfTUFTSztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQyMDpcXHRcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfTUNfVkxBTl9DRkcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MjE6XFx0XFx0ZXJyID0gcmVhZF9wb2xsX3RpbWVvdXQoYWlyb2hhX2ZlX3JyLCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MjItXFx0XFx0XFx0XFx0XFx0dmFsIFxcdTAwMjYgTUNfVkxBTl9DRkdfQ01EX0RPTkVfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDI4LVxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBBSVJPSEFfRkVfTUNfTUFYX1ZMQU5fUE9SVDsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0Mjk6XFx0XFx0XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fREFUQSwgMHgwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDMzLVxcdFxcdFxcdCAgICAgIE1DX1ZMQU5fQ0ZHX1JXX01BU0s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MzQ6XFx0XFx0XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fQ0ZHLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDM1OlxcdFxcdFxcdGVyciA9IHJlYWRfcG9sbF90aW1lb3V0KGFpcm9oYV9mZV9yciwgdmFsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDM2LVxcdFxcdFxcdFxcdFxcdFxcdHZhbCBcXHUwMDI2IE1DX1ZMQU5fQ0ZHX0NNRF9ET05FX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ0ODpzdGF0aWMgdm9pZCBhaXJvaGFfZmVfY3Jzbl9xc2VsX2luaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ0OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTAtXFx0LyogQ0RNMV9DUlNOX1FTRUwgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1MTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yMiBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1Mi1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjIpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTQtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1NTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8wOCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1Ni1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTgtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1OTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yMSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2MC1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjEpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjItXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ2MzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yNCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2NC1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjQpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjYtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ2NzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yNSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2OC1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjUpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzEtXFx0LyogQ0RNMl9DUlNOX1FTRUwgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ3MjpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8wOCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3My1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzUtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ3NjpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yMSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3Ny1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjEpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzktXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4MDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yMiBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4MS1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjIpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODMtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4NDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yNCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4NS1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjQpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODctXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4ODpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yNSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4OS1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjUpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00OTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0OTQ6c3RhdGljIGludCBhaXJvaGFfZmVfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ5NjpcXHRhaXJvaGFfZmVfbWFjY3JfaW5pdChldGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk4LVxcdC8qIFBTRSBJUSByZXNlcnZlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0OTk6XFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19QU0VfSVFfUkVWMSwgUFNFX0lRX1JFUzFfUDJfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUwMC1cXHRcXHQgICAgICBGSUVMRF9QUkVQKFBTRV9JUV9SRVMxX1AyX01BU0ssIDB4MTApKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUwMTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9JUV9SRVYyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTAyLVxcdFxcdCAgICAgIFBTRV9JUV9SRVMyX1A1X01BU0sgfCBQU0VfSVFfUkVTMl9QNF9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MDYtXFx0LyogZW5hYmxlIEZFIGNvcHkgZW5naW5lIGZvciBLQS9EUEkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUwNzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfUENFX0NGRywgUENFX0RQSV9FTl9NQVNLIHwgUENFX0tBX0VOX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTA4LVxcdC8qIHNldCB2aXAgcXVldWUgc2VsZWN0aW9uIHRvIHJpbmcgMSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTA5OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0ZXRF9DRkcoMSksIENETV9WSVBfUVNFTF9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEwLVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoQ0RNX1ZJUF9RU0VMX01BU0ssIDB4NCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTExOlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0ZXRF9DRkcoMiksIENETV9WSVBfUVNFTF9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEyLVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoQ0RNX1ZJUF9RU0VMX01BU0ssIDB4NCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEzLVxcdC8qIHNldCBHRE00IHNvdXJjZSBpbnRlcmZhY2Ugb2Zmc2V0IHRvIDggKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUxNDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9TUkNfUE9SVF9TRVQoNCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MTUtXFx0XFx0ICAgICAgR0RNX1NQT1JUX09GRjJfTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUyMi1cXHQvKiBzZXQgUFNFIFBhZ2UgYXMgMTI4QiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTIzOlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfRE1BX0dMT19DRkcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjQtXFx0XFx0ICAgICAgRkVfRE1BX0dMT19MMl9TUEFDRV9NQVNLIHwgRkVfRE1BX0dMT19QR19TWl9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjYtXFx0XFx0ICAgICAgRkVfRE1BX0dMT19QR19TWl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUyNzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfUlNUX0dMT19DRkcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjgtXFx0XFx0ICAgICBGRV9SU1RfQ09SRV9NQVNLIHwgRkVfUlNUX0dETTNfTUJJX0FSQl9NQVNLIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTM0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTM1OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9DRE0xX09RX01BUDAsIEJJVCg0KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MzY6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMSwgQklUKDI4KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1Mzc6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMiwgQklUKDQpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUzODpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfQ0RNMV9PUV9NQVAzLCBCSVQoMjgpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU0MDpcXHRhaXJvaGFfZmVfdmlwX3NldHVwKGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NDE6XFx0YWlyb2hhX2ZlX3BzZV9wb3J0c19pbml0KGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NDM6XFx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19HRE1fTUlTQ19DRkcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NDQtXFx0XFx0ICAgICAgR0RNMl9SRE1fQUNLX1dBSVRfUFJFRl9NQVNLIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0NS1cXHRcXHQgICAgICBHRE0yX0NITl9WTERfTU9ERV9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU0NjpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9GV0RfQ0ZHKDIpLCBDRE1fT0FNX1FTRUxfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0Ny1cXHRcXHQgICAgICBGSUVMRF9QUkVQKENETV9PQU1fUVNFTF9NQVNLLCAxNSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NTAtXFx0LyogTlBVIENvcmUtMywgTlBVIEJyaWRnZSBDaGFubmVsLTMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU1MTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0lQX0ZSQUdfRlAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NTItXFx0XFx0ICAgICAgSVBfRlJBR01FTlRfUE9SVF9NQVNLIHwgSVBfRlJBR01FTlRfTkJRX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1NS1cXHQvKiBRRE1BIExBTiwgUlggUmluZy0yMiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTU2OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfSVBfRlJBR19GUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1Ny1cXHRcXHQgICAgICBJUF9BU1NFTUJMRV9QT1JUX01BU0sgfCBJUF9BU1NFTUJMRV9OQlFfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTYxOlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfR0RNX0ZXRF9DRkcoQUlST0hBX0dETTNfSURYKSwgR0RNX1BBRF9FTl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU2MjpcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0dETV9GV0RfQ0ZHKEFJUk9IQV9HRE00X0lEWCksIEdETV9QQURfRU5fTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjQtXFx0LyogRW5hYmxlIHNwbGl0IGZvciBNSUIgY291bnRlcnMgZm9yIEdETTMgYW5kIEdETTQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU2NTpcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX0dETV9NSUJfQ0ZHKEFJUk9IQV9HRE0zX0lEWCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjYtXFx0XFx0ICAgICAgRkVfR0RNX1RYX01JQl9TUExJVF9FTl9NQVNLIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2Ny1cXHRcXHQgICAgICBGRV9HRE1fUlhfTUlCX1NQTElUX0VOX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTY4OlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfRkVfR0RNX01JQl9DRkcoQUlST0hBX0dETTRfSURYKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2OS1cXHRcXHQgICAgICBGRV9HRE1fVFhfTUlCX1NQTElUX0VOX01BU0sgfFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NzI6XFx0YWlyb2hhX2ZlX2Nyc25fcXNlbF9pbml0KGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NzQ6XFx0YWlyb2hhX2ZlX2NsZWFyKGV0aCwgUkVHX0ZFX0NQT1JUX0NGRywgRkVfQ1BPUlRfUVVFVUVfWEZDX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTc1OlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfRkVfQ1BPUlRfQ0ZHLCBGRV9DUE9SVF9QT1JUX1hGQ19NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU3Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU3Ny1cXHQvKiBkZWZhdWx0IGFnaW5nIG1vZGUgZm9yIG1iaSB1bmxvY2sgaXNzdWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3ODpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9DSE5fUkxTKDIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTc5LVxcdFxcdCAgICAgIE1CSV9SWF9BR0VfU0VMX01BU0sgfCBNQklfVFhfQUdFX1NFTF9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01ODMtXFx0LyogZGlzYWJsZSBJRkMgYnkgZGVmYXVsdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTg0OlxcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9DU1JfSUZDX0NGRywgRkVfSUZDX0VOX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTg2LVxcdC8qIGVuYWJsZSAxOk4gdmxhbiBhY3Rpb24sIGluaXQgdmxhbiB0YWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTg3OlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfTUNfVkxBTl9FTiwgTUNfVkxBTl9FTl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU4OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU4OTpcXHRyZXR1cm4gYWlyb2hhX2ZlX21jX3ZsYW5fY2xlYXIoZXRoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU5MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1OTI6c3RhdGljIGludCBhaXJvaGFfcWRtYV9maWxsX3J4X3F1ZXVlKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTk0OlxcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSA9IHEtXFx1MDAzZXFkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTUtXFx0aW50IHFpZCA9IHEgLSBcXHUwMDI2cWRtYS1cXHUwMDNlcV9yeFswXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTk4LVxcdHdoaWxlIChxLVxcdTAwM2VxdWV1ZWQgXFx1MDAzYyBxLVxcdTAwM2VuZGVzYyAtIDEpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU5OTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlX2VudHJ5ICplID0gXFx1MDAyNnEtXFx1MDAzZWVudHJ5W3EtXFx1MDAzZWhlYWRdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjAwOlxcdFxcdHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjID0gXFx1MDAyNnEtXFx1MDAzZWRlc2NbcS1cXHUwMDNlaGVhZF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MDEtXFx0XFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYzMC1cXHRpZiAobmZyYW1lcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjYzMTpcXHRcXHRhaXJvaGFfcWRtYV9ybXcocWRtYSwgUkVHX1JYX0NQVV9JRFgocWlkKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYzMi1cXHRcXHRcXHRcXHRSWF9SSU5HX0NQVV9JRFhfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjM4OnN0YXRpYyBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjM5OmFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY0MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQyLVxcdHUxNiBwLCBkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NjA6c3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9wcm9jZXNzKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEsIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjYyLVxcdGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2RpcihxLVxcdTAwM2VwYWdlX3Bvb2wpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjYzOlxcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSA9IHEtXFx1MDAzZXFkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NjQ6XFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IHFkbWEtXFx1MDAzZWV0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY2NS1cXHRpbnQgcWlkID0gcSAtIFxcdTAwMjZxZG1hLVxcdTAwM2VxX3J4WzBdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjgtXFx0d2hpbGUgKGRvbmUgXFx1MDAzYyBidWRnZXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY2OTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlX2VudHJ5ICplID0gXFx1MDAyNnEtXFx1MDAzZWVudHJ5W3EtXFx1MDAzZXRhaWxdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcwOlxcdFxcdHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjID0gXFx1MDAyNnEtXFx1MDAzZWRlc2NbcS1cXHUwMDNldGFpbF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NzEtXFx0XFx0dTMyIGhhc2gsIHJlYXNvbiwgbXNnMSwgZGVzY19jdHJsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcyOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjczLVxcdFxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY5NTpcXHRcXHRkZXYgPSBhaXJvaGFfcWRtYV9nZXRfZ2RtX2RldihldGgsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjk2LVxcdFxcdGlmIChJU19FUlIoZGV2KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzI4LVxcdFxcdGlmIChuZXRkZXZfdXNlc19kc2EobmV0ZGV2KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzI5OlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MzAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTc1Mi1cXHRcXHRpZiAocmVhc29uID09IFBQRV9DUFVfUkVBU09OX0hJVF9VTkJJTkRfUkFURV9SRUFDSEVEKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzUzOlxcdFxcdFxcdGFpcm9oYV9wcGVfY2hlY2tfc2tiKFxcdTAwMjZldGgtXFx1MDAzZXBwZS1cXHUwMDNlZGV2LCBxLVxcdTAwM2Vza2IsIGhhc2gsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjM5LjMxOTc5MDgxOFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIyODkzNDg3MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBORVRfQUlST0hBIEtjb25maWcqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIEtjb25maWcgZm9yIE5FVF9BSVJPSEEuIEknbSBnb2luZyB0byB0YWtlIGEgbG9vayBhdCB0aGlzIGFuZCBzZWUgaG93IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGxhaWQgb3V0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGZlYXR1cmVzIGFyZSBiZWluZyBleHBvc2VkLCBob3cgdGhleSdyZSBkZXBlbmRlbnQgb24gb3RoZXIgb3B0aW9ucywgYW5kIGFueSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIGZvciB0aGUgb3ZlcmFsbCBuZXR3b3JrIHN0YWNrLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGFueSBzaWducyBvZiB2ZW5kb3Itc3BlY2lmaWMgcXVpcmtzIG9yIG9wdGltaXphdGlvbnMsIHVudXN1YWwgZGVwZW5kZW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IG1pZ2h0IHJlcXVpcmUgZGVlcGVyIGludmVzdGlnYXRpb24gZm9yIGludGVncmF0aW9uIG9yIGN1c3RvbWl6YXRpb24uIE15IGtleSBhcmVhcyBvZiBmb2N1cyB3aWxsIGluY2x1ZGUgdGhlIGRldmljZSBkcml2ZXIgb3B0aW9ucywgYW55IG5ldHdvcmsgcHJvdG9jb2wgc3VwcG9ydCwgc2VjdXJpdHkgZmVhdHVyZXMsIGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIHRhcmdldCBBaXJvaGEgU29DJ3MgY2FwYWJpbGl0aWVzLiBJ4oCZbGwgYWxzbyBiZSBzZWFyY2hpbmcgZm9yIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGFyZWFzIHdoZXJlIHBlcmZvcm1hbmNlIHR1bmluZyBtaWdodCBiZSBuZWNlc3NhcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTc5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6NDEuNjA5MTQyMDY0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NjUzNzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5FVF9BSVJPSEFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZz04PWlmIE5FVF9WRU5ET1JfQUlST0hBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0xMS1cXHR0cmlzdGF0ZSBcXFwiQWlyb2hhIE5QVSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6MTg6Y29uZmlnIE5FVF9BSVJPSEFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjAtXFx0ZGVwZW5kcyBvbiBORVRfRFNBIHx8ICFORVRfRFNBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6MjE6XFx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjItXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6Mjc6Y29uZmlnIE5FVF9BSVJPSEFfRkxPV19TVEFUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI4LVxcdGRlZmF1bHQgeVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI5LVxcdGJvb2wgXFxcIkFpcm9oYSBmbG93IHN0YXRzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQSBcXHUwMDI2XFx1MDAyNiBORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTMxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19ORVRfQUlST0hBKSArPSBhaXJvaGEtZXRoLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGUtNy1haXJvaGEtZXRoLXkgOj0gYWlyb2hhX2V0aC5vIGFpcm9oYV9wcGUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSArPSBhaXJvaGFfbnB1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9Mzg9c3RhdGljIGludCBhaXJvaGFfcHBlX2dldF9udW1fc3RhdHNfZW50cmllcyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NDA6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19ORVRfQUlST0hBX0ZMT1dfU1RBVFMpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtNDEtXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo0MS42NTQ3OTk5OTFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNDI4NjAxODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggdGhpcyB0YXNrLCB0aGlua2luZyB0aHJvdWdoIGl0IHN0ZXAtYnktc3RlcDpcblxuKipDaGVja2luZyB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlciBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEZpcnN0LCBteSBpbnN0aW5jdCBpcyB0byBqdW1wIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnYC4gVGhhdCdzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJpdmVyLCBhbmQgY3J1Y2lhbGx5LCBob3cgYE5FVF9WRU5ET1JfQUlST0hBYCBpcyBkZWZpbmVkLiBLbm93aW5nIHRoYXQgc3ltYm9sIGlzIGtleS4gSSBuZWVkIHRvIGtub3cgKmlmKiBpdCdzIGV2ZW4gZW5hYmxlZCBhbmQgd2hhdCBpdHMgZGVwZW5kZW5jaWVzIG1pZ2h0IGJlLiBPbmNlIEkgaGF2ZSB0aGF0LCBJIGNhbiBkZXRlcm1pbmUgdGhlIGxldmVsIG9mIHN1cHBvcnQgdGhpcyBkcml2ZXIgaGFzIGF0IGEgZ2xhbmNlLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGRldmljZXMgb3IgYnVzZXMgdGhlIGBhaXJvaGFfZXRoYCBkcml2ZXIgaXMgZGVzaWduZWQgdG8gYmluZCB0by4gSXMgaXQgUENJLCBTUEksIFVTQiwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBLY29uZmlnIGxpa2VseSB3aWxsIHByb3ZpZGUgc29tZSBoaW50cywgYnV0IEknbGwgcHJvYmFibHkgaGF2ZSB0byB0cmFjZSB0aGUgY29kZSB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIFRoaXMgY29udGV4dCBpcyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIHN5c3RlbSBhbmQgd2hhdCBoYXJkd2FyZSBpdCdzIGludGVuZGVkIHRvIHN1cHBvcnQuIFRoaXMgaXMgd2hlcmUgSSBjYW4gc3RhcnQgdG8gZGV2ZWxvcCBhIG1lbnRhbCBtYXAgb2YgdGhlIGRyaXZlcidzIHJvbGUgaW4gdGhlIG5ldHdvcmtpbmcgbGFuZHNjYXBlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDkxMiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjQ1LjA4MzQwNDM5OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTkVUX1ZFTkRPUl9BSVJPSEFcXG4gICAzOlxcdFxcdGJvb2wgXFxcIkFpcm9oYSBkZXZpY2VzXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0FJUk9IQSB8fCBDT01QSUxFX1RFU1RcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgSWYgeW91IGhhdmUgYSBBaXJvaGEgU29DIHdpdGggZXRoZXJuZXQsIHNheSBZLlxcbiAgIDc6XFx0XFxuICAgODpcXHRpZiBORVRfVkVORE9SX0FJUk9IQVxcbiAgIDk6XFx0XFxuICAxMDpcXHRjb25maWcgTkVUX0FJUk9IQV9OUFVcXG4gIDExOlxcdFxcdHRyaXN0YXRlIFxcXCJBaXJvaGEgTlBVIHN1cHBvcnRcXFwiXFxuICAxMjpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDEzOlxcdFxcdHNlbGVjdCBSRUdNQVBfTU1JT1xcbiAgMTQ6XFx0XFx0aGVscFxcbiAgMTU6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBBaXJvaGEgTmV0d29yayBQcm9jZXNzb3IgKE5QVSkgYXZhaWxhYmxlXFxuICAxNjpcXHRcXHQgIG9uIHRoZSBBaXJvaGEgU29jIGZhbWlseS5cXG4gIDE3OlxcdFxcbiAgMTg6XFx0Y29uZmlnIE5FVF9BSVJPSEFcXG4gIDE5OlxcdFxcdHRyaXN0YXRlIFxcXCJBaXJvaGEgU29DIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4gIDIwOlxcdFxcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxcbiAgMjE6XFx0XFx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXFxuICAyMjpcXHRcXHRzZWxlY3QgUEFHRV9QT09MXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBnaWdhYml0IGV0aGVybmV0IE1BQ3MgaW4gdGhlXFxuICAyNTpcXHRcXHQgIEFpcm9oYSBTb0MgZmFtaWx5LlxcbiAgMjY6XFx0XFxuICAyNzpcXHRjb25maWcgTkVUX0FJUk9IQV9GTE9XX1NUQVRTXFxuICAyODpcXHRcXHRkZWZhdWx0IHlcXG4gIDI5OlxcdFxcdGJvb2wgXFxcIkFpcm9oYSBmbG93IHN0YXRzXFxcIlxcbiAgMzA6XFx0XFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFxcdTAwMjZcXHUwMDI2IE5FVF9BSVJPSEFfTlBVXFxuICAzMTpcXHRcXHRoZWxwXFxuICAzMjpcXHRcXHQgIEVuYWJsZSBBaXJvaGEgZmxvd3RhYmxlIHN0YXRpc3RpYyBjb3VudGVycy5cXG4gIDMzOlxcdFxcbiAgMzQ6XFx0ZW5kaWYgI05FVF9WRU5ET1JfQUlST0hBXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjQ1LjA4MzQ3MjYxOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjExMzQzODI0Mzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlcioqXG5cbk9rYXksIGxldCdzIGRpdmUgaW4uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgYGFpcm9oYV9ldGhgIGlzIGRvaW5nIGluIHRoaXMgY29udGV4dC4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIgdGFpbG9yZWQgZm9yIGFuIEFpcm9oYSBTeXN0ZW0tb24tYS1DaGlwLiBUaW1lIHRvIGNvbmZpcm0gdGhhdC4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgbmF2aWdhdGUgb3ZlciB0byBgYWlyb2hhX2V0aC5jYCBhbmQgemVybyBpbiBvbiB0aGUgZmFtaWxpYXIgcGF0dGVybnMgb2YgYSBwbGF0Zm9ybSBkcml2ZXI6IHNwZWNpZmljYWxseSwgSSdsbCBiZSBsb29raW5nIGZvciBgbW9kdWxlX3BsYXRmb3JtX2RyaXZlcmAgb3IganVzdCBgcGxhdGZvcm1fZHJpdmVyYCB0byBzZWUgaWYgdGhpcyBhbGlnbnMgd2l0aCBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZWJhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzAyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo1Ni40MjcyOTk3NzRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzODQ0MTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBsYXRmb3JtX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk1OD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9haXJvaGFfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM5NjA6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYWlyb2hhX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjEtXFx0LnByb2JlID0gYWlyb2hhX3Byb2JlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY3LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTY4Om1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz04MDY9c3RhdGljIHZvaWQgYWlyb2hhX25wdV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE1OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFpcm9oYV9ucHVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE2LVxcdC5wcm9iZSA9IGFpcm9oYV9ucHVfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgyMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODI0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo1Ni40NzExNTA4MjFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjQ4NTU0OTI5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgQWlyb2hhIEdpZ2FiaXQgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYGFpcm9oYV9kcml2ZXJgLiBSaWdodCwgdGhhdCdzIHRoZSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIFRoZSBzeXN0ZW0gaWRlbnRpZmllcyBpdCB1c2luZyB0aGUgRGV2aWNlIFRyZWUgbWF0Y2ggc3RyaW5nIGBvZl9haXJvaGFfbWF0Y2hgLiBBbHJpZ2h0LCB0aGF0J3Mgd2hhdCBJIGV4cGVjdC4gSSBzaG91bGQgY2hlY2sgdGhhdCBgb2ZfYWlyb2hhX21hdGNoYCBkZWZpbml0aW9uLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiB0aGUgc3lzdGVtIGlzIGNvcnJlY3RseSBpZGVudGlmeWluZyB0aGUgdGFyZ2V0IGhhcmR3YXJlLiBMZXQgbWUgcXVpY2tseSBleGFtaW5lIHRoYXQuLi4gaXQncyB0aGUgY3J1Y2lhbCBsaW5rIGluIHRoZSBjaGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIzNzMsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo1OC45NTY3MDI0MzRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0Njc3NjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9mX2Fpcm9oYV9tYXRjaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk0MT1zdGF0aWMgY29uc3Qgc3RydWN0IGFpcm9oYV9ldGhfc29jX2RhdGEgYW43NTgzX3NvY19kYXRhID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk1MzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9haXJvaGFfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NTQtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhaXJvaGEsZW43NTgxLWV0aFxcXCIsIC5kYXRhID0gXFx1MDAyNmVuNzU4MV9zb2NfZGF0YSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU3LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTU4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX2Fpcm9oYV9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk2MD1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhaXJvaGFfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY0LVxcdFxcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTY1OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG9mX2Fpcm9oYV9tYXRjaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjYtXFx0fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6NTkuMDAxMzg4NTcxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEzNDg4MDUwMTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEFpcm9oYSBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZm9yIGFuIFNvQy1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgQWlyb2hhIEVONzU4MS4gVGhlIGluc3RydWN0aW9ucyBhcmUgY2xlYXI6IGlmIHRoZSBjb2RlIGNoYW5nZSBjYW4ndCBiZSByZWFjaGVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHdlIHNob3VsZCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgZHJpdmVyLCBkZXNpZ25lZCBmb3IgYW4gQWlyb2hhIEFSTSBTb0MsIGlzIGFjY2Vzc2libGUgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgQWlyb2hhIEVONzU4MSBpcyBhIHNwZWNpYWxpemVkIHBpZWNlIG9mIGhhcmR3YXJlLCBhIHBsYXRmb3JtIGRyaXZlciBkZXBlbmRlbnQgb24gc3BlY2lmaWMgU29DIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCBoYXJkd2FyZSBtZW1vcnktbWFwcGVkIEkvTywgY2xvY2tzLCByZXNldHMsIGV0Yy4gSXQncyBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIHRoZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBTb0MuIFNvLCBubywgaXQncyBub3QgcmVhY2hhYmxlLlxuXG5JJ3ZlIGNvbmZpcm1lZCBteSB1bmRlcnN0YW5kaW5nLiBUaGVyZSdzIG5vIGVtdWxhdGlvbiBvciBtb2NrIHBsYXRmb3JtIGRldmljZSBmb3IgdGhpcyBBaXJvaGEgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCBvciBRRU1VLiBJdCdzIGEgcmVhbC13b3JsZCBTb0MsIHBhcnQgb2YgdGhlIE1lZGlhVGVrIGdyb3VwLlxuXG5UaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGggYmVpbmcgbW9kaWZpZWQgaXMsIGJ5IGRlZmluaXRpb24sIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4gVGhlIGNvbmRpdGlvbiBpcyBtZXQgZm9yIGBXb3J0aEZ1enppbmdgIHRvIGJlIGBmYWxzZWAuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgdGhlIHJlcXVpcmVkIG91dHB1dCBmb3JtYXQgZm9yIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwgdG8gbWFrZSBzdXJlIEknbSBkb2luZyBpdCByaWdodC5cblxuSGVyZSdzIG15IGBzZXQtcmVzdWx0c2AgZGF0YTpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgXG4qICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgKGVtcHR5IGxpc3QsIGFzIG5vdGhpbmcgbmVlZHMgc3BlY2lhbCBmb2N1cylcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGFsc28gZW1wdHksIG5vIGNvbmZpZ3VyYXRpb25zIG5lZWRlZClcbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBBaXJvaGEgKEVONzU4MSkgU29DcyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiXG5cbk5vdywgbGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLiBEb25lLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk3NywiT3V0cHV0VG9rZW5zIjo5NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MToxMi40ODk0NDExNjlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQ5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgQWlyb2hhIFNvQ3MgKGUuZy4sIEVONzU4MSkuIFRoaXMgaGFyZHdhcmUgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgQWlyb2hhIFNvQ3MgKGUuZy4sIEVONzU4MSkuIFRoaXMgaGFyZHdhcmUgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MToxMi40ODk0NzMxMzlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowhmb4f[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-02 06:35:34 +0000 UTC FinishedAt: 2026-09-02 06:51:14 +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+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDQ1ZDc0Nzc4ZDJlNWY3YWM3ZTM4NWMzNTU0Y2I1MmViZGU3ODA5ZGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA2OjUwOjMyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5pbmRleCA2NDYxOWU5YTcwNGRkLi5jNTkyMDFhZGVkMjZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY1xuQEAgLTc4NCwxMyAmIzQzOzc4NCwxNiBAQCBzdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4gXHRcdGludCBpLCBxaWQgPSBxIC0gXHUwMDI2cWRtYS1cdTAwM2VxX3J4WzBdO1xuIFx0XHRpbnQgaW50cl9yZWcgPSBxaWQgXHUwMDNjIFJYX0RPTkVfSElHSF9PRkZTRVQgPyBRRE1BX0lOVF9SRUdfSURYMVxuIFx0XHRcdFx0XHRcdFx0IDogUURNQV9JTlRfUkVHX0lEWDI7XG4mIzQzO1x0XHR1MzIgaXJxX2lkID0gcWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVDtcbiYjNDM7XHRcdHUzMiBpbnRyX21hc2sgPSBCSVQoaXJxX2lkKSB8XG4mIzQzO1x0XHRcdFx0QklUKGlycV9pZCAmIzQzOyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKTtcbiBcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShxZG1hLVx1MDAzZWlycV9iYW5rcyk7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdFx0aWYgKCEoQklUKHFpZCkgXHUwMDI2IFJYX0lSUV9CQU5LX1BJTl9NQVNLKGkpKSlcbiBcdFx0XHRcdGNvbnRpbnVlO1xuIFxuIFx0XHRcdGFpcm9oYV9xZG1hX2lycV9lbmFibGUoXHUwMDI2cWRtYS1cdTAwM2VpcnFfYmFua3NbaV0sIGludHJfcmVnLFxuLVx0XHRcdFx0XHQgICAgICAgQklUKHFpZCAlIFJYX0RPTkVfSElHSF9PRkZTRVQpKTtcbiYjNDM7XHRcdFx0XHRcdCAgICAgICBpbnRyX21hc2spO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtMTQ2OCwxNiAmIzQzOzE0NzEsMTkgQEAgc3RhdGljIGlycXJldHVybl90IGFpcm9oYV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4gXHRpZiAoIXRlc3RfYml0KERFVl9TVEFURV9JTklUSUFMSVpFRCwgXHUwMDI2cWRtYS1cdTAwM2VldGgtXHUwMDNlc3RhdGUpKVxuIFx0XHRyZXR1cm4gSVJRX05PTkU7XG4gXG4tXHRyeF9pbnRyMSA9IGludHJbMV0gXHUwMDI2IFJYX0RPTkVfTE9XX0lOVF9NQVNLO1xuJiM0MztcdHJ4X2ludHIxID0gaW50clsxXSBcdTAwMjYgKFJYX0RPTkVfTE9XX0lOVF9NQVNLIHwgUlhfTk9fQ1BVX0RTQ1BfTE9XX0lOVF9NQVNLKTtcbiBcdGlmIChyeF9pbnRyMSkge1xuIFx0XHRhaXJvaGFfcWRtYV9pcnFfZGlzYWJsZShpcnFfYmFuaywgUURNQV9JTlRfUkVHX0lEWDEsIHJ4X2ludHIxKTtcbi1cdFx0cnhfaW50cl9tYXNrIHw9IHJ4X2ludHIxO1xuJiM0MztcdFx0cnhfaW50cl9tYXNrIHw9IChyeF9pbnRyMSBcdTAwMjYgUlhfRE9ORV9MT1dfSU5UX01BU0spIHxcbiYjNDM7XHRcdFx0XHRSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0socnhfaW50cjEpO1xuIFx0fVxuIFxuLVx0cnhfaW50cjIgPSBpbnRyWzJdIFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0s7XG4mIzQzO1x0cnhfaW50cjIgPSBpbnRyWzJdIFx1MDAyNiAoUlhfRE9ORV9ISUdIX0lOVF9NQVNLIHwgUlhfTk9fQ1BVX0RTQ1BfSElHSF9JTlRfTUFTSyk7XG4gXHRpZiAocnhfaW50cjIpIHtcbiBcdFx0YWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoaXJxX2JhbmssIFFETUFfSU5UX1JFR19JRFgyLCByeF9pbnRyMik7XG4tXHRcdHJ4X2ludHJfbWFzayB8PSAocnhfaW50cjIgXHUwMDNjXHUwMDNjIDE2KTtcbiYjNDM7XHRcdHJ4X2ludHJfbWFzayB8PSAoKHJ4X2ludHIyIFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0spIFx1MDAzY1x1MDAzY1xuJiM0MztcdFx0XHRcdCBSWF9ET05FX0hJR0hfT0ZGU0VUKSB8XG4mIzQzO1x0XHRcdFx0KHJ4X2ludHIyIFx1MDAyNiBSWF9OT19DUFVfRFNDUF9ISUdIX0lOVF9NQVNLKTtcbiBcdH1cbiBcbiBcdGZvciAoaSA9IDA7IHJ4X2ludHJfbWFzayBcdTAwMjZcdTAwMjYgaSBcdTAwM2MgQVJSQVlfU0laRShxZG1hLVx1MDAzZXFfcngpOyBpJiM0MzsmIzQzOykge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oXG5pbmRleCBmYTlhOGVkY2UyMmZmLi43ZmMzN2YxNTlkMmI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxuQEAgLTQxLDkgJiM0Mzs0MSwxMCBAQFxuICNkZWZpbmUgVFhfRFNDUF9OVU1cdFx0XHQxMDI0XG4gI2RlZmluZSBSWF9EU0NQX05VTShfbilcdFx0XHRcXFxuIFx0KChfbikgPT0gIDIgPyAxMjggOlx0XHRcXFxuJiM0MztcdCAoX24pID09ICA0ID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDExID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDE1ID8gMTI4IDpcdFx0XFxcbi1cdCAoX24pID09ICAwID8gMTAyNCA6IDE2KVxuJiM0MztcdCAoX24pID09ICAwID8gMTAyNCA6IDMyKVxuIFxuICNkZWZpbmUgUFNFX1JTVl9QQUdFU1x0XHRcdDEyOFxuICNkZWZpbmUgUFNFX1FVRVVFX1JTVl9QQUdFU1x0XHQ2NFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmhcbmluZGV4IDQ0MmI0OGM5Yjk5MWUuLmJkZTNkNTk5ZDhiN2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmhcbkBAIC01NDksNiAmIzQzOzU0OSw4IEBAXG4gI2RlZmluZSBJTlRfUlgxX01BU0soX24pXHRcdFx0XHRcdFx0XHRcXFxuIFx0KCgoKF9uKSBcdTAwM2NcdTAwM2MgUlhfTk9fQ1BVX0RTQ1BfTE9XX09GRlNFVCkgXHUwMDI2IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSykgfFx0XFxcbiBcdCAoUlhfRE9ORV9MT1dfSU5UX01BU0sgXHUwMDI2IChfbikpKVxuJiM0MzsjZGVmaW5lIFJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhfbilcdFx0XHRcdFx0XFxcbiYjNDM7XHQoKChfbikgXHUwMDI2IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSykgXHUwMDNlXHUwMDNlIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpXG4gXG4gLyogUURNQV9DU1JfSU5UX0VOQUJMRTMgKi9cbiAjZGVmaW5lIFJYMzFfTk9fQ1BVX0RTQ1BfSU5UX01BU0tcdEJJVCgzMSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgQWlyb2hhIFNvQ3MgKGUuZy4sIEVONzU4MSkuIFRoaXMgaGFyZHdhcmUgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDVkNzQ3NzhkMmU1ZjdhYzdlMzg1YzM1NTRjYjUyZWJkZTc4MDlkZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgU2VwIDIgMDY6NTA6MzIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYwppbmRleCA2NDYxOWU5YTcwNGRkLi5jNTkyMDFhZGVkMjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMKQEAgLTc4NCwxMyAmIzQzOzc4NCwxNiBAQCBzdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJCWludCBpLCBxaWQgPSBxIC0gJmFtcDtxZG1hLSZndDtxX3J4WzBdOwogCQlpbnQgaW50cl9yZWcgPSBxaWQgJmx0OyBSWF9ET05FX0hJR0hfT0ZGU0VUID8gUURNQV9JTlRfUkVHX0lEWDEKIAkJCQkJCQkgOiBRRE1BX0lOVF9SRUdfSURYMjsKJiM0MzsJCXUzMiBpcnFfaWQgPSBxaWQgJSBSWF9ET05FX0hJR0hfT0ZGU0VUOwomIzQzOwkJdTMyIGludHJfbWFzayA9IEJJVChpcnFfaWQpIHwKJiM0MzsJCQkJQklUKGlycV9pZCAmIzQzOyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKTsKIAogCQlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRShxZG1hLSZndDtpcnFfYmFua3MpOyBpJiM0MzsmIzQzOykgewogCQkJaWYgKCEoQklUKHFpZCkgJmFtcDsgUlhfSVJRX0JBTktfUElOX01BU0soaSkpKQogCQkJCWNvbnRpbnVlOwogCiAJCQlhaXJvaGFfcWRtYV9pcnFfZW5hYmxlKCZhbXA7cWRtYS0mZ3Q7aXJxX2JhbmtzW2ldLCBpbnRyX3JlZywKLQkJCQkJICAgICAgIEJJVChxaWQgJSBSWF9ET05FX0hJR0hfT0ZGU0VUKSk7CiYjNDM7CQkJCQkgICAgICAgaW50cl9tYXNrKTsKIAkJfQogCX0KIApAQCAtMTQ2OCwxNiAmIzQzOzE0NzEsMTkgQEAgc3RhdGljIGlycXJldHVybl90IGFpcm9oYV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpCiAJaWYgKCF0ZXN0X2JpdChERVZfU1RBVEVfSU5JVElBTElaRUQsICZhbXA7cWRtYS0mZ3Q7ZXRoLSZndDtzdGF0ZSkpCiAJCXJldHVybiBJUlFfTk9ORTsKIAotCXJ4X2ludHIxID0gaW50clsxXSAmYW1wOyBSWF9ET05FX0xPV19JTlRfTUFTSzsKJiM0MzsJcnhfaW50cjEgPSBpbnRyWzFdICZhbXA7IChSWF9ET05FX0xPV19JTlRfTUFTSyB8IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSyk7CiAJaWYgKHJ4X2ludHIxKSB7CiAJCWFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMSwgcnhfaW50cjEpOwotCQlyeF9pbnRyX21hc2sgfD0gcnhfaW50cjE7CiYjNDM7CQlyeF9pbnRyX21hc2sgfD0gKHJ4X2ludHIxICZhbXA7IFJYX0RPTkVfTE9XX0lOVF9NQVNLKSB8CiYjNDM7CQkJCVJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhyeF9pbnRyMSk7CiAJfQogCi0JcnhfaW50cjIgPSBpbnRyWzJdICZhbXA7IFJYX0RPTkVfSElHSF9JTlRfTUFTSzsKJiM0MzsJcnhfaW50cjIgPSBpbnRyWzJdICZhbXA7IChSWF9ET05FX0hJR0hfSU5UX01BU0sgfCBSWF9OT19DUFVfRFNDUF9ISUdIX0lOVF9NQVNLKTsKIAlpZiAocnhfaW50cjIpIHsKIAkJYWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoaXJxX2JhbmssIFFETUFfSU5UX1JFR19JRFgyLCByeF9pbnRyMik7Ci0JCXJ4X2ludHJfbWFzayB8PSAocnhfaW50cjIgJmx0OyZsdDsgMTYpOwomIzQzOwkJcnhfaW50cl9tYXNrIHw9ICgocnhfaW50cjIgJmFtcDsgUlhfRE9ORV9ISUdIX0lOVF9NQVNLKSAmbHQ7Jmx0OwomIzQzOwkJCQkgUlhfRE9ORV9ISUdIX09GRlNFVCkgfAomIzQzOwkJCQkocnhfaW50cjIgJmFtcDsgUlhfTk9fQ1BVX0RTQ1BfSElHSF9JTlRfTUFTSyk7CiAJfQogCiAJZm9yIChpID0gMDsgcnhfaW50cl9tYXNrICZhbXA7JmFtcDsgaSAmbHQ7IEFSUkFZX1NJWkUocWRtYS0mZ3Q7cV9yeCk7IGkmIzQzOyYjNDM7KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaAppbmRleCBmYTlhOGVkY2UyMmZmLi43ZmMzN2YxNTlkMmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgKQEAgLTQxLDkgJiM0Mzs0MSwxMCBAQAogI2RlZmluZSBUWF9EU0NQX05VTQkJCTEwMjQKICNkZWZpbmUgUlhfRFNDUF9OVU0oX24pCQkJXAogCSgoX24pID09ICAyID8gMTI4IDoJCVwKJiM0MzsJIChfbikgPT0gIDQgPyAxMjggOgkJXAogCSAoX24pID09IDExID8gMTI4IDoJCVwKIAkgKF9uKSA9PSAxNSA/IDEyOCA6CQlcCi0JIChfbikgPT0gIDAgPyAxMDI0IDogMTYpCiYjNDM7CSAoX24pID09ICAwID8gMTAyNCA6IDMyKQogCiAjZGVmaW5lIFBTRV9SU1ZfUEFHRVMJCQkxMjgKICNkZWZpbmUgUFNFX1FVRVVFX1JTVl9QQUdFUwkJNjQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmgKaW5kZXggNDQyYjQ4YzliOTkxZS4uYmRlM2Q1OTlkOGI3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmgKQEAgLTU0OSw2ICYjNDM7NTQ5LDggQEAKICNkZWZpbmUgSU5UX1JYMV9NQVNLKF9uKQkJCQkJCQlcCiAJKCgoKF9uKSAmbHQ7Jmx0OyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKSAmYW1wOyBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIHwJXAogCSAoUlhfRE9ORV9MT1dfSU5UX01BU0sgJmFtcDsgKF9uKSkpCiYjNDM7I2RlZmluZSBSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0soX24pCQkJCQlcCiYjNDM7CSgoKF9uKSAmYW1wOyBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spICZndDsmZ3Q7IFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpCiAKIC8qIFFETUFfQ1NSX0lOVF9FTkFCTEUzICovCiAjZGVmaW5lIFJYMzFfTk9fQ1BVX0RTQ1BfSU5UX01BU0sJQklUKDMxKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzQ4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIGNvbnNjaW91c25lc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNgLCBgYWlyb2hhX2V0aC5oYCwgYW5kIGBhaXJvaGFfcmVncy5oYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7T2theSwgQWlyb2hhLiBSaWdodC4gTGV0JiMzOTtzIGdldCBhIGhhbmRsZSBvbiB0aGlzLiYjMzQ7IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQga2luZCBvZiBiZWFzdCB0aGlzIEFpcm9oYSBFdGhlcm5ldCBkcml2ZXIgKmlzKi4gSXMgdGhpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgYSBzcGVjaWZpYyBTb0M/IElzIGl0IGRlYWxpbmcgd2l0aCBhIHBoeXNpY2FsIEV0aGVybmV0IGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBkaXJlY3RseSBvbnRvIGFuIEFpcm9oYSBjaGlwPyBQZXJoYXBzIGl0JiMzOTtzIGEgUENJZSBiYXNlZCBzb2x1dGlvbj8gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoIHRoZSB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZS4gVGltZSB0byBlbXBsb3kgc29tZSBjbGFzc2ljIHRlY2huaXF1ZXMuIEkmIzM5O2xsIHByb2JhYmx5IHN0YXJ0IHdpdGggYSBxdWljayBgcmVhZC1maWxlYCBvciBgZ3JlcHBlcmAgc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gR2V0IGEgZmVlbCBmb3IgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIHRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlciwgb3IgYW55IGNsdWVzIGFib3V0IHRoZSBoYXJkd2FyZSBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoLiBHb3R0YSBidWlsZCB0aGF0IG1lbnRhbCBtb2RlbCwgcXVpY2tseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthaXJvaGEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzNjc1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19ORVRfQUlST0hBKSAmIzQzOz0gYWlyb2hhLWV0aC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6NzphaXJvaGEtZXRoLXkgOj0gYWlyb2hhX2V0aC5vIGFpcm9oYV9wcGUub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjg6YWlyb2hhLWV0aC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0FJUk9IQV9OUFUpICYjNDM7PSBhaXJvaGFfbnB1Lm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzojaW5jbHVkZSBcJiMzNDthaXJvaGFfcmVncy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE4OiNpbmNsdWRlIFwmIzM0O2Fpcm9oYV9ldGguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA6dTMyIGFpcm9oYV9ycih2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNTp2b2lkIGFpcm9oYV93cih2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMDp1MzIgYWlyb2hhX3Jtdyh2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMyOlx0dmFsIHw9IChhaXJvaGFfcnIoYmFzZSwgb2Zmc2V0KSBcdTAwMjYgfm1hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMzpcdGFpcm9oYV93cihiYXNlLCBvZmZzZXQsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM4OnN0YXRpYyB2b2lkIGFpcm9oYV9xZG1hX3NldF9pcnFtYXNrKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOS1cdFx0XHRcdCAgICBpbnQgaW5kZXgsIHUzMiBjbGVhciwgdTMyIHNldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MTpcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSA9IGlycV9iYW5rLVx1MDAzZXFkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQyLVx0aW50IGJhbmsgPSBpcnFfYmFuayAtIFx1MDAyNnFkbWEtXHUwMDNlaXJxX2JhbmtzWzBdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEtXHRpcnFfYmFuay1cdTAwM2VpcnFtYXNrW2luZGV4XSB8PSBzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUyOlx0YWlyb2hhX3FkbWFfd3IocWRtYSwgUkVHX0lOVF9FTkFCTEUoYmFuaywgaW5kZXgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01My1cdFx0ICAgICAgIGlycV9iYW5rLVx1MDAzZWlycW1hc2tbaW5kZXhdKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3Olx0YWlyb2hhX3FkbWFfcnIocWRtYSwgUkVHX0lOVF9FTkFCTEUoYmFuaywgaW5kZXgpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjI6c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfaXJxX2VuYWJsZShzdHJ1Y3QgYWlyb2hhX2lycV9iYW5rICppcnFfYmFuayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjMtXHRcdFx0XHQgICBpbnQgaW5kZXgsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY1Olx0YWlyb2hhX3FkbWFfc2V0X2lycW1hc2soaXJxX2JhbmssIGluZGV4LCAwLCBtYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjYtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Njg6c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoc3RydWN0IGFpcm9oYV9pcnFfYmFuayAqaXJxX2JhbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY5LVx0XHRcdFx0ICAgIGludCBpbmRleCwgdTMyIG1hc2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTcwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzE6XHRhaXJvaGFfcWRtYV9zZXRfaXJxbWFzayhpcnFfYmFuaywgaW5kZXgsIG1hc2ssIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03Mi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTc1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzYtXHR1OCByZWZfYWRkcltFVEhfQUxFTl0gX19hbGlnbmVkKDIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NzpcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03OC1cdHUzMiByZWcsIHZhbCwgbG1pbiwgbG1heDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtODctXHRcdGludCBqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTItXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cdTAwM2VkZXZzKTsgaiYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6OTM6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICppdGVyX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTQtXHRcdFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDA6XHRcdFx0aWYgKGFpcm9oYV9pc19sYW5fZ2RtX2RldihpdGVyX2RldikgIT1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTAxOlx0XHRcdCAgICBhaXJvaGFfaXNfbGFuX2dkbV9kZXYoZGV2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTAyLVx0XHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEzNDpcdHJlZyA9IGFpcm9oYV9pc19sYW5fZ2RtX2RldihkZXYpID8gUkVHX0ZFX0xBTl9NQUNfSCA6IFJFR19GRV9XQU5fTUFDX0g7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEzNS1cdHZhbCA9IChhZGRyWzBdIFx1MDAzY1x1MDAzYyAxNikgfCAoYWRkclsxXSBcdTAwM2NcdTAwM2MgOCkgfCBhZGRyWzJdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMzY6XHRhaXJvaGFfZmVfd3IoZXRoLCByZWcsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTM4Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX01BQ19MTUlOKHJlZyksIGxtaW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMzk6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfTUFDX0xNQVgocmVnKSwgbG1heCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE0MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTQxOlx0YWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oZGV2LCBhZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNDY6c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNDctXHRcdFx0XHRcdHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE0OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE0OTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fT0NGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTAtXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX09DRlFfTUFTSywgdmFsKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1MTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fTUNGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTItXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX01DRlFfTUFTSywgdmFsKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1MzpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fQkNGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTQtXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX0JDRlFfTUFTSywgdmFsKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1NTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fVUNGUV9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTYtXHRcdCAgICAgIEZJRUxEX1BSRVAoR0RNX1VDRlFfTUFTSywgdmFsKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1OTpzdGF0aWMgaW50IGFpcm9oYV9zZXRfdmlwX2Zvcl9nZG1fcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2MTpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTYyOlx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2My1cdHUzMiB2aXBfcG9ydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2Ni1cdGlmIChlbmFibGUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTY3Olx0XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX1ZJUF9QT1JUX0VOLCB2aXBfcG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2ODpcdFx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9JRkNfUE9SVF9FTiwgdmlwX3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjktXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzA6XHRcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9WSVBfUE9SVF9FTiwgdmlwX3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzE6XHRcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9JRkNfUE9SVF9FTiwgdmlwX3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzItXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE3NzpzdGF0aWMgdm9pZCBhaXJvaGFfZmVfbWFjY3JfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTgxLVx0Zm9yIChwID0gMTsgcCBcdTAwM2M9IEFSUkFZX1NJWkUoZXRoLVx1MDAzZXBvcnRzKTsgcCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTgyOlx0XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0dETV9GV0RfQ0ZHKHApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xODMtXHRcdFx0ICAgICAgR0RNX1RDUF9DS1NVTV9NQVNLIHwgR0RNX1VEUF9DS1NVTV9NQVNLIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTg0LVx0XHRcdCAgICAgIEdETV9JUDRfQ0tTVU1fTUFTSyB8IEdETV9EUk9QX0NSQ19FUlJfTUFTSyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE4NTpcdFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19HRE1fTEVOX0NGRyhwKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTg2LVx0XHRcdCAgICAgIEdETV9TSE9SVF9MRU5fTUFTSyB8IEdETV9MT05HX0xFTl9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9WTEFOX0NUUkwoMSksIENETV9WTEFOX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5Mi1cdFx0ICAgICAgRklFTERfUFJFUChDRE1fVkxBTl9NQVNLLCAweDgxMDApKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTQ6XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX0NQT1JUX0NGRywgRkVfQ1BPUlRfUEFEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTc6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3ZpcF9zZXR1cChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTk6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMyksIEVUSF9QX1BQUF9ESVNDKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjAwOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigzKSwgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTig0KSwgUFBQX0xDUCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oNCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwNC1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDYpLCBQUFBfSVBDUCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwODpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oNiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOS1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjEyOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDcpLCBQUFBfQ0hBUCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oNyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNC1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNy1cdC8qIEJPT1RQICgweDQzKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTg6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oOCksIDB4NDMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTk6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjAtXHRcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX1NQX0VOX01BU0sgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIzLVx0LyogQk9PVFAgKDB4NDQpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNDpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTig5KSwgMHg0NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNTpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oOSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNi1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjktXHQvKiBJU0FLTVAgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjMwOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDEwKSwgMHgxZjQwMWY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjMxOlx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxMCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIzMi1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fRFBfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIzNTpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigxMSksIFBQUF9JUFY2Q1ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMzY6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDExKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjM3LVx0XHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgRklFTERfUFJFUChQQVROX1RZUEVfTUFTSywgMSkgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQwLVx0LyogREhDUHY2ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0MTpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigxMiksIDB4MjIyMDIyMyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0MjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oMTIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDMtXHRcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0RQX0VOX01BU0sgfCBQQVROX1NQX0VOX01BU0sgfFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNDY6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMTkpLCBQUFBfUEFQKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjQ3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxOSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0OC1cdFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1MS1cdC8qIEVUSC1cdTAwM2VFVEhfUF8xOTA1ICgweDg5M2EpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1MjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigyMCksIDB4ODkzYSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1MzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oMjApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTQtXHRcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1NjpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigyMSksIEVUSF9QX0xMRFApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNTc6XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDIxKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjU4LVx0XHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgUEFUTl9FTl9NQVNLKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjYxOnN0YXRpYyB1MzIgYWlyb2hhX2ZlX2dldF9wc2VfcXVldWVfcnN2X3BhZ2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2Mi1cdFx0XHRcdFx0ICAgICB1MzIgcG9ydCwgdTMyIHF1ZXVlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNjQ6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9RVUVVRV9DRkdfV1IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2NS1cdFx0ICAgICAgUFNFX0NGR19QT1JUX0lEX01BU0sgfCBQU0VfQ0ZHX1FVRVVFX0lEX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2OTpcdHJldHVybiBhaXJvaGFfZmVfZ2V0KGV0aCwgUkVHX0ZFX1BTRV9RVUVVRV9DRkdfVkFMLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzAtXHRcdFx0ICAgICBQU0VfQ0ZHX09RX1JTVl9NQVNLKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjczOnN0YXRpYyB2b2lkIGFpcm9oYV9mZV9zZXRfcHNlX3F1ZXVlX3Jzdl9wYWdlcyhzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzQtXHRcdFx0XHRcdCAgICAgIHUzMiBwb3J0LCB1MzIgcXVldWUsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI3NjpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX1FVRVVFX0NGR19WQUwsIFBTRV9DRkdfT1FfUlNWX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3Ny1cdFx0ICAgICAgRklFTERfUFJFUChQU0VfQ0ZHX09RX1JTVl9NQVNLLCB2YWwpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjc4Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfUVVFVUVfQ0ZHX1dSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzktXHRcdCAgICAgIFBTRV9DRkdfUE9SVF9JRF9NQVNLIHwgUFNFX0NGR19RVUVVRV9JRF9NQVNLIHxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjg2OnN0YXRpYyB1MzIgYWlyb2hhX2ZlX2dldF9wc2VfYWxsX3JzdihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyODg6XHRyZXR1cm4gYWlyb2hhX2ZlX2dldChldGgsIFJFR19GRV9QU0VfQlVGX1NFVCwgUFNFX0FMTFJTVl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjg5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyOTE6c3RhdGljIGludCBhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3Yoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkyLVx0XHRcdFx0ICAgIHUzMiBwb3J0LCB1MzIgcXVldWUsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI5NDpcdHUzMiBvcmlnX3ZhbCA9IGFpcm9oYV9mZV9nZXRfcHNlX3F1ZXVlX3Jzdl9wYWdlcyhldGgsIHBvcnQsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjk1LVx0dTMyIHRtcCwgYWxsX3JzdiwgZnFfbGltaXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjk3Olx0YWlyb2hhX2ZlX3NldF9wc2VfcXVldWVfcnN2X3BhZ2VzKGV0aCwgcG9ydCwgcXVldWUsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjk5LVx0LyogbW9kaWZ5IGFsbCByc3YgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAwOlx0YWxsX3JzdiA9IGFpcm9oYV9mZV9nZXRfcHNlX2FsbF9yc3YoZXRoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzAxLVx0YWxsX3JzdiAmIzQzOz0gKHZhbCAtIG9yaWdfdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAyOlx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfQlVGX1NFVCwgUFNFX0FMTFJTVl9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDMtXHRcdCAgICAgIEZJRUxEX1BSRVAoUFNFX0FMTFJTVl9NQVNLLCBhbGxfcnN2KSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDUtXHQvKiBtb2RpZnkgaHRoZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMDY6XHRmcV9saW1pdCA9IGFpcm9oYV9mZV9nZXQoZXRoLCBQU0VfRlFfQ0ZHLCBQU0VfRlFfTElNSVRfTUFTSyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwNy1cdHRtcCA9IGZxX2xpbWl0IC0gYWxsX3JzdiAtIDB4MjA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwODpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfUFNFX1NIQVJFX1VTRURfVEhELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDktXHRcdCAgICAgIFBTRV9TSEFSRV9VU0VEX0hUSERfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMi1cdHRtcCA9IGZxX2xpbWl0IC0gYWxsX3JzdiAtIDB4MTAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTM6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9TSEFSRV9VU0VEX1RIRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE0LVx0XHQgICAgICBQU0VfU0hBUkVfVVNFRF9NVEhEX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTYtXHR0bXAgPSAoMyAqIHRtcCkgXHUwMDNlXHUwMDNlIDI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX0JVRl9TRVQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxOC1cdFx0ICAgICAgUFNFX1NIQVJFX1VTRURfTFRIRF9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjQ6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3BzZV9wb3J0c19pbml0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0MTpcdGlmIChhaXJvaGFfcHBlX2lzX2VuYWJsZWQoZXRoLCAxKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDItXHRcdHUzMiBhbGxfcnN2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQ0LVx0XHQvKiBodyBtaXNzZXMgUFBFMiBvcSByc3YgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQ1Olx0XHRhbGxfcnN2ID0gYWlyb2hhX2ZlX2dldF9wc2VfYWxsX3JzdihldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDYtXHRcdGFsbF9yc3YgJiM0Mzs9IFBTRV9SU1ZfUEFHRVMgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDctXHRcdFx0ICAgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9QUEUyXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQ4Olx0XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9CVUZfU0VULCBQU0VfQUxMUlNWX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0OS1cdFx0XHQgICAgICBGSUVMRF9QUkVQKFBTRV9BTExSU1ZfTUFTSywgYWxsX3JzdikpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzUzLVx0Zm9yIChxID0gMDsgcSBcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9DRE0xXTsgcSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM1NDpcdFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNMSwgcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU1LVx0XHRcdFx0XHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTctXHRmb3IgKHEgPSAwOyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTFdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU4Olx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE0xLCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTktXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2MS1cdGZvciAocSA9IDY7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNMl07IHEmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjI6XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0dETTIsIHEsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjMtXHQvKiBHRE0zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2NC1cdGZvciAocSA9IDA7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNM107IHEmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjU6XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0dETTMsIHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2Ni1cdFx0XHRcdFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5LVx0XHRpZiAocSBcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9QUEUxXSAvIDIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3MDpcdFx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUxLCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzEtXHRcdFx0XHRcdFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzItXHRcdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczOlx0XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX1BQRTEsIHEsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzQtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzYtXHRmb3IgKHEgPSAwOyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTJdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzc3Olx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9DRE0yLCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzgtXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4MC1cdGZvciAocSA9IDA7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfQ0RNM10gLSAxOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzgxOlx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9DRE0zLCBxLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzgyLVx0LyogQ0RNNCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODMtXHRmb3IgKHEgPSA0OyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTRdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzg0Olx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9DRE00LCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODUtXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzg2Olx0aWYgKGFpcm9oYV9wcGVfaXNfZW5hYmxlZChldGgsIDEpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4Ny1cdFx0LyogUFBFMiAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzg5LVx0XHRcdGlmIChxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX1BQRTJdIC8gMilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzkwOlx0XHRcdFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfUFBFMixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzkxLVx0XHRcdFx0XHRcdFx0IHEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTMtXHRcdFx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTQ6XHRcdFx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTUtXHRcdFx0XHRcdFx0XHQgcSwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTktXHRmb3IgKHEgPSAwOyBxIFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTRdOyBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDAwOlx0XHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE00LCBxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MDEtXHRcdFx0XHRcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwMy1cdGZvciAocSA9IDA7IHEgXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfQ0RNNV07IHEmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MDQ6XHRcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0NETTUsIHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwNS1cdFx0XHRcdFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MDg6c3RhdGljIGludCBhaXJvaGFfZmVfbWNfdmxhbl9jbGVhcihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MTY6XHRcdGFpcm9oYV9mZV93cihldGgsIFJFR19NQ19WTEFOX0RBVEEsIDB4MCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQxNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQxOS1cdFx0ICAgICAgTUNfVkxBTl9DRkdfVEFCTEVfU0VMX01BU0sgfCBNQ19WTEFOX0NGR19SV19NQVNLO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MjA6XHRcdGFpcm9oYV9mZV93cihldGgsIFJFR19NQ19WTEFOX0NGRywgdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDIxOlx0XHRlcnIgPSByZWFkX3BvbGxfdGltZW91dChhaXJvaGFfZmVfcnIsIHZhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDIyLVx0XHRcdFx0XHR2YWwgXHUwMDI2IE1DX1ZMQU5fQ0ZHX0NNRF9ET05FX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MjgtXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFJUk9IQV9GRV9NQ19NQVhfVkxBTl9QT1JUOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0Mjk6XHRcdFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fREFUQSwgMHgwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDMwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDMzLVx0XHRcdCAgICAgIE1DX1ZMQU5fQ0ZHX1JXX01BU0s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQzNDpcdFx0XHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfTUNfVkxBTl9DRkcsIHZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQzNTpcdFx0XHRlcnIgPSByZWFkX3BvbGxfdGltZW91dChhaXJvaGFfZmVfcnIsIHZhbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDM2LVx0XHRcdFx0XHRcdHZhbCBcdTAwMjYgTUNfVkxBTl9DRkdfQ01EX0RPTkVfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ0Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDQ4OnN0YXRpYyB2b2lkIGFpcm9oYV9mZV9jcnNuX3FzZWxfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NDkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTAtXHQvKiBDRE0xX0NSU05fUVNFTCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0NTE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yMiBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1Mi1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzIyKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1NC1cdFx0XHRcdCBDRE1fQ1JTTl9RU0VMX1ExKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1NTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0NSU05fUVNFTCgxLCBDUlNOXzA4IFx1MDAzZVx1MDAzZSAyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDU2LVx0XHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMDgpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDU4LVx0XHRcdFx0IENETV9DUlNOX1FTRUxfUTEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDU5Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fQ1JTTl9RU0VMKDEsIENSU05fMjEgXHUwMDNlXHUwMDNlIDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjAtXHRcdCAgICAgIENETV9DUlNOX1FTRUxfUkVBU09OX01BU0soQ1JTTl8yMSksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjItXHRcdFx0XHQgQ0RNX0NSU05fUVNFTF9RMSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0NjM6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yNCBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2NC1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzI0KSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2Ni1cdFx0XHRcdCBDRE1fQ1JTTl9RU0VMX1E2KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ2NzpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0NSU05fUVNFTCgxLCBDUlNOXzI1IFx1MDAzZVx1MDAzZSAyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDY4LVx0XHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjUpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDcxLVx0LyogQ0RNMl9DUlNOX1FTRUwgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDcyOlx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fQ1JTTl9RU0VMKDIsIENSU05fMDggXHUwMDNlXHUwMDNlIDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzMtXHRcdCAgICAgIENETV9DUlNOX1FTRUxfUkVBU09OX01BU0soQ1JTTl8wOCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzUtXHRcdFx0XHQgQ0RNX0NSU05fUVNFTF9RMSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0NzY6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yMSBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3Ny1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzIxKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3OS1cdFx0XHRcdCBDRE1fQ1JTTl9RU0VMX1ExKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4MDpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0NSU05fUVNFTCgyLCBDUlNOXzIyIFx1MDAzZVx1MDAzZSAyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDgxLVx0XHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjIpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDgzLVx0XHRcdFx0IENETV9DUlNOX1FTRUxfUTEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDg0Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fQ1JTTl9RU0VMKDIsIENSU05fMjQgXHUwMDNlXHUwMDNlIDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODUtXHRcdCAgICAgIENETV9DUlNOX1FTRUxfUkVBU09OX01BU0soQ1JTTl8yNCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODctXHRcdFx0XHQgQ0RNX0NSU05fUVNFTF9RNikpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0ODg6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yNSBcdTAwM2VcdTAwM2UgMiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4OS1cdFx0ICAgICAgQ0RNX0NSU05fUVNFTF9SRUFTT05fTUFTSyhDUlNOXzI1KSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDk0OnN0YXRpYyBpbnQgYWlyb2hhX2ZlX2luaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDk2Olx0YWlyb2hhX2ZlX21hY2NyX2luaXQoZXRoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00OTgtXHQvKiBQU0UgSVEgcmVzZXJ2ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0OTk6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9JUV9SRVYxLCBQU0VfSVFfUkVTMV9QMl9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MDAtXHRcdCAgICAgIEZJRUxEX1BSRVAoUFNFX0lRX1JFUzFfUDJfTUFTSywgMHgxMCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MDE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9JUV9SRVYyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MDItXHRcdCAgICAgIFBTRV9JUV9SRVMyX1A1X01BU0sgfCBQU0VfSVFfUkVTMl9QNF9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTA2LVx0LyogZW5hYmxlIEZFIGNvcHkgZW5naW5lIGZvciBLQS9EUEkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTA3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1BDRV9DRkcsIFBDRV9EUElfRU5fTUFTSyB8IFBDRV9LQV9FTl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTA4LVx0Lyogc2V0IHZpcCBxdWV1ZSBzZWxlY3Rpb24gdG8gcmluZyAxICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUwOTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0ZXRF9DRkcoMSksIENETV9WSVBfUVNFTF9NQVNLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MTAtXHRcdCAgICAgIEZJRUxEX1BSRVAoQ0RNX1ZJUF9RU0VMX01BU0ssIDB4NCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MTE6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9GV0RfQ0ZHKDIpLCBDRE1fVklQX1FTRUxfTUFTSyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEyLVx0XHQgICAgICBGSUVMRF9QUkVQKENETV9WSVBfUVNFTF9NQVNLLCAweDQpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEzLVx0Lyogc2V0IEdETTQgc291cmNlIGludGVyZmFjZSBvZmZzZXQgdG8gOCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MTQ6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9TUkNfUE9SVF9TRVQoNCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUxNS1cdFx0ICAgICAgR0RNX1NQT1JUX09GRjJfTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjItXHQvKiBzZXQgUFNFIFBhZ2UgYXMgMTI4QiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MjM6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX0RNQV9HTE9fQ0ZHLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjQtXHRcdCAgICAgIEZFX0RNQV9HTE9fTDJfU1BBQ0VfTUFTSyB8IEZFX0RNQV9HTE9fUEdfU1pfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUyNi1cdFx0ICAgICAgRkVfRE1BX0dMT19QR19TWl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTI3Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1JTVF9HTE9fQ0ZHLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjgtXHRcdCAgICAgRkVfUlNUX0NPUkVfTUFTSyB8IEZFX1JTVF9HRE0zX01CSV9BUkJfTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MzQtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTM1Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMCwgQklUKDQpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTM2Olx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMSwgQklUKDI4KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUzNzpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9DRE0xX09RX01BUDIsIEJJVCg0KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUzODpcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9DRE0xX09RX01BUDMsIEJJVCgyOCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU0MDpcdGFpcm9oYV9mZV92aXBfc2V0dXAoZXRoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTQxOlx0YWlyb2hhX2ZlX3BzZV9wb3J0c19pbml0KGV0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTQzOlx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19HRE1fTUlTQ19DRkcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0NC1cdFx0ICAgICAgR0RNMl9SRE1fQUNLX1dBSVRfUFJFRl9NQVNLIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTQ1LVx0XHQgICAgICBHRE0yX0NITl9WTERfTU9ERV9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTQ2Olx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19DRE1fRldEX0NGRygyKSwgQ0RNX09BTV9RU0VMX01BU0ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0Ny1cdFx0ICAgICAgRklFTERfUFJFUChDRE1fT0FNX1FTRUxfTUFTSywgMTUpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1MC1cdC8qIE5QVSBDb3JlLTMsIE5QVSBCcmlkZ2UgQ2hhbm5lbC0zICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU1MTpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfSVBfRlJBR19GUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTUyLVx0XHQgICAgICBJUF9GUkFHTUVOVF9QT1JUX01BU0sgfCBJUF9GUkFHTUVOVF9OQlFfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1NS1cdC8qIFFETUEgTEFOLCBSWCBSaW5nLTIyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU1NjpcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfSVBfRlJBR19GUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTU3LVx0XHQgICAgICBJUF9BU1NFTUJMRV9QT1JUX01BU0sgfCBJUF9BU1NFTUJMRV9OQlFfTUFTSyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTYxOlx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19HRE1fRldEX0NGRyhBSVJPSEFfR0RNM19JRFgpLCBHRE1fUEFEX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NjI6XHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0dETV9GV0RfQ0ZHKEFJUk9IQV9HRE00X0lEWCksIEdETV9QQURfRU5fTUFTSyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTY0LVx0LyogRW5hYmxlIHNwbGl0IGZvciBNSUIgY291bnRlcnMgZm9yIEdETTMgYW5kIEdETTQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTY1Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9HRE1fTUlCX0NGRyhBSVJPSEFfR0RNM19JRFgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjYtXHRcdCAgICAgIEZFX0dETV9UWF9NSUJfU1BMSVRfRU5fTUFTSyB8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2Ny1cdFx0ICAgICAgRkVfR0RNX1JYX01JQl9TUExJVF9FTl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTY4Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9HRE1fTUlCX0NGRyhBSVJPSEFfR0RNNF9JRFgpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjktXHRcdCAgICAgIEZFX0dETV9UWF9NSUJfU1BMSVRfRU5fTUFTSyB8XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3MjpcdGFpcm9oYV9mZV9jcnNuX3FzZWxfaW5pdChldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3NDpcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9DUE9SVF9DRkcsIEZFX0NQT1JUX1FVRVVFX1hGQ19NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTc1Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9DUE9SVF9DRkcsIEZFX0NQT1JUX1BPUlRfWEZDX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU3Ny1cdC8qIGRlZmF1bHQgYWdpbmcgbW9kZSBmb3IgbWJpIHVubG9jayBpc3N1ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1Nzg6XHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9DSE5fUkxTKDIpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzktXHRcdCAgICAgIE1CSV9SWF9BR0VfU0VMX01BU0sgfCBNQklfVFhfQUdFX1NFTF9NQVNLLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTgzLVx0LyogZGlzYWJsZSBJRkMgYnkgZGVmYXVsdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1ODQ6XHRhaXJvaGFfZmVfY2xlYXIoZXRoLCBSRUdfRkVfQ1NSX0lGQ19DRkcsIEZFX0lGQ19FTl9NQVNLKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01ODYtXHQvKiBlbmFibGUgMTpOIHZsYW4gYWN0aW9uLCBpbml0IHZsYW4gdGFibGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTg3Olx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19NQ19WTEFOX0VOLCBNQ19WTEFOX0VOX01BU0spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01ODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU4OTpcdHJldHVybiBhaXJvaGFfZmVfbWNfdmxhbl9jbGVhcihldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTAtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU5MjpzdGF0aWMgaW50IGFpcm9oYV9xZG1hX2ZpbGxfcnhfcXVldWUoc3RydWN0IGFpcm9oYV9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTkzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTk0Olx0c3RydWN0IGFpcm9oYV9xZG1hICpxZG1hID0gcS1cdTAwM2VxZG1hO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTUtXHRpbnQgcWlkID0gcSAtIFx1MDAyNnFkbWEtXHUwMDNlcV9yeFswXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU5OC1cdHdoaWxlIChxLVx1MDAzZXF1ZXVlZCBcdTAwM2MgcS1cdTAwM2VuZGVzYyAtIDEpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTk5Olx0XHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlX2VudHJ5ICplID0gXHUwMDI2cS1cdTAwM2VlbnRyeVtxLVx1MDAzZWhlYWRdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2MDA6XHRcdHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjID0gXHUwMDI2cS1cdTAwM2VkZXNjW3EtXHUwMDNlaGVhZF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYwMS1cdFx0c3RydWN0IHBhZ2UgKnBhZ2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzAtXHRpZiAobmZyYW1lcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjMxOlx0XHRhaXJvaGFfcWRtYV9ybXcocWRtYSwgUkVHX1JYX0NQVV9JRFgocWlkKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjMyLVx0XHRcdFx0UlhfUklOR19DUFVfSURYX01BU0ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjYzODpzdGF0aWMgc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjM5OmFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NDAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NDE6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NDItXHR1MTYgcCwgZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY1OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjYwOnN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfcnhfcHJvY2VzcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxLCBpbnQgYnVkZ2V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjItXHRlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIgPSBwYWdlX3Bvb2xfZ2V0X2RtYV9kaXIocS1cdTAwM2VwYWdlX3Bvb2wpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NjM6XHRzdHJ1Y3QgYWlyb2hhX3FkbWEgKnFkbWEgPSBxLVx1MDAzZXFkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY2NDpcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBxZG1hLVx1MDAzZWV0aDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjY1LVx0aW50IHFpZCA9IHEgLSBcdTAwMjZxZG1hLVx1MDAzZXFfcnhbMF07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjgtXHR3aGlsZSAoZG9uZSBcdTAwM2MgYnVkZ2V0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY2OTpcdFx0c3RydWN0IGFpcm9oYV9xdWV1ZV9lbnRyeSAqZSA9IFx1MDAyNnEtXHUwMDNlZW50cnlbcS1cdTAwM2V0YWlsXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcwOlx0XHRzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYyA9IFx1MDAyNnEtXHUwMDNlZGVzY1txLVx1MDAzZXRhaWxdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NzEtXHRcdHUzMiBoYXNoLCByZWFzb24sIG1zZzEsIGRlc2NfY3RybDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcyOlx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjczLVx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2OTU6XHRcdGRldiA9IGFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KGV0aCwgZGVzYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY5Ni1cdFx0aWYgKElTX0VSUihkZXYpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzI4LVx0XHRpZiAobmV0ZGV2X3VzZXNfZHNhKG5ldGRldikpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzI5Olx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzUyLVx0XHRpZiAocmVhc29uID09IFBQRV9DUFVfUkVBU09OX0hJVF9VTkJJTkRfUkFURV9SRUFDSEVEKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NTM6XHRcdFx0YWlyb2hhX3BwZV9jaGVja19za2IoXHUwMDI2ZXRoLVx1MDAzZXBwZS1cdTAwM2VkZXYsIHEtXHUwMDNlc2tiLCBoYXNoLFxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NzkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgTkVUX0FJUk9IQSBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIEtjb25maWcgZm9yIE5FVF9BSVJPSEEuIEkmIzM5O20gZ29pbmcgdG8gdGFrZSBhIGxvb2sgYXQgdGhpcyBhbmQgc2VlIGhvdyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBsYWlkIG91dC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBmZWF0dXJlcyBhcmUgYmVpbmcgZXhwb3NlZCwgaG93IHRoZXkmIzM5O3JlIGRlcGVuZGVudCBvbiBvdGhlciBvcHRpb25zLCBhbmQgYW55IHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgZm9yIHRoZSBvdmVyYWxsIG5ldHdvcmsgc3RhY2suIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGFueSBzaWducyBvZiB2ZW5kb3Itc3BlY2lmaWMgcXVpcmtzIG9yIG9wdGltaXphdGlvbnMsIHVudXN1YWwgZGVwZW5kZW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IG1pZ2h0IHJlcXVpcmUgZGVlcGVyIGludmVzdGlnYXRpb24gZm9yIGludGVncmF0aW9uIG9yIGN1c3RvbWl6YXRpb24uIE15IGtleSBhcmVhcyBvZiBmb2N1cyB3aWxsIGluY2x1ZGUgdGhlIGRldmljZSBkcml2ZXIgb3B0aW9ucywgYW55IG5ldHdvcmsgcHJvdG9jb2wgc3VwcG9ydCwgc2VjdXJpdHkgZmVhdHVyZXMsIGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIHRhcmdldCBBaXJvaGEgU29DJiMzOTtzIGNhcGFiaWxpdGllcy4gSeKAmWxsIGFsc28gYmUgc2VhcmNoaW5nIGZvciBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBvciBhcmVhcyB3aGVyZSBwZXJmb3JtYW5jZSB0dW5pbmcgbWlnaHQgYmUgbmVjZXNzYXJ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O05FVF9BSVJPSEEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTg9aWYgTkVUX1ZFTkRPUl9BSVJPSEFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTExLVx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIE5QVSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxODpjb25maWcgTkVUX0FJUk9IQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMTktXHR0cmlzdGF0ZSBcJiMzNDtBaXJvaGEgU29DIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjAtXHRkZXBlbmRzIG9uIE5FVF9EU0EgfHwgIU5FVF9EU0FcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjIxOlx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yMi1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjI3OmNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI4LVx0ZGVmYXVsdCB5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yOS1cdGJvb2wgXCYjMzQ7QWlyb2hhIGZsb3cgc3RhdHNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFx1MDAyNlx1MDAyNiBORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMzEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfTkVUX0FJUk9IQSkgJiM0Mzs9IGFpcm9oYS1ldGgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlLTctYWlyb2hhLWV0aC15IDo9IGFpcm9oYV9ldGgubyBhaXJvaGFfcHBlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICYjNDM7PSBhaXJvaGFfcHBlX2RlYnVnZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSAmIzQzOz0gYWlyb2hhX25wdS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0zOD1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZ2V0X251bV9zdGF0c19lbnRyaWVzKHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NDA6XHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX05FVF9BSVJPSEFfRkxPV19TVEFUUykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTQxLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5MTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoaXMgdGFzaywgdGhpbmtpbmcgdGhyb3VnaCBpdCBzdGVwLWJ5LXN0ZXA6CgoqKkNoZWNraW5nIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEZpcnN0LCBteSBpbnN0aW5jdCBpcyB0byBqdW1wIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSBJIGV4cGVjdCB0byBmaW5kIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGRyaXZlciwgYW5kIGNydWNpYWxseSwgaG93IGBORVRfVkVORE9SX0FJUk9IQWAgaXMgZGVmaW5lZC4gS25vd2luZyB0aGF0IHN5bWJvbCBpcyBrZXkuIEkgbmVlZCB0byBrbm93ICppZiogaXQmIzM5O3MgZXZlbiBlbmFibGVkIGFuZCB3aGF0IGl0cyBkZXBlbmRlbmNpZXMgbWlnaHQgYmUuIE9uY2UgSSBoYXZlIHRoYXQsIEkgY2FuIGRldGVybWluZSB0aGUgbGV2ZWwgb2Ygc3VwcG9ydCB0aGlzIGRyaXZlciBoYXMgYXQgYSBnbGFuY2UuCgpOZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGRldmljZXMgb3IgYnVzZXMgdGhlIGBhaXJvaGFfZXRoYCBkcml2ZXIgaXMgZGVzaWduZWQgdG8gYmluZCB0by4gSXMgaXQgUENJLCBTUEksIFVTQiwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBLY29uZmlnIGxpa2VseSB3aWxsIHByb3ZpZGUgc29tZSBoaW50cywgYnV0IEkmIzM5O2xsIHByb2JhYmx5IGhhdmUgdG8gdHJhY2UgdGhlIGNvZGUgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBUaGlzIGNvbnRleHQgaXMgZXNzZW50aWFsIHRvIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaW50ZWdyYXRlcyBpbnRvIHRoZSBzeXN0ZW0gYW5kIHdoYXQgaGFyZHdhcmUgaXQmIzM5O3MgaW50ZW5kZWQgdG8gc3VwcG9ydC4gVGhpcyBpcyB3aGVyZSBJIGNhbiBzdGFydCB0byBkZXZlbG9wIGEgbWVudGFsIG1hcCBvZiB0aGUgZHJpdmVyJiMzOTtzIHJvbGUgaW4gdGhlIG5ldHdvcmtpbmcgbGFuZHNjYXBlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTkVUX1ZFTkRPUl9BSVJPSEFcbiAgIDM6XHRcdGJvb2wgXCYjMzQ7QWlyb2hhIGRldmljZXNcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9BSVJPSEEgfHwgQ09NUElMRV9URVNUXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIElmIHlvdSBoYXZlIGEgQWlyb2hhIFNvQyB3aXRoIGV0aGVybmV0LCBzYXkgWS5cbiAgIDc6XHRcbiAgIDg6XHRpZiBORVRfVkVORE9SX0FJUk9IQVxuICAgOTpcdFxuICAxMDpcdGNvbmZpZyBORVRfQUlST0hBX05QVVxuICAxMTpcdFx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIE5QVSBzdXBwb3J0XCYjMzQ7XG4gIDEyOlx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgMTM6XHRcdHNlbGVjdCBSRUdNQVBfTU1JT1xuICAxNDpcdFx0aGVscFxuICAxNTpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBBaXJvaGEgTmV0d29yayBQcm9jZXNzb3IgKE5QVSkgYXZhaWxhYmxlXG4gIDE2Olx0XHQgIG9uIHRoZSBBaXJvaGEgU29jIGZhbWlseS5cbiAgMTc6XHRcbiAgMTg6XHRjb25maWcgTkVUX0FJUk9IQVxuICAxOTpcdFx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiAgMjA6XHRcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxuICAyMTpcdFx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXG4gIDIyOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBnaWdhYml0IGV0aGVybmV0IE1BQ3MgaW4gdGhlXG4gIDI1Olx0XHQgIEFpcm9oYSBTb0MgZmFtaWx5LlxuICAyNjpcdFxuICAyNzpcdGNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcbiAgMjg6XHRcdGRlZmF1bHQgeVxuICAyOTpcdFx0Ym9vbCBcJiMzNDtBaXJvaGEgZmxvdyBzdGF0c1wmIzM0O1xuICAzMDpcdFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFx1MDAyNlx1MDAyNiBORVRfQUlST0hBX05QVVxuICAzMTpcdFx0aGVscFxuICAzMjpcdFx0ICBFbmFibGUgQWlyb2hhIGZsb3d0YWJsZSBzdGF0aXN0aWMgY291bnRlcnMuXG4gIDMzOlx0XG4gIDM0Olx0ZW5kaWYgI05FVF9WRU5ET1JfQUlST0hBXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3MDIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEFpcm9oYSBFdGhlcm5ldCBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW4uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgYGFpcm9oYV9ldGhgIGlzIGRvaW5nIGluIHRoaXMgY29udGV4dC4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGl0JiMzOTtzIGEgcGxhdGZvcm0gZHJpdmVyIHRhaWxvcmVkIGZvciBhbiBBaXJvaGEgU3lzdGVtLW9uLWEtQ2hpcC4gVGltZSB0byBjb25maXJtIHRoYXQuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBuYXZpZ2F0ZSBvdmVyIHRvIGBhaXJvaGFfZXRoLmNgIGFuZCB6ZXJvIGluIG9uIHRoZSBmYW1pbGlhciBwYXR0ZXJucyBvZiBhIHBsYXRmb3JtIGRyaXZlcjogc3BlY2lmaWNhbGx5LCBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBgbW9kdWxlX3BsYXRmb3JtX2RyaXZlcmAgb3IganVzdCBgcGxhdGZvcm1fZHJpdmVyYCB0byBzZWUgaWYgdGhpcyBhbGlnbnMgd2l0aCBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwbGF0Zm9ybV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk1OD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9haXJvaGFfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTYwOnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFpcm9oYV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjEtXHQucHJvYmUgPSBhaXJvaGFfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY3LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM5Njg6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihhaXJvaGFfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk2OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTgwNj1zdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo4MTU6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYWlyb2hhX25wdV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgxNi1cdC5wcm9iZSA9IGFpcm9oYV9ucHVfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzczCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyB0aGUgQWlyb2hhIEdpZ2FiaXQgRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgYWlyb2hhX2RyaXZlcmAuIFJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIFRoZSBzeXN0ZW0gaWRlbnRpZmllcyBpdCB1c2luZyB0aGUgRGV2aWNlIFRyZWUgbWF0Y2ggc3RyaW5nIGBvZl9haXJvaGFfbWF0Y2hgLiBBbHJpZ2h0LCB0aGF0JiMzOTtzIHdoYXQgSSBleHBlY3QuIEkgc2hvdWxkIGNoZWNrIHRoYXQgYG9mX2Fpcm9oYV9tYXRjaGAgZGVmaW5pdGlvbiwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhlIHN5c3RlbSBpcyBjb3JyZWN0bHkgaWRlbnRpZnlpbmcgdGhlIHRhcmdldCBoYXJkd2FyZS4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSB0aGF0Li4uIGl0JiMzOTtzIHRoZSBjcnVjaWFsIGxpbmsgaW4gdGhlIGNoYWluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvZl9haXJvaGFfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk0MT1zdGF0aWMgY29uc3Qgc3RydWN0IGFpcm9oYV9ldGhfc29jX2RhdGEgYW43NTgzX3NvY19kYXRhID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk1MzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9haXJvaGFfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk1NC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthaXJvaGEsZW43NTgxLWV0aFwmIzM0OywgLmRhdGEgPSBcdTAwMjZlbjc1ODFfc29jX2RhdGEgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NTctfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk1ODpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9haXJvaGFfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zOTYwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFpcm9oYV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY0LVx0XHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTY1Olx0XHQub2ZfbWF0Y2hfdGFibGUgPSBvZl9haXJvaGFfbWF0Y2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjYtXHR9LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwNjo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjk3NwoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDYxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZm9yIGFuIFNvQy1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgQWlyb2hhIEVONzU4MS4gVGhlIGluc3RydWN0aW9ucyBhcmUgY2xlYXI6IGlmIHRoZSBjb2RlIGNoYW5nZSBjYW4mIzM5O3QgYmUgcmVhY2hlZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3ZSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUgaXMgd2hldGhlciBvciBub3QgdGhpcyBkcml2ZXIsIGRlc2lnbmVkIGZvciBhbiBBaXJvaGEgQVJNIFNvQywgaXMgYWNjZXNzaWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHRoZSBBaXJvaGEgRU43NTgxIGlzIGEgc3BlY2lhbGl6ZWQgcGllY2Ugb2YgaGFyZHdhcmUsIGEgcGxhdGZvcm0gZHJpdmVyIGRlcGVuZGVudCBvbiBzcGVjaWZpYyBTb0MgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIGhhcmR3YXJlIG1lbW9yeS1tYXBwZWQgSS9PLCBjbG9ja3MsIHJlc2V0cywgZXRjLiBJdCYjMzk7cyBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIHRoZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBTb0MuIFNvLCBubywgaXQmIzM5O3Mgbm90IHJlYWNoYWJsZS4KCkkmIzM5O3ZlIGNvbmZpcm1lZCBteSB1bmRlcnN0YW5kaW5nLiBUaGVyZSYjMzk7cyBubyBlbXVsYXRpb24gb3IgbW9jayBwbGF0Zm9ybSBkZXZpY2UgZm9yIHRoaXMgQWlyb2hhIGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVS4gSXQmIzM5O3MgYSByZWFsLXdvcmxkIFNvQywgcGFydCBvZiB0aGUgTWVkaWFUZWsgZ3JvdXAuCgpUaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGggYmVpbmcgbW9kaWZpZWQgaXMsIGJ5IGRlZmluaXRpb24sIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4gVGhlIGNvbmRpdGlvbiBpcyBtZXQgZm9yIGBXb3J0aEZ1enppbmdgIHRvIGJlIGBmYWxzZWAuCgpMZXQmIzM5O3MgcXVpY2tseSBjaGVjayB0aGUgcmVxdWlyZWQgb3V0cHV0IGZvcm1hdCBmb3IgdGhlIGBzZXQtcmVzdWx0c2AgY2FsbCB0byBtYWtlIHN1cmUgSSYjMzk7bSBkb2luZyBpdCByaWdodC4KCkhlcmUmIzM5O3MgbXkgYHNldC1yZXN1bHRzYCBkYXRhOgoKKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgCiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAoZW1wdHkgbGlzdCwgYXMgbm90aGluZyBuZWVkcyBzcGVjaWFsIGZvY3VzKQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChhbHNvIGVtcHR5LCBubyBjb25maWd1cmF0aW9ucyBuZWVkZWQpCiogICBgUmVhc29uaW5nYDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBBaXJvaGEgKEVONzU4MSkgU29DcyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7CgpOb3csIGxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuIERvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA2OjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDY6NTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjMyLjgzMjcwMDY0NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5NjU2Nzg0MjUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8pLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIEFpcm9oYSBTb0NzIChlLmcuLCBFTjc1ODEpLiBUaGlzIGhhcmR3YXJlIGNhbm5vdCBiZSByZWFjaGVkIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6MzIuODMyNzA0ODg2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTc2NjczNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0NWQ3NDc3OGQyZTVmN2FjN2UzODVjMzU1NGNiNTJlYmRlNzgwOWRkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgU2VwIDIgMDY6NTA6MzIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcXG5pbmRleCA2NDYxOWU5YTcwNGRkLi5jNTkyMDFhZGVkMjZmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXFxuQEAgLTc4NCwxMyArNzg0LDE2IEBAIHN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfcnhfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4gXFx0XFx0aW50IGksIHFpZCA9IHEgLSBcXHUwMDI2cWRtYS1cXHUwMDNlcV9yeFswXTtcXG4gXFx0XFx0aW50IGludHJfcmVnID0gcWlkIFxcdTAwM2MgUlhfRE9ORV9ISUdIX09GRlNFVCA/IFFETUFfSU5UX1JFR19JRFgxXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCA6IFFETUFfSU5UX1JFR19JRFgyO1xcbitcXHRcXHR1MzIgaXJxX2lkID0gcWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVDtcXG4rXFx0XFx0dTMyIGludHJfbWFzayA9IEJJVChpcnFfaWQpIHxcXG4rXFx0XFx0XFx0XFx0QklUKGlycV9pZCArIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpO1xcbiBcXG4gXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUocWRtYS1cXHUwMDNlaXJxX2JhbmtzKTsgaSsrKSB7XFxuIFxcdFxcdFxcdGlmICghKEJJVChxaWQpIFxcdTAwMjYgUlhfSVJRX0JBTktfUElOX01BU0soaSkpKVxcbiBcXHRcXHRcXHRcXHRjb250aW51ZTtcXG4gXFxuIFxcdFxcdFxcdGFpcm9oYV9xZG1hX2lycV9lbmFibGUoXFx1MDAyNnFkbWEtXFx1MDAzZWlycV9iYW5rc1tpXSwgaW50cl9yZWcsXFxuLVxcdFxcdFxcdFxcdFxcdCAgICAgICBCSVQocWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVCkpO1xcbitcXHRcXHRcXHRcXHRcXHQgICAgICAgaW50cl9tYXNrKTtcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbkBAIC0xNDY4LDE2ICsxNDcxLDE5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhaXJvaGFfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxcbiBcXHRpZiAoIXRlc3RfYml0KERFVl9TVEFURV9JTklUSUFMSVpFRCwgXFx1MDAyNnFkbWEtXFx1MDAzZWV0aC1cXHUwMDNlc3RhdGUpKVxcbiBcXHRcXHRyZXR1cm4gSVJRX05PTkU7XFxuIFxcbi1cXHRyeF9pbnRyMSA9IGludHJbMV0gXFx1MDAyNiBSWF9ET05FX0xPV19JTlRfTUFTSztcXG4rXFx0cnhfaW50cjEgPSBpbnRyWzFdIFxcdTAwMjYgKFJYX0RPTkVfTE9XX0lOVF9NQVNLIHwgUlhfTk9fQ1BVX0RTQ1BfTE9XX0lOVF9NQVNLKTtcXG4gXFx0aWYgKHJ4X2ludHIxKSB7XFxuIFxcdFxcdGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMSwgcnhfaW50cjEpO1xcbi1cXHRcXHRyeF9pbnRyX21hc2sgfD0gcnhfaW50cjE7XFxuK1xcdFxcdHJ4X2ludHJfbWFzayB8PSAocnhfaW50cjEgXFx1MDAyNiBSWF9ET05FX0xPV19JTlRfTUFTSykgfFxcbitcXHRcXHRcXHRcXHRSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0socnhfaW50cjEpO1xcbiBcXHR9XFxuIFxcbi1cXHRyeF9pbnRyMiA9IGludHJbMl0gXFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0s7XFxuK1xcdHJ4X2ludHIyID0gaW50clsyXSBcXHUwMDI2IChSWF9ET05FX0hJR0hfSU5UX01BU0sgfCBSWF9OT19DUFVfRFNDUF9ISUdIX0lOVF9NQVNLKTtcXG4gXFx0aWYgKHJ4X2ludHIyKSB7XFxuIFxcdFxcdGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMiwgcnhfaW50cjIpO1xcbi1cXHRcXHRyeF9pbnRyX21hc2sgfD0gKHJ4X2ludHIyIFxcdTAwM2NcXHUwMDNjIDE2KTtcXG4rXFx0XFx0cnhfaW50cl9tYXNrIHw9ICgocnhfaW50cjIgXFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0spIFxcdTAwM2NcXHUwMDNjXFxuK1xcdFxcdFxcdFxcdCBSWF9ET05FX0hJR0hfT0ZGU0VUKSB8XFxuK1xcdFxcdFxcdFxcdChyeF9pbnRyMiBcXHUwMDI2IFJYX05PX0NQVV9EU0NQX0hJR0hfSU5UX01BU0spO1xcbiBcXHR9XFxuIFxcbiBcXHRmb3IgKGkgPSAwOyByeF9pbnRyX21hc2sgXFx1MDAyNlxcdTAwMjYgaSBcXHUwMDNjIEFSUkFZX1NJWkUocWRtYS1cXHUwMDNlcV9yeCk7IGkrKykge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxcbmluZGV4IGZhOWE4ZWRjZTIyZmYuLjdmYzM3ZjE1OWQyYjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhcXG5AQCAtNDEsOSArNDEsMTAgQEBcXG4gI2RlZmluZSBUWF9EU0NQX05VTVxcdFxcdFxcdDEwMjRcXG4gI2RlZmluZSBSWF9EU0NQX05VTShfbilcXHRcXHRcXHRcXFxcXFxuIFxcdCgoX24pID09ICAyID8gMTI4IDpcXHRcXHRcXFxcXFxuK1xcdCAoX24pID09ICA0ID8gMTI4IDpcXHRcXHRcXFxcXFxuIFxcdCAoX24pID09IDExID8gMTI4IDpcXHRcXHRcXFxcXFxuIFxcdCAoX24pID09IDE1ID8gMTI4IDpcXHRcXHRcXFxcXFxuLVxcdCAoX24pID09ICAwID8gMTAyNCA6IDE2KVxcbitcXHQgKF9uKSA9PSAgMCA/IDEwMjQgOiAzMilcXG4gXFxuICNkZWZpbmUgUFNFX1JTVl9QQUdFU1xcdFxcdFxcdDEyOFxcbiAjZGVmaW5lIFBTRV9RVUVVRV9SU1ZfUEFHRVNcXHRcXHQ2NFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oXFxuaW5kZXggNDQyYjQ4YzliOTkxZS4uYmRlM2Q1OTlkOGI3YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oXFxuQEAgLTU0OSw2ICs1NDksOCBAQFxcbiAjZGVmaW5lIElOVF9SWDFfTUFTSyhfbilcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuIFxcdCgoKChfbikgXFx1MDAzY1xcdTAwM2MgUlhfTk9fQ1BVX0RTQ1BfTE9XX09GRlNFVCkgXFx1MDAyNiBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIHxcXHRcXFxcXFxuIFxcdCAoUlhfRE9ORV9MT1dfSU5UX01BU0sgXFx1MDAyNiAoX24pKSlcXG4rI2RlZmluZSBSWF9OT19DUFVfRFNDUF9JTlRfUlgxX01BU0soX24pXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQoKChfbikgXFx1MDAyNiBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIFxcdTAwM2VcXHUwMDNlIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpXFxuIFxcbiAvKiBRRE1BX0NTUl9JTlRfRU5BQkxFMyAqL1xcbiAjZGVmaW5lIFJYMzFfTk9fQ1BVX0RTQ1BfSU5UX01BU0tcXHRCSVQoMzEpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjMzLjIzMTA0NzAyNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MzkyNTg0MjM4NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBBaXJvaGEgU29DIEdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvKSwgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IHRhcmdldGluZyBBaXJvaGEgU29DcyAoZS5nLiwgRU43NTgxKS4gVGhpcyBoYXJkd2FyZSBjYW5ub3QgYmUgcmVhY2hlZCBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ1ZDc0Nzc4ZDJlNWY3YWM3ZTM4NWMzNTU0Y2I1MmViZGU3ODA5ZGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA2OjUwOjMyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcbmluZGV4IDY0NjE5ZTlhNzA0ZGQuLmM1OTIwMWFkZWQyNmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5AQCAtNzg0LDEzICs3ODQsMTYgQEAgc3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuIFx0XHRpbnQgaSwgcWlkID0gcSAtIFx1MDAyNnFkbWEtXHUwMDNlcV9yeFswXTtcbiBcdFx0aW50IGludHJfcmVnID0gcWlkIFx1MDAzYyBSWF9ET05FX0hJR0hfT0ZGU0VUID8gUURNQV9JTlRfUkVHX0lEWDFcbiBcdFx0XHRcdFx0XHRcdCA6IFFETUFfSU5UX1JFR19JRFgyO1xuK1x0XHR1MzIgaXJxX2lkID0gcWlkICUgUlhfRE9ORV9ISUdIX09GRlNFVDtcbitcdFx0dTMyIGludHJfbWFzayA9IEJJVChpcnFfaWQpIHxcbitcdFx0XHRcdEJJVChpcnFfaWQgKyBSWF9OT19DUFVfRFNDUF9MT1dfT0ZGU0VUKTtcbiBcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShxZG1hLVx1MDAzZWlycV9iYW5rcyk7IGkrKykge1xuIFx0XHRcdGlmICghKEJJVChxaWQpIFx1MDAyNiBSWF9JUlFfQkFOS19QSU5fTUFTSyhpKSkpXG4gXHRcdFx0XHRjb250aW51ZTtcbiBcbiBcdFx0XHRhaXJvaGFfcWRtYV9pcnFfZW5hYmxlKFx1MDAyNnFkbWEtXHUwMDNlaXJxX2JhbmtzW2ldLCBpbnRyX3JlZyxcbi1cdFx0XHRcdFx0ICAgICAgIEJJVChxaWQgJSBSWF9ET05FX0hJR0hfT0ZGU0VUKSk7XG4rXHRcdFx0XHRcdCAgICAgICBpbnRyX21hc2spO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtMTQ2OCwxNiArMTQ3MSwxOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYWlyb2hhX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbiBcdGlmICghdGVzdF9iaXQoREVWX1NUQVRFX0lOSVRJQUxJWkVELCBcdTAwMjZxZG1hLVx1MDAzZWV0aC1cdTAwM2VzdGF0ZSkpXG4gXHRcdHJldHVybiBJUlFfTk9ORTtcbiBcbi1cdHJ4X2ludHIxID0gaW50clsxXSBcdTAwMjYgUlhfRE9ORV9MT1dfSU5UX01BU0s7XG4rXHRyeF9pbnRyMSA9IGludHJbMV0gXHUwMDI2IChSWF9ET05FX0xPV19JTlRfTUFTSyB8IFJYX05PX0NQVV9EU0NQX0xPV19JTlRfTUFTSyk7XG4gXHRpZiAocnhfaW50cjEpIHtcbiBcdFx0YWlyb2hhX3FkbWFfaXJxX2Rpc2FibGUoaXJxX2JhbmssIFFETUFfSU5UX1JFR19JRFgxLCByeF9pbnRyMSk7XG4tXHRcdHJ4X2ludHJfbWFzayB8PSByeF9pbnRyMTtcbitcdFx0cnhfaW50cl9tYXNrIHw9IChyeF9pbnRyMSBcdTAwMjYgUlhfRE9ORV9MT1dfSU5UX01BU0spIHxcbitcdFx0XHRcdFJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhyeF9pbnRyMSk7XG4gXHR9XG4gXG4tXHRyeF9pbnRyMiA9IGludHJbMl0gXHUwMDI2IFJYX0RPTkVfSElHSF9JTlRfTUFTSztcbitcdHJ4X2ludHIyID0gaW50clsyXSBcdTAwMjYgKFJYX0RPTkVfSElHSF9JTlRfTUFTSyB8IFJYX05PX0NQVV9EU0NQX0hJR0hfSU5UX01BU0spO1xuIFx0aWYgKHJ4X2ludHIyKSB7XG4gXHRcdGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKGlycV9iYW5rLCBRRE1BX0lOVF9SRUdfSURYMiwgcnhfaW50cjIpO1xuLVx0XHRyeF9pbnRyX21hc2sgfD0gKHJ4X2ludHIyIFx1MDAzY1x1MDAzYyAxNik7XG4rXHRcdHJ4X2ludHJfbWFzayB8PSAoKHJ4X2ludHIyIFx1MDAyNiBSWF9ET05FX0hJR0hfSU5UX01BU0spIFx1MDAzY1x1MDAzY1xuK1x0XHRcdFx0IFJYX0RPTkVfSElHSF9PRkZTRVQpIHxcbitcdFx0XHRcdChyeF9pbnRyMiBcdTAwMjYgUlhfTk9fQ1BVX0RTQ1BfSElHSF9JTlRfTUFTSyk7XG4gXHR9XG4gXG4gXHRmb3IgKGkgPSAwOyByeF9pbnRyX21hc2sgXHUwMDI2XHUwMDI2IGkgXHUwMDNjIEFSUkFZX1NJWkUocWRtYS1cdTAwM2VxX3J4KTsgaSsrKSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhcbmluZGV4IGZhOWE4ZWRjZTIyZmYuLjdmYzM3ZjE1OWQyYjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oXG5AQCAtNDEsOSArNDEsMTAgQEBcbiAjZGVmaW5lIFRYX0RTQ1BfTlVNXHRcdFx0MTAyNFxuICNkZWZpbmUgUlhfRFNDUF9OVU0oX24pXHRcdFx0XFxcbiBcdCgoX24pID09ICAyID8gMTI4IDpcdFx0XFxcbitcdCAoX24pID09ICA0ID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDExID8gMTI4IDpcdFx0XFxcbiBcdCAoX24pID09IDE1ID8gMTI4IDpcdFx0XFxcbi1cdCAoX24pID09ICAwID8gMTAyNCA6IDE2KVxuK1x0IChfbikgPT0gIDAgPyAxMDI0IDogMzIpXG4gXG4gI2RlZmluZSBQU0VfUlNWX1BBR0VTXHRcdFx0MTI4XG4gI2RlZmluZSBQU0VfUVVFVUVfUlNWX1BBR0VTXHRcdDY0XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxuaW5kZXggNDQyYjQ4YzliOTkxZS4uYmRlM2Q1OTlkOGI3YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcmVncy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3JlZ3MuaFxuQEAgLTU0OSw2ICs1NDksOCBAQFxuICNkZWZpbmUgSU5UX1JYMV9NQVNLKF9uKVx0XHRcdFx0XHRcdFx0XFxcbiBcdCgoKChfbikgXHUwMDNjXHUwMDNjIFJYX05PX0NQVV9EU0NQX0xPV19PRkZTRVQpIFx1MDAyNiBSWF9OT19DUFVfRFNDUF9MT1dfSU5UX01BU0spIHxcdFxcXG4gXHQgKFJYX0RPTkVfTE9XX0lOVF9NQVNLIFx1MDAyNiAoX24pKSlcbisjZGVmaW5lIFJYX05PX0NQVV9EU0NQX0lOVF9SWDFfTUFTSyhfbilcdFx0XHRcdFx0XFxcbitcdCgoKF9uKSBcdTAwMjYgUlhfTk9fQ1BVX0RTQ1BfTE9XX0lOVF9NQVNLKSBcdTAwM2VcdTAwM2UgUlhfTk9fQ1BVX0RTQ1BfTE9XX09GRlNFVClcbiBcbiAvKiBRRE1BX0NTUl9JTlRfRU5BQkxFMyAqL1xuICNkZWZpbmUgUlgzMV9OT19DUFVfRFNDUF9JTlRfTUFTS1x0QklUKDMxKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6MzMuMjMxMDQ4NTI2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NjA0MjIxMzExNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiBjb25zY2lvdXNuZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY2AsIGBhaXJvaGFfZXRoLmhgLCBhbmQgYGFpcm9oYV9yZWdzLmhgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCBBaXJvaGEuIFJpZ2h0LiBMZXQncyBnZXQgYSBoYW5kbGUgb24gdGhpcy5cIiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGtpbmQgb2YgYmVhc3QgdGhpcyBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyICppcyouIElzIHRoaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgU29DPyBJcyBpdCBkZWFsaW5nIHdpdGggYSBwaHlzaWNhbCBFdGhlcm5ldCBjb250cm9sbGVyIGludGVncmF0ZWQgZGlyZWN0bHkgb250byBhbiBBaXJvaGEgY2hpcD8gUGVyaGFwcyBpdCdzIGEgUENJZSBiYXNlZCBzb2x1dGlvbj8gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoIHRoZSB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZS4gVGltZSB0byBlbXBsb3kgc29tZSBjbGFzc2ljIHRlY2huaXF1ZXMuIEknbGwgcHJvYmFibHkgc3RhcnQgd2l0aCBhIHF1aWNrIGByZWFkLWZpbGVgIG9yIGBncmVwcGVyYCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwgc291cmNlLiBHZXQgYSBmZWVsIGZvciB0aGUgc3Vycm91bmRpbmcgY29kZSwgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzIGlmIGl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIsIG9yIGFueSBjbHVlcyBhYm91dCB0aGUgaGFyZHdhcmUgaXQncyBpbnRlcmZhY2luZyB3aXRoLiBHb3R0YSBidWlsZCB0aGF0IG1lbnRhbCBtb2RlbCwgcXVpY2tseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzM0OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6MzkuMjczMjY0MTgxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NTE4MTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFpcm9oYVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMzY3NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX05FVF9BSVJPSEEpICs9IGFpcm9oYS1ldGgub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo3OmFpcm9oYS1ldGgteSA6PSBhaXJvaGFfZXRoLm8gYWlyb2hhX3BwZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjg6YWlyb2hhLWV0aC0kKENPTkZJR19ERUJVR19GUykgKz0gYWlyb2hhX3BwZV9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0FJUk9IQV9OUFUpICs9IGFpcm9oYV9ucHUub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE3OiNpbmNsdWRlIFxcXCJhaXJvaGFfcmVncy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTg6I2luY2x1ZGUgXFxcImFpcm9oYV9ldGguaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA6dTMyIGFpcm9oYV9ycih2b2lkIF9faW9tZW0gKmJhc2UsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjU6dm9pZCBhaXJvaGFfd3Iodm9pZCBfX2lvbWVtICpiYXNlLCB1MzIgb2Zmc2V0LCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwOnUzMiBhaXJvaGFfcm13KHZvaWQgX19pb21lbSAqYmFzZSwgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjpcXHR2YWwgfD0gKGFpcm9oYV9ycihiYXNlLCBvZmZzZXQpIFxcdTAwMjYgfm1hc2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzM6XFx0YWlyb2hhX3dyKGJhc2UsIG9mZnNldCwgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM4OnN0YXRpYyB2b2lkIGFpcm9oYV9xZG1hX3NldF9pcnFtYXNrKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzktXFx0XFx0XFx0XFx0ICAgIGludCBpbmRleCwgdTMyIGNsZWFyLCB1MzIgc2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDE6XFx0c3RydWN0IGFpcm9oYV9xZG1hICpxZG1hID0gaXJxX2JhbmstXFx1MDAzZXFkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00Mi1cXHRpbnQgYmFuayA9IGlycV9iYW5rIC0gXFx1MDAyNnFkbWEtXFx1MDAzZWlycV9iYW5rc1swXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEtXFx0aXJxX2JhbmstXFx1MDAzZWlycW1hc2tbaW5kZXhdIHw9IHNldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUyOlxcdGFpcm9oYV9xZG1hX3dyKHFkbWEsIFJFR19JTlRfRU5BQkxFKGJhbmssIGluZGV4KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUzLVxcdFxcdCAgICAgICBpcnFfYmFuay1cXHUwMDNlaXJxbWFza1tpbmRleF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01Ni1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3OlxcdGFpcm9oYV9xZG1hX3JyKHFkbWEsIFJFR19JTlRfRU5BQkxFKGJhbmssIGluZGV4KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2MjpzdGF0aWMgdm9pZCBhaXJvaGFfcWRtYV9pcnFfZW5hYmxlKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjMtXFx0XFx0XFx0XFx0ICAgaW50IGluZGV4LCB1MzIgbWFzaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY1OlxcdGFpcm9oYV9xZG1hX3NldF9pcnFtYXNrKGlycV9iYW5rLCBpbmRleCwgMCwgbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02Ni19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY4OnN0YXRpYyB2b2lkIGFpcm9oYV9xZG1hX2lycV9kaXNhYmxlKHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgKmlycV9iYW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjktXFx0XFx0XFx0XFx0ICAgIGludCBpbmRleCwgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3MTpcXHRhaXJvaGFfcWRtYV9zZXRfaXJxbWFzayhpcnFfYmFuaywgaW5kZXgsIG1hc2ssIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03Ni1cXHR1OCByZWZfYWRkcltFVEhfQUxFTl0gX19hbGlnbmVkKDIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Nzc6XFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzgtXFx0dTMyIHJlZywgdmFsLCBsbWluLCBsbWF4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy04NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg3LVxcdFxcdGludCBqO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05Mi1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVJSQVlfU0laRShwb3J0LVxcdTAwM2VkZXZzKTsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo5MzpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKml0ZXJfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTQtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDA6XFx0XFx0XFx0aWYgKGFpcm9oYV9pc19sYW5fZ2RtX2RldihpdGVyX2RldikgIT1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwMTpcXHRcXHRcXHQgICAgYWlyb2hhX2lzX2xhbl9nZG1fZGV2KGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMDItXFx0XFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEzMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEzNDpcXHRyZWcgPSBhaXJvaGFfaXNfbGFuX2dkbV9kZXYoZGV2KSA/IFJFR19GRV9MQU5fTUFDX0ggOiBSRUdfRkVfV0FOX01BQ19IO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTM1LVxcdHZhbCA9IChhZGRyWzBdIFxcdTAwM2NcXHUwMDNjIDE2KSB8IChhZGRyWzFdIFxcdTAwM2NcXHUwMDNjIDgpIHwgYWRkclsyXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEzNjpcXHRhaXJvaGFfZmVfd3IoZXRoLCByZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMzg6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX01BQ19MTUlOKHJlZyksIGxtaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTM5OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9NQUNfTE1BWChyZWcpLCBsbWF4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE0MTpcXHRhaXJvaGFfcHBlX2luaXRfdXBkX21lbShkZXYsIGFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNDY6c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTQ3LVxcdFxcdFxcdFxcdFxcdHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTQ5OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fT0NGUV9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTUwLVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoR0RNX09DRlFfTUFTSywgdmFsKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNTE6XFx0YWlyb2hhX2ZlX3JtdyhldGgsIGFkZHIsIEdETV9NQ0ZRX01BU0ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTItXFx0XFx0ICAgICAgRklFTERfUFJFUChHRE1fTUNGUV9NQVNLLCB2YWwpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1MzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgYWRkciwgR0RNX0JDRlFfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE1NC1cXHRcXHQgICAgICBGSUVMRF9QUkVQKEdETV9CQ0ZRX01BU0ssIHZhbCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTU1OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBhZGRyLCBHRE1fVUNGUV9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTU2LVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoR0RNX1VDRlFfTUFTSywgdmFsKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE1OTpzdGF0aWMgaW50IGFpcm9oYV9zZXRfdmlwX2Zvcl9nZG1fcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTYxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNjI6XFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYzLVxcdHUzMiB2aXBfcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY2LVxcdGlmIChlbmFibGUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2NzpcXHRcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX1ZJUF9QT1JUX0VOLCB2aXBfcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNjg6XFx0XFx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19GRV9JRkNfUE9SVF9FTiwgdmlwX3BvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY5LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzA6XFx0XFx0YWlyb2hhX2ZlX2NsZWFyKGV0aCwgUkVHX0ZFX1ZJUF9QT1JUX0VOLCB2aXBfcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzE6XFx0XFx0YWlyb2hhX2ZlX2NsZWFyKGV0aCwgUkVHX0ZFX0lGQ19QT1JUX0VOLCB2aXBfcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNzc6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX21hY2NyX2luaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE3OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE4MS1cXHRmb3IgKHAgPSAxOyBwIFxcdTAwM2M9IEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IHArKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTgyOlxcdFxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfR0RNX0ZXRF9DRkcocCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xODMtXFx0XFx0XFx0ICAgICAgR0RNX1RDUF9DS1NVTV9NQVNLIHwgR0RNX1VEUF9DS1NVTV9NQVNLIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE4NC1cXHRcXHRcXHQgICAgICBHRE1fSVA0X0NLU1VNX01BU0sgfCBHRE1fRFJPUF9DUkNfRVJSX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTg1OlxcdFxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfR0RNX0xFTl9DRkcocCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xODYtXFx0XFx0XFx0ICAgICAgR0RNX1NIT1JUX0xFTl9NQVNLIHwgR0RNX0xPTkdfTEVOX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5MTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9WTEFOX0NUUkwoMSksIENETV9WTEFOX01BU0ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTItXFx0XFx0ICAgICAgRklFTERfUFJFUChDRE1fVkxBTl9NQVNLLCAweDgxMDApKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NDpcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX0NQT1JUX0NGRywgRkVfQ1BPUlRfUEFEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTc6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3ZpcF9zZXR1cChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5OTpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMyksIEVUSF9QX1BQUF9ESVNDKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMDpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDMpLCBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fRU5fTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDI6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDQpLCBQUFBfTENQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwMzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDQpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA0LVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBGSUVMRF9QUkVQKFBBVE5fVFlQRV9NQVNLLCAxKSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwNzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oNiksIFBQUF9JUENQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwODpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDYpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA5LVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBGSUVMRF9QUkVQKFBBVE5fVFlQRV9NQVNLLCAxKSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMjpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oNyksIFBQUF9DSEFQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDcpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0LVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBGSUVMRF9QUkVQKFBBVE5fVFlQRV9NQVNLLCAxKSB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNy1cXHQvKiBCT09UUCAoMHg0MykgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxODpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oOCksIDB4NDMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE5OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oOCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjAtXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMy1cXHQvKiBCT09UUCAoMHg0NCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNDpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oOSksIDB4NDQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjI1OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oOSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjYtXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyOS1cXHQvKiBJU0FLTVAgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIzMDpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMTApLCAweDFmNDAxZjQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjMxOlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfRU4oMTApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjMyLVxcdFxcdCAgICAgUEFUTl9GQ1BVX0VOX01BU0sgfCBQQVROX0RQX0VOX01BU0sgfCBQQVROX1NQX0VOX01BU0sgfFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMzU6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDExKSwgUFBQX0lQVjZDUCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMzY6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxMSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMzctXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IEZJRUxEX1BSRVAoUEFUTl9UWVBFX01BU0ssIDEpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQwLVxcdC8qIERIQ1B2NiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjQxOlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9WSVBfUEFUTigxMiksIDB4MjIyMDIyMyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNDI6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9FTigxMiksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDMtXFx0XFx0ICAgICBQQVROX0ZDUFVfRU5fTUFTSyB8IFBBVE5fRFBfRU5fTUFTSyB8IFBBVE5fU1BfRU5fTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NjpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMTkpLCBQUFBfUEFQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDE5KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0OC1cXHRcXHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgRklFTERfUFJFUChQQVROX1RZUEVfTUFTSywgMSkgfFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTEtXFx0LyogRVRILVxcdTAwM2VFVEhfUF8xOTA1ICgweDg5M2EpICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNTI6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX1ZJUF9QQVROKDIwKSwgMHg4OTNhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1MzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDIwKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1NC1cXHRcXHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgUEFUTl9FTl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1NjpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX1BBVE4oMjEpLCBFVEhfUF9MTERQKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI1NzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfVklQX0VOKDIxKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1OC1cXHRcXHQgICAgIFBBVE5fRkNQVV9FTl9NQVNLIHwgUEFUTl9FTl9NQVNLKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjYxOnN0YXRpYyB1MzIgYWlyb2hhX2ZlX2dldF9wc2VfcXVldWVfcnN2X3BhZ2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjItXFx0XFx0XFx0XFx0XFx0ICAgICB1MzIgcG9ydCwgdTMyIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2NDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9RVUVVRV9DRkdfV1IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjUtXFx0XFx0ICAgICAgUFNFX0NGR19QT1JUX0lEX01BU0sgfCBQU0VfQ0ZHX1FVRVVFX0lEX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2OTpcXHRyZXR1cm4gYWlyb2hhX2ZlX2dldChldGgsIFJFR19GRV9QU0VfUVVFVUVfQ0ZHX1ZBTCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3MC1cXHRcXHRcXHQgICAgIFBTRV9DRkdfT1FfUlNWX01BU0spO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNzM6c3RhdGljIHZvaWQgYWlyb2hhX2ZlX3NldF9wc2VfcXVldWVfcnN2X3BhZ2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNzQtXFx0XFx0XFx0XFx0XFx0ICAgICAgdTMyIHBvcnQsIHUzMiBxdWV1ZSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNzY6XFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfUVVFVUVfQ0ZHX1ZBTCwgUFNFX0NGR19PUV9SU1ZfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3Ny1cXHRcXHQgICAgICBGSUVMRF9QUkVQKFBTRV9DRkdfT1FfUlNWX01BU0ssIHZhbCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjc4OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX1FVRVVFX0NGR19XUixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI3OS1cXHRcXHQgICAgICBQU0VfQ0ZHX1BPUlRfSURfTUFTSyB8IFBTRV9DRkdfUVVFVUVfSURfTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI4NjpzdGF0aWMgdTMyIGFpcm9oYV9mZV9nZXRfcHNlX2FsbF9yc3Yoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI4Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyODg6XFx0cmV0dXJuIGFpcm9oYV9mZV9nZXQoZXRoLCBSRUdfRkVfUFNFX0JVRl9TRVQsIFBTRV9BTExSU1ZfTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjkxOnN0YXRpYyBpbnQgYWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOTItXFx0XFx0XFx0XFx0ICAgIHUzMiBwb3J0LCB1MzIgcXVldWUsIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjk0OlxcdHUzMiBvcmlnX3ZhbCA9IGFpcm9oYV9mZV9nZXRfcHNlX3F1ZXVlX3Jzdl9wYWdlcyhldGgsIHBvcnQsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NS1cXHR1MzIgdG1wLCBhbGxfcnN2LCBmcV9saW1pdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI5NzpcXHRhaXJvaGFfZmVfc2V0X3BzZV9xdWV1ZV9yc3ZfcGFnZXMoZXRoLCBwb3J0LCBxdWV1ZSwgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5OS1cXHQvKiBtb2RpZnkgYWxsIHJzdiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAwOlxcdGFsbF9yc3YgPSBhaXJvaGFfZmVfZ2V0X3BzZV9hbGxfcnN2KGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDEtXFx0YWxsX3JzdiArPSAodmFsIC0gb3JpZ192YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzAyOlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfUFNFX0JVRl9TRVQsIFBTRV9BTExSU1ZfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwMy1cXHRcXHQgICAgICBGSUVMRF9QUkVQKFBTRV9BTExSU1ZfTUFTSywgYWxsX3JzdikpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDUtXFx0LyogbW9kaWZ5IGh0aGQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwNjpcXHRmcV9saW1pdCA9IGFpcm9oYV9mZV9nZXQoZXRoLCBQU0VfRlFfQ0ZHLCBQU0VfRlFfTElNSVRfTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDctXFx0dG1wID0gZnFfbGltaXQgLSBhbGxfcnN2IC0gMHgyMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwODpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9TSEFSRV9VU0VEX1RIRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwOS1cXHRcXHQgICAgICBQU0VfU0hBUkVfVVNFRF9IVEhEX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMi1cXHR0bXAgPSBmcV9saW1pdCAtIGFsbF9yc3YgLSAweDEwMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxMzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9TSEFSRV9VU0VEX1RIRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNC1cXHRcXHQgICAgICBQU0VfU0hBUkVfVVNFRF9NVEhEX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNi1cXHR0bXAgPSAoMyAqIHRtcCkgXFx1MDAzZVxcdTAwM2UgMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0ZFX1BTRV9CVUZfU0VULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE4LVxcdFxcdCAgICAgIFBTRV9TSEFSRV9VU0VEX0xUSERfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI0OnN0YXRpYyB2b2lkIGFpcm9oYV9mZV9wc2VfcG9ydHNfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQxOlxcdGlmIChhaXJvaGFfcHBlX2lzX2VuYWJsZWQoZXRoLCAxKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQyLVxcdFxcdHUzMiBhbGxfcnN2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDQtXFx0XFx0LyogaHcgbWlzc2VzIFBQRTIgb3EgcnN2ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDU6XFx0XFx0YWxsX3JzdiA9IGFpcm9oYV9mZV9nZXRfcHNlX2FsbF9yc3YoZXRoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0Ni1cXHRcXHRhbGxfcnN2ICs9IFBTRV9SU1ZfUEFHRVMgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQ3LVxcdFxcdFxcdCAgIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfUFBFMl07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDg6XFx0XFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19GRV9QU0VfQlVGX1NFVCwgUFNFX0FMTFJTVl9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQ5LVxcdFxcdFxcdCAgICAgIEZJRUxEX1BSRVAoUFNFX0FMTFJTVl9NQVNLLCBhbGxfcnN2KSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1My1cXHRmb3IgKHEgPSAwOyBxIFxcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9DRE0xXTsgcSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU0OlxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0NETTEsIHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTUtXFx0XFx0XFx0XFx0XFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTctXFx0Zm9yIChxID0gMDsgcSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNMV07IHErKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM1ODpcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE0xLCBxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU5LVxcdFxcdFxcdFxcdFxcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzYxLVxcdGZvciAocSA9IDY7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTJdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjI6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfR0RNMiwgcSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjMtXFx0LyogR0RNMyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY0LVxcdGZvciAocSA9IDA7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0dETTNdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjU6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfR0RNMywgcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2Ni1cXHRcXHRcXHRcXHRcXHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM2OS1cXHRcXHRpZiAocSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfUFBFMV0gLyAyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzcwOlxcdFxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX1BQRTEsIHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzEtXFx0XFx0XFx0XFx0XFx0XFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzcyLVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3MzpcXHRcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUxLCBxLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3NC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3Ni1cXHRmb3IgKHEgPSAwOyBxIFxcdTAwM2MgcHNlX3BvcnRfbnVtX3F1ZXVlc1tGRV9QU0VfUE9SVF9DRE0yXTsgcSsrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzc3OlxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX0NETTIsIHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzgtXFx0XFx0XFx0XFx0XFx0IFBTRV9RVUVVRV9SU1ZfUEFHRVMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODAtXFx0Zm9yIChxID0gMDsgcSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfQ0RNM10gLSAxOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODE6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNMywgcSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODItXFx0LyogQ0RNNCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzgzLVxcdGZvciAocSA9IDQ7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTRdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODQ6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNNCwgcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4NS1cXHRcXHRcXHRcXHRcXHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODY6XFx0aWYgKGFpcm9oYV9wcGVfaXNfZW5hYmxlZChldGgsIDEpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODctXFx0XFx0LyogUFBFMiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODktXFx0XFx0XFx0aWYgKHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX1BQRTJdIC8gMilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM5MDpcXHRcXHRcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9QUEUyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzkxLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTMtXFx0XFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk0OlxcdFxcdFxcdFxcdGFpcm9oYV9mZV9zZXRfcHNlX29xX3JzdihldGgsIEZFX1BTRV9QT1JUX1BQRTIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHEsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTktXFx0Zm9yIChxID0gMDsgcSBcXHUwMDNjIHBzZV9wb3J0X251bV9xdWV1ZXNbRkVfUFNFX1BPUlRfR0RNNF07IHErKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQwMDpcXHRcXHRhaXJvaGFfZmVfc2V0X3BzZV9vcV9yc3YoZXRoLCBGRV9QU0VfUE9SVF9HRE00LCBxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAxLVxcdFxcdFxcdFxcdFxcdCBQU0VfUVVFVUVfUlNWX1BBR0VTKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDAzLVxcdGZvciAocSA9IDA7IHEgXFx1MDAzYyBwc2VfcG9ydF9udW1fcXVldWVzW0ZFX1BTRV9QT1JUX0NETTVdOyBxKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MDQ6XFx0XFx0YWlyb2hhX2ZlX3NldF9wc2Vfb3FfcnN2KGV0aCwgRkVfUFNFX1BPUlRfQ0RNNSwgcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwNS1cXHRcXHRcXHRcXHRcXHQgUFNFX1FVRVVFX1JTVl9QQUdFUyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQwODpzdGF0aWMgaW50IGFpcm9oYV9mZV9tY192bGFuX2NsZWFyKHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MDkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MTY6XFx0XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fREFUQSwgMHgwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQxNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDE5LVxcdFxcdCAgICAgIE1DX1ZMQU5fQ0ZHX1RBQkxFX1NFTF9NQVNLIHwgTUNfVkxBTl9DRkdfUldfTUFTSztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQyMDpcXHRcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfTUNfVkxBTl9DRkcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MjE6XFx0XFx0ZXJyID0gcmVhZF9wb2xsX3RpbWVvdXQoYWlyb2hhX2ZlX3JyLCB2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00MjItXFx0XFx0XFx0XFx0XFx0dmFsIFxcdTAwMjYgTUNfVkxBTl9DRkdfQ01EX0RPTkVfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDI4LVxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBBSVJPSEFfRkVfTUNfTUFYX1ZMQU5fUE9SVDsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0Mjk6XFx0XFx0XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fREFUQSwgMHgwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDMzLVxcdFxcdFxcdCAgICAgIE1DX1ZMQU5fQ0ZHX1JXX01BU0s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0MzQ6XFx0XFx0XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX01DX1ZMQU5fQ0ZHLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NDM1OlxcdFxcdFxcdGVyciA9IHJlYWRfcG9sbF90aW1lb3V0KGFpcm9oYV9mZV9yciwgdmFsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDM2LVxcdFxcdFxcdFxcdFxcdFxcdHZhbCBcXHUwMDI2IE1DX1ZMQU5fQ0ZHX0NNRF9ET05FX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ0ODpzdGF0aWMgdm9pZCBhaXJvaGFfZmVfY3Jzbl9xc2VsX2luaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ0OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTAtXFx0LyogQ0RNMV9DUlNOX1FTRUwgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1MTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yMiBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1Mi1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjIpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTQtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1NTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8wOCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ1Ni1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NTgtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ1OTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yMSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2MC1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjEpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjItXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ2MzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yNCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2NC1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjQpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NjYtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ2NzpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMSwgQ1JTTl8yNSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ2OC1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjUpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzEtXFx0LyogQ0RNMl9DUlNOX1FTRUwgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ3MjpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8wOCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3My1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMDgpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzUtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ3NjpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yMSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ3Ny1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjEpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00NzktXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4MDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yMiBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4MS1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjIpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODMtXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTEpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4NDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yNCBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4NS1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjQpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00ODctXFx0XFx0XFx0XFx0IENETV9DUlNOX1FTRUxfUTYpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ4ODpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9DUlNOX1FTRUwoMiwgQ1JTTl8yNSBcXHUwMDNlXFx1MDAzZSAyKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTQ4OS1cXHRcXHQgICAgICBDRE1fQ1JTTl9RU0VMX1JFQVNPTl9NQVNLKENSU05fMjUpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy00OTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0OTQ6c3RhdGljIGludCBhaXJvaGFfZmVfaW5pdChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjQ5NjpcXHRhaXJvaGFfZmVfbWFjY3JfaW5pdChldGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNDk4LVxcdC8qIFBTRSBJUSByZXNlcnZlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo0OTk6XFx0YWlyb2hhX2ZlX3JtdyhldGgsIFJFR19QU0VfSVFfUkVWMSwgUFNFX0lRX1JFUzFfUDJfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUwMC1cXHRcXHQgICAgICBGSUVMRF9QUkVQKFBTRV9JUV9SRVMxX1AyX01BU0ssIDB4MTApKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUwMTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX1BTRV9JUV9SRVYyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTAyLVxcdFxcdCAgICAgIFBTRV9JUV9SRVMyX1A1X01BU0sgfCBQU0VfSVFfUkVTMl9QNF9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MDYtXFx0LyogZW5hYmxlIEZFIGNvcHkgZW5naW5lIGZvciBLQS9EUEkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUwNzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfUENFX0NGRywgUENFX0RQSV9FTl9NQVNLIHwgUENFX0tBX0VOX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTA4LVxcdC8qIHNldCB2aXAgcXVldWUgc2VsZWN0aW9uIHRvIHJpbmcgMSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTA5OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0ZXRF9DRkcoMSksIENETV9WSVBfUVNFTF9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEwLVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoQ0RNX1ZJUF9RU0VMX01BU0ssIDB4NCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTExOlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfQ0RNX0ZXRF9DRkcoMiksIENETV9WSVBfUVNFTF9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEyLVxcdFxcdCAgICAgIEZJRUxEX1BSRVAoQ0RNX1ZJUF9RU0VMX01BU0ssIDB4NCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTEzLVxcdC8qIHNldCBHRE00IHNvdXJjZSBpbnRlcmZhY2Ugb2Zmc2V0IHRvIDggKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUxNDpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9TUkNfUE9SVF9TRVQoNCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MTUtXFx0XFx0ICAgICAgR0RNX1NQT1JUX09GRjJfTUFTSyB8XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUyMi1cXHQvKiBzZXQgUFNFIFBhZ2UgYXMgMTI4QiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTIzOlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfRkVfRE1BX0dMT19DRkcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjQtXFx0XFx0ICAgICAgRkVfRE1BX0dMT19MMl9TUEFDRV9NQVNLIHwgRkVfRE1BX0dMT19QR19TWl9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjYtXFx0XFx0ICAgICAgRkVfRE1BX0dMT19QR19TWl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUyNzpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfUlNUX0dMT19DRkcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01MjgtXFx0XFx0ICAgICBGRV9SU1RfQ09SRV9NQVNLIHwgRkVfUlNUX0dETTNfTUJJX0FSQl9NQVNLIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTM0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTM1OlxcdGFpcm9oYV9mZV93cihldGgsIFJFR19GRV9DRE0xX09RX01BUDAsIEJJVCg0KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1MzY6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMSwgQklUKDI4KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1Mzc6XFx0YWlyb2hhX2ZlX3dyKGV0aCwgUkVHX0ZFX0NETTFfT1FfTUFQMiwgQklUKDQpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjUzODpcXHRhaXJvaGFfZmVfd3IoZXRoLCBSRUdfRkVfQ0RNMV9PUV9NQVAzLCBCSVQoMjgpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTUzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU0MDpcXHRhaXJvaGFfZmVfdmlwX3NldHVwKGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NDE6XFx0YWlyb2hhX2ZlX3BzZV9wb3J0c19pbml0KGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NDM6XFx0YWlyb2hhX2ZlX3NldChldGgsIFJFR19HRE1fTUlTQ19DRkcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NDQtXFx0XFx0ICAgICAgR0RNMl9SRE1fQUNLX1dBSVRfUFJFRl9NQVNLIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0NS1cXHRcXHQgICAgICBHRE0yX0NITl9WTERfTU9ERV9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU0NjpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0NETV9GV0RfQ0ZHKDIpLCBDRE1fT0FNX1FTRUxfTUFTSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU0Ny1cXHRcXHQgICAgICBGSUVMRF9QUkVQKENETV9PQU1fUVNFTF9NQVNLLCAxNSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NTAtXFx0LyogTlBVIENvcmUtMywgTlBVIEJyaWRnZSBDaGFubmVsLTMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU1MTpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0lQX0ZSQUdfRlAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NTItXFx0XFx0ICAgICAgSVBfRlJBR01FTlRfUE9SVF9NQVNLIHwgSVBfRlJBR01FTlRfTkJRX01BU0ssXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1NS1cXHQvKiBRRE1BIExBTiwgUlggUmluZy0yMiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTU2OlxcdGFpcm9oYV9mZV9ybXcoZXRoLCBSRUdfSVBfRlJBR19GUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU1Ny1cXHRcXHQgICAgICBJUF9BU1NFTUJMRV9QT1JUX01BU0sgfCBJUF9BU1NFTUJMRV9OQlFfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTYxOlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfR0RNX0ZXRF9DRkcoQUlST0hBX0dETTNfSURYKSwgR0RNX1BBRF9FTl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU2MjpcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0dETV9GV0RfQ0ZHKEFJUk9IQV9HRE00X0lEWCksIEdETV9QQURfRU5fTUFTSyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjQtXFx0LyogRW5hYmxlIHNwbGl0IGZvciBNSUIgY291bnRlcnMgZm9yIEdETTMgYW5kIEdETTQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU2NTpcXHRhaXJvaGFfZmVfc2V0KGV0aCwgUkVHX0ZFX0dETV9NSUJfQ0ZHKEFJUk9IQV9HRE0zX0lEWCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NjYtXFx0XFx0ICAgICAgRkVfR0RNX1RYX01JQl9TUExJVF9FTl9NQVNLIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2Ny1cXHRcXHQgICAgICBGRV9HRE1fUlhfTUlCX1NQTElUX0VOX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTY4OlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfRkVfR0RNX01JQl9DRkcoQUlST0hBX0dETTRfSURYKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU2OS1cXHRcXHQgICAgICBGRV9HRE1fVFhfTUlCX1NQTElUX0VOX01BU0sgfFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NzI6XFx0YWlyb2hhX2ZlX2Nyc25fcXNlbF9pbml0KGV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1NzQ6XFx0YWlyb2hhX2ZlX2NsZWFyKGV0aCwgUkVHX0ZFX0NQT1JUX0NGRywgRkVfQ1BPUlRfUVVFVUVfWEZDX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTc1OlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfRkVfQ1BPUlRfQ0ZHLCBGRV9DUE9SVF9QT1JUX1hGQ19NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU3Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU3Ny1cXHQvKiBkZWZhdWx0IGFnaW5nIG1vZGUgZm9yIG1iaSB1bmxvY2sgaXNzdWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU3ODpcXHRhaXJvaGFfZmVfcm13KGV0aCwgUkVHX0dETV9DSE5fUkxTKDIpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTc5LVxcdFxcdCAgICAgIE1CSV9SWF9BR0VfU0VMX01BU0sgfCBNQklfVFhfQUdFX1NFTF9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01ODMtXFx0LyogZGlzYWJsZSBJRkMgYnkgZGVmYXVsdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTg0OlxcdGFpcm9oYV9mZV9jbGVhcihldGgsIFJFR19GRV9DU1JfSUZDX0NGRywgRkVfSUZDX0VOX01BU0spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTg2LVxcdC8qIGVuYWJsZSAxOk4gdmxhbiBhY3Rpb24sIGluaXQgdmxhbiB0YWJsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTg3OlxcdGFpcm9oYV9mZV9zZXQoZXRoLCBSRUdfTUNfVkxBTl9FTiwgTUNfVkxBTl9FTl9NQVNLKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU4OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU4OTpcXHRyZXR1cm4gYWlyb2hhX2ZlX21jX3ZsYW5fY2xlYXIoZXRoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTU5MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo1OTI6c3RhdGljIGludCBhaXJvaGFfcWRtYV9maWxsX3J4X3F1ZXVlKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NTk0OlxcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSA9IHEtXFx1MDAzZXFkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy01OTUtXFx0aW50IHFpZCA9IHEgLSBcXHUwMDI2cWRtYS1cXHUwMDNlcV9yeFswXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNTk4LVxcdHdoaWxlIChxLVxcdTAwM2VxdWV1ZWQgXFx1MDAzYyBxLVxcdTAwM2VuZGVzYyAtIDEpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjU5OTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlX2VudHJ5ICplID0gXFx1MDAyNnEtXFx1MDAzZWVudHJ5W3EtXFx1MDAzZWhlYWRdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjAwOlxcdFxcdHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjID0gXFx1MDAyNnEtXFx1MDAzZWRlc2NbcS1cXHUwMDNlaGVhZF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MDEtXFx0XFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYzMC1cXHRpZiAobmZyYW1lcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjYzMTpcXHRcXHRhaXJvaGFfcWRtYV9ybXcocWRtYSwgUkVHX1JYX0NQVV9JRFgocWlkKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYzMi1cXHRcXHRcXHRcXHRSWF9SSU5HX0NQVV9JRFhfTUFTSyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjM4OnN0YXRpYyBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjM5OmFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY0MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQyLVxcdHUxNiBwLCBkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NjA6c3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9wcm9jZXNzKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEsIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjYyLVxcdGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2RpcihxLVxcdTAwM2VwYWdlX3Bvb2wpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjYzOlxcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSA9IHEtXFx1MDAzZXFkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NjQ6XFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IHFkbWEtXFx1MDAzZWV0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY2NS1cXHRpbnQgcWlkID0gcSAtIFxcdTAwMjZxZG1hLVxcdTAwM2VxX3J4WzBdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NjgtXFx0d2hpbGUgKGRvbmUgXFx1MDAzYyBidWRnZXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY2OTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlX2VudHJ5ICplID0gXFx1MDAyNnEtXFx1MDAzZWVudHJ5W3EtXFx1MDAzZXRhaWxdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcwOlxcdFxcdHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjID0gXFx1MDAyNnEtXFx1MDAzZWRlc2NbcS1cXHUwMDNldGFpbF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NzEtXFx0XFx0dTMyIGhhc2gsIHJlYXNvbiwgbXNnMSwgZGVzY19jdHJsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjcyOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjczLVxcdFxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY5NTpcXHRcXHRkZXYgPSBhaXJvaGFfcWRtYV9nZXRfZ2RtX2RldihldGgsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjk2LVxcdFxcdGlmIChJU19FUlIoZGV2KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzI4LVxcdFxcdGlmIChuZXRkZXZfdXNlc19kc2EobmV0ZGV2KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzI5OlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MzAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTc1Mi1cXHRcXHRpZiAocmVhc29uID09IFBQRV9DUFVfUkVBU09OX0hJVF9VTkJJTkRfUkFURV9SRUFDSEVEKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NzUzOlxcdFxcdFxcdGFpcm9oYV9wcGVfY2hlY2tfc2tiKFxcdTAwMjZldGgtXFx1MDAzZXBwZS1cXHUwMDNlZGV2LCBxLVxcdTAwM2Vza2IsIGhhc2gsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjM5LjMxOTc5MDgxOFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIyODkzNDg3MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBORVRfQUlST0hBIEtjb25maWcqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIEtjb25maWcgZm9yIE5FVF9BSVJPSEEuIEknbSBnb2luZyB0byB0YWtlIGEgbG9vayBhdCB0aGlzIGFuZCBzZWUgaG93IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGxhaWQgb3V0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGZlYXR1cmVzIGFyZSBiZWluZyBleHBvc2VkLCBob3cgdGhleSdyZSBkZXBlbmRlbnQgb24gb3RoZXIgb3B0aW9ucywgYW5kIGFueSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIGZvciB0aGUgb3ZlcmFsbCBuZXR3b3JrIHN0YWNrLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGFueSBzaWducyBvZiB2ZW5kb3Itc3BlY2lmaWMgcXVpcmtzIG9yIG9wdGltaXphdGlvbnMsIHVudXN1YWwgZGVwZW5kZW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IG1pZ2h0IHJlcXVpcmUgZGVlcGVyIGludmVzdGlnYXRpb24gZm9yIGludGVncmF0aW9uIG9yIGN1c3RvbWl6YXRpb24uIE15IGtleSBhcmVhcyBvZiBmb2N1cyB3aWxsIGluY2x1ZGUgdGhlIGRldmljZSBkcml2ZXIgb3B0aW9ucywgYW55IG5ldHdvcmsgcHJvdG9jb2wgc3VwcG9ydCwgc2VjdXJpdHkgZmVhdHVyZXMsIGFuZCBob3cgdGhleSByZWxhdGUgdG8gdGhlIHRhcmdldCBBaXJvaGEgU29DJ3MgY2FwYWJpbGl0aWVzLiBJ4oCZbGwgYWxzbyBiZSBzZWFyY2hpbmcgZm9yIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGFyZWFzIHdoZXJlIHBlcmZvcm1hbmNlIHR1bmluZyBtaWdodCBiZSBuZWNlc3NhcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTc5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6NDEuNjA5MTQyMDY0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NjUzNzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5FVF9BSVJPSEFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZz04PWlmIE5FVF9WRU5ET1JfQUlST0hBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0xMS1cXHR0cmlzdGF0ZSBcXFwiQWlyb2hhIE5QVSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6MTg6Y29uZmlnIE5FVF9BSVJPSEFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjAtXFx0ZGVwZW5kcyBvbiBORVRfRFNBIHx8ICFORVRfRFNBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6MjE6XFx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjItXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6Mjc6Y29uZmlnIE5FVF9BSVJPSEFfRkxPV19TVEFUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI4LVxcdGRlZmF1bHQgeVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI5LVxcdGJvb2wgXFxcIkFpcm9oYSBmbG93IHN0YXRzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQSBcXHUwMDI2XFx1MDAyNiBORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTMxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19ORVRfQUlST0hBKSArPSBhaXJvaGEtZXRoLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGUtNy1haXJvaGEtZXRoLXkgOj0gYWlyb2hhX2V0aC5vIGFpcm9oYV9wcGUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSArPSBhaXJvaGFfbnB1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9Mzg9c3RhdGljIGludCBhaXJvaGFfcHBlX2dldF9udW1fc3RhdHNfZW50cmllcyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NDA6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19ORVRfQUlST0hBX0ZMT1dfU1RBVFMpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtNDEtXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo0MS42NTQ3OTk5OTFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNDI4NjAxODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggdGhpcyB0YXNrLCB0aGlua2luZyB0aHJvdWdoIGl0IHN0ZXAtYnktc3RlcDpcblxuKipDaGVja2luZyB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlciBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIEZpcnN0LCBteSBpbnN0aW5jdCBpcyB0byBqdW1wIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnYC4gVGhhdCdzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJpdmVyLCBhbmQgY3J1Y2lhbGx5LCBob3cgYE5FVF9WRU5ET1JfQUlST0hBYCBpcyBkZWZpbmVkLiBLbm93aW5nIHRoYXQgc3ltYm9sIGlzIGtleS4gSSBuZWVkIHRvIGtub3cgKmlmKiBpdCdzIGV2ZW4gZW5hYmxlZCBhbmQgd2hhdCBpdHMgZGVwZW5kZW5jaWVzIG1pZ2h0IGJlLiBPbmNlIEkgaGF2ZSB0aGF0LCBJIGNhbiBkZXRlcm1pbmUgdGhlIGxldmVsIG9mIHN1cHBvcnQgdGhpcyBkcml2ZXIgaGFzIGF0IGEgZ2xhbmNlLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGRldmljZXMgb3IgYnVzZXMgdGhlIGBhaXJvaGFfZXRoYCBkcml2ZXIgaXMgZGVzaWduZWQgdG8gYmluZCB0by4gSXMgaXQgUENJLCBTUEksIFVTQiwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBLY29uZmlnIGxpa2VseSB3aWxsIHByb3ZpZGUgc29tZSBoaW50cywgYnV0IEknbGwgcHJvYmFibHkgaGF2ZSB0byB0cmFjZSB0aGUgY29kZSB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIFRoaXMgY29udGV4dCBpcyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIHN5c3RlbSBhbmQgd2hhdCBoYXJkd2FyZSBpdCdzIGludGVuZGVkIHRvIHN1cHBvcnQuIFRoaXMgaXMgd2hlcmUgSSBjYW4gc3RhcnQgdG8gZGV2ZWxvcCBhIG1lbnRhbCBtYXAgb2YgdGhlIGRyaXZlcidzIHJvbGUgaW4gdGhlIG5ldHdvcmtpbmcgbGFuZHNjYXBlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDkxMiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjQ1LjA4MzQwNDM5OVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTkVUX1ZFTkRPUl9BSVJPSEFcXG4gICAzOlxcdFxcdGJvb2wgXFxcIkFpcm9oYSBkZXZpY2VzXFxcIlxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX0FJUk9IQSB8fCBDT01QSUxFX1RFU1RcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgSWYgeW91IGhhdmUgYSBBaXJvaGEgU29DIHdpdGggZXRoZXJuZXQsIHNheSBZLlxcbiAgIDc6XFx0XFxuICAgODpcXHRpZiBORVRfVkVORE9SX0FJUk9IQVxcbiAgIDk6XFx0XFxuICAxMDpcXHRjb25maWcgTkVUX0FJUk9IQV9OUFVcXG4gIDExOlxcdFxcdHRyaXN0YXRlIFxcXCJBaXJvaGEgTlBVIHN1cHBvcnRcXFwiXFxuICAxMjpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDEzOlxcdFxcdHNlbGVjdCBSRUdNQVBfTU1JT1xcbiAgMTQ6XFx0XFx0aGVscFxcbiAgMTU6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBBaXJvaGEgTmV0d29yayBQcm9jZXNzb3IgKE5QVSkgYXZhaWxhYmxlXFxuICAxNjpcXHRcXHQgIG9uIHRoZSBBaXJvaGEgU29jIGZhbWlseS5cXG4gIDE3OlxcdFxcbiAgMTg6XFx0Y29uZmlnIE5FVF9BSVJPSEFcXG4gIDE5OlxcdFxcdHRyaXN0YXRlIFxcXCJBaXJvaGEgU29DIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4gIDIwOlxcdFxcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxcbiAgMjE6XFx0XFx0c2VsZWN0IE5FVF9BSVJPSEFfTlBVXFxuICAyMjpcXHRcXHRzZWxlY3QgUEFHRV9QT09MXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBnaWdhYml0IGV0aGVybmV0IE1BQ3MgaW4gdGhlXFxuICAyNTpcXHRcXHQgIEFpcm9oYSBTb0MgZmFtaWx5LlxcbiAgMjY6XFx0XFxuICAyNzpcXHRjb25maWcgTkVUX0FJUk9IQV9GTE9XX1NUQVRTXFxuICAyODpcXHRcXHRkZWZhdWx0IHlcXG4gIDI5OlxcdFxcdGJvb2wgXFxcIkFpcm9oYSBmbG93IHN0YXRzXFxcIlxcbiAgMzA6XFx0XFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFxcdTAwMjZcXHUwMDI2IE5FVF9BSVJPSEFfTlBVXFxuICAzMTpcXHRcXHRoZWxwXFxuICAzMjpcXHRcXHQgIEVuYWJsZSBBaXJvaGEgZmxvd3RhYmxlIHN0YXRpc3RpYyBjb3VudGVycy5cXG4gIDMzOlxcdFxcbiAgMzQ6XFx0ZW5kaWYgI05FVF9WRU5ET1JfQUlST0hBXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA2OjUwOjQ1LjA4MzQ3MjYxOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjExMzQzODI0Mzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlcioqXG5cbk9rYXksIGxldCdzIGRpdmUgaW4uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgYGFpcm9oYV9ldGhgIGlzIGRvaW5nIGluIHRoaXMgY29udGV4dC4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIgdGFpbG9yZWQgZm9yIGFuIEFpcm9oYSBTeXN0ZW0tb24tYS1DaGlwLiBUaW1lIHRvIGNvbmZpcm0gdGhhdC4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgbmF2aWdhdGUgb3ZlciB0byBgYWlyb2hhX2V0aC5jYCBhbmQgemVybyBpbiBvbiB0aGUgZmFtaWxpYXIgcGF0dGVybnMgb2YgYSBwbGF0Zm9ybSBkcml2ZXI6IHNwZWNpZmljYWxseSwgSSdsbCBiZSBsb29raW5nIGZvciBgbW9kdWxlX3BsYXRmb3JtX2RyaXZlcmAgb3IganVzdCBgcGxhdGZvcm1fZHJpdmVyYCB0byBzZWUgaWYgdGhpcyBhbGlnbnMgd2l0aCBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZWJhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzAyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo1Ni40MjcyOTk3NzRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzODQ0MTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBsYXRmb3JtX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk1OD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9haXJvaGFfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzk1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM5NjA6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYWlyb2hhX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjEtXFx0LnByb2JlID0gYWlyb2hhX3Byb2JlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY3LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTY4Om1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz04MDY9c3RhdGljIHZvaWQgYWlyb2hhX25wdV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE1OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFpcm9oYV9ucHVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE2LVxcdC5wcm9iZSA9IGFpcm9oYV9ucHVfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgyMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODI0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo1Ni40NzExNTA4MjFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjQ4NTU0OTI5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgQWlyb2hhIEdpZ2FiaXQgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYGFpcm9oYV9kcml2ZXJgLiBSaWdodCwgdGhhdCdzIHRoZSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIFRoZSBzeXN0ZW0gaWRlbnRpZmllcyBpdCB1c2luZyB0aGUgRGV2aWNlIFRyZWUgbWF0Y2ggc3RyaW5nIGBvZl9haXJvaGFfbWF0Y2hgLiBBbHJpZ2h0LCB0aGF0J3Mgd2hhdCBJIGV4cGVjdC4gSSBzaG91bGQgY2hlY2sgdGhhdCBgb2ZfYWlyb2hhX21hdGNoYCBkZWZpbml0aW9uLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiB0aGUgc3lzdGVtIGlzIGNvcnJlY3RseSBpZGVudGlmeWluZyB0aGUgdGFyZ2V0IGhhcmR3YXJlLiBMZXQgbWUgcXVpY2tseSBleGFtaW5lIHRoYXQuLi4gaXQncyB0aGUgY3J1Y2lhbCBsaW5rIGluIHRoZSBjaGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIzNzMsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MDo1OC45NTY3MDI0MzRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0Njc3NjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9mX2Fpcm9oYV9tYXRjaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk0MT1zdGF0aWMgY29uc3Qgc3RydWN0IGFpcm9oYV9ldGhfc29jX2RhdGEgYW43NTgzX3NvY19kYXRhID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzk1MzpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9haXJvaGFfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NTQtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhaXJvaGEsZW43NTgxLWV0aFxcXCIsIC5kYXRhID0gXFx1MDAyNmVuNzU4MV9zb2NfZGF0YSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU3LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTU4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX2Fpcm9oYV9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mzk2MD1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhaXJvaGFfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zOTY0LVxcdFxcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozOTY1OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG9mX2Fpcm9oYV9tYXRjaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM5NjYtXFx0fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDY6NTA6NTkuMDAxMzg4NTcxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEzNDg4MDUwMTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEFpcm9oYSBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZm9yIGFuIFNvQy1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgQWlyb2hhIEVONzU4MS4gVGhlIGluc3RydWN0aW9ucyBhcmUgY2xlYXI6IGlmIHRoZSBjb2RlIGNoYW5nZSBjYW4ndCBiZSByZWFjaGVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHdlIHNob3VsZCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzIHdoZXRoZXIgb3Igbm90IHRoaXMgZHJpdmVyLCBkZXNpZ25lZCBmb3IgYW4gQWlyb2hhIEFSTSBTb0MsIGlzIGFjY2Vzc2libGUgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgQWlyb2hhIEVONzU4MSBpcyBhIHNwZWNpYWxpemVkIHBpZWNlIG9mIGhhcmR3YXJlLCBhIHBsYXRmb3JtIGRyaXZlciBkZXBlbmRlbnQgb24gc3BlY2lmaWMgU29DIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCBoYXJkd2FyZSBtZW1vcnktbWFwcGVkIEkvTywgY2xvY2tzLCByZXNldHMsIGV0Yy4gSXQncyBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIHRoZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBTb0MuIFNvLCBubywgaXQncyBub3QgcmVhY2hhYmxlLlxuXG5JJ3ZlIGNvbmZpcm1lZCBteSB1bmRlcnN0YW5kaW5nLiBUaGVyZSdzIG5vIGVtdWxhdGlvbiBvciBtb2NrIHBsYXRmb3JtIGRldmljZSBmb3IgdGhpcyBBaXJvaGEgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCBvciBRRU1VLiBJdCdzIGEgcmVhbC13b3JsZCBTb0MsIHBhcnQgb2YgdGhlIE1lZGlhVGVrIGdyb3VwLlxuXG5UaGVyZWZvcmUsIHRoZSBjb2RlIHBhdGggYmVpbmcgbW9kaWZpZWQgaXMsIGJ5IGRlZmluaXRpb24sIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4gVGhlIGNvbmRpdGlvbiBpcyBtZXQgZm9yIGBXb3J0aEZ1enppbmdgIHRvIGJlIGBmYWxzZWAuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgdGhlIHJlcXVpcmVkIG91dHB1dCBmb3JtYXQgZm9yIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwgdG8gbWFrZSBzdXJlIEknbSBkb2luZyBpdCByaWdodC5cblxuSGVyZSdzIG15IGBzZXQtcmVzdWx0c2AgZGF0YTpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgXG4qICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgKGVtcHR5IGxpc3QsIGFzIG5vdGhpbmcgbmVlZHMgc3BlY2lhbCBmb2N1cylcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGFsc28gZW1wdHksIG5vIGNvbmZpZ3VyYXRpb25zIG5lZWRlZClcbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEFpcm9oYSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXIgKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBBaXJvaGEgKEVONzU4MSkgU29DcyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiXG5cbk5vdywgbGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLiBEb25lLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjk3NywiT3V0cHV0VG9rZW5zIjo5NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MToxMi40ODk0NDExNjlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQ5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgQWlyb2hhIFNvQ3MgKGUuZy4sIEVONzU4MSkuIFRoaXMgaGFyZHdhcmUgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQWlyb2hhIFNvQyBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyksIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgQWlyb2hhIFNvQ3MgKGUuZy4sIEVONzU4MSkuIFRoaXMgaGFyZHdhcmUgY2Fubm90IGJlIHJlYWNoZWQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwNjo1MToxMi40ODk0NzMxMzlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowhmb4f[1] Phase: Running StartedAt: 2026-09-02 06:51:24 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhmb4f[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-02 06:51:24 +0000 UTC FinishedAt: 2026-09-02 06:51:28 +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,}