Name: series-workflowcw6tx Phase: Failed StartedAt: 2026-08-17 05:38:18 +0000 UTC FinishedAt: 2026-08-17 05:56:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcw6tx[0] Phase: Succeeded StartedAt: 2026-08-17 05:38:18 +0000 UTC FinishedAt: 2026-08-17 05:56:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcw6tx[0].run-triage Phase: Succeeded StartedAt: 2026-08-17 05:38:18 +0000 UTC FinishedAt: 2026-08-17 05:56:44 +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+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBjb250YWlucyBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzcGVjaWZpY2FsbHkgcmVmYWN0b3JpbmcgbG9nZ2luZyBjYWxscyB0byB1c2UgYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2YCBpbiBgZGV2X3dhcm5gLiBJdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaW50cm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIGJ5IHVzaW5nIHRoZSBgcHJpdmAgdmFyaWFibGUgYmVmb3JlIGl0IGlzIGRlY2xhcmVkLCBzbyB0aGUgY29kZSBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCBvciBleGVjdXRlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjMzY4MTIxOTkyYTQ3Y2YyYTllY2JkZTVhM2U1YTAwMzE5Njk0NWI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTcgMDU6NTQ6MTMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXG5pbmRleCBmZWE1YWVjOWNlZDk5Li40YTY0NjMzYjJkYTNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmNcbkBAIC02NDMsNiAmIzQzOzY0Myw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTc0MCw3ICYjNDM7NzQxLDcgQEAgc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYWMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMjtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbmluZGV4IDU1NTZhYWQxYTdhZDMuLjY4NjA5Y2UzN2FiMDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuY1xuQEAgLTc4OSw2ICYjNDM7Nzg5LDcgQEAgc3RhdGljIGludCBydGw4MTg4ZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gdm9pZCBydGw4MTg4Zl9waHlfbGNfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHZhbDMyO1xuIFx0dTMyIHJmX2Ftb2RlLCBsc3RmO1xuIFx0aW50IGk7XG5AQCAtODE5LDcgJiM0Mzs4MjAsNyBAQCB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoaSA9PSAxMDApXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0O0xDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cXG5cJiMzNDspO1xuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDtMQyBjYWxpYnJhdGlvbiB0aW1lZCBvdXQuXFxuXCYjMzQ7KTtcbiBcbiBcdHJ0bDh4eHh1X3dyaXRlX3JmcmVnKHByaXYsIFJGX0EsIFJGNjA1Ml9SRUdfTU9ERV9BRywgcmZfYW1vZGUpO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuY1xuaW5kZXggNjkwYWNlMzAzMTUwMy4uODM4NWFkYTUzMmIzNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jXG5AQCAtNzQyLDYgJiM0Mzs3NDIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhNCwgcmVnX2VhYywgcmVnX2U5NCwgcmVnX2U5YywgdmFsMzI7XG4gXHRpbnQgcmVzdWx0ID0gMDtcbiBcbkBAIC04NjAsNyAmIzQzOzg2MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKChyZWdfZWFjIFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBcbiBvdXQ6XG5AQCAtODY5LDYgJiM0Mzs4NzAsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYztcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTkxMCw3ICYjNDM7OTEyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYmMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDA0MjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMTtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC05MTgsNiAmIzQzOzkyMCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTEwNDAsNyAmIzQzOzEwNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxuXCYjMzQ7LFxuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxuXCYjMzQ7LFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXG4gb3V0OlxuQEAgLTE0OTUsNiAmIzQzOzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1OCB2YWw4O1xuIFx0aW50IGNvdW50LCByZXQgPSAwO1xuIFxuQEAgLTE1MjEsNyAmIzQzOzE1MjUsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0fVxuIFxuIFx0aWYgKCFjb3VudCkge1xuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFx0XHRyZXQgPSAtRUJVU1k7XG4gXHRcdGdvdG8gZXhpdDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmNcbmluZGV4IDVmMDc2ZGE0YjU1MDYuLjBiOGMwNjgyMTVkNzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xuQEAgLTY4MSw2ICYjNDM7NjgxLDcgQEAgc3RhdGljIHZvaWQgcnRsODE5MmZ1X2luaXRfYWdncmVnYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRzdHJ1Y3QgcnRsODE5MmZ1X2VmdXNlICplZnVzZSA9IFx1MDAyNnByaXYtXHUwMDNlZWZ1c2Vfd2lmaS5lZnVzZTgxOTJmdTtcbiBcdGludCBpO1xuIFxuQEAgLTczMSw3ICYjNDM7NzMyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHRwcml2LVx1MDAzZXJmZV90eXBlID0gZWZ1c2UtXHUwMDNlcmZlX29wdGlvbiBcdTAwMjYgMHgxZjtcbiBcbiBcdGlmIChwcml2LVx1MDAzZXJmZV90eXBlICE9IDUgXHUwMDI2XHUwMDI2IHByaXYtXHUwMDNlcmZlX3R5cGUgIT0gMSlcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdGRldl93YXJuKGRldixcbiBcdFx0XHQgXCYjMzQ7JXM6IFJGRSB0eXBlICVkIHdhcyBub3QgdGVzdGVkLiBQbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcgYWJvdXQgdGhpcy5cXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fLCBwcml2LVx1MDAzZXJmZV90eXBlKTtcbiBcbkBAIC0xMDIyLDYgJiM0MzsxMDIzLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHZhbDMyO1xuIFx0dTMyIHJmXzB4NThfaSwgcmZfMHg1OF9xO1xuIFx0dTggcmZlID0gcHJpdi1cdTAwM2VyZmVfdHlwZTtcbkBAIC0xMTA5LDcgJiM0MzsxMTExLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYmMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDA0MjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMTtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC0xMTE3LDYgJiM0MzsxMTE5LDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHJlZ19lYzQsIHJlZ19lY2MsIHZhbDMyO1xuIFx0aW50IHJlc3VsdCA9IDA7XG4gXHRpbnQga3RpbWU7XG5AQCAtMTI0Niw3ICYjNDM7MTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKChyZWdfZWNjIFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBcbiBcdHJldHVybiByZXN1bHQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jXG5pbmRleCAxOGUwMzhiODJmNDkwLi4zNTI1ZWNmMDdiNDgyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmNcbkBAIC00MTMsNiAmIzQzOzQxMyw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1OCB2YWw4O1xuIFx0aW50IGNvdW50LCByZXQgPSAwO1xuIFxuQEAgLTQzOSw3ICYjNDM7NDQwLDcgQEAgc3RhdGljIGludCBydGw4NzIzYXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxuXCYjMzQ7LFxuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBcdFx0cmV0ID0gLUVCVVNZO1xuIFx0XHRnb3RvIGV4aXQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXG5pbmRleCBlMzE0ZWY5OTFiMzg4Li41YzA3N2IxMzcyZWVkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmNcbkBAIC0xMjI1LDYgJiM0MzsxMjI1LDcgQEAgc3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHR1MTYgdmFsMTY7XG4gXHR1MzIgdmFsMzI7XG5AQCAtMTI1Niw3ICYjNDM7MTI1Nyw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2J1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoIWNvdW50KSB7XG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxuXCYjMzQ7LFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbmluZGV4IDY0NmZlNzZiMDg2ZTcuLjhlNzgxMzRhODEzMTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbkBAIC0yMTg3LDYgJiM0MzsyMTg3LDcgQEAgdm9pZCBydGw4eHh4dV9maXJtd2FyZV9zZWxmX3Jlc2V0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHN0YXRpYyBpbnRcbiBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZWc4dmFsICphcnJheSA9IHByaXYtXHUwMDNlZm9wcy1cdTAwM2VtYWN0YWJsZTtcbiBcdGludCBpLCByZXQ7XG4gXHR1MTYgcmVnO1xuQEAgLTIyMDEsNyAmIzQzOzIyMDIsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBcdFx0cmV0ID0gcnRsOHh4eHVfd3JpdGU4KHByaXYsIHJlZywgdmFsKTtcbiBcdFx0aWYgKHJldCAhPSAxKSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwmIzM0O0ZhaWxlZCB0byBpbml0aWFsaXplIE1BQyBcJiMzNDtcbiBcdFx0XHRcdCBcJiMzNDsocmVnOiAlMDR4LCB2YWwgJTAyeClcXG5cJiMzNDssIHJlZywgdmFsKTtcbiBcdFx0XHRyZXR1cm4gLUVBR0FJTjtcbkBAIC0yMjI5LDYgJiM0MzsyMjMwLDcgQEAgcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0ICAgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JlZzMydmFsICphcnJheSlcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdGludCBpLCByZXQ7XG4gXHR1MTYgcmVnO1xuIFx0dTMyIHZhbDtcbkBAIC0yMjQyLDcgJiM0MzsyMjQ0LDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gXHRcdHJldCA9IHJ0bDh4eHh1X3dyaXRlMzIocHJpdiwgcmVnLCB2YWwpO1xuIFx0XHRpZiAocmV0ICE9IHNpemVvZih2YWwpKSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwmIzM0O0ZhaWxlZCB0byBpbml0aWFsaXplIFBIWVxcblwmIzM0Oyk7XG4gXHRcdFx0cmV0dXJuIC1FQUdBSU47XG4gXHRcdH1cbkBAIC0yMzg3LDYgJiM0MzsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0XHQgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JmcmVndmFsICphcnJheSxcbiBcdFx0XHRcdCBlbnVtIHJ0bDh4eHh1X3JmcGF0aCBwYXRoKVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0aW50IGksIHJldDtcbiBcdHU4IHJlZztcbiBcdHUzMiB2YWw7XG5AQCAtMjQyMSw3ICYjNDM7MjQyNCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaW5pdF9yZl9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIFx0XHRyZXQgPSBydGw4eHh4dV93cml0ZV9yZnJlZyhwcml2LCBwYXRoLCByZWcsIHZhbCk7XG4gXHRcdGlmIChyZXQpIHtcbi1cdFx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0XHQgXCYjMzQ7RmFpbGVkIHRvIGluaXRpYWxpemUgUkZcXG5cJiMzNDspO1xuIFx0XHRcdHJldHVybiAtRUFHQUlOO1xuIFx0XHR9XG5AQCAtMjU1OCw2ICYjNDM7MjU2MSw3IEBAIGludCBydGw4eHh4dV9pbml0X2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgdmFsMzI7XG4gXHRpbnQgcmV0ID0gMDtcbiBcdGludCBpO1xuQEAgLTI1NzUsNyAmIzQzOzI1NzksNyBAQCBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gXHRpZiAoIWkpIHtcbiBcdFx0cmV0ID0gLUVCVVNZO1xuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cJiMzNDspO1xuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cJiMzNDspO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHJldDtcbkBAIC0zMDg5LDYgJiM0MzszMDkzLDcgQEAgdm9pZCBydGw4eHh4dV9tYWNfY2FsaWJyYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHJlZ19lYTQsIHZhbDMyO1xuIFx0aW50IHJlc3VsdCA9IDA7XG4gXG5AQCAtMzEzOCw3ICYjNDM7MzE0Myw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYWMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMjtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIG91dDpcbiBcdHJldHVybiByZXN1bHQ7XG5AQCAtMzE0Niw2ICYjNDM7MzE1MSw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYztcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTMxNzQsNyAmIzQzOzMxODAsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKCgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgXHUwMDNlXHUwMDNlIDE2KSAhPSAweDM2KSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBvdXQ6XG4gXHRyZXR1cm4gcmVzdWx0O1xuQEAgLTM2MzgsNiAmIzQzOzM2NDQsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9zZXRfYW1wZHVfbWluX3NwYWNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBkZW5zaXR5KVxuIFxuIGludCBydGw4eHh4dV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTggdmFsODtcbiBcdHU4IHZhbDMyO1xuIFx0aW50IGNvdW50LCByZXQgPSAwO1xuQEAgLTM2NTUsNyAmIzQzOzM2NjIsNyBAQCBpbnQgcnRsOHh4eHVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdGRldl93YXJuKGRldixcbiBcdFx0XHQgXCYjMzQ7JXM6IFJYIHBvbGwgdGltZWQgb3V0ICgweDA1ZjgpXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuQEAgLTU4NjAsNiAmIzQzOzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG4gXHRzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7XG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGxvY2FsO1xuQEAgLTU4OTMsNyAmIzQzOzU5MDEsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRcdFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGRlZmF1bHQ6XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwmIzM0O2ZhaWxlZCB0byByZXF1ZXVlIHVyYiB3aXRoIGVycm9yICVpXFxuXCYjMzQ7LCByZXQpO1xuIFx0XHRcdHNrYiA9IChzdHJ1Y3Qgc2tfYnVmZiAqKXJ4X3VyYi1cdTAwM2V1cmIuY29udGV4dDtcbiBcdFx0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3BlY2lmaWNhbGx5IHJlZmFjdG9yaW5nIGxvZ2dpbmcgY2FsbHMgdG8gdXNlIGEgbG9jYWwgYGRldmAgdmFyaWFibGUgaW5zdGVhZCBvZiBgXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldmAgaW4gYGRldl93YXJuYC4gSXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZSBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgIGludHJvZHVjZXMgYSBjb21waWxlciBlcnJvciBieSB1c2luZyB0aGUgYHByaXZgIHZhcmlhYmxlIGJlZm9yZSBpdCBpcyBkZWNsYXJlZCwgc28gdGhlIGNvZGUgY2Fubm90IGV2ZW4gYmUgY29tcGlsZWQgb3IgZXhlY3V0ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYzM2ODEyMTk5MmE0N2NmMmE5ZWNiZGU1YTNlNWEwMDMxOTY5NDViNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDE3IDA1OjU0OjEzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jCmluZGV4IGZlYTVhZWM5Y2VkOTkuLjRhNjQ2MzNiMmRhM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMKQEAgLTY0Myw2ICYjNDM7NjQzLDcgQEAgc3RhdGljIGludCBydGw4MTg4ZXVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYTQsIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHZhbDMyOwogCWludCByZXN1bHQgPSAwOwogCkBAIC03NDAsNyAmIzQzOzc0MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VhYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIG91dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYwppbmRleCA1NTU2YWFkMWE3YWQzLi42ODYwOWNlMzdhYjA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jCkBAIC03ODksNiAmIzQzOzc4OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGZ1X2luaXRfcGh5X3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiB2YWwzMjsKIAl1MzIgcmZfYW1vZGUsIGxzdGY7CiAJaW50IGk7CkBAIC04MTksNyAmIzQzOzgyMCw3IEBAIHZvaWQgcnRsODE4OGZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAl9CiAKIAlpZiAoaSA9PSAxMDApCi0JCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LCAmIzM0O0xDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cbiYjMzQ7KTsKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDtMQyBjYWxpYnJhdGlvbiB0aW1lZCBvdXQuXG4mIzM0Oyk7CiAKIAlydGw4eHh4dV93cml0ZV9yZnJlZyhwcml2LCBSRl9BLCBSRjYwNTJfUkVHX01PREVfQUcsIHJmX2Ftb2RlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jCmluZGV4IDY5MGFjZTMwMzE1MDMuLjgzODVhZGE1MzJiMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMKQEAgLTc0Miw2ICYjNDM7NzQyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYTQsIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHZhbDMyOwogCWludCByZXN1bHQgPSAwOwogCkBAIC04NjAsNyAmIzQzOzg2MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VhYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIG91dDoKQEAgLTg2OSw2ICYjNDM7ODcwLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmM7CiAJaW50IHJlc3VsdCA9IDA7CiAKQEAgLTkxMCw3ICYjNDM7OTEyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAkgICAgKChyZWdfZWJjICZhbXA7IDB4MDNmZjAwMDApICE9IDB4MDA0MjAwMDApKQogCQlyZXN1bHQgfD0gMHgwMTsKIAllbHNlCi0JCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LCAmIzM0OyVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcbiYjMzQ7LAogCQkJIF9fZnVuY19fKTsKIAogCXJldHVybiByZXN1bHQ7CkBAIC05MTgsNiAmIzQzOzkyMCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMTA0MCw3ICYjNDM7MTA0Myw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VjYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIG91dDoKQEAgLTE0OTUsNiAmIzQzOzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAl1OCB2YWw4OwogCWludCBjb3VudCwgcmV0ID0gMDsKIApAQCAtMTUyMSw3ICYjNDM7MTUyNSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJfQogCiAJaWYgKCFjb3VudCkgewotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gZXhpdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYwppbmRleCA1ZjA3NmRhNGI1NTA2Li4wYjhjMDY4MjE1ZDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jCkBAIC02ODEsNiAmIzQzOzY4MSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJc3RydWN0IHJ0bDgxOTJmdV9lZnVzZSAqZWZ1c2UgPSAmYW1wO3ByaXYtJmd0O2VmdXNlX3dpZmkuZWZ1c2U4MTkyZnU7CiAJaW50IGk7CiAKQEAgLTczMSw3ICYjNDM7NzMyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJcHJpdi0mZ3Q7cmZlX3R5cGUgPSBlZnVzZS0mZ3Q7cmZlX29wdGlvbiAmYW1wOyAweDFmOwogCiAJaWYgKHByaXYtJmd0O3JmZV90eXBlICE9IDUgJmFtcDsmYW1wOyBwcml2LSZndDtyZmVfdHlwZSAhPSAxKQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwKJiM0MzsJCWRldl93YXJuKGRldiwKIAkJCSAmIzM0OyVzOiBSRkUgdHlwZSAlZCB3YXMgbm90IHRlc3RlZC4gUGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gbGludXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnIGFib3V0IHRoaXMuXG4mIzM0OywKIAkJCSBfX2Z1bmNfXywgcHJpdi0mZ3Q7cmZlX3R5cGUpOwogCkBAIC0xMDIyLDYgJiM0MzsxMDIzLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHZhbDMyOwogCXUzMiByZl8weDU4X2ksIHJmXzB4NThfcTsKIAl1OCByZmUgPSBwcml2LSZndDtyZmVfdHlwZTsKQEAgLTExMDksNyAmIzQzOzExMTEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCSAgICAoKHJlZ19lYmMgJmFtcDsgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpCiAJCXJlc3VsdCB8PSAweDAxOwogCWVsc2UKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsICYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxuJiMzNDssCiYjNDM7CQlkZXZfd2FybihkZXYsICYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTExMTcsNiAmIzQzOzExMTksNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAl1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYywgdmFsMzI7CiAJaW50IHJlc3VsdCA9IDA7CiAJaW50IGt0aW1lOwpAQCAtMTI0Niw3ICYjNDM7MTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VjYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIAlyZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jCmluZGV4IDE4ZTAzOGI4MmY0OTAuLjM1MjVlY2YwN2I0ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMKQEAgLTQxMyw2ICYjNDM7NDEzLDcgQEAgc3RhdGljIGludCBydGw4NzIzYXVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXU4IHZhbDg7CiAJaW50IGNvdW50LCByZXQgPSAwOwogCkBAIC00MzksNyAmIzQzOzQ0MCw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJfQogCiAJaWYgKCFjb3VudCkgewotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gZXhpdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYwppbmRleCBlMzE0ZWY5OTFiMzg4Li41YzA3N2IxMzcyZWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jCkBAIC0xMjI1LDYgJiM0MzsxMjI1LDcgQEAgc3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgcnRsODcyM2J1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXU4IHZhbDg7CiAJdTE2IHZhbDE2OwogCXUzMiB2YWwzMjsKQEAgLTEyNTYsNyAmIzQzOzEyNTcsNyBAQCBzdGF0aWMgaW50IHJ0bDg3MjNidV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCX0KIAogCWlmICghY291bnQpIHsKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsICYjMzQ7JXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcbiYjMzQ7LAogCQkJIF9fZnVuY19fKTsKIAkJcmV0ID0gLUVCVVNZOwogCQlnb3RvIGV4aXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jCmluZGV4IDY0NmZlNzZiMDg2ZTcuLjhlNzgxMzRhODEzMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jCkBAIC0yMTg3LDYgJiM0MzsyMTg3LDcgQEAgdm9pZCBydGw4eHh4dV9maXJtd2FyZV9zZWxmX3Jlc2V0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogc3RhdGljIGludAogcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCWNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZWc4dmFsICphcnJheSA9IHByaXYtJmd0O2ZvcHMtJmd0O21hY3RhYmxlOwogCWludCBpLCByZXQ7CiAJdTE2IHJlZzsKQEAgLTIyMDEsNyAmIzQzOzIyMDIsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogCQlyZXQgPSBydGw4eHh4dV93cml0ZTgocHJpdiwgcmVnLCB2YWwpOwogCQlpZiAocmV0ICE9IDEpIHsKLQkJCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LAomIzQzOwkJCWRldl93YXJuKGRldiwKIAkJCQkgJiMzNDtGYWlsZWQgdG8gaW5pdGlhbGl6ZSBNQUMgJiMzNDsKIAkJCQkgJiMzNDsocmVnOiAlMDR4LCB2YWwgJTAyeClcbiYjMzQ7LCByZWcsIHZhbCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKQEAgLTIyMjksNiAmIzQzOzIyMzAsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIGludCBydGw4eHh4dV9pbml0X3BoeV9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LAogCQkJICAgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JlZzMydmFsICphcnJheSkKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJaW50IGksIHJldDsKIAl1MTYgcmVnOwogCXUzMiB2YWw7CkBAIC0yMjQyLDcgJiM0MzsyMjQ0LDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAKIAkJcmV0ID0gcnRsOHh4eHVfd3JpdGUzMihwcml2LCByZWcsIHZhbCk7CiAJCWlmIChyZXQgIT0gc2l6ZW9mKHZhbCkpIHsKLQkJCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LAomIzQzOwkJCWRldl93YXJuKGRldiwKIAkJCQkgJiMzNDtGYWlsZWQgdG8gaW5pdGlhbGl6ZSBQSFlcbiYjMzQ7KTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CkBAIC0yMzg3LDYgJiM0MzsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAJCQkJIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCAqYXJyYXksCiAJCQkJIGVudW0gcnRsOHh4eHVfcmZwYXRoIHBhdGgpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCWludCBpLCByZXQ7CiAJdTggcmVnOwogCXUzMiB2YWw7CkBAIC0yNDIxLDcgJiM0MzsyNDI0LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAKIAkJcmV0ID0gcnRsOHh4eHVfd3JpdGVfcmZyZWcocHJpdiwgcGF0aCwgcmVnLCB2YWwpOwogCQlpZiAocmV0KSB7Ci0JCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwKJiM0MzsJCQlkZXZfd2FybihkZXYsCiAJCQkJICYjMzQ7RmFpbGVkIHRvIGluaXRpYWxpemUgUkZcbiYjMzQ7KTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CkBAIC0yNTU4LDYgJiM0MzsyNTYxLDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiB2YWwzMjsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgaTsKQEAgLTI1NzUsNyAmIzQzOzI1NzksNyBAQCBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIAlpZiAoIWkpIHsKIAkJcmV0ID0gLUVCVVNZOwotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcbiYjMzQ7KTsKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcbiYjMzQ7KTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtMzA4OSw2ICYjNDM7MzA5Myw3IEBAIHZvaWQgcnRsOHh4eHVfbWFjX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LAogCiBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCByZWdfZWE0LCB2YWwzMjsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMzEzOCw3ICYjNDM7MzE0Myw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAkgICAgKChyZWdfZWFjICZhbXA7IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKQogCQlyZXN1bHQgfD0gMHgwMjsKIAllbHNlCi0JCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LCAmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcbiYjMzQ7LAogCQkJIF9fZnVuY19fKTsKIG91dDoKIAlyZXR1cm4gcmVzdWx0OwpAQCAtMzE0Niw2ICYjNDM7MzE1MSw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAl1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYzsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMzE3NCw3ICYjNDM7MzE4MCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAkgICAgKCgocmVnX2VjYyAmYW1wOyAweDAzZmYwMDAwKSAmZ3Q7Jmd0OyAxNikgIT0gMHgzNikpCiAJCXJlc3VsdCB8PSAweDAyOwogCWVsc2UKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsICYjMzQ7JXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxuJiMzNDssCiYjNDM7CQlkZXZfd2FybihkZXYsICYjMzQ7JXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogb3V0OgogCXJldHVybiByZXN1bHQ7CkBAIC0zNjM4LDYgJiM0MzszNjQ0LDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfc2V0X2FtcGR1X21pbl9zcGFjZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggZGVuc2l0eSkKIAogaW50IHJ0bDh4eHh1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXU4IHZhbDg7CiAJdTggdmFsMzI7CiAJaW50IGNvdW50LCByZXQgPSAwOwpAQCAtMzY1NSw3ICYjNDM7MzY2Miw3IEBAIGludCBydGw4eHh4dV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCX0KIAogCWlmICghY291bnQpIHsKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsCiYjNDM7CQlkZXZfd2FybihkZXYsCiAJCQkgJiMzNDslczogUlggcG9sbCB0aW1lZCBvdXQgKDB4MDVmOClcbiYjMzQ7LCBfX2Z1bmNfXyk7CiAJCXJldCA9IC1FQlVTWTsKIAkJZ290byBleGl0OwpAQCAtNTg2MCw2ICYjNDM7NTg2Nyw3IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwKIAogc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAlzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjsKIAlzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7CiAJc3RydWN0IGxpc3RfaGVhZCBsb2NhbDsKQEAgLTU4OTMsNyAmIzQzOzU5MDEsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQlydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsCiYjNDM7CQkJZGV2X3dhcm4oZGV2LAogCQkJCSAmIzM0O2ZhaWxlZCB0byByZXF1ZXVlIHVyYiB3aXRoIGVycm9yICVpXG4mIzM0OywgcmV0KTsKIAkJCXNrYiA9IChzdHJ1Y3Qgc2tfYnVmZiAqKXJ4X3VyYi0mZ3Q7dXJiLmNvbnRleHQ7CiAJCQlkZXZfa2ZyZWVfc2tiKHNrYik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2MjMKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA3MDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBTZXJpZXMgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gZ2l2ZW4gdGhpcyBwYXRjaCBzZXJpZXMgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtkb2VzIHRoaXMgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIGZ1enppbmc/JiMzNDsgSSBpbW1lZGlhdGVseSBzZWUgdGhhdCBpdCB0b3VjaGVzIHNldmVyYWwgZmlsZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9gIGRpcmVjdG9yeTogYDgxODhlLmNgLCBgODE4OGYuY2AsIGA4MTkyZS5jYCwgYDgxOTJmLmNgLCBgODcyM2EuY2AsIGA4NzIzYi5jYCwgYW5kIGBjb3JlLmNgLiBUaGF0JiMzOTtzIGEgZGVjZW50LXNpemVkIGFyZWEgdG8gbG9vayBhdC4KCk5vdywgbG9va2luZyBhdCB0aGUgZGlmZiwgaXQgc2VlbXMgdGhlcmUmIzM5O3MgYSBtaW5vciBtb2RpZmljYXRpb24gaW4gYHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hYC4gSXQmIzM5O3MgaW50cm9kdWNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7YCBhbmQgdGhlbiByZXBsYWNpbmcgaW5zdGFuY2VzIG9mIGAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldmAgd2l0aCBgZGV2YCB3aXRoaW4gYGRldl93YXJuYCBjYWxscy4gVGhhdCYjMzk7cyB1c3VhbGx5IGp1c3QgYSBjb2RlIHN0eWxlIHRoaW5nLCBpbXByb3ZpbmcgcmVhZGFiaWxpdHkgb3IgcmVkdWNpbmcgY29kZSBkdXBsaWNhdGlvbi4gSSB3b3VsZG4mIzM5O3QgZXhwZWN0IHRoaXMgYWxvbmUgdG8gY2hhbmdlIGFueSBiZWhhdmlvciwgYnV0IEkgYWx3YXlzIHdhbnQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuCgpUaGVuLCB0aGVyZSYjMzk7cyBhbm90aGVyIGluc3RhbmNlIG9mIHRoaXMgcGF0dGVybiBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgIHdpdGhpbiBgY29yZS5jYCwgdG9vLiBIb2xkIG9uLi4udGhlIHZhcmlhYmxlIGBkZXZgIGlzIGluaXRpYWxpemVkIHVzaW5nIGBwcml2LSZndDt1ZGV2LSZndDtkZXZgLiBCdXQsIGBwcml2YCBpcyBkZWNsYXJlZCAqYWZ0ZXIqIGBkZXZgIGlzIGluaXRpYWxpemVkPyBUaGF0IGxvb2tzIGxpa2UgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmVhZC1iZWZvcmUtd3JpdGUgYnVnLiBJIG5lZWQgdG8gYmUgKnN1cmUqIHRoYXQmIzM5O3Mgbm90IHRoZSBjYXNlLiBMZXQmIzM5O3MgZGlnIGRlZXBlciBpbnRvIHRoYXQgc2VjdGlvbiBvZiBgY29yZS5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDU4NjcuCgpPa2F5LCBsZXQmIzM5O3MgdmVyaWZ5IHRoYXQgcXVpY2tseSB3aXRoIGByZWFkLWZpbGVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1ODYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzU4NjA6XHRcdH1cbjU4NjE6XHRcbjU4NjI6XHRcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuNTg2MzpcdFxuNTg2NDpcdFx0aWYgKHBlbmRpbmcgXHUwMDNlIFJUTDhYWFhVX1JYX1VSQl9QRU5ESU5HX1dBVEVSKVxuNTg2NTpcdFx0XHRzY2hlZHVsZV93b3JrKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtcbjU4NjY6XHR9XG41ODY3Olx0XG41ODY4Olx0c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuNTg2OTpcdHtcbjU4NzA6XHRcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG41ODcxOlx0XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbjU4NzI6XHRcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcbjU4NzM6XHRcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XG41ODc0Olx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuNTg3NTpcdFx0dW5zaWduZWQgbG9uZyBmbGFncztcbjU4NzY6XHRcdGludCByZXQ7XG41ODc3Olx0XG41ODc4Olx0XHRwcml2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydGw4eHh4dV9wcml2LCByeF91cmJfd3EpO1xuNTg3OTpcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bG9jYWwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDkwOTcKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA3MjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogQ29tcGlsZSBFcnJvciBvciBGdW5jdGlvbmFsIENoYW5nZT8qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBleHBlcnQgZXllIHNwb3RzIHRoZSBwcm9ibGVtLiBMaW5lIDU4NzAgaXMgd2hlcmUgdGhlIHRyb3VibGUgYmVnaW5zLiBJdCBsb29rcyBsaWtlIGBkZXZgIGlzIGJlaW5nIGluaXRpYWxpemVkIHVzaW5nIGBwcml2LSZndDt1ZGV2LSZndDtkZXZgICpiZWZvcmUqIGBwcml2YCBpcyBldmVuIGRlY2xhcmVkIG9uIGxpbmUgNTg3MS4gTXkgZmlyc3QgdGhvdWdodCBpcyAmIzM0O2NvbXBpbGVyIGVycm9yISYjMzQ7IFRoYXQmIzM5O3MgYSBjbGFzc2ljIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UsIHJpZ2h0PyBJJiMzOTtkIGV4cGVjdCB0aGUgY29tcGlsZXIgdG8gY2hva2Ugb24gdGhhdCwgYXNzdW1pbmcgaXQmIzM5O3Mgc3RhbmRhcmQgQy4gVGhlIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZCwgdGhvdWdoLCBzbyBpdCYjMzk7cyBlaXRoZXIgbm90IGEgY29tcGlsZSBlcnJvciBvciB0aGUgYnVpbGQgaXMgYnJva2VuLgoKQnV0IHdhaXQsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGd1aWRpbmcgbWUsIHNheWluZyB0aGF0IHRoaXMgc2hvdWxkbiYjMzk7dCBiZSB3b3J0aCBmdXp6aW5nIGlmIGl0JiMzOTtzIGRvY3VtZW50YXRpb24gb3IgZGVjb3JhdGl2ZSBjaGFuZ2VzLiBJdCBzZWVtcyBsaWtlIHRoZSBwYXRjaCYjMzk7cyAqaW50ZW50KiBpcyB0byBjaGFuZ2UgdGhlIGxvZ2dpbmcg4oCTIHJlcGxhY2luZyBgJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXZgIHdpdGggdGhlIGxvY2FsIHZhcmlhYmxlIGBkZXZgIGluIGBkZXZfd2FybmAgY2FsbHMsIHByZXN1bWFibHkgZm9yIHJlYWRhYmlsaXR5LiBBIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZy4gU28gbXkgaW5pdGlhbCBhc3N1bXB0aW9uIGlzIGRlY29yYXRpdmUsIG1lYW5pbmcgdGhlIHdob2xlIHBvaW50IGlzIG5vdCBmdW5jdGlvbmFsLgoKQnV0IGhlcmUmIzM5O3Mgd2hlcmUgaXQgZ2V0cyBpbnRlcmVzdGluZy4gSSYjMzk7bSB0aGlua2luZywgJiMzNDtJcyB0aGVyZSBhY3R1YWxseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGhvdyB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQ/JiMzNDsgQmVjYXVzZSBpZiB0aGUgY29kZSBjb21waWxlcywgdGhlIHVzYWdlIG9mIHVuaW5pdGlhbGl6ZWQgYHByaXZgIHdpbGwgZGVmaW5pdGVseSBsZWFkIHRvIHVuZGVmaW5lZCBiZWhhdmlvciBhbmQgbGlrZWx5IGEgY3Jhc2gsIG9yIG1lbW9yeSBjb3JydXB0aW9uLiBTaW5jZSB0aGUgcHJvbXB0IHN0YXRlcyB0aGF0IHRoZSBwYXRjaCBoYXMgYmVlbiBhcHBsaWVkLCBJJiMzOTttIG5vdyBxdWVzdGlvbmluZyBob3cgdGhhdCBjb3VsZCBoYXBwZW4gaWYgdGhlIGNvZGUgaXMgaW52YWxpZC4KCkkmIzM5O20gdGhpbmtpbmcsICYjMzQ7SXMgYHByaXZgIGEgZ2xvYmFsIG9yIHNvbWV0aGluZz8mIzM0OyBJJiMzOTttIGNoZWNraW5nIGlmIHRoZSBzY29wZSBvZiBgcHJpdmAgaXMgc29tZWhvdyBtb3JlIHRoYW4gbG9jYWwgdG8gdGhlIGN1cnJlbnQgZnVuY3Rpb24uIEJ1dCBubywgaWYgYHByaXZgIGlzIGxvY2FsLCB0aGVuIGAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldmAgKndpbGwqIGJlIHVzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUgYW5kIGNhdXNlIGEgY3Jhc2gsIGFuZCB0aGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEJ1dCwgd2FpdC4uLiBJIGp1c3QgcmVhbGl6ZWQgdGhlIGNvZGUgKmNhbiYjMzk7dCogY29tcGlsZSBiZWNhdXNlIG9mIHRoZSBDIHNjb3BlIHJ1bGVzLiBgcHJpdmAgaXMgZGVjbGFyZWQgKmFmdGVyKiBpdCYjMzk7cyB1c2VkLiBgc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7YCBpcyBkZWNsYXJlZCBvbiBsaW5lIDU4NzEgYW5kIGFzc2lnbmVkIG9uIDU4NzAsIGxlYWRpbmcgdG8gdGhlIGNvbXBpbGVyIGVycm9yIGBlcnJvcjog4oCYcHJpduKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbilgLgoKU2luY2UgdGhpcyBpcyBhIGNsZWFyIGNvbXBpbGVyIGVycm9yLCBpdCBtZWFucyB0aGUgcGF0Y2ggc2ltcGx5IHdpbGwgbm90IGJ1aWxkIGFuZCB0aGVyZWZvcmUsIGNhbm5vdCBiZSBleGVjdXRlZCwgYW5kIHRoZXJlZm9yZSwgaXMgbm90IHdvcnRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IHJ0bDh4eHh1X3ByaXYgXFwqcHJpdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNjczIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9Mzc4PWVudW0gcnRsODE4OGVfdHhfcnB0X3RpbWluZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTM4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzozODQ6c3RhdGljIGludCBydGw4MTg4ZXVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0zODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz00MjM9c3RhdGljIHZvaWQgcnRsODE4OGV1X2NvbmZpZ19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQyNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NDI1Olx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBody1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQyNi1cdHUzMiB2YWwzMiwgcnNyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NTI0OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUyNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1Mzc6c3RhdGljIGludCBydGw4MTg4ZXVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTM4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjU1ODpzdGF0aWMgdm9pZCBydGw4MTg4ZXVfcmVzZXRfODA1MShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01NTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NTcwOnN0YXRpYyBpbnQgcnRsODE4OGV1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTcxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjU4MjpzdGF0aWMgdm9pZCBydGw4MTg4ZXVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTgzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjYwNTpzdGF0aWMgaW50IHJ0bDgxODhldV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02MDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NjEwOnN0YXRpYyBpbnQgcnRsODE4OGV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjExLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjY0NDpzdGF0aWMgaW50IHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTY0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3NTE6c3RhdGljIHZvaWQgcnRsODE4OGV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NTItXHRcdFx0XHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTA3OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTkwOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo5OTQ6c3RhdGljIHZvaWQgcnRsODE4OGVfZGlzYWJsZWRfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTAwMzpzdGF0aWMgaW50IHJ0bDgxODhlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTA3MjpzdGF0aWMgaW50IHJ0bDgxODhldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNzMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwODk6c3RhdGljIGludCBydGw4MTg4ZXVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjExMTg6c3RhdGljIGludCBydGw4MTg4ZXVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTE2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMTY2OnN0YXRpYyBpbnQgcnRsODE4OGV1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTExNjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjExOTY6c3RhdGljIHZvaWQgcnRsODE4OGV1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTk3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMjYzOnN0YXRpYyB2b2lkIHJ0bDgxODhlX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMjY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMjc3OnN0YXRpYyB2b2lkIHJ0bDgxODhlX2Rpc2FibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI3OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTI5MTpzdGF0aWMgdm9pZCBydGw4MTg4ZV91c2JfcXVpcmtzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEzMTA6c3RhdGljIHM4IHJ0bDgxODhlX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgcnRsODcyM2F1X3BoeV9zdGF0cyAqcGh5X3N0YXRzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMzM1PXN0YXRpYyBpbnQgcnRsODE4OGV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTMzNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTMzODpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMzktXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgcnRsOHh4eHVfcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTQ3Mj1zdGF0aWMgdm9pZCBydGw4MTg4ZV9yYXRlX2RlY2lzaW9uKHN0cnVjdCBydGw4eHh4dV9yYV9pbmZvICpyYSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNDczLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNDc0Olx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YocmEsIHN0cnVjdCBydGw4eHh4dV9wcml2LCByYV9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNDc1LVx0Y29uc3QgdTggKnJldHJ5X3BlbmFsdHlfaWR4XzA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTE2MzA9c3RhdGljIHZvaWQgcnRsODE4OGVfcG93ZXJfdHJhaW5pbmdfZGVjaXNpb24oc3RydWN0IHJ0bDh4eHh1X3JhX2luZm8gKnJhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNjY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjE2Njg6dm9pZCBydGw4MTg4ZV9oYW5kbGVfcmFfdHhfcmVwb3J0MihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNjY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTc4MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjE3ODE6cnRsODE4OGVfdXBkYXRlX3JhdGVfbWFzayhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzgyLVx0XHRcdCAgdTMyIHJhbWFzaywgdTggcmF0ZWlkLCBpbnQgc2dpLCBpbnQgdHhid180MG1oeixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTc5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNzk0OnN0YXRpYyB2b2lkIHJ0bDgxODhlX3JhX3NldF9yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBtYWNpZCwgdTggcnNzaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzk1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MjUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE4OGZ1X2N1dF9iX3JhZGlvYV9pbml0X3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzozMDg6c3RhdGljIGludCBydGw4MTg4ZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0zMDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0zNTc9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjM1ODpydGw4MTg4Zl9zZXRfdHhfcG93ZXIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIGludCBjaGFubmVsLCBib29sIGh0NDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzk5LS8qIEEgd29ya2Fyb3VuZCB0byBlbGltaW5hdGUgdGhlIDI0MDBNSHosIDI0NDBNSHosIDI0ODBNSHogc3B1ciBvZiA4MTg4Ri4gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo0MDA6c3RhdGljIHZvaWQgcnRsODE4OGZfc3B1cl9jYWxpYnJhdGlvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggY2hhbm5lbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy00MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz01MTQ9c3RhdGljIHZvaWQgcnRsODE4OGZ1X2NvbmZpZ19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTUxNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NTE2Olx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBody1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTUxNy1cdHUzMiB2YWwzMjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNjQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjY0NTpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfaW5pdF9hZ2dyZWdhdGlvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy02NDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy02NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NjczOnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9pbml0X3N0YXRpc3RpY3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNjc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjcwNDpzdGF0aWMgaW50IHJ0bDgxODhmdV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03MDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03MzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NzM5OnN0YXRpYyBpbnQgcnRsODE4OGZ1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjc1MTpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjc3ODpzdGF0aWMgaW50IHJ0bDgxODhmdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NzkwOnZvaWQgcnRsODE4OGZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03OTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy04MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6ODM0OnN0YXRpYyBpbnQgcnRsODE4OGZ1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiAqbG9rX3Jlc3VsdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy04MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy05MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6OTA3OnN0YXRpYyBpbnQgcnRsODE4OGZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBsb2tfcmVzdWx0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTkwOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA2MjpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjMtXHRcdFx0XHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMjE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEyMTk6c3RhdGljIHZvaWQgcnRsODE4OGZ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTIyMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTMxOTpzdGF0aWMgdm9pZCBydGw4MTg4Zl9kaXNhYmxlZF90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMyMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTMzNDpzdGF0aWMgaW50IHJ0bDgxODhmX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTM5NDpzdGF0aWMgaW50IHJ0bDgxODhmdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzOTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0MzQ6c3RhdGljIGludCBydGw4MTg4ZnVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0NTI6c3RhdGljIGludCBydGw4MTg4ZnVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNTE1OnN0YXRpYyBpbnQgcnRsODE4OGZ1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE1MTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE1NDA6c3RhdGljIHZvaWQgcnRsODE4OGZ1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTQxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTU4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNTgzOnN0YXRpYyB2b2lkIHJ0bDgxODhmX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTg0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTYyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNjIyOnN0YXRpYyB2b2lkIHJ0bDgxODhmX2Rpc2FibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTYyMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTYzNDpzdGF0aWMgdm9pZCBydGw4MTg4Zl91c2JfcXVpcmtzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE2NTE6dm9pZCBydGw4MTg4Zl9zZXRfY3J5c3RhbF9jYXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNyeXN0YWxfY2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2NTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE2Nzc6c3RhdGljIHM4IHJ0bDgxODhmX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgcnRsODcyM2F1X3BoeV9zdGF0cyAqcGh5X3N0YXRzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2Nzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz0yNjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCBydGw4MTg4cnVfcmFkaW9hXzF0X2hpZ2hwYV90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0zMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MzM5OnN0YXRpYyBpbnQgcnRsODE5MmN1X2lkZW50aWZ5X2NoaXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMzQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMzk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjM5NzpzdGF0aWMgaW50IHJ0bDgxOTJjdV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTM5OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0MTQ6c3RhdGljIGludCBydGw4MTkyY3VfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDE1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjQ2NzpzdGF0aWMgaW50IHJ0bDgxOTJjdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy00Njgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy00OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6NDkxOnN0YXRpYyBpbnQgcnRsODE5MmN1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQ5Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTU5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo1OTY6c3RhdGljIHZvaWQgcnRsODE5MmN1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy01OTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz02NzQ9c3RhdGljIGludCBydGw4MTkyY3VfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy02NzYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjY3NzpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY3OC1cdFx0XHRcdFx0XHQgIHN0cnVjdCBydGw4eHh4dV9wcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0zOTk9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCBydGw4MTkyZXVfcmFkaW9iX2luaXRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNDY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjQ2NTpzdGF0aWMgaW50IHJ0bDgxOTJldV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTQ2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTUxMj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjUxMzpydGw4MTkyZV9zZXRfdHhfcG93ZXIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIGludCBjaGFubmVsLCBib29sIGh0NDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjU4ODpzdGF0aWMgaW50IHJ0bDgxOTJldV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy01ODkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NjQwOnN0YXRpYyBpbnQgcnRsODE5MmV1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjQxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY1MjpzdGF0aWMgdm9pZCBydGw4MTkyZXVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY3OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02ODAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02OTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NjkzOnN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNzQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjc0MzpzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTc0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzo4NzE6c3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy04NzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy05MjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6OTIxOnN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtOTIyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDUzOnN0YXRpYyB2b2lkIHJ0bDgxOTJldV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1NC1cdFx0XHRcdCAgICAgIGludCByZXN1bHRbXVs4XSwgaW50IHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTIzOTpzdGF0aWMgdm9pZCBydGw4MTkyZXVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMjQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTMzMi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzMzOnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2NyeXN0YWxfYWZlX2FkanVzdChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzM0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzY1OnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzc1OnN0YXRpYyBpbnQgcnRsODE5MmVfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNDQwOnN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQ0MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE0OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTQ5OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1MDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1Mzg6c3RhdGljIGludCBydGw4MTkyZXVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1NTE6c3RhdGljIGludCBydGw4MTkyZXVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTU5OTpzdGF0aWMgdm9pZCBydGw4MTkyZXVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2MDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE2MzM6c3RhdGljIHZvaWQgcnRsODE5MmVfZW5hYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2MzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE2Nzk6c3RhdGljIHM4IHJ0bDgxOTJlX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgcnRsODcyM2F1X3BoeV9zdGF0cyAqcGh5X3N0YXRzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2ODAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0xNzAyPXN0YXRpYyBpbnQgcnRsODE5MmV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTcwNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTcwNTpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MDYtXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgcnRsOHh4eHVfcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE5MmZ1X3JhZGlvYl9pbml0X3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTM5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzozOTI6c3RhdGljIGludCBydGw4MTkyZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0zOTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz00MjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo0MjY6cnRsODE5MmZfc2V0X3R4X3Bvd2VyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBpbnQgY2hhbm5lbCwgYm9vbCBodDQwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTQyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTQ5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo0OTM6c3RhdGljIHZvaWQgcnRsODE5MmZfcmV2aXNlX2Nja190eF9wc2Yoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNoYW5uZWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNDk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjUxODpzdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2tmcmVlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjaGFubmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTUxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTU4ND1zdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo1ODY6XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNTg3LVx0Ym9vbCBodDQwID0gY29uZl9pc19odDQwKFx1MDAyNmh3LVx1MDAzZWNvbmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy02NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6NjY1OnN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo2ODI6c3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNjgzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjc0MjpzdGF0aWMgaW50IHJ0bDgxOTJmdV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NDc6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2luaXRfcGh5X2JiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NjQ6c3RhdGljIGludCBydGw4MTkyZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjc3NTpzdGF0aWMgdm9pZCBydGw4MTkyZl9waHlfbGNfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc3Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo4MDA6c3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy04MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy04OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6ODkxOnN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtODkyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTAyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMDI0OnN0YXRpYyBpbnQgcnRsODE5MmZ1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTAyNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTExMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTEyMDpzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTExMjEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNTg6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjU5LVx0XHRcdFx0ICAgICAgaW50IHJlc3VsdFtdWzhdLCBpbnQgdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQ0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNDQ0OnN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE0NDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE1OTQ6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNTk1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNjA1OnN0YXRpYyBpbnQgcnRsODE5MmZ1X2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYwNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3MzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTczMTpzdGF0aWMgaW50IHJ0bDgxOTJmdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3MzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE3Njg6c3RhdGljIGludCBydGw4MTkyZnVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3Njkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE3ODc6c3RhdGljIGludCBydGw4MTkyZnVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzg4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTgzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxODM0OnN0YXRpYyBpbnQgcnRsODE5MmZ1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xODU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE4NjA6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xODYxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxODg3OnN0YXRpYyB2b2lkIHJ0bDgxOTJmX3Jlc2V0XzgwNTEoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg4OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTkwMjpzdGF0aWMgdm9pZCBydGw4MTkyZl9lbmFibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTkwMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTkxNzpzdGF0aWMgdm9pZCBydGw4MTkyZl9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE5Mjk6c3RhdGljIHZvaWQgcnRsODE5MmZfdXNiX3F1aXJrcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTMwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxOTQzOnN0YXRpYyB2b2lkIHJ0bDgxOTJmX3NldF9jcnlzdGFsX2NhcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggY3J5c3RhbF9jYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTk3MDpzdGF0aWMgczggcnRsODE5MmZfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk3MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE5OTg9c3RhdGljIGludCBydGw4MTkyZnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDAwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoyMDAxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YobGVkX2NkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMjAwMi1cdFx0XHRcdFx0XHQgIHN0cnVjdCBydGw4eHh4dV9wcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz00MDY9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCBydGw4NzEwYnVfcWZuNDhtX3NfcmFkaW9hX2luaXRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjQ2MzpzdGF0aWMgdTMyIHJ0bDg3MTBiX2luZGlyZWN0X3JlYWQzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjQ5ODpzdGF0aWMgdm9pZCBydGw4NzEwYl9pbmRpcmVjdF93cml0ZTMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MzIgYWRkciwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy00OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6NTMwOnN0YXRpYyB1MzIgcnRsODcxMGJfcmVhZF9zeXNvbl9yZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyKVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ1MzkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGVidWdnaW5nIGEgU3VzcGVjdCBQb2ludGVyIFJlZmVyZW5jZSoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGBwcml2YCB2YXJpYWJsZeKApml0JiMzOTtzIGJlaW5nIHVzZWQgKmJlZm9yZSogaXQmIzM5O3MgZXZlbiBkZWNsYXJlZCBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgISBUaGF0JiMzOTtzIGEgY2xhc3NpYyBDIGNvbXBpbGVyIGVycm9yLiBZb3Uga25vdywgdGhlIGtpbmQgdGhhdCBzaG91bGQmIzM5O3ZlIGJlZW4gY2F1Z2h0IGluc3RhbnRseS4gYHN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2O2AgLS0gdGhhdCBgcHJpdmAgaXNuJiMzOTt0IGRlZmluZWQgeWV0ISBUaGlzIHNlZW1zIGltcG9zc2libGUuCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cy4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYHByaXZgIGlzbiYjMzk7dCBzb21lIGdsb2JhbGx5IHNjb3BlZCB0aGluZyB0aGF0JiMzOTtzIGFjY2lkZW50YWxseSBiZWluZyB1c2VkIGhlcmUuIEl0JiMzOTtzIGEgcHJldHR5IGNvbW1vbiBsb2NhbCB2YXJpYWJsZSBuYW1lLCBzbyBhIHF1aWNrIHZpc3VhbCBzY2FuIHByb2JhYmx5IHdvbiYjMzk7dCBjdXQgaXQuIExldCYjMzk7cyBzZWUuLi4gbm90aGluZyBvYnZpb3VzbHkgZ2xvYmFsLCBzbyBub3cgSSYjMzk7bGwgbG9vayBpbnRvIGBjb3JlLmNgIGFuZCBhbnkgaW5jbHVkZWQgaGVhZGVycywganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIEhvdyBvbiBlYXJ0aCBkaWQgdGhpcyBldmVuIGdldCBjb21taXR0ZWQgaWYgdGhlIGNvbXBpbGVyIHNob3VsZCBiZSB0aHJvd2luZyB1cCBlcnJvcnM/IEkmIzM5O20gc21lbGxpbmcgc29tZXRoaW5nIGZpc2h5IGhlcmUuLi4gb3IgbWF5YmUgSSYjMzk7bSBqdXN0IHRpcmVkISBMZXQgbWUgZG8gYSBwcm9wZXIgY2hlY2sgb2YgYWxsIHRoZSBmaWxlcyBqdXN0IHRvIGJlIGNlcnRhaW4uIEkmIzM5O3ZlIGdvdCB0byBmaW5kIG91dCB3aGF0JiMzOTtzIGdvaW5nIG9uIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBydGw4eHh4dV9wcml2IFxcKnByaXY7JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2MS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTE2MjpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cdHN0cnVjdCBydGw4eHh4dV90eF91cmIgKnR4X3VyYiA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTg3MC1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1ODcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVx0c3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiLCAqdG1wO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjEyMTpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjEyMi1cdHN0cnVjdCBydGw4NzIzYnVfYzJoICpjMmg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjI2MT1zdHJ1Y3QgcnRsOHh4eHVfcnhfdXBkYXRlX3Jzc2lfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MjYyOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MjYzLVx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MzcwPXN0cnVjdCBydGw4eHh4dV9pdGVyX3N0YXNfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03MzcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczODg9c3RhdGljIHZvaWQgcnRsOHh4eHVfd2F0Y2hkb2dfY2FsbGJhY2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXHRzdHJ1Y3QgcnRsOHh4eHVfc3Rhc19lbnRyeSAqc3RhX2VudHJ5LCAqdG1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzM5MzpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NzQ3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDktXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03OTY2PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Nzk2ODpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MTQ4CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlYnVnZ2luZyBhIFBvdGVudGlhbCBDb21waWxlciBFcnJvcioqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGNvZGUgc25pcHBldCBsb29rcyBzdXNwaWNpb3VzLiBJZiB0aGVyZSYjMzk7cyBubyBnbG9iYWwgdmFyaWFibGUgbmFtZWQgYHByaXZgLCB0aGVuIHRoYXQgbGluZSwgYHN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2O2AgZm9sbG93ZWQgYnkgYHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O2AgaXMgZ29pbmcgdG8gdGhyb3cgYSBjb21waWxlciBlcnJvciwgcmlnaHQ/IFRoZSBjb21waWxlciBzaG91bGQgY29tcGxhaW4gYmVjYXVzZSBgcHJpdmAgaXNuJiMzOTt0IGRlY2xhcmVkIHlldCwgYW5kIEkmIzM5O20gcmVmZXJlbmNpbmcgaXQuIExldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IEdDQyB3b3VsZCBhY3R1YWxseSBmbGFnIHRoaXMuCgpZdXAsIEkmIzM5O20gcHJldHR5IHN1cmUgR0NDIHdvdWxkIGZsYWcgaXQgYXMgJiMzNDt1bmRlY2xhcmVkLCYjMzQ7IHNvIHRoaXMgZGVmaW5pdGVseSBpc24mIzM5O3QgY29ycmVjdC4gQnV0IHdhaXQsIGlzIGl0ICpwb3NzaWJsZSogdGhhdCBgcHJpdmAgaXMgYmVpbmcgZGVmaW5lZCBhcyBhIG1hY3JvICpzb21ld2hlcmUqPyBJdCYjMzk7cyBhbHdheXMgd29ydGggY2hlY2tpbmcgZm9yIHRob3NlIHNuZWFreSBtYWNyb3MgdGhhdCBjYW4gbWFrZSBjb2RlIGhhcmRlciB0byBmb2xsb3csIGVzcGVjaWFsbHkgaW4gYSBsYXJnZSBjb2RlYmFzZS4gSSYjMzk7ZCBiZXR0ZXIgZG91YmxlLWNoZWNrIGZvciB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0OyNkZWZpbmUgcHJpdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0OTcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA0NjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogQ29tcGlsZXIgRXJyb3Igb3IgRnV6emFibGUgQ2hhbmdlPyoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGUgcHJvbXB0IGV4cGxpY2l0bHkgc3RhdGVzIHRoZSBjaGFuZ2VzIGFyZSAqYWxyZWFkeSogY29tbWl0dGVkLiBJZiB0aGlzIHdlcmUgYSBzdHJhaWdodGZvcndhcmQgY29tcGlsZXIgZXJyb3IsIGxpa2UgdGhlIGluaXRpYWwgdGhvdWdodCwgaG93IGNvdWxkIGl0IGV2ZW4gYmUgY29tbWl0dGVkIGluIHRoZSBmaXJzdCBwbGFjZT8gQSBwYXRjaCB0aGF0IGJyZWFrcyB0aGUgYnVpbGQgaXMgZXNzZW50aWFsbHkgdXNlbGVzcyBmb3IgZnV6emluZzsgc3l6a2FsbGVyIHdvdWxkbiYjMzk7dCBldmVuIGJlIGFibGUgdG8gdG91Y2ggaXQuCgpCdXQgdGhlIHByb21wdCBhbHNvIGRpcmVjdHMgdXMgdG8gZXhhbWluZSB0aGUgcGF0Y2ggaXRzZWxmIGFuZCAqbm90KiByZWx5IG9uIGludGVybmFsIGtub3dsZWRnZS4gVGhlIGluc3RydWN0aW9ucyBzdGF0ZSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIGNoYW5nZSBpcyBwdXJlbHkgZGVjb3JhdGl2ZSwgc3VjaCBhcyBsb2dnaW5nLiBUaGUgZGVzY3JpcHRpb24gaW1wbGllcyB0aGF0IHRoZSAqaW50ZW50aW9uKiB3YXMgdG8gYWRkIGxvZ2dpbmcuCgpMZXQmIzM5O3MgcmV2aXNpdCB0aGUgcGF0Y2ggY29kZSBibG9jayBwcm92aWRlZDoKCmBgYGMKQEAgLTU4NjAsNiAmIzQzOzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAKIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7CiAJc3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiLCAqdG1wOwogCXN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7CmBgYAoKSWYgaXQmIzM5O3MgYSBzdHJhaWdodCBjb21waWxlciBlcnJvciwgaXQgd29uJiMzOTt0IGNvbXBpbGUsIGFuZCBzeXprYWxsZXIgY2FuJiMzOTt0IGZ1enogaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBub3QgbWlzc2luZyBzb21ldGhpbmcgc3VidGxlLgoKT2theSwgbGV0JiMzOTtzIHBsYXkgZGV2aWwmIzM5O3MgYWR2b2NhdGU6IGNvdWxkIHRoZXJlIGJlIHNvbWUgd2VpcmQgbWFjcm8gc2hlbmFuaWdhbnMgZ29pbmcgb24/IElzIGBwcml2YCBhIG1lbWJlciBvZiBzb21lIHN0cnVjdCBhbmQgd2UgYXJlIGluc2lkZSBhIG1hY3JvPyBObywgaXQmIzM5O3MgYSBmdW5jdGlvbi4gTGV0JiMzOTtzIHRlc3QgdGhpcyB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyB3aXRoIHRoZSBjb21waWxlci4KCkkmIzM5O2xsIHF1aWNrbHkgd2hpcCB1cCBhIHNpbXBsZSBDIGZpbGUgdG8gdGVzdCBpdCB3aXRoIEdDQzoKCmBgYGMKdm9pZCBmb28oKSB7CiAgICBpbnQgKmRldiA9IHByaXY7CiAgICBpbnQgKnByaXY7Cn0KYGBgCgpZZXAsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIGNvbXBpbGVyIGVycm9yLiBJdCYjMzk7cyBhIHJlZGVmaW5pdGlvbi4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBpcyB0aGVyZSAqYW55d2hlcmUqIGVsc2UgYHByaXZgIGlzIGRlY2xhcmVkIGluIHNjb3BlLCBtYXliZSBhIGdsb2JhbCB2YXJpYWJsZSwgcG90ZW50aWFsbHkgZGVmaW5lZCBpbiBhIGhlYWRlciBmaWxlPyBJIG5lZWQgdG8gY2hlY2sgZm9yIGEgZ2xvYmFsIHZhcmlhYmxlIG5hbWVkIGBwcml2YC4gTGV0JiMzOTtzIHNlYXJjaCB0aGUga2VybmVsIGhlYWRlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IHJ0bDh4eHh1X3ByaXYgXFwqcHJpdjsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTA2CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBgcHJpdmAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJJiMzOTttIHRha2luZyBhIHF1aWNrIHN3ZWVwLCBhbmQgdGhlIGZpcnN0IHRoaW5nIHRoYXQmIzM5O3MganVtcGluZyB0byBtaW5kIGlzIGEgZnVuZGFtZW50YWwgc2FuaXR5IGNoZWNrLiBJIG5lZWQgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBsdXJraW5nIGdsb2JhbCB2YXJpYWJsZSBuYW1lZCBgcHJpdmAuIE5vdCBqdXN0IGEgdmFyaWFibGUsIGJ1dCBzcGVjaWZpY2FsbHkgYSAqZ2xvYmFsKiBvbmUuIFRoaXMgaXMgYSBoYWJpdHVhbCBmaXJzdCBzdGVwLiBHbG9iYWxzIGFyZSBub3RvcmlvdXMgZm9yIGNhdXNpbmcgc2lkZSBlZmZlY3RzLCB1bmludGVuZGVkIGRlcGVuZGVuY2llcywgYW5kIGdlbmVyYWxseSBtYWtpbmcgZGVidWdnaW5nIGEgbmlnaHRtYXJlLCBzbyBpdCYjMzk7cyBiZXN0IHRvIHZlcmlmeSB0aGVpciBub24tZXhpc3RlbmNlIG9yIGlmIHByZXNlbnQgaG93IHRoZXkgYmVoYXZlLiBFc3BlY2lhbGx5IHNvbWV0aGluZyBhcyBwb3RlbnRpYWxseSBzZW5zaXRpdmUgYXMgJiMzNDtwcml2LCYjMzQ7IHdoaWNoIHNjcmVhbXMgJiMzNDtwcml2aWxlZ2VzJiMzNDsgb3IgJiMzNDtwcml2YXRlIGRhdGEuJiMzNDsgSXQmIzM5O3MgbGlrZWx5IHJlbGF0ZWQgdG8gc2VjdXJpdHksIGFjY2VzcyBjb250cm9sLCBvciBzb21lIG90aGVyIGNyaXRpY2FsIGNvbXBvbmVudC4gRmluZGluZyBhIGBwcml2YCBnbG9iYWwgY291bGQgaW1tZWRpYXRlbHkgdHJpZ2dlciBhIGRlZXBlciBkaXZlIGludG8gaXRzIHVzYWdlIGFuZCBzY29wZS4gSSYjMzk7ZCB3YW50IHRvIHVuZGVyc3RhbmQgd2hlcmUgaXQmIzM5O3MgZGVmaW5lZCwgaG93IGl0JiMzOTtzIG1vZGlmaWVkLCBhbmQsIG1vc3QgaW1wb3J0YW50bHksICp3aGVyZSogaXQmIzM5O3MgYWNjZXNzZWQuIEV2ZW4gaWYgaXQmIzM5O3MgYmVuaWduIG5vdywgaXQmIzM5O3MgYSBwb3RlbnRpYWwgdGltZSBib21iLiBBIGNhcmVsZXNzIGVkaXQgb3IgYW4gdW5mb3Jlc2VlbiBpbnRlcmFjdGlvbiBjb3VsZCBsZWFkIHRvIHZ1bG5lcmFiaWxpdGllcywgcHJpdmlsZWdlIGVzY2FsYXRpb24sIG9yIGRhdGEgbGVha2FnZS4gSSYjMzk7bSBnb2luZyB0byBzY2FuIHRoZSBjb2RlYmFzZSBub3cgd2l0aCBhbiBleHBlcnQgZXllLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V4dGVybiBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiBcXCpwcml2OyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3ODM3CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNvbXBpbGVyIEVycm9yIERpYWdub3NpcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzOiBjb21waWxlciBlcnJvciwgYnVpbGQgZmFpbHVyZS4gSWYgaXQmIzM5O3MgYSBidWlsZCBmYWlsdXJlLCB0aGVyZSYjMzk7cyBubyBwb2ludCBmdXp6aW5nIGl0LCByaWdodD8gWW91IGNhbiYjMzk7dCBmdXp6IGEga2VybmVsIHRoYXQgZG9lc24mIzM5O3QgYnVpbGQuIEJ1dCBob2xkIG9uLi4uIGlzIGl0IHBvc3NpYmxlIHRoYXQgdGhpcyBwYXRjaCBpcyBqdXN0IGEgbG9nZ2luZyBjaGFuZ2UgYW5kIHRoZSBhdXRob3Igc2ltcGx5IG1hZGUgYSB0cml2aWFsIG1pc3Rha2UgdGhhdCYjMzk7cyBjYXVzaW5nIHRoZSBidWlsZCB0byBicmVhaz8gSWYgaXQmIzM5O3MganVzdCBhIGJ1aWxkIGJyZWFrLCB0aGVuIGZ1enppbmcgaXMgc3RpbGwgb2ZmIHRoZSB0YWJsZS4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgc2VlLgoKRmlyc3QsIEkgY2hlY2tlZCBhIGZldyBvdGhlciBmaWxlcy4gSXQgbG9va3MgbGlrZSBgcHJpdmAgaXMgYmVpbmcgdXNlZCBhcyBhbiBhcmd1bWVudCB0byB0aGVzZSBmdW5jdGlvbnMsIGFuZCBgZGV2YCBpcyBiZWluZyBhc3NpZ25lZCBwcm9wZXJseSBpbiBgODE4OGUuY2AsIGA4MTg4Zi5jYCwgYW5kIGA4MTkyZS5jYC4gU28gdGhlIGlzc3VlICptdXN0KiBiZSBpbiBhbm90aGVyIGZpbGUuCgpBaC1oYSEgSW4gYGNvcmUuY2AsIEkgc2VlIHRoZSBwcm9ibGVtLiBUaGVyZSYjMzk7cyBhIHNjb3BlIGlzc3VlLiBgcHJpdmAgaXMgZGVjbGFyZWQgKmFmdGVyKiB0aGUgZGVjbGFyYXRpb24gb2YgYGRldmAuIFRoYXQmIzM5O3MgYSBjb21waWxlciBlcnJvciwgbm8gcXVlc3Rpb24gYWJvdXQgaXQuIE9rYXksIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIGJ1aWxkIGJyZWFrLiBUaW1lIHRvIGZsYWcgdGhpcyBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU4NjgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7NTg2ODpcdHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbjU4Njk6XHR7XG41ODcwOlx0XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuNTg3MTpcdFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG41ODcyOlx0XHRzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7XG41ODczOlx0XHRzdHJ1Y3QgbGlzdF9oZWFkIGxvY2FsO1xuNTg3NDpcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbjU4NzU6XHRcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG41ODc2Olx0XHRpbnQgcmV0O1xuNTg3NzpcdFxuNTg3ODpcdFx0cHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiwgcnhfdXJiX3dxKTtcbjU4Nzk6XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNmxvY2FsKTtcbjU4ODA6XHRcbjU4ODE6XHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcbjU4ODI6XHRcbjU4ODM6XHRcdGxpc3Rfc3BsaWNlX2luaXQoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfcGVuZGluZ19saXN0LCBcdTAwMjZsb2NhbCk7XG41ODg0Olx0XHRwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50ID0gMDtcbjU4ODU6XHRcbjU4ODY6XHRcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuNTg4NzpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODkzMAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDE5NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipDb21waWxlciBFcnJvciBMZWFkcyB0byBGdXp6aW5nIEhhbHQqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uLiBJJiMzOTttIHN0YXJpbmcgYXQgbGluZSA1ODcwLCBhbmQgYHByaXZgIGlzIGJlaW5nIHVzZWQgKmJlZm9yZSogaXQmIzM5O3MgZGVjbGFyZWQgb24gbGluZSA1ODcxLiBBYnNvbHV0ZWx5IGEgY2xhc3NpYyBDIGNvbXBpbGVyIGVycm9yLiBObyB3YXkgYXJvdW5kIGl0LiBUaGF0JiMzOTtzIGEgc2hvd3N0b3BwZXIuIFRoZSBrZXJuZWwgd29uJiMzOTt0IGNvbXBpbGUuIElmIGl0IGRvZXNuJiMzOTt0IGNvbXBpbGUsIHRoZW4gZnV6emluZyBpcyBkZWFkIGluIHRoZSB3YXRlci4KCkhhbmcgb24gYSBzZWNvbmTigKYgaXMgdGhlcmUgKmFueSogc2NlbmFyaW8gd2hlcmUgdGhpcyBjb3VsZCBiZSB2YWxpZCBDPyBQcm9iYWJseSBub3QsIEMgaXMgcHJldHR5IHN0cmljdCBhYm91dCB0aGF0LiBZb3UgY2FuJiMzOTt0IGp1c3QgdGhyb3cgYW4gaWRlbnRpZmllciBvdXQgdGhlcmUgYmVmb3JlIGl0cyBkZWNsYXJhdGlvbi4gVW5sZXNz4oCmIHdhaXQsIGNvdWxkIGBwcml2YCBiZSBhIGdsb2JhbCB2YXJpYWJsZSBkZWNsYXJlZCBpbiBzb21lIGluY2x1ZGVkIGhlYWRlcj8gTGV0JiMzOTtzIG5vdCBqdW1wIHRvIGNvbmNsdXNpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgaXQmIzM5O3MgZGVmaW5lZCBnbG9iYWxseSBhbnl3aGVyZS4KCk9rYXksIGxldCYjMzk7cyBzZWUgaWYgdGhlcmUgaXMgYSBnbG9iYWwgdmFyaWFibGUgbmFtZWQgYHByaXZgIHNvbWV3aGVyZSBpbiB0aGUga2VybmVsIGNvZGUuIEl0IHdvdWxkIGhhdmUgdG8gYmUgaW4gc2NvcGUgaGVyZSwgd2hpY2ggbWVhbnMgaXQgd291bGQgaGF2ZSB0byBiZSBkZWNsYXJlZCBpbiBhIGhlYWRlciBmaWxlIGluY2x1ZGVkIGJ5IGBjb3JlLmNgLiBTbywgSSBuZWVkIHRvIGNoZWNrIGFsbCB0aGUgaGVhZGVycyBpbmNsdWRlZCBieSBgY29yZS5jYCB0byBzZWUgaWYgYHByaXZgIGlzIGRlY2xhcmVkIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V4dGVybiAuKiBwcml2OyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2luY2x1ZGUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk0MjAKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBEZWNsYXJhdGlvbiBvZiBgcHJpdmAgaW4gYGNvcmUuY2AqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHNvbWV0aGluZyBhYm91dCB0aGUgdmFyaWFibGUgYHByaXZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCBgcHJpdmAgaXMgZGVjbGFyZWQgYXMgYSBnbG9iYWwgdmFyaWFibGUgd2l0aGluIHRoZSBgY29yZS5jYCBmaWxlLiBUaGlzIGlzIGZvdW5kYXRpb25hbDsgd2l0aG91dCB0aGlzIGRlY2xhcmF0aW9uLCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGNvZGUgZnVuY3Rpb25zIGlzIGltbWVkaWF0ZWx5IHN1c3BlY3QuIEkgbmVlZCB0byBrbm93IHdoZXJlIGl0JiMzOTtzIGRlZmluZWQgYW5kIHdoYXQgaXRzIHNjb3BlIGlzLiBJZiBpdCYjMzk7cyAqbm90KiBnbG9iYWxseSBkZWNsYXJlZCBpbiBgY29yZS5jYCwgdGhlbiBJIG5lZWQgdG8gYWRqdXN0IG15IG1lbnRhbCBtb2RlbCBvZiBob3cgZGF0YSBpcyBiZWluZyBzaGFyZWQgb3IgYWNjZXNzZWQuIE1heWJlIGl0JiMzOTtzIGEgc3RhdGljIHZhcmlhYmxlPyBPciBkZWNsYXJlZCBpbiBhIGhlYWRlciBhbmQgaW5jbHVkZWQ/IEVpdGhlciB3YXksIEkgbmVlZCB0byBrbm93IHRoZSB0cnVlIHNjb3BlIG9mIHRoaXMgdmFyaWFibGUuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGFueSBzdWJzZXF1ZW50IGFuYWx5c2lzIEkgaW50ZW5kIHRvIHBlcmZvcm0gb24gdGhlIGNvZGViYXNlLiBJIGFtIGdvaW5nIHRvIG5lZWQgdG8ga25vdywgcHJlY2lzZWx5LCB0aGUgY29udGV4dCBvZiB0aGUgdmFyaWFibGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBydGw4eHh4dV9wcml2IFxcKnByaXY7JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2MS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTE2MjpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cdHN0cnVjdCBydGw4eHh4dV90eF91cmIgKnR4X3VyYiA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTg3MC1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1ODcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVx0c3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiLCAqdG1wO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjEyMTpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjEyMi1cdHN0cnVjdCBydGw4NzIzYnVfYzJoICpjMmg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjI2MT1zdHJ1Y3QgcnRsOHh4eHVfcnhfdXBkYXRlX3Jzc2lfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MjYyOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MjYzLVx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MzcwPXN0cnVjdCBydGw4eHh4dV9pdGVyX3N0YXNfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03MzcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczODg9c3RhdGljIHZvaWQgcnRsOHh4eHVfd2F0Y2hkb2dfY2FsbGJhY2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXHRzdHJ1Y3QgcnRsOHh4eHVfc3Rhc19lbnRyeSAqc3RhX2VudHJ5LCAqdG1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzM5MzpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NzQ3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDktXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03OTY2PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Nzk2ODpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDgwOAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDM5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb246IFJlZmFjdG9yaW5nIHdpdGggQ29tcGlsZXIgRXJyb3IqKgoKT2theSwgc28gSSYjMzk7dmUgaGl0IGEgY29tcGlsZXIgZXJyb3Ig4oCTIG5vIGdsb2JhbCBgcHJpdmAuLi4gd2hpY2ggbWVhbnMgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYnVpbGQgZmFpbHVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O1dlbGwsIGEgY29tcGlsZXIgZXJyb3IgbWVhbnMgaXQmIzM5O3MgdW5mdXp6YWJsZS4mIzM0OyBCdXQgaG9sZCBvbiwgbGV0JiMzOTtzIHRoaW5rIGNyaXRpY2FsbHkuIFRoZSBpbnN0cnVjdGlvbnMgY2xlYXJseSBzdGF0ZSB0aGF0IHdlIHNob3VsZCBkaXNyZWdhcmQgcGF0Y2hlcyB0aGF0ICpvbmx5KiBjb250YWluIHNwZWNpZmljIHR5cGVzIG9mIGNoYW5nZXMuIEkgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGlzLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGZvciByZWZhY3RvcmluZyBvZiB0aGlzIHR5cGUuCgpMZXQmIzM5O3MgZ28gYmFjayBhbmQgZXZhbHVhdGUgaWYgdGhpcyBxdWFsaWZpZXMgZm9yIGEgZGlzcmVnYXJkLiBUaGUgZGVzY3JpcHRpb24gc2F5cyB0byBpZ25vcmUgcGF0Y2hlcyB0aGF0IGFyZSBvbmx5IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvZGUgY29tbWVudHMsIG9yIGxvZ2dpbmcsIHN1Y2ggYXMgYHByX2VycmAgb3IgYHByaW50a2AuIFRoaXMgKmxvb2tzKiBsaWtlIGEgcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdl4oCUbG9nZ2luZyByZWZhY3RvcmluZ+KAlGFuZCB0aGUgdHlwbyB0aGF0JiMzOTtzIGNhdXNpbmcgdGhlIGJ1aWxkIHRvIGZhaWwgZG9lc24mIzM5O3QgbWFrZSBpdCBhICpmdW5jdGlvbmFsKiBjaGFuZ2UgdGhhdCB3YXJyYW50cyBmdXp6aW5nLiBJdCBqdXN0IGluZGljYXRlcyBhIGJyb2tlbiBwYXRjaCwgaXQgd2lsbCBiZSByZWplY3RlZC4KCldhaXQgYSBtaW51dGUsIGNvdWxkIGBwcml2YCBiZSBhIG1hY3JvIGRlZmluZWQgc29tZXdoZXJlPyBJIG5lZWQgdG8gYmUgdGhvcm91Z2guIEkgYWxyZWFkeSBjaGVja2VkIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9gIGFyZWEuIEkgYWxzbyBsb29rZWQgaW4gdGhlIGluY2x1ZGUgZGlyZWN0b3J5IGZvciBtYWNybyBkZWZpbml0aW9ucy4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBhIGRlYWQgZW5kLiBPa2F5LCB0aGF0JiMzOTtzIGVub3VnaCBpbnZlc3RpZ2F0aW9uLCBJIHdpbGwgbWFyayB0aGlzIGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsjZGVmaW5lIHByaXYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaD0xOTIxPXZvaWQgaGNpX2Nvbm5fZGVsX3N5c2ZzKHN0cnVjdCBoY2lfY29ubiAqY29ubik7XG4tLVxuaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmgtMTk5NS1cbmluY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oOjE5OTY6I2RlZmluZSBwcml2YWN5X21vZGVfY2FwYWJsZShkZXYpIChsbF9wcml2YWN5X2NhcGFibGUoZGV2KSBcdTAwMjZcdTAwMjYgXFxcbmluY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oLTE5OTctXHRcdFx0XHQgICAoKGRldiktXHUwMDNlY29tbWFuZHNbMzldIFx1MDAyNiAweDA0KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE2NjgKCQkJCQkJCW91dHB1dDogMTE5CgkJCQkJCQl0aG91Z2h0czogMTIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipQYXRjaCBBbmFseXNpczogV29ydGhGdXp6aW5nPWZhbHNlKioKCk9rYXksIHNvIGluaXRpYWxseSBJIHNhdyBhIGNvbXBpbGVyIGVycm9yIGFuZCBpbW1lZGlhdGVseSB0aG91Z2h0ICYjMzQ7bm8sIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7IEEgY29tcGlsZXIgZXJyb3IgYXV0b21hdGljYWxseSBkaXNxdWFsaWZpZXMgaXQuIFRoZSBwYXRjaCYjMzk7cyBwcmltYXJ5IGludGVudCBhcHBlYXJzIHRvIGJlIHB1cmVseSBjb3NtZXRpYzogbG9nZ2luZyByZWZhY3RvcmluZy4gQnV0IGxldCYjMzk7cyBiZSB0aG9yb3VnaCwgbm8gcG9pbnQgbWFraW5nIGFuIGFzc3VtcHRpb24uCgpOb3csIEkmIzM5O3ZlIGNoZWNrZWQgYWxsIG9mIHRoZSBjaGFuZ2VkIGZpbGVzIChgODE4OGUuY2AsIGA4MTg4Zi5jYCwgYDgxOTJlLmNgLCBgODE5MmYuY2AsIGA4NzIzYS5jYCwgYDg3MjNiLmNgLCBhbmQgYGNvcmUuY2ApLiBJdCYjMzk7cyB0aGUgc2FtZSBwYXR0ZXJuIGFjcm9zcyBhbGwgb2YgdGhlbS4gRWFjaCBmdW5jdGlvbiBpbiB0aGlzIHBhdGNoIGlzIHJlZmFjdG9yaW5nIGhvdyBgZGV2X3dhcm5gIGlzIGNhbGxlZC4gSXQmIzM5O3Mgc2ltcGx5IHJlcGxhY2luZyBgJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXZgIHdpdGggYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSwgaW50cm9kdWNlZCBmb3IgdGhlIGNhbGwuIFB1cmVseSBkZWNvcmF0aXZlLiBObyBmdW5jdGlvbmFsIGNoYW5nZXMsIG5vIGxvZ2ljIGFsdGVyYXRpb24sIG5vdGhpbmcgdGhhdCB3b3VsZCBpbXBhY3QgZXhlY3V0aW9uLgoKSSBkaWQgYSBzZWNvbmQgcmV2aWV3IG9mIHRoZSBkaWZmIGp1c3QgdG8gbWFrZSBzdXJlIEkgd2FzbiYjMzk7dCBtaXNzaW5nIGFueXRoaW5nIHN1YnRsZSwgYW5kIHRoZSBjb25jbHVzaW9uIGlzIHRoZSBzYW1lLiBUaGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaXMgdGhlIG9ubHkgZnVuY3Rpb25hbCBjaGFuZ2UsIGJ1dCBpdCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IuIFRoaXMgY29kZSBjYW4mIzM5O3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBvZiB0aGUgY29tcGlsZXIgZXJyb3IgYW5kIHRoZSBwYXRjaCB3b24mIzM5O3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZSBzeXN0ZW0uCgpUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2gmIzM5O3Mgb25seSBlZmZlY3RzIGFyZSBhZXN0aGV0aWMgaW1wcm92ZW1lbnRzIChvciBpbiB0aGUgY2FzZSBvZiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgLCBicmVha2FnZSkuIEkmIzM5O2xsIG1hcmsgaXQgYXMgc3VjaCBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHNwZWNpZmljYWxseSByZWZhY3RvcmluZyBsb2dnaW5nIGNhbGxzIHRvIHVzZSBhIGxvY2FsIGBkZXZgIHZhcmlhYmxlIGluc3RlYWQgb2YgYFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgIGluIGBkZXZfd2FybmAuIEl0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IgYnkgdXNpbmcgdGhlIGBwcml2YCB2YXJpYWJsZSBiZWZvcmUgaXQgaXMgZGVjbGFyZWQsIHNvIHRoZSBjb2RlIGNhbm5vdCBldmVuIGJlIGNvbXBpbGVkIG9yIGV4ZWN1dGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBjb250YWlucyBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzcGVjaWZpY2FsbHkgcmVmYWN0b3JpbmcgbG9nZ2luZyBjYWxscyB0byB1c2UgYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2YCBpbiBgZGV2X3dhcm5gLiBJdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaW50cm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIGJ5IHVzaW5nIHRoZSBgcHJpdmAgdmFyaWFibGUgYmVmb3JlIGl0IGlzIGRlY2xhcmVkLCBzbyB0aGUgY29kZSBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCBvciBleGVjdXRlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDoxNC4xODE5NzY0MDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzgxODEzNDM4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHNwZWNpZmljYWxseSByZWZhY3RvcmluZyBsb2dnaW5nIGNhbGxzIHRvIHVzZSBhIGxvY2FsIGBkZXZgIHZhcmlhYmxlIGluc3RlYWQgb2YgYFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXZgIGluIGBkZXZfd2FybmAuIEl0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IgYnkgdXNpbmcgdGhlIGBwcml2YCB2YXJpYWJsZSBiZWZvcmUgaXQgaXMgZGVjbGFyZWQsIHNvIHRoZSBjb2RlIGNhbm5vdCBldmVuIGJlIGNvbXBpbGVkIG9yIGV4ZWN1dGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6MTQuMTgxOTgxNDQ2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjE4NTMzMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBjMzY4MTIxOTkyYTQ3Y2YyYTllY2JkZTVhM2U1YTAwMzE5Njk0NWI3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDE3IDA1OjU0OjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuY1xcbmluZGV4IGZlYTVhZWM5Y2VkOTkuLjRhNjQ2MzNiMmRhM2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXFxuQEAgLTY0Myw2ICs2NDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgcmVnX2VhNCwgcmVnX2VhYywgcmVnX2U5NCwgcmVnX2U5YywgdmFsMzI7XFxuIFxcdGludCByZXN1bHQgPSAwO1xcbiBcXG5AQCAtNzQwLDcgKzc0MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lYWMgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDI7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcbiBvdXQ6XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuY1xcbmluZGV4IDU1NTZhYWQxYTdhZDMuLjY4NjA5Y2UzN2FiMDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jXFxuQEAgLTc4OSw2ICs3ODksNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhmdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFxuIHZvaWQgcnRsODE4OGZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgdmFsMzI7XFxuIFxcdHUzMiByZl9hbW9kZSwgbHN0ZjtcXG4gXFx0aW50IGk7XFxuQEAgLTgxOSw3ICs4MjAsNyBAQCB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdH1cXG4gXFxuIFxcdGlmIChpID09IDEwMClcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIkxDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cXFxcblxcXCIpO1xcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCJMQyBjYWxpYnJhdGlvbiB0aW1lZCBvdXQuXFxcXG5cXFwiKTtcXG4gXFxuIFxcdHJ0bDh4eHh1X3dyaXRlX3JmcmVnKHByaXYsIFJGX0EsIFJGNjA1Ml9SRUdfTU9ERV9BRywgcmZfYW1vZGUpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jXFxuaW5kZXggNjkwYWNlMzAzMTUwMy4uODM4NWFkYTUzMmIzNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcXG5AQCAtNzQyLDYgKzc0Miw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcXG4gXFx0aW50IHJlc3VsdCA9IDA7XFxuIFxcbkBAIC04NjAsNyArODYxLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0ICAgICgocmVnX2VhYyBcXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKVxcbiBcXHRcXHRyZXN1bHQgfD0gMHgwMjtcXG4gXFx0ZWxzZVxcbi1cXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LCBcXFwiJXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcXFxuXFxcIixcXG4rXFx0XFx0ZGV2X3dhcm4oZGV2LCBcXFwiJXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fKTtcXG4gXFxuIG91dDpcXG5AQCAtODY5LDYgKzg3MCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjO1xcbiBcXHRpbnQgcmVzdWx0ID0gMDtcXG4gXFxuQEAgLTkxMCw3ICs5MTIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHQgICAgKChyZWdfZWJjIFxcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpXFxuIFxcdFxcdHJlc3VsdCB8PSAweDAxO1xcbiBcXHRlbHNlXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogUGF0aCBCIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogUGF0aCBCIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgX19mdW5jX18pO1xcbiBcXG4gXFx0cmV0dXJuIHJlc3VsdDtcXG5AQCAtOTE4LDYgKzkyMCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjtcXG4gXFx0aW50IHJlc3VsdCA9IDA7XFxuIFxcbkBAIC0xMDQwLDcgKzEwNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHQgICAgKChyZWdfZWNjIFxcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXFxuIFxcdFxcdHJlc3VsdCB8PSAweDAyO1xcbiBcXHRlbHNlXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgX19mdW5jX18pO1xcbiBcXG4gb3V0OlxcbkBAIC0xNDk1LDYgKzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTkyZXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1OCB2YWw4O1xcbiBcXHRpbnQgY291bnQsIHJldCA9IDA7XFxuIFxcbkBAIC0xNTIxLDcgKzE1MjUsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHR9XFxuIFxcbiBcXHRpZiAoIWNvdW50KSB7XFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fKTtcXG4gXFx0XFx0cmV0ID0gLUVCVVNZO1xcbiBcXHRcXHRnb3RvIGV4aXQ7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xcbmluZGV4IDVmMDc2ZGE0YjU1MDYuLjBiOGMwNjgyMTVkNzAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jXFxuQEAgLTY4MSw2ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTkyZnVfaW5pdF9hZ2dyZWdhdGlvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFxuIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3BhcnNlX2VmdXNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHN0cnVjdCBydGw4MTkyZnVfZWZ1c2UgKmVmdXNlID0gXFx1MDAyNnByaXYtXFx1MDAzZWVmdXNlX3dpZmkuZWZ1c2U4MTkyZnU7XFxuIFxcdGludCBpO1xcbiBcXG5AQCAtNzMxLDcgKzczMiw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3BhcnNlX2VmdXNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHRwcml2LVxcdTAwM2VyZmVfdHlwZSA9IGVmdXNlLVxcdTAwM2VyZmVfb3B0aW9uIFxcdTAwMjYgMHgxZjtcXG4gXFxuIFxcdGlmIChwcml2LVxcdTAwM2VyZmVfdHlwZSAhPSA1IFxcdTAwMjZcXHUwMDI2IHByaXYtXFx1MDAzZXJmZV90eXBlICE9IDEpXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsXFxuK1xcdFxcdGRldl93YXJuKGRldixcXG4gXFx0XFx0XFx0IFxcXCIlczogUkZFIHR5cGUgJWQgd2FzIG5vdCB0ZXN0ZWQuIFBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIGxpbnV4LXdpcmVsZXNzQHZnZXIua2VybmVsLm9yZyBhYm91dCB0aGlzLlxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fLCBwcml2LVxcdTAwM2VyZmVfdHlwZSk7XFxuIFxcbkBAIC0xMDIyLDYgKzEwMjMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgdmFsMzI7XFxuIFxcdHUzMiByZl8weDU4X2ksIHJmXzB4NThfcTtcXG4gXFx0dTggcmZlID0gcHJpdi1cXHUwMDNlcmZlX3R5cGU7XFxuQEAgLTExMDksNyArMTExMSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lYmMgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwNDIwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDE7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcbiBcXHRyZXR1cm4gcmVzdWx0O1xcbkBAIC0xMTE3LDYgKzExMTksNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTkyZnVfcnhfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYywgdmFsMzI7XFxuIFxcdGludCByZXN1bHQgPSAwO1xcbiBcXHRpbnQga3RpbWU7XFxuQEAgLTEyNDYsNyArMTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lY2MgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDI7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcbiBcXHRyZXR1cm4gcmVzdWx0O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmNcXG5pbmRleCAxOGUwMzhiODJmNDkwLi4zNTI1ZWNmMDdiNDgyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xcbkBAIC00MTMsNiArNDEzLDcgQEAgc3RhdGljIGludCBydGw4NzIzYXVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDg3MjNhdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHU4IHZhbDg7XFxuIFxcdGludCBjb3VudCwgcmV0ID0gMDtcXG4gXFxuQEAgLTQzOSw3ICs0NDAsNyBAQCBzdGF0aWMgaW50IHJ0bDg3MjNhdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHR9XFxuIFxcbiBcXHRpZiAoIWNvdW50KSB7XFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fKTtcXG4gXFx0XFx0cmV0ID0gLUVCVVNZO1xcbiBcXHRcXHRnb3RvIGV4aXQ7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuY1xcbmluZGV4IGUzMTRlZjk5MWIzODguLjVjMDc3YjEzNzJlZWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXFxuQEAgLTEyMjUsNiArMTIyNSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDg3MjNidV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1OCB2YWw4O1xcbiBcXHR1MTYgdmFsMTY7XFxuIFxcdHUzMiB2YWwzMjtcXG5AQCAtMTI1Niw3ICsxMjU3LDcgQEAgc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKCFjb3VudCkge1xcbi1cXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LCBcXFwiJXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcdFxcdHJldCA9IC1FQlVTWTtcXG4gXFx0XFx0Z290byBleGl0O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXFxuaW5kZXggNjQ2ZmU3NmIwODZlNy4uOGU3ODEzNGE4MTMxMiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXFxuQEAgLTIxODcsNiArMjE4Nyw3IEBAIHZvaWQgcnRsOHh4eHVfZmlybXdhcmVfc2VsZl9yZXNldChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gc3RhdGljIGludFxcbiBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHRjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmVnOHZhbCAqYXJyYXkgPSBwcml2LVxcdTAwM2Vmb3BzLVxcdTAwM2VtYWN0YWJsZTtcXG4gXFx0aW50IGksIHJldDtcXG4gXFx0dTE2IHJlZztcXG5AQCAtMjIwMSw3ICsyMjAyLDcgQEAgcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBcXHRcXHRyZXQgPSBydGw4eHh4dV93cml0ZTgocHJpdiwgcmVnLCB2YWwpO1xcbiBcXHRcXHRpZiAocmV0ICE9IDEpIHtcXG4tXFx0XFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0ZGV2X3dhcm4oZGV2LFxcbiBcXHRcXHRcXHRcXHQgXFxcIkZhaWxlZCB0byBpbml0aWFsaXplIE1BQyBcXFwiXFxuIFxcdFxcdFxcdFxcdCBcXFwiKHJlZzogJTA0eCwgdmFsICUwMngpXFxcXG5cXFwiLCByZWcsIHZhbCk7XFxuIFxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbkBAIC0yMjI5LDYgKzIyMzAsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZWczMnZhbCAqYXJyYXkpXFxuIHtcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldjtcXG4gXFx0aW50IGksIHJldDtcXG4gXFx0dTE2IHJlZztcXG4gXFx0dTMyIHZhbDtcXG5AQCAtMjI0Miw3ICsyMjQ0LDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcbiBcXHRcXHRyZXQgPSBydGw4eHh4dV93cml0ZTMyKHByaXYsIHJlZywgdmFsKTtcXG4gXFx0XFx0aWYgKHJldCAhPSBzaXplb2YodmFsKSkge1xcbi1cXHRcXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRkZXZfd2FybihkZXYsXFxuIFxcdFxcdFxcdFxcdCBcXFwiRmFpbGVkIHRvIGluaXRpYWxpemUgUEhZXFxcXG5cXFwiKTtcXG4gXFx0XFx0XFx0cmV0dXJuIC1FQUdBSU47XFxuIFxcdFxcdH1cXG5AQCAtMjM4Nyw2ICsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcdFxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgKmFycmF5LFxcbiBcXHRcXHRcXHRcXHQgZW51bSBydGw4eHh4dV9yZnBhdGggcGF0aClcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHRpbnQgaSwgcmV0O1xcbiBcXHR1OCByZWc7XFxuIFxcdHUzMiB2YWw7XFxuQEAgLTI0MjEsNyArMjQyNCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaW5pdF9yZl9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiBcXG4gXFx0XFx0cmV0ID0gcnRsOHh4eHVfd3JpdGVfcmZyZWcocHJpdiwgcGF0aCwgcmVnLCB2YWwpO1xcbiBcXHRcXHRpZiAocmV0KSB7XFxuLVxcdFxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsXFxuK1xcdFxcdFxcdGRldl93YXJuKGRldixcXG4gXFx0XFx0XFx0XFx0IFxcXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBSRlxcXFxuXFxcIik7XFxuIFxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbiBcXHRcXHR9XFxuQEAgLTI1NTgsNiArMjU2MSw3IEBAIGludCBydGw4eHh4dV9pbml0X2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFxuIGludCBydGw4eHh4dV9hdXRvX2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgdmFsMzI7XFxuIFxcdGludCByZXQgPSAwO1xcbiBcXHRpbnQgaTtcXG5AQCAtMjU3NSw3ICsyNTc5LDcgQEAgaW50IHJ0bDh4eHh1X2F1dG9fbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gXFx0aWYgKCFpKSB7XFxuIFxcdFxcdHJldCA9IC1FQlVTWTtcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIkxMVCB0YWJsZSBpbml0IGZhaWxlZFxcXFxuXFxcIik7XFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIkxMVCB0YWJsZSBpbml0IGZhaWxlZFxcXFxuXFxcIik7XFxuIFxcdH1cXG4gXFxuIFxcdHJldHVybiByZXQ7XFxuQEAgLTMwODksNiArMzA5Myw3IEBAIHZvaWQgcnRsOHh4eHVfbWFjX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiBcXG4gc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCByZWdfZWE0LCB2YWwzMjtcXG4gXFx0aW50IHJlc3VsdCA9IDA7XFxuIFxcbkBAIC0zMTM4LDcgKzMxNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lYWMgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDI7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIG91dDpcXG4gXFx0cmV0dXJuIHJlc3VsdDtcXG5AQCAtMzE0Niw2ICszMTUxLDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjO1xcbiBcXHRpbnQgcmVzdWx0ID0gMDtcXG4gXFxuQEAgLTMxNzQsNyArMzE4MCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0ICAgICgoKHJlZ19lY2MgXFx1MDAyNiAweDAzZmYwMDAwKSBcXHUwMDNlXFx1MDAzZSAxNikgIT0gMHgzNikpXFxuIFxcdFxcdHJlc3VsdCB8PSAweDAyO1xcbiBcXHRlbHNlXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgX19mdW5jX18pO1xcbiBvdXQ6XFxuIFxcdHJldHVybiByZXN1bHQ7XFxuQEAgLTM2MzgsNiArMzY0NCw3IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3NldF9hbXBkdV9taW5fc3BhY2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGRlbnNpdHkpXFxuIFxcbiBpbnQgcnRsOHh4eHVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1OCB2YWw4O1xcbiBcXHR1OCB2YWwzMjtcXG4gXFx0aW50IGNvdW50LCByZXQgPSAwO1xcbkBAIC0zNjU1LDcgKzM2NjIsNyBAQCBpbnQgcnRsOHh4eHVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKCFjb3VudCkge1xcbi1cXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LFxcbitcXHRcXHRkZXZfd2FybihkZXYsXFxuIFxcdFxcdFxcdCBcXFwiJXM6IFJYIHBvbGwgdGltZWQgb3V0ICgweDA1ZjgpXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuIFxcdFxcdHJldCA9IC1FQlVTWTtcXG4gXFx0XFx0Z290byBleGl0O1xcbkBAIC01ODYwLDYgKzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcbiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuIHtcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldjtcXG4gXFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuIFxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG4gXFx0c3RydWN0IGxpc3RfaGVhZCBsb2NhbDtcXG5AQCAtNTg5Myw3ICs1OTAxLDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRcXHRcXHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdGRlZmF1bHQ6XFxuLVxcdFxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsXFxuK1xcdFxcdFxcdGRldl93YXJuKGRldixcXG4gXFx0XFx0XFx0XFx0IFxcXCJmYWlsZWQgdG8gcmVxdWV1ZSB1cmIgd2l0aCBlcnJvciAlaVxcXFxuXFxcIiwgcmV0KTtcXG4gXFx0XFx0XFx0c2tiID0gKHN0cnVjdCBza19idWZmICopcnhfdXJiLVxcdTAwM2V1cmIuY29udGV4dDtcXG4gXFx0XFx0XFx0ZGV2X2tmcmVlX3NrYihza2IpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDoxNC42MDQ1ODkyMTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMzc3NTg3MTU3MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3BlY2lmaWNhbGx5IHJlZmFjdG9yaW5nIGxvZ2dpbmcgY2FsbHMgdG8gdXNlIGEgbG9jYWwgYGRldmAgdmFyaWFibGUgaW5zdGVhZCBvZiBgXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldmAgaW4gYGRldl93YXJuYC4gSXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZSBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgIGludHJvZHVjZXMgYSBjb21waWxlciBlcnJvciBieSB1c2luZyB0aGUgYHByaXZgIHZhcmlhYmxlIGJlZm9yZSBpdCBpcyBkZWNsYXJlZCwgc28gdGhlIGNvZGUgY2Fubm90IGV2ZW4gYmUgY29tcGlsZWQgb3IgZXhlY3V0ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjMzY4MTIxOTkyYTQ3Y2YyYTllY2JkZTVhM2U1YTAwMzE5Njk0NWI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTcgMDU6NTQ6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmNcbmluZGV4IGZlYTVhZWM5Y2VkOTkuLjRhNjQ2MzNiMmRhM2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuY1xuQEAgLTY0Myw2ICs2NDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE4OGV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTc0MCw3ICs3NDEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VhYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbmluZGV4IDU1NTZhYWQxYTdhZDMuLjY4NjA5Y2UzN2FiMDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuY1xuQEAgLTc4OSw2ICs3ODksNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhmdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiB2YWwzMjtcbiBcdHUzMiByZl9hbW9kZSwgbHN0ZjtcbiBcdGludCBpO1xuQEAgLTgxOSw3ICs4MjAsNyBAQCB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoaSA9PSAxMDApXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiTEMgY2FsaWJyYXRpb24gdGltZWQgb3V0LlxcblwiKTtcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIkxDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cXG5cIik7XG4gXG4gXHRydGw4eHh4dV93cml0ZV9yZnJlZyhwcml2LCBSRl9BLCBSRjYwNTJfUkVHX01PREVfQUcsIHJmX2Ftb2RlKTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcbmluZGV4IDY5MGFjZTMwMzE1MDMuLjgzODVhZGE1MzJiMzYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuY1xuQEAgLTc0Miw2ICs3NDIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTg2MCw3ICs4NjEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VhYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbkBAIC04NjksNiArODcwLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYztcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTkxMCw3ICs5MTIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2ViYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAxO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC05MTgsNiArOTIwLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYywgdmFsMzI7XG4gXHRpbnQgcmVzdWx0ID0gMDtcbiBcbkBAIC0xMDQwLDcgKzEwNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbkBAIC0xNDk1LDYgKzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHRpbnQgY291bnQsIHJldCA9IDA7XG4gXG5AQCAtMTUyMSw3ICsxNTI1LDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xuaW5kZXggNWYwNzZkYTRiNTUwNi4uMGI4YzA2ODIxNWQ3MCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jXG5AQCAtNjgxLDYgKzY4MSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3BhcnNlX2VmdXNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRzdHJ1Y3QgcnRsODE5MmZ1X2VmdXNlICplZnVzZSA9IFx1MDAyNnByaXYtXHUwMDNlZWZ1c2Vfd2lmaS5lZnVzZTgxOTJmdTtcbiBcdGludCBpO1xuIFxuQEAgLTczMSw3ICs3MzIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdHByaXYtXHUwMDNlcmZlX3R5cGUgPSBlZnVzZS1cdTAwM2VyZmVfb3B0aW9uIFx1MDAyNiAweDFmO1xuIFxuIFx0aWYgKHByaXYtXHUwMDNlcmZlX3R5cGUgIT0gNSBcdTAwMjZcdTAwMjYgcHJpdi1cdTAwM2VyZmVfdHlwZSAhPSAxKVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LFxuK1x0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0IFwiJXM6IFJGRSB0eXBlICVkIHdhcyBub3QgdGVzdGVkLiBQbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcgYWJvdXQgdGhpcy5cXG5cIixcbiBcdFx0XHQgX19mdW5jX18sIHByaXYtXHUwMDNlcmZlX3R5cGUpO1xuIFxuQEAgLTEwMjIsNiArMTAyMyw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHZhbDMyO1xuIFx0dTMyIHJmXzB4NThfaSwgcmZfMHg1OF9xO1xuIFx0dTggcmZlID0gcHJpdi1cdTAwM2VyZmVfdHlwZTtcbkBAIC0xMTA5LDcgKzExMTEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2ViYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAxO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC0xMTE3LDYgKzExMTksNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFx0aW50IGt0aW1lO1xuQEAgLTEyNDYsNyArMTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKChyZWdfZWNjIFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuK1x0XHRkZXZfd2FybihkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXG4gXHRyZXR1cm4gcmVzdWx0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xuaW5kZXggMThlMDM4YjgyZjQ5MC4uMzUyNWVjZjA3YjQ4MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jXG5AQCAtNDEzLDYgKzQxMyw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHRpbnQgY291bnQsIHJldCA9IDA7XG4gXG5AQCAtNDM5LDcgKzQ0MCw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoIWNvdW50KSB7XG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiJXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxuXCIsXG4rXHRcdGRldl93YXJuKGRldiwgXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFx0XHRyZXQgPSAtRUJVU1k7XG4gXHRcdGdvdG8gZXhpdDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmNcbmluZGV4IGUzMTRlZjk5MWIzODguLjVjMDc3YjEzNzJlZWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuY1xuQEAgLTEyMjUsNiArMTIyNSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDg3MjNidV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODcyM2J1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHR1MTYgdmFsMTY7XG4gXHR1MzIgdmFsMzI7XG5AQCAtMTI1Niw3ICsxMjU3LDcgQEAgc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbmluZGV4IDY0NmZlNzZiMDg2ZTcuLjhlNzgxMzRhODEzMTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbkBAIC0yMTg3LDYgKzIxODcsNyBAQCB2b2lkIHJ0bDh4eHh1X2Zpcm13YXJlX3NlbGZfcmVzZXQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gc3RhdGljIGludFxuIHJ0bDh4eHh1X2luaXRfbWFjKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmVnOHZhbCAqYXJyYXkgPSBwcml2LVx1MDAzZWZvcHMtXHUwMDNlbWFjdGFibGU7XG4gXHRpbnQgaSwgcmV0O1xuIFx0dTE2IHJlZztcbkBAIC0yMjAxLDcgKzIyMDIsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBcdFx0cmV0ID0gcnRsOHh4eHVfd3JpdGU4KHByaXYsIHJlZywgdmFsKTtcbiBcdFx0aWYgKHJldCAhPSAxKSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbitcdFx0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0XHQgXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBNQUMgXCJcbiBcdFx0XHRcdCBcIihyZWc6ICUwNHgsIHZhbCAlMDJ4KVxcblwiLCByZWcsIHZhbCk7XG4gXHRcdFx0cmV0dXJuIC1FQUdBSU47XG5AQCAtMjIyOSw2ICsyMjMwLDcgQEAgcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0ICAgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JlZzMydmFsICphcnJheSlcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0aW50IGksIHJldDtcbiBcdHUxNiByZWc7XG4gXHR1MzIgdmFsO1xuQEAgLTIyNDIsNyArMjI0NCw3IEBAIGludCBydGw4eHh4dV9pbml0X3BoeV9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIFx0XHRyZXQgPSBydGw4eHh4dV93cml0ZTMyKHByaXYsIHJlZywgdmFsKTtcbiBcdFx0aWYgKHJldCAhPSBzaXplb2YodmFsKSkge1xuLVx0XHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsXG4rXHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwiRmFpbGVkIHRvIGluaXRpYWxpemUgUEhZXFxuXCIpO1xuIFx0XHRcdHJldHVybiAtRUFHQUlOO1xuIFx0XHR9XG5AQCAtMjM4Nyw2ICsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0XHQgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JmcmVndmFsICphcnJheSxcbiBcdFx0XHRcdCBlbnVtIHJ0bDh4eHh1X3JmcGF0aCBwYXRoKVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRpbnQgaSwgcmV0O1xuIFx0dTggcmVnO1xuIFx0dTMyIHZhbDtcbkBAIC0yNDIxLDcgKzI0MjQsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2luaXRfcmZfcmVncyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbiBcbiBcdFx0cmV0ID0gcnRsOHh4eHVfd3JpdGVfcmZyZWcocHJpdiwgcGF0aCwgcmVnLCB2YWwpO1xuIFx0XHRpZiAocmV0KSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbitcdFx0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0XHQgXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBSRlxcblwiKTtcbiBcdFx0XHRyZXR1cm4gLUVBR0FJTjtcbiBcdFx0fVxuQEAgLTI1NTgsNiArMjU2MSw3IEBAIGludCBydGw4eHh4dV9pbml0X2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiB2YWwzMjtcbiBcdGludCByZXQgPSAwO1xuIFx0aW50IGk7XG5AQCAtMjU3NSw3ICsyNTc5LDcgQEAgaW50IHJ0bDh4eHh1X2F1dG9fbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIFx0aWYgKCFpKSB7XG4gXHRcdHJldCA9IC1FQlVTWTtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCJMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cIik7XG4rXHRcdGRldl93YXJuKGRldiwgXCJMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cIik7XG4gXHR9XG4gXG4gXHRyZXR1cm4gcmV0O1xuQEAgLTMwODksNiArMzA5Myw3IEBAIHZvaWQgcnRsOHh4eHVfbWFjX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHJlZ19lYTQsIHZhbDMyO1xuIFx0aW50IHJlc3VsdCA9IDA7XG4gXG5AQCAtMzEzOCw3ICszMTQzLDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VhYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIG91dDpcbiBcdHJldHVybiByZXN1bHQ7XG5AQCAtMzE0Niw2ICszMTUxLDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHJlZ19lYzQsIHJlZ19lY2M7XG4gXHRpbnQgcmVzdWx0ID0gMDtcbiBcbkBAIC0zMTc0LDcgKzMxODAsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKCgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgXHUwMDNlXHUwMDNlIDE2KSAhPSAweDM2KSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuK1x0XHRkZXZfd2FybihkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gb3V0OlxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC0zNjM4LDYgKzM2NDQsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9zZXRfYW1wZHVfbWluX3NwYWNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBkZW5zaXR5KVxuIFxuIGludCBydGw4eHh4dV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1OCB2YWw4O1xuIFx0dTggdmFsMzI7XG4gXHRpbnQgY291bnQsIHJldCA9IDA7XG5AQCAtMzY1NSw3ICszNjYyLDcgQEAgaW50IHJ0bDh4eHh1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoIWNvdW50KSB7XG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsXG4rXHRcdGRldl93YXJuKGRldixcbiBcdFx0XHQgXCIlczogUlggcG9sbCB0aW1lZCBvdXQgKDB4MDVmOClcXG5cIiwgX19mdW5jX18pO1xuIFx0XHRyZXQgPSAtRUJVU1k7XG4gXHRcdGdvdG8gZXhpdDtcbkBAIC01ODYwLDYgKzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbiBcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcbiBcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XG5AQCAtNTg5Myw3ICs1OTAxLDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0XHRcdHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihwcml2LCByeF91cmIpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRkZWZhdWx0OlxuLVx0XHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsXG4rXHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwiZmFpbGVkIHRvIHJlcXVldWUgdXJiIHdpdGggZXJyb3IgJWlcXG5cIiwgcmV0KTtcbiBcdFx0XHRza2IgPSAoc3RydWN0IHNrX2J1ZmYgKilyeF91cmItXHUwMDNldXJiLmNvbnRleHQ7XG4gXHRcdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6MTQuNjA0NTkyMTYzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTExOTUwMjAxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIFNlcmllcyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gZ2l2ZW4gdGhpcyBwYXRjaCBzZXJpZXMgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgXCJkb2VzIHRoaXMgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIGZ1enppbmc/XCIgSSBpbW1lZGlhdGVseSBzZWUgdGhhdCBpdCB0b3VjaGVzIHNldmVyYWwgZmlsZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9gIGRpcmVjdG9yeTogYDgxODhlLmNgLCBgODE4OGYuY2AsIGA4MTkyZS5jYCwgYDgxOTJmLmNgLCBgODcyM2EuY2AsIGA4NzIzYi5jYCwgYW5kIGBjb3JlLmNgLiBUaGF0J3MgYSBkZWNlbnQtc2l6ZWQgYXJlYSB0byBsb29rIGF0LlxuXG5Ob3csIGxvb2tpbmcgYXQgdGhlIGRpZmYsIGl0IHNlZW1zIHRoZXJlJ3MgYSBtaW5vciBtb2RpZmljYXRpb24gaW4gYHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hYC4gSXQncyBpbnRyb2R1Y2luZyBhIGxvY2FsIHZhcmlhYmxlIGBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O2AgYW5kIHRoZW4gcmVwbGFjaW5nIGluc3RhbmNlcyBvZiBgXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldmAgd2l0aCBgZGV2YCB3aXRoaW4gYGRldl93YXJuYCBjYWxscy4gVGhhdCdzIHVzdWFsbHkganVzdCBhIGNvZGUgc3R5bGUgdGhpbmcsIGltcHJvdmluZyByZWFkYWJpbGl0eSBvciByZWR1Y2luZyBjb2RlIGR1cGxpY2F0aW9uLiBJIHdvdWxkbid0IGV4cGVjdCB0aGlzIGFsb25lIHRvIGNoYW5nZSBhbnkgYmVoYXZpb3IsIGJ1dCBJIGFsd2F5cyB3YW50IHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcuXG5cblRoZW4sIHRoZXJlJ3MgYW5vdGhlciBpbnN0YW5jZSBvZiB0aGlzIHBhdHRlcm4gaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCB3aXRoaW4gYGNvcmUuY2AsIHRvby4gSG9sZCBvbi4uLnRoZSB2YXJpYWJsZSBgZGV2YCBpcyBpbml0aWFsaXplZCB1c2luZyBgcHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldmAuIEJ1dCwgYHByaXZgIGlzIGRlY2xhcmVkICphZnRlciogYGRldmAgaXMgaW5pdGlhbGl6ZWQ/IFRoYXQgbG9va3MgbGlrZSBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByZWFkLWJlZm9yZS13cml0ZSBidWcuIEkgbmVlZCB0byBiZSAqc3VyZSogdGhhdCdzIG5vdCB0aGUgY2FzZS4gTGV0J3MgZGlnIGRlZXBlciBpbnRvIHRoYXQgc2VjdGlvbiBvZiBgY29yZS5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDU4NjcuXG5cbk9rYXksIGxldCdzIHZlcmlmeSB0aGF0IHF1aWNrbHkgd2l0aCBgcmVhZC1maWxlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzYyMywiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcwOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjIzLjcyNDA5NzAwNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1NTY3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA1ODYwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI1ODYwOlxcdFxcdH1cXG41ODYxOlxcdFxcbjU4NjI6XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcXG41ODYzOlxcdFxcbjU4NjQ6XFx0XFx0aWYgKHBlbmRpbmcgXFx1MDAzZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUilcXG41ODY1OlxcdFxcdFxcdHNjaGVkdWxlX3dvcmsoXFx1MDAyNnByaXYtXFx1MDAzZXJ4X3VyYl93cSk7XFxuNTg2NjpcXHR9XFxuNTg2NzpcXHRcXG41ODY4OlxcdHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG41ODY5OlxcdHtcXG41ODcwOlxcdFxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuNTg3MTpcXHRcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG41ODcyOlxcdFxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG41ODczOlxcdFxcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XFxuNTg3NDpcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbjU4NzU6XFx0XFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG41ODc2OlxcdFxcdGludCByZXQ7XFxuNTg3NzpcXHRcXG41ODc4OlxcdFxcdHByaXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJ0bDh4eHh1X3ByaXYsIHJ4X3VyYl93cSk7XFxuNTg3OTpcXHRcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2bG9jYWwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDoyMy43MjQzNTQ1NDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODIxNzEyMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IENvbXBpbGUgRXJyb3Igb3IgRnVuY3Rpb25hbCBDaGFuZ2U/KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGV4cGVydCBleWUgc3BvdHMgdGhlIHByb2JsZW0uIExpbmUgNTg3MCBpcyB3aGVyZSB0aGUgdHJvdWJsZSBiZWdpbnMuIEl0IGxvb2tzIGxpa2UgYGRldmAgaXMgYmVpbmcgaW5pdGlhbGl6ZWQgdXNpbmcgYHByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgICpiZWZvcmUqIGBwcml2YCBpcyBldmVuIGRlY2xhcmVkIG9uIGxpbmUgNTg3MS4gTXkgZmlyc3QgdGhvdWdodCBpcyBcImNvbXBpbGVyIGVycm9yIVwiIFRoYXQncyBhIGNsYXNzaWMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSwgcmlnaHQ/IEknZCBleHBlY3QgdGhlIGNvbXBpbGVyIHRvIGNob2tlIG9uIHRoYXQsIGFzc3VtaW5nIGl0J3Mgc3RhbmRhcmQgQy4gVGhlIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZCwgdGhvdWdoLCBzbyBpdCdzIGVpdGhlciBub3QgYSBjb21waWxlIGVycm9yIG9yIHRoZSBidWlsZCBpcyBicm9rZW4uXG5cbkJ1dCB3YWl0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBndWlkaW5nIG1lLCBzYXlpbmcgdGhhdCB0aGlzIHNob3VsZG4ndCBiZSB3b3J0aCBmdXp6aW5nIGlmIGl0J3MgZG9jdW1lbnRhdGlvbiBvciBkZWNvcmF0aXZlIGNoYW5nZXMuIEl0IHNlZW1zIGxpa2UgdGhlIHBhdGNoJ3MgKmludGVudCogaXMgdG8gY2hhbmdlIHRoZSBsb2dnaW5nIOKAkyByZXBsYWNpbmcgYFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgIHdpdGggdGhlIGxvY2FsIHZhcmlhYmxlIGBkZXZgIGluIGBkZXZfd2FybmAgY2FsbHMsIHByZXN1bWFibHkgZm9yIHJlYWRhYmlsaXR5LiBBIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZy4gU28gbXkgaW5pdGlhbCBhc3N1bXB0aW9uIGlzIGRlY29yYXRpdmUsIG1lYW5pbmcgdGhlIHdob2xlIHBvaW50IGlzIG5vdCBmdW5jdGlvbmFsLlxuXG5CdXQgaGVyZSdzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIEknbSB0aGlua2luZywgXCJJcyB0aGVyZSBhY3R1YWxseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGhvdyB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQ/XCIgQmVjYXVzZSBpZiB0aGUgY29kZSBjb21waWxlcywgdGhlIHVzYWdlIG9mIHVuaW5pdGlhbGl6ZWQgYHByaXZgIHdpbGwgZGVmaW5pdGVseSBsZWFkIHRvIHVuZGVmaW5lZCBiZWhhdmlvciBhbmQgbGlrZWx5IGEgY3Jhc2gsIG9yIG1lbW9yeSBjb3JydXB0aW9uLiBTaW5jZSB0aGUgcHJvbXB0IHN0YXRlcyB0aGF0IHRoZSBwYXRjaCBoYXMgYmVlbiBhcHBsaWVkLCBJJ20gbm93IHF1ZXN0aW9uaW5nIGhvdyB0aGF0IGNvdWxkIGhhcHBlbiBpZiB0aGUgY29kZSBpcyBpbnZhbGlkLlxuXG5JJ20gdGhpbmtpbmcsIFwiSXMgYHByaXZgIGEgZ2xvYmFsIG9yIHNvbWV0aGluZz9cIiBJJ20gY2hlY2tpbmcgaWYgdGhlIHNjb3BlIG9mIGBwcml2YCBpcyBzb21laG93IG1vcmUgdGhhbiBsb2NhbCB0byB0aGUgY3VycmVudCBmdW5jdGlvbi4gQnV0IG5vLCBpZiBgcHJpdmAgaXMgbG9jYWwsIHRoZW4gYFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgICp3aWxsKiBiZSB1c2luZyBhbiB1bmluaXRpYWxpemVkIHZhbHVlIGFuZCBjYXVzZSBhIGNyYXNoLCBhbmQgdGhhdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEJ1dCwgd2FpdC4uLiBJIGp1c3QgcmVhbGl6ZWQgdGhlIGNvZGUgKmNhbid0KiBjb21waWxlIGJlY2F1c2Ugb2YgdGhlIEMgc2NvcGUgcnVsZXMuIGBwcml2YCBpcyBkZWNsYXJlZCAqYWZ0ZXIqIGl0J3MgdXNlZC4gYHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O2AgaXMgZGVjbGFyZWQgb24gbGluZSA1ODcxIGFuZCBhc3NpZ25lZCBvbiA1ODcwLCBsZWFkaW5nIHRvIHRoZSBjb21waWxlciBlcnJvciBgZXJyb3I6IOKAmHByaXbigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pYC5cblxuU2luY2UgdGhpcyBpcyBhIGNsZWFyIGNvbXBpbGVyIGVycm9yLCBpdCBtZWFucyB0aGUgcGF0Y2ggc2ltcGx5IHdpbGwgbm90IGJ1aWxkIGFuZCB0aGVyZWZvcmUsIGNhbm5vdCBiZSBleGVjdXRlZCwgYW5kIHRoZXJlZm9yZSwgaXMgbm90IHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkwOTcsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MjMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDozMi41NDYwNjk5MDZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc3MTI4ODYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE2NzMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0zNzg9ZW51bSBydGw4MTg4ZV90eF9ycHRfdGltaW5nIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0zODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjM4NDpzdGF0aWMgaW50IHJ0bDgxODhldV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0zODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTQyMz1zdGF0aWMgdm9pZCBydGw4MTg4ZXVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQyNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjQyNTpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy00MjYtXFx0dTMyIHZhbDMyLCByc3I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1MjQ6c3RhdGljIHZvaWQgcnRsODE4OGV1X2luaXRfYWdncmVnYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUyNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1Mzc6c3RhdGljIGludCBydGw4MTg4ZXVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUzOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1NTg6c3RhdGljIHZvaWQgcnRsODE4OGV1X3Jlc2V0XzgwNTEoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTU1OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1NzA6c3RhdGljIGludCBydGw4MTg4ZXVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01ODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjU4MjpzdGF0aWMgdm9pZCBydGw4MTg4ZXVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTU4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo2MDU6c3RhdGljIGludCBydGw4MTg4ZXVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTYwNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo2MTA6c3RhdGljIGludCBydGw4MTg4ZXVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjY0NDpzdGF0aWMgaW50IHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzUxOnN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1Mi1cXHRcXHRcXHRcXHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTkwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTA3OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTk0OnN0YXRpYyB2b2lkIHJ0bDgxODhlX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtOTk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMDAzOnN0YXRpYyBpbnQgcnRsODE4OGVfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTA3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTA3MjpzdGF0aWMgaW50IHJ0bDgxODhldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDczLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMDg5OnN0YXRpYyBpbnQgcnRsODE4OGV1X2VtdV90b19kaXNhYmxlZChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTA5MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTExNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTExODpzdGF0aWMgaW50IHJ0bDgxODhldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMTY2OnN0YXRpYyBpbnQgcnRsODE4OGV1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMTk2OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9wb3dlcl9vZmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTExOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEyNjM6c3RhdGljIHZvaWQgcnRsODE4OGVfZW5hYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMjY0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMjc3OnN0YXRpYyB2b2lkIHJ0bDgxODhlX2Rpc2FibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyNzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEyOTE6c3RhdGljIHZvaWQgcnRsODE4OGVfdXNiX3F1aXJrcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTMwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTMxMDpzdGF0aWMgczggcnRsODE4OGVfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTEzMzU9c3RhdGljIGludCBydGw4MTg4ZXVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMzcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMzM4OlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzM5LVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTQ3Mj1zdGF0aWMgdm9pZCBydGw4MTg4ZV9yYXRlX2RlY2lzaW9uKHN0cnVjdCBydGw4eHh4dV9yYV9pbmZvICpyYSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTQ3My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjE0NzQ6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YocmEsIHN0cnVjdCBydGw4eHh4dV9wcml2LCByYV9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTQ3NS1cXHRjb25zdCB1OCAqcmV0cnlfcGVuYWx0eV9pZHhfMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xNjMwPXN0YXRpYyB2b2lkIHJ0bDgxODhlX3Bvd2VyX3RyYWluaW5nX2RlY2lzaW9uKHN0cnVjdCBydGw4eHh4dV9yYV9pbmZvICpyYSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNjY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNjY4OnZvaWQgcnRsODE4OGVfaGFuZGxlX3JhX3R4X3JlcG9ydDIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTE2Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTE3ODA9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTc4MTpydGw4MTg4ZV91cGRhdGVfcmF0ZV9tYXNrKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzgyLVxcdFxcdFxcdCAgdTMyIHJhbWFzaywgdTggcmF0ZWlkLCBpbnQgc2dpLCBpbnQgdHhid180MG1oeixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNzk0OnN0YXRpYyB2b2lkIHJ0bDgxODhlX3JhX3NldF9yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBtYWNpZCwgdTggcnNzaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTc5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MjUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE4OGZ1X2N1dF9iX3JhZGlvYV9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzozMDg6c3RhdGljIGludCBydGw4MTg4ZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0zNTc9dm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzozNTg6cnRsODE4OGZfc2V0X3R4X3Bvd2VyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBpbnQgY2hhbm5lbCwgYm9vbCBodDQwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0zNTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTM5OS0vKiBBIHdvcmthcm91bmQgdG8gZWxpbWluYXRlIHRoZSAyNDAwTUh6LCAyNDQwTUh6LCAyNDgwTUh6IHNwdXIgb2YgODE4OEYuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjQwMDpzdGF0aWMgdm9pZCBydGw4MTg4Zl9zcHVyX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjaGFubmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy00MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jPTUxND1zdGF0aWMgdm9pZCBydGw4MTg4ZnVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTUxNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjUxNjpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy01MTctXFx0dTMyIHZhbDMyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTY0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NjQ1OnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy02NDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTY3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NjczOnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9pbml0X3N0YXRpc3RpY3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTY3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3MDQ6c3RhdGljIGludCBydGw4MTg4ZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTcwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3Mzk6c3RhdGljIGludCBydGw4MTg4ZnVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjc1MTpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTc1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3Nzg6c3RhdGljIGludCBydGw4MTg4ZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTc3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3OTA6dm9pZCBydGw4MTg4Zl9waHlfbGNfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03OTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTgzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6ODM0OnN0YXRpYyBpbnQgcnRsODE4OGZ1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiAqbG9rX3Jlc3VsdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtODM1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy05MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjkwNzpzdGF0aWMgaW50IHJ0bDgxODhmdV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MzIgbG9rX3Jlc3VsdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtOTA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMDYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMDYyOnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjMtXFx0XFx0XFx0XFx0ICAgICAgaW50IHJlc3VsdFtdWzhdLCBpbnQgdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMjE5OnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMjIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzE5OnN0YXRpYyB2b2lkIHJ0bDgxODhmX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMyMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTMzNDpzdGF0aWMgaW50IHJ0bDgxODhmX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzMzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEzOTQ6c3RhdGljIGludCBydGw4MTg4ZnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTQzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTQzNDpzdGF0aWMgaW50IHJ0bDgxODhmdV9lbXVfdG9fZGlzYWJsZWQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0NTI6c3RhdGljIGludCBydGw4MTg4ZnVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTQ1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTUxNTpzdGF0aWMgaW50IHJ0bDgxODhmdV9wb3dlcl9vbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUxNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTU0MDpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNTgzOnN0YXRpYyB2b2lkIHJ0bDgxODhmX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTU4NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTYyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTYyMjpzdGF0aWMgdm9pZCBydGw4MTg4Zl9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNjM0OnN0YXRpYyB2b2lkIHJ0bDgxODhmX3VzYl9xdWlya3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE2NTE6dm9pZCBydGw4MTg4Zl9zZXRfY3J5c3RhbF9jYXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNyeXN0YWxfY2FwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNjc3OnN0YXRpYyBzOCBydGw4MTg4Zl9jY2tfcnNzaShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgc3RydWN0IHJ0bDg3MjNhdV9waHlfc3RhdHMgKnBoeV9zdGF0cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTY3OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM9MjY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE4OHJ1X3JhZGlvYV8xdF9oaWdocGFfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0zMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjMzOTpzdGF0aWMgaW50IHJ0bDgxOTJjdV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0zNDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTM5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6Mzk3OnN0YXRpYyBpbnQgcnRsODE5MmN1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTM5OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0MTQ6c3RhdGljIGludCBydGw4MTkyY3VfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQxNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0Njc6c3RhdGljIGludCBydGw4MTkyY3VfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQ2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0OTE6c3RhdGljIGludCBydGw4MTkyY3VfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQ5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo1OTY6c3RhdGljIHZvaWQgcnRsODE5MmN1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNTk3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz02NzQ9c3RhdGljIGludCBydGw4MTkyY3VfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY3Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjY3NzpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGNvbnRhaW5lcl9vZihsZWRfY2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNjc4LVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9Mzk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE5MmV1X3JhZGlvYl9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzo0NjU6c3RhdGljIGludCBydGw4MTkyZXVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNDY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz01MTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NTEzOnJ0bDgxOTJlX3NldF90eF9wb3dlcihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgaW50IGNoYW5uZWwsIGJvb2wgaHQ0MClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy01ODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjU4ODpzdGF0aWMgaW50IHJ0bDgxOTJldV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY0MDpzdGF0aWMgaW50IHJ0bDgxOTJldV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTY1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NjUyOnN0YXRpYyB2b2lkIHJ0bDgxOTJldV9pbml0X3BoeV9iYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02NzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY3OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY5MzpzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02OTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTc0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NzQzOnN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTc0NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtODcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzo4NzE6c3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtODcyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy05MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjkyMTpzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy05MjIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNTM6c3RhdGljIHZvaWQgcnRsODE5MmV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1NC1cXHRcXHRcXHRcXHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEyMzk6c3RhdGljIHZvaWQgcnRsODE5MmV1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyNDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzMzItICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEzMzM6c3RhdGljIHZvaWQgcnRsODE5MmVfY3J5c3RhbF9hZmVfYWRqdXN0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzY1OnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTM3NTpzdGF0aWMgaW50IHJ0bDgxOTJlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE0MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE0NDA6c3RhdGljIGludCBydGw4MTkyZXVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQ0MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTQ5OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTAwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNTM4OnN0YXRpYyBpbnQgcnRsODE5MmV1X2VtdV90b19kaXNhYmxlZChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTUzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTU1MTpzdGF0aWMgaW50IHJ0bDgxOTJldV9wb3dlcl9vbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTU5OTpzdGF0aWMgdm9pZCBydGw4MTkyZXVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjAwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNjMzOnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTYzNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTY3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTY3OTpzdGF0aWMgczggcnRsODE5MmVfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2ODAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTE3MDI9c3RhdGljIGludCBydGw4MTkyZXVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MDQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNzA1OlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNzA2LVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE5MmZ1X3JhZGlvYl9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMzkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzozOTI6c3RhdGljIGludCBydGw4MTkyZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMzkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz00MjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6NDI2OnJ0bDgxOTJmX3NldF90eF9wb3dlcihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgaW50IGNoYW5uZWwsIGJvb2wgaHQ0MClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy00OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjQ5MzpzdGF0aWMgdm9pZCBydGw4MTkyZl9yZXZpc2VfY2NrX3R4X3BzZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggY2hhbm5lbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNDk0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy01MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjUxODpzdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2tmcmVlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjaGFubmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy01MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTU4ND1zdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTU4NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjU4NjpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy01ODctXFx0Ym9vbCBodDQwID0gY29uZl9pc19odDQwKFxcdTAwMjZody1cXHUwMDNlY29uZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNjY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo2NjU6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2luaXRfYWdncmVnYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNjgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo2ODI6c3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NDI6c3RhdGljIGludCBydGw4MTkyZnVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzQzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy03NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjc0NzpzdGF0aWMgdm9pZCBydGw4MTkyZnVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NjQ6c3RhdGljIGludCBydGw4MTkyZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NzU6c3RhdGljIHZvaWQgcnRsODE5MmZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzc2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy03OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjgwMDpzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy04MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTg5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6ODkxOnN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTg5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTAyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTAyNDpzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMDI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMTIwOnN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTExMjEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNTg6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI1OS1cXHRcXHRcXHRcXHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE0NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE0NDQ6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE0NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE1OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE1OTQ6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTU5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTYwNTpzdGF0aWMgaW50IHJ0bDgxOTJmdV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNzMxOnN0YXRpYyBpbnQgcnRsODE5MmZ1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3MzIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE3Njg6c3RhdGljIGludCBydGw4MTkyZnVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNzg3OnN0YXRpYyBpbnQgcnRsODE5MmZ1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3ODgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE4MzQ6c3RhdGljIGludCBydGw4MTkyZnVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE4NjA6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg2MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTg4NzpzdGF0aWMgdm9pZCBydGw4MTkyZl9yZXNldF84MDUxKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xODg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxOTAyOnN0YXRpYyB2b2lkIHJ0bDgxOTJmX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTkwMy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTkxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTkxNzpzdGF0aWMgdm9pZCBydGw4MTkyZl9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxOTI5OnN0YXRpYyB2b2lkIHJ0bDgxOTJmX3VzYl9xdWlya3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5NDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE5NDM6c3RhdGljIHZvaWQgcnRsODE5MmZfc2V0X2NyeXN0YWxfY2FwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjcnlzdGFsX2NhcClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk0NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTk3MDpzdGF0aWMgczggcnRsODE5MmZfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5NzEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE5OTg9c3RhdGljIGludCBydGw4MTkyZnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTIwMDAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoyMDAxOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDAyLVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9NDA2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODcxMGJ1X3FmbjQ4bV9zX3JhZGlvYV9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo0NjM6c3RhdGljIHUzMiBydGw4NzEwYl9pbmRpcmVjdF9yZWFkMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy00NjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTQ5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6NDk4OnN0YXRpYyB2b2lkIHJ0bDg3MTBiX2luZGlyZWN0X3dyaXRlMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyLCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy00OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTUyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6NTMwOnN0YXRpYyB1MzIgcnRsODcxMGJfcmVhZF9zeXNvbl9yZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyKVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDozMi44MjMyMTMzMDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDcxNTA4NDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlYnVnZ2luZyBhIFN1c3BlY3QgUG9pbnRlciBSZWZlcmVuY2UqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGBwcml2YCB2YXJpYWJsZeKApml0J3MgYmVpbmcgdXNlZCAqYmVmb3JlKiBpdCdzIGV2ZW4gZGVjbGFyZWQgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCEgVGhhdCdzIGEgY2xhc3NpYyBDIGNvbXBpbGVyIGVycm9yLiBZb3Uga25vdywgdGhlIGtpbmQgdGhhdCBzaG91bGQndmUgYmVlbiBjYXVnaHQgaW5zdGFudGx5LiBgc3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtgIC0tIHRoYXQgYHByaXZgIGlzbid0IGRlZmluZWQgeWV0ISBUaGlzIHNlZW1zIGltcG9zc2libGUuXG5cbkFscmlnaHQsIGxldCdzIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cy4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYHByaXZgIGlzbid0IHNvbWUgZ2xvYmFsbHkgc2NvcGVkIHRoaW5nIHRoYXQncyBhY2NpZGVudGFsbHkgYmVpbmcgdXNlZCBoZXJlLiBJdCdzIGEgcHJldHR5IGNvbW1vbiBsb2NhbCB2YXJpYWJsZSBuYW1lLCBzbyBhIHF1aWNrIHZpc3VhbCBzY2FuIHByb2JhYmx5IHdvbid0IGN1dCBpdC4gTGV0J3Mgc2VlLi4uIG5vdGhpbmcgb2J2aW91c2x5IGdsb2JhbCwgc28gbm93IEknbGwgbG9vayBpbnRvIGBjb3JlLmNgIGFuZCBhbnkgaW5jbHVkZWQgaGVhZGVycywganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIEhvdyBvbiBlYXJ0aCBkaWQgdGhpcyBldmVuIGdldCBjb21taXR0ZWQgaWYgdGhlIGNvbXBpbGVyIHNob3VsZCBiZSB0aHJvd2luZyB1cCBlcnJvcnM/IEknbSBzbWVsbGluZyBzb21ldGhpbmcgZmlzaHkgaGVyZS4uLiBvciBtYXliZSBJJ20ganVzdCB0aXJlZCEgTGV0IG1lIGRvIGEgcHJvcGVyIGNoZWNrIG9mIGFsbCB0aGUgZmlsZXMganVzdCB0byBiZSBjZXJ0YWluLiBJJ3ZlIGdvdCB0byBmaW5kIG91dCB3aGF0J3MgZ29pbmcgb24hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NTM5LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjM3Ljg5NDcyNDg3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTgwODA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdjtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01MTYxLVxcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjUxNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cXHRzdHJ1Y3QgcnRsOHh4eHVfdHhfdXJiICp0eF91cmIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcwLVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTg3MTpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MTIwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MTIxOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjItXFx0c3RydWN0IHJ0bDg3MjNidV9jMmggKmMyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYyNjE9c3RydWN0IHJ0bDh4eHh1X3J4X3VwZGF0ZV9yc3NpX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjYyNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjI2My1cXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzM3MD1zdHJ1Y3QgcnRsOHh4eHVfaXRlcl9zdGFzX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjczNzE6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM3Mi1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03Mzg4PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X3dhdGNoZG9nX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXFx0c3RydWN0IHJ0bDh4eHh1X3N0YXNfZW50cnkgKnN0YV9lbnRyeSwgKnRtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzkzOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzc0OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTc5NjY9c3RhdGljIHZvaWQgcnRsOHh4eHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc5Njg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6MzcuOTQyOTExNjQ5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkyOTg3ODc3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZWJ1Z2dpbmcgYSBQb3RlbnRpYWwgQ29tcGlsZXIgRXJyb3IqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGNvZGUgc25pcHBldCBsb29rcyBzdXNwaWNpb3VzLiBJZiB0aGVyZSdzIG5vIGdsb2JhbCB2YXJpYWJsZSBuYW1lZCBgcHJpdmAsIHRoZW4gdGhhdCBsaW5lLCBgc3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtgIGZvbGxvd2VkIGJ5IGBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtgIGlzIGdvaW5nIHRvIHRocm93IGEgY29tcGlsZXIgZXJyb3IsIHJpZ2h0PyBUaGUgY29tcGlsZXIgc2hvdWxkIGNvbXBsYWluIGJlY2F1c2UgYHByaXZgIGlzbid0IGRlY2xhcmVkIHlldCwgYW5kIEknbSByZWZlcmVuY2luZyBpdC4gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgR0NDIHdvdWxkIGFjdHVhbGx5IGZsYWcgdGhpcy5cblxuWXVwLCBJJ20gcHJldHR5IHN1cmUgR0NDIHdvdWxkIGZsYWcgaXQgYXMgXCJ1bmRlY2xhcmVkLFwiIHNvIHRoaXMgZGVmaW5pdGVseSBpc24ndCBjb3JyZWN0LiBCdXQgd2FpdCwgaXMgaXQgKnBvc3NpYmxlKiB0aGF0IGBwcml2YCBpcyBiZWluZyBkZWZpbmVkIGFzIGEgbWFjcm8gKnNvbWV3aGVyZSo/IEl0J3MgYWx3YXlzIHdvcnRoIGNoZWNraW5nIGZvciB0aG9zZSBzbmVha3kgbWFjcm9zIHRoYXQgY2FuIG1ha2UgY29kZSBoYXJkZXIgdG8gZm9sbG93LCBlc3BlY2lhbGx5IGluIGEgbGFyZ2UgY29kZWJhc2UuIEknZCBiZXR0ZXIgZG91YmxlLWNoZWNrIGZvciB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjE0OCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDo0MS44NzI4MTI1NTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MDU0MzQ4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIjZGVmaW5lIHByaXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjQxLjkxNzg5MjMyM1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MDY3ODQyNDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IENvbXBpbGVyIEVycm9yIG9yIEZ1enphYmxlIENoYW5nZT8qKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGUgcHJvbXB0IGV4cGxpY2l0bHkgc3RhdGVzIHRoZSBjaGFuZ2VzIGFyZSAqYWxyZWFkeSogY29tbWl0dGVkLiBJZiB0aGlzIHdlcmUgYSBzdHJhaWdodGZvcndhcmQgY29tcGlsZXIgZXJyb3IsIGxpa2UgdGhlIGluaXRpYWwgdGhvdWdodCwgaG93IGNvdWxkIGl0IGV2ZW4gYmUgY29tbWl0dGVkIGluIHRoZSBmaXJzdCBwbGFjZT8gQSBwYXRjaCB0aGF0IGJyZWFrcyB0aGUgYnVpbGQgaXMgZXNzZW50aWFsbHkgdXNlbGVzcyBmb3IgZnV6emluZzsgc3l6a2FsbGVyIHdvdWxkbid0IGV2ZW4gYmUgYWJsZSB0byB0b3VjaCBpdC5cblxuQnV0IHRoZSBwcm9tcHQgYWxzbyBkaXJlY3RzIHVzIHRvIGV4YW1pbmUgdGhlIHBhdGNoIGl0c2VsZiBhbmQgKm5vdCogcmVseSBvbiBpbnRlcm5hbCBrbm93bGVkZ2UuIFRoZSBpbnN0cnVjdGlvbnMgc3RhdGUgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjaGFuZ2UgaXMgcHVyZWx5IGRlY29yYXRpdmUsIHN1Y2ggYXMgbG9nZ2luZy4gVGhlIGRlc2NyaXB0aW9uIGltcGxpZXMgdGhhdCB0aGUgKmludGVudGlvbiogd2FzIHRvIGFkZCBsb2dnaW5nLlxuXG5MZXQncyByZXZpc2l0IHRoZSBwYXRjaCBjb2RlIGJsb2NrIHByb3ZpZGVkOlxuXG5gYGBjXG5AQCAtNTg2MCw2ICs1ODY3LDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG4gXHRzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7XG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGxvY2FsO1xuYGBgXG5cbklmIGl0J3MgYSBzdHJhaWdodCBjb21waWxlciBlcnJvciwgaXQgd29uJ3QgY29tcGlsZSwgYW5kIHN5emthbGxlciBjYW4ndCBmdXp6IGl0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gbm90IG1pc3Npbmcgc29tZXRoaW5nIHN1YnRsZS5cblxuT2theSwgbGV0J3MgcGxheSBkZXZpbCdzIGFkdm9jYXRlOiBjb3VsZCB0aGVyZSBiZSBzb21lIHdlaXJkIG1hY3JvIHNoZW5hbmlnYW5zIGdvaW5nIG9uPyBJcyBgcHJpdmAgYSBtZW1iZXIgb2Ygc29tZSBzdHJ1Y3QgYW5kIHdlIGFyZSBpbnNpZGUgYSBtYWNybz8gTm8sIGl0J3MgYSBmdW5jdGlvbi4gTGV0J3MgdGVzdCB0aGlzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gc3VycHJpc2VzIHdpdGggdGhlIGNvbXBpbGVyLlxuXG5JJ2xsIHF1aWNrbHkgd2hpcCB1cCBhIHNpbXBsZSBDIGZpbGUgdG8gdGVzdCBpdCB3aXRoIEdDQzpcblxuYGBgY1xudm9pZCBmb28oKSB7XG4gICAgaW50ICpkZXYgPSBwcml2O1xuICAgIGludCAqcHJpdjtcbn1cbmBgYFxuXG5ZZXAsIHRoYXQncyBkZWZpbml0ZWx5IGEgY29tcGlsZXIgZXJyb3IuIEl0J3MgYSByZWRlZmluaXRpb24uXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBpcyB0aGVyZSAqYW55d2hlcmUqIGVsc2UgYHByaXZgIGlzIGRlY2xhcmVkIGluIHNjb3BlLCBtYXliZSBhIGdsb2JhbCB2YXJpYWJsZSwgcG90ZW50aWFsbHkgZGVmaW5lZCBpbiBhIGhlYWRlciBmaWxlPyBJIG5lZWQgdG8gY2hlY2sgZm9yIGEgZ2xvYmFsIHZhcmlhYmxlIG5hbWVkIGBwcml2YC4gTGV0J3Mgc2VhcmNoIHRoZSBrZXJuZWwgaGVhZGVycy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0OTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6NTAuOTg1NzM3OTM4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDk0MzcyOTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdjtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjUxLjEzNTE4MjYxNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NDYzMTg5MzQ5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBgcHJpdmAqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSdtIHRha2luZyBhIHF1aWNrIHN3ZWVwLCBhbmQgdGhlIGZpcnN0IHRoaW5nIHRoYXQncyBqdW1waW5nIHRvIG1pbmQgaXMgYSBmdW5kYW1lbnRhbCBzYW5pdHkgY2hlY2suIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUncyBhbnkgbHVya2luZyBnbG9iYWwgdmFyaWFibGUgbmFtZWQgYHByaXZgLiBOb3QganVzdCBhIHZhcmlhYmxlLCBidXQgc3BlY2lmaWNhbGx5IGEgKmdsb2JhbCogb25lLiBUaGlzIGlzIGEgaGFiaXR1YWwgZmlyc3Qgc3RlcC4gR2xvYmFscyBhcmUgbm90b3Jpb3VzIGZvciBjYXVzaW5nIHNpZGUgZWZmZWN0cywgdW5pbnRlbmRlZCBkZXBlbmRlbmNpZXMsIGFuZCBnZW5lcmFsbHkgbWFraW5nIGRlYnVnZ2luZyBhIG5pZ2h0bWFyZSwgc28gaXQncyBiZXN0IHRvIHZlcmlmeSB0aGVpciBub24tZXhpc3RlbmNlIG9yIGlmIHByZXNlbnQgaG93IHRoZXkgYmVoYXZlLiBFc3BlY2lhbGx5IHNvbWV0aGluZyBhcyBwb3RlbnRpYWxseSBzZW5zaXRpdmUgYXMgXCJwcml2LFwiIHdoaWNoIHNjcmVhbXMgXCJwcml2aWxlZ2VzXCIgb3IgXCJwcml2YXRlIGRhdGEuXCIgSXQncyBsaWtlbHkgcmVsYXRlZCB0byBzZWN1cml0eSwgYWNjZXNzIGNvbnRyb2wsIG9yIHNvbWUgb3RoZXIgY3JpdGljYWwgY29tcG9uZW50LiBGaW5kaW5nIGEgYHByaXZgIGdsb2JhbCBjb3VsZCBpbW1lZGlhdGVseSB0cmlnZ2VyIGEgZGVlcGVyIGRpdmUgaW50byBpdHMgdXNhZ2UgYW5kIHNjb3BlLiBJJ2Qgd2FudCB0byB1bmRlcnN0YW5kIHdoZXJlIGl0J3MgZGVmaW5lZCwgaG93IGl0J3MgbW9kaWZpZWQsIGFuZCwgbW9zdCBpbXBvcnRhbnRseSwgKndoZXJlKiBpdCdzIGFjY2Vzc2VkLiBFdmVuIGlmIGl0J3MgYmVuaWduIG5vdywgaXQncyBhIHBvdGVudGlhbCB0aW1lIGJvbWIuIEEgY2FyZWxlc3MgZWRpdCBvciBhbiB1bmZvcmVzZWVuIGludGVyYWN0aW9uIGNvdWxkIGxlYWQgdG8gdnVsbmVyYWJpbGl0aWVzLCBwcml2aWxlZ2UgZXNjYWxhdGlvbiwgb3IgZGF0YSBsZWFrYWdlLiBJJ20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZWJhc2Ugbm93IHdpdGggYW4gZXhwZXJ0IGV5ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1MDYsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NTo1NS43NjcwNzkxMTdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDI2NDE4OTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dGVybiBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiBcXFxcKnByaXY7XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTU6NTguNjY5NzMwMjcyWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc0NzU0NDI3MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ29tcGlsZXIgRXJyb3IgRGlhZ25vc2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzOiBjb21waWxlciBlcnJvciwgYnVpbGQgZmFpbHVyZS4gSWYgaXQncyBhIGJ1aWxkIGZhaWx1cmUsIHRoZXJlJ3Mgbm8gcG9pbnQgZnV6emluZyBpdCwgcmlnaHQ/IFlvdSBjYW4ndCBmdXp6IGEga2VybmVsIHRoYXQgZG9lc24ndCBidWlsZC4gQnV0IGhvbGQgb24uLi4gaXMgaXQgcG9zc2libGUgdGhhdCB0aGlzIHBhdGNoIGlzIGp1c3QgYSBsb2dnaW5nIGNoYW5nZSBhbmQgdGhlIGF1dGhvciBzaW1wbHkgbWFkZSBhIHRyaXZpYWwgbWlzdGFrZSB0aGF0J3MgY2F1c2luZyB0aGUgYnVpbGQgdG8gYnJlYWs/IElmIGl0J3MganVzdCBhIGJ1aWxkIGJyZWFrLCB0aGVuIGZ1enppbmcgaXMgc3RpbGwgb2ZmIHRoZSB0YWJsZS4gTGV0J3MgZGlnIGluIGFuZCBzZWUuXG5cbkZpcnN0LCBJIGNoZWNrZWQgYSBmZXcgb3RoZXIgZmlsZXMuIEl0IGxvb2tzIGxpa2UgYHByaXZgIGlzIGJlaW5nIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlc2UgZnVuY3Rpb25zLCBhbmQgYGRldmAgaXMgYmVpbmcgYXNzaWduZWQgcHJvcGVybHkgaW4gYDgxODhlLmNgLCBgODE4OGYuY2AsIGFuZCBgODE5MmUuY2AuIFNvIHRoZSBpc3N1ZSAqbXVzdCogYmUgaW4gYW5vdGhlciBmaWxlLlxuXG5BaC1oYSEgSW4gYGNvcmUuY2AsIEkgc2VlIHRoZSBwcm9ibGVtLiBUaGVyZSdzIGEgc2NvcGUgaXNzdWUuIGBwcml2YCBpcyBkZWNsYXJlZCAqYWZ0ZXIqIHRoZSBkZWNsYXJhdGlvbiBvZiBgZGV2YC4gVGhhdCdzIGEgY29tcGlsZXIgZXJyb3IsIG5vIHF1ZXN0aW9uIGFib3V0IGl0LiBPa2F5LCB0aGF0J3MgZGVmaW5pdGVseSBhIGJ1aWxkIGJyZWFrLiBUaW1lIHRvIGZsYWcgdGhpcyBhbmQgbW92ZSBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc4MzcsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTY6MDYuMTQ1MTc1NDE0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjM0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA1ODY4LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI1ODY4OlxcdHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG41ODY5OlxcdHtcXG41ODcwOlxcdFxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuNTg3MTpcXHRcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG41ODcyOlxcdFxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG41ODczOlxcdFxcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XFxuNTg3NDpcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbjU4NzU6XFx0XFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG41ODc2OlxcdFxcdGludCByZXQ7XFxuNTg3NzpcXHRcXG41ODc4OlxcdFxcdHByaXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJ0bDh4eHh1X3ByaXYsIHJ4X3VyYl93cSk7XFxuNTg3OTpcXHRcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2bG9jYWwpO1xcbjU4ODA6XFx0XFxuNTg4MTpcXHRcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcXG41ODgyOlxcdFxcbjU4ODM6XFx0XFx0bGlzdF9zcGxpY2VfaW5pdChcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3BlbmRpbmdfbGlzdCwgXFx1MDAyNmxvY2FsKTtcXG41ODg0OlxcdFxcdHByaXYtXFx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50ID0gMDtcXG41ODg1OlxcdFxcbjU4ODY6XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcXG41ODg3OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjowNi4xNDU2MTM0MDRaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE4OTk0NTkxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipDb21waWxlciBFcnJvciBMZWFkcyB0byBGdXp6aW5nIEhhbHQqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIHNpdHVhdGlvbi4gSSdtIHN0YXJpbmcgYXQgbGluZSA1ODcwLCBhbmQgYHByaXZgIGlzIGJlaW5nIHVzZWQgKmJlZm9yZSogaXQncyBkZWNsYXJlZCBvbiBsaW5lIDU4NzEuIEFic29sdXRlbHkgYSBjbGFzc2ljIEMgY29tcGlsZXIgZXJyb3IuIE5vIHdheSBhcm91bmQgaXQuIFRoYXQncyBhIHNob3dzdG9wcGVyLiBUaGUga2VybmVsIHdvbid0IGNvbXBpbGUuIElmIGl0IGRvZXNuJ3QgY29tcGlsZSwgdGhlbiBmdXp6aW5nIGlzIGRlYWQgaW4gdGhlIHdhdGVyLlxuXG5IYW5nIG9uIGEgc2Vjb25k4oCmIGlzIHRoZXJlICphbnkqIHNjZW5hcmlvIHdoZXJlIHRoaXMgY291bGQgYmUgdmFsaWQgQz8gUHJvYmFibHkgbm90LCBDIGlzIHByZXR0eSBzdHJpY3QgYWJvdXQgdGhhdC4gWW91IGNhbid0IGp1c3QgdGhyb3cgYW4gaWRlbnRpZmllciBvdXQgdGhlcmUgYmVmb3JlIGl0cyBkZWNsYXJhdGlvbi4gVW5sZXNz4oCmIHdhaXQsIGNvdWxkIGBwcml2YCBiZSBhIGdsb2JhbCB2YXJpYWJsZSBkZWNsYXJlZCBpbiBzb21lIGluY2x1ZGVkIGhlYWRlcj8gTGV0J3Mgbm90IGp1bXAgdG8gY29uY2x1c2lvbnMuIEknbGwgbmVlZCB0byBjb25maXJtIGlmIGl0J3MgZGVmaW5lZCBnbG9iYWxseSBhbnl3aGVyZS5cblxuT2theSwgbGV0J3Mgc2VlIGlmIHRoZXJlIGlzIGEgZ2xvYmFsIHZhcmlhYmxlIG5hbWVkIGBwcml2YCBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCBjb2RlLiBJdCB3b3VsZCBoYXZlIHRvIGJlIGluIHNjb3BlIGhlcmUsIHdoaWNoIG1lYW5zIGl0IHdvdWxkIGhhdmUgdG8gYmUgZGVjbGFyZWQgaW4gYSBoZWFkZXIgZmlsZSBpbmNsdWRlZCBieSBgY29yZS5jYC4gU28sIEkgbmVlZCB0byBjaGVjayBhbGwgdGhlIGhlYWRlcnMgaW5jbHVkZWQgYnkgYGNvcmUuY2AgdG8gc2VlIGlmIGBwcml2YCBpcyBkZWNsYXJlZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg5MzAsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoxMS4zMzU1NjIyNzRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjE5NDA1NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0ZXJuIC4qIHByaXY7XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImluY2x1ZGUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoxMS40NTE3NjQyNFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk2Njc1MDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBEZWNsYXJhdGlvbiBvZiBgcHJpdmAgaW4gYGNvcmUuY2AqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byB2ZXJpZnkgc29tZXRoaW5nIGFib3V0IHRoZSB2YXJpYWJsZSBgcHJpdmAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIGFic29sdXRlbHkgc3VyZSB0aGF0IGBwcml2YCBpcyBkZWNsYXJlZCBhcyBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoaW4gdGhlIGBjb3JlLmNgIGZpbGUuIFRoaXMgaXMgZm91bmRhdGlvbmFsOyB3aXRob3V0IHRoaXMgZGVjbGFyYXRpb24sIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgY29kZSBmdW5jdGlvbnMgaXMgaW1tZWRpYXRlbHkgc3VzcGVjdC4gSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQncyBkZWZpbmVkIGFuZCB3aGF0IGl0cyBzY29wZSBpcy4gSWYgaXQncyAqbm90KiBnbG9iYWxseSBkZWNsYXJlZCBpbiBgY29yZS5jYCwgdGhlbiBJIG5lZWQgdG8gYWRqdXN0IG15IG1lbnRhbCBtb2RlbCBvZiBob3cgZGF0YSBpcyBiZWluZyBzaGFyZWQgb3IgYWNjZXNzZWQuIE1heWJlIGl0J3MgYSBzdGF0aWMgdmFyaWFibGU/IE9yIGRlY2xhcmVkIGluIGEgaGVhZGVyIGFuZCBpbmNsdWRlZD8gRWl0aGVyIHdheSwgSSBuZWVkIHRvIGtub3cgdGhlIHRydWUgc2NvcGUgb2YgdGhpcyB2YXJpYWJsZS4gVGhpcyBpcyBjcml0aWNhbCBmb3IgYW55IHN1YnNlcXVlbnQgYW5hbHlzaXMgSSBpbnRlbmQgdG8gcGVyZm9ybSBvbiB0aGUgY29kZWJhc2UuIEkgYW0gZ29pbmcgdG8gbmVlZCB0byBrbm93LCBwcmVjaXNlbHksIHRoZSBjb250ZXh0IG9mIHRoZSB2YXJpYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk0MjAsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoxNS4zNDg0NDI0NzhaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NjAwODc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdjtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01MTYxLVxcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjUxNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cXHRzdHJ1Y3QgcnRsOHh4eHVfdHhfdXJiICp0eF91cmIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcwLVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTg3MTpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MTIwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MTIxOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjItXFx0c3RydWN0IHJ0bDg3MjNidV9jMmggKmMyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYyNjE9c3RydWN0IHJ0bDh4eHh1X3J4X3VwZGF0ZV9yc3NpX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjYyNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjI2My1cXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzM3MD1zdHJ1Y3QgcnRsOHh4eHVfaXRlcl9zdGFzX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjczNzE6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM3Mi1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03Mzg4PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X3dhdGNoZG9nX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXFx0c3RydWN0IHJ0bDh4eHh1X3N0YXNfZW50cnkgKnN0YV9lbnRyeSwgKnRtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzkzOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzc0OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTc5NjY9c3RhdGljIHZvaWQgcnRsOHh4eHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc5Njg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTY6MTUuMzkzMDQ2OTY2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY1NzY2NzA4NzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uOiBSZWZhY3RvcmluZyB3aXRoIENvbXBpbGVyIEVycm9yKipcblxuT2theSwgc28gSSd2ZSBoaXQgYSBjb21waWxlciBlcnJvciDigJMgbm8gZ2xvYmFsIGBwcml2YC4uLiB3aGljaCBtZWFucyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBidWlsZCBmYWlsdXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiV2VsbCwgYSBjb21waWxlciBlcnJvciBtZWFucyBpdCdzIHVuZnV6emFibGUuXCIgQnV0IGhvbGQgb24sIGxldCdzIHRoaW5rIGNyaXRpY2FsbHkuIFRoZSBpbnN0cnVjdGlvbnMgY2xlYXJseSBzdGF0ZSB0aGF0IHdlIHNob3VsZCBkaXNyZWdhcmQgcGF0Y2hlcyB0aGF0ICpvbmx5KiBjb250YWluIHNwZWNpZmljIHR5cGVzIG9mIGNoYW5nZXMuIEkgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGlzLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGZvciByZWZhY3RvcmluZyBvZiB0aGlzIHR5cGUuXG5cbkxldCdzIGdvIGJhY2sgYW5kIGV2YWx1YXRlIGlmIHRoaXMgcXVhbGlmaWVzIGZvciBhIGRpc3JlZ2FyZC4gVGhlIGRlc2NyaXB0aW9uIHNheXMgdG8gaWdub3JlIHBhdGNoZXMgdGhhdCBhcmUgb25seSBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb2RlIGNvbW1lbnRzLCBvciBsb2dnaW5nLCBzdWNoIGFzIGBwcl9lcnJgIG9yIGBwcmludGtgLiBUaGlzICpsb29rcyogbGlrZSBhIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZeKAlGxvZ2dpbmcgcmVmYWN0b3JpbmfigJRhbmQgdGhlIHR5cG8gdGhhdCdzIGNhdXNpbmcgdGhlIGJ1aWxkIHRvIGZhaWwgZG9lc24ndCBtYWtlIGl0IGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSB0aGF0IHdhcnJhbnRzIGZ1enppbmcuIEl0IGp1c3QgaW5kaWNhdGVzIGEgYnJva2VuIHBhdGNoLCBpdCB3aWxsIGJlIHJlamVjdGVkLlxuXG5XYWl0IGEgbWludXRlLCBjb3VsZCBgcHJpdmAgYmUgYSBtYWNybyBkZWZpbmVkIHNvbWV3aGVyZT8gSSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJIGFscmVhZHkgY2hlY2tlZCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvYCBhcmVhLiBJIGFsc28gbG9va2VkIGluIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSBmb3IgbWFjcm8gZGVmaW5pdGlvbnMuIEl0IHNlZW1zIGxpa2UgaXQncyBhIGRlYWQgZW5kLiBPa2F5LCB0aGF0J3MgZW5vdWdoIGludmVzdGlnYXRpb24sIEkgd2lsbCBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODA4LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU2OjIxLjk2OTcyMDkyNFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0ODExNTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIiNkZWZpbmUgcHJpdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbmNsdWRlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaD0xOTIxPXZvaWQgaGNpX2Nvbm5fZGVsX3N5c2ZzKHN0cnVjdCBoY2lfY29ubiAqY29ubik7XFxuLS1cXG5pbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaC0xOTk1LVxcbmluY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oOjE5OTY6I2RlZmluZSBwcml2YWN5X21vZGVfY2FwYWJsZShkZXYpIChsbF9wcml2YWN5X2NhcGFibGUoZGV2KSBcXHUwMDI2XFx1MDAyNiBcXFxcXFxuaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmgtMTk5Ny1cXHRcXHRcXHRcXHQgICAoKGRldiktXFx1MDAzZWNvbW1hbmRzWzM5XSBcXHUwMDI2IDB4MDQpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoyMi4wOTQ1NDM4OFoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDI2ODcyODUyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQYXRjaCBBbmFseXNpczogV29ydGhGdXp6aW5nPWZhbHNlKipcblxuT2theSwgc28gaW5pdGlhbGx5IEkgc2F3IGEgY29tcGlsZXIgZXJyb3IgYW5kIGltbWVkaWF0ZWx5IHRob3VnaHQgXCJubywgbm90IHdvcnRoIGZ1enppbmcuXCIgQSBjb21waWxlciBlcnJvciBhdXRvbWF0aWNhbGx5IGRpc3F1YWxpZmllcyBpdC4gVGhlIHBhdGNoJ3MgcHJpbWFyeSBpbnRlbnQgYXBwZWFycyB0byBiZSBwdXJlbHkgY29zbWV0aWM6IGxvZ2dpbmcgcmVmYWN0b3JpbmcuIEJ1dCBsZXQncyBiZSB0aG9yb3VnaCwgbm8gcG9pbnQgbWFraW5nIGFuIGFzc3VtcHRpb24uXG5cbk5vdywgSSd2ZSBjaGVja2VkIGFsbCBvZiB0aGUgY2hhbmdlZCBmaWxlcyAoYDgxODhlLmNgLCBgODE4OGYuY2AsIGA4MTkyZS5jYCwgYDgxOTJmLmNgLCBgODcyM2EuY2AsIGA4NzIzYi5jYCwgYW5kIGBjb3JlLmNgKS4gSXQncyB0aGUgc2FtZSBwYXR0ZXJuIGFjcm9zcyBhbGwgb2YgdGhlbS4gRWFjaCBmdW5jdGlvbiBpbiB0aGlzIHBhdGNoIGlzIHJlZmFjdG9yaW5nIGhvdyBgZGV2X3dhcm5gIGlzIGNhbGxlZC4gSXQncyBzaW1wbHkgcmVwbGFjaW5nIGBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2YCB3aXRoIGEgbG9jYWwgYGRldmAgdmFyaWFibGUsIGludHJvZHVjZWQgZm9yIHRoZSBjYWxsLiBQdXJlbHkgZGVjb3JhdGl2ZS4gTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCBubyBsb2dpYyBhbHRlcmF0aW9uLCBub3RoaW5nIHRoYXQgd291bGQgaW1wYWN0IGV4ZWN1dGlvbi5cblxuSSBkaWQgYSBzZWNvbmQgcmV2aWV3IG9mIHRoZSBkaWZmIGp1c3QgdG8gbWFrZSBzdXJlIEkgd2Fzbid0IG1pc3NpbmcgYW55dGhpbmcgc3VidGxlLCBhbmQgdGhlIGNvbmNsdXNpb24gaXMgdGhlIHNhbWUuIFRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpcyB0aGUgb25seSBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGl0IGludHJvZHVjZXMgYSBjb21waWxlciBlcnJvci4gVGhpcyBjb2RlIGNhbid0IGJlIGV4ZWN1dGVkIGJlY2F1c2Ugb2YgdGhlIGNvbXBpbGVyIGVycm9yIGFuZCB0aGUgcGF0Y2ggd29uJ3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZSBzeXN0ZW0uXG5cblRoZXJlZm9yZSwgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBwYXRjaCdzIG9ubHkgZWZmZWN0cyBhcmUgYWVzdGhldGljIGltcHJvdmVtZW50cyAob3IgaW4gdGhlIGNhc2Ugb2YgYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCwgYnJlYWthZ2UpLiBJJ2xsIG1hcmsgaXQgYXMgc3VjaCBhbmQgbW92ZSBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE2NjgsIk91dHB1dFRva2VucyI6MTE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjozMi4zNjMyNzU0NTFaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzcwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHNwZWNpZmljYWxseSByZWZhY3RvcmluZyBsb2dnaW5nIGNhbGxzIHRvIHVzZSBhIGxvY2FsIGBkZXZgIHZhcmlhYmxlIGluc3RlYWQgb2YgYFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXZgIGluIGBkZXZfd2FybmAuIEl0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IgYnkgdXNpbmcgdGhlIGBwcml2YCB2YXJpYWJsZSBiZWZvcmUgaXQgaXMgZGVjbGFyZWQsIHNvIHRoZSBjb2RlIGNhbm5vdCBldmVuIGJlIGNvbXBpbGVkIG9yIGV4ZWN1dGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBjb250YWlucyBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzcGVjaWZpY2FsbHkgcmVmYWN0b3JpbmcgbG9nZ2luZyBjYWxscyB0byB1c2UgYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2YCBpbiBgZGV2X3dhcm5gLiBJdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaW50cm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIGJ5IHVzaW5nIHRoZSBgcHJpdmAgdmFyaWFibGUgYmVmb3JlIGl0IGlzIGRlY2xhcmVkLCBzbyB0aGUgY29kZSBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCBvciBleGVjdXRlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU2OjMyLjM2MzMwNzMwMVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcw6tx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-17 05:38:18 +0000 UTC FinishedAt: 2026-08-17 05:56:34 +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+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBjb250YWlucyBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzcGVjaWZpY2FsbHkgcmVmYWN0b3JpbmcgbG9nZ2luZyBjYWxscyB0byB1c2UgYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2YCBpbiBgZGV2X3dhcm5gLiBJdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaW50cm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIGJ5IHVzaW5nIHRoZSBgcHJpdmAgdmFyaWFibGUgYmVmb3JlIGl0IGlzIGRlY2xhcmVkLCBzbyB0aGUgY29kZSBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCBvciBleGVjdXRlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjMzY4MTIxOTkyYTQ3Y2YyYTllY2JkZTVhM2U1YTAwMzE5Njk0NWI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTcgMDU6NTQ6MTMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXG5pbmRleCBmZWE1YWVjOWNlZDk5Li40YTY0NjMzYjJkYTNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmNcbkBAIC02NDMsNiAmIzQzOzY0Myw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTc0MCw3ICYjNDM7NzQxLDcgQEAgc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYWMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMjtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbmluZGV4IDU1NTZhYWQxYTdhZDMuLjY4NjA5Y2UzN2FiMDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuY1xuQEAgLTc4OSw2ICYjNDM7Nzg5LDcgQEAgc3RhdGljIGludCBydGw4MTg4ZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gdm9pZCBydGw4MTg4Zl9waHlfbGNfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHZhbDMyO1xuIFx0dTMyIHJmX2Ftb2RlLCBsc3RmO1xuIFx0aW50IGk7XG5AQCAtODE5LDcgJiM0Mzs4MjAsNyBAQCB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoaSA9PSAxMDApXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0O0xDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cXG5cJiMzNDspO1xuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDtMQyBjYWxpYnJhdGlvbiB0aW1lZCBvdXQuXFxuXCYjMzQ7KTtcbiBcbiBcdHJ0bDh4eHh1X3dyaXRlX3JmcmVnKHByaXYsIFJGX0EsIFJGNjA1Ml9SRUdfTU9ERV9BRywgcmZfYW1vZGUpO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuY1xuaW5kZXggNjkwYWNlMzAzMTUwMy4uODM4NWFkYTUzMmIzNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jXG5AQCAtNzQyLDYgJiM0Mzs3NDIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhNCwgcmVnX2VhYywgcmVnX2U5NCwgcmVnX2U5YywgdmFsMzI7XG4gXHRpbnQgcmVzdWx0ID0gMDtcbiBcbkBAIC04NjAsNyAmIzQzOzg2MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKChyZWdfZWFjIFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBcbiBvdXQ6XG5AQCAtODY5LDYgJiM0Mzs4NzAsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYztcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTkxMCw3ICYjNDM7OTEyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYmMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDA0MjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMTtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC05MTgsNiAmIzQzOzkyMCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTEwNDAsNyAmIzQzOzEwNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxuXCYjMzQ7LFxuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxuXCYjMzQ7LFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXG4gb3V0OlxuQEAgLTE0OTUsNiAmIzQzOzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1OCB2YWw4O1xuIFx0aW50IGNvdW50LCByZXQgPSAwO1xuIFxuQEAgLTE1MjEsNyAmIzQzOzE1MjUsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0fVxuIFxuIFx0aWYgKCFjb3VudCkge1xuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFx0XHRyZXQgPSAtRUJVU1k7XG4gXHRcdGdvdG8gZXhpdDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmNcbmluZGV4IDVmMDc2ZGE0YjU1MDYuLjBiOGMwNjgyMTVkNzAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xuQEAgLTY4MSw2ICYjNDM7NjgxLDcgQEAgc3RhdGljIHZvaWQgcnRsODE5MmZ1X2luaXRfYWdncmVnYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRzdHJ1Y3QgcnRsODE5MmZ1X2VmdXNlICplZnVzZSA9IFx1MDAyNnByaXYtXHUwMDNlZWZ1c2Vfd2lmaS5lZnVzZTgxOTJmdTtcbiBcdGludCBpO1xuIFxuQEAgLTczMSw3ICYjNDM7NzMyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHRwcml2LVx1MDAzZXJmZV90eXBlID0gZWZ1c2UtXHUwMDNlcmZlX29wdGlvbiBcdTAwMjYgMHgxZjtcbiBcbiBcdGlmIChwcml2LVx1MDAzZXJmZV90eXBlICE9IDUgXHUwMDI2XHUwMDI2IHByaXYtXHUwMDNlcmZlX3R5cGUgIT0gMSlcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdGRldl93YXJuKGRldixcbiBcdFx0XHQgXCYjMzQ7JXM6IFJGRSB0eXBlICVkIHdhcyBub3QgdGVzdGVkLiBQbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcgYWJvdXQgdGhpcy5cXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fLCBwcml2LVx1MDAzZXJmZV90eXBlKTtcbiBcbkBAIC0xMDIyLDYgJiM0MzsxMDIzLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHZhbDMyO1xuIFx0dTMyIHJmXzB4NThfaSwgcmZfMHg1OF9xO1xuIFx0dTggcmZlID0gcHJpdi1cdTAwM2VyZmVfdHlwZTtcbkBAIC0xMTA5LDcgJiM0MzsxMTExLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYmMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDA0MjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMTtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC0xMTE3LDYgJiM0MzsxMTE5LDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHJlZ19lYzQsIHJlZ19lY2MsIHZhbDMyO1xuIFx0aW50IHJlc3VsdCA9IDA7XG4gXHRpbnQga3RpbWU7XG5AQCAtMTI0Niw3ICYjNDM7MTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKChyZWdfZWNjIFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBcbiBcdHJldHVybiByZXN1bHQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jXG5pbmRleCAxOGUwMzhiODJmNDkwLi4zNTI1ZWNmMDdiNDgyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmNcbkBAIC00MTMsNiAmIzQzOzQxMyw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1OCB2YWw4O1xuIFx0aW50IGNvdW50LCByZXQgPSAwO1xuIFxuQEAgLTQzOSw3ICYjNDM7NDQwLDcgQEAgc3RhdGljIGludCBydGw4NzIzYXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxuXCYjMzQ7LFxuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBcdFx0cmV0ID0gLUVCVVNZO1xuIFx0XHRnb3RvIGV4aXQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXG5pbmRleCBlMzE0ZWY5OTFiMzg4Li41YzA3N2IxMzcyZWVkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmNcbkBAIC0xMjI1LDYgJiM0MzsxMjI1LDcgQEAgc3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHR1MTYgdmFsMTY7XG4gXHR1MzIgdmFsMzI7XG5AQCAtMTI1Niw3ICYjNDM7MTI1Nyw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2J1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoIWNvdW50KSB7XG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxuXCYjMzQ7LFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbmluZGV4IDY0NmZlNzZiMDg2ZTcuLjhlNzgxMzRhODEzMTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbkBAIC0yMTg3LDYgJiM0MzsyMTg3LDcgQEAgdm9pZCBydGw4eHh4dV9maXJtd2FyZV9zZWxmX3Jlc2V0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHN0YXRpYyBpbnRcbiBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZWc4dmFsICphcnJheSA9IHByaXYtXHUwMDNlZm9wcy1cdTAwM2VtYWN0YWJsZTtcbiBcdGludCBpLCByZXQ7XG4gXHR1MTYgcmVnO1xuQEAgLTIyMDEsNyAmIzQzOzIyMDIsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBcdFx0cmV0ID0gcnRsOHh4eHVfd3JpdGU4KHByaXYsIHJlZywgdmFsKTtcbiBcdFx0aWYgKHJldCAhPSAxKSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwmIzM0O0ZhaWxlZCB0byBpbml0aWFsaXplIE1BQyBcJiMzNDtcbiBcdFx0XHRcdCBcJiMzNDsocmVnOiAlMDR4LCB2YWwgJTAyeClcXG5cJiMzNDssIHJlZywgdmFsKTtcbiBcdFx0XHRyZXR1cm4gLUVBR0FJTjtcbkBAIC0yMjI5LDYgJiM0MzsyMjMwLDcgQEAgcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0ICAgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JlZzMydmFsICphcnJheSlcbiB7XG4mIzQzO1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdGludCBpLCByZXQ7XG4gXHR1MTYgcmVnO1xuIFx0dTMyIHZhbDtcbkBAIC0yMjQyLDcgJiM0MzsyMjQ0LDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gXHRcdHJldCA9IHJ0bDh4eHh1X3dyaXRlMzIocHJpdiwgcmVnLCB2YWwpO1xuIFx0XHRpZiAocmV0ICE9IHNpemVvZih2YWwpKSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwmIzM0O0ZhaWxlZCB0byBpbml0aWFsaXplIFBIWVxcblwmIzM0Oyk7XG4gXHRcdFx0cmV0dXJuIC1FQUdBSU47XG4gXHRcdH1cbkBAIC0yMzg3LDYgJiM0MzsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0XHQgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JmcmVndmFsICphcnJheSxcbiBcdFx0XHRcdCBlbnVtIHJ0bDh4eHh1X3JmcGF0aCBwYXRoKVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0aW50IGksIHJldDtcbiBcdHU4IHJlZztcbiBcdHUzMiB2YWw7XG5AQCAtMjQyMSw3ICYjNDM7MjQyNCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaW5pdF9yZl9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIFx0XHRyZXQgPSBydGw4eHh4dV93cml0ZV9yZnJlZyhwcml2LCBwYXRoLCByZWcsIHZhbCk7XG4gXHRcdGlmIChyZXQpIHtcbi1cdFx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0XHQgXCYjMzQ7RmFpbGVkIHRvIGluaXRpYWxpemUgUkZcXG5cJiMzNDspO1xuIFx0XHRcdHJldHVybiAtRUFHQUlOO1xuIFx0XHR9XG5AQCAtMjU1OCw2ICYjNDM7MjU2MSw3IEBAIGludCBydGw4eHh4dV9pbml0X2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgdmFsMzI7XG4gXHRpbnQgcmV0ID0gMDtcbiBcdGludCBpO1xuQEAgLTI1NzUsNyAmIzQzOzI1NzksNyBAQCBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gXHRpZiAoIWkpIHtcbiBcdFx0cmV0ID0gLUVCVVNZO1xuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cJiMzNDspO1xuJiM0MztcdFx0ZGV2X3dhcm4oZGV2LCBcJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cJiMzNDspO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHJldDtcbkBAIC0zMDg5LDYgJiM0MzszMDkzLDcgQEAgdm9pZCBydGw4eHh4dV9tYWNfY2FsaWJyYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHJlZ19lYTQsIHZhbDMyO1xuIFx0aW50IHJlc3VsdCA9IDA7XG4gXG5AQCAtMzEzOCw3ICYjNDM7MzE0Myw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdCAgICAoKHJlZ19lYWMgXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKVxuIFx0XHRyZXN1bHQgfD0gMHgwMjtcbiBcdGVsc2Vcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiYjNDM7XHRcdGRldl93YXJuKGRldiwgXCYjMzQ7JXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcblwmIzM0OyxcbiBcdFx0XHQgX19mdW5jX18pO1xuIG91dDpcbiBcdHJldHVybiByZXN1bHQ7XG5AQCAtMzE0Niw2ICYjNDM7MzE1MSw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuJiM0MztcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYztcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTMxNzQsNyAmIzQzOzMxODAsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKCgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgXHUwMDNlXHUwMDNlIDE2KSAhPSAweDM2KSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4mIzQzO1x0XHRkZXZfd2FybihkZXYsIFwmIzM0OyVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cJiMzNDssXG4gXHRcdFx0IF9fZnVuY19fKTtcbiBvdXQ6XG4gXHRyZXR1cm4gcmVzdWx0O1xuQEAgLTM2MzgsNiAmIzQzOzM2NDQsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9zZXRfYW1wZHVfbWluX3NwYWNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBkZW5zaXR5KVxuIFxuIGludCBydGw4eHh4dV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTggdmFsODtcbiBcdHU4IHZhbDMyO1xuIFx0aW50IGNvdW50LCByZXQgPSAwO1xuQEAgLTM2NTUsNyAmIzQzOzM2NjIsNyBAQCBpbnQgcnRsOHh4eHVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdGRldl93YXJuKGRldixcbiBcdFx0XHQgXCYjMzQ7JXM6IFJYIHBvbGwgdGltZWQgb3V0ICgweDA1ZjgpXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuQEAgLTU4NjAsNiAmIzQzOzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIHtcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG4gXHRzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7XG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGxvY2FsO1xuQEAgLTU4OTMsNyAmIzQzOzU5MDEsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRcdFx0cnRsOHh4eHVfcXVldWVfcnhfdXJiKHByaXYsIHJ4X3VyYik7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdGRlZmF1bHQ6XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbiYjNDM7XHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwmIzM0O2ZhaWxlZCB0byByZXF1ZXVlIHVyYiB3aXRoIGVycm9yICVpXFxuXCYjMzQ7LCByZXQpO1xuIFx0XHRcdHNrYiA9IChzdHJ1Y3Qgc2tfYnVmZiAqKXJ4X3VyYi1cdTAwM2V1cmIuY29udGV4dDtcbiBcdFx0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29udGFpbnMgcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3BlY2lmaWNhbGx5IHJlZmFjdG9yaW5nIGxvZ2dpbmcgY2FsbHMgdG8gdXNlIGEgbG9jYWwgYGRldmAgdmFyaWFibGUgaW5zdGVhZCBvZiBgXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldmAgaW4gYGRldl93YXJuYC4gSXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZSBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgIGludHJvZHVjZXMgYSBjb21waWxlciBlcnJvciBieSB1c2luZyB0aGUgYHByaXZgIHZhcmlhYmxlIGJlZm9yZSBpdCBpcyBkZWNsYXJlZCwgc28gdGhlIGNvZGUgY2Fubm90IGV2ZW4gYmUgY29tcGlsZWQgb3IgZXhlY3V0ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYzM2ODEyMTk5MmE0N2NmMmE5ZWNiZGU1YTNlNWEwMDMxOTY5NDViNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDE3IDA1OjU0OjEzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jCmluZGV4IGZlYTVhZWM5Y2VkOTkuLjRhNjQ2MzNiMmRhM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMKQEAgLTY0Myw2ICYjNDM7NjQzLDcgQEAgc3RhdGljIGludCBydGw4MTg4ZXVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYTQsIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHZhbDMyOwogCWludCByZXN1bHQgPSAwOwogCkBAIC03NDAsNyAmIzQzOzc0MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VhYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIG91dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYwppbmRleCA1NTU2YWFkMWE3YWQzLi42ODYwOWNlMzdhYjA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jCkBAIC03ODksNiAmIzQzOzc4OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGZ1X2luaXRfcGh5X3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiB2YWwzMjsKIAl1MzIgcmZfYW1vZGUsIGxzdGY7CiAJaW50IGk7CkBAIC04MTksNyAmIzQzOzgyMCw3IEBAIHZvaWQgcnRsODE4OGZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAl9CiAKIAlpZiAoaSA9PSAxMDApCi0JCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LCAmIzM0O0xDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cbiYjMzQ7KTsKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDtMQyBjYWxpYnJhdGlvbiB0aW1lZCBvdXQuXG4mIzM0Oyk7CiAKIAlydGw4eHh4dV93cml0ZV9yZnJlZyhwcml2LCBSRl9BLCBSRjYwNTJfUkVHX01PREVfQUcsIHJmX2Ftb2RlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jCmluZGV4IDY5MGFjZTMwMzE1MDMuLjgzODVhZGE1MzJiMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMKQEAgLTc0Miw2ICYjNDM7NzQyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYTQsIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHZhbDMyOwogCWludCByZXN1bHQgPSAwOwogCkBAIC04NjAsNyAmIzQzOzg2MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VhYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBBIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIG91dDoKQEAgLTg2OSw2ICYjNDM7ODcwLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmM7CiAJaW50IHJlc3VsdCA9IDA7CiAKQEAgLTkxMCw3ICYjNDM7OTEyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAkgICAgKChyZWdfZWJjICZhbXA7IDB4MDNmZjAwMDApICE9IDB4MDA0MjAwMDApKQogCQlyZXN1bHQgfD0gMHgwMTsKIAllbHNlCi0JCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LCAmIzM0OyVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcbiYjMzQ7LAogCQkJIF9fZnVuY19fKTsKIAogCXJldHVybiByZXN1bHQ7CkBAIC05MTgsNiAmIzQzOzkyMCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMTA0MCw3ICYjNDM7MTA0Myw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VjYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIG91dDoKQEAgLTE0OTUsNiAmIzQzOzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAl1OCB2YWw4OwogCWludCBjb3VudCwgcmV0ID0gMDsKIApAQCAtMTUyMSw3ICYjNDM7MTUyNSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJfQogCiAJaWYgKCFjb3VudCkgewotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gZXhpdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYwppbmRleCA1ZjA3NmRhNGI1NTA2Li4wYjhjMDY4MjE1ZDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jCkBAIC02ODEsNiAmIzQzOzY4MSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJc3RydWN0IHJ0bDgxOTJmdV9lZnVzZSAqZWZ1c2UgPSAmYW1wO3ByaXYtJmd0O2VmdXNlX3dpZmkuZWZ1c2U4MTkyZnU7CiAJaW50IGk7CiAKQEAgLTczMSw3ICYjNDM7NzMyLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJcHJpdi0mZ3Q7cmZlX3R5cGUgPSBlZnVzZS0mZ3Q7cmZlX29wdGlvbiAmYW1wOyAweDFmOwogCiAJaWYgKHByaXYtJmd0O3JmZV90eXBlICE9IDUgJmFtcDsmYW1wOyBwcml2LSZndDtyZmVfdHlwZSAhPSAxKQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwKJiM0MzsJCWRldl93YXJuKGRldiwKIAkJCSAmIzM0OyVzOiBSRkUgdHlwZSAlZCB3YXMgbm90IHRlc3RlZC4gUGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gbGludXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnIGFib3V0IHRoaXMuXG4mIzM0OywKIAkJCSBfX2Z1bmNfXywgcHJpdi0mZ3Q7cmZlX3R5cGUpOwogCkBAIC0xMDIyLDYgJiM0MzsxMDIzLDcgQEAgc3RhdGljIGludCBydGw4MTkyZnVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJdTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHZhbDMyOwogCXUzMiByZl8weDU4X2ksIHJmXzB4NThfcTsKIAl1OCByZmUgPSBwcml2LSZndDtyZmVfdHlwZTsKQEAgLTExMDksNyAmIzQzOzExMTEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCSAgICAoKHJlZ19lYmMgJmFtcDsgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpCiAJCXJlc3VsdCB8PSAweDAxOwogCWVsc2UKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsICYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxuJiMzNDssCiYjNDM7CQlkZXZfd2FybihkZXYsICYjMzQ7JXM6IFBhdGggQiBJUUsgZmFpbGVkIVxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTExMTcsNiAmIzQzOzExMTksNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAl1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYywgdmFsMzI7CiAJaW50IHJlc3VsdCA9IDA7CiAJaW50IGt0aW1lOwpAQCAtMTI0Niw3ICYjNDM7MTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJICAgICgocmVnX2VjYyAmYW1wOyAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSkKIAkJcmVzdWx0IHw9IDB4MDI7CiAJZWxzZQotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXG4mIzM0OywKIAkJCSBfX2Z1bmNfXyk7CiAKIAlyZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jCmluZGV4IDE4ZTAzOGI4MmY0OTAuLjM1MjVlY2YwN2I0ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMKQEAgLTQxMyw2ICYjNDM7NDEzLDcgQEAgc3RhdGljIGludCBydGw4NzIzYXVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXU4IHZhbDg7CiAJaW50IGNvdW50LCByZXQgPSAwOwogCkBAIC00MzksNyAmIzQzOzQ0MCw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAJfQogCiAJaWYgKCFjb3VudCkgewotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gZXhpdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYwppbmRleCBlMzE0ZWY5OTFiMzg4Li41YzA3N2IxMzcyZWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jCkBAIC0xMjI1LDYgJiM0MzsxMjI1LDcgQEAgc3RhdGljIHZvaWQgcnRsODcyM2J1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgcnRsODcyM2J1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXU4IHZhbDg7CiAJdTE2IHZhbDE2OwogCXUzMiB2YWwzMjsKQEAgLTEyNTYsNyAmIzQzOzEyNTcsNyBAQCBzdGF0aWMgaW50IHJ0bDg3MjNidV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCX0KIAogCWlmICghY291bnQpIHsKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsICYjMzQ7JXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XG4mIzM0OywKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDslczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcbiYjMzQ7LAogCQkJIF9fZnVuY19fKTsKIAkJcmV0ID0gLUVCVVNZOwogCQlnb3RvIGV4aXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jCmluZGV4IDY0NmZlNzZiMDg2ZTcuLjhlNzgxMzRhODEzMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jCkBAIC0yMTg3LDYgJiM0MzsyMTg3LDcgQEAgdm9pZCBydGw4eHh4dV9maXJtd2FyZV9zZWxmX3Jlc2V0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogc3RhdGljIGludAogcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCWNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZWc4dmFsICphcnJheSA9IHByaXYtJmd0O2ZvcHMtJmd0O21hY3RhYmxlOwogCWludCBpLCByZXQ7CiAJdTE2IHJlZzsKQEAgLTIyMDEsNyAmIzQzOzIyMDIsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogCQlyZXQgPSBydGw4eHh4dV93cml0ZTgocHJpdiwgcmVnLCB2YWwpOwogCQlpZiAocmV0ICE9IDEpIHsKLQkJCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LAomIzQzOwkJCWRldl93YXJuKGRldiwKIAkJCQkgJiMzNDtGYWlsZWQgdG8gaW5pdGlhbGl6ZSBNQUMgJiMzNDsKIAkJCQkgJiMzNDsocmVnOiAlMDR4LCB2YWwgJTAyeClcbiYjMzQ7LCByZWcsIHZhbCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKQEAgLTIyMjksNiAmIzQzOzIyMzAsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIGludCBydGw4eHh4dV9pbml0X3BoeV9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LAogCQkJICAgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JlZzMydmFsICphcnJheSkKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJaW50IGksIHJldDsKIAl1MTYgcmVnOwogCXUzMiB2YWw7CkBAIC0yMjQyLDcgJiM0MzsyMjQ0LDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAKIAkJcmV0ID0gcnRsOHh4eHVfd3JpdGUzMihwcml2LCByZWcsIHZhbCk7CiAJCWlmIChyZXQgIT0gc2l6ZW9mKHZhbCkpIHsKLQkJCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LAomIzQzOwkJCWRldl93YXJuKGRldiwKIAkJCQkgJiMzNDtGYWlsZWQgdG8gaW5pdGlhbGl6ZSBQSFlcbiYjMzQ7KTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CkBAIC0yMzg3LDYgJiM0MzsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAJCQkJIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCAqYXJyYXksCiAJCQkJIGVudW0gcnRsOHh4eHVfcmZwYXRoIHBhdGgpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCWludCBpLCByZXQ7CiAJdTggcmVnOwogCXUzMiB2YWw7CkBAIC0yNDIxLDcgJiM0MzsyNDI0LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAKIAkJcmV0ID0gcnRsOHh4eHVfd3JpdGVfcmZyZWcocHJpdiwgcGF0aCwgcmVnLCB2YWwpOwogCQlpZiAocmV0KSB7Ci0JCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwKJiM0MzsJCQlkZXZfd2FybihkZXYsCiAJCQkJICYjMzQ7RmFpbGVkIHRvIGluaXRpYWxpemUgUkZcbiYjMzQ7KTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CkBAIC0yNTU4LDYgJiM0MzsyNTYxLDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCiBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiB2YWwzMjsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgaTsKQEAgLTI1NzUsNyAmIzQzOzI1NzksNyBAQCBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiAKIAlpZiAoIWkpIHsKIAkJcmV0ID0gLUVCVVNZOwotCQlkZXZfd2FybigmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldiwgJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcbiYjMzQ7KTsKJiM0MzsJCWRldl93YXJuKGRldiwgJiMzNDtMTFQgdGFibGUgaW5pdCBmYWlsZWRcbiYjMzQ7KTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtMzA4OSw2ICYjNDM7MzA5Myw3IEBAIHZvaWQgcnRsOHh4eHVfbWFjX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LAogCiBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXUzMiByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCByZWdfZWE0LCB2YWwzMjsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMzEzOCw3ICYjNDM7MzE0Myw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAkgICAgKChyZWdfZWFjICZhbXA7IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKQogCQlyZXN1bHQgfD0gMHgwMjsKIAllbHNlCi0JCWRldl93YXJuKCZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2LCAmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcbiYjMzQ7LAomIzQzOwkJZGV2X3dhcm4oZGV2LCAmIzM0OyVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcbiYjMzQ7LAogCQkJIF9fZnVuY19fKTsKIG91dDoKIAlyZXR1cm4gcmVzdWx0OwpAQCAtMzE0Niw2ICYjNDM7MzE1MSw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAogc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAl1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYzsKIAlpbnQgcmVzdWx0ID0gMDsKIApAQCAtMzE3NCw3ICYjNDM7MzE4MCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikKIAkgICAgKCgocmVnX2VjYyAmYW1wOyAweDAzZmYwMDAwKSAmZ3Q7Jmd0OyAxNikgIT0gMHgzNikpCiAJCXJlc3VsdCB8PSAweDAyOwogCWVsc2UKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsICYjMzQ7JXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxuJiMzNDssCiYjNDM7CQlkZXZfd2FybihkZXYsICYjMzQ7JXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxuJiMzNDssCiAJCQkgX19mdW5jX18pOwogb3V0OgogCXJldHVybiByZXN1bHQ7CkBAIC0zNjM4LDYgJiM0MzszNjQ0LDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfc2V0X2FtcGR1X21pbl9zcGFjZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggZGVuc2l0eSkKIAogaW50IHJ0bDh4eHh1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpCiB7CiYjNDM7CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2OwogCXU4IHZhbDg7CiAJdTggdmFsMzI7CiAJaW50IGNvdW50LCByZXQgPSAwOwpAQCAtMzY1NSw3ICYjNDM7MzY2Miw3IEBAIGludCBydGw4eHh4dV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQogCX0KIAogCWlmICghY291bnQpIHsKLQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsCiYjNDM7CQlkZXZfd2FybihkZXYsCiAJCQkgJiMzNDslczogUlggcG9sbCB0aW1lZCBvdXQgKDB4MDVmOClcbiYjMzQ7LCBfX2Z1bmNfXyk7CiAJCXJldCA9IC1FQlVTWTsKIAkJZ290byBleGl0OwpAQCAtNTg2MCw2ICYjNDM7NTg2Nyw3IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwKIAogc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldjsKIAlzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjsKIAlzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7CiAJc3RydWN0IGxpc3RfaGVhZCBsb2NhbDsKQEAgLTU4OTMsNyAmIzQzOzU5MDEsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQlydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZGV2X3dhcm4oJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXYsCiYjNDM7CQkJZGV2X3dhcm4oZGV2LAogCQkJCSAmIzM0O2ZhaWxlZCB0byByZXF1ZXVlIHVyYiB3aXRoIGVycm9yICVpXG4mIzM0OywgcmV0KTsKIAkJCXNrYiA9IChzdHJ1Y3Qgc2tfYnVmZiAqKXJ4X3VyYi0mZ3Q7dXJiLmNvbnRleHQ7CiAJCQlkZXZfa2ZyZWVfc2tiKHNrYik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2MjMKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA3MDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBTZXJpZXMgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gZ2l2ZW4gdGhpcyBwYXRjaCBzZXJpZXMgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtkb2VzIHRoaXMgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIGZ1enppbmc/JiMzNDsgSSBpbW1lZGlhdGVseSBzZWUgdGhhdCBpdCB0b3VjaGVzIHNldmVyYWwgZmlsZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9gIGRpcmVjdG9yeTogYDgxODhlLmNgLCBgODE4OGYuY2AsIGA4MTkyZS5jYCwgYDgxOTJmLmNgLCBgODcyM2EuY2AsIGA4NzIzYi5jYCwgYW5kIGBjb3JlLmNgLiBUaGF0JiMzOTtzIGEgZGVjZW50LXNpemVkIGFyZWEgdG8gbG9vayBhdC4KCk5vdywgbG9va2luZyBhdCB0aGUgZGlmZiwgaXQgc2VlbXMgdGhlcmUmIzM5O3MgYSBtaW5vciBtb2RpZmljYXRpb24gaW4gYHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hYC4gSXQmIzM5O3MgaW50cm9kdWNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7YCBhbmQgdGhlbiByZXBsYWNpbmcgaW5zdGFuY2VzIG9mIGAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldmAgd2l0aCBgZGV2YCB3aXRoaW4gYGRldl93YXJuYCBjYWxscy4gVGhhdCYjMzk7cyB1c3VhbGx5IGp1c3QgYSBjb2RlIHN0eWxlIHRoaW5nLCBpbXByb3ZpbmcgcmVhZGFiaWxpdHkgb3IgcmVkdWNpbmcgY29kZSBkdXBsaWNhdGlvbi4gSSB3b3VsZG4mIzM5O3QgZXhwZWN0IHRoaXMgYWxvbmUgdG8gY2hhbmdlIGFueSBiZWhhdmlvciwgYnV0IEkgYWx3YXlzIHdhbnQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuCgpUaGVuLCB0aGVyZSYjMzk7cyBhbm90aGVyIGluc3RhbmNlIG9mIHRoaXMgcGF0dGVybiBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgIHdpdGhpbiBgY29yZS5jYCwgdG9vLiBIb2xkIG9uLi4udGhlIHZhcmlhYmxlIGBkZXZgIGlzIGluaXRpYWxpemVkIHVzaW5nIGBwcml2LSZndDt1ZGV2LSZndDtkZXZgLiBCdXQsIGBwcml2YCBpcyBkZWNsYXJlZCAqYWZ0ZXIqIGBkZXZgIGlzIGluaXRpYWxpemVkPyBUaGF0IGxvb2tzIGxpa2UgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmVhZC1iZWZvcmUtd3JpdGUgYnVnLiBJIG5lZWQgdG8gYmUgKnN1cmUqIHRoYXQmIzM5O3Mgbm90IHRoZSBjYXNlLiBMZXQmIzM5O3MgZGlnIGRlZXBlciBpbnRvIHRoYXQgc2VjdGlvbiBvZiBgY29yZS5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDU4NjcuCgpPa2F5LCBsZXQmIzM5O3MgdmVyaWZ5IHRoYXQgcXVpY2tseSB3aXRoIGByZWFkLWZpbGVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1ODYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzU4NjA6XHRcdH1cbjU4NjE6XHRcbjU4NjI6XHRcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuNTg2MzpcdFxuNTg2NDpcdFx0aWYgKHBlbmRpbmcgXHUwMDNlIFJUTDhYWFhVX1JYX1VSQl9QRU5ESU5HX1dBVEVSKVxuNTg2NTpcdFx0XHRzY2hlZHVsZV93b3JrKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX3dxKTtcbjU4NjY6XHR9XG41ODY3Olx0XG41ODY4Olx0c3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuNTg2OTpcdHtcbjU4NzA6XHRcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG41ODcxOlx0XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbjU4NzI6XHRcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcbjU4NzM6XHRcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XG41ODc0Olx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuNTg3NTpcdFx0dW5zaWduZWQgbG9uZyBmbGFncztcbjU4NzY6XHRcdGludCByZXQ7XG41ODc3Olx0XG41ODc4Olx0XHRwcml2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydGw4eHh4dV9wcml2LCByeF91cmJfd3EpO1xuNTg3OTpcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bG9jYWwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDkwOTcKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA3MjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogQ29tcGlsZSBFcnJvciBvciBGdW5jdGlvbmFsIENoYW5nZT8qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBleHBlcnQgZXllIHNwb3RzIHRoZSBwcm9ibGVtLiBMaW5lIDU4NzAgaXMgd2hlcmUgdGhlIHRyb3VibGUgYmVnaW5zLiBJdCBsb29rcyBsaWtlIGBkZXZgIGlzIGJlaW5nIGluaXRpYWxpemVkIHVzaW5nIGBwcml2LSZndDt1ZGV2LSZndDtkZXZgICpiZWZvcmUqIGBwcml2YCBpcyBldmVuIGRlY2xhcmVkIG9uIGxpbmUgNTg3MS4gTXkgZmlyc3QgdGhvdWdodCBpcyAmIzM0O2NvbXBpbGVyIGVycm9yISYjMzQ7IFRoYXQmIzM5O3MgYSBjbGFzc2ljIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UsIHJpZ2h0PyBJJiMzOTtkIGV4cGVjdCB0aGUgY29tcGlsZXIgdG8gY2hva2Ugb24gdGhhdCwgYXNzdW1pbmcgaXQmIzM5O3Mgc3RhbmRhcmQgQy4gVGhlIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZCwgdGhvdWdoLCBzbyBpdCYjMzk7cyBlaXRoZXIgbm90IGEgY29tcGlsZSBlcnJvciBvciB0aGUgYnVpbGQgaXMgYnJva2VuLgoKQnV0IHdhaXQsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGd1aWRpbmcgbWUsIHNheWluZyB0aGF0IHRoaXMgc2hvdWxkbiYjMzk7dCBiZSB3b3J0aCBmdXp6aW5nIGlmIGl0JiMzOTtzIGRvY3VtZW50YXRpb24gb3IgZGVjb3JhdGl2ZSBjaGFuZ2VzLiBJdCBzZWVtcyBsaWtlIHRoZSBwYXRjaCYjMzk7cyAqaW50ZW50KiBpcyB0byBjaGFuZ2UgdGhlIGxvZ2dpbmcg4oCTIHJlcGxhY2luZyBgJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXZgIHdpdGggdGhlIGxvY2FsIHZhcmlhYmxlIGBkZXZgIGluIGBkZXZfd2FybmAgY2FsbHMsIHByZXN1bWFibHkgZm9yIHJlYWRhYmlsaXR5LiBBIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZy4gU28gbXkgaW5pdGlhbCBhc3N1bXB0aW9uIGlzIGRlY29yYXRpdmUsIG1lYW5pbmcgdGhlIHdob2xlIHBvaW50IGlzIG5vdCBmdW5jdGlvbmFsLgoKQnV0IGhlcmUmIzM5O3Mgd2hlcmUgaXQgZ2V0cyBpbnRlcmVzdGluZy4gSSYjMzk7bSB0aGlua2luZywgJiMzNDtJcyB0aGVyZSBhY3R1YWxseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGhvdyB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQ/JiMzNDsgQmVjYXVzZSBpZiB0aGUgY29kZSBjb21waWxlcywgdGhlIHVzYWdlIG9mIHVuaW5pdGlhbGl6ZWQgYHByaXZgIHdpbGwgZGVmaW5pdGVseSBsZWFkIHRvIHVuZGVmaW5lZCBiZWhhdmlvciBhbmQgbGlrZWx5IGEgY3Jhc2gsIG9yIG1lbW9yeSBjb3JydXB0aW9uLiBTaW5jZSB0aGUgcHJvbXB0IHN0YXRlcyB0aGF0IHRoZSBwYXRjaCBoYXMgYmVlbiBhcHBsaWVkLCBJJiMzOTttIG5vdyBxdWVzdGlvbmluZyBob3cgdGhhdCBjb3VsZCBoYXBwZW4gaWYgdGhlIGNvZGUgaXMgaW52YWxpZC4KCkkmIzM5O20gdGhpbmtpbmcsICYjMzQ7SXMgYHByaXZgIGEgZ2xvYmFsIG9yIHNvbWV0aGluZz8mIzM0OyBJJiMzOTttIGNoZWNraW5nIGlmIHRoZSBzY29wZSBvZiBgcHJpdmAgaXMgc29tZWhvdyBtb3JlIHRoYW4gbG9jYWwgdG8gdGhlIGN1cnJlbnQgZnVuY3Rpb24uIEJ1dCBubywgaWYgYHByaXZgIGlzIGxvY2FsLCB0aGVuIGAmYW1wO3ByaXYtJmd0O3VkZXYtJmd0O2RldmAgKndpbGwqIGJlIHVzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUgYW5kIGNhdXNlIGEgY3Jhc2gsIGFuZCB0aGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEJ1dCwgd2FpdC4uLiBJIGp1c3QgcmVhbGl6ZWQgdGhlIGNvZGUgKmNhbiYjMzk7dCogY29tcGlsZSBiZWNhdXNlIG9mIHRoZSBDIHNjb3BlIHJ1bGVzLiBgcHJpdmAgaXMgZGVjbGFyZWQgKmFmdGVyKiBpdCYjMzk7cyB1c2VkLiBgc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7YCBpcyBkZWNsYXJlZCBvbiBsaW5lIDU4NzEgYW5kIGFzc2lnbmVkIG9uIDU4NzAsIGxlYWRpbmcgdG8gdGhlIGNvbXBpbGVyIGVycm9yIGBlcnJvcjog4oCYcHJpduKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbilgLgoKU2luY2UgdGhpcyBpcyBhIGNsZWFyIGNvbXBpbGVyIGVycm9yLCBpdCBtZWFucyB0aGUgcGF0Y2ggc2ltcGx5IHdpbGwgbm90IGJ1aWxkIGFuZCB0aGVyZWZvcmUsIGNhbm5vdCBiZSBleGVjdXRlZCwgYW5kIHRoZXJlZm9yZSwgaXMgbm90IHdvcnRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IHJ0bDh4eHh1X3ByaXYgXFwqcHJpdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNjczIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9Mzc4PWVudW0gcnRsODE4OGVfdHhfcnB0X3RpbWluZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTM4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzozODQ6c3RhdGljIGludCBydGw4MTg4ZXVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0zODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz00MjM9c3RhdGljIHZvaWQgcnRsODE4OGV1X2NvbmZpZ19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQyNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NDI1Olx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBody1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQyNi1cdHUzMiB2YWwzMiwgcnNyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01MjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NTI0OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUyNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1Mzc6c3RhdGljIGludCBydGw4MTg4ZXVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTM4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjU1ODpzdGF0aWMgdm9pZCBydGw4MTg4ZXVfcmVzZXRfODA1MShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01NTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NTcwOnN0YXRpYyBpbnQgcnRsODE4OGV1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTcxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjU4MjpzdGF0aWMgdm9pZCBydGw4MTg4ZXVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTgzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjYwNTpzdGF0aWMgaW50IHJ0bDgxODhldV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02MDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NjEwOnN0YXRpYyBpbnQgcnRsODE4OGV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjExLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjY0NDpzdGF0aWMgaW50IHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTY0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo3NTE6c3RhdGljIHZvaWQgcnRsODE4OGV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy03NTItXHRcdFx0XHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTA3OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTkwOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo5OTQ6c3RhdGljIHZvaWQgcnRsODE4OGVfZGlzYWJsZWRfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTAwMzpzdGF0aWMgaW50IHJ0bDgxODhlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTA3MjpzdGF0aWMgaW50IHJ0bDgxODhldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwNzMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEwODk6c3RhdGljIGludCBydGw4MTg4ZXVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEwOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjExMTg6c3RhdGljIGludCBydGw4MTg4ZXVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTE2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMTY2OnN0YXRpYyBpbnQgcnRsODE4OGV1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTExNjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjExOTY6c3RhdGljIHZvaWQgcnRsODE4OGV1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTk3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMjYzOnN0YXRpYyB2b2lkIHJ0bDgxODhlX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMjY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMjc3OnN0YXRpYyB2b2lkIHJ0bDgxODhlX2Rpc2FibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI3OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTI5MTpzdGF0aWMgdm9pZCBydGw4MTg4ZV91c2JfcXVpcmtzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEzMTA6c3RhdGljIHM4IHJ0bDgxODhlX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgcnRsODcyM2F1X3BoeV9zdGF0cyAqcGh5X3N0YXRzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xMzM1PXN0YXRpYyBpbnQgcnRsODE4OGV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTMzNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTMzODpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMzktXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgcnRsOHh4eHVfcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTQ3Mj1zdGF0aWMgdm9pZCBydGw4MTg4ZV9yYXRlX2RlY2lzaW9uKHN0cnVjdCBydGw4eHh4dV9yYV9pbmZvICpyYSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNDczLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNDc0Olx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YocmEsIHN0cnVjdCBydGw4eHh4dV9wcml2LCByYV9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNDc1LVx0Y29uc3QgdTggKnJldHJ5X3BlbmFsdHlfaWR4XzA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTE2MzA9c3RhdGljIHZvaWQgcnRsODE4OGVfcG93ZXJfdHJhaW5pbmdfZGVjaXNpb24oc3RydWN0IHJ0bDh4eHh1X3JhX2luZm8gKnJhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNjY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjE2Njg6dm9pZCBydGw4MTg4ZV9oYW5kbGVfcmFfdHhfcmVwb3J0MihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNjY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTc4MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjE3ODE6cnRsODE4OGVfdXBkYXRlX3JhdGVfbWFzayhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzgyLVx0XHRcdCAgdTMyIHJhbWFzaywgdTggcmF0ZWlkLCBpbnQgc2dpLCBpbnQgdHhid180MG1oeixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTc5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNzk0OnN0YXRpYyB2b2lkIHJ0bDgxODhlX3JhX3NldF9yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBtYWNpZCwgdTggcnNzaSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzk1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MjUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE4OGZ1X2N1dF9iX3JhZGlvYV9pbml0X3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzozMDg6c3RhdGljIGludCBydGw4MTg4ZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0zMDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0zNTc9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjM1ODpydGw4MTg4Zl9zZXRfdHhfcG93ZXIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIGludCBjaGFubmVsLCBib29sIGh0NDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzk5LS8qIEEgd29ya2Fyb3VuZCB0byBlbGltaW5hdGUgdGhlIDI0MDBNSHosIDI0NDBNSHosIDI0ODBNSHogc3B1ciBvZiA4MTg4Ri4gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo0MDA6c3RhdGljIHZvaWQgcnRsODE4OGZfc3B1cl9jYWxpYnJhdGlvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggY2hhbm5lbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy00MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz01MTQ9c3RhdGljIHZvaWQgcnRsODE4OGZ1X2NvbmZpZ19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTUxNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NTE2Olx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBody1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTUxNy1cdHUzMiB2YWwzMjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNjQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjY0NTpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfaW5pdF9hZ2dyZWdhdGlvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy02NDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy02NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NjczOnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9pbml0X3N0YXRpc3RpY3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNjc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjcwNDpzdGF0aWMgaW50IHJ0bDgxODhmdV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03MDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03MzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NzM5OnN0YXRpYyBpbnQgcnRsODE4OGZ1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjc1MTpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjc3ODpzdGF0aWMgaW50IHJ0bDgxODhmdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NzkwOnZvaWQgcnRsODE4OGZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03OTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy04MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6ODM0OnN0YXRpYyBpbnQgcnRsODE4OGZ1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiAqbG9rX3Jlc3VsdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy04MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy05MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6OTA3OnN0YXRpYyBpbnQgcnRsODE4OGZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBsb2tfcmVzdWx0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTkwOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTA2MjpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfcGh5X2lxY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjMtXHRcdFx0XHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMjE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEyMTk6c3RhdGljIHZvaWQgcnRsODE4OGZ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTIyMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTMxOTpzdGF0aWMgdm9pZCBydGw4MTg4Zl9kaXNhYmxlZF90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMyMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTMzNDpzdGF0aWMgaW50IHJ0bDgxODhmX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTM5NDpzdGF0aWMgaW50IHJ0bDgxODhmdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzOTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0MzQ6c3RhdGljIGludCBydGw4MTg4ZnVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0NTI6c3RhdGljIGludCBydGw4MTg4ZnVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNDUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNTE1OnN0YXRpYyBpbnQgcnRsODE4OGZ1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE1MTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE1NDA6c3RhdGljIHZvaWQgcnRsODE4OGZ1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTQxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTU4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNTgzOnN0YXRpYyB2b2lkIHJ0bDgxODhmX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTg0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTYyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNjIyOnN0YXRpYyB2b2lkIHJ0bDgxODhmX2Rpc2FibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTYyMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTYzNDpzdGF0aWMgdm9pZCBydGw4MTg4Zl91c2JfcXVpcmtzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE2NTE6dm9pZCBydGw4MTg4Zl9zZXRfY3J5c3RhbF9jYXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNyeXN0YWxfY2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2NTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE2Nzc6c3RhdGljIHM4IHJ0bDgxODhmX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgcnRsODcyM2F1X3BoeV9zdGF0cyAqcGh5X3N0YXRzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2Nzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz0yNjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCBydGw4MTg4cnVfcmFkaW9hXzF0X2hpZ2hwYV90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0zMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6MzM5OnN0YXRpYyBpbnQgcnRsODE5MmN1X2lkZW50aWZ5X2NoaXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMzQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtMzk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjM5NzpzdGF0aWMgaW50IHJ0bDgxOTJjdV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTM5OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0MTQ6c3RhdGljIGludCBydGw4MTkyY3VfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDE1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjQ2NzpzdGF0aWMgaW50IHJ0bDgxOTJjdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy00Njgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy00OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6NDkxOnN0YXRpYyBpbnQgcnRsODE5MmN1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQ5Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTU5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo1OTY6c3RhdGljIHZvaWQgcnRsODE5MmN1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy01OTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz02NzQ9c3RhdGljIGludCBydGw4MTkyY3VfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy02NzYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjY3NzpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY3OC1cdFx0XHRcdFx0XHQgIHN0cnVjdCBydGw4eHh4dV9wcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0zOTk9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCBydGw4MTkyZXVfcmFkaW9iX2luaXRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNDY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjQ2NTpzdGF0aWMgaW50IHJ0bDgxOTJldV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTQ2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTUxMj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjUxMzpydGw4MTkyZV9zZXRfdHhfcG93ZXIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIGludCBjaGFubmVsLCBib29sIGh0NDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjU4ODpzdGF0aWMgaW50IHJ0bDgxOTJldV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy01ODkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NjQwOnN0YXRpYyBpbnQgcnRsODE5MmV1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjQxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY1MjpzdGF0aWMgdm9pZCBydGw4MTkyZXVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY3OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02ODAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02OTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NjkzOnN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNzQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjc0MzpzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTc0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzo4NzE6c3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy04NzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy05MjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6OTIxOnN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtOTIyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMDUzOnN0YXRpYyB2b2lkIHJ0bDgxOTJldV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1NC1cdFx0XHRcdCAgICAgIGludCByZXN1bHRbXVs4XSwgaW50IHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTIzOTpzdGF0aWMgdm9pZCBydGw4MTkyZXVfcGh5X2lxX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMjQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTMzMi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzMzOnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2NyeXN0YWxfYWZlX2FkanVzdChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzM0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzY1OnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzc1OnN0YXRpYyBpbnQgcnRsODE5MmVfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNDQwOnN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQ0MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE0OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTQ5OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1MDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1Mzg6c3RhdGljIGludCBydGw4MTkyZXVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE1NTE6c3RhdGljIGludCBydGw4MTkyZXVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE1OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTU5OTpzdGF0aWMgdm9pZCBydGw4MTkyZXVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2MDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE2MzM6c3RhdGljIHZvaWQgcnRsODE5MmVfZW5hYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2MzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE2Nzk6c3RhdGljIHM4IHJ0bDgxOTJlX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBzdHJ1Y3QgcnRsODcyM2F1X3BoeV9zdGF0cyAqcGh5X3N0YXRzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2ODAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz0xNzAyPXN0YXRpYyBpbnQgcnRsODE5MmV1X2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTcwNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTcwNTpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MDYtXHRcdFx0XHRcdFx0ICBzdHJ1Y3QgcnRsOHh4eHVfcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE5MmZ1X3JhZGlvYl9pbml0X3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTM5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzozOTI6c3RhdGljIGludCBydGw4MTkyZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0zOTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz00MjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo0MjY6cnRsODE5MmZfc2V0X3R4X3Bvd2VyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBpbnQgY2hhbm5lbCwgYm9vbCBodDQwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTQyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTQ5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo0OTM6c3RhdGljIHZvaWQgcnRsODE5MmZfcmV2aXNlX2Nja190eF9wc2Yoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNoYW5uZWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNDk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjUxODpzdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2tmcmVlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjaGFubmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTUxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTU4ND1zdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo1ODY6XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNTg3LVx0Ym9vbCBodDQwID0gY29uZl9pc19odDQwKFx1MDAyNmh3LVx1MDAzZWNvbmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy02NjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6NjY1OnN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo2ODI6c3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNjgzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjc0MjpzdGF0aWMgaW50IHJ0bDgxOTJmdV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NDc6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2luaXRfcGh5X2JiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NjQ6c3RhdGljIGludCBydGw4MTkyZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjc3NTpzdGF0aWMgdm9pZCBydGw4MTkyZl9waHlfbGNfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc3Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo4MDA6c3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy04MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy04OTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6ODkxOnN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtODkyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTAyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMDI0OnN0YXRpYyBpbnQgcnRsODE5MmZ1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTAyNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTExMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTEyMDpzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTExMjEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNTg6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMjU5LVx0XHRcdFx0ICAgICAgaW50IHJlc3VsdFtdWzhdLCBpbnQgdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTQ0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNDQ0OnN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE0NDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE1OTQ6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNTk1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNjA1OnN0YXRpYyBpbnQgcnRsODE5MmZ1X2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYwNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3MzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTczMTpzdGF0aWMgaW50IHJ0bDgxOTJmdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3MzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE3Njg6c3RhdGljIGludCBydGw4MTkyZnVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3Njkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE3ODc6c3RhdGljIGludCBydGw4MTkyZnVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzg4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTgzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxODM0OnN0YXRpYyBpbnQgcnRsODE5MmZ1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4MzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xODU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE4NjA6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xODYxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxODg3OnN0YXRpYyB2b2lkIHJ0bDgxOTJmX3Jlc2V0XzgwNTEoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg4OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTkwMjpzdGF0aWMgdm9pZCBydGw4MTkyZl9lbmFibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTkwMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTkxNzpzdGF0aWMgdm9pZCBydGw4MTkyZl9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE5Mjk6c3RhdGljIHZvaWQgcnRsODE5MmZfdXNiX3F1aXJrcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTMwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxOTQzOnN0YXRpYyB2b2lkIHJ0bDgxOTJmX3NldF9jcnlzdGFsX2NhcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggY3J5c3RhbF9jYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTk3MDpzdGF0aWMgczggcnRsODE5MmZfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk3MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE5OTg9c3RhdGljIGludCBydGw4MTkyZnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDAwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoyMDAxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YobGVkX2NkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMjAwMi1cdFx0XHRcdFx0XHQgIHN0cnVjdCBydGw4eHh4dV9wcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYz00MDY9c3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3ZhbCBydGw4NzEwYnVfcWZuNDhtX3NfcmFkaW9hX2luaXRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjQ2MzpzdGF0aWMgdTMyIHJ0bDg3MTBiX2luZGlyZWN0X3JlYWQzMihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTMyIGFkZHIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jOjQ5ODpzdGF0aWMgdm9pZCBydGw4NzEwYl9pbmRpcmVjdF93cml0ZTMyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MzIgYWRkciwgdTMyIHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy00OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy01MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6NTMwOnN0YXRpYyB1MzIgcnRsODcxMGJfcmVhZF9zeXNvbl9yZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyKVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ1MzkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGVidWdnaW5nIGEgU3VzcGVjdCBQb2ludGVyIFJlZmVyZW5jZSoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGBwcml2YCB2YXJpYWJsZeKApml0JiMzOTtzIGJlaW5nIHVzZWQgKmJlZm9yZSogaXQmIzM5O3MgZXZlbiBkZWNsYXJlZCBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgISBUaGF0JiMzOTtzIGEgY2xhc3NpYyBDIGNvbXBpbGVyIGVycm9yLiBZb3Uga25vdywgdGhlIGtpbmQgdGhhdCBzaG91bGQmIzM5O3ZlIGJlZW4gY2F1Z2h0IGluc3RhbnRseS4gYHN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2O2AgLS0gdGhhdCBgcHJpdmAgaXNuJiMzOTt0IGRlZmluZWQgeWV0ISBUaGlzIHNlZW1zIGltcG9zc2libGUuCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cy4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYHByaXZgIGlzbiYjMzk7dCBzb21lIGdsb2JhbGx5IHNjb3BlZCB0aGluZyB0aGF0JiMzOTtzIGFjY2lkZW50YWxseSBiZWluZyB1c2VkIGhlcmUuIEl0JiMzOTtzIGEgcHJldHR5IGNvbW1vbiBsb2NhbCB2YXJpYWJsZSBuYW1lLCBzbyBhIHF1aWNrIHZpc3VhbCBzY2FuIHByb2JhYmx5IHdvbiYjMzk7dCBjdXQgaXQuIExldCYjMzk7cyBzZWUuLi4gbm90aGluZyBvYnZpb3VzbHkgZ2xvYmFsLCBzbyBub3cgSSYjMzk7bGwgbG9vayBpbnRvIGBjb3JlLmNgIGFuZCBhbnkgaW5jbHVkZWQgaGVhZGVycywganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIEhvdyBvbiBlYXJ0aCBkaWQgdGhpcyBldmVuIGdldCBjb21taXR0ZWQgaWYgdGhlIGNvbXBpbGVyIHNob3VsZCBiZSB0aHJvd2luZyB1cCBlcnJvcnM/IEkmIzM5O20gc21lbGxpbmcgc29tZXRoaW5nIGZpc2h5IGhlcmUuLi4gb3IgbWF5YmUgSSYjMzk7bSBqdXN0IHRpcmVkISBMZXQgbWUgZG8gYSBwcm9wZXIgY2hlY2sgb2YgYWxsIHRoZSBmaWxlcyBqdXN0IHRvIGJlIGNlcnRhaW4uIEkmIzM5O3ZlIGdvdCB0byBmaW5kIG91dCB3aGF0JiMzOTtzIGdvaW5nIG9uIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBydGw4eHh4dV9wcml2IFxcKnByaXY7JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2MS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTE2MjpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cdHN0cnVjdCBydGw4eHh4dV90eF91cmIgKnR4X3VyYiA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTg3MC1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1ODcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVx0c3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiLCAqdG1wO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjEyMTpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjEyMi1cdHN0cnVjdCBydGw4NzIzYnVfYzJoICpjMmg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjI2MT1zdHJ1Y3QgcnRsOHh4eHVfcnhfdXBkYXRlX3Jzc2lfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MjYyOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MjYzLVx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MzcwPXN0cnVjdCBydGw4eHh4dV9pdGVyX3N0YXNfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03MzcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczODg9c3RhdGljIHZvaWQgcnRsOHh4eHVfd2F0Y2hkb2dfY2FsbGJhY2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXHRzdHJ1Y3QgcnRsOHh4eHVfc3Rhc19lbnRyeSAqc3RhX2VudHJ5LCAqdG1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzM5MzpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NzQ3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDktXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03OTY2PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Nzk2ODpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MTQ4CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlYnVnZ2luZyBhIFBvdGVudGlhbCBDb21waWxlciBFcnJvcioqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGNvZGUgc25pcHBldCBsb29rcyBzdXNwaWNpb3VzLiBJZiB0aGVyZSYjMzk7cyBubyBnbG9iYWwgdmFyaWFibGUgbmFtZWQgYHByaXZgLCB0aGVuIHRoYXQgbGluZSwgYHN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cHJpdi0mZ3Q7dWRldi0mZ3Q7ZGV2O2AgZm9sbG93ZWQgYnkgYHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O2AgaXMgZ29pbmcgdG8gdGhyb3cgYSBjb21waWxlciBlcnJvciwgcmlnaHQ/IFRoZSBjb21waWxlciBzaG91bGQgY29tcGxhaW4gYmVjYXVzZSBgcHJpdmAgaXNuJiMzOTt0IGRlY2xhcmVkIHlldCwgYW5kIEkmIzM5O20gcmVmZXJlbmNpbmcgaXQuIExldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IEdDQyB3b3VsZCBhY3R1YWxseSBmbGFnIHRoaXMuCgpZdXAsIEkmIzM5O20gcHJldHR5IHN1cmUgR0NDIHdvdWxkIGZsYWcgaXQgYXMgJiMzNDt1bmRlY2xhcmVkLCYjMzQ7IHNvIHRoaXMgZGVmaW5pdGVseSBpc24mIzM5O3QgY29ycmVjdC4gQnV0IHdhaXQsIGlzIGl0ICpwb3NzaWJsZSogdGhhdCBgcHJpdmAgaXMgYmVpbmcgZGVmaW5lZCBhcyBhIG1hY3JvICpzb21ld2hlcmUqPyBJdCYjMzk7cyBhbHdheXMgd29ydGggY2hlY2tpbmcgZm9yIHRob3NlIHNuZWFreSBtYWNyb3MgdGhhdCBjYW4gbWFrZSBjb2RlIGhhcmRlciB0byBmb2xsb3csIGVzcGVjaWFsbHkgaW4gYSBsYXJnZSBjb2RlYmFzZS4gSSYjMzk7ZCBiZXR0ZXIgZG91YmxlLWNoZWNrIGZvciB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0OyNkZWZpbmUgcHJpdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0OTcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA0NjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaDogQ29tcGlsZXIgRXJyb3Igb3IgRnV6emFibGUgQ2hhbmdlPyoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGUgcHJvbXB0IGV4cGxpY2l0bHkgc3RhdGVzIHRoZSBjaGFuZ2VzIGFyZSAqYWxyZWFkeSogY29tbWl0dGVkLiBJZiB0aGlzIHdlcmUgYSBzdHJhaWdodGZvcndhcmQgY29tcGlsZXIgZXJyb3IsIGxpa2UgdGhlIGluaXRpYWwgdGhvdWdodCwgaG93IGNvdWxkIGl0IGV2ZW4gYmUgY29tbWl0dGVkIGluIHRoZSBmaXJzdCBwbGFjZT8gQSBwYXRjaCB0aGF0IGJyZWFrcyB0aGUgYnVpbGQgaXMgZXNzZW50aWFsbHkgdXNlbGVzcyBmb3IgZnV6emluZzsgc3l6a2FsbGVyIHdvdWxkbiYjMzk7dCBldmVuIGJlIGFibGUgdG8gdG91Y2ggaXQuCgpCdXQgdGhlIHByb21wdCBhbHNvIGRpcmVjdHMgdXMgdG8gZXhhbWluZSB0aGUgcGF0Y2ggaXRzZWxmIGFuZCAqbm90KiByZWx5IG9uIGludGVybmFsIGtub3dsZWRnZS4gVGhlIGluc3RydWN0aW9ucyBzdGF0ZSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIGNoYW5nZSBpcyBwdXJlbHkgZGVjb3JhdGl2ZSwgc3VjaCBhcyBsb2dnaW5nLiBUaGUgZGVzY3JpcHRpb24gaW1wbGllcyB0aGF0IHRoZSAqaW50ZW50aW9uKiB3YXMgdG8gYWRkIGxvZ2dpbmcuCgpMZXQmIzM5O3MgcmV2aXNpdCB0aGUgcGF0Y2ggY29kZSBibG9jayBwcm92aWRlZDoKCmBgYGMKQEAgLTU4NjAsNiAmIzQzOzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsCiAKIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKJiM0MzsJc3RydWN0IGRldmljZSAqZGV2ID0gJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXY7CiAJc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7CiAJc3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiLCAqdG1wOwogCXN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7CmBgYAoKSWYgaXQmIzM5O3MgYSBzdHJhaWdodCBjb21waWxlciBlcnJvciwgaXQgd29uJiMzOTt0IGNvbXBpbGUsIGFuZCBzeXprYWxsZXIgY2FuJiMzOTt0IGZ1enogaXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBub3QgbWlzc2luZyBzb21ldGhpbmcgc3VidGxlLgoKT2theSwgbGV0JiMzOTtzIHBsYXkgZGV2aWwmIzM5O3MgYWR2b2NhdGU6IGNvdWxkIHRoZXJlIGJlIHNvbWUgd2VpcmQgbWFjcm8gc2hlbmFuaWdhbnMgZ29pbmcgb24/IElzIGBwcml2YCBhIG1lbWJlciBvZiBzb21lIHN0cnVjdCBhbmQgd2UgYXJlIGluc2lkZSBhIG1hY3JvPyBObywgaXQmIzM5O3MgYSBmdW5jdGlvbi4gTGV0JiMzOTtzIHRlc3QgdGhpcyB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyB3aXRoIHRoZSBjb21waWxlci4KCkkmIzM5O2xsIHF1aWNrbHkgd2hpcCB1cCBhIHNpbXBsZSBDIGZpbGUgdG8gdGVzdCBpdCB3aXRoIEdDQzoKCmBgYGMKdm9pZCBmb28oKSB7CiAgICBpbnQgKmRldiA9IHByaXY7CiAgICBpbnQgKnByaXY7Cn0KYGBgCgpZZXAsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIGNvbXBpbGVyIGVycm9yLiBJdCYjMzk7cyBhIHJlZGVmaW5pdGlvbi4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBpcyB0aGVyZSAqYW55d2hlcmUqIGVsc2UgYHByaXZgIGlzIGRlY2xhcmVkIGluIHNjb3BlLCBtYXliZSBhIGdsb2JhbCB2YXJpYWJsZSwgcG90ZW50aWFsbHkgZGVmaW5lZCBpbiBhIGhlYWRlciBmaWxlPyBJIG5lZWQgdG8gY2hlY2sgZm9yIGEgZ2xvYmFsIHZhcmlhYmxlIG5hbWVkIGBwcml2YC4gTGV0JiMzOTtzIHNlYXJjaCB0aGUga2VybmVsIGhlYWRlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IHJ0bDh4eHh1X3ByaXYgXFwqcHJpdjsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTA2CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBgcHJpdmAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJJiMzOTttIHRha2luZyBhIHF1aWNrIHN3ZWVwLCBhbmQgdGhlIGZpcnN0IHRoaW5nIHRoYXQmIzM5O3MganVtcGluZyB0byBtaW5kIGlzIGEgZnVuZGFtZW50YWwgc2FuaXR5IGNoZWNrLiBJIG5lZWQgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBsdXJraW5nIGdsb2JhbCB2YXJpYWJsZSBuYW1lZCBgcHJpdmAuIE5vdCBqdXN0IGEgdmFyaWFibGUsIGJ1dCBzcGVjaWZpY2FsbHkgYSAqZ2xvYmFsKiBvbmUuIFRoaXMgaXMgYSBoYWJpdHVhbCBmaXJzdCBzdGVwLiBHbG9iYWxzIGFyZSBub3RvcmlvdXMgZm9yIGNhdXNpbmcgc2lkZSBlZmZlY3RzLCB1bmludGVuZGVkIGRlcGVuZGVuY2llcywgYW5kIGdlbmVyYWxseSBtYWtpbmcgZGVidWdnaW5nIGEgbmlnaHRtYXJlLCBzbyBpdCYjMzk7cyBiZXN0IHRvIHZlcmlmeSB0aGVpciBub24tZXhpc3RlbmNlIG9yIGlmIHByZXNlbnQgaG93IHRoZXkgYmVoYXZlLiBFc3BlY2lhbGx5IHNvbWV0aGluZyBhcyBwb3RlbnRpYWxseSBzZW5zaXRpdmUgYXMgJiMzNDtwcml2LCYjMzQ7IHdoaWNoIHNjcmVhbXMgJiMzNDtwcml2aWxlZ2VzJiMzNDsgb3IgJiMzNDtwcml2YXRlIGRhdGEuJiMzNDsgSXQmIzM5O3MgbGlrZWx5IHJlbGF0ZWQgdG8gc2VjdXJpdHksIGFjY2VzcyBjb250cm9sLCBvciBzb21lIG90aGVyIGNyaXRpY2FsIGNvbXBvbmVudC4gRmluZGluZyBhIGBwcml2YCBnbG9iYWwgY291bGQgaW1tZWRpYXRlbHkgdHJpZ2dlciBhIGRlZXBlciBkaXZlIGludG8gaXRzIHVzYWdlIGFuZCBzY29wZS4gSSYjMzk7ZCB3YW50IHRvIHVuZGVyc3RhbmQgd2hlcmUgaXQmIzM5O3MgZGVmaW5lZCwgaG93IGl0JiMzOTtzIG1vZGlmaWVkLCBhbmQsIG1vc3QgaW1wb3J0YW50bHksICp3aGVyZSogaXQmIzM5O3MgYWNjZXNzZWQuIEV2ZW4gaWYgaXQmIzM5O3MgYmVuaWduIG5vdywgaXQmIzM5O3MgYSBwb3RlbnRpYWwgdGltZSBib21iLiBBIGNhcmVsZXNzIGVkaXQgb3IgYW4gdW5mb3Jlc2VlbiBpbnRlcmFjdGlvbiBjb3VsZCBsZWFkIHRvIHZ1bG5lcmFiaWxpdGllcywgcHJpdmlsZWdlIGVzY2FsYXRpb24sIG9yIGRhdGEgbGVha2FnZS4gSSYjMzk7bSBnb2luZyB0byBzY2FuIHRoZSBjb2RlYmFzZSBub3cgd2l0aCBhbiBleHBlcnQgZXllLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V4dGVybiBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiBcXCpwcml2OyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3ODM3CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNvbXBpbGVyIEVycm9yIERpYWdub3NpcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzOiBjb21waWxlciBlcnJvciwgYnVpbGQgZmFpbHVyZS4gSWYgaXQmIzM5O3MgYSBidWlsZCBmYWlsdXJlLCB0aGVyZSYjMzk7cyBubyBwb2ludCBmdXp6aW5nIGl0LCByaWdodD8gWW91IGNhbiYjMzk7dCBmdXp6IGEga2VybmVsIHRoYXQgZG9lc24mIzM5O3QgYnVpbGQuIEJ1dCBob2xkIG9uLi4uIGlzIGl0IHBvc3NpYmxlIHRoYXQgdGhpcyBwYXRjaCBpcyBqdXN0IGEgbG9nZ2luZyBjaGFuZ2UgYW5kIHRoZSBhdXRob3Igc2ltcGx5IG1hZGUgYSB0cml2aWFsIG1pc3Rha2UgdGhhdCYjMzk7cyBjYXVzaW5nIHRoZSBidWlsZCB0byBicmVhaz8gSWYgaXQmIzM5O3MganVzdCBhIGJ1aWxkIGJyZWFrLCB0aGVuIGZ1enppbmcgaXMgc3RpbGwgb2ZmIHRoZSB0YWJsZS4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgc2VlLgoKRmlyc3QsIEkgY2hlY2tlZCBhIGZldyBvdGhlciBmaWxlcy4gSXQgbG9va3MgbGlrZSBgcHJpdmAgaXMgYmVpbmcgdXNlZCBhcyBhbiBhcmd1bWVudCB0byB0aGVzZSBmdW5jdGlvbnMsIGFuZCBgZGV2YCBpcyBiZWluZyBhc3NpZ25lZCBwcm9wZXJseSBpbiBgODE4OGUuY2AsIGA4MTg4Zi5jYCwgYW5kIGA4MTkyZS5jYC4gU28gdGhlIGlzc3VlICptdXN0KiBiZSBpbiBhbm90aGVyIGZpbGUuCgpBaC1oYSEgSW4gYGNvcmUuY2AsIEkgc2VlIHRoZSBwcm9ibGVtLiBUaGVyZSYjMzk7cyBhIHNjb3BlIGlzc3VlLiBgcHJpdmAgaXMgZGVjbGFyZWQgKmFmdGVyKiB0aGUgZGVjbGFyYXRpb24gb2YgYGRldmAuIFRoYXQmIzM5O3MgYSBjb21waWxlciBlcnJvciwgbm8gcXVlc3Rpb24gYWJvdXQgaXQuIE9rYXksIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIGJ1aWxkIGJyZWFrLiBUaW1lIHRvIGZsYWcgdGhpcyBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU4NjgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7NTg2ODpcdHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbjU4Njk6XHR7XG41ODcwOlx0XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuNTg3MTpcdFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG41ODcyOlx0XHRzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7XG41ODczOlx0XHRzdHJ1Y3QgbGlzdF9oZWFkIGxvY2FsO1xuNTg3NDpcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbjU4NzU6XHRcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG41ODc2Olx0XHRpbnQgcmV0O1xuNTg3NzpcdFxuNTg3ODpcdFx0cHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiwgcnhfdXJiX3dxKTtcbjU4Nzk6XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNmxvY2FsKTtcbjU4ODA6XHRcbjU4ODE6XHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnByaXYtXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcbjU4ODI6XHRcbjU4ODM6XHRcdGxpc3Rfc3BsaWNlX2luaXQoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfcGVuZGluZ19saXN0LCBcdTAwMjZsb2NhbCk7XG41ODg0Olx0XHRwcml2LVx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50ID0gMDtcbjU4ODU6XHRcbjU4ODY6XHRcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VyeF91cmJfbG9jaywgZmxhZ3MpO1xuNTg4NzpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODkzMAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDE5NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipDb21waWxlciBFcnJvciBMZWFkcyB0byBGdXp6aW5nIEhhbHQqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uLiBJJiMzOTttIHN0YXJpbmcgYXQgbGluZSA1ODcwLCBhbmQgYHByaXZgIGlzIGJlaW5nIHVzZWQgKmJlZm9yZSogaXQmIzM5O3MgZGVjbGFyZWQgb24gbGluZSA1ODcxLiBBYnNvbHV0ZWx5IGEgY2xhc3NpYyBDIGNvbXBpbGVyIGVycm9yLiBObyB3YXkgYXJvdW5kIGl0LiBUaGF0JiMzOTtzIGEgc2hvd3N0b3BwZXIuIFRoZSBrZXJuZWwgd29uJiMzOTt0IGNvbXBpbGUuIElmIGl0IGRvZXNuJiMzOTt0IGNvbXBpbGUsIHRoZW4gZnV6emluZyBpcyBkZWFkIGluIHRoZSB3YXRlci4KCkhhbmcgb24gYSBzZWNvbmTigKYgaXMgdGhlcmUgKmFueSogc2NlbmFyaW8gd2hlcmUgdGhpcyBjb3VsZCBiZSB2YWxpZCBDPyBQcm9iYWJseSBub3QsIEMgaXMgcHJldHR5IHN0cmljdCBhYm91dCB0aGF0LiBZb3UgY2FuJiMzOTt0IGp1c3QgdGhyb3cgYW4gaWRlbnRpZmllciBvdXQgdGhlcmUgYmVmb3JlIGl0cyBkZWNsYXJhdGlvbi4gVW5sZXNz4oCmIHdhaXQsIGNvdWxkIGBwcml2YCBiZSBhIGdsb2JhbCB2YXJpYWJsZSBkZWNsYXJlZCBpbiBzb21lIGluY2x1ZGVkIGhlYWRlcj8gTGV0JiMzOTtzIG5vdCBqdW1wIHRvIGNvbmNsdXNpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgaXQmIzM5O3MgZGVmaW5lZCBnbG9iYWxseSBhbnl3aGVyZS4KCk9rYXksIGxldCYjMzk7cyBzZWUgaWYgdGhlcmUgaXMgYSBnbG9iYWwgdmFyaWFibGUgbmFtZWQgYHByaXZgIHNvbWV3aGVyZSBpbiB0aGUga2VybmVsIGNvZGUuIEl0IHdvdWxkIGhhdmUgdG8gYmUgaW4gc2NvcGUgaGVyZSwgd2hpY2ggbWVhbnMgaXQgd291bGQgaGF2ZSB0byBiZSBkZWNsYXJlZCBpbiBhIGhlYWRlciBmaWxlIGluY2x1ZGVkIGJ5IGBjb3JlLmNgLiBTbywgSSBuZWVkIHRvIGNoZWNrIGFsbCB0aGUgaGVhZGVycyBpbmNsdWRlZCBieSBgY29yZS5jYCB0byBzZWUgaWYgYHByaXZgIGlzIGRlY2xhcmVkIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V4dGVybiAuKiBwcml2OyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2luY2x1ZGUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk0MjAKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBEZWNsYXJhdGlvbiBvZiBgcHJpdmAgaW4gYGNvcmUuY2AqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHNvbWV0aGluZyBhYm91dCB0aGUgdmFyaWFibGUgYHByaXZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCBgcHJpdmAgaXMgZGVjbGFyZWQgYXMgYSBnbG9iYWwgdmFyaWFibGUgd2l0aGluIHRoZSBgY29yZS5jYCBmaWxlLiBUaGlzIGlzIGZvdW5kYXRpb25hbDsgd2l0aG91dCB0aGlzIGRlY2xhcmF0aW9uLCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGNvZGUgZnVuY3Rpb25zIGlzIGltbWVkaWF0ZWx5IHN1c3BlY3QuIEkgbmVlZCB0byBrbm93IHdoZXJlIGl0JiMzOTtzIGRlZmluZWQgYW5kIHdoYXQgaXRzIHNjb3BlIGlzLiBJZiBpdCYjMzk7cyAqbm90KiBnbG9iYWxseSBkZWNsYXJlZCBpbiBgY29yZS5jYCwgdGhlbiBJIG5lZWQgdG8gYWRqdXN0IG15IG1lbnRhbCBtb2RlbCBvZiBob3cgZGF0YSBpcyBiZWluZyBzaGFyZWQgb3IgYWNjZXNzZWQuIE1heWJlIGl0JiMzOTtzIGEgc3RhdGljIHZhcmlhYmxlPyBPciBkZWNsYXJlZCBpbiBhIGhlYWRlciBhbmQgaW5jbHVkZWQ/IEVpdGhlciB3YXksIEkgbmVlZCB0byBrbm93IHRoZSB0cnVlIHNjb3BlIG9mIHRoaXMgdmFyaWFibGUuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGFueSBzdWJzZXF1ZW50IGFuYWx5c2lzIEkgaW50ZW5kIHRvIHBlcmZvcm0gb24gdGhlIGNvZGViYXNlLiBJIGFtIGdvaW5nIHRvIG5lZWQgdG8ga25vdywgcHJlY2lzZWx5LCB0aGUgY29udGV4dCBvZiB0aGUgdmFyaWFibGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBydGw4eHh4dV9wcml2IFxcKnByaXY7JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2MS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTE2MjpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cdHN0cnVjdCBydGw4eHh4dV90eF91cmIgKnR4X3VyYiA9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTg3MC1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo1ODcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVx0c3RydWN0IHJ0bDh4eHh1X3J4X3VyYiAqcnhfdXJiLCAqdG1wO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NjEyMTpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjEyMi1cdHN0cnVjdCBydGw4NzIzYnVfYzJoICpjMmg7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NjI2MT1zdHJ1Y3QgcnRsOHh4eHVfcnhfdXBkYXRlX3Jzc2lfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MjYyOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MjYzLVx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03MzcwPXN0cnVjdCBydGw4eHh4dV9pdGVyX3N0YXNfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzcxOlx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03MzcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTczODg9c3RhdGljIHZvaWQgcnRsOHh4eHVfd2F0Y2hkb2dfY2FsbGJhY2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXHRzdHJ1Y3QgcnRsOHh4eHVfc3Rhc19lbnRyeSAqc3RhX2VudHJ5LCAqdG1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NzM5MzpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM5NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy03NzQ3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDktXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03OTY2PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6Nzk2ODpcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDgwOAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDM5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb246IFJlZmFjdG9yaW5nIHdpdGggQ29tcGlsZXIgRXJyb3IqKgoKT2theSwgc28gSSYjMzk7dmUgaGl0IGEgY29tcGlsZXIgZXJyb3Ig4oCTIG5vIGdsb2JhbCBgcHJpdmAuLi4gd2hpY2ggbWVhbnMgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYnVpbGQgZmFpbHVyZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O1dlbGwsIGEgY29tcGlsZXIgZXJyb3IgbWVhbnMgaXQmIzM5O3MgdW5mdXp6YWJsZS4mIzM0OyBCdXQgaG9sZCBvbiwgbGV0JiMzOTtzIHRoaW5rIGNyaXRpY2FsbHkuIFRoZSBpbnN0cnVjdGlvbnMgY2xlYXJseSBzdGF0ZSB0aGF0IHdlIHNob3VsZCBkaXNyZWdhcmQgcGF0Y2hlcyB0aGF0ICpvbmx5KiBjb250YWluIHNwZWNpZmljIHR5cGVzIG9mIGNoYW5nZXMuIEkgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGlzLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGZvciByZWZhY3RvcmluZyBvZiB0aGlzIHR5cGUuCgpMZXQmIzM5O3MgZ28gYmFjayBhbmQgZXZhbHVhdGUgaWYgdGhpcyBxdWFsaWZpZXMgZm9yIGEgZGlzcmVnYXJkLiBUaGUgZGVzY3JpcHRpb24gc2F5cyB0byBpZ25vcmUgcGF0Y2hlcyB0aGF0IGFyZSBvbmx5IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvZGUgY29tbWVudHMsIG9yIGxvZ2dpbmcsIHN1Y2ggYXMgYHByX2VycmAgb3IgYHByaW50a2AuIFRoaXMgKmxvb2tzKiBsaWtlIGEgcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdl4oCUbG9nZ2luZyByZWZhY3RvcmluZ+KAlGFuZCB0aGUgdHlwbyB0aGF0JiMzOTtzIGNhdXNpbmcgdGhlIGJ1aWxkIHRvIGZhaWwgZG9lc24mIzM5O3QgbWFrZSBpdCBhICpmdW5jdGlvbmFsKiBjaGFuZ2UgdGhhdCB3YXJyYW50cyBmdXp6aW5nLiBJdCBqdXN0IGluZGljYXRlcyBhIGJyb2tlbiBwYXRjaCwgaXQgd2lsbCBiZSByZWplY3RlZC4KCldhaXQgYSBtaW51dGUsIGNvdWxkIGBwcml2YCBiZSBhIG1hY3JvIGRlZmluZWQgc29tZXdoZXJlPyBJIG5lZWQgdG8gYmUgdGhvcm91Z2guIEkgYWxyZWFkeSBjaGVja2VkIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9gIGFyZWEuIEkgYWxzbyBsb29rZWQgaW4gdGhlIGluY2x1ZGUgZGlyZWN0b3J5IGZvciBtYWNybyBkZWZpbml0aW9ucy4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBhIGRlYWQgZW5kLiBPa2F5LCB0aGF0JiMzOTtzIGVub3VnaCBpbnZlc3RpZ2F0aW9uLCBJIHdpbGwgbWFyayB0aGlzIGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNyAwNTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDsjZGVmaW5lIHByaXYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaD0xOTIxPXZvaWQgaGNpX2Nvbm5fZGVsX3N5c2ZzKHN0cnVjdCBoY2lfY29ubiAqY29ubik7XG4tLVxuaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmgtMTk5NS1cbmluY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oOjE5OTY6I2RlZmluZSBwcml2YWN5X21vZGVfY2FwYWJsZShkZXYpIChsbF9wcml2YWN5X2NhcGFibGUoZGV2KSBcdTAwMjZcdTAwMjYgXFxcbmluY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oLTE5OTctXHRcdFx0XHQgICAoKGRldiktXHUwMDNlY29tbWFuZHNbMzldIFx1MDAyNiAweDA0KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE2NjgKCQkJCQkJCW91dHB1dDogMTE5CgkJCQkJCQl0aG91Z2h0czogMTIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipQYXRjaCBBbmFseXNpczogV29ydGhGdXp6aW5nPWZhbHNlKioKCk9rYXksIHNvIGluaXRpYWxseSBJIHNhdyBhIGNvbXBpbGVyIGVycm9yIGFuZCBpbW1lZGlhdGVseSB0aG91Z2h0ICYjMzQ7bm8sIG5vdCB3b3J0aCBmdXp6aW5nLiYjMzQ7IEEgY29tcGlsZXIgZXJyb3IgYXV0b21hdGljYWxseSBkaXNxdWFsaWZpZXMgaXQuIFRoZSBwYXRjaCYjMzk7cyBwcmltYXJ5IGludGVudCBhcHBlYXJzIHRvIGJlIHB1cmVseSBjb3NtZXRpYzogbG9nZ2luZyByZWZhY3RvcmluZy4gQnV0IGxldCYjMzk7cyBiZSB0aG9yb3VnaCwgbm8gcG9pbnQgbWFraW5nIGFuIGFzc3VtcHRpb24uCgpOb3csIEkmIzM5O3ZlIGNoZWNrZWQgYWxsIG9mIHRoZSBjaGFuZ2VkIGZpbGVzIChgODE4OGUuY2AsIGA4MTg4Zi5jYCwgYDgxOTJlLmNgLCBgODE5MmYuY2AsIGA4NzIzYS5jYCwgYDg3MjNiLmNgLCBhbmQgYGNvcmUuY2ApLiBJdCYjMzk7cyB0aGUgc2FtZSBwYXR0ZXJuIGFjcm9zcyBhbGwgb2YgdGhlbS4gRWFjaCBmdW5jdGlvbiBpbiB0aGlzIHBhdGNoIGlzIHJlZmFjdG9yaW5nIGhvdyBgZGV2X3dhcm5gIGlzIGNhbGxlZC4gSXQmIzM5O3Mgc2ltcGx5IHJlcGxhY2luZyBgJmFtcDtwcml2LSZndDt1ZGV2LSZndDtkZXZgIHdpdGggYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSwgaW50cm9kdWNlZCBmb3IgdGhlIGNhbGwuIFB1cmVseSBkZWNvcmF0aXZlLiBObyBmdW5jdGlvbmFsIGNoYW5nZXMsIG5vIGxvZ2ljIGFsdGVyYXRpb24sIG5vdGhpbmcgdGhhdCB3b3VsZCBpbXBhY3QgZXhlY3V0aW9uLgoKSSBkaWQgYSBzZWNvbmQgcmV2aWV3IG9mIHRoZSBkaWZmIGp1c3QgdG8gbWFrZSBzdXJlIEkgd2FzbiYjMzk7dCBtaXNzaW5nIGFueXRoaW5nIHN1YnRsZSwgYW5kIHRoZSBjb25jbHVzaW9uIGlzIHRoZSBzYW1lLiBUaGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaXMgdGhlIG9ubHkgZnVuY3Rpb25hbCBjaGFuZ2UsIGJ1dCBpdCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IuIFRoaXMgY29kZSBjYW4mIzM5O3QgYmUgZXhlY3V0ZWQgYmVjYXVzZSBvZiB0aGUgY29tcGlsZXIgZXJyb3IgYW5kIHRoZSBwYXRjaCB3b24mIzM5O3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZSBzeXN0ZW0uCgpUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2gmIzM5O3Mgb25seSBlZmZlY3RzIGFyZSBhZXN0aGV0aWMgaW1wcm92ZW1lbnRzIChvciBpbiB0aGUgY2FzZSBvZiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgLCBicmVha2FnZSkuIEkmIzM5O2xsIG1hcmsgaXQgYXMgc3VjaCBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTcgMDU6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHNwZWNpZmljYWxseSByZWZhY3RvcmluZyBsb2dnaW5nIGNhbGxzIHRvIHVzZSBhIGxvY2FsIGBkZXZgIHZhcmlhYmxlIGluc3RlYWQgb2YgYFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgIGluIGBkZXZfd2FybmAuIEl0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IgYnkgdXNpbmcgdGhlIGBwcml2YCB2YXJpYWJsZSBiZWZvcmUgaXQgaXMgZGVjbGFyZWQsIHNvIHRoZSBjb2RlIGNhbm5vdCBldmVuIGJlIGNvbXBpbGVkIG9yIGV4ZWN1dGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBjb250YWlucyBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzcGVjaWZpY2FsbHkgcmVmYWN0b3JpbmcgbG9nZ2luZyBjYWxscyB0byB1c2UgYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2YCBpbiBgZGV2X3dhcm5gLiBJdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaW50cm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIGJ5IHVzaW5nIHRoZSBgcHJpdmAgdmFyaWFibGUgYmVmb3JlIGl0IGlzIGRlY2xhcmVkLCBzbyB0aGUgY29kZSBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCBvciBleGVjdXRlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE3IDA1OjU2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDoxNC4xODE5NzY0MDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzgxODEzNDM4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHNwZWNpZmljYWxseSByZWZhY3RvcmluZyBsb2dnaW5nIGNhbGxzIHRvIHVzZSBhIGxvY2FsIGBkZXZgIHZhcmlhYmxlIGluc3RlYWQgb2YgYFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXZgIGluIGBkZXZfd2FybmAuIEl0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IgYnkgdXNpbmcgdGhlIGBwcml2YCB2YXJpYWJsZSBiZWZvcmUgaXQgaXMgZGVjbGFyZWQsIHNvIHRoZSBjb2RlIGNhbm5vdCBldmVuIGJlIGNvbXBpbGVkIG9yIGV4ZWN1dGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6MTQuMTgxOTgxNDQ2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjE4NTMzMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBjMzY4MTIxOTkyYTQ3Y2YyYTllY2JkZTVhM2U1YTAwMzE5Njk0NWI3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDE3IDA1OjU0OjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuY1xcbmluZGV4IGZlYTVhZWM5Y2VkOTkuLjRhNjQ2MzNiMmRhM2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jXFxuQEAgLTY0Myw2ICs2NDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTg4ZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgcmVnX2VhNCwgcmVnX2VhYywgcmVnX2U5NCwgcmVnX2U5YywgdmFsMzI7XFxuIFxcdGludCByZXN1bHQgPSAwO1xcbiBcXG5AQCAtNzQwLDcgKzc0MSw3IEBAIHN0YXRpYyBpbnQgcnRsODE4OGV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lYWMgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDI7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcbiBvdXQ6XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuY1xcbmluZGV4IDU1NTZhYWQxYTdhZDMuLjY4NjA5Y2UzN2FiMDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jXFxuQEAgLTc4OSw2ICs3ODksNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhmdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFxuIHZvaWQgcnRsODE4OGZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgdmFsMzI7XFxuIFxcdHUzMiByZl9hbW9kZSwgbHN0ZjtcXG4gXFx0aW50IGk7XFxuQEAgLTgxOSw3ICs4MjAsNyBAQCB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdH1cXG4gXFxuIFxcdGlmIChpID09IDEwMClcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIkxDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cXFxcblxcXCIpO1xcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCJMQyBjYWxpYnJhdGlvbiB0aW1lZCBvdXQuXFxcXG5cXFwiKTtcXG4gXFxuIFxcdHJ0bDh4eHh1X3dyaXRlX3JmcmVnKHByaXYsIFJGX0EsIFJGNjA1Ml9SRUdfTU9ERV9BRywgcmZfYW1vZGUpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jXFxuaW5kZXggNjkwYWNlMzAzMTUwMy4uODM4NWFkYTUzMmIzNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcXG5AQCAtNzQyLDYgKzc0Miw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcXG4gXFx0aW50IHJlc3VsdCA9IDA7XFxuIFxcbkBAIC04NjAsNyArODYxLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0ICAgICgocmVnX2VhYyBcXHUwMDI2IDB4MDNmZjAwMDApICE9IDB4MDAzNjAwMDApKVxcbiBcXHRcXHRyZXN1bHQgfD0gMHgwMjtcXG4gXFx0ZWxzZVxcbi1cXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LCBcXFwiJXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcXFxuXFxcIixcXG4rXFx0XFx0ZGV2X3dhcm4oZGV2LCBcXFwiJXM6IFBhdGggQSBSWCBJUUsgZmFpbGVkIVxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fKTtcXG4gXFxuIG91dDpcXG5AQCAtODY5LDYgKzg3MCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjO1xcbiBcXHRpbnQgcmVzdWx0ID0gMDtcXG4gXFxuQEAgLTkxMCw3ICs5MTIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHQgICAgKChyZWdfZWJjIFxcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpXFxuIFxcdFxcdHJlc3VsdCB8PSAweDAxO1xcbiBcXHRlbHNlXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogUGF0aCBCIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogUGF0aCBCIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgX19mdW5jX18pO1xcbiBcXG4gXFx0cmV0dXJuIHJlc3VsdDtcXG5AQCAtOTE4LDYgKzkyMCw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmV1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjtcXG4gXFx0aW50IHJlc3VsdCA9IDA7XFxuIFxcbkBAIC0xMDQwLDcgKzEwNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHQgICAgKChyZWdfZWNjIFxcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXFxuIFxcdFxcdHJlc3VsdCB8PSAweDAyO1xcbiBcXHRlbHNlXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgX19mdW5jX18pO1xcbiBcXG4gb3V0OlxcbkBAIC0xNDk1LDYgKzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTkyZXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1OCB2YWw4O1xcbiBcXHRpbnQgY291bnQsIHJldCA9IDA7XFxuIFxcbkBAIC0xNTIxLDcgKzE1MjUsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHR9XFxuIFxcbiBcXHRpZiAoIWNvdW50KSB7XFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fKTtcXG4gXFx0XFx0cmV0ID0gLUVCVVNZO1xcbiBcXHRcXHRnb3RvIGV4aXQ7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xcbmluZGV4IDVmMDc2ZGE0YjU1MDYuLjBiOGMwNjgyMTVkNzAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jXFxuQEAgLTY4MSw2ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTkyZnVfaW5pdF9hZ2dyZWdhdGlvbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFxuIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3BhcnNlX2VmdXNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHN0cnVjdCBydGw4MTkyZnVfZWZ1c2UgKmVmdXNlID0gXFx1MDAyNnByaXYtXFx1MDAzZWVmdXNlX3dpZmkuZWZ1c2U4MTkyZnU7XFxuIFxcdGludCBpO1xcbiBcXG5AQCAtNzMxLDcgKzczMiw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3BhcnNlX2VmdXNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHRwcml2LVxcdTAwM2VyZmVfdHlwZSA9IGVmdXNlLVxcdTAwM2VyZmVfb3B0aW9uIFxcdTAwMjYgMHgxZjtcXG4gXFxuIFxcdGlmIChwcml2LVxcdTAwM2VyZmVfdHlwZSAhPSA1IFxcdTAwMjZcXHUwMDI2IHByaXYtXFx1MDAzZXJmZV90eXBlICE9IDEpXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsXFxuK1xcdFxcdGRldl93YXJuKGRldixcXG4gXFx0XFx0XFx0IFxcXCIlczogUkZFIHR5cGUgJWQgd2FzIG5vdCB0ZXN0ZWQuIFBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIGxpbnV4LXdpcmVsZXNzQHZnZXIua2VybmVsLm9yZyBhYm91dCB0aGlzLlxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fLCBwcml2LVxcdTAwM2VyZmVfdHlwZSk7XFxuIFxcbkBAIC0xMDIyLDYgKzEwMjMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgdmFsMzI7XFxuIFxcdHUzMiByZl8weDU4X2ksIHJmXzB4NThfcTtcXG4gXFx0dTggcmZlID0gcHJpdi1cXHUwMDNlcmZlX3R5cGU7XFxuQEAgLTExMDksNyArMTExMSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lYmMgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwNDIwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDE7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcbiBcXHRyZXR1cm4gcmVzdWx0O1xcbkBAIC0xMTE3LDYgKzExMTksNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4MTkyZnVfcnhfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYywgdmFsMzI7XFxuIFxcdGludCByZXN1bHQgPSAwO1xcbiBcXHRpbnQga3RpbWU7XFxuQEAgLTEyNDYsNyArMTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lY2MgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDI7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcbiBcXHRyZXR1cm4gcmVzdWx0O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNhLmNcXG5pbmRleCAxOGUwMzhiODJmNDkwLi4zNTI1ZWNmMDdiNDgyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xcbkBAIC00MTMsNiArNDEzLDcgQEAgc3RhdGljIGludCBydGw4NzIzYXVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBzdGF0aWMgaW50IHJ0bDg3MjNhdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHU4IHZhbDg7XFxuIFxcdGludCBjb3VudCwgcmV0ID0gMDtcXG4gXFxuQEAgLTQzOSw3ICs0NDAsNyBAQCBzdGF0aWMgaW50IHJ0bDg3MjNhdV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXHR9XFxuIFxcbiBcXHRpZiAoIWNvdW50KSB7XFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0IF9fZnVuY19fKTtcXG4gXFx0XFx0cmV0ID0gLUVCVVNZO1xcbiBcXHRcXHRnb3RvIGV4aXQ7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuY1xcbmluZGV4IGUzMTRlZjk5MWIzODguLjVjMDc3YjEzNzJlZWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYi5jXFxuQEAgLTEyMjUsNiArMTIyNSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDg3MjNidV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1OCB2YWw4O1xcbiBcXHR1MTYgdmFsMTY7XFxuIFxcdHUzMiB2YWwzMjtcXG5AQCAtMTI1Niw3ICsxMjU3LDcgQEAgc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKCFjb3VudCkge1xcbi1cXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LCBcXFwiJXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIFxcdFxcdHJldCA9IC1FQlVTWTtcXG4gXFx0XFx0Z290byBleGl0O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXFxuaW5kZXggNjQ2ZmU3NmIwODZlNy4uOGU3ODEzNGE4MTMxMiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jXFxuQEAgLTIxODcsNiArMjE4Nyw3IEBAIHZvaWQgcnRsOHh4eHVfZmlybXdhcmVfc2VsZl9yZXNldChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gc3RhdGljIGludFxcbiBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHRjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmVnOHZhbCAqYXJyYXkgPSBwcml2LVxcdTAwM2Vmb3BzLVxcdTAwM2VtYWN0YWJsZTtcXG4gXFx0aW50IGksIHJldDtcXG4gXFx0dTE2IHJlZztcXG5AQCAtMjIwMSw3ICsyMjAyLDcgQEAgcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcbiBcXHRcXHRyZXQgPSBydGw4eHh4dV93cml0ZTgocHJpdiwgcmVnLCB2YWwpO1xcbiBcXHRcXHRpZiAocmV0ICE9IDEpIHtcXG4tXFx0XFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0ZGV2X3dhcm4oZGV2LFxcbiBcXHRcXHRcXHRcXHQgXFxcIkZhaWxlZCB0byBpbml0aWFsaXplIE1BQyBcXFwiXFxuIFxcdFxcdFxcdFxcdCBcXFwiKHJlZzogJTA0eCwgdmFsICUwMngpXFxcXG5cXFwiLCByZWcsIHZhbCk7XFxuIFxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbkBAIC0yMjI5LDYgKzIyMzAsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZWczMnZhbCAqYXJyYXkpXFxuIHtcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldjtcXG4gXFx0aW50IGksIHJldDtcXG4gXFx0dTE2IHJlZztcXG4gXFx0dTMyIHZhbDtcXG5AQCAtMjI0Miw3ICsyMjQ0LDcgQEAgaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcbiBcXHRcXHRyZXQgPSBydGw4eHh4dV93cml0ZTMyKHByaXYsIHJlZywgdmFsKTtcXG4gXFx0XFx0aWYgKHJldCAhPSBzaXplb2YodmFsKSkge1xcbi1cXHRcXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRkZXZfd2FybihkZXYsXFxuIFxcdFxcdFxcdFxcdCBcXFwiRmFpbGVkIHRvIGluaXRpYWxpemUgUEhZXFxcXG5cXFwiKTtcXG4gXFx0XFx0XFx0cmV0dXJuIC1FQUdBSU47XFxuIFxcdFxcdH1cXG5AQCAtMjM4Nyw2ICsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcdFxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgKmFycmF5LFxcbiBcXHRcXHRcXHRcXHQgZW51bSBydGw4eHh4dV9yZnBhdGggcGF0aClcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHRpbnQgaSwgcmV0O1xcbiBcXHR1OCByZWc7XFxuIFxcdHUzMiB2YWw7XFxuQEAgLTI0MjEsNyArMjQyNCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaW5pdF9yZl9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiBcXG4gXFx0XFx0cmV0ID0gcnRsOHh4eHVfd3JpdGVfcmZyZWcocHJpdiwgcGF0aCwgcmVnLCB2YWwpO1xcbiBcXHRcXHRpZiAocmV0KSB7XFxuLVxcdFxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsXFxuK1xcdFxcdFxcdGRldl93YXJuKGRldixcXG4gXFx0XFx0XFx0XFx0IFxcXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBSRlxcXFxuXFxcIik7XFxuIFxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbiBcXHRcXHR9XFxuQEAgLTI1NTgsNiArMjU2MSw3IEBAIGludCBydGw4eHh4dV9pbml0X2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFxuIGludCBydGw4eHh4dV9hdXRvX2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1MzIgdmFsMzI7XFxuIFxcdGludCByZXQgPSAwO1xcbiBcXHRpbnQgaTtcXG5AQCAtMjU3NSw3ICsyNTc5LDcgQEAgaW50IHJ0bDh4eHh1X2F1dG9fbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gXFx0aWYgKCFpKSB7XFxuIFxcdFxcdHJldCA9IC1FQlVTWTtcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIkxMVCB0YWJsZSBpbml0IGZhaWxlZFxcXFxuXFxcIik7XFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIkxMVCB0YWJsZSBpbml0IGZhaWxlZFxcXFxuXFxcIik7XFxuIFxcdH1cXG4gXFxuIFxcdHJldHVybiByZXQ7XFxuQEAgLTMwODksNiArMzA5Myw3IEBAIHZvaWQgcnRsOHh4eHVfbWFjX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbiBcXG4gc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCByZWdfZWE0LCB2YWwzMjtcXG4gXFx0aW50IHJlc3VsdCA9IDA7XFxuIFxcbkBAIC0zMTM4LDcgKzMxNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuIFxcdCAgICAoKHJlZ19lYWMgXFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcXG4gXFx0XFx0cmVzdWx0IHw9IDB4MDI7XFxuIFxcdGVsc2VcXG4tXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuK1xcdFxcdGRldl93YXJuKGRldiwgXFxcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCBfX2Z1bmNfXyk7XFxuIG91dDpcXG4gXFx0cmV0dXJuIHJlc3VsdDtcXG5AQCAtMzE0Niw2ICszMTUxLDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiBcXG4gc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbiB7XFxuK1xcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuIFxcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjO1xcbiBcXHRpbnQgcmVzdWx0ID0gMDtcXG4gXFxuQEAgLTMxNzQsNyArMzE4MCw3IEBAIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0ICAgICgoKHJlZ19lY2MgXFx1MDAyNiAweDAzZmYwMDAwKSBcXHUwMDNlXFx1MDAzZSAxNikgIT0gMHgzNikpXFxuIFxcdFxcdHJlc3VsdCB8PSAweDAyO1xcbiBcXHRlbHNlXFxuLVxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbitcXHRcXHRkZXZfd2FybihkZXYsIFxcXCIlczogUGF0aCBCIFJYIElRSyBmYWlsZWQhXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgX19mdW5jX18pO1xcbiBvdXQ6XFxuIFxcdHJldHVybiByZXN1bHQ7XFxuQEAgLTM2MzgsNiArMzY0NCw3IEBAIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3NldF9hbXBkdV9taW5fc3BhY2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGRlbnNpdHkpXFxuIFxcbiBpbnQgcnRsOHh4eHVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4ge1xcbitcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2O1xcbiBcXHR1OCB2YWw4O1xcbiBcXHR1OCB2YWwzMjtcXG4gXFx0aW50IGNvdW50LCByZXQgPSAwO1xcbkBAIC0zNjU1LDcgKzM2NjIsNyBAQCBpbnQgcnRsOHh4eHVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKCFjb3VudCkge1xcbi1cXHRcXHRkZXZfd2FybihcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2LFxcbitcXHRcXHRkZXZfd2FybihkZXYsXFxuIFxcdFxcdFxcdCBcXFwiJXM6IFJYIHBvbGwgdGltZWQgb3V0ICgweDA1ZjgpXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuIFxcdFxcdHJldCA9IC1FQlVTWTtcXG4gXFx0XFx0Z290byBleGl0O1xcbkBAIC01ODYwLDYgKzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuIFxcbiBzdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuIHtcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldjtcXG4gXFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuIFxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG4gXFx0c3RydWN0IGxpc3RfaGVhZCBsb2NhbDtcXG5AQCAtNTg5Myw3ICs1OTAxLDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRcXHRcXHRydGw4eHh4dV9xdWV1ZV9yeF91cmIocHJpdiwgcnhfdXJiKTtcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdGRlZmF1bHQ6XFxuLVxcdFxcdFxcdGRldl93YXJuKFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsXFxuK1xcdFxcdFxcdGRldl93YXJuKGRldixcXG4gXFx0XFx0XFx0XFx0IFxcXCJmYWlsZWQgdG8gcmVxdWV1ZSB1cmIgd2l0aCBlcnJvciAlaVxcXFxuXFxcIiwgcmV0KTtcXG4gXFx0XFx0XFx0c2tiID0gKHN0cnVjdCBza19idWZmICopcnhfdXJiLVxcdTAwM2V1cmIuY29udGV4dDtcXG4gXFx0XFx0XFx0ZGV2X2tmcmVlX3NrYihza2IpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDoxNC42MDQ1ODkyMTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMzc3NTg3MTU3MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgY29udGFpbnMgcHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3BlY2lmaWNhbGx5IHJlZmFjdG9yaW5nIGxvZ2dpbmcgY2FsbHMgdG8gdXNlIGEgbG9jYWwgYGRldmAgdmFyaWFibGUgaW5zdGVhZCBvZiBgXFx1MDAyNnByaXYtXFx1MDAzZXVkZXYtXFx1MDAzZWRldmAgaW4gYGRldl93YXJuYC4gSXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZSBpbiBgcnRsOHh4eHVfcnhfdXJiX3dvcmtgIGludHJvZHVjZXMgYSBjb21waWxlciBlcnJvciBieSB1c2luZyB0aGUgYHByaXZgIHZhcmlhYmxlIGJlZm9yZSBpdCBpcyBkZWNsYXJlZCwgc28gdGhlIGNvZGUgY2Fubm90IGV2ZW4gYmUgY29tcGlsZWQgb3IgZXhlY3V0ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjMzY4MTIxOTkyYTQ3Y2YyYTllY2JkZTVhM2U1YTAwMzE5Njk0NWI3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMTcgMDU6NTQ6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmNcbmluZGV4IGZlYTVhZWM5Y2VkOTkuLjRhNjQ2MzNiMmRhM2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuY1xuQEAgLTY0Myw2ICs2NDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE4OGV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTc0MCw3ICs3NDEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VhYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbmluZGV4IDU1NTZhYWQxYTdhZDMuLjY4NjA5Y2UzN2FiMDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuY1xuQEAgLTc4OSw2ICs3ODksNyBAQCBzdGF0aWMgaW50IHJ0bDgxODhmdV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiB2YWwzMjtcbiBcdHUzMiByZl9hbW9kZSwgbHN0ZjtcbiBcdGludCBpO1xuQEAgLTgxOSw3ICs4MjAsNyBAQCB2b2lkIHJ0bDgxODhmX3BoeV9sY19jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoaSA9PSAxMDApXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiTEMgY2FsaWJyYXRpb24gdGltZWQgb3V0LlxcblwiKTtcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIkxDIGNhbGlicmF0aW9uIHRpbWVkIG91dC5cXG5cIik7XG4gXG4gXHRydGw4eHh4dV93cml0ZV9yZnJlZyhwcml2LCBSRl9BLCBSRjYwNTJfUkVHX01PREVfQUcsIHJmX2Ftb2RlKTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcbmluZGV4IDY5MGFjZTMwMzE1MDMuLjgzODVhZGE1MzJiMzYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuY1xuQEAgLTc0Miw2ICs3NDIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWE0LCByZWdfZWFjLCByZWdfZTk0LCByZWdfZTljLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTg2MCw3ICs4NjEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VhYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbkBAIC04NjksNiArODcwLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfcnhfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYztcbiBcdGludCByZXN1bHQgPSAwO1xuIFxuQEAgLTkxMCw3ICs5MTIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2ViYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAxO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC05MTgsNiArOTIwLDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1MzIgcmVnX2VhYywgcmVnX2ViNCwgcmVnX2ViYywgcmVnX2VjNCwgcmVnX2VjYywgdmFsMzI7XG4gXHRpbnQgcmVzdWx0ID0gMDtcbiBcbkBAIC0xMDQwLDcgKzEwNDMsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEIgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIG91dDpcbkBAIC0xNDk1LDYgKzE0OTgsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmV1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHRpbnQgY291bnQsIHJldCA9IDA7XG4gXG5AQCAtMTUyMSw3ICsxNTI1LDcgQEAgc3RhdGljIGludCBydGw4MTkyZXVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xuaW5kZXggNWYwNzZkYTRiNTUwNi4uMGI4YzA2ODIxNWQ3MCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jXG5AQCAtNjgxLDYgKzY4MSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxOTJmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3BhcnNlX2VmdXNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRzdHJ1Y3QgcnRsODE5MmZ1X2VmdXNlICplZnVzZSA9IFx1MDAyNnByaXYtXHUwMDNlZWZ1c2Vfd2lmaS5lZnVzZTgxOTJmdTtcbiBcdGludCBpO1xuIFxuQEAgLTczMSw3ICs3MzIsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdHByaXYtXHUwMDNlcmZlX3R5cGUgPSBlZnVzZS1cdTAwM2VyZmVfb3B0aW9uIFx1MDAyNiAweDFmO1xuIFxuIFx0aWYgKHByaXYtXHUwMDNlcmZlX3R5cGUgIT0gNSBcdTAwMjZcdTAwMjYgcHJpdi1cdTAwM2VyZmVfdHlwZSAhPSAxKVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LFxuK1x0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0IFwiJXM6IFJGRSB0eXBlICVkIHdhcyBub3QgdGVzdGVkLiBQbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcgYWJvdXQgdGhpcy5cXG5cIixcbiBcdFx0XHQgX19mdW5jX18sIHByaXYtXHUwMDNlcmZlX3R5cGUpO1xuIFxuQEAgLTEwMjIsNiArMTAyMyw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXG4gc3RhdGljIGludCBydGw4MTkyZnVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHZhbDMyO1xuIFx0dTMyIHJmXzB4NThfaSwgcmZfMHg1OF9xO1xuIFx0dTggcmZlID0gcHJpdi1cdTAwM2VyZmVfdHlwZTtcbkBAIC0xMTA5LDcgKzExMTEsNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2ViYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDQyMDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAxO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEIgSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC0xMTE3LDYgKzExMTksNyBAQCBzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiByZWdfZWFjLCByZWdfZWI0LCByZWdfZWJjLCByZWdfZWM0LCByZWdfZWNjLCB2YWwzMjtcbiBcdGludCByZXN1bHQgPSAwO1xuIFx0aW50IGt0aW1lO1xuQEAgLTEyNDYsNyArMTI0OSw3IEBAIHN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKChyZWdfZWNjIFx1MDAyNiAweDAzZmYwMDAwKSAhPSAweDAwMzYwMDAwKSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuK1x0XHRkZXZfd2FybihkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXG4gXHRyZXR1cm4gcmVzdWx0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xuaW5kZXggMThlMDM4YjgyZjQ5MC4uMzUyNWVjZjA3YjQ4MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2EuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzIzYS5jXG5AQCAtNDEzLDYgKzQxMyw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHRpbnQgY291bnQsIHJldCA9IDA7XG4gXG5AQCAtNDM5LDcgKzQ0MCw3IEBAIHN0YXRpYyBpbnQgcnRsODcyM2F1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoIWNvdW50KSB7XG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiJXM6IERpc2FibGluZyBNQUMgdGltZWQgb3V0XFxuXCIsXG4rXHRcdGRldl93YXJuKGRldiwgXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIFx0XHRyZXQgPSAtRUJVU1k7XG4gXHRcdGdvdG8gZXhpdDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmNcbmluZGV4IGUzMTRlZjk5MWIzODguLjVjMDc3YjEzNzJlZWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MjNiLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcyM2IuY1xuQEAgLTEyMjUsNiArMTIyNSw3IEBAIHN0YXRpYyB2b2lkIHJ0bDg3MjNidV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsODcyM2J1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHU4IHZhbDg7XG4gXHR1MTYgdmFsMTY7XG4gXHR1MzIgdmFsMzI7XG5AQCAtMTI1Niw3ICsxMjU3LDcgQEAgc3RhdGljIGludCBydGw4NzIzYnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcdH1cbiBcbiBcdGlmICghY291bnQpIHtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCIlczogRGlzYWJsaW5nIE1BQyB0aW1lZCBvdXRcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBEaXNhYmxpbmcgTUFDIHRpbWVkIG91dFxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gXHRcdHJldCA9IC1FQlVTWTtcbiBcdFx0Z290byBleGl0O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbmluZGV4IDY0NmZlNzZiMDg2ZTcuLjhlNzgxMzRhODEzMTIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcbkBAIC0yMTg3LDYgKzIxODcsNyBAQCB2b2lkIHJ0bDh4eHh1X2Zpcm13YXJlX3NlbGZfcmVzZXQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gc3RhdGljIGludFxuIHJ0bDh4eHh1X2luaXRfbWFjKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmVnOHZhbCAqYXJyYXkgPSBwcml2LVx1MDAzZWZvcHMtXHUwMDNlbWFjdGFibGU7XG4gXHRpbnQgaSwgcmV0O1xuIFx0dTE2IHJlZztcbkBAIC0yMjAxLDcgKzIyMDIsNyBAQCBydGw4eHh4dV9pbml0X21hYyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBcdFx0cmV0ID0gcnRsOHh4eHVfd3JpdGU4KHByaXYsIHJlZywgdmFsKTtcbiBcdFx0aWYgKHJldCAhPSAxKSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbitcdFx0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0XHQgXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBNQUMgXCJcbiBcdFx0XHRcdCBcIihyZWc6ICUwNHgsIHZhbCAlMDJ4KVxcblwiLCByZWcsIHZhbCk7XG4gXHRcdFx0cmV0dXJuIC1FQUdBSU47XG5AQCAtMjIyOSw2ICsyMjMwLDcgQEAgcnRsOHh4eHVfaW5pdF9tYWMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gaW50IHJ0bDh4eHh1X2luaXRfcGh5X3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0ICAgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JlZzMydmFsICphcnJheSlcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0aW50IGksIHJldDtcbiBcdHUxNiByZWc7XG4gXHR1MzIgdmFsO1xuQEAgLTIyNDIsNyArMjI0NCw3IEBAIGludCBydGw4eHh4dV9pbml0X3BoeV9yZWdzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIFx0XHRyZXQgPSBydGw4eHh4dV93cml0ZTMyKHByaXYsIHJlZywgdmFsKTtcbiBcdFx0aWYgKHJldCAhPSBzaXplb2YodmFsKSkge1xuLVx0XHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsXG4rXHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwiRmFpbGVkIHRvIGluaXRpYWxpemUgUEhZXFxuXCIpO1xuIFx0XHRcdHJldHVybiAtRUFHQUlOO1xuIFx0XHR9XG5AQCAtMjM4Nyw2ICsyMzg5LDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pbml0X3JmX3JlZ3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXHRcdFx0XHQgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JmcmVndmFsICphcnJheSxcbiBcdFx0XHRcdCBlbnVtIHJ0bDh4eHh1X3JmcGF0aCBwYXRoKVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRpbnQgaSwgcmV0O1xuIFx0dTggcmVnO1xuIFx0dTMyIHZhbDtcbkBAIC0yNDIxLDcgKzI0MjQsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2luaXRfcmZfcmVncyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcbiBcbiBcdFx0cmV0ID0gcnRsOHh4eHVfd3JpdGVfcmZyZWcocHJpdiwgcGF0aCwgcmVnLCB2YWwpO1xuIFx0XHRpZiAocmV0KSB7XG4tXHRcdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbitcdFx0XHRkZXZfd2FybihkZXYsXG4gXHRcdFx0XHQgXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBSRlxcblwiKTtcbiBcdFx0XHRyZXR1cm4gLUVBR0FJTjtcbiBcdFx0fVxuQEAgLTI1NTgsNiArMjU2MSw3IEBAIGludCBydGw4eHh4dV9pbml0X2xsdF90YWJsZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiBcbiBpbnQgcnRsOHh4eHVfYXV0b19sbHRfdGFibGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4ge1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtcbiBcdHUzMiB2YWwzMjtcbiBcdGludCByZXQgPSAwO1xuIFx0aW50IGk7XG5AQCAtMjU3NSw3ICsyNTc5LDcgQEAgaW50IHJ0bDh4eHh1X2F1dG9fbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIFx0aWYgKCFpKSB7XG4gXHRcdHJldCA9IC1FQlVTWTtcbi1cdFx0ZGV2X3dhcm4oXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCJMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cIik7XG4rXHRcdGRldl93YXJuKGRldiwgXCJMTFQgdGFibGUgaW5pdCBmYWlsZWRcXG5cIik7XG4gXHR9XG4gXG4gXHRyZXR1cm4gcmV0O1xuQEAgLTMwODksNiArMzA5Myw3IEBAIHZvaWQgcnRsOHh4eHVfbWFjX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lOTQsIHJlZ19lOWMsIHJlZ19lYTQsIHZhbDMyO1xuIFx0aW50IHJlc3VsdCA9IDA7XG4gXG5AQCAtMzEzOCw3ICszMTQzLDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFx0ICAgICgocmVnX2VhYyBcdTAwMjYgMHgwM2ZmMDAwMCkgIT0gMHgwMDM2MDAwMCkpXG4gXHRcdHJlc3VsdCB8PSAweDAyO1xuIFx0ZWxzZVxuLVx0XHRkZXZfd2FybihcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbitcdFx0ZGV2X3dhcm4oZGV2LCBcIiVzOiBQYXRoIEEgUlggSVFLIGZhaWxlZCFcXG5cIixcbiBcdFx0XHQgX19mdW5jX18pO1xuIG91dDpcbiBcdHJldHVybiByZXN1bHQ7XG5AQCAtMzE0Niw2ICszMTUxLDcgQEAgc3RhdGljIGludCBydGw4eHh4dV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIFxuIHN0YXRpYyBpbnQgcnRsOHh4eHVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0dTMyIHJlZ19lYWMsIHJlZ19lYjQsIHJlZ19lYmMsIHJlZ19lYzQsIHJlZ19lY2M7XG4gXHRpbnQgcmVzdWx0ID0gMDtcbiBcbkBAIC0zMTc0LDcgKzMxODAsNyBAQCBzdGF0aWMgaW50IHJ0bDh4eHh1X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHQgICAgKCgocmVnX2VjYyBcdTAwMjYgMHgwM2ZmMDAwMCkgXHUwMDNlXHUwMDNlIDE2KSAhPSAweDM2KSlcbiBcdFx0cmVzdWx0IHw9IDB4MDI7XG4gXHRlbHNlXG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuK1x0XHRkZXZfd2FybihkZXYsIFwiJXM6IFBhdGggQiBSWCBJUUsgZmFpbGVkIVxcblwiLFxuIFx0XHRcdCBfX2Z1bmNfXyk7XG4gb3V0OlxuIFx0cmV0dXJuIHJlc3VsdDtcbkBAIC0zNjM4LDYgKzM2NDQsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9zZXRfYW1wZHVfbWluX3NwYWNlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBkZW5zaXR5KVxuIFxuIGludCBydGw4eHh4dV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHR1OCB2YWw4O1xuIFx0dTggdmFsMzI7XG4gXHRpbnQgY291bnQsIHJldCA9IDA7XG5AQCAtMzY1NSw3ICszNjYyLDcgQEAgaW50IHJ0bDh4eHh1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXG4gXHR9XG4gXG4gXHRpZiAoIWNvdW50KSB7XG4tXHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsXG4rXHRcdGRldl93YXJuKGRldixcbiBcdFx0XHQgXCIlczogUlggcG9sbCB0aW1lZCBvdXQgKDB4MDVmOClcXG5cIiwgX19mdW5jX18pO1xuIFx0XHRyZXQgPSAtRUJVU1k7XG4gXHRcdGdvdG8gZXhpdDtcbkBAIC01ODYwLDYgKzU4NjcsNyBAQCBzdGF0aWMgdm9pZCBydGw4eHh4dV9xdWV1ZV9yeF91cmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXG4gXG4gc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIHtcbitcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXY7XG4gXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcbiBcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcbiBcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XG5AQCAtNTg5Myw3ICs1OTAxLDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcnhfdXJiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0XHRcdHJ0bDh4eHh1X3F1ZXVlX3J4X3VyYihwcml2LCByeF91cmIpO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRkZWZhdWx0OlxuLVx0XHRcdGRldl93YXJuKFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXYsXG4rXHRcdFx0ZGV2X3dhcm4oZGV2LFxuIFx0XHRcdFx0IFwiZmFpbGVkIHRvIHJlcXVldWUgdXJiIHdpdGggZXJyb3IgJWlcXG5cIiwgcmV0KTtcbiBcdFx0XHRza2IgPSAoc3RydWN0IHNrX2J1ZmYgKilyeF91cmItXHUwMDNldXJiLmNvbnRleHQ7XG4gXHRcdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6MTQuNjA0NTkyMTYzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTExOTUwMjAxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIFNlcmllcyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gZ2l2ZW4gdGhpcyBwYXRjaCBzZXJpZXMgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgXCJkb2VzIHRoaXMgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIGZ1enppbmc/XCIgSSBpbW1lZGlhdGVseSBzZWUgdGhhdCBpdCB0b3VjaGVzIHNldmVyYWwgZmlsZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9gIGRpcmVjdG9yeTogYDgxODhlLmNgLCBgODE4OGYuY2AsIGA4MTkyZS5jYCwgYDgxOTJmLmNgLCBgODcyM2EuY2AsIGA4NzIzYi5jYCwgYW5kIGBjb3JlLmNgLiBUaGF0J3MgYSBkZWNlbnQtc2l6ZWQgYXJlYSB0byBsb29rIGF0LlxuXG5Ob3csIGxvb2tpbmcgYXQgdGhlIGRpZmYsIGl0IHNlZW1zIHRoZXJlJ3MgYSBtaW5vciBtb2RpZmljYXRpb24gaW4gYHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hYC4gSXQncyBpbnRyb2R1Y2luZyBhIGxvY2FsIHZhcmlhYmxlIGBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O2AgYW5kIHRoZW4gcmVwbGFjaW5nIGluc3RhbmNlcyBvZiBgXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldmAgd2l0aCBgZGV2YCB3aXRoaW4gYGRldl93YXJuYCBjYWxscy4gVGhhdCdzIHVzdWFsbHkganVzdCBhIGNvZGUgc3R5bGUgdGhpbmcsIGltcHJvdmluZyByZWFkYWJpbGl0eSBvciByZWR1Y2luZyBjb2RlIGR1cGxpY2F0aW9uLiBJIHdvdWxkbid0IGV4cGVjdCB0aGlzIGFsb25lIHRvIGNoYW5nZSBhbnkgYmVoYXZpb3IsIGJ1dCBJIGFsd2F5cyB3YW50IHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcuXG5cblRoZW4sIHRoZXJlJ3MgYW5vdGhlciBpbnN0YW5jZSBvZiB0aGlzIHBhdHRlcm4gaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCB3aXRoaW4gYGNvcmUuY2AsIHRvby4gSG9sZCBvbi4uLnRoZSB2YXJpYWJsZSBgZGV2YCBpcyBpbml0aWFsaXplZCB1c2luZyBgcHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldmAuIEJ1dCwgYHByaXZgIGlzIGRlY2xhcmVkICphZnRlciogYGRldmAgaXMgaW5pdGlhbGl6ZWQ/IFRoYXQgbG9va3MgbGlrZSBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByZWFkLWJlZm9yZS13cml0ZSBidWcuIEkgbmVlZCB0byBiZSAqc3VyZSogdGhhdCdzIG5vdCB0aGUgY2FzZS4gTGV0J3MgZGlnIGRlZXBlciBpbnRvIHRoYXQgc2VjdGlvbiBvZiBgY29yZS5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDU4NjcuXG5cbk9rYXksIGxldCdzIHZlcmlmeSB0aGF0IHF1aWNrbHkgd2l0aCBgcmVhZC1maWxlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzYyMywiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcwOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjIzLjcyNDA5NzAwNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1NTY3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA1ODYwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI1ODYwOlxcdFxcdH1cXG41ODYxOlxcdFxcbjU4NjI6XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcXG41ODYzOlxcdFxcbjU4NjQ6XFx0XFx0aWYgKHBlbmRpbmcgXFx1MDAzZSBSVEw4WFhYVV9SWF9VUkJfUEVORElOR19XQVRFUilcXG41ODY1OlxcdFxcdFxcdHNjaGVkdWxlX3dvcmsoXFx1MDAyNnByaXYtXFx1MDAzZXJ4X3VyYl93cSk7XFxuNTg2NjpcXHR9XFxuNTg2NzpcXHRcXG41ODY4OlxcdHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG41ODY5OlxcdHtcXG41ODcwOlxcdFxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuNTg3MTpcXHRcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG41ODcyOlxcdFxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG41ODczOlxcdFxcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XFxuNTg3NDpcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbjU4NzU6XFx0XFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG41ODc2OlxcdFxcdGludCByZXQ7XFxuNTg3NzpcXHRcXG41ODc4OlxcdFxcdHByaXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJ0bDh4eHh1X3ByaXYsIHJ4X3VyYl93cSk7XFxuNTg3OTpcXHRcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2bG9jYWwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDoyMy43MjQzNTQ1NDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODIxNzEyMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IENvbXBpbGUgRXJyb3Igb3IgRnVuY3Rpb25hbCBDaGFuZ2U/KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGV4cGVydCBleWUgc3BvdHMgdGhlIHByb2JsZW0uIExpbmUgNTg3MCBpcyB3aGVyZSB0aGUgdHJvdWJsZSBiZWdpbnMuIEl0IGxvb2tzIGxpa2UgYGRldmAgaXMgYmVpbmcgaW5pdGlhbGl6ZWQgdXNpbmcgYHByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgICpiZWZvcmUqIGBwcml2YCBpcyBldmVuIGRlY2xhcmVkIG9uIGxpbmUgNTg3MS4gTXkgZmlyc3QgdGhvdWdodCBpcyBcImNvbXBpbGVyIGVycm9yIVwiIFRoYXQncyBhIGNsYXNzaWMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSwgcmlnaHQ/IEknZCBleHBlY3QgdGhlIGNvbXBpbGVyIHRvIGNob2tlIG9uIHRoYXQsIGFzc3VtaW5nIGl0J3Mgc3RhbmRhcmQgQy4gVGhlIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZCwgdGhvdWdoLCBzbyBpdCdzIGVpdGhlciBub3QgYSBjb21waWxlIGVycm9yIG9yIHRoZSBidWlsZCBpcyBicm9rZW4uXG5cbkJ1dCB3YWl0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBndWlkaW5nIG1lLCBzYXlpbmcgdGhhdCB0aGlzIHNob3VsZG4ndCBiZSB3b3J0aCBmdXp6aW5nIGlmIGl0J3MgZG9jdW1lbnRhdGlvbiBvciBkZWNvcmF0aXZlIGNoYW5nZXMuIEl0IHNlZW1zIGxpa2UgdGhlIHBhdGNoJ3MgKmludGVudCogaXMgdG8gY2hhbmdlIHRoZSBsb2dnaW5nIOKAkyByZXBsYWNpbmcgYFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgIHdpdGggdGhlIGxvY2FsIHZhcmlhYmxlIGBkZXZgIGluIGBkZXZfd2FybmAgY2FsbHMsIHByZXN1bWFibHkgZm9yIHJlYWRhYmlsaXR5LiBBIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZy4gU28gbXkgaW5pdGlhbCBhc3N1bXB0aW9uIGlzIGRlY29yYXRpdmUsIG1lYW5pbmcgdGhlIHdob2xlIHBvaW50IGlzIG5vdCBmdW5jdGlvbmFsLlxuXG5CdXQgaGVyZSdzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIEknbSB0aGlua2luZywgXCJJcyB0aGVyZSBhY3R1YWxseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGhvdyB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQ/XCIgQmVjYXVzZSBpZiB0aGUgY29kZSBjb21waWxlcywgdGhlIHVzYWdlIG9mIHVuaW5pdGlhbGl6ZWQgYHByaXZgIHdpbGwgZGVmaW5pdGVseSBsZWFkIHRvIHVuZGVmaW5lZCBiZWhhdmlvciBhbmQgbGlrZWx5IGEgY3Jhc2gsIG9yIG1lbW9yeSBjb3JydXB0aW9uLiBTaW5jZSB0aGUgcHJvbXB0IHN0YXRlcyB0aGF0IHRoZSBwYXRjaCBoYXMgYmVlbiBhcHBsaWVkLCBJJ20gbm93IHF1ZXN0aW9uaW5nIGhvdyB0aGF0IGNvdWxkIGhhcHBlbiBpZiB0aGUgY29kZSBpcyBpbnZhbGlkLlxuXG5JJ20gdGhpbmtpbmcsIFwiSXMgYHByaXZgIGEgZ2xvYmFsIG9yIHNvbWV0aGluZz9cIiBJJ20gY2hlY2tpbmcgaWYgdGhlIHNjb3BlIG9mIGBwcml2YCBpcyBzb21laG93IG1vcmUgdGhhbiBsb2NhbCB0byB0aGUgY3VycmVudCBmdW5jdGlvbi4gQnV0IG5vLCBpZiBgcHJpdmAgaXMgbG9jYWwsIHRoZW4gYFx1MDAyNnByaXYtXHUwMDNldWRldi1cdTAwM2VkZXZgICp3aWxsKiBiZSB1c2luZyBhbiB1bmluaXRpYWxpemVkIHZhbHVlIGFuZCBjYXVzZSBhIGNyYXNoLCBhbmQgdGhhdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEJ1dCwgd2FpdC4uLiBJIGp1c3QgcmVhbGl6ZWQgdGhlIGNvZGUgKmNhbid0KiBjb21waWxlIGJlY2F1c2Ugb2YgdGhlIEMgc2NvcGUgcnVsZXMuIGBwcml2YCBpcyBkZWNsYXJlZCAqYWZ0ZXIqIGl0J3MgdXNlZC4gYHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O2AgaXMgZGVjbGFyZWQgb24gbGluZSA1ODcxIGFuZCBhc3NpZ25lZCBvbiA1ODcwLCBsZWFkaW5nIHRvIHRoZSBjb21waWxlciBlcnJvciBgZXJyb3I6IOKAmHByaXbigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pYC5cblxuU2luY2UgdGhpcyBpcyBhIGNsZWFyIGNvbXBpbGVyIGVycm9yLCBpdCBtZWFucyB0aGUgcGF0Y2ggc2ltcGx5IHdpbGwgbm90IGJ1aWxkIGFuZCB0aGVyZWZvcmUsIGNhbm5vdCBiZSBleGVjdXRlZCwgYW5kIHRoZXJlZm9yZSwgaXMgbm90IHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkwOTcsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MjMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDozMi41NDYwNjk5MDZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc3MTI4ODYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE2NzMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0zNzg9ZW51bSBydGw4MTg4ZV90eF9ycHRfdGltaW5nIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0zODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjM4NDpzdGF0aWMgaW50IHJ0bDgxODhldV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0zODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTQyMz1zdGF0aWMgdm9pZCBydGw4MTg4ZXVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTQyNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjQyNTpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy00MjYtXFx0dTMyIHZhbDMyLCByc3I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1MjQ6c3RhdGljIHZvaWQgcnRsODE4OGV1X2luaXRfYWdncmVnYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUyNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1Mzc6c3RhdGljIGludCBydGw4MTg4ZXVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTUzOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1NTg6c3RhdGljIHZvaWQgcnRsODE4OGV1X3Jlc2V0XzgwNTEoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTU1OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo1NzA6c3RhdGljIGludCBydGw4MTg4ZXVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy01ODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjU4MjpzdGF0aWMgdm9pZCBydGw4MTg4ZXVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTU4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo2MDU6c3RhdGljIGludCBydGw4MTg4ZXVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTYwNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzo2MTA6c3RhdGljIGludCBydGw4MTg4ZXVfaXFrX3BhdGhfYShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtNjExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjY0NDpzdGF0aWMgaW50IHJ0bDgxODhldV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy02NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6NzUxOnN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTc1Mi1cXHRcXHRcXHRcXHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTkwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTA3OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy05MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTk5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6OTk0OnN0YXRpYyB2b2lkIHJ0bDgxODhlX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtOTk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMDAzOnN0YXRpYyBpbnQgcnRsODE4OGVfZW11X3RvX2FjdGl2ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTAwNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTA3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTA3MjpzdGF0aWMgaW50IHJ0bDgxODhldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDczLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMDg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMDg5OnN0YXRpYyBpbnQgcnRsODE4OGV1X2VtdV90b19kaXNhYmxlZChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTA5MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTExNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTExODpzdGF0aWMgaW50IHJ0bDgxODhldV9hY3RpdmVfdG9fbHBzKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMTY2OnN0YXRpYyBpbnQgcnRsODE4OGV1X3Bvd2VyX29uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMTk2OnN0YXRpYyB2b2lkIHJ0bDgxODhldV9wb3dlcl9vZmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTExOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEyNjM6c3RhdGljIHZvaWQgcnRsODE4OGVfZW5hYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMjY0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMjc3OnN0YXRpYyB2b2lkIHJ0bDgxODhlX2Rpc2FibGVfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyNzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEyOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjEyOTE6c3RhdGljIHZvaWQgcnRsODE4OGVfdXNiX3F1aXJrcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTI5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTMwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTMxMDpzdGF0aWMgczggcnRsODE4OGVfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTEzMzU9c3RhdGljIGludCBydGw4MTg4ZXVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTEzMzcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxMzM4OlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xMzM5LVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM9MTQ3Mj1zdGF0aWMgdm9pZCBydGw4MTg4ZV9yYXRlX2RlY2lzaW9uKHN0cnVjdCBydGw4eHh4dV9yYV9pbmZvICpyYSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTQ3My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jOjE0NzQ6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YocmEsIHN0cnVjdCBydGw4eHh4dV9wcml2LCByYV9pbmZvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTQ3NS1cXHRjb25zdCB1OCAqcmV0cnlfcGVuYWx0eV9pZHhfMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYz0xNjMwPXN0YXRpYyB2b2lkIHJ0bDgxODhlX3Bvd2VyX3RyYWluaW5nX2RlY2lzaW9uKHN0cnVjdCBydGw4eHh4dV9yYV9pbmZvICpyYSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNjY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNjY4OnZvaWQgcnRsODE4OGVfaGFuZGxlX3JhX3R4X3JlcG9ydDIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jLTE2Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4ZS5jPTE3ODA9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmM6MTc4MTpydGw4MTg4ZV91cGRhdGVfcmF0ZV9tYXNrKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzgyLVxcdFxcdFxcdCAgdTMyIHJhbWFzaywgdTggcmF0ZWlkLCBpbnQgc2dpLCBpbnQgdHhid180MG1oeixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYy0xNzkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGUuYzoxNzk0OnN0YXRpYyB2b2lkIHJ0bDgxODhlX3JhX3NldF9yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBtYWNpZCwgdTggcnNzaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhlLmMtMTc5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM9MjUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE4OGZ1X2N1dF9iX3JhZGlvYV9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzozMDg6c3RhdGljIGludCBydGw4MTg4ZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMzA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYz0zNTc9dm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzozNTg6cnRsODE4OGZfc2V0X3R4X3Bvd2VyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBpbnQgY2hhbm5lbCwgYm9vbCBodDQwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0zNTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTM5OS0vKiBBIHdvcmthcm91bmQgdG8gZWxpbWluYXRlIHRoZSAyNDAwTUh6LCAyNDQwTUh6LCAyNDgwTUh6IHNwdXIgb2YgODE4OEYuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjQwMDpzdGF0aWMgdm9pZCBydGw4MTg4Zl9zcHVyX2NhbGlicmF0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjaGFubmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy00MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jPTUxND1zdGF0aWMgdm9pZCBydGw4MTg4ZnVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTUxNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjUxNjpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy01MTctXFx0dTMyIHZhbDMyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTY0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NjQ1OnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9pbml0X2FnZ3JlZ2F0aW9uKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy02NDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTY3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6NjczOnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9pbml0X3N0YXRpc3RpY3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTY3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3MDQ6c3RhdGljIGludCBydGw4MTg4ZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTcwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3Mzk6c3RhdGljIGludCBydGw4MTg4ZnVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjc1MTpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTc1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3Nzg6c3RhdGljIGludCBydGw4MTg4ZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTc3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtNzg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzo3OTA6dm9pZCBydGw4MTg4Zl9waHlfbGNfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy03OTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTgzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6ODM0OnN0YXRpYyBpbnQgcnRsODE4OGZ1X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiAqbG9rX3Jlc3VsdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtODM1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy05MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjkwNzpzdGF0aWMgaW50IHJ0bDgxODhmdV9yeF9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1MzIgbG9rX3Jlc3VsdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtOTA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMDYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMDYyOnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9waHlfaXFjYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEwNjMtXFx0XFx0XFx0XFx0ICAgICAgaW50IHJlc3VsdFtdWzhdLCBpbnQgdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMjE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMjE5OnN0YXRpYyB2b2lkIHJ0bDgxODhmdV9waHlfaXFfY2FsaWJyYXRlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMjIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xMzE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxMzE5OnN0YXRpYyB2b2lkIHJ0bDgxODhmX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMyMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTMzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTMzNDpzdGF0aWMgaW50IHJ0bDgxODhmX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzMzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTEzOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjEzOTQ6c3RhdGljIGludCBydGw4MTg4ZnVfYWN0aXZlX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTM5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTQzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTQzNDpzdGF0aWMgaW50IHJ0bDgxODhmdV9lbXVfdG9fZGlzYWJsZWQoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE0NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE0NTI6c3RhdGljIGludCBydGw4MTg4ZnVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTQ1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTUxNTpzdGF0aWMgaW50IHJ0bDgxODhmdV9wb3dlcl9vbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUxNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTUzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTU0MDpzdGF0aWMgdm9pZCBydGw4MTg4ZnVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNTgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNTgzOnN0YXRpYyB2b2lkIHJ0bDgxODhmX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTU4NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTYyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmM6MTYyMjpzdGF0aWMgdm9pZCBydGw4MTg4Zl9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNjM0OnN0YXRpYyB2b2lkIHJ0bDgxODhmX3VzYl9xdWlya3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jLTE2NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTg4Zi5jOjE2NTE6dm9pZCBydGw4MTg4Zl9zZXRfY3J5c3RhbF9jYXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNyeXN0YWxfY2FwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYy0xNjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE4OGYuYzoxNjc3OnN0YXRpYyBzOCBydGw4MTg4Zl9jY2tfcnNzaShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgc3RydWN0IHJ0bDg3MjNhdV9waHlfc3RhdHMgKnBoeV9zdGF0cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxODhmLmMtMTY3OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM9MjY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE4OHJ1X3JhZGlvYV8xdF9oaWdocGFfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0zMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjMzOTpzdGF0aWMgaW50IHJ0bDgxOTJjdV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYy0zNDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTM5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmM6Mzk3OnN0YXRpYyBpbnQgcnRsODE5MmN1X2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTM5OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0MTQ6c3RhdGljIGludCBydGw4MTkyY3VfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQxNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0Njc6c3RhdGljIGludCBydGw4MTkyY3VfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQ2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNDkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo0OTE6c3RhdGljIGludCBydGw4MTkyY3VfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTQ5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYzo1OTY6c3RhdGljIHZvaWQgcnRsODE5MmN1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNTk3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmMuYz02NzQ9c3RhdGljIGludCBydGw4MTkyY3VfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jLTY3Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyYy5jOjY3NzpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGNvbnRhaW5lcl9vZihsZWRfY2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJjLmMtNjc4LVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM9Mzk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE5MmV1X3JhZGlvYl9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzo0NjU6c3RhdGljIGludCBydGw4MTkyZXVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNDY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYz01MTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NTEzOnJ0bDgxOTJlX3NldF90eF9wb3dlcihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgaW50IGNoYW5uZWwsIGJvb2wgaHQ0MClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy01ODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjU4ODpzdGF0aWMgaW50IHJ0bDgxOTJldV9wYXJzZV9lZnVzZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY0MDpzdGF0aWMgaW50IHJ0bDgxOTJldV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTY1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NjUyOnN0YXRpYyB2b2lkIHJ0bDgxOTJldV9pbml0X3BoeV9iYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02NzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY3OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9pbml0X3BoeV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtNjgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjY5MzpzdGF0aWMgaW50IHJ0bDgxOTJldV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy02OTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTc0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6NzQzOnN0YXRpYyBpbnQgcnRsODE5MmV1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTc0NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtODcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzo4NzE6c3RhdGljIGludCBydGw4MTkyZXVfaXFrX3BhdGhfYihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtODcyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy05MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjkyMTpzdGF0aWMgaW50IHJ0bDgxOTJldV9yeF9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy05MjIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEwNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEwNTM6c3RhdGljIHZvaWQgcnRsODE5MmV1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTA1NC1cXHRcXHRcXHRcXHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEyMzk6c3RhdGljIHZvaWQgcnRsODE5MmV1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEyNDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzMzItICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjEzMzM6c3RhdGljIHZvaWQgcnRsODE5MmVfY3J5c3RhbF9hZmVfYWRqdXN0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xMzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxMzY1OnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTM3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTM3NTpzdGF0aWMgaW50IHJ0bDgxOTJlX2VtdV90b19hY3RpdmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTEzNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE0MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jOjE0NDA6c3RhdGljIGludCBydGw4MTkyZXVfYWN0aXZlX3RvX2xwcyhzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQ0MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTQ5OTpzdGF0aWMgaW50IHJ0bDgxOTJldV9hY3RpdmVfdG9fZW11KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTAwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNTM4OnN0YXRpYyBpbnQgcnRsODE5MmV1X2VtdV90b19kaXNhYmxlZChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTUzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTU1MTpzdGF0aWMgaW50IHJ0bDgxOTJldV9wb3dlcl9vbihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTU5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTU5OTpzdGF0aWMgdm9pZCBydGw4MTkyZXVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjAwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNjMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNjMzOnN0YXRpYyB2b2lkIHJ0bDgxOTJlX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTYzNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmMtMTY3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJlLmM6MTY3OTpzdGF0aWMgczggcnRsODE5MmVfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE2ODAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jPTE3MDI9c3RhdGljIGludCBydGw4MTkyZXVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZS5jLTE3MDQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYzoxNzA1OlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmUuYy0xNzA2LVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM9MzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODE5MmZ1X3JhZGlvYl9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMzkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzozOTI6c3RhdGljIGludCBydGw4MTkyZnVfaWRlbnRpZnlfY2hpcChzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMzkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYz00MjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6NDI2OnJ0bDgxOTJmX3NldF90eF9wb3dlcihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgaW50IGNoYW5uZWwsIGJvb2wgaHQ0MClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy00OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjQ5MzpzdGF0aWMgdm9pZCBydGw4MTkyZl9yZXZpc2VfY2NrX3R4X3BzZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiwgdTggY2hhbm5lbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNDk0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy01MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjUxODpzdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2tmcmVlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjaGFubmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy01MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTU4ND1zdGF0aWMgdm9pZCBydGw4MTkyZnVfY29uZmlnX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTU4NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjU4NjpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy01ODctXFx0Ym9vbCBodDQwID0gY29uZl9pc19odDQwKFxcdTAwMjZody1cXHUwMDNlY29uZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNjY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo2NjU6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2luaXRfYWdncmVnYXRpb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNjgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo2ODI6c3RhdGljIGludCBydGw4MTkyZnVfcGFyc2VfZWZ1c2Uoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTY4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NDI6c3RhdGljIGludCBydGw4MTkyZnVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzQzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy03NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjc0NzpzdGF0aWMgdm9pZCBydGw4MTkyZnVfaW5pdF9waHlfYmIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc0OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NjQ6c3RhdGljIGludCBydGw4MTkyZnVfaW5pdF9waHlfcmYoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTc2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzo3NzU6c3RhdGljIHZvaWQgcnRsODE5MmZfcGh5X2xjX2NhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtNzc2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy03OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjgwMDpzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9hKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy04MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTg5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6ODkxOnN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Eoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTg5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTAyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTAyNDpzdGF0aWMgaW50IHJ0bDgxOTJmdV9pcWtfcGF0aF9iKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMDI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xMTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxMTIwOnN0YXRpYyBpbnQgcnRsODE5MmZ1X3J4X2lxa19wYXRoX2Ioc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTExMjEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTEyNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjEyNTg6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcWNhbGlicmF0ZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTI1OS1cXHRcXHRcXHRcXHQgICAgICBpbnQgcmVzdWx0W11bOF0sIGludCB0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE0NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE0NDQ6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3BoeV9pcV9jYWxpYnJhdGUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE0NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE1OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE1OTQ6c3RhdGljIHZvaWQgcnRsODE5MmZ1X2Rpc2FibGVkX3RvX2VtdShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTU5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTYwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTYwNTpzdGF0aWMgaW50IHJ0bDgxOTJmdV9lbXVfdG9fYWN0aXZlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNjA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNzMxOnN0YXRpYyBpbnQgcnRsODE5MmZ1X2FjdGl2ZV90b19lbXUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3MzIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE3Njg6c3RhdGljIGludCBydGw4MTkyZnVfZW11X3RvX2Rpc2FibGVkKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xNzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxNzg3OnN0YXRpYyBpbnQgcnRsODE5MmZ1X2FjdGl2ZV90b19scHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE3ODgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE4MzQ6c3RhdGljIGludCBydGw4MTkyZnVfcG93ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE4NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE4NjA6c3RhdGljIHZvaWQgcnRsODE5MmZ1X3Bvd2VyX29mZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg2MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTg4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTg4NzpzdGF0aWMgdm9pZCBydGw4MTkyZl9yZXNldF84MDUxKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xODg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxOTAyOnN0YXRpYyB2b2lkIHJ0bDgxOTJmX2VuYWJsZV9yZihzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTkwMy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTkxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTkxNzpzdGF0aWMgdm9pZCBydGw4MTkyZl9kaXNhYmxlX3JmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0xOTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoxOTI5OnN0YXRpYyB2b2lkIHJ0bDgxOTJmX3VzYl9xdWlya3Moc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5NDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jOjE5NDM6c3RhdGljIHZvaWQgcnRsODE5MmZfc2V0X2NyeXN0YWxfY2FwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjcnlzdGFsX2NhcClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk0NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmMtMTk2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1LzgxOTJmLmM6MTk3MDpzdGF0aWMgczggcnRsODE5MmZfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHN0cnVjdCBydGw4NzIzYXVfcGh5X3N0YXRzICpwaHlfc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTE5NzEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jPTE5OTg9c3RhdGljIGludCBydGw4MTkyZnVfbGVkX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84MTkyZi5jLTIwMDAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYzoyMDAxOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKGxlZF9jZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODE5MmYuYy0yMDAyLVxcdFxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0bDh4eHh1X3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM9NDA2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODcxMGJ1X3FmbjQ4bV9zX3JhZGlvYV9pbml0X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmMtNDYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYzo0NjM6c3RhdGljIHUzMiBydGw4NzEwYl9pbmRpcmVjdF9yZWFkMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy00NjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTQ5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6NDk4OnN0YXRpYyB2b2lkIHJ0bDg3MTBiX2luZGlyZWN0X3dyaXRlMzIoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyLCB1MzIgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvODcxMGIuYy00OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS84NzEwYi5jLTUyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1Lzg3MTBiLmM6NTMwOnN0YXRpYyB1MzIgcnRsODcxMGJfcmVhZF9zeXNvbl9yZWcoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiBhZGRyKVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDozMi44MjMyMTMzMDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDcxNTA4NDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlYnVnZ2luZyBhIFN1c3BlY3QgUG9pbnRlciBSZWZlcmVuY2UqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGBwcml2YCB2YXJpYWJsZeKApml0J3MgYmVpbmcgdXNlZCAqYmVmb3JlKiBpdCdzIGV2ZW4gZGVjbGFyZWQgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCEgVGhhdCdzIGEgY2xhc3NpYyBDIGNvbXBpbGVyIGVycm9yLiBZb3Uga25vdywgdGhlIGtpbmQgdGhhdCBzaG91bGQndmUgYmVlbiBjYXVnaHQgaW5zdGFudGx5LiBgc3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtgIC0tIHRoYXQgYHByaXZgIGlzbid0IGRlZmluZWQgeWV0ISBUaGlzIHNlZW1zIGltcG9zc2libGUuXG5cbkFscmlnaHQsIGxldCdzIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cy4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYHByaXZgIGlzbid0IHNvbWUgZ2xvYmFsbHkgc2NvcGVkIHRoaW5nIHRoYXQncyBhY2NpZGVudGFsbHkgYmVpbmcgdXNlZCBoZXJlLiBJdCdzIGEgcHJldHR5IGNvbW1vbiBsb2NhbCB2YXJpYWJsZSBuYW1lLCBzbyBhIHF1aWNrIHZpc3VhbCBzY2FuIHByb2JhYmx5IHdvbid0IGN1dCBpdC4gTGV0J3Mgc2VlLi4uIG5vdGhpbmcgb2J2aW91c2x5IGdsb2JhbCwgc28gbm93IEknbGwgbG9vayBpbnRvIGBjb3JlLmNgIGFuZCBhbnkgaW5jbHVkZWQgaGVhZGVycywganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIEhvdyBvbiBlYXJ0aCBkaWQgdGhpcyBldmVuIGdldCBjb21taXR0ZWQgaWYgdGhlIGNvbXBpbGVyIHNob3VsZCBiZSB0aHJvd2luZyB1cCBlcnJvcnM/IEknbSBzbWVsbGluZyBzb21ldGhpbmcgZmlzaHkgaGVyZS4uLiBvciBtYXliZSBJJ20ganVzdCB0aXJlZCEgTGV0IG1lIGRvIGEgcHJvcGVyIGNoZWNrIG9mIGFsbCB0aGUgZmlsZXMganVzdCB0byBiZSBjZXJ0YWluLiBJJ3ZlIGdvdCB0byBmaW5kIG91dCB3aGF0J3MgZ29pbmcgb24hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NTM5LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjM3Ljg5NDcyNDg3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTgwODA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdjtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01MTYxLVxcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjUxNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cXHRzdHJ1Y3QgcnRsOHh4eHVfdHhfdXJiICp0eF91cmIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcwLVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTg3MTpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MTIwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MTIxOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjItXFx0c3RydWN0IHJ0bDg3MjNidV9jMmggKmMyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYyNjE9c3RydWN0IHJ0bDh4eHh1X3J4X3VwZGF0ZV9yc3NpX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjYyNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjI2My1cXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzM3MD1zdHJ1Y3QgcnRsOHh4eHVfaXRlcl9zdGFzX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjczNzE6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM3Mi1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03Mzg4PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X3dhdGNoZG9nX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXFx0c3RydWN0IHJ0bDh4eHh1X3N0YXNfZW50cnkgKnN0YV9lbnRyeSwgKnRtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzkzOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzc0OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTc5NjY9c3RhdGljIHZvaWQgcnRsOHh4eHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc5Njg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6MzcuOTQyOTExNjQ5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkyOTg3ODc3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZWJ1Z2dpbmcgYSBQb3RlbnRpYWwgQ29tcGlsZXIgRXJyb3IqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIGNvZGUgc25pcHBldCBsb29rcyBzdXNwaWNpb3VzLiBJZiB0aGVyZSdzIG5vIGdsb2JhbCB2YXJpYWJsZSBuYW1lZCBgcHJpdmAsIHRoZW4gdGhhdCBsaW5lLCBgc3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cHJpdi1cdTAwM2V1ZGV2LVx1MDAzZWRldjtgIGZvbGxvd2VkIGJ5IGBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtgIGlzIGdvaW5nIHRvIHRocm93IGEgY29tcGlsZXIgZXJyb3IsIHJpZ2h0PyBUaGUgY29tcGlsZXIgc2hvdWxkIGNvbXBsYWluIGJlY2F1c2UgYHByaXZgIGlzbid0IGRlY2xhcmVkIHlldCwgYW5kIEknbSByZWZlcmVuY2luZyBpdC4gTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgR0NDIHdvdWxkIGFjdHVhbGx5IGZsYWcgdGhpcy5cblxuWXVwLCBJJ20gcHJldHR5IHN1cmUgR0NDIHdvdWxkIGZsYWcgaXQgYXMgXCJ1bmRlY2xhcmVkLFwiIHNvIHRoaXMgZGVmaW5pdGVseSBpc24ndCBjb3JyZWN0LiBCdXQgd2FpdCwgaXMgaXQgKnBvc3NpYmxlKiB0aGF0IGBwcml2YCBpcyBiZWluZyBkZWZpbmVkIGFzIGEgbWFjcm8gKnNvbWV3aGVyZSo/IEl0J3MgYWx3YXlzIHdvcnRoIGNoZWNraW5nIGZvciB0aG9zZSBzbmVha3kgbWFjcm9zIHRoYXQgY2FuIG1ha2UgY29kZSBoYXJkZXIgdG8gZm9sbG93LCBlc3BlY2lhbGx5IGluIGEgbGFyZ2UgY29kZWJhc2UuIEknZCBiZXR0ZXIgZG91YmxlLWNoZWNrIGZvciB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjE0OCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NDo0MS44NzI4MTI1NTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MDU0MzQ4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIjZGVmaW5lIHByaXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjQxLjkxNzg5MjMyM1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MDY3ODQyNDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IENvbXBpbGVyIEVycm9yIG9yIEZ1enphYmxlIENoYW5nZT8qKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGUgcHJvbXB0IGV4cGxpY2l0bHkgc3RhdGVzIHRoZSBjaGFuZ2VzIGFyZSAqYWxyZWFkeSogY29tbWl0dGVkLiBJZiB0aGlzIHdlcmUgYSBzdHJhaWdodGZvcndhcmQgY29tcGlsZXIgZXJyb3IsIGxpa2UgdGhlIGluaXRpYWwgdGhvdWdodCwgaG93IGNvdWxkIGl0IGV2ZW4gYmUgY29tbWl0dGVkIGluIHRoZSBmaXJzdCBwbGFjZT8gQSBwYXRjaCB0aGF0IGJyZWFrcyB0aGUgYnVpbGQgaXMgZXNzZW50aWFsbHkgdXNlbGVzcyBmb3IgZnV6emluZzsgc3l6a2FsbGVyIHdvdWxkbid0IGV2ZW4gYmUgYWJsZSB0byB0b3VjaCBpdC5cblxuQnV0IHRoZSBwcm9tcHQgYWxzbyBkaXJlY3RzIHVzIHRvIGV4YW1pbmUgdGhlIHBhdGNoIGl0c2VsZiBhbmQgKm5vdCogcmVseSBvbiBpbnRlcm5hbCBrbm93bGVkZ2UuIFRoZSBpbnN0cnVjdGlvbnMgc3RhdGUgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjaGFuZ2UgaXMgcHVyZWx5IGRlY29yYXRpdmUsIHN1Y2ggYXMgbG9nZ2luZy4gVGhlIGRlc2NyaXB0aW9uIGltcGxpZXMgdGhhdCB0aGUgKmludGVudGlvbiogd2FzIHRvIGFkZCBsb2dnaW5nLlxuXG5MZXQncyByZXZpc2l0IHRoZSBwYXRjaCBjb2RlIGJsb2NrIHByb3ZpZGVkOlxuXG5gYGBjXG5AQCAtNTg2MCw2ICs1ODY3LDcgQEAgc3RhdGljIHZvaWQgcnRsOHh4eHVfcXVldWVfcnhfdXJiKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LFxuIFxuIHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiB7XG4rXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2O1xuIFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XG4gXHRzdHJ1Y3QgcnRsOHh4eHVfcnhfdXJiICpyeF91cmIsICp0bXA7XG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGxvY2FsO1xuYGBgXG5cbklmIGl0J3MgYSBzdHJhaWdodCBjb21waWxlciBlcnJvciwgaXQgd29uJ3QgY29tcGlsZSwgYW5kIHN5emthbGxlciBjYW4ndCBmdXp6IGl0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gbm90IG1pc3Npbmcgc29tZXRoaW5nIHN1YnRsZS5cblxuT2theSwgbGV0J3MgcGxheSBkZXZpbCdzIGFkdm9jYXRlOiBjb3VsZCB0aGVyZSBiZSBzb21lIHdlaXJkIG1hY3JvIHNoZW5hbmlnYW5zIGdvaW5nIG9uPyBJcyBgcHJpdmAgYSBtZW1iZXIgb2Ygc29tZSBzdHJ1Y3QgYW5kIHdlIGFyZSBpbnNpZGUgYSBtYWNybz8gTm8sIGl0J3MgYSBmdW5jdGlvbi4gTGV0J3MgdGVzdCB0aGlzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gc3VycHJpc2VzIHdpdGggdGhlIGNvbXBpbGVyLlxuXG5JJ2xsIHF1aWNrbHkgd2hpcCB1cCBhIHNpbXBsZSBDIGZpbGUgdG8gdGVzdCBpdCB3aXRoIEdDQzpcblxuYGBgY1xudm9pZCBmb28oKSB7XG4gICAgaW50ICpkZXYgPSBwcml2O1xuICAgIGludCAqcHJpdjtcbn1cbmBgYFxuXG5ZZXAsIHRoYXQncyBkZWZpbml0ZWx5IGEgY29tcGlsZXIgZXJyb3IuIEl0J3MgYSByZWRlZmluaXRpb24uXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBpcyB0aGVyZSAqYW55d2hlcmUqIGVsc2UgYHByaXZgIGlzIGRlY2xhcmVkIGluIHNjb3BlLCBtYXliZSBhIGdsb2JhbCB2YXJpYWJsZSwgcG90ZW50aWFsbHkgZGVmaW5lZCBpbiBhIGhlYWRlciBmaWxlPyBJIG5lZWQgdG8gY2hlY2sgZm9yIGEgZ2xvYmFsIHZhcmlhYmxlIG5hbWVkIGBwcml2YC4gTGV0J3Mgc2VhcmNoIHRoZSBrZXJuZWwgaGVhZGVycy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0OTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTQ6NTAuOTg1NzM3OTM4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDk0MzcyOTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdjtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiaW5jbHVkZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU0OjUxLjEzNTE4MjYxNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NDYzMTg5MzQ5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBgcHJpdmAqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSdtIHRha2luZyBhIHF1aWNrIHN3ZWVwLCBhbmQgdGhlIGZpcnN0IHRoaW5nIHRoYXQncyBqdW1waW5nIHRvIG1pbmQgaXMgYSBmdW5kYW1lbnRhbCBzYW5pdHkgY2hlY2suIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUncyBhbnkgbHVya2luZyBnbG9iYWwgdmFyaWFibGUgbmFtZWQgYHByaXZgLiBOb3QganVzdCBhIHZhcmlhYmxlLCBidXQgc3BlY2lmaWNhbGx5IGEgKmdsb2JhbCogb25lLiBUaGlzIGlzIGEgaGFiaXR1YWwgZmlyc3Qgc3RlcC4gR2xvYmFscyBhcmUgbm90b3Jpb3VzIGZvciBjYXVzaW5nIHNpZGUgZWZmZWN0cywgdW5pbnRlbmRlZCBkZXBlbmRlbmNpZXMsIGFuZCBnZW5lcmFsbHkgbWFraW5nIGRlYnVnZ2luZyBhIG5pZ2h0bWFyZSwgc28gaXQncyBiZXN0IHRvIHZlcmlmeSB0aGVpciBub24tZXhpc3RlbmNlIG9yIGlmIHByZXNlbnQgaG93IHRoZXkgYmVoYXZlLiBFc3BlY2lhbGx5IHNvbWV0aGluZyBhcyBwb3RlbnRpYWxseSBzZW5zaXRpdmUgYXMgXCJwcml2LFwiIHdoaWNoIHNjcmVhbXMgXCJwcml2aWxlZ2VzXCIgb3IgXCJwcml2YXRlIGRhdGEuXCIgSXQncyBsaWtlbHkgcmVsYXRlZCB0byBzZWN1cml0eSwgYWNjZXNzIGNvbnRyb2wsIG9yIHNvbWUgb3RoZXIgY3JpdGljYWwgY29tcG9uZW50LiBGaW5kaW5nIGEgYHByaXZgIGdsb2JhbCBjb3VsZCBpbW1lZGlhdGVseSB0cmlnZ2VyIGEgZGVlcGVyIGRpdmUgaW50byBpdHMgdXNhZ2UgYW5kIHNjb3BlLiBJJ2Qgd2FudCB0byB1bmRlcnN0YW5kIHdoZXJlIGl0J3MgZGVmaW5lZCwgaG93IGl0J3MgbW9kaWZpZWQsIGFuZCwgbW9zdCBpbXBvcnRhbnRseSwgKndoZXJlKiBpdCdzIGFjY2Vzc2VkLiBFdmVuIGlmIGl0J3MgYmVuaWduIG5vdywgaXQncyBhIHBvdGVudGlhbCB0aW1lIGJvbWIuIEEgY2FyZWxlc3MgZWRpdCBvciBhbiB1bmZvcmVzZWVuIGludGVyYWN0aW9uIGNvdWxkIGxlYWQgdG8gdnVsbmVyYWJpbGl0aWVzLCBwcml2aWxlZ2UgZXNjYWxhdGlvbiwgb3IgZGF0YSBsZWFrYWdlLiBJJ20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZWJhc2Ugbm93IHdpdGggYW4gZXhwZXJ0IGV5ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1MDYsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NTo1NS43NjcwNzkxMTdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDI2NDE4OTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dGVybiBzdHJ1Y3QgcnRsOHh4eHVfcHJpdiBcXFxcKnByaXY7XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTU6NTguNjY5NzMwMjcyWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc0NzU0NDI3MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ29tcGlsZXIgRXJyb3IgRGlhZ25vc2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzOiBjb21waWxlciBlcnJvciwgYnVpbGQgZmFpbHVyZS4gSWYgaXQncyBhIGJ1aWxkIGZhaWx1cmUsIHRoZXJlJ3Mgbm8gcG9pbnQgZnV6emluZyBpdCwgcmlnaHQ/IFlvdSBjYW4ndCBmdXp6IGEga2VybmVsIHRoYXQgZG9lc24ndCBidWlsZC4gQnV0IGhvbGQgb24uLi4gaXMgaXQgcG9zc2libGUgdGhhdCB0aGlzIHBhdGNoIGlzIGp1c3QgYSBsb2dnaW5nIGNoYW5nZSBhbmQgdGhlIGF1dGhvciBzaW1wbHkgbWFkZSBhIHRyaXZpYWwgbWlzdGFrZSB0aGF0J3MgY2F1c2luZyB0aGUgYnVpbGQgdG8gYnJlYWs/IElmIGl0J3MganVzdCBhIGJ1aWxkIGJyZWFrLCB0aGVuIGZ1enppbmcgaXMgc3RpbGwgb2ZmIHRoZSB0YWJsZS4gTGV0J3MgZGlnIGluIGFuZCBzZWUuXG5cbkZpcnN0LCBJIGNoZWNrZWQgYSBmZXcgb3RoZXIgZmlsZXMuIEl0IGxvb2tzIGxpa2UgYHByaXZgIGlzIGJlaW5nIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlc2UgZnVuY3Rpb25zLCBhbmQgYGRldmAgaXMgYmVpbmcgYXNzaWduZWQgcHJvcGVybHkgaW4gYDgxODhlLmNgLCBgODE4OGYuY2AsIGFuZCBgODE5MmUuY2AuIFNvIHRoZSBpc3N1ZSAqbXVzdCogYmUgaW4gYW5vdGhlciBmaWxlLlxuXG5BaC1oYSEgSW4gYGNvcmUuY2AsIEkgc2VlIHRoZSBwcm9ibGVtLiBUaGVyZSdzIGEgc2NvcGUgaXNzdWUuIGBwcml2YCBpcyBkZWNsYXJlZCAqYWZ0ZXIqIHRoZSBkZWNsYXJhdGlvbiBvZiBgZGV2YC4gVGhhdCdzIGEgY29tcGlsZXIgZXJyb3IsIG5vIHF1ZXN0aW9uIGFib3V0IGl0LiBPa2F5LCB0aGF0J3MgZGVmaW5pdGVseSBhIGJ1aWxkIGJyZWFrLiBUaW1lIHRvIGZsYWcgdGhpcyBhbmQgbW92ZSBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc4MzcsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTY6MDYuMTQ1MTc1NDE0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjM0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA1ODY4LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI1ODY4OlxcdHN0YXRpYyB2b2lkIHJ0bDh4eHh1X3J4X3VyYl93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG41ODY5OlxcdHtcXG41ODcwOlxcdFxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuNTg3MTpcXHRcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG41ODcyOlxcdFxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG41ODczOlxcdFxcdHN0cnVjdCBsaXN0X2hlYWQgbG9jYWw7XFxuNTg3NDpcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbjU4NzU6XFx0XFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG41ODc2OlxcdFxcdGludCByZXQ7XFxuNTg3NzpcXHRcXG41ODc4OlxcdFxcdHByaXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJ0bDh4eHh1X3ByaXYsIHJ4X3VyYl93cSk7XFxuNTg3OTpcXHRcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2bG9jYWwpO1xcbjU4ODA6XFx0XFxuNTg4MTpcXHRcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcXG41ODgyOlxcdFxcbjU4ODM6XFx0XFx0bGlzdF9zcGxpY2VfaW5pdChcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX3BlbmRpbmdfbGlzdCwgXFx1MDAyNmxvY2FsKTtcXG41ODg0OlxcdFxcdHByaXYtXFx1MDAzZXJ4X3VyYl9wZW5kaW5nX2NvdW50ID0gMDtcXG41ODg1OlxcdFxcbjU4ODY6XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2cHJpdi1cXHUwMDNlcnhfdXJiX2xvY2ssIGZsYWdzKTtcXG41ODg3OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjowNi4xNDU2MTM0MDRaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE4OTk0NTkxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipDb21waWxlciBFcnJvciBMZWFkcyB0byBGdXp6aW5nIEhhbHQqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIHNpdHVhdGlvbi4gSSdtIHN0YXJpbmcgYXQgbGluZSA1ODcwLCBhbmQgYHByaXZgIGlzIGJlaW5nIHVzZWQgKmJlZm9yZSogaXQncyBkZWNsYXJlZCBvbiBsaW5lIDU4NzEuIEFic29sdXRlbHkgYSBjbGFzc2ljIEMgY29tcGlsZXIgZXJyb3IuIE5vIHdheSBhcm91bmQgaXQuIFRoYXQncyBhIHNob3dzdG9wcGVyLiBUaGUga2VybmVsIHdvbid0IGNvbXBpbGUuIElmIGl0IGRvZXNuJ3QgY29tcGlsZSwgdGhlbiBmdXp6aW5nIGlzIGRlYWQgaW4gdGhlIHdhdGVyLlxuXG5IYW5nIG9uIGEgc2Vjb25k4oCmIGlzIHRoZXJlICphbnkqIHNjZW5hcmlvIHdoZXJlIHRoaXMgY291bGQgYmUgdmFsaWQgQz8gUHJvYmFibHkgbm90LCBDIGlzIHByZXR0eSBzdHJpY3QgYWJvdXQgdGhhdC4gWW91IGNhbid0IGp1c3QgdGhyb3cgYW4gaWRlbnRpZmllciBvdXQgdGhlcmUgYmVmb3JlIGl0cyBkZWNsYXJhdGlvbi4gVW5sZXNz4oCmIHdhaXQsIGNvdWxkIGBwcml2YCBiZSBhIGdsb2JhbCB2YXJpYWJsZSBkZWNsYXJlZCBpbiBzb21lIGluY2x1ZGVkIGhlYWRlcj8gTGV0J3Mgbm90IGp1bXAgdG8gY29uY2x1c2lvbnMuIEknbGwgbmVlZCB0byBjb25maXJtIGlmIGl0J3MgZGVmaW5lZCBnbG9iYWxseSBhbnl3aGVyZS5cblxuT2theSwgbGV0J3Mgc2VlIGlmIHRoZXJlIGlzIGEgZ2xvYmFsIHZhcmlhYmxlIG5hbWVkIGBwcml2YCBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCBjb2RlLiBJdCB3b3VsZCBoYXZlIHRvIGJlIGluIHNjb3BlIGhlcmUsIHdoaWNoIG1lYW5zIGl0IHdvdWxkIGhhdmUgdG8gYmUgZGVjbGFyZWQgaW4gYSBoZWFkZXIgZmlsZSBpbmNsdWRlZCBieSBgY29yZS5jYC4gU28sIEkgbmVlZCB0byBjaGVjayBhbGwgdGhlIGhlYWRlcnMgaW5jbHVkZWQgYnkgYGNvcmUuY2AgdG8gc2VlIGlmIGBwcml2YCBpcyBkZWNsYXJlZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg5MzAsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoxMS4zMzU1NjIyNzRaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjE5NDA1NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXh0ZXJuIC4qIHByaXY7XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImluY2x1ZGUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoxMS40NTE3NjQyNFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk2Njc1MDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqQ2hlY2tpbmcgZm9yIEdsb2JhbCBEZWNsYXJhdGlvbiBvZiBgcHJpdmAgaW4gYGNvcmUuY2AqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIEkgbmVlZCB0byB2ZXJpZnkgc29tZXRoaW5nIGFib3V0IHRoZSB2YXJpYWJsZSBgcHJpdmAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIGFic29sdXRlbHkgc3VyZSB0aGF0IGBwcml2YCBpcyBkZWNsYXJlZCBhcyBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoaW4gdGhlIGBjb3JlLmNgIGZpbGUuIFRoaXMgaXMgZm91bmRhdGlvbmFsOyB3aXRob3V0IHRoaXMgZGVjbGFyYXRpb24sIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgY29kZSBmdW5jdGlvbnMgaXMgaW1tZWRpYXRlbHkgc3VzcGVjdC4gSSBuZWVkIHRvIGtub3cgd2hlcmUgaXQncyBkZWZpbmVkIGFuZCB3aGF0IGl0cyBzY29wZSBpcy4gSWYgaXQncyAqbm90KiBnbG9iYWxseSBkZWNsYXJlZCBpbiBgY29yZS5jYCwgdGhlbiBJIG5lZWQgdG8gYWRqdXN0IG15IG1lbnRhbCBtb2RlbCBvZiBob3cgZGF0YSBpcyBiZWluZyBzaGFyZWQgb3IgYWNjZXNzZWQuIE1heWJlIGl0J3MgYSBzdGF0aWMgdmFyaWFibGU/IE9yIGRlY2xhcmVkIGluIGEgaGVhZGVyIGFuZCBpbmNsdWRlZD8gRWl0aGVyIHdheSwgSSBuZWVkIHRvIGtub3cgdGhlIHRydWUgc2NvcGUgb2YgdGhpcyB2YXJpYWJsZS4gVGhpcyBpcyBjcml0aWNhbCBmb3IgYW55IHN1YnNlcXVlbnQgYW5hbHlzaXMgSSBpbnRlbmQgdG8gcGVyZm9ybSBvbiB0aGUgY29kZWJhc2UuIEkgYW0gZ29pbmcgdG8gbmVlZCB0byBrbm93LCBwcmVjaXNlbHksIHRoZSBjb250ZXh0IG9mIHRoZSB2YXJpYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk0MjAsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoxNS4zNDg0NDI0NzhaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NjAwODc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCBydGw4eHh4dV9wcml2IFxcXFwqcHJpdjtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTE1Nz1zdGF0aWMgdm9pZCBydGw4eHh4dV90eF9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01MTYxLVxcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjUxNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNTE2My1cXHRzdHJ1Y3QgcnRsOHh4eHVfdHhfdXJiICp0eF91cmIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NTg2OD1zdGF0aWMgdm9pZCBydGw4eHh4dV9yeF91cmJfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcwLVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM6NTg3MTpcXHRzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy01ODcyLVxcdHN0cnVjdCBydGw4eHh4dV9yeF91cmIgKnJ4X3VyYiwgKnRtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYxMTk9c3RhdGljIHZvaWQgcnRsOHh4eHVfYzJoY21kX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYy02MTIwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo2MTIxOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTYxMjItXFx0c3RydWN0IHJ0bDg3MjNidV9jMmggKmMyaDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTYyNjE9c3RydWN0IHJ0bDh4eHh1X3J4X3VwZGF0ZV9yc3NpX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjYyNjI6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNjI2My1cXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmM9NzM3MD1zdHJ1Y3QgcnRsOHh4eHVfaXRlcl9zdGFzX2RhdGEge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjczNzE6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzM3Mi1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03Mzg4PXN0YXRpYyB2b2lkIHJ0bDh4eHh1X3dhdGNoZG9nX2NhbGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTItXFx0c3RydWN0IHJ0bDh4eHh1X3N0YXNfZW50cnkgKnN0YV9lbnRyeSwgKnRtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYzo3MzkzOlxcdHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTczOTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L2NvcmUuYz03NzQ1PXN0YXRpYyBpbnQgcnRsOHh4eHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc3NDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc3NDg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzc0OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jPTc5NjY9c3RhdGljIHZvaWQgcnRsOHh4eHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jLTc5Njcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvY29yZS5jOjc5Njg6XFx0c3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9jb3JlLmMtNzk2OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTdUMDU6NTY6MTUuMzkzMDQ2OTY2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY1NzY2NzA4NzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uOiBSZWZhY3RvcmluZyB3aXRoIENvbXBpbGVyIEVycm9yKipcblxuT2theSwgc28gSSd2ZSBoaXQgYSBjb21waWxlciBlcnJvciDigJMgbm8gZ2xvYmFsIGBwcml2YC4uLiB3aGljaCBtZWFucyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBidWlsZCBmYWlsdXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiV2VsbCwgYSBjb21waWxlciBlcnJvciBtZWFucyBpdCdzIHVuZnV6emFibGUuXCIgQnV0IGhvbGQgb24sIGxldCdzIHRoaW5rIGNyaXRpY2FsbHkuIFRoZSBpbnN0cnVjdGlvbnMgY2xlYXJseSBzdGF0ZSB0aGF0IHdlIHNob3VsZCBkaXNyZWdhcmQgcGF0Y2hlcyB0aGF0ICpvbmx5KiBjb250YWluIHNwZWNpZmljIHR5cGVzIG9mIGNoYW5nZXMuIEkgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGlzLiBUaGUgcHJvbXB0IHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGZvciByZWZhY3RvcmluZyBvZiB0aGlzIHR5cGUuXG5cbkxldCdzIGdvIGJhY2sgYW5kIGV2YWx1YXRlIGlmIHRoaXMgcXVhbGlmaWVzIGZvciBhIGRpc3JlZ2FyZC4gVGhlIGRlc2NyaXB0aW9uIHNheXMgdG8gaWdub3JlIHBhdGNoZXMgdGhhdCBhcmUgb25seSBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb2RlIGNvbW1lbnRzLCBvciBsb2dnaW5nLCBzdWNoIGFzIGBwcl9lcnJgIG9yIGBwcmludGtgLiBUaGlzICpsb29rcyogbGlrZSBhIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZeKAlGxvZ2dpbmcgcmVmYWN0b3JpbmfigJRhbmQgdGhlIHR5cG8gdGhhdCdzIGNhdXNpbmcgdGhlIGJ1aWxkIHRvIGZhaWwgZG9lc24ndCBtYWtlIGl0IGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSB0aGF0IHdhcnJhbnRzIGZ1enppbmcuIEl0IGp1c3QgaW5kaWNhdGVzIGEgYnJva2VuIHBhdGNoLCBpdCB3aWxsIGJlIHJlamVjdGVkLlxuXG5XYWl0IGEgbWludXRlLCBjb3VsZCBgcHJpdmAgYmUgYSBtYWNybyBkZWZpbmVkIHNvbWV3aGVyZT8gSSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJIGFscmVhZHkgY2hlY2tlZCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvYCBhcmVhLiBJIGFsc28gbG9va2VkIGluIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSBmb3IgbWFjcm8gZGVmaW5pdGlvbnMuIEl0IHNlZW1zIGxpa2UgaXQncyBhIGRlYWQgZW5kLiBPa2F5LCB0aGF0J3MgZW5vdWdoIGludmVzdGlnYXRpb24sIEkgd2lsbCBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODA4LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU2OjIxLjk2OTcyMDkyNFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0ODExNTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIiNkZWZpbmUgcHJpdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbmNsdWRlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaD0xOTIxPXZvaWQgaGNpX2Nvbm5fZGVsX3N5c2ZzKHN0cnVjdCBoY2lfY29ubiAqY29ubik7XFxuLS1cXG5pbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaC0xOTk1LVxcbmluY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oOjE5OTY6I2RlZmluZSBwcml2YWN5X21vZGVfY2FwYWJsZShkZXYpIChsbF9wcml2YWN5X2NhcGFibGUoZGV2KSBcXHUwMDI2XFx1MDAyNiBcXFxcXFxuaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmgtMTk5Ny1cXHRcXHRcXHRcXHQgICAoKGRldiktXFx1MDAzZWNvbW1hbmRzWzM5XSBcXHUwMDI2IDB4MDQpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjoyMi4wOTQ1NDM4OFoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDI2ODcyODUyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQYXRjaCBBbmFseXNpczogV29ydGhGdXp6aW5nPWZhbHNlKipcblxuT2theSwgc28gaW5pdGlhbGx5IEkgc2F3IGEgY29tcGlsZXIgZXJyb3IgYW5kIGltbWVkaWF0ZWx5IHRob3VnaHQgXCJubywgbm90IHdvcnRoIGZ1enppbmcuXCIgQSBjb21waWxlciBlcnJvciBhdXRvbWF0aWNhbGx5IGRpc3F1YWxpZmllcyBpdC4gVGhlIHBhdGNoJ3MgcHJpbWFyeSBpbnRlbnQgYXBwZWFycyB0byBiZSBwdXJlbHkgY29zbWV0aWM6IGxvZ2dpbmcgcmVmYWN0b3JpbmcuIEJ1dCBsZXQncyBiZSB0aG9yb3VnaCwgbm8gcG9pbnQgbWFraW5nIGFuIGFzc3VtcHRpb24uXG5cbk5vdywgSSd2ZSBjaGVja2VkIGFsbCBvZiB0aGUgY2hhbmdlZCBmaWxlcyAoYDgxODhlLmNgLCBgODE4OGYuY2AsIGA4MTkyZS5jYCwgYDgxOTJmLmNgLCBgODcyM2EuY2AsIGA4NzIzYi5jYCwgYW5kIGBjb3JlLmNgKS4gSXQncyB0aGUgc2FtZSBwYXR0ZXJuIGFjcm9zcyBhbGwgb2YgdGhlbS4gRWFjaCBmdW5jdGlvbiBpbiB0aGlzIHBhdGNoIGlzIHJlZmFjdG9yaW5nIGhvdyBgZGV2X3dhcm5gIGlzIGNhbGxlZC4gSXQncyBzaW1wbHkgcmVwbGFjaW5nIGBcdTAwMjZwcml2LVx1MDAzZXVkZXYtXHUwMDNlZGV2YCB3aXRoIGEgbG9jYWwgYGRldmAgdmFyaWFibGUsIGludHJvZHVjZWQgZm9yIHRoZSBjYWxsLiBQdXJlbHkgZGVjb3JhdGl2ZS4gTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCBubyBsb2dpYyBhbHRlcmF0aW9uLCBub3RoaW5nIHRoYXQgd291bGQgaW1wYWN0IGV4ZWN1dGlvbi5cblxuSSBkaWQgYSBzZWNvbmQgcmV2aWV3IG9mIHRoZSBkaWZmIGp1c3QgdG8gbWFrZSBzdXJlIEkgd2Fzbid0IG1pc3NpbmcgYW55dGhpbmcgc3VidGxlLCBhbmQgdGhlIGNvbmNsdXNpb24gaXMgdGhlIHNhbWUuIFRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpcyB0aGUgb25seSBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGl0IGludHJvZHVjZXMgYSBjb21waWxlciBlcnJvci4gVGhpcyBjb2RlIGNhbid0IGJlIGV4ZWN1dGVkIGJlY2F1c2Ugb2YgdGhlIGNvbXBpbGVyIGVycm9yIGFuZCB0aGUgcGF0Y2ggd29uJ3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZSBzeXN0ZW0uXG5cblRoZXJlZm9yZSwgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBwYXRjaCdzIG9ubHkgZWZmZWN0cyBhcmUgYWVzdGhldGljIGltcHJvdmVtZW50cyAob3IgaW4gdGhlIGNhc2Ugb2YgYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCwgYnJlYWthZ2UpLiBJJ2xsIG1hcmsgaXQgYXMgc3VjaCBhbmQgbW92ZSBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE2NjgsIk91dHB1dFRva2VucyI6MTE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xN1QwNTo1NjozMi4zNjMyNzU0NTFaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzcwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHNwZWNpZmljYWxseSByZWZhY3RvcmluZyBsb2dnaW5nIGNhbGxzIHRvIHVzZSBhIGxvY2FsIGBkZXZgIHZhcmlhYmxlIGluc3RlYWQgb2YgYFxcdTAwMjZwcml2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXZgIGluIGBkZXZfd2FybmAuIEl0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2UgaW4gYHJ0bDh4eHh1X3J4X3VyYl93b3JrYCBpbnRyb2R1Y2VzIGEgY29tcGlsZXIgZXJyb3IgYnkgdXNpbmcgdGhlIGBwcml2YCB2YXJpYWJsZSBiZWZvcmUgaXQgaXMgZGVjbGFyZWQsIHNvIHRoZSBjb2RlIGNhbm5vdCBldmVuIGJlIGNvbXBpbGVkIG9yIGV4ZWN1dGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBjb250YWlucyBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzcGVjaWZpY2FsbHkgcmVmYWN0b3JpbmcgbG9nZ2luZyBjYWxscyB0byB1c2UgYSBsb2NhbCBgZGV2YCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGBcXHUwMDI2cHJpdi1cXHUwMDNldWRldi1cXHUwMDNlZGV2YCBpbiBgZGV2X3dhcm5gLiBJdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlIGluIGBydGw4eHh4dV9yeF91cmJfd29ya2AgaW50cm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIGJ5IHVzaW5nIHRoZSBgcHJpdmAgdmFyaWFibGUgYmVmb3JlIGl0IGlzIGRlY2xhcmVkLCBzbyB0aGUgY29kZSBjYW5ub3QgZXZlbiBiZSBjb21waWxlZCBvciBleGVjdXRlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE3VDA1OjU2OjMyLjM2MzMwNzMwMVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcw6tx[1] Phase: Running StartedAt: 2026-08-17 05:56:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcw6tx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-17 05:56:44 +0000 UTC FinishedAt: 2026-08-17 05:56:47 +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,}