From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.11.50.20160716 (pre-7.12 trunk snapshot). Date: Sat, 27 Jun 2026 23:57:41 GMT Message-ID: <178260466122.1.17372459692942199197.rpms-gdb-7306e88eb46e@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 7306e88eb46e8ab011270f0f91ec226c5bf17363 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogNzMwNmU4OGViNDZlOGFiMDExMjcwZjBmOTFl YzIyNmM1YmYxNzM2MwpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNi0wNy0xN1QxNjozNTo0OSswMjowMApTdGF0cyAgOiArMzk2 MC8tNDcwNSBpbiA0MCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvZ2RiL2MvNzMwNmU4OGViNDZlOGFiMDExMjcwZjBmOTFlYzIyNmM1YmYxNzM2Mz9i cmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpSZWJhc2UgdG8gRlNGIEdEQiA3LjExLjUw LjIwMTYwNzE2IChwcmUtNy4xMiB0cnVuayBzbmFwc2hvdCkuCgotLS0KZGlmZiAtLWdpdCBhLy5n aXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGRiYjE1Y2IuLjVhZjBmOWYgMTAwNjQ0Ci0tLSBh Ly5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3Rk YysrLXYzLXB5dGhvbi1yMjI1NTIxLnRhci54egotL2dkYi03LjExLjEudGFyLnh6CisvZ2RiLTcu MTEuNTAuMjAxNjA3MTYudGFyLnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1ycG0ucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCA1ZWZj YzVhLi41NmNlN2RiIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRj aAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtMSwyNSArMSwxNiBA QAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2V2ZW50LXRvcC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2V2ZW50LXRvcC5jCi1AQCAtMzcsNiArMzcsNyBAQAotICNpbmNsdWRlICJnZGJj bWQuaCIJCS8qIGZvciBkb250X3JlcGVhdCgpICovCi0gI2luY2x1ZGUgImFubm90YXRlLmgiCi0g I2luY2x1ZGUgIm1haW50LmgiCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZXZl bnQtdG9wLmMJMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0wMyAxNDozNzoxMi41NzIxMzA3 MzQgKzAyMDAKK0BAIC00MCw2ICs0MCw3IEBACisgI2luY2x1ZGUgImJ1ZmZlci5oIgorICNpbmNs dWRlICJzZXItZXZlbnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3NlbGVjdC5oIgogKyNpbmNsdWRlICJz eW1maWxlLmgiCiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUg InJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAtMTgwLDYgKzE4MSw4IEBAIHJsX2NhbGxiYWNrX3Jl YWRfY2hhcl93cmFwcGVyIChnZGJfY2xpZW4KLSB2b2lkCi0gY2xpX2NvbW1hbmRfbG9vcCAodm9p ZCAqZGF0YSkKLSB7Ci0rICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOwotKwotICAgZGlzcGxheV9n ZGJfcHJvbXB0ICgwKTsKLSAKLSAgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50 IGxvb3AuICAqLwotQEAgLTI5OCw2ICszMDEsOCBAQCBkaXNwbGF5X2dkYl9wcm9tcHQgKGNvbnN0 IGNoYXIgKm5ld19wcm9tCitAQCAtMzQ3LDYgKzM0OCw4IEBACiAgICAvKiBSZXNldCB0aGUgbmVz dGluZyBkZXB0aCB1c2VkIHdoZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAgKi8KICAgIHJlc2V0 X2NvbW1hbmRfbmVzdF9kZXB0aCAoKTsKICAKQEAgLTI4LDExICsxOSwyMyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hhaW4gPSBtYWtlX2Ns ZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJvbXB0KTsKICAKICAg IC8qIERvIG5vdCBjYWxsIHRoZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNpdCBwcm9tcHQgY2hh bmdlIGFzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAorQEAgLTc5 NCw3ICs3OTcsMTAgQEAKKyAgICAgICBjb21tYW5kX2hhbmRsZXIgKGNtZCk7CisgCisgICAgICAg aWYgKHVpLT5wcm9tcHRfc3RhdGUgIT0gUFJPTVBURUQpCistCWRpc3BsYXlfZ2RiX3Byb21wdCAo MCk7CisrCXsKKysJICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOworKwkgIGRpc3BsYXlfZ2RiX3By b21wdCAoMCk7CisrCX0KKyAgICAgfQorIH0KKyAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvc3ltZmlsZS5oCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAot QEAgLTU4Nyw2ICs1ODcsOCBAQCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmls ZW5hCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTYtMDct MDMgMTQ6MzQ6MzIuMDMyNzUzNjY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3MzEzMDc0MiArMDIwMAorQEAgLTU5Miw2 ICs1OTIsOCBAQAogIC8qIGJ1aWxkLWlkIHN1cHBvcnQuICAqLwogIGV4dGVybiBzdHJ1Y3QgYmZk X2J1aWxkX2lkICpidWlsZF9pZF9hZGRyX2dldCAoQ09SRV9BRERSIGFkZHIpOwogIGV4dGVybiB2 b2lkIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAq ZGVidWcpOwpAQCAtNDEsNDggKzQ0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvc3ltZmlsZS5oCiAgCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotQEAgLTE2 NDIsNyArMTY0Miw3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKLSAJICAgIHdhcm5p bmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1 cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhw ZWN0IGl0LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhl IHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQt aWQtdmVyYm9zZSAwXG4iCi0gICAgIGdkYl9leHBlY3QgMTAgewotIAktcmUgIiRnZGJfcHJvbXB0 ICQiIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9taS1z dXBwb3J0LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotQEAgLTIwNCw3ICsyMDQsNyBAQCBwcm9j IGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0 IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBt aXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAg ICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBk b2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNldCBidWlsZC1pZC12 ZXJib3NlIDBcbiIKLSAgICAgZ2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiLioxOTAtZ2RiLXNldCBi dWlsZC1pZC12ZXJib3NlIDBcclxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9wcm9tcHQkIiB7Ci1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi90dWkvdHVpLWludGVycC5jCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLUBAIC0zMSw2ICsz MSw3IEBACi0gI2luY2x1ZGUgInR1aS90dWktaW8uaCIKLSAjaW5jbHVkZSAiaW5mcnVuLmgiCi0g I2luY2x1ZGUgIm9ic2VydmVyLmgiCi0rI2luY2x1ZGUgInN5bWZpbGUuaCIKLSAKLSBzdGF0aWMg c3RydWN0IHVpX291dCAqdHVpX3VpX291dCAoc3RydWN0IGludGVycCAqc2VsZik7Ci0gCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FjbG9jYWwubTQKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvYWNsb2NhbC5tNAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTYwMTA2Lm9yaWcvZ2RiL2FjbG9jYWwubTQKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv YWNsb2NhbC5tNAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2FjbG9jYWwubTQJ MjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvYWNsb2NhbC5tNAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3NjEzMDc2OCArMDIwMAog QEAgLTExLDYgKzExLDIyMSBAQAogICMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQogICMgUEFSVElDVUxBUiBQVVJQT1NFLgpAQCAt MzA1LDEwICsyNzAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hY2xvY2Fs Lm00CiAgIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIAogICMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAz LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2Ri L2NvbmZpZy5pbgotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4KKy0tLSBn ZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0wNy0wMiAyMzo0Mzoy NC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnLmlu CTIwMTYtMDctMDMgMTQ6Mzc6MTIuNTc2MTMwNzY4ICswMjAwCiBAQCAtMzMsNiArMzMsOSBAQAog IC8qIERlZmluZSB0byBCRkQncyBkZWZhdWx0IHRhcmdldCB2ZWN0b3IuICovCiAgI3VuZGVmIERF RkFVTFRfQkZEX1ZFQwpAQCAtMzE5LDcgKzI4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgdHJhbnNsYXRpb24gb2YgcHJv Z3JhbSBtZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2ZQogICAgIGxhbmd1YWdlIGlzIHJlcXVl c3RlZC4gKi8KICAjdW5kZWYgRU5BQkxFX05MUwotQEAgLTI1OCw2ICsyNjEsOSBAQAorQEAgLTI2 MSw2ICsyNjQsOSBAQAogIC8qIERlZmluZSBpZiBQeXRob24gMi43IGlzIGJlaW5nIHVzZWQuICov CiAgI3VuZGVmIEhBVkVfTElCUFlUSE9OMl83CiAgCkBAIC0zMjksMTEgKzI5NCwxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVm IEhBVkVfTElCVU5XSU5EX0lBNjRfSAogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9jb25maWd1cmUKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlndXJlCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29uZmlndXJlCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQotQEAgLTcwNSw2ICs3MDUsMTEg QEAgUEtHVkVSU0lPTgorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3Vy ZQkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9jb25maWd1cmUJMjAxNi0wNy0wMyAxNDozNzoxMi41ODExMzA4MTEgKzAyMDAK K0BAIC03MDUsNiArNzA1LDExIEBACiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VU X09CUwogIHN1YmRpcnMKQEAgLTM0NSw3ICszMTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2NvbmZpZ3VyZQogIEdEQl9EQVRBRElSCiAgREVCVUdESVIKICBNQUtFSU5GT19F WFRSQV9GTEFHUwotQEAgLTgxMyw2ICs4MTgsNyBAQCB3aXRoX2dkYl9kYXRhZGlyCitAQCAtODE0 LDYgKzgxOSw3IEBACiAgd2l0aF9yZWxvY2F0ZWRfc291cmNlcwogIHdpdGhfYXV0b19sb2FkX2Rp cgogIHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aApAQCAtMzUzLDcgKzMxOCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFi bGVfNjRfYml0X2JmZAogIGVuYWJsZV9nZGJjbGkKLUBAIC04NjksNiArODc1LDExIEBAIENDQwor QEAgLTg3MCw2ICs4NzYsMTEgQEAKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJTkZPRkxBR1MKQEAg LTM2NSw3ICszMzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3Vy ZQogIFlBQ0MKICBZRkxBR1MKICBYTUtNRicKLUBAIC0xNTQwLDYgKzE1NTEsOCBAQCBPcHRpb25h bCBQYWNrYWdlczoKK0BAIC0xNTQxLDYgKzE1NTIsOCBAQAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWy0td2l0aC1hdXRvLWxvYWQtZGlyXQogICAgLS13aXRob3V0LWF1dG8tbG9hZC1zYWZl LXBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIG5vdCByZXN0cmljdCBhdXRvLWxv YWRlZCBmaWxlcyBsb2NhdGlvbnMKQEAgLTM3NCw3ICszMzksNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogICAgLS13aXRoLWxpYnVud2luZC1pYTY0ICAgdXNl IGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwogICAgLS13aXRoLWN1 cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJt Y2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5Ci1AQCAtMTU5NSw2ICsxNjA4 LDEzIEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorQEAgLTE1OTUs NiArMTYwOCwxMyBAQAogICAgTUFLRUlORk8gICAgUGFyZW50IGNvbmZpZ3VyZSBkZXRlY3RzIGlm IGl0IGlzIG9mIHN1ZmZpY2llbnQgdmVyc2lvbi4KICAgIE1BS0VJTkZPRkxBR1MKICAgICAgICAg ICAgICAgIFBhcmFtZXRlcnMgZm9yIE1BS0VJTkZPLgpAQCAtMzg4LDcgKzM1Myw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgICBZQUNDICAgICAgICBUaGUg YFlldCBBbm90aGVyIEMgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMg dG8KICAgICAgICAgICAgICAgIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29u IC15JywgYGJ5YWNjJywgYHlhY2MnLgogICAgWUZMQUdTICAgICAgVGhlIGxpc3Qgb2YgYXJndW1l bnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4KLUBAIC01NjU1LDYg KzU2NzUsNDk0IEBAIF9BQ0VPRgorQEAgLTU2MTMsNiArNTYzMyw0OTQgQEAKICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfYXV0b19sb2FkX3Nh ZmVfcGF0aCIgPiY1CiAgJGFzX2VjaG8gIiR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsg fQogIApAQCAtODgzLDExICs4NDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9jb25maWd1cmUKICAKICAKICBzdWJkaXJzPSIkc3ViZGlycyB0ZXN0c3VpdGUiCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE2MDEwNi5vcmlnL2dkYi9jb25maWd1cmUuYWMKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvY29uZmlndXJlLmFjCi1AQCAtMTc3LDYgKzE3NywxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRP X0xPQURfU0FGRV9QQVRILCBlc2NhcAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L2NvbmZpZ3VyZS5hYwkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wNy0wMyAxNDozNzoxMi41 ODIxMzA4MTkgKzAyMDAKK0BAIC0xNzcsNiArMTc3LDE5OSBAQAogIAkgICAgICBbRGlyZWN0b3Jp ZXMgc2FmZSB0byBob2xkIGF1dG8tbG9hZGVkIGZpbGVzLl0pCiAgQUNfTVNHX1JFU1VMVChbJHdp dGhfYXV0b19sb2FkX3NhZmVfcGF0aF0pCiAgCkBAIC0xMDg3LDExICsxMDUyLDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCiAgQUNfQ09ORklHX1NVQkRJ UlModGVzdHN1aXRlKQogIAogICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0IGFsdGVybmF0aXZl IHRhcmdldCBjb25maWd1cmF0aW9ucwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9j b3JlbG93LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29yZWxvdy5jCi0rKysg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwotQEAgLTMxMCw3ICszMTAsNyBAQCBi dWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5KQorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAyMjc1MzU4MiArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAxNDoz NzoxMi41ODIxMzA4MTkgKzAyMDAKK0BAIC0zMTAsNyArMzEwLDcgQEAKICAgICAgICAgIHN5bWZp bGVfb2JqZmlsZS0+ZmxhZ3MgfD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURFRDsKICAgICAgfQog ICAgZWxzZQpAQCAtMTEwMCwxMCArMTA2NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2NvcmVsb3cuYwogIAogICAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOwogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2 MDEwNi5vcmlnL2dkYi9idWlsZC1pZC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1 aWxkLWlkLmMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9idWlsZC1pZC5jCTIw MTYtMDctMDMgMTQ6MzY6NTAuMTI0OTM4MTg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wNy0wMyAxNDo0MjoyNS4xNzE4MTIxMzQgKzAyMDAKIEBA IC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgImVsZi9jb21tb24uaCIKICAjaW5jbHVkZSAiZWxm LWJmZC5oIgpAQCAtMTExMiw3ICsxMDc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9idWlsZC1pZC5jCiAgCiAgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NFX05PTkUgMAogICNk ZWZpbmUgQlVJTERfSURfVkVSQk9TRV9GSUxFTkFNRVMgMQotQEAgLTY2NSw4ICs2NjYsMzY2IEBA IGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2IKK0BAIC02NjUsOCArNjY2 LDM2NiBAQAogICAgcmV0dXJuIHJlc3VsdDsKICB9CiAgCkBAIC0xMjIxLDEzICsxMTg2LDEzIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwkgICAgcmV0dXJu IDA7CiArCSAgfQogKwotKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSBkbHN5bSAoaCwgImhlYWRl ckZvcm1hdCIpKQotKwkgICAgICAmJiAocnBtUmVhZENvbmZpZ0ZpbGVzX3AgPSBkbHN5bSAoaCwg InJwbVJlYWRDb25maWdGaWxlcyIpKQotKwkgICAgICAmJiAocnBtZGJGcmVlSXRlcmF0b3JfcCA9 IGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKLSsJICAgICAgJiYgKHJwbWRiTmV4dEl0 ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbWRiTmV4dEl0ZXJhdG9yIikpCi0rCSAgICAgICYmIChy cG10c0NyZWF0ZV9wID0gZGxzeW0gKGgsICJycG10c0NyZWF0ZSIpKQotKwkgICAgICAmJiAocnBt dHNGcmVlX3AgPSBkbHN5bSAoaCwgInJwbXRzRnJlZSIpKQotKwkgICAgICAmJiAocnBtdHNJbml0 SXRlcmF0b3JfcCA9IGRsc3ltIChoLCAicnBtdHNJbml0SXRlcmF0b3IiKSkpKQorKwlpZiAoISgo aGVhZGVyRm9ybWF0X3AgPSAoY2hhciAqKCopIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwg ZXJybXNnX3QgKmVycm1zZykpIGRsc3ltIChoLCAiaGVhZGVyRm9ybWF0IikpCisrCSAgICAgICYm IChycG1SZWFkQ29uZmlnRmlsZXNfcCA9IChpbnQgKCopIChjb25zdCBjaGFyICogZmlsZSwgY29u c3QgY2hhciAqIHRhcmdldCkpIGRsc3ltIChoLCAicnBtUmVhZENvbmZpZ0ZpbGVzIikpCisrCSAg ICAgICYmIChycG1kYkZyZWVJdGVyYXRvcl9wID0gKHJwbWRiTWF0Y2hJdGVyYXRvciAoKikgKHJw bWRiTWF0Y2hJdGVyYXRvciBtaSkpIGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKKysJ ICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSAoSGVhZGVyICgqKSAocnBtZGJNYXRjaEl0 ZXJhdG9yIG1pKSkgZGxzeW0gKGgsICJycG1kYk5leHRJdGVyYXRvciIpKQorKwkgICAgICAmJiAo cnBtdHNDcmVhdGVfcCA9IChycG10cyAoKikgKHZvaWQpKSBkbHN5bSAoaCwgInJwbXRzQ3JlYXRl IikpCisrCSAgICAgICYmIChycG10c0ZyZWVfcCA9IChycG10cyAoKikgKHJwbXRzIHRzKSkgZGxz eW0gKGgsICJycG10c0ZyZWUiKSkKKysJICAgICAgJiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSAo cnBtZGJNYXRjaEl0ZXJhdG9yICgqKSAoY29uc3QgcnBtdHMgdHMsIHJwbVRhZyBycG10YWcsIGNv bnN0IHZvaWQgKmtleXAsIHNpemVfdCBrZXlsZW4pKSBkbHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJh dG9yIikpKSkKICsJICB7CiArCSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFyeSBcIiVzXCIg aXMgaW5jb21wYXRpYmxlICglcyksICIKICsJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90 aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKQEAgLTEyODMsMTIgKzEyNDgsMTIg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiArCSAgaWYgKHMg PiBkZWJ1Z2luZm8gJiYgbWVtY21wIChzLCAiLnNyYy5ycG0iLCBzcmNycG1sZW4pID09IDApCiAr CSAgICB7CiArCSAgICAgIC8qIHMyID0gYC0le3JlbGVhc2V9LnNyYy5ycG0tZGVidWdpbmZvLiV7 YXJjaH0nICovCi0rCSAgICAgIHMyID0gbWVtcmNociAoZGVidWdpbmZvLCAnLScsIHMgLSBkZWJ1 Z2luZm8pOworKwkgICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBz IC0gZGVidWdpbmZvKTsKICsJICAgIH0KICsJICBpZiAoczIpCiArCSAgICB7CiArCSAgICAgIC8q IHMyID0gYC0le3ZlcnNpb259LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScg Ki8KLSsJICAgICAgczIgPSBtZW1yY2hyIChkZWJ1Z2luZm8sICctJywgczIgLSBkZWJ1Z2luZm8p OworKwkgICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzMiAtIGRl YnVnaW5mbyk7CiArCSAgICB9CiArCSAgaWYgKCFzMikKICsJICAgIHsKQEAgLTEzMTEsNyArMTI3 Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwogKwkg IC8qIFJQTURCSV9QQUNLQUdFUyByZXF1aXJlcyBrZXlsZW4gPT0gc2l6ZW9mIChpbnQpLiAgKi8K ICsJICAvKiBSUE1EQklfTEFCRUwgaXMgYW4gaW50ZXJmYWNlIGZvciBOVlItYmFzZWQgZGJpRmlu ZEJ5TGFiZWwoKS4gICovCi0rCSAgbWlfZGVidWdpbmZvID0gcnBtdHNJbml0SXRlcmF0b3JfcCAo dHMsIFJQTURCSV9MQUJFTCwgZGVidWdpbmZvLCAwKTsKKysJICBtaV9kZWJ1Z2luZm8gPSBycG10 c0luaXRJdGVyYXRvcl9wICh0cywgKHJwbVRhZykgUlBNREJJX0xBQkVMLCBkZWJ1Z2luZm8sIDAp OwogKwkgIHhmcmVlIChkZWJ1Z2luZm8pOwogKwkgIGlmIChtaV9kZWJ1Z2luZm8pCiArCSAgICB7 CkBAIC0xMzYyLDcgKzEzMjcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1 aWxkLWlkLmMKICsKICsJICAgICAgKnNsb3QgPSBkZWJ1Z2luZm87CiArCi0rCSAgICAgIG1pc3Np bmdfcnBtID0geG1hbGxvYyAoc2l6ZW9mICgqbWlzc2luZ19ycG0pICsgc3RybGVuIChkZWJ1Z2lu Zm8pKTsKKysJICAgICAgbWlzc2luZ19ycG0gPSAoc3RydWN0IG1pc3NpbmdfcnBtICopIHhtYWxs b2MgKHNpemVvZiAoKm1pc3NpbmdfcnBtKSArIHN0cmxlbiAoZGVidWdpbmZvKSk7CiArCSAgICAg IHN0cmNweSAobWlzc2luZ19ycG0tPnJwbSwgZGVidWdpbmZvKTsKICsJICAgICAgbWlzc2luZ19y cG0tPm5leHQgPSBtaXNzaW5nX3JwbV9saXN0OwogKwkgICAgICBtaXNzaW5nX3JwbV9saXN0ID0g bWlzc2luZ19ycG07CkBAIC0xNDAwLDcgKzEzNjUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsgIGlmIChtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMgPT0g MCkKICsgICAgcmV0dXJuOwogKwotKyAgYXJyYXkgPSB4bWFsbG9jIChzaXplb2YgKCphcnJheSkg KiBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMpOworKyAgYXJyYXkgPSAoY2hhciAqKikgeG1hbGxv YyAoc2l6ZW9mICgqYXJyYXkpICogbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKICsgIGNsZWFu dXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJyYXkpOwogKwogKyAgYXJyYXlfaXRlciA9IGFy cmF5OwpAQCAtMTQ4MCw3ICsxNDQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9idWlsZC1pZC5jCiAgICAgYXZvaWRhbmNlLiAgKi8KICAKICBzdHJ1Y3QgbWlzc2luZ19maWxl cGFpcgotQEAgLTcyMCwxMSArMTA3OSwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9p ZCkKK0BAIC03MjAsMTEgKzEwNzksMTcgQEAKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNh bWUganVzdCBmcm9tIG1pc3NpbmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2lu Z19maWxlcGFpcl9oYXNoID0gTlVMTDsKICAgICAgfQpAQCAtMTQ5OCw3ICsxNDYzLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICBtaXNzaW5nX2ZpbGVw YWlyX2NoYW5nZSAoKTsKICB9CiAgCi1AQCAtNzkxLDE0ICsxMTU2LDM5IEBAIGRlYnVnX3ByaW50 X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwKK0BAIC03OTEsMTQgKzExNTYsMzkgQEAKICAK ICAgICpzbG90ID0gbWlzc2luZ19maWxlcGFpcjsKICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCBi MjVhZDhlLi5mZjc3Nzc1IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNo CisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvcmVsb3cuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2 MDIxMS5vcmlnL2dkYi9jb3JlbG93LmMJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAx MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29yZWxvdy5jCTIwMTYtMDItMTUgMjM6 MjY6NDYuNTE2MDk2Mzk1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIv Y29yZWxvdy5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAyMjc1MzU4 MiArMDIwMAogQEAgLTQ1LDYgKzQ1LDEwIEBACiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKICAjaW5j bHVkZSAiY29tcGxldGVyLmgiCkBAIC05NCwxMSArOTQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9jb3JlbG93LmMKICsJCQkgICBOVUxMLCBOVUxMLCBOVUxMLAogKwkJCSAg ICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIH0KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RvYy9n ZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2Ri L2RvYy9nZGIudGV4aW5mbwkyMDE2LTAyLTE1IDIzOjI1OjM2LjQ1NTU5ODk1OCArMDEwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wMi0xNSAyMzoy NjowNi4zNjI4MTEzMDIgKzAxMDAKLUBAIC0xODY4NCw2ICsxODY4NCwyNyBAQAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE2LTA3LTAzIDE0OjMz OjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxNi0wNy0wMyAxNDozNDozMi4wMzA3NTM2NTEgKzAyMDAKK0BAIC0xODkxNiw2 ICsxODkxNiwyNyBAQAogIAogIEBlbmQgdGFibGUKICAKQEAgLTEyNiwxMCArMTI2LDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBA Y29kZXsuZ251X2RlYnVnbGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlv bnMKICBBIGRlYnVnIGxpbmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUg ZmlsZSBuYW1lZAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTYtMDIt MTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3NvbGliLXN2cjQuYwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjYxMzA5NzA4MyArMDEwMAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE2LTA3LTAzIDE0OjMz OjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zb2xpYi1z dnI0LmMJMjAxNi0wNy0wMyAxNDozNDozMi4wMzE3NTM2NTkgKzAyMDAKIEBAIC00NSw2ICs0NSw3 IEBACiAgI2luY2x1ZGUgImF1eHYuaCIKICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgpAQCAtMTk0LDEw ICsxOTQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMK ICAgICAgICB4ZnJlZSAoYnVmZmVyKTsKICAKICAgICAgICAvKiBJZiB0aGlzIGVudHJ5IGhhcyBu byBuYW1lLCBvciBpdHMgbmFtZSBtYXRjaGVzIHRoZSBuYW1lCi1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL2VsZnJlYWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9l bGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9l bGZyZWFkLmMJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvZWxmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjY6MDYuMzY0ODExMzE2 ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTYt MDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL2VsZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMTc1MzY1OSArMDIwMAogQEAgLTEy NTksOSArMTI1OSwxMCBAQAogIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxl ID09IE5VTEwKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGlu ayA9PSBOVUxMKQpAQCAtMjI0LDExICsyMjQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi9lbGZyZWFkLmMKICAgICAgfQogIH0KICAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvc3ltZmlsZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZp bGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3N5bWZp bGUuaAkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9zeW1maWxlLmgJMjAxNi0wMi0xNSAyMzoyNjo0Ni41MTYwOTYzOTUgKzAx MDAKLUBAIC01ODQsNiArNTg0LDEwIEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9n ZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMjc1 MzY2OCArMDIwMAorQEAgLTU4OSw2ICs1ODksMTAgQEAKICB2b2lkIG1hcF9zeW1ib2xfZmlsZW5h bWVzIChzeW1ib2xfZmlsZW5hbWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0YSwKICAJCQkgICBpbnQg bmVlZF9mdWxsbmFtZSk7CiAgCkBAIC0yMzksMTEgKzIzOSwxMSBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAgCiAg LyogTmFtZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhlIGZpZWxkIE5PUk1B TCBpcyB0aGUgbm9ybWFsCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAx MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIw MTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2Mzk1ICswMTAwCi1AQCAtMTY0MCw2ICsxNjQwLDE2IEBA CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhw CTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMzc1 MzY3NiArMDIwMAorQEAgLTE2NDEsNiArMTY0MSwxNiBAQAogIAkgICAgd2FybmluZyAiQ291bGRu J3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yNjAsMTEgKzI2MCwxMSBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAog ICAgICByZXR1cm4gMAogIH0KICAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu OTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE2LTAy LTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2 Mzk1ICswMTAwCi1AQCAtMjA0LDYgKzIwNCwxNiBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMw Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wNy0wMyAxNDozMzoy OC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRl L2xpYi9taS1zdXBwb3J0LmV4cAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMzc1MzY3NiArMDIwMAor QEAgLTMwOSw2ICszMDksMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7 CiAgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAg IH0KQEAgLTI3OSwxMiArMjc5LDEyIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogKwl9CiArICAgIH0KICAKLSAgICAgIyBDcmVh dGUgdGhlIG5ldyBQVFkgZm9yIHRoZSBpbmZlcmlvciBwcm9jZXNzLgogICAgICBpZiB7ICRzZXBh cmF0ZV9pbmZlcmlvcl9wdHkgfSB7Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL29i amZpbGVzLmgKKyAJbWlfY3JlYXRlX2luZmVyaW9yX3B0eQorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9vYmpmaWxlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAy MTEub3JpZy9nZGIvb2JqZmlsZXMuaAkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9vYmpmaWxlcy5oCTIwMTYtMDItMTUgMjM6 MjY6MDYuMzY2ODExMzMwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIv b2JqZmlsZXMuaAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9vYmpmaWxlcy5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDM0NzUz Njg1ICswMjAwCiBAQCAtNDg5LDYgKzQ4OSwxMCBAQAogIAogICNkZWZpbmUgT0JKRl9OT1RfRklM RU5BTUUgKDEgPDwgNikKQEAgLTI5NiwxMCArMjk2LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvb2JqZmlsZXMuaAogIC8qIERlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIGRl ZmluZWQgaW4gb2JqZmlsZXMuYyAqLwogIAogIGV4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYWxsb2Nh dGVfb2JqZmlsZSAoYmZkICosIGNvbnN0IGNoYXIgKm5hbWUsIGludCk7Ci1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAx MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVm aWxlLmV4cAkyMDE2LTAyLTE1IDIzOjI2OjU1LjE3ODE1Nzg5NiArMDEwMAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAx Ni0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE2LTA3LTAzIDE0OjM0OjMy LjAzNDc1MzY4NSArMDIwMAogQEAgLTI5MywzICsyOTMsMzMgQEAKICAJcGFzcyAkdGVzdAogICAg ICB9CkBAIC0zMzQsMTAgKzMzNCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKICsgICAgZ2RiX3Rlc3QgImluZm8gZmls ZXMiICJMb2NhbCBleGVjIGZpbGU6XHJcblxbIFx0XF0qYFtzdHJpbmdfdG9fcmVnZXhwICRkZWJ1 Z2Rpci8kYnVpbGRpZF0nLCBmaWxlIHR5cGUgLioiCiArICAgIHBhc3MgJHdob2xldGVzdAogK30K LUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu OTAuMjAxNjAyMTEub3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0 NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCTIwMTYt MDItMTUgMjM6MjY6NDYuNTE2MDk2Mzk1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAu b3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCTIwMTYtMDctMDMgMTQ6MzY6 NTAuMTI0OTM4MTg3ICswMjAwCiBAQCAtMjYsMTEgKzI2LDY3IEBACiAgI2luY2x1ZGUgIm9iamZp bGVzLmgiCiAgI2luY2x1ZGUgImZpbGVuYW1lcy5oIgpAQCAtMzg1LDEwICszODUsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCSAgJiYgbWVtY21wICh4 bnAtPm5hbWUsICJHTlUiLCBzaXplb2YgIkdOVSIpID09IDApCiArCXsKICsJICBzaXplX3Qgc2l6 ZSA9IGRlc2NzejsKLSsJICBnZGJfYnl0ZSAqZGF0YSA9ICh2b2lkICopIGRlc2NkYXRhOworKwkg IGdkYl9ieXRlICpkYXRhID0gKGdkYl9ieXRlICopIGRlc2NkYXRhOwogKwkgIHN0cnVjdCBiZmRf YnVpbGRfaWQgKnJldHZhbDsKICsKLSsJICByZXR2YWwgPSB4bWFsbG9jIChzaXplb2YgKnJldHZh bCAtIDEgKyBzaXplKTsKKysJICByZXR2YWwgPSAoc3RydWN0IGJmZF9idWlsZF9pZCAqKSB4bWFs bG9jIChzaXplb2YgKnJldHZhbCAtIDEgKyBzaXplKTsKICsJICByZXR2YWwtPnNpemUgPSBzaXpl OwogKwkgIG1lbWNweSAocmV0dmFsLT5kYXRhLCBkYXRhLCBzaXplKTsKICsKQEAgLTQyOSw3ICs0 MjksNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsJZ2Ri X2J5dGUgKmJ1ZjsKICsJaW50IGVycjsKICsKLSsJYnVmID0geG1hbGxvYyAoaGRyLT5wX2ZpbGVz eik7CisrCWJ1ZiA9IChnZGJfYnl0ZSAqKSB4bWFsbG9jIChoZHItPnBfZmlsZXN6KTsKICsJZXJy ID0gdGFyZ2V0X3JlYWRfbWVtb3J5IChsb2FkYmFzZSArIGlfcGhkcltpXS5wX3ZhZGRyLCBidWYs CiArCQkJCSAgaGRyLT5wX2ZpbGVzeik7CiArCWlmIChlcnIgPT0gMCkKQEAgLTYzMyw4ICs2MzMs OCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsgIHhfcGhk cnNfc2l6ZSA9IChiZmRfZ2V0X2FyY2hfc2l6ZSAodGVtcGwpID09IDY0ID8gc2l6ZW9mIChFbGY2 NF9FeHRlcm5hbF9QaGRyKQogKwkJCQkJCTogc2l6ZW9mIChFbGYzMl9FeHRlcm5hbF9QaGRyKSk7 CiArCi0rICBpX3BoZHJzID0geG1hbGxvYyAoaV9laGRyLmVfcGhudW0gKiAoc2l6ZW9mICppX3Bo ZHJzICsgeF9waGRyc19zaXplKSk7Ci0rICB4X3BoZHJzX3B0ciA9ICh2b2lkICopICZpX3BoZHJz W2lfZWhkci5lX3BobnVtXTsKKysgIGlfcGhkcnMgPSAoRWxmX0ludGVybmFsX1BoZHIgKikgeG1h bGxvYyAoaV9laGRyLmVfcGhudW0gKiAoc2l6ZW9mICppX3BoZHJzICsgeF9waGRyc19zaXplKSk7 CisrICB4X3BoZHJzX3B0ciA9IChnZGJfYnl0ZSAqKSAmaV9waGRyc1tpX2VoZHIuZV9waG51bV07 CiArICBlcnIgPSB0YXJnZXRfcmVhZF9tZW1vcnkgKGVoZHJfdm1hICsgaV9laGRyLmVfcGhvZmYs IChiZmRfYnl0ZSAqKSB4X3BoZHJzX3B0ciwKICsJCQkgICAgaV9laGRyLmVfcGhudW0gKiB4X3Bo ZHJzX3NpemUpOwogKyAgaWYgKGVycikKQEAgLTcwMCw3ICs3MDAsNyBAQCBJbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsgICAgewogKyAgICAgIHN0cnVjdCBidWls ZF9pZF9hZGRyX3NlY3QgKmNhbmRpZGF0ZTsKICsKLSsgICAgICBjYW5kaWRhdGUgPSB4bWFsbG9j IChzaXplb2YgKmNhbmRpZGF0ZSk7CisrICAgICAgY2FuZGlkYXRlID0gKHN0cnVjdCBidWlsZF9p ZF9hZGRyX3NlY3QgKikgeG1hbGxvYyAoc2l6ZW9mICpjYW5kaWRhdGUpOwogKyAgICAgIGNhbmRp ZGF0ZS0+bmV4dCA9IGJ1aWxkX2lkX2FkZHJfc2VjdDsKICsgICAgICBidWlsZF9pZF9hZGRyX3Nl Y3QgPSBjYW5kaWRhdGU7CiArICAgICAgY2FuZGlkYXRlLT5zZWN0ID0gc2VjdDsKQEAgLTgyNSw3 ICs4MjUsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKIC0J ICAgICAgICsgKHNpemVvZiAiLy5idWlsZC1pZC8iIC0gMSkgKyAxCiAtCSAgICAgICArIDIgKiBi dWlsZF9pZF9sZW4gKyAoc2l6ZW9mICIuZGVidWciIC0gMSkgKyAxKTsKIC0gIGxpbmsgPSAoY2hh ciAqKSBhbGxvY2EgKGFsbG9jX2xlbik7Ci0rICBsaW5rID0geG1hbGxvYyAoc3RybGVuIChkZWJ1 Z19maWxlX2RpcmVjdG9yeSkgKyAyICogYnVpbGRfaWRfbGVuICsgNTApOworKyAgbGluayA9IChj aGFyICopIHhtYWxsb2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgMiAqIGJ1aWxk X2lkX2xlbiArIDUwKTsKICAKICAgIC8qIEtlZXAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBzbyB0 aGF0IERFQlVHX0ZJTEVfRElSRUNUT1JZIGJlaW5nICIiIHdpbGwKICAgICAgIGNhdXNlICIvLmJ1 aWxkLWlkLy4uLiIgbG9va3Vwcy4gICovCkBAIC05MzcsOCArOTM3LDggQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCXsKICsJICBzaXplX3QgbGVuX29yaWcg PSBzdHJsZW4gKGxpbmtfYWxsKTsKICsKLSsJICBsaW5rX2FsbCA9IHhyZWFsbG9jIChsaW5rX2Fs bCwKLSsJCQkgICAgICAgbGVuX29yaWcgKyAxICsgc3RybGVuIChsaW5rMF9yZXNvbHZlZCkgKyAx KTsKKysJICBsaW5rX2FsbCA9IChjaGFyICopIHhyZWFsbG9jIChsaW5rX2FsbCwKKysJCQkJCWxl bl9vcmlnICsgMSArIHN0cmxlbiAobGluazBfcmVzb2x2ZWQpICsgMSk7CiArCiArCSAgLyogVXNl IHdoaXRlc3BhY2UgaW5zdGVhZCBvZiBESVJOQU1FX1NFUEFSQVRPUiB0byBiZSBjb21wYXRpYmxl IHdpdGgKICsJICAgICBpdHMgcG9zc2libGUgdXNlIGFzIGFuIGFyZ3VtZW50IGZvciBpbnN0YWxs YXRpb24gY29tbWFuZC4gICovCkBAIC0xMDk1LDkgKzEwOTUsOSBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsgIGlmICgqc2xvdCAhPSBOVUxMKQogKyAgICBy ZXR1cm47CiArCi0rICBtaXNzaW5nX2ZpbGVwYWlyID0gb2JzdGFja19hbGxvYyAoJm1pc3Npbmdf ZmlsZXBhaXJfb2JzdGFjaywKLSsJCQkJICAgICAgc2l6ZW9mICgqbWlzc2luZ19maWxlcGFpcikg LSAxCi0rCQkJCSAgICAgICsgYmluYXJ5X2xlbjAgKyBkZWJ1Z19sZW4wKTsKKysgIG1pc3Npbmdf ZmlsZXBhaXIgPSAoc3RydWN0IG1pc3NpbmdfZmlsZXBhaXIgKikgb2JzdGFja19hbGxvYyAoJm1p c3NpbmdfZmlsZXBhaXJfb2JzdGFjaywKKysJCQkJCQkJCXNpemVvZiAoKm1pc3NpbmdfZmlsZXBh aXIpIC0gMQorKwkJCQkJCQkJKyBiaW5hcnlfbGVuMCArIGRlYnVnX2xlbjApOwogKyAgbWlzc2lu Z19maWxlcGFpci0+YmluYXJ5ID0gbWlzc2luZ19maWxlcGFpci0+ZGF0YTsKICsgIG1lbWNweSAo bWlzc2luZ19maWxlcGFpci0+YmluYXJ5LCBiaW5hcnksIGJpbmFyeV9sZW4wKTsKICsgIGlmIChk ZWJ1ZyAhPSBOVUxMKQpAQCAtMTE2NiwxMCArMTE2NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsKICsgIG9ic2VydmVyX2F0dGFjaF9leGVjdXRhYmxl X2NoYW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiArfQotSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL2J1aWxkLWlkLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIx MS5vcmlnL2dkYi9idWlsZC1pZC5oCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmgJMjAxNi0wMi0xNSAyMzoy NjowNi4zNjg4MTEzNDUgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9i dWlsZC1pZC5oCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmgJMjAxNi0wNy0wMyAxNDozNDozMi4wMzU3NTM2 OTQgKzAyMDAKIEBAIC0yMCw5ICsyMCwxMCBAQAogICNpZm5kZWYgQlVJTERfSURfSAogICNkZWZp bmUgQlVJTERfSURfSApAQCAtMTIwNCwxMSArMTIwNCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmgKICsJCQkJCSAgICAgICBjaGFyICoqYnVpbGRfaWRfZmls ZW5hbWVfcmV0dXJuKTsKICAKICAjZW5kaWYgLyogQlVJTERfSURfSCAqLwotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAy MTEub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6MzYuNDYxNTk5MDAxICsw MTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTAyLTE1 IDIzOjI2OjA2LjM3MzgxMTM4MCArMDEwMAotQEAgLTI1MTYsNyArMjUxNiw3IEBACistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6 MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJmMnJl YWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjA0MDc1MzczNiArMDIwMAorQEAgLTI1MzUsNyArMjUz NSw3IEBACiAgICAgIH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBAIC0xMjE3LDExICsx MjE3LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYycmVhZC5jCiAg CiAgICBpZiAoZHd6X2JmZCA9PSBOVUxMKQogICAgICBlcnJvciAoXygiY291bGQgbm90IGZpbmQg Jy5nbnVfZGVidWdhbHRsaW5rJyBmaWxlIGZvciAlcyIpLAotSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi9weXRob24vcHktb2JqZmlsZS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4y MDE2MDIxMS5vcmlnL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYtMDItMTUgMjM6MjU6MDAu ODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3B5dGhvbi9weS1v YmpmaWxlLmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzM4MTEzODAgKzAxMDAKLUBAIC0xMzksNyAr MTM5LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9weXRob24vcHktb2Jq ZmlsZS5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAxNi0wNy0wMyAxNDozNDozMi4w NDA3NTM3MzYgKzAyMDAKK0BAIC0xMzYsNyArMTM2LDcgQEAKICAKICAgIFRSWQogICAgICB7CkBA IC0xMjMwLDcgKzEyMzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3B5dGhv bi9weS1vYmpmaWxlLmMKICAgICAgfQogICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxM KQogICAgICB7Ci1AQCAtNTQ4LDcgKzU0OCw3IEBACitAQCAtNTQ3LDcgKzU0Nyw3IEBACiAgICAg ICAgLyogRG9uJ3QgcmV0dXJuIHNlcGFyYXRlIGRlYnVnIGZpbGVzLiAgKi8KICAgICAgICBpZiAo b2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayAhPSBOVUxMKQogIAljb250 aW51ZTsKQEAgLTEyMzksMTEgKzEyMzksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9weXRob24vcHktb2JqZmlsZS5jCiAgICAgICAgaWYgKG9iZmRfYnVpbGRfaWQgPT0gTlVM TCkKICAJY29udGludWU7CiAgICAgICAgaWYgKG9iamZweV9idWlsZF9pZF9tYXRjaGVzIChvYmZk X2J1aWxkX2lkLCBidWlsZF9pZCkpCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2Nv ZmZyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29mZnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAx Ni0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvY29mZnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI2OjA2LjM3NDgxMTM4NyArMDEwMAotQEAg LTczOSw3ICs3MzksNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvZmZy ZWFkLmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvY29mZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjA0MTc1Mzc0NSAr MDIwMAorQEAgLTczNyw3ICs3MzcsNyBAQAogICAgICB7CiAgICAgICAgY2hhciAqZGVidWdmaWxl OwogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBl ZC5wYXRjaCBiL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaApp bmRleCBhMGM0NzJiLi40NGI4MzExIDEwMDY0NAotLS0gYS9nZGItNi44LWF0dGFjaC1zaWduYWxs ZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKKysrIGIvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRl dGFjaC1zdG9wcGVkLnBhdGNoCkBAIC0xLDcgKzEsOCBAQAotZGlmZiAtZHVwIC1ydXAgZ2RiLTcu MTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvaW5mcnVuLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2luZnJ1bi5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvaW5mcnVuLmMJMjAx Ni0wMS0wOSAxNTowNTowNi4xMjc0ODE3NTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvaW5mcnVuLmMJMjAxNi0wMS0wOSAxNTowNToyNC4wNTQ1OTMwNDggKzAxMDAKLUBAIC02 MjYsNiArNjI2LDEzIEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaW5mcnVuLmMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pbmZydW4uYwkyMDE2LTA3LTE2IDE0OjM3 OjA5LjMxNzE3ODE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pbmZydW4u YwkyMDE2LTA3LTE2IDE0OjM3OjEwLjYzNjE4ODc2NSArMDIwMAorQEAgLTYyMCw2ICs2MjAsMTMg QEAKICAJCQkJdGFyZ2V0X3BpZF90b19zdHIgKHByb2Nlc3NfcHRpZCkpOwogIAkgICAgfQogIApA QCAtMTUsMTAgKzE2LDExIEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9y aWcvZ2RiL2luZnJ1bi5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pCiAgCSAgdGFyZ2V0X2Rl dGFjaCAoTlVMTCwgMCk7CiAgCX0KICAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYw MTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1u YXQuYwotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYt MDEtMDkgMTU6MDU6MDYuMjI1NDgyMzY2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2xpbnV4LW5hdC5jCTIwMTYtMDEtMDkgMTU6MDU6MjQuMDUwNTkzMDIzICswMTAwCi1AQCAt MTk0LDYgKzE5NCwxMSBAQCBlbnVtIHRyaWJvb2wgaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID0gVFJJ CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xpbnV4LW5hdC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNi0wNy0x NiAxNDozNzowOS4zMjAxNzgxNzQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv bGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozODowOS41NzQ2NjMwOTQgKzAyMDAKK0BAIC0xOTQs NiArMTk0LDExIEBACiAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzICpsaW51eF9vcHM7CiAgc3Rh dGljIHN0cnVjdCB0YXJnZXRfb3BzIGxpbnV4X29wc19zYXZlZDsKICAKQEAgLTMwLDcgKzMyLDcg QEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0 LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAvKiBUaGUgbWV0aG9kIHRvIGNhbGwsIGlmIGFu eSwgd2hlbiBhIG5ldyB0aHJlYWQgaXMgYXR0YWNoZWQuICAqLwogIHN0YXRpYyB2b2lkICgqbGlu dXhfbmF0X25ld190aHJlYWQpIChzdHJ1Y3QgbHdwX2luZm8gKik7CiAgCi1AQCAtOTYxLDYgKzk2 Niw5IEBAIGxpbnV4X25hdF9wb3N0X2F0dGFjaF93YWl0IChwdGlkX3QgcHRpZCwKK0BAIC0xMDQ3 LDYgKzEwNTIsOSBAQAogICAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCiAgCWZwcmludGZfdW5m aWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgIkxOUEFXOiBBdHRhY2hpbmcgdG8gYSBzdG9w cGVkIHByb2Nlc3NcbiIpOwpAQCAtNDAsOCArNDIsOCBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4x MC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZAogIAogICAgICAgIC8qIFRoZSBwcm9jZXNzIGlzIGRlZmluaXRlbHkgc3RvcHBlZC4gIEl0IGlz IGluIGEgam9iIGNvbnRyb2wKICAJIHN0b3AsIHVubGVzcyB0aGUga2VybmVsIHByZWRhdGVzIHRo ZSBUQVNLX1NUT1BQRUQgLwotQEAgLTEzMDMsNiArMTMxMSwyNSBAQCBnZXRfcGVuZGluZ19zdGF0 dXMgKHN0cnVjdCBsd3BfaW5mbyAqbHAsCi0gCQkJICAgIGdkYl9zaWduYWxfdG9fc3RyaW5nIChz aWdubykpOworQEAgLTE0MDQsNiArMTQxMiwyNSBAQAorICAgICAgIHJldHVybiBnZGJfc2lnbmFs X3RvX2hvc3QgKHNpZ25vKTsKICAgICAgfQogIAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9Q CkBAIC02NiwxOCArNjgsMTggQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYt b3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAgIHJldHVybiAw OwogIH0KICAKLUBAIC0xNDE2LDYgKzE0NDMsMTAgQEAgbGludXhfbmF0X2RldGFjaCAoc3RydWN0 IHRhcmdldF9vcHMgKm9wcwotICAgICB9Ci0gICBlbHNlCi0gICAgIGxpbnV4X29wcy0+dG9fZGV0 YWNoIChvcHMsIGFyZ3MsIGZyb21fdHR5KTsKLSsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAor QEAgLTE1NjIsNiArMTU4OSwxMCBAQAorICAgICAgIGRldGFjaF9vbmVfbHdwIChtYWluX2x3cCwg JnNpZ25vKTsKKyAKKyAgICAgICBpbmZfcHRyYWNlX2RldGFjaF9zdWNjZXNzIChvcHMpOwogKwot KyAgcGlkX3dhc19zdG9wcGVkID0gMDsKKysjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAorKyAg ICAgIHBpZF93YXNfc3RvcHBlZCA9IDA7CiArI2VuZGlmCisgICAgIH0KKyAgIGRlbGV0ZV9sd3Ag KG1haW5fbHdwLT5wdGlkKTsKICB9Ci0gCi0gLyogUmVzdW1lIGV4ZWN1dGlvbiBvZiB0aGUgaW5m ZXJpb3IgcHJvY2Vzcy4gIElmIFNURVAgaXMgbm9uemVybywKLUBAIC0xNjc0LDYgKzE3MDUsMTYg QEAgbGludXhfbmF0X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcworQEAgLTE4MjMsNiAr MTg1NCwxNiBAQAogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtOTQsNyArOTYsNyBAQCBk aWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZAogICAgaWYgKHJlc3VtZV9tYW55KQogICAgICBpdGVyYXRl X292ZXJfbHdwcyAocHRpZCwgbGludXhfbmF0X3Jlc3VtZV9jYWxsYmFjaywgbHApOwogIAotQEAg LTM2MTgsNiArMzY1OSwxMCBAQCBsaW51eF9uYXRfbW91cm5faW5mZXJpb3IgKHN0cnVjdCB0YXJn ZXRfCitAQCAtMzgxOSw2ICszODYwLDEwIEBACiAgCiAgICAvKiBMZXQgdGhlIGFyY2gtc3BlY2lm aWMgbmF0aXZlIGNvZGUga25vdyB0aGlzIHByb2Nlc3MgaXMgZ29uZS4gICovCiAgICBsaW51eF9u YXRfZm9yZ2V0X3Byb2Nlc3MgKHBpZCk7CkBAIC0xMDUsMTAgKzEwNywxMSBAQCBkaWZmIC1kdXAg LXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZAogIH0KICAKICAvKiBDb252ZXJ0IGEgbmF0aXZlL2hvc3Qgc2lnaW5mbyBv YmplY3QsIGludG8vZnJvbSB0aGUgc2lnaW5mbyBpbiB0aGUKLWRpZmYgLWR1cCAtcnVwIGdkYi03 LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3Rv cHBlZC5leHAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9h dHRhY2gtc3RvcHBlZC5leHAKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDEtMDYgMDI6NDg6Mzgu MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9n ZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNi0wMS0wOSAxNTowNTo0OC45MTc3NDcx MDEgKzAxMDAKLUBAIC01Niw3ICs1Niw2NSBAQCBwcm9jIGNvcmVmdW5jIHsgdGhyZWFkdHlwZSB9 IHsKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRz L2F0dGFjaC1zdG9wcGVkLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNi0w Ny0xNiAxNDozNzowOS4zMjExNzgxODIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE2LTA3LTE2IDE0 OjM3OjEwLjY0MDE4ODc5NyArMDIwMAorQEAgLTU2LDcgKzU2LDY1IEBACiAgICAgIGdkYl9yZWlu aXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgogICAgICBnZGJfbG9hZCAke2JpbmZpbGV9CiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaCBiL2dkYi02Ljgt cXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKaW5kZXggNDdlMWM2NC4uNTVlNzE0ZSAxMDA2NDQKLS0t IGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaAorKysgYi9nZGItNi44LXF1aXQtbmV2 ZXItYWJvcnRzLnBhdGNoCkBAIC01LDM4ICs1LDQyIEBAIFNvbWUgb2YgdGhlIHRocmVhZHMgbWF5 IG5vdCBiZSBwcm9wZXJseSBQVFJBQ0VfREVUQUNIZWQgd2hpY2ggaHVydHMgaWYgdGhleQogc2hv dWxkIGhhdmUgYmVlbiBkZXRhY2hlZCB3aXRoIFNJR1NUT1AgKGFzIHRoZXkgYXJlIGFjY2lkZW50 YWxseSBsZWZ0IHJ1bm5pbmcKIG9uIHRoZSBkZWJ1Z2dlciB0ZXJtaW5hdGlvbikuCiAKLWRpZmYg LWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2RlZnMuaCBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvZGVmcy5oCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIv ZGVmcy5oCTIwMTYtMDEtMDkgMTU6MDY6NTcuNjU4MTcyODc1ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2RlZnMuaAkyMDE2LTAxLTA5IDE1OjA3OjEyLjQzMTI2NDM3OCArMDEw MAotQEAgLTE0NSw2ICsxNDUsOSBAQCBleHRlcm4gdm9pZCBzZXRfcXVpdF9mbGFnICh2b2lkKTsK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZGVmcy5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZGVmcy5oCTIwMTYtMDctMDMgMTY6NDA6NDMu NDIzMDc4OTI2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RlZnMuaAkyMDE2 LTA3LTAzIDE2OjQxOjA4LjU2ODI3MTc0MSArMDIwMAorQEAgLTE3NSw2ICsxNzUsMTAgQEAKICAv KiBGbGFnIHRoYXQgZnVuY3Rpb24gcXVpdCBzaG91bGQgY2FsbCBxdWl0X2ZvcmNlLiAgKi8KICBl eHRlcm4gdm9sYXRpbGUgaW50IHN5bmNfcXVpdF9mb3JjZV9ydW47CiAgCiArI2lmZGVmIE5FRURf REVUQUNIX1NJR1NUT1AKICtleHRlcm4gaW50IHF1aXRfZmxhZ19jbGVhbnVwOwogKyNlbmRpZgot IGV4dGVybiBpbnQgaW1tZWRpYXRlX3F1aXQ7Ci0gCisrCiAgZXh0ZXJuIHZvaWQgcXVpdCAodm9p ZCk7Ci1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9leHRlbnNp b24uYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZXh0ZW5zaW9uLmMKLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi1vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE2LTAxLTA2IDAyOjQ4OjM3LjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9leHRlbnNpb24uYwkyMDE2 LTAxLTA5IDE1OjA3OjEyLjQzNDI2NDM5NiArMDEwMAotQEAgLTgzMyw2ICs4MzMsMTEgQEAgY2hl Y2tfcXVpdF9mbGFnICh2b2lkKQorIAorIC8qIEhlbHBlciBmb3IgdGhlIFFVSVQgbWFjcm8uICAq LworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2V4dGVuc2lvbi5jCTIwMTYtMDct MDMgMTY6NDA6NDEuNzIzMDY1ODkwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2V4dGVuc2lvbi5jCTIwMTYtMDctMDMgMTY6NDE6NDQuODk2NTUwMzA5ICswMjAwCitAQCAtODMw LDYgKzgzMCwxMSBAQAogICAgaW50IGksIHJlc3VsdCA9IDA7CiAgICBjb25zdCBzdHJ1Y3QgZXh0 ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmc7CiAgCiArI2lmZGVmIE5FRURfREVUQUNIX1NJ R1NUT1AKICsgIGlmIChxdWl0X2ZsYWdfY2xlYW51cCkKICsgICAgcmV0dXJuIDA7Ci0rCiArI2Vu ZGlmCisrCiAgICBBTExfRU5BQkxFRF9FWFRFTlNJT05fTEFOR1VBR0VTIChpLCBleHRsYW5nKQog ICAgICB7CiAgICAgICAgaWYgKGV4dGxhbmctPm9wcy0+Y2hlY2tfcXVpdF9mbGFnICE9IE5VTEwp Ci1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90b3AuYyBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdG9wLmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmln L2dkYi90b3AuYwkyMDE2LTAxLTA2IDAyOjQ4OjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi90b3AuYwkyMDE2LTAxLTA5IDE1OjA3OjEyLjQzMjI2NDM4NCAr MDEwMAotQEAgLTE1NTcsNyArMTU1NywxMyBAQCBxdWl0X2ZvcmNlIChjaGFyICphcmdzLCBpbnQg ZnJvbV90dHkpCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RvcC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdG9wLmMJMjAxNi0wNy0wMyAx Njo0MDo0MS43MjQwNjU4OTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdG9w LmMJMjAxNi0wNy0wMyAxNjo0MDo0My40MjQwNzg5MzQgKzAyMDAKK0BAIC0xNjE3LDcgKzE2MTcs MTMgQEAKICAgIHF0LmFyZ3MgPSBhcmdzOwogICAgcXQuZnJvbV90dHkgPSBmcm9tX3R0eTsKICAK QEAgLTUwLDIwICs1NCwyMSBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1v cmlnL2dkYi90b3AuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdG9wLgogIAogICAgLyogR2V0 IG91dCBvZiB0ZmluZCBtb2RlLCBhbmQga2lsbCBvciBkZXRhY2ggYWxsIGluZmVyaW9ycy4gICov CiAgICBUUlkKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL3V0 aWxzLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3V0aWxzLmMKLS0tLSBnZGItNy4xMC41MC4y MDE2MDEwNi1vcmlnL2dkYi91dGlscy5jCTIwMTYtMDEtMDkgMTU6MDY6NTcuNjU0MTcyODUwICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3V0aWxzLmMJMjAxNi0wMS0wOSAxNTow NzoxMi40MzMyNjQzOTAgKzAxMDAKLUBAIC0xMjIsNiArMTIyLDEzIEBAIGludCBqb2JfY29udHJv bDsKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdXRpbHMuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAxNjo0 MDo0MS43MjUwNjU5MDUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdXRpbHMu YwkyMDE2LTA3LTAzIDE2OjQxOjM4Ljk2MTUwNDc5OSArMDIwMAorQEAgLTEwOSw2ICsxMDksMTMg QEAKICAKLSBpbnQgaW1tZWRpYXRlX3F1aXQ7CisgaW50IGpvYl9jb250cm9sOwogIAogKyNpZmRl ZiBORUVEX0RFVEFDSF9TSUdTVE9QCiArLyogTm9uemVybyBtZWFucyB3ZSBhcmUgYWxyZWFkeSBw cm9jZXNzaW5nIHRoZSBxdWl0dGluZyBjbGVhbnVwcyBhbmQgd2Ugc2hvdWxkCiArICAgbm8gbG9u Z2VyIGdldCBhYm9ydGVkLiAgKi8KICsKICtpbnQgcXVpdF9mbGFnX2NsZWFudXA7Ci0rCiArI2Vu ZGlmCisrCiAgLyogTm9uemVybyBtZWFucyB0aGF0IHN0cmluZ3Mgd2l0aCBjaGFyYWN0ZXIgdmFs dWVzID4weDdGIHNob3VsZCBiZSBwcmludGVkCiAgICAgYXMgb2N0YWwgZXNjYXBlcy4gIFplcm8g bWVhbnMganVzdCBwcmludCB0aGUgdmFsdWUgKGUuZy4gaXQncyBhbgogICAgIGludGVybmF0aW9u YWwgY2hhcmFjdGVyLCBhbmQgdGhlIHRlcm1pbmFsIG9yIHdpbmRvdyBjYW4gY29wZS4pICAqLwoK ZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoIGIvZ2RiLWFyY2hlci12bGEt dGVzdHMucGF0Y2gKaW5kZXggZmE2MDM4MC4uN2Y3ZTE4NCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hl ci12bGEtdGVzdHMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKQEAgLTEs NyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YWRhL3BhY2tlZF9hcnJheS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJ MjAxNi0wMi0xNSAyMzozMzoyOS44MzA5NTk5NzIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2LTAyLTE1IDIz OjM1OjU2LjI4OTk5OTg0NiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wNy0xNiAwMzo0ODo1OS4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNjE3Mjg4OSArMDIw MAogQEAgLTU2LDUgKzU2LDExIEBACiAgICAgICAgICAjIGFyZS4gIE9ic2VydmVkIHdpdGggKEZT RiBHTlUgQWRhIDQuNS4zIDIwMTEwMTI0KS4KICAgICAgICAgIHhmYWlsICR0ZXN0CkBAIC0xNCwx MCArMTQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS9wYWNrZWRfYXJyYXkuZXhwCiArICAgIH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82 NC12bGEtdHlwZWRlZi1mb28uUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIwMTYtMDItMTUgMjM6 MzU6NTYuMjkwOTk5ODUzICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMJMjAxNi0wNy0xNiAxNjo1Mzoz My43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsNDU1IEBACiArCS5maWxlCSJ4ODZfNjQtdmxh LXR5cGVkZWYuYyIKICsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKQEAgLTQ3 NCwxMCArNDc0LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwogKwkuc3RyaW5nCSJHTlUgQyA0LjMu MiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03KSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDQuMy4y IDIwMDgxMTA1IChSZWQgSGF0IDQuMy4yLTcpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ss IiIsQHByb2diaXRzCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlw ZWRlZi5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkwOTk5ODUzICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwky MDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSw0NSBAQAogKy8q IFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC01 MjQsMTAgKzUyNCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwogK30KICsKICsjZW5kaWYKLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlw ZWRlZi5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wMi0x NSAyMzozNTo1Ni4yOTA5OTk4NTMgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wNy0xNiAxNjo1 MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsNjQgQEAKICsjIENvcHlyaWdodCAyMDA5 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNTkzLDEwICs1OTMsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0 LXZsYS10eXBlZGVmLmV4cAogK2dkYl90ZXN0ICJ3aGF0aXMgYXJyYXkiICJ0eXBlID0gYXJyYXlf dCIgInNlY29uZDogd2hhdGlzIGFycmF5IgogKwogK2dkYl90ZXN0ICJwdHlwZSBhcnJheSIgInR5 cGUgPSBjaGFyIFxcXFs3OFxcXF0iICJzZWNvbmQ6IHB0eXBlIGFycmF5IgotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAwCi0r KysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5j CTIwMTYtMDItMTUgMjM6MzU6NTYuMjkwOTk5ODUzICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNi0wNy0xNiAw Mzo0ODo1OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcg KzAyMDAKIEBAIC0xNyw2ICsxNywxMyBAQAogIAogIGludCBhcnJheVtdID0gezEsIDIsIDMsIDR9 OwpAQCAtNjExLDEwICs2MTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogIGludAogIG1haW4gKHZvaWQpCiAgewotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHgu ZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h cnJheWlkeC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMw OTU5OTcyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9hcnJheWlkeC5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTE5OTk4NjAgKzAxMDAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguZXhwCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wNy0x NiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC00OSw0ICs0OSwxMiBAQAogICAgICAgICAg ICJcXHtcXFxbMFxcXF0gPSAxLCBcXFxbMVxcXF0gPSAyLCBcXFxbMlxcXF0gPSAzLCBcXFxbM1xc XF0gPSA0XFx9IiBcCiAgICAgICAgICAgIlByaW50IGFycmF5IHdpdGggYXJyYXktaW5kZXhlcyBv biIKQEAgLTYyOSwxMCArNjI5LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5v IEdDQykiCiArICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQt YWRkcmVzcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTYtMDItMTUgMjM6MzU6NTYu MjkxOTk5ODYwICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTYtMDctMTYgMTY6NTM6MzMu NzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDIwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTY1NCwxMCArNjU0LDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFs LXZhci1maWVsZC1hZGRyZXNzLmMKICtzdHJ1Y3QgewogKyAgaW50IGZpZWxkOwogK30gc3RhdGlj c3RydWN0ID0geyAxIH07Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1h ZGRyZXNzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTYtMDItMTUgMjM6MzU6 NTYuMjkxOTk5ODYwICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAJMjAxNi0wNy0xNiAxNjo1 MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsjIENvcHlyaWdodCAyMDA5 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNjg1LDEwICs2ODUsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJu YWwtdmFyLWZpZWxkLWFkZHJlc3MuZXgKICsKICtnZGJfdGVzdCB7c2V0ICR2YXJzdHJ1Y3QgPSBz dGF0aWNzdHJ1Y3R9CiArZ2RiX3Rlc3Qge3AgJHZhcnN0cnVjdC5maWVsZH0gIiA9IDEiCi1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LWZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS1mcmFtZS5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUu YwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzMSBAQAog Ky8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBA IC03MjEsMTAgKzcyMSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwogKyAgZiAocyk7CiArICByZXR1cm4gMDsKICt9Ci1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJh bWUuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtZnJhbWUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYw ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtZnJhbWUuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCww ICsxLDM4IEBACiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KICsjCkBAIC03NjQsMTAgKzc2NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCiArfQogKwogK2dkYl90ZXN0ICJi dCBmdWxsIiAiXHJcbiArcyA9IFwiWFxcXFwwMDBcIlxyXG4uKiIKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLW92ZXJmbG93LmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTE5OTk4NjAgKzAxMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5j CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDMwIEBACiAr LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAg LTc5OSwxMCArNzk5LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu ZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtb3ZlcmZsb3cuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5 ODY3ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtb3ZlcmZsb3cuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBA QCAtMCwwICsxLDEwOSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC05MTMsMTAgKzkxMywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiArZ2RiX3Rlc3Qg ImJ0IiAiaW4gXFteIFxdKmFib3J0IFxcKC4qIGluIG1haW4gXFwoLioiICJCYWNrdHJhY2UgYWZ0 ZXIgYWJvcnQoKSIKICsKICt2ZXJib3NlIC1sb2cgImtiX2ZvdW5kIGluIGJ0IGFmdGVyIGFib3J0 KCkgPSBbZXhwciBbbWVtb3J5X3ZfcGFnZXNfZ2V0XSAqICRwYWdlc2l6ZSAvIDEwMjRdIgotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEu YwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mjk5OTg2NyArMDEwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43 MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsNTUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtOTczLDEwICs5NzMsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKICsg IGZvbyAoNzgpOwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE2LTAyLTE1IDIzOjM1 OjU2LjI5Mjk5OTg2NyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAog QEAgLTAsMCArMSw2MiBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC0xMDQwLDEwICsxMDQwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKICtnZGJfdGVzdCAicCB0ZW1w MSIgIiA9ICcxJyA8cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAxIgogK2dk Yl90ZXN0ICJwIHRlbXAyIiAiID0gJzInIDxyZXBlYXRzIDc4IHRpbWVzPiIgInNlY29uZDogcHJp bnQgdGVtcDIiCiArZ2RiX3Rlc3QgInAgdGVtcDMiICIgPSAnMycgPHJlcGVhdHMgNDggdGltZXM+ IiAic2Vjb25kOiBwcmludCB0ZW1wMyIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5T CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuUwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAs MCArMSwyNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRl YnVnZ2VyLgogKwpAQCAtMTI5MSwxMCArMTI5MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKICsJLnN0 cmluZwkJImNoYXIiCiArLkx1aW50X3N0cjoKICsJLnN0cmluZwkJInVuc2lnbmVkIGludCIKLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJ MjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTYt MDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsxLDY2IEBACiArIyBDb3B5 cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEzNjIsMTAg KzEzNjIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKICsKICsjIFRoZSByZWdpc3RlciBjb250YWlu cyB1bnByZWRpY3RhYmxlIHZhbHVlIC0gdGhlIGFycmF5IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBl IHJlZ19zdHJpbmciIHt0eXBlID0gY2hhciBcWy0/WzAtOV0rXF19Ci1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJp cHBlZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJpcHBlZC5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsx LDQyIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTE0MDksMTAgKzE0MDksMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogKyAgZnVuYzEgKDEsIDIp OwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlw cGVkLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCTIw MTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsxLDc5IEBACiArIyBD b3B5cmlnaHQgMjAwNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE0OTMs MTAgKzE0OTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCiArZ2RiX3Rlc3QgInN0ZXAiIFwKICsgICAgICAg ICAiZnVuYy4qIFxcKC4qXFwpIGF0IC4qIiBcCiArICAgICAgICAgInN0ZXAiCi1JbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uUworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0 cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0 ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUwkyMDE2LTA3LTE2IDE2OjUzOjMzLjcz ODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw4MyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xNTgxLDEwICsxNTgxLDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0 cnVjdC1tZW1iZXItZGF0YS1sb2NhCiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICov CiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9j YXRpb24uZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcy OTA2ICswMjAwCiBAQCAtMCwwICsxLDM3IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE2MjMsMTAgKzE2MjMsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1l bWJlci1kYXRhLWxvY2EKICtjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCiArCiArZ2RiX3Rlc3QgInB0 eXBlIHN0cnVjdCBzb21lX3N0cnVjdCIgInR5cGUgPSBzdHJ1Y3Qgc29tZV9zdHJ1Y3Qge1xbXHJc biBcdFxdKnZvaWQgZmllbGQ7XFtcclxuIFx0XF0qfSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3Vi cmFuZ2Utbm8tdHlwZS5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNi0wMi0xNSAyMzozNTo1 Ni4yOTM5OTk4NzQgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwkyMDE2LTA3LTE2IDE2OjUzOjMzLjcz ODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwxMjEgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTc0OSwxMCArMTc0OSwxMCBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dWJyYW5nZS1uby10eXBlLlMKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KICsKICsJ LmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJy YW5nZS1uby10eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAJMjAxNi0wMi0xNSAyMzoz NTo1Ni4yOTM5OTk4NzQgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTYtMDctMTYgMTY6NTM6 MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsxLDM5IEBACiArIyBDb3B5cmlnaHQgMjAxMiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE3OTMsMTAgKzE3OTMsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3VicmFuZ2Utbm8tdHlwZS5leHAKICsKICtnZGJfdGVzdCAicHR5cGUgbm90eXBlX3N0cmluZyIg e3R5cGUgPSBjaGFyIFxbMTI5XF19CiArZ2RiX3Rlc3QgInAgbm90eXBlX3N0cmluZyIgIiA9ICd4 JyA8cmVwZWF0cyAxMjkgdGltZXM+IgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdh cmYtc3RyaWRlLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NDk5OTg4MSArMDEwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRl LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw0MiBA QAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xODQwLDEwICsxODQwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKICtnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiYnJlYWstaGVyZSIgIi4qYnJlYWstaGVyZS4qIgogK2dkYl90ZXN0ICJwIGM0MHB0 KDEpIiAiID0gJzAtaGVsbG8uKiIKICtnZGJfdGVzdCAicCBjNDBwdCgyKSIgIiA9ICcxLWhlbGxv LioiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9kd2FyZi1zdHJpZGUuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYt MDItMTUgMjM6MzU6NTYuMjk0OTk5ODgxICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYtMDctMTYgMTY6 NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xODg1LDEwICsxODg1LDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R3YXJmLXN0cmlkZS5mOTAKICsgIHByaW50ICosIGM0MHB0ICAhIGJyZWFrLWhlcmUKICsKICtl bmQgcHJvZ3JhbSByZXBybwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAkyMDE2LTAy LTE1IDIzOjM2OjM5LjM1ODMwNTYzNSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNi0wNy0xNiAxNzoxOToyNC4y NTUyMDIwMTMgKzAyMDAKIEBAIC0wLDAgKzEsMTUxIEBACiArIyBDb3B5cmlnaHQgMjAwNyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE5MzUsNyArMTkzNSw3IEBAIEluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMu ZXhwCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcngtaW5pdCJdCiAr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcngtaW5pdCIKICtnZGJfdGVzdCAicCB2YXJ4 IiAiXFwkXFswLTlcXSogPSA8bm90IGFsbG9jYXRlZD4iICJwIHZhcnggdW5hbGxvY2F0ZWQiCi0r Z2RiX3Rlc3QgInB0eXBlIHZhcngiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmFy eCB1bmFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFyeCIge3R5cGUgPSByZWFsXChraW5k PTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ4IHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZh cngoMSw1LDE3KSIge25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFsbG9jYXRl ZFwpfSAicCB2YXJ4KDEsNSwxNykgdW5hbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInAgdmFyeCgxLDUs MTcpPTEiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0g InAgdmFyeCgxLDUsMTcpPTEgdW5hbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInB0eXBlIHZhcngoMSw1 LDE3KSIge25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFwpfSAi cHR5cGUgdmFyeCgxLDUsMTcpIHVuYWxsb2NhdGVkIgpAQCAtMTk1NCw3ICsxOTU0LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1p Yy5leHAKICtnZGJfdGVzdCAicCB2YXJ4KDIsIDYsIDE4KSIgIlxcJFxbMC05XF0qID0gOCIKICtn ZGJfdGVzdCAicCB2YXJ4KDYsIDE1LCAyOCkiICJcXCRcWzAtOVxdKiA9IDkiCiArZ2RiX3Rlc3Qg InAgdmFydiIgIlxcJFxbMC05XF0qID0gPG5vdCBhc3NvY2lhdGVkPiIgInAgdmFydiB1bmFzc29j aWF0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcnYiICJ0eXBlID0gPG5vdCBhc3NvY2lhdGVkPiIg InB0eXBlIHZhcnYgdW5hc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJ2IiB7dHlwZSA9 IHJlYWxcKGtpbmQ9NFwpIFwoOiw6LDpcKX0gInB0eXBlIHZhcnYgdW5hc3NvY2lhdGVkIgogKwog K3NldCB0ZXN0ICJvdXRwdXQgdmFyeCIKICtnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7 CkBAIC0xOTgyLDcgKzE5ODIsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJ2YXJ2LWRlYXNzb2NpYXRlZCIKICsjIFRoZSBsYXR0ZXIgb25lIGlzIGZvciB0aGUgSW50 ZWwgRm9ydHJhbiBDb21waWxlciAxMC4xLjAwOCBwb2ludGVyIHR5cGUuCiArZ2RiX3Rlc3QgInAg dmFydiIgIlxcJFxbMC05XF0qID0gKDxub3QgYXNzb2NpYXRlZD58LiooQ2Fubm90IGFjY2VzcyBp dHxVbmFibGUgdG8gYWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1c2UgdGhlIG9iamVjdCBpcyBub3Qg YXNzb2NpYXRlZC4pIiAicCB2YXJ2IGRlYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFy diIgInR5cGUgPSAoPG5vdCBhc3NvY2lhdGVkPnwuKihDYW5ub3QgYWNjZXNzIGl0fFVuYWJsZSB0 byBhY2Nlc3MgdGhlIG9iamVjdCkgYmVjYXVzZSB0aGUgb2JqZWN0IGlzIG5vdCBhc3NvY2lhdGVk LikiICJwdHlwZSB2YXJ2IGRlYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFydiIge3R5 cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ2IGRlYXNzb2NpYXRlZCIK ICtnZGJfdGVzdCAicCBsIiAiXFwkXFswLTlcXSogPSBcXC5GQUxTRVxcLiIgInAgbCBpZiB2YXJ2 IGRlYXNzb2NpYXRlZCIKICtnZGJfdGVzdCAicCB2YXJ2KDEsNSwxNykiIHtubyBzdWNoIHZlY3Rv ciBlbGVtZW50IFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXCl9CiArZ2RiX3Rlc3QgInB0eXBlIHZh cnYoMSw1LDE3KSIge25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFzc29jaWF0 ZWRcKX0KQEAgLTE5OTAsNyArMTk5MCw3IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgInZhcngtZGVhbGxvY2F0ZWQiXQogK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2YXJ4LWRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngiICJcXCRcWzAt OVxdKiA9IDxub3QgYWxsb2NhdGVkPiIgInAgdmFyeCBkZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAi cHR5cGUgdmFyeCIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2YXJ4IGRlYWxsb2Nh dGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJ4IiB7dHlwZSA9IHJlYWxcKGtpbmQ9NFwpIFwoOiw6 LDpcKX0gInB0eXBlIHZhcnggZGVhbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInAgbCIgIlxcJFxbMC05 XF0qID0gXFwuRkFMU0VcXC4iICJwIGwgaWYgdmFyeCBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAi cCB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxv Y2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpIGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwdHlwZSB2 YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0 ZWRcKX0gInB0eXBlIHZhcngoMSw1LDE3KSBkZWFsbG9jYXRlZCIKQEAgLTIwNDEsMTAgKzIwNDEs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy5leHAKICtnZGJfdGVzdCAicCB2YXJ0KDMsOCkiICJcXCRcWzAtOVxdKiA9IDki CiArIyBtYXBzIHRvIGZvbzo6dmFyeSgxLDMpCiArZ2RiX3Rlc3QgInAgdmFydCgyLDkpIiAiXFwk XFswLTlcXSogPSAxMCIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAJMjAxNi0wMi0x NSAyMzozNTo1Ni4yOTQ5OTk4ODEgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5 MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDk4IEBACiArISBDb3B5cmlnaHQgMjAwNyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMTQ0LDEwICsyMTQ0LDEwIEBAIEluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMu ZjkwCiArICBpZiAoeCAoMSwgMSkgLm5lLiA4IC5vci4geCAoMiwgMikgLm5lLiA5IC5vci4geCAo MSwgMikgLm5lLiA0KSBjYWxsIGFib3J0CiArICBpZiAoeCAoMywgMSkgLm5lLiAxMCkgY2FsbCBh Ym9ydAogK2VuZAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3RyaW5nLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE2LTAyLTE1IDIzOjM2 OjM5LjM1OTMwNTY0MiArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCAr MDIwMAogQEAgLTAsMCArMSw1OSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMjA4LDEwICsyMjA4LDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKICtnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAidmFyLWZpbmlzaCIKICtnZGJfdGVzdCAicCBlIiAiXFwk XFswLTlcXSogPSAnZSAgICciICJwIGUgcmUtc2V0IgogK2dkYl90ZXN0ICJwIGYiICJcXCRcWzAt OVxdKiA9IFxcKFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2Yg ICAnLCAnZiAgICdcXCkgXFwoICdmMiAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAn LCAnZiAgICcsICdmICAgJ1xcKSBcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAn ZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKSIgInAgKmYgcmUtc2V0IgotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAorSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5n LmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RyaW5nLmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5 MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSwzNyBAQAog KyEgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAt MjI1MCwxMCArMjI1MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiArICBoID0gJ2gnCiArICBjYWxsIGZvbyAoZywg aCkKICtlbmQKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N1YnJhbmdlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNi0wMi0xNSAy MzozNTo1Ni4yOTU5OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3 MjkxNCArMDIwMAogQEAgLTAsMCArMSw3MiBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMzI3LDEwICsyMzI3LDEwIEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4 cAogK2dkYl91bmxvYWQKICtzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTki CiArZ2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9Ci1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdl LmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3VicmFuZ2UuZjkwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5n ZS5mOTAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMjgg QEAKICshIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEK QEAgLTIzNjAsMTAgKzIzNjAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCiArICBwdHIgPT4gYQogKyAgd3JpdGUg KCosKikgYSAgICAgICAgICAgICAgICAgISBicmVhay1zdGF0aWMKICtlbmQKLUluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12 YXItc3RhbGUtdHlwZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5 OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taTItdmFyLXN0YWxlLXR5cGUuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIw MAogQEAgLTAsMCArMSwyNiBAQAogKy8qIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKwpAQCAtMjM5MSwxMCArMjM5MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKICsK ICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3Rh bGUtdHlwZS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5OTk4ODggKzAxMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUu ZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDU3IEBA CiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBA IC0yNDUzLDEwICsyNDUzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiArbWlfY3JlYXRlX3Zhcm9iaiAi dmxhIiAidmxhIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYSIKICsKICttaV9nZGJfdGVzdCAi LXZhci11cGRhdGUgKiIgIlxcXmRvbmUsY2hhbmdlbGlzdD0uKiIgIi12YXItdXBkYXRlICoiCi1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZy b20tcmVnaXN0ZXItZnVuYy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIt ZnVuYy5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVu Yy5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDIyIEBA CiArLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAt MjQ4MCwxMCArMjQ4MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiArewogKyAgcmV0dXJuIGFy clswXTsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rl ci5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk2OTk5ODk1ICswMTAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE2 LTA3LTE2IDE2OjUzOjMzLjc0MDE3MjkyMiArMDIwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI1MTMsMTAg KzI1MTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri Lm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdp c3Rlci5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAJMjAxNi0wMi0x NSAyMzozNTo1Ni4yOTY5OTk4OTUgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAJMjAxNi0wNy0xNiAxNjo1 MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEsMzMgQEAKICsjIENvcHlyaWdodCAyMDA5 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTI1NTEsMTAgKzI1NTEsMTAg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJh eS1mcm9tLXJlZ2lzdGVyLmV4cAogKyMgU2VlbiByZWdyZXNzaW9uOgogKyMgQWRkcmVzcyByZXF1 ZXN0ZWQgZm9yIGlkZW50aWZpZXIgImFyciIgd2hpY2ggaXMgaW4gcmVnaXN0ZXIgJHJkaQogK2dk Yl90ZXN0ICJwIGFyclxbMFxdIiAiXFwkXFswLTlcXSsgPSA0MiIKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2Fy cmF5cy5leHAJMjAxNi0wMi0xNSAyMzozNjozOS4zNTkzMDU2NDIgKzAxMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAkyMDE2LTA3 LTE2IDE2OjUzOjMzLjc0MDE3MjkyMiArMDIwMAogQEAgLTAsMCArMSwxMDQgQEAKICsjIENvcHly aWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTI2 NjAsMTAgKzI2NjAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCiArfQogK2dkYl90ZXN0ICJwcmludCBEeW5BcnJDaGFy IiAiLiogPSAnYWJjZGVmZ2hpamtsbSciICJQcmludCBkeW5hbWljIGFycmF5IG9mIGNoYXIiCiAr Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2Fy cmF5cy5wYXMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5w YXNjYWwvYXJyYXlzLnBhcwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk2OTk5ODk1 ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2Fs L2FycmF5cy5wYXMJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAg KzEsODIgQEAKICt7CiArIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgpAQCAtMjc0NywxMCArMjc0NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKICsgIHMgOj0gJ3Rlc3Qn IzAnc3RyaW5nJzsKICsgIHdyaXRlbG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtl bmQuCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAJMjAxNi0wMi0xNSAyMzozNTo1NS4zMjY5OTMwMDggKzAxMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6 MzU6NTYuMjk3OTk5OTAzICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv dGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuMDYzMTY3MzE1ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2 LTA3LTE2IDE2OjUzOjMzLjc0MTE3MjkzMCArMDIwMAogQEAgLTE3Myw2ICsxNzMsMTEgQEAKICAJ ICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29udGludWUKQEAgLTI3NjMsMTAgKzI3NjMs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKICAJLXJlICJEaXNjYXJkIHN5bWJvbCB0YWJsZSBmcm9tIC4qeSBvciBuLiokIiB7CiAgCSAg ICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCi1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAx Ni0wMi0xNSAyMzozMzoyOS44MzA5NTk5NzIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk4OTk5 OTEwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9wYXNjYWwuZXhwCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTA3LTE2 IDE2OjUzOjMzLjc0MTE3MjkzMCArMDIwMAogQEAgLTM3LDYgKzM3LDkgQEAKICAgICAgZ2xvYmFs IHBhc2NhbF9jb21waWxlcl9pc19mcGMKICAgICAgZ2xvYmFsIGdwY19jb21waWxlcgoKZGlmZiAt LWdpdCBhL2dkYi1hcmNoZXIucGF0Y2ggYi9nZGItYXJjaGVyLnBhdGNoCmluZGV4IDYxN2NjMGYu LjkwNGM2MDYgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXIucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci5w YXRjaApAQCAtMiw3ICsyLDcgQEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2pl Y3RBcmNoZXIKIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5h Z2VtZW50CiAKIEdJVCBzbmFwc2hvdDoKLWNvbW1pdCBmMGVlNzhjNWNjZWZlMzg4YTY0MjczMzUz ZWNkNWM5OWRhZTYyNTU4Citjb21taXQgNWU4YzZlMzQ1ZDYzZTYxZDNjMzFlNjdhNTVkYjI1YTY4 MjQ3ODdiMgogCiB0cm9tZXkvcHl0aG9uCiAKQEAgLTE2LDEwICsxNiwxMCBAQCBpbmRleCAwMDAw MDAwLi4xNzNiOGVhCiArVGhpcyBicmFuY2ggb3JpZ2luYWxseSBoZWxkIHRoZSBQeXRob24gY29k ZSBmb3IgZ2RiLiAgSXQgc3RpbGwgZXhpc3RzCiArYmVjYXVzZSBhIHNtYWxsIGFtb3VudCBvZiBj b2RlIGhlcmUgaGFzIG5vdCB5ZXQgYmVlbiBtZXJnZWQgdXBzdHJlYW0uCiBkaWZmIC0tZ2l0IGEv Z2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCi1pbmRleCA5NTEwNGVmLi5hOWIxOThh IDEwMDY0NAoraW5kZXggMTZkNWYyNy4uNzM0NmQ0NiAxMDA2NDQKIC0tLSBhL2dkYi9NYWtlZmls ZS5pbgogKysrIGIvZ2RiL01ha2VmaWxlLmluCi1AQCAtMTUzNCw2ICsxNTM0LDEyIEBAIHN0YW1w LWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cworQEAgLTE1NTMsNiArMTU1Mywx MiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05G SUdfTElOS1M9IFwKICAJICAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAgCkBAIC0zMywxMCArMzMs MTAgQEAgaW5kZXggOTUxMDRlZi4uYTliMTk4YSAxMDA2NDQKICAJJChTSEVMTCkgY29uZmlnLnN0 YXR1cyAtLXJlY2hlY2sKICAKIGRpZmYgLS1naXQgYS9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZp bGUuaW4gYi9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KLWluZGV4IDMwY2ZkMTcuLmU5 NzdiMzAgMTAwNjQ0CitpbmRleCAwYmVjYTU1Li5mNDk5YjUzIDEwMDY0NAogLS0tIGEvZ2RiL2Rh dGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCiArKysgYi9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZp bGUuaW4KLUBAIC02NSw3ICs2NSwxMCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorQEAgLTY2LDcg KzY2LDEwIEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCiAgCWdkYi91bndpbmRlci5weSBcCiAgCWdk Yi9wcm9tcHQucHkgXAogIAlnZGIveG1ldGhvZC5weSBcCkBAIC00Nyw4ICs0Nyw4IEBAIGluZGV4 IDMwY2ZkMTcuLmU5NzdiMzAgMTAwNjQ0CiAgCWdkYi9jb21tYW5kL3htZXRob2RzLnB5IFwKICAJ Z2RiL2NvbW1hbmQvZnJhbWVfZmlsdGVycy5weSBcCiAgCWdkYi9jb21tYW5kL3Vud2luZGVycy5w eSBcCi1AQCAtNzYsNiArNzksOCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAotIAlnZGIvZnVuY3Rp b24vX19pbml0X18ucHkgXAorQEAgLTc4LDYgKzgxLDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwK KyAJZ2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBcCiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMu cHkgXAogIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKICsJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9p cy5weSBcCkBAIC01Nyw3ICs1Nyw3IEBAIGluZGV4IDMwY2ZkMTcuLmU5NzdiMzAgMTAwNjQ0CiAg CWdkYi9wcmludGVyL2JvdW5kX3JlZ2lzdGVycy5weQogIAogZGlmZiAtLWdpdCBhL2dkYi9kb2Mv Z2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1pbmRleCAxNjY1MzcyLi5jNGNhZmZj IDEwMDY0NAoraW5kZXggYTA2ODYyMi4uNjRhYmFhNyAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2Ri LnRleGluZm8KICsrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KIEBAIC0xMjI1LDYgKzEyMjUsMTYg QEAgZm9yIHJlbW90ZSBkZWJ1Z2dpbmcuCkBAIC03OCw3ICs3OCw3IEBAIGluZGV4IDE2NjUzNzIu LmM0Y2FmZmMgMTAwNjQ0CiAgQGl0ZW0gLXR1aQogIEBjaW5kZXggQGNvZGV7LS10dWl9CiBkaWZm IC0tZ2l0IGEvZ2RiL2RvYy9weXRob24udGV4aSBiL2dkYi9kb2MvcHl0aG9uLnRleGkKLWluZGV4 IDU3ZWMyMmUuLjEzYmViMDUgMTAwNjQ0CitpbmRleCA2NjIzZDhlLi5hNzFmNWUxIDEwMDY0NAog LS0tIGEvZ2RiL2RvYy9weXRob24udGV4aQogKysrIGIvZ2RiL2RvYy9weXRob24udGV4aQogQEAg LTg4LDggKzg4LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CkBAIC0x MTEsNyArMTExLDcgQEAgaW5kZXggMDVhMzhiMi4uOTgwMWZkZiAxMDA2NDQKICAgIHNldCB2YXJp YWJsZSAkZ2RiX2luaXRfZG9uZSA9IDEKICAKIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2Ri L21haW4uYwotaW5kZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKK2luZGV4IDU0NzczNzkuLmI3 ZTQxM2YgMTAwNjQ0CiAtLS0gYS9nZGIvbWFpbi5jCiArKysgYi9nZGIvbWFpbi5jCiBAQCAtMzMs NiArMzMsNyBAQApAQCAtMTIyLDcgKzEyMiw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAw NjQ0CiAgI2luY2x1ZGUgInNvdXJjZS5oIgogICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKICAj aW5jbHVkZSAib2JqZmlsZXMuaCIKLUBAIC00NTMsNiArNDU0LDggQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKK0BAIC00NTksNiArNDYwLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0 YSkKICAgIGNoYXIgKmNkYXJnID0gTlVMTDsKICAgIGNoYXIgKnR0eWFyZyA9IE5VTEw7CiAgCkBA IC0xOTAsNyArMTkwLDcgQEAgaW5kZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKICAgICAgewog ICAgICAgIC8qIFRoZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdGhlIGNvbW1hbmQtbGluZSBvcHRp b25zIGZvciB0aGUKICAJIGluZmVyaW9yLiAgVGhlIGZpcnN0IG9uZSBpcyB0aGUgc3ltL2V4ZWMg ZmlsZSwgYW5kIHRoZSByZXN0Ci1AQCAtMTEzNyw3ICsxMTcxLDggQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKK0BAIC0xMTI3LDcgKzExNjEsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21t YW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0yMDAsNyArMjAwLDcgQEAg aW5kZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKICAKICAgIGlmIChiYXRjaF9mbGFnKQogICAg ICB7Ci1AQCAtMTE0OCwxMyArMTE4MywyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQor QEAgLTExMzgsMTMgKzExNzMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIC8q IFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMgKHByZV9z dGF0X2NoYWluKTsKICAKQEAgLTIzMiw3ICsyMzIsNyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0 IDEwMDY0NAogICAgICB9CiAgICAvKiBObyBleGl0IC0tIGV4aXQgaXMgdGhyb3VnaCBxdWl0X2Nv bW1hbmQuICAqLwogIH0KLUBAIC0xMTg4LDYgKzEyMzUsMTIgQEAgcHJpbnRfZ2RiX2hlbHAgKHN0 cnVjdCB1aV9maWxlICpzdHJlYW0pCitAQCAtMTE4Nyw2ICsxMjM0LDEyIEBAIHByaW50X2dkYl9o ZWxwIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAog IFRoaXMgaXMgdGhlIEdOVSBkZWJ1Z2dlci4gIFVzYWdlOlxuXG5cCiAgICAgIGdkYiBbb3B0aW9u c10gW2V4ZWN1dGFibGUtZmlsZSBbY29yZS1maWxlIG9yIHByb2Nlc3MtaWRdXVxuXApAQCAtMjQ1 LDcgKzI0NSw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgICAgIGdkYiBbb3B0 aW9uc10gLS1hcmdzIGV4ZWN1dGFibGUtZmlsZSBbaW5mZXJpb3ItYXJndW1lbnRzIC4uLl1cblxu XAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAotQEAgLTEyMzIsNiAr MTI4NSwxMyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwKK0BAIC0x MjMxLDYgKzEyODQsMTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5c CiAgI2VuZGlmCiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCiAgICAtLWRieCAgICAgICAgICAg ICAgREJYIGNvbXBhdGliaWxpdHkgbW9kZS5cblwKQEAgLTQ0MywxMCArNDQzLDEwIEBAIGluZGV4 IDAwMDAwMDAuLjg3NDI2ODAKICsKICtJblNjb3BlICgpCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKLWluZGV4IDRmODhiMGUuLjg3MGExYmEg MTAwNjQ0CitpbmRleCAzYTI3MmE5Li5lN2U2MWNmIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9w eXRob24uYwogKysrIGIvZ2RiL3B5dGhvbi9weXRob24uYwotQEAgLTkzLDYgKzkzLDggQEAgY29u c3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuIGV4dGVuc2lvbl9sYW5ndWFnZV9weXRo b24gPQorQEAgLTk1LDYgKzk1LDggQEAgY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9k ZWZuIGV4dGVuc2lvbl9sYW5ndWFnZV9weXRob24gPQogICNpbmNsdWRlICJsaW5lc3BlYy5oIgog ICNpbmNsdWRlICJzb3VyY2UuaCIKICAjaW5jbHVkZSAidmVyc2lvbi5oIgpAQCAtNDU1LDcgKzQ1 NSw3IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAgI2luY2x1ZGUgInRhcmdldC5o IgogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAiaW50ZXJwcy5oIgotQEAgLTEy NjIsNiArMTI2NCw4MyBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKK0BAIC0xMjU0LDYgKzEy NTYsOTAgQEAgZ2RicHlfcHJpbnRfc3RhY2sgKHZvaWQpCiAgCiAgLyogUmV0dXJuIHRoZSBjdXJy ZW50IFByb2dzcGFjZS4KICAgICBUaGVyZSBhbHdheXMgaXMgb25lLiAgKi8KQEAgLTQ3Nyw3ICs0 NzcsMTQgQEAgaW5kZXggNGY4OGIwZS4uODcwYTFiYSAxMDA2NDQKICsgICAgcmV0dXJuIFB5RXJy X0Zvcm1hdCAoUHlFeGNfUnVudGltZUVycm9yLCBfKCJDYW5ub3QgaW52b2tlIENMSSBmcm9tIE1J LiIpKTsKICsKICsgIGluX2NsaSA9IDE7Ci0rICBjdXJyZW50X2ludGVycF9jb21tYW5kX2xvb3Ag KCk7CisrICAvKiBTZWUgY2FwdHVyZWRfY29tbWFuZF9sb29wLiAgKi8KKysKKysgIC8qIEdpdmUg dGhlIGludGVycHJldGVyIGEgY2hhbmNlIHRvIHByaW50IGEgcHJvbXB0LiAgKi8KKysgIGludGVy cF9wcmVfY29tbWFuZF9sb29wICh0b3BfbGV2ZWxfaW50ZXJwcmV0ZXIgKCkpOworKworKyAgLyog Tm93IGl0J3MgdGltZSB0byBzdGFydCB0aGUgZXZlbnQgbG9vcC4gICovCisrICBzdGFydF9ldmVu dF9sb29wICgpOworKwogKyAgaW5fY2xpID0gMDsKICsKICsgIFB5X1JFVFVSTl9OT05FOwpAQCAt NTAwLDcgKzUwNyw3IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICBQeVN5c19T ZXRBcmd2IChhcmdjIC0gMSwgYXJndiArIDEpOwogKyNlbHNlCiArICB7Ci0rICAgIHdjaGFyX3Qg Kip3YXJndiA9IGFsbG9jYSAoc2l6ZW9mICgqd2FyZ3YpICogKGFyZ2MgKyAxKSk7CisrICAgIHdj aGFyX3QgKip3YXJndiA9ICh3Y2hhcl90ICoqKSBhbGxvY2EgKHNpemVvZiAoKndhcmd2KSAqIChh cmdjICsgMSkpOwogKyAgICBpbnQgaTsKICsKICsgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkr KykKQEAgLTUxNCw3ICs1MjEsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogKwkJ ICAgICBpLCBhcmd2W2ldKTsKICsJICAgIGV4aXQgKDEpOwogKwkgIH0KLSsJd2FyZ3ZbaV0gPSBh bGxvY2EgKHNpemVvZiAoKip3YXJndikgKiAobGVuICsgMSkpOworKwl3YXJndltpXSA9ICh3Y2hh cl90ICopIGFsbG9jYSAoc2l6ZW9mICgqKndhcmd2KSAqIChsZW4gKyAxKSk7CiArCWxlbjIgPSBt YnN0b3djcyAod2FyZ3ZbaV0sIGFyZ3ZbaV0sIGxlbiArIDEpOwogKwlhc3NlcnQgKGxlbjIgPT0g bGVuKTsKICsgICAgICB9CkBAIC01MzksNyArNTQ2LDcgQEAgaW5kZXggNGY4OGIwZS4uODcwYTFi YSAxMDA2NDQKICAKICBzdGF0aWMgUHlPYmplY3QgKgogIGdkYnB5X2dldF9jdXJyZW50X3Byb2dz cGFjZSAoUHlPYmplY3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQyKQotQEAgLTE5ODIsNiAr MjA2MSw4IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQorQEAgLTE5NzIsNiAr MjA1OCw4IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQogIEV2YWx1YXRlIGNv bW1hbmQsIGEgc3RyaW5nLCBhcyBhIGdkYiBDTEkgY29tbWFuZC4gIE9wdGlvbmFsbHkgcmV0dXJu c1xuXAogIGEgUHl0aG9uIFN0cmluZyBjb250YWluaW5nIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1h bmQgaWYgdG9fc3RyaW5nIGlzXG5cCiAgc2V0IHRvIFRydWUuIiB9LApAQCAtNTQ5LDcgKzU1Niw3 IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAgICAgICJSZXR1cm4gYSBnZGIgcGFy YW1ldGVyJ3MgdmFsdWUiIH0sCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBi L2dkYi9weXRob24vcHl0aG9uLmgKLWluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0CitpbmRl eCBiODEwMTg3Li5hMzYyMGFiIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uaAogKysr IGIvZ2RiL3B5dGhvbi9weXRob24uaAogQEAgLTI1LDQgKzI1LDYgQEAKQEAgLTU2MCw3ICs1Njcs NyBAQCBpbmRleCBlNmJmY2NhLi42ODhkYWEzIDEwMDY0NAogKwogICNlbmRpZiAvKiBHREJfUFlU SE9OX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotaW5kZXggOWYyNWE0OC4uODhi MDg0MiAxMDA2NDQKK2luZGV4IGFmMDAyNmMuLjZjOWJiYjIgMTAwNjQ0CiAtLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIv c2VsZnRlc3QuZXhwCiBAQCAtOTIsNiArOTIsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMg e30gewpAQCAtNTc1LDcgKzU4Miw3IEBAIGluZGV4IDlmMjVhNDguLjg4YjA4NDIgMTAwNjQ0CiAg CQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCBh bmQgZXZlcnl0aGluZyBpdCBjYWxscyIKICAJCXNldCBjb21tYW5kICJuZXh0IgogZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZnJhbWUuZXhwCi1pbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAor aW5kZXggYjVhNDY4Mi4uZDU0NTFhNiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1mcmFtZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS5leHAKIEBAIC05NSw2ICs5NSw4IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQg PSAlcycgJSBmMC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yCkBAIC01ODgs MTAgKzU5NSwxMCBAQCBpbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAogIGdkYl90ZXN0ICJw eXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpLnJlYWRf cmVnaXN0ZXIgKCdzcCcpID09IGdkYi5wYXJzZV9hbmRfZXZhbCAoJ1wkc3AnKSkpIiBcCiAgICAi ID0gVHJ1ZSIgXAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1 ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1pbmRleCBiYWEx N2I3Li40NWFkNjdlIDEwMDY0NAoraW5kZXggNTdhOWJhMS4uZDkwZDg1YSAxMDA2NDQKIC0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKICsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLUBAIC0zODgsNiArMzg4LDE1IEBAIHByb2MgdGVz dF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CitAQCAtMzk3LDYgKzM5NywxNSBAQCBwcm9jIHRlc3Rf dmFsdWVfYWZ0ZXJfZGVhdGgge30gewogICAgICAicHJpbnQgdmFsdWUncyB0eXBlIgogIH0KICAK QEAgLTYwNyw3ICs2MTQsNyBAQCBpbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAogICMgUmVn cmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3 YXMgdGhhdAogICMgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBi ZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAg LTUxNyw2ICs1MjYsNyBAQCB0ZXN0X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTI2LDYgKzUzNSw3 IEBAIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwK ICB0ZXN0X2xhenlfc3RyaW5ncwogIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKCmRpZmYgLS1naXQg YS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0xb2YyLnBhdGNoIGIvZ2RiLWJhcmUtRFdf VEFHX2xleGljYWxfYmxvY2stMW9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDNmYTViOC4uMDAwMDAwMAotLS0gYS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0x b2YyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjM1ICswLDAgQEAKLUZyb20gM2EyYjQzNmFl OTk1OGExMDI5NTQ1YzAzMjAxYjcyMjNmZjMzYzE1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTog TW9uLCAzMCBNYXkgMjAxNiAxNDoxMTo0MyArMDIwMAotU3ViamVjdDogW1BBVENIIDEvMl0gQ29k ZSBjbGVhbnVwOiBkd2FyZjJfZ2V0X3BjX2JvdW5kczogLTEvMC8rMSAtPiBlbnVtCi0KLU1ha2Ug dGhlIGNvZGUgKG1heWJlKSBtb3JlIHJlYWRhYmxlICsgcHJpbWFyaWx5IHByZXBhcmUgaXQgZm9y IFtwYXRjaCAyLzJdCi1lbnVtIGV4dGVuc2lvbi4KLQotVGhpcyBjaGFuZ2Ugc2hvdWxkIGhhdmUg bm8gY29kZSBjaGFuZ2UgaW1wYWN0LgotCi1nZGIvQ2hhbmdlTG9nCi0yMDE2LTA1LTMwICBKYW4g S3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlDb2RlIGNsZWFudXA6 IGR3YXJmMl9nZXRfcGNfYm91bmRzOiAtMS8wLysxIC0+IGVudW0KLQkqIGR3YXJmMnJlYWQuYyAo ZW51bSBwY19ib3VuZHNfa2luZCkgTmV3LgotCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBp dCBpbiB0aGUgZGVjbGFyYXRpb24uCi0JKHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVy KTogQWRqdXN0IGNhbGxlci4gIFJlbmFtZSBoYXNfcGNfaW5mbwotCXRvIGN1X2JvdW5kc19raW5k LgotCShyZWFkX2Z1bmNfc2NvcGUsIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSwgcmVhZF9jYWxs X3NpdGVfc2NvcGUpOgotCUFkanVzdCBjYWxsZXJzLgotCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6 IFVzZSBlbnVtIHBjX2JvdW5kc19raW5kIGluIHRoZSBkZWZpbml0aW9uLgotCShkd2FyZjJfZ2V0 X3N1YnByb2dyYW1fcGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxl cnMuCi0tLS0KLSBnZGIvQ2hhbmdlTG9nICAgIHwgMTIgKysrKysrKysrKwotIGdkYi9kd2FyZjJy ZWFkLmMgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRp b25zKC0pCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0x LDMgKzEsMTUgQEAKLSsyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+Ci0rCi0rCUNvZGUgY2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6IC0x LzAvKzEgLT4gZW51bQotKwkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCkgTmV3 LgotKwkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBVc2UgaXQgaW4gdGhlIGRlY2xhcmF0aW9uLgot KwkocHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIpOiBBZGp1c3QgY2FsbGVyLiAgUmVu YW1lIGhhc19wY19pbmZvCi0rCXRvIGN1X2JvdW5kc19raW5kLgotKwkocmVhZF9mdW5jX3Njb3Bl LCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUsIHJlYWRfY2FsbF9zaXRlX3Njb3BlKToKLSsJQWRq dXN0IGNhbGxlcnMuCi0rCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBlbnVtIHBjX2JvdW5k c19raW5kIGluIHRoZSBkZWZpbml0aW9uLgotKwkoZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2Jv dW5kcywgZ2V0X3Njb3BlX3BjX2JvdW5kcyk6IEFkanVzdCBjYWxsZXJzLgotKwotIDIwMTYtMDUt MjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAKLSAJKiBO RVdTIChRQ2F0Y2hTeXNjYWxscyk6IFJlbW92ZSB0aGUgcGFyYW1ldGVyLiAgSW5jbHVkZSAuLi4K LS0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNjA2 LDkgKzE2MDYsMjUgQEAgc3RhdGljIHZvaWQgcmVhZF9jYWxsX3NpdGVfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7Ci0gc3RhdGljIGludCBkd2FyZjJf cmFuZ2VzX3JlYWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0gCQkJICAg ICAgIHN0cnVjdCBkd2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwotIAotLXN0 YXRpYyBpbnQgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAotLQkJCQkg Q09SRV9BRERSICosIENPUkVfQUREUiAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICosCi0tCQkJCSBzdHJ1 Y3QgcGFydGlhbF9zeW10YWIgKik7Ci0rLyogSG93IGR3YXJmMl9nZXRfcGNfYm91bmRzIGNvbnN0 cnVjdGVkIGl0cyAqTE9XUEMgYW5kICpISUdIUEMgcmV0dXJuCi0rICAgdmFsdWVzLiAgKi8KLStl bnVtIHBjX2JvdW5kc19raW5kCi0rewotKyAgLyogTm8gdmFsaWQgY29tYmluYXRpb24gb2YgRFdf QVRfbG93X3BjLCBEV19BVF9oaWdoX3BjIG9yIERXX0FUX3JhbmdlcwotKyAgICAgd2FzIGZvdW5k LiAgKi8KLSsgIFBDX0JPVU5EU19OT1RfUFJFU0VOVCwKLSsKLSsgIC8qIERpc2NvbnRpZ3VvdXMg cmFuZ2Ugd2FzIGZvdW5kIC0gdGhhdCBpcyBEV19BVF9yYW5nZXMgd2FzIGZvdW5kLiAgKi8KLSsg IFBDX0JPVU5EU19SQU5HRVMsCi0rCi0rICAvKiBDb250aWd1b3VzIHJhbmdlIHdhcyBmb3VuZCAt IERXX0FUX2xvd19wYyBhbmQgRFdfQVRfaGlnaF9wYyB3ZXJlIGZvdW5kLiAgKi8KLSsgIFBDX0JP VU5EU19ISUdIX0xPVywKLSt9OwotKwotK3N0YXRpYyBlbnVtIHBjX2JvdW5kc19raW5kIGR3YXJm Ml9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKiwKLSsJCQkJCQkgQ09SRV9BRERSICos IENPUkVfQUREUiAqLAotKwkJCQkJCSBzdHJ1Y3QgZHdhcmYyX2N1ICosCi0rCQkJCQkJIHN0cnVj dCBwYXJ0aWFsX3N5bXRhYiAqKTsKLSAKLSBzdGF0aWMgdm9pZCBnZXRfc2NvcGVfcGNfYm91bmRz IChzdHJ1Y3QgZGllX2luZm8gKiwKLSAJCQkJIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwKLUBA IC01OTQ3LDcgKzU5NjMsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29u c3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAgIENPUkVfQUREUiBiYXNlYWRk cjsKLSAgIENPUkVfQUREUiBiZXN0X2xvd3BjID0gMCwgYmVzdF9oaWdocGMgPSAwOwotICAgc3Ry dWN0IHBhcnRpYWxfc3ltdGFiICpwc3Q7Ci0tICBpbnQgaGFzX3BjX2luZm87Ci0rICBlbnVtIHBj X2JvdW5kc19raW5kIGN1X2JvdW5kc19raW5kOwotICAgY29uc3QgY2hhciAqZmlsZW5hbWU7Ci0g ICBzdHJ1Y3QgcHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9kYXRhICppbmZvCi0gICAgID0gKHN0 cnVjdCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X2RhdGEgKikgZGF0YTsKLUBAIC01OTc3LDkg KzU5OTMsOSBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0 IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAKLSAgIC8qIFBvc3NpYmx5IHNldCB0aGUgZGVm YXVsdCB2YWx1ZXMgb2YgTE9XUEMgYW5kIEhJR0hQQyBmcm9tCi0gICAgICBgRFdfQVRfcmFuZ2Vz Jy4gICovCi0tICBoYXNfcGNfaW5mbyA9IGR3YXJmMl9nZXRfcGNfYm91bmRzIChjb21wX3VuaXRf ZGllLCAmYmVzdF9sb3dwYywKLS0JCQkJICAgICAgJmJlc3RfaGlnaHBjLCBjdSwgcHN0KTsKLS0g IGlmIChoYXNfcGNfaW5mbyA9PSAxICYmIGJlc3RfbG93cGMgPCBiZXN0X2hpZ2hwYykKLSsgIGN1 X2JvdW5kc19raW5kID0gZHdhcmYyX2dldF9wY19ib3VuZHMgKGNvbXBfdW5pdF9kaWUsICZiZXN0 X2xvd3BjLAotKwkJCQkJICZiZXN0X2hpZ2hwYywgY3UsIHBzdCk7Ci0rICBpZiAoY3VfYm91bmRz X2tpbmQgPT0gUENfQk9VTkRTX0hJR0hfTE9XICYmIGJlc3RfbG93cGMgPCBiZXN0X2hpZ2hwYykK LSAgICAgLyogU3RvcmUgdGhlIGNvbnRpZ3VvdXMgcmFuZ2UgaWYgaXQgaXMgbm90IGVtcHR5OyBp dCBjYW4gYmUgZW1wdHkgZm9yCi0gICAgICAgIENVcyB3aXRoIG5vIGNvZGUuICAqLwotICAgICBh ZGRybWFwX3NldF9lbXB0eSAob2JqZmlsZS0+cHN5bXRhYnNfYWRkcm1hcCwKLUBAIC02MDAzLDcg KzYwMTksNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0 IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAgICAgICBmaXJzdF9kaWUgPSBsb2FkX3BhcnRp YWxfZGllcyAocmVhZGVyLCBpbmZvX3B0ciwgMSk7Ci0gCi0gICAgICAgc2Nhbl9wYXJ0aWFsX3N5 bWJvbHMgKGZpcnN0X2RpZSwgJmxvd3BjLCAmaGlnaHBjLAotLQkJCSAgICAhIGhhc19wY19pbmZv LCBjdSk7Ci0rCQkJICAgIGN1X2JvdW5kc19raW5kID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCwg Y3UpOwotIAotICAgICAgIC8qIElmIHdlIGRpZG4ndCBmaW5kIGEgbG93cGMsIHNldCBpdCB0byBo aWdocGMgdG8gYXZvaWQKLSAJIGNvbXBsYWludHMgZnJvbSBgbWFpbnQgY2hlY2snLgkgKi8KLUBA IC02MDEyLDcgKzYwMjgsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29u c3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAKLSAgICAgICAvKiBJZiB0aGUg Y29tcGlsYXRpb24gdW5pdCBkaWRuJ3QgaGF2ZSBhbiBleHBsaWNpdCBhZGRyZXNzIHJhbmdlLAot IAkgdGhlbiB1c2UgdGhlIGluZm9ybWF0aW9uIGV4dHJhY3RlZCBmcm9tIGl0cyBjaGlsZCBkaWVz LiAgKi8KLS0gICAgICBpZiAoISBoYXNfcGNfaW5mbykKLSsgICAgICBpZiAoY3VfYm91bmRzX2tp bmQgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotIAl7Ci0gCSAgYmVzdF9sb3dwYyA9IGxvd3Bj OwotIAkgIGJlc3RfaGlnaHBjID0gaGlnaHBjOwotQEAgLTExMzczLDcgKzExMzg5LDggQEAgcmVh ZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up Ci0gICAgIH0KLSAKLSAgIC8qIElnbm9yZSBmdW5jdGlvbnMgd2l0aCBtaXNzaW5nIG9yIGludmFs aWQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMuICAqLwotLSAgaWYgKCFkd2FyZjJfZ2V0X3Bj X2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJf Z2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKQotKyAgICAgID09 IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9leHRlcm5hbCwgY3UpOwotICAgICAgIGlmICghYXR0ciB8fCAhRFdfVU5T TkQgKGF0dHIpKQotQEAgLTExNTM1LDcgKzExNTUyLDggQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Nj b3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gICAgICBh cyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5nIGNoaWxkcmVuIGluIGEgc2FuZSB3 YXkgd291bGQKLSAgICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUgZWFzaWVyIHRvIHByb3Blcmx5IGV4 dGVuZCBnZW5lcmljIGJsb2NrcyB0bwotICAgICAgZGVzY3JpYmUgcmFuZ2VzLiAgKi8KLS0gIGlm ICghZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSwgTlVMTCkp Ci0rICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSwg TlVMTCkKLSsgICAgICA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0gICAgIHJldHVybjsKLSAg IGxvd3BjID0gZ2RiYXJjaF9hZGp1c3RfZHdhcmYyX2FkZHIgKGdkYmFyY2gsIGxvd3BjICsgYmFz ZWFkZHIpOwotICAgaGlnaHBjID0gZ2RiYXJjaF9hZGp1c3RfZHdhcmYyX2FkZHIgKGdkYmFyY2gs IGhpZ2hwYyArIGJhc2VhZGRyKTsKLUBAIC0xMTc0NSw3ICsxMTc2Myw4IEBAIHJlYWRfY2FsbF9z aXRlX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0g CSAgQ09SRV9BRERSIGxvd3BjOwotIAotIAkgIC8qIERXX0FUX2VudHJ5X3BjIHNob3VsZCBiZSBw cmVmZXJyZWQuICAqLwotLQkgIGlmICghZHdhcmYyX2dldF9wY19ib3VuZHMgKHRhcmdldF9kaWUs ICZsb3dwYywgTlVMTCwgdGFyZ2V0X2N1LCBOVUxMKSkKLSsJICBpZiAoZHdhcmYyX2dldF9wY19i b3VuZHMgKHRhcmdldF9kaWUsICZsb3dwYywgTlVMTCwgdGFyZ2V0X2N1LCBOVUxMKQotKwkgICAg ICA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0gCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2Nv bXBsYWludHMsCi0gCQkgICAgICAgXygiRFdfQVRfR05VX2NhbGxfc2l0ZV90YXJnZXQgdGFyZ2V0 IERJRSBoYXMgaW52YWxpZCAiCi0gCQkgICAgICAgICAibG93IHBjLCBmb3IgcmVmZXJlbmNpbmcg RElFIDB4JXggW2luIG1vZHVsZSAlc10iKSwKLUBAIC0xMjAyMCwxMSArMTIwMzksMTEgQEAgZHdh cmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVybiwK LSAgIHJldHVybiAxOwotIH0KLSAKLS0vKiBHZXQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMg ZnJvbSBhIGRpZS4gIFJldHVybiAxIGlmIHRoZSBhdHRyaWJ1dGVzCi0tICAgYXJlIHByZXNlbnQg YW5kIHZhbGlkLCBvdGhlcndpc2UsIHJldHVybiAwLiAgUmV0dXJuIC0xIGlmIHRoZSByYW5nZSBp cwotLSAgIGRpc2NvbnRpbnVvdXMsIGkuZS4gZGVyaXZlZCBmcm9tIERXX0FUX3JhbmdlcyBpbmZv cm1hdGlvbi4gICovCi0rLyogR2V0IGxvdyBhbmQgaGlnaCBwYyBhdHRyaWJ1dGVzIGZyb20gYSBk aWUuICBTZWUgZW51bSBwY19ib3VuZHNfa2luZAotKyAgIGRlZmluaXRpb24gZm9yIHRoZSByZXR1 cm4gdmFsdWUuICAqTE9XUEMgYW5kICpISUdIUEMgYXJlIHNldCBpZmYKLSsgICBQQ19CT1VORFNf Tk9UX1BSRVNFTlQgaXMgbm90IHJldHVybmVkLiAgKi8KLSAKLS1zdGF0aWMgaW50Ci0rc3RhdGlj IGVudW0gcGNfYm91bmRzX2tpbmQKLSBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9p bmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCQkgICAgICBDT1JFX0FERFIgKmhpZ2hwYywg c3RydWN0IGR3YXJmMl9jdSAqY3UsCi0gCQkgICAgICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBz dCkKLUBAIC0xMjAzMyw3ICsxMjA1Miw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHJfaGlnaDsKLSAgIENPUkVfQUREUiBsb3cgPSAwOwotICAgQ09SRV9BRERSIGhpZ2ggPSAwOwot LSAgaW50IHJldCA9IDA7Ci0rICBlbnVtIHBjX2JvdW5kc19raW5kIHJldCA9IFBDX0JPVU5EU19O T1RfUFJFU0VOVDsKLSAKLSAgIGF0dHJfaGlnaCA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2hp Z2hfcGMsIGN1KTsKLSAgIGlmIChhdHRyX2hpZ2gpCi1AQCAtMTIwNDgsMTAgKzEyMDY3LDEwIEBA IGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICps b3dwYywKLSAJfQotICAgICAgIGVsc2UKLSAJLyogRm91bmQgaGlnaCB3L28gbG93IGF0dHJpYnV0 ZS4gICovCi0tCXJldHVybiAwOwotKwlyZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAot ICAgICAgIC8qIEZvdW5kIGNvbnNlY3V0aXZlIHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCi0tICAg ICAgcmV0ID0gMTsKLSsgICAgICByZXQgPSBQQ19CT1VORFNfSElHSF9MT1c7Ci0gICAgIH0KLSAg IGVsc2UKLSAgICAgewotQEAgLTEyMDcwLDE1ICsxMjA4OSwxNSBAQCBkd2FyZjJfZ2V0X3BjX2Jv dW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCSAgLyogVmFs dWUgb2YgdGhlIERXX0FUX3JhbmdlcyBhdHRyaWJ1dGUgaXMgdGhlIG9mZnNldCBpbiB0aGUKLSAJ ICAgICAuZGVidWdfcmFuZ2VzIHNlY3Rpb24uICAqLwotIAkgIGlmICghZHdhcmYyX3Jhbmdlc19y ZWFkIChyYW5nZXNfb2Zmc2V0LCAmbG93LCAmaGlnaCwgY3UsIHBzdCkpCi0tCSAgICByZXR1cm4g MDsKLSsJICAgIHJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gCSAgLyogRm91bmQgZGlz Y29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwotLQkgIHJldCA9IC0xOwotKwkgIHJl dCA9IFBDX0JPVU5EU19SQU5HRVM7Ci0gCX0KLSAgICAgfQotIAotICAgLyogcmVhZF9wYXJ0aWFs X2RpZSBoYXMgYWxzbyB0aGUgc3RyaWN0IExPVyA8IEhJR0ggcmVxdWlyZW1lbnQuICAqLwotICAg aWYgKGhpZ2ggPD0gbG93KQotLSAgICByZXR1cm4gMDsKLSsgICAgcmV0dXJuIFBDX0JPVU5EU19O T1RfUFJFU0VOVDsKLSAKLSAgIC8qIFdoZW4gdXNpbmcgdGhlIEdOVSBsaW5rZXIsIC5nbnUubGlu a29uY2UuIHNlY3Rpb25zIGFyZSB1c2VkIHRvCi0gICAgICBlbGltaW5hdGUgZHVwbGljYXRlIGNv cGllcyBvZiBmdW5jdGlvbnMgYW5kIHZ0YWJsZXMgYW5kIHN1Y2guCi1AQCAtMTIwODksNyArMTIx MDgsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVf QUREUiAqbG93cGMsCi0gICAgICBJZiB0aGlzIGlzIGEgZGlzY2FyZGVkIGZ1bmN0aW9uLCBtYXJr IHRoZSBwYyBib3VuZHMgYXMgaW52YWxpZCwKLSAgICAgIHNvIHRoYXQgR0RCIHdpbGwgaWdub3Jl IGl0LiAgKi8KLSAgIGlmIChsb3cgPT0gMCAmJiAhZHdhcmYyX3Blcl9vYmpmaWxlLT5oYXNfc2Vj dGlvbl9hdF96ZXJvKQotLSAgICByZXR1cm4gMDsKLSsgICAgcmV0dXJuIFBDX0JPVU5EU19OT1Rf UFJFU0VOVDsKLSAKLSAgICpsb3dwYyA9IGxvdzsKLSAgIGlmIChoaWdocGMpCi1AQCAtMTIxMTAs NyArMTIxMjksOCBAQCBkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRzIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwKLSAgIENPUkVfQUREUiBsb3csIGhpZ2g7Ci0gICBzdHJ1Y3QgZGllX2luZm8g KmNoaWxkID0gZGllLT5jaGlsZDsKLSAKLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGll LCAmbG93LCAmaGlnaCwgY3UsIE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChk aWUsICZsb3csICZoaWdoLCBjdSwgTlVMTCkKLSsgICAgICAhPSBQQ19CT1VORFNfTk9UX1BSRVNF TlQpCi0gICAgIHsKLSAgICAgICAqbG93cGMgPSBtaW4gKCpsb3dwYywgbG93KTsKLSAgICAgICAq aGlnaHBjID0gbWF4ICgqaGlnaHBjLCBoaWdoKTsKLUBAIC0xMjE0Nyw3ICsxMjE2Nyw4IEBAIGdl dF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgQ09SRV9BRERSIGJl c3RfaGlnaCA9IChDT1JFX0FERFIpIDA7Ci0gICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1cnJl bnRfaGlnaDsKLSAKLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmY3VycmVudF9s b3csICZjdXJyZW50X2hpZ2gsIGN1LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5k cyAoZGllLCAmY3VycmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1LCBOVUxMKQotKyAgICAgICE9 IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgIGJlc3RfbG93ID0gY3VycmVu dF9sb3c7Ci0gICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotLS0gCi0yLjUuNQotCgpk aWZmIC0tZ2l0IGEvZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaCBiL2dk Yi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTJvZjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGM4OGZkZjMuLjAwMDAwMDAKLS0tIGEvZ2RiLWJhcmUtRFdfVEFHX2xleGlj YWxfYmxvY2stMm9mMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0MyArMCwwIEBACi1Gcm9t IGUzODU1OTNlZWY5OGFjOTJiZTU3MTU5ZTE0MWY0YjgwNWRhZGJiYjMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLURhdGU6IE1vbiwgMzAgTWF5IDIwMTYgMTQ6MTQ6NDMgKzAyMDAKLVN1YmplY3Q6IFtQQVRD SCAyLzJdIFBSIDE1MjMxOiBpbXBvcnQgYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jawotCi1Mb2Nh bCB2YXJpYWJsZXMgaW4gbGFtYmRhcyBhcmUgbm90IGFjY2Vzc2libGUKLWh0dHBzOi8vc291cmNl d2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE1MjMxCi0KLUdEQjogcmVhZF9sZXhp Y2FsX2Jsb2NrX3Njb3BlCi0gIC8qIElnbm9yZSBibG9ja3Mgd2l0aCBtaXNzaW5nIG9yIGludmFs aWQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMuICAqLwotWy4uLl0KLSAgaWYgKCFkd2FyZjJf Z2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSAgICByZXR1 cm47Ci0KLUJ1dCBzb21ldGltZXMgdGhlcmUgaXM6Ci0KLUZBSUw6IGdjYy01LjMuMS02LmZjMjMu eDg2XzY0Ci0gPDI+PDkyPjogQWJicmV2IE51bWJlcjogMTEgKERXX1RBR19sZXhpY2FsX2Jsb2Nr KQotIDwzPjw5Yz46IEFiYnJldiBOdW1iZXI6IDEzIChEV19UQUdfc3RydWN0dXJlX3R5cGUpCi0g ICAgPDlkPiAgIERXX0FUX25hbWUgICAgICAgIDogKGluZGlyZWN0IHN0cmluZywgb2Zmc2V0OiAw eDNjKTogPGxhbWJkYSgpPgotICAgIFsuLi5dCi0KLVdoZXJlIERXX1RBR19sZXhpY2FsX2Jsb2Nr IGhhcyBubyBhdHRyaWJ1dGVzLiAgU3VjaCB3aG9sZSBzdWJ0cmVlIGlzIGN1cnJlbnRseQotZHJv cHBlZCBieSBHREIgd2hpbGUgSSB0aGluayBpdCBzaG91bGQganVzdCBpbXBvcnQgYWxsIGl0cyBj aGlsZHJlbiBESUVzLgotCi1JdCBldmVuIFhGQUlMLT5YUEFTU2VzIGdkYi5hZGEvb3V0X29mX2xp bmVfaW5faW5saW5lZC5leHA6Ci0JY29tbWl0IDBmYTdmZTUwNmMyNDJiNDU5YzRjMDVkMzMxZTdj N2Q2NmZiNTIzOTAKLQlBdXRob3I6IEpvZWwgQnJvYmVja2VyIDxicm9iZWNrZXJAYWRhY29yZS5j b20+Ci0JICAgIG91dCBvZiBsaW5lIGZ1bmN0aW9ucyBuZXN0ZWQgaW5zaWRlIGlubGluZSBmdW5j dGlvbnMuCi1TbyBJIGhhdmUgcmVtb3ZlZCB0aGF0IHhmYWlsLgotCi1nZGIvQ2hhbmdlTG9nCi0y MDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0K LQlQUiBjKysvMTUyMzEKLQkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCk6IEFk ZCBQQ19CT1VORFNfSU5WQUxJRC4KLQkocHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIs IHJlYWRfZnVuY19zY29wZSk6IEFkanVzdCBjYWxsZXJzLgotCShyZWFkX2xleGljYWxfYmxvY2tf c2NvcGUpOiBJbXBvcnQgRElFcyBmcm9tIGJhcmUgRFdfVEFHX2xleGljYWxfYmxvY2suCi0JKHJl YWRfY2FsbF9zaXRlX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0JKGR3YXJmMl9nZXRfcGNfYm91 bmRzKTogSW1wbGVtZW50IHBjX2JvdW5kc19pbnZhbGlkLgotCShkd2FyZjJfZ2V0X3N1YnByb2dy YW1fcGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0KLWdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0yMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlQUiBjKysvMTUyMzEKLQkqIGdkYi5hZGEvb3V0X29m X2xpbmVfaW5faW5saW5lZC5leHA6IFJlbW92ZSB4ZmFpbHMuCi0JKiBnZGIuZHdhcmYyL2R3Mi1s ZXhpY2FsLWJsb2NrLWJhcmUuZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKwotIGdkYi9kd2FyZjJy ZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTMgKysrKysrKysrKy0t LS0tLQotIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysKLSBnZGIvdGVzdHN1aXRlL2dkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5lZC5l eHAgICB8ICA2IC0tCi0gLi4uL2dkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHAg ICAgICAgICAgfCA3MCArKysrKysrKysrKysrKysrKysrKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCAx MjAgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGdk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1iYXJlLmV4cAotCi0jIyMg YS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDE1IEBACi0g MjAxNi0wNS0zMCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgot IAotKwlQUiBjKysvMTUyMzEKLSsJKiBkd2FyZjJyZWFkLmMgKGVudW0gcGNfYm91bmRzX2tpbmQp OiBBZGQgUENfQk9VTkRTX0lOVkFMSUQuCi0rCShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3Jl YWRlciwgcmVhZF9mdW5jX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0rCShyZWFkX2xleGljYWxf YmxvY2tfc2NvcGUpOiBJbXBvcnQgRElFcyBmcm9tIGJhcmUgRFdfVEFHX2xleGljYWxfYmxvY2su Ci0rCShyZWFkX2NhbGxfc2l0ZV9zY29wZSk6IEFkanVzdCBjYWxsZXJzLgotKwkoZHdhcmYyX2dl dF9wY19ib3VuZHMpOiBJbXBsZW1lbnQgcGNfYm91bmRzX2ludmFsaWQuCi0rCShkd2FyZjJfZ2V0 X3N1YnByb2dyYW1fcGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxl cnMuCi0rCi0rMjAxNi0wNS0zMCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgotKwotIAlDb2RlIGNsZWFudXA6IGR3YXJmMl9nZXRfcGNfYm91bmRzOiAtMS8wLysx IC0+IGVudW0KLSAJKiBkd2FyZjJyZWFkLmMgKGVudW0gcGNfYm91bmRzX2tpbmQpIE5ldy4KLSAJ KGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGl0IGluIHRoZSBkZWNsYXJhdGlvbi4KLS0tLSBh L2dkYi9kd2FyZjJyZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNjA3LDEzICsx NjA3LDE2IEBAIHN0YXRpYyBpbnQgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCwgQ09SRV9B RERSICosIENPUkVfQUREUiAqLAotIAkJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICosIHN0cnVj dCBwYXJ0aWFsX3N5bXRhYiAqKTsKLSAKLSAvKiBIb3cgZHdhcmYyX2dldF9wY19ib3VuZHMgY29u c3RydWN0ZWQgaXRzICpMT1dQQyBhbmQgKkhJR0hQQyByZXR1cm4KLS0gICB2YWx1ZXMuICAqLwot KyAgIHZhbHVlcy4gIEtlZXAgdGhlIGl0ZW1zIG9yZGVyZWQgd2l0aCBpbmNyZWFzaW5nIGNvbnN0 cmFpbnRzIGNvbXBsaWFuY2UuICAqLwotIGVudW0gcGNfYm91bmRzX2tpbmQKLSB7Ci0tICAvKiBO byB2YWxpZCBjb21iaW5hdGlvbiBvZiBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdf QVRfcmFuZ2VzCi0tICAgICB3YXMgZm91bmQuICAqLwotKyAgLyogTm8gYXR0cmlidXRlIERXX0FU X2xvd19wYywgRFdfQVRfaGlnaF9wYyBvciBEV19BVF9yYW5nZXMgd2FzIGZvdW5kLiAgKi8KLSAg IFBDX0JPVU5EU19OT1RfUFJFU0VOVCwKLSAKLSsgIC8qIFNvbWUgb2YgdGhlIGF0dHJpYnV0ZXMg RFdfQVRfbG93X3BjLCBEV19BVF9oaWdoX3BjIG9yIERXX0FUX3JhbmdlcwotKyAgICAgd2VyZSBw cmVzZW50IGJ1dCB0aGV5IGRvIG5vdCBmb3JtIGEgdmFsaWQgcmFuZ2Ugb2YgUEMgYWRkcmVzc2Vz LiAgKi8KLSsgIFBDX0JPVU5EU19JTlZBTElELAotKwotICAgLyogRGlzY29udGlndW91cyByYW5n ZSB3YXMgZm91bmQgLSB0aGF0IGlzIERXX0FUX3JhbmdlcyB3YXMgZm91bmQuICAqLwotICAgUENf Qk9VTkRTX1JBTkdFUywKLSAKLUBAIC02MDE5LDcgKzYwMjIsNyBAQCBwcm9jZXNzX3BzeW10YWJf Y29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwK LSAgICAgICBmaXJzdF9kaWUgPSBsb2FkX3BhcnRpYWxfZGllcyAocmVhZGVyLCBpbmZvX3B0ciwg MSk7Ci0gCi0gICAgICAgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMgKGZpcnN0X2RpZSwgJmxvd3BjLCAm aGlnaHBjLAotLQkJCSAgICBjdV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQs IGN1KTsKLSsJCQkgICAgY3VfYm91bmRzX2tpbmQgPD0gUENfQk9VTkRTX0lOVkFMSUQsIGN1KTsK LSAKLSAgICAgICAvKiBJZiB3ZSBkaWRuJ3QgZmluZCBhIGxvd3BjLCBzZXQgaXQgdG8gaGlnaHBj IHRvIGF2b2lkCi0gCSBjb21wbGFpbnRzIGZyb20gYG1haW50IGNoZWNrJy4JICovCi1AQCAtNjAy OCw3ICs2MDMxLDcgQEAgcHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIgKGNvbnN0IHN0 cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsCi0gCi0gICAgICAgLyogSWYgdGhlIGNvbXBp bGF0aW9uIHVuaXQgZGlkbid0IGhhdmUgYW4gZXhwbGljaXQgYWRkcmVzcyByYW5nZSwKLSAJIHRo ZW4gdXNlIHRoZSBpbmZvcm1hdGlvbiBleHRyYWN0ZWQgZnJvbSBpdHMgY2hpbGQgZGllcy4gICov Ci0tICAgICAgaWYgKGN1X2JvdW5kc19raW5kID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsg ICAgICBpZiAoY3VfYm91bmRzX2tpbmQgPD0gUENfQk9VTkRTX0lOVkFMSUQpCi0gCXsKLSAJICBi ZXN0X2xvd3BjID0gbG93cGM7Ci0gCSAgYmVzdF9oaWdocGMgPSBoaWdocGM7Ci1AQCAtMTEzOTAs NyArMTEzOTMsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKLSAKLSAgIC8qIElnbm9yZSBmdW5jdGlvbnMgd2l0aCBtaXNzaW5n IG9yIGludmFsaWQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMuICAqLwotICAgaWYgKGR3YXJm Ml9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0tICAgICAg PT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotKyAgICAgIDw9IFBDX0JPVU5EU19JTlZBTElEKQot ICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2V4dGVybmFsLCBj dSk7Ci0gICAgICAgaWYgKCFhdHRyIHx8ICFEV19VTlNORCAoYXR0cikpCi1AQCAtMTE1NTIsOSAr MTE1NTUsMjAgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gICAgICBhcyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nr cz8gIEhhbmRsaW5nIGNoaWxkcmVuIGluIGEgc2FuZSB3YXkgd291bGQKLSAgICAgIGJlIG5hc3R5 LiAgTWlnaHQgYmUgZWFzaWVyIHRvIHByb3Blcmx5IGV4dGVuZCBnZW5lcmljIGJsb2NrcyB0bwot ICAgICAgZGVzY3JpYmUgcmFuZ2VzLiAgKi8KLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAo ZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKQotLSAgICAgID09IFBDX0JPVU5EU19OT1Rf UFJFU0VOVCkKLS0gICAgcmV0dXJuOwotKyAgc3dpdGNoIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAo ZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgICAgewotKyAgICBjYXNlIFBDX0JP VU5EU19OT1RfUFJFU0VOVDoKLSsgICAgICAvKiBEV19UQUdfbGV4aWNhbF9ibG9jayBoYXMgbm8g YXR0cmlidXRlcywgcHJvY2VzcyBpdHMgY2hpbGRyZW4gYXMgaWYKLSsJIHRoZXJlIHdhcyBubyB3 cmFwcGluZyBieSB0aGF0IERXX1RBR19sZXhpY2FsX2Jsb2NrLgotKwkgR0NDIGRvZXMgbm8gbG9u Z2VyIHByb2R1Y2VzIHN1Y2ggRFdBUkYgc2luY2UgR0NDIHIyMjQxNjEuICAqLwotKyAgICAgIGZv ciAoY2hpbGRfZGllID0gZGllLT5jaGlsZDsKLSsJICAgY2hpbGRfZGllICE9IE5VTEwgJiYgY2hp bGRfZGllLT50YWc7Ci0rCSAgIGNoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpKQot Kwlwcm9jZXNzX2RpZSAoY2hpbGRfZGllLCBjdSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICBjYXNl IFBDX0JPVU5EU19JTlZBTElEOgotKyAgICAgIHJldHVybjsKLSsgICAgfQotICAgbG93cGMgPSBn ZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgbG93cGMgKyBiYXNlYWRkcik7Ci0g ICBoaWdocGMgPSBnZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgaGlnaHBjICsg YmFzZWFkZHIpOwotIAotQEAgLTExNzY0LDcgKzExNzc4LDcgQEAgcmVhZF9jYWxsX3NpdGVfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAKLSAJICAv KiBEV19BVF9lbnRyeV9wYyBzaG91bGQgYmUgcHJlZmVycmVkLiAgKi8KLSAJICBpZiAoZHdhcmYy X2dldF9wY19ib3VuZHMgKHRhcmdldF9kaWUsICZsb3dwYywgTlVMTCwgdGFyZ2V0X2N1LCBOVUxM KQotLQkgICAgICA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0rCSAgICAgIDw9IFBDX0JPVU5E U19JTlZBTElEKQotIAkgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAotIAkJICAg ICAgIF8oIkRXX0FUX0dOVV9jYWxsX3NpdGVfdGFyZ2V0IHRhcmdldCBESUUgaGFzIGludmFsaWQg IgotIAkJICAgICAgICAgImxvdyBwYywgZm9yIHJlZmVyZW5jaW5nIERJRSAweCV4IFtpbiBtb2R1 bGUgJXNdIiksCi1AQCAtMTIwNDEsNyArMTIwNTUsNyBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVu c2lnbmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAotIAotIC8qIEdldCBsb3cgYW5k IGhpZ2ggcGMgYXR0cmlidXRlcyBmcm9tIGEgZGllLiAgU2VlIGVudW0gcGNfYm91bmRzX2tpbmQK LSAgICBkZWZpbml0aW9uIGZvciB0aGUgcmV0dXJuIHZhbHVlLiAgKkxPV1BDIGFuZCAqSElHSFBD IGFyZSBzZXQgaWZmCi0tICAgUENfQk9VTkRTX05PVF9QUkVTRU5UIGlzIG5vdCByZXR1cm5lZC4g ICovCi0rICAgbmVpdGhlciBQQ19CT1VORFNfTk9UX1BSRVNFTlQgbm9yIFBDX0JPVU5EU19JTlZB TElEIGFyZSByZXR1cm5lZC4gICovCi0gCi0gc3RhdGljIGVudW0gcGNfYm91bmRzX2tpbmQKLSBk d2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93 cGMsCi1AQCAtMTIwNTIsNyArMTIwNjYsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gICBzdHJ1Y3QgYXR0cmlidXRlICph dHRyX2hpZ2g7Ci0gICBDT1JFX0FERFIgbG93ID0gMDsKLSAgIENPUkVfQUREUiBoaWdoID0gMDsK LS0gIGVudW0gcGNfYm91bmRzX2tpbmQgcmV0ID0gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKyAg ZW51bSBwY19ib3VuZHNfa2luZCByZXQ7Ci0gCi0gICBhdHRyX2hpZ2ggPSBkd2FyZjJfYXR0ciAo ZGllLCBEV19BVF9oaWdoX3BjLCBjdSk7Ci0gICBpZiAoYXR0cl9oaWdoKQotQEAgLTEyMDY3LDcg KzEyMDgxLDcgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBD T1JFX0FERFIgKmxvd3BjLAotIAl9Ci0gICAgICAgZWxzZQotIAkvKiBGb3VuZCBoaWdoIHcvbyBs b3cgYXR0cmlidXRlLiAgKi8KLS0JcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSsJcmV0 dXJuIFBDX0JPVU5EU19JTlZBTElEOwotIAotICAgICAgIC8qIEZvdW5kIGNvbnNlY3V0aXZlIHJh bmdlIG9mIGFkZHJlc3Nlcy4gICovCi0gICAgICAgcmV0ID0gUENfQk9VTkRTX0hJR0hfTE9XOwot QEAgLTEyMDg5LDE1ICsxMjEwMywxNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCSAgLyogVmFsdWUgb2YgdGhlIERXX0FU X3JhbmdlcyBhdHRyaWJ1dGUgaXMgdGhlIG9mZnNldCBpbiB0aGUKLSAJICAgICAuZGVidWdfcmFu Z2VzIHNlY3Rpb24uICAqLwotIAkgIGlmICghZHdhcmYyX3Jhbmdlc19yZWFkIChyYW5nZXNfb2Zm c2V0LCAmbG93LCAmaGlnaCwgY3UsIHBzdCkpCi0tCSAgICByZXR1cm4gUENfQk9VTkRTX05PVF9Q UkVTRU5UOwotKwkgICAgcmV0dXJuIFBDX0JPVU5EU19JTlZBTElEOwotIAkgIC8qIEZvdW5kIGRp c2NvbnRpbnVvdXMgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8KLSAJICByZXQgPSBQQ19CT1VORFNf UkFOR0VTOwotIAl9Ci0rICAgICAgZWxzZQotKwlyZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5U OwotICAgICB9Ci0gCi0gICAvKiByZWFkX3BhcnRpYWxfZGllIGhhcyBhbHNvIHRoZSBzdHJpY3Qg TE9XIDwgSElHSCByZXF1aXJlbWVudC4gICovCi0gICBpZiAoaGlnaCA8PSBsb3cpCi0tICAgIHJl dHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rICAgIHJldHVybiBQQ19CT1VORFNfSU5WQUxJ RDsKLSAKLSAgIC8qIFdoZW4gdXNpbmcgdGhlIEdOVSBsaW5rZXIsIC5nbnUubGlua29uY2UuIHNl Y3Rpb25zIGFyZSB1c2VkIHRvCi0gICAgICBlbGltaW5hdGUgZHVwbGljYXRlIGNvcGllcyBvZiBm dW5jdGlvbnMgYW5kIHZ0YWJsZXMgYW5kIHN1Y2guCi1AQCAtMTIxMDgsNyArMTIxMjQsNyBAQCBk d2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93 cGMsCi0gICAgICBJZiB0aGlzIGlzIGEgZGlzY2FyZGVkIGZ1bmN0aW9uLCBtYXJrIHRoZSBwYyBi b3VuZHMgYXMgaW52YWxpZCwKLSAgICAgIHNvIHRoYXQgR0RCIHdpbGwgaWdub3JlIGl0LiAgKi8K LSAgIGlmIChsb3cgPT0gMCAmJiAhZHdhcmYyX3Blcl9vYmpmaWxlLT5oYXNfc2VjdGlvbl9hdF96 ZXJvKQotLSAgICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKyAgICByZXR1cm4gUENf Qk9VTkRTX0lOVkFMSUQ7Ci0gCi0gICAqbG93cGMgPSBsb3c7Ci0gICBpZiAoaGlnaHBjKQotQEAg LTEyMTI5LDggKzEyMTQ1LDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JFX0FERFIgbG93LCBoaWdoOwotICAgc3RydWN0IGRp ZV9pbmZvICpjaGlsZCA9IGRpZS0+Y2hpbGQ7Ci0gCi0tICBpZiAoZHdhcmYyX2dldF9wY19ib3Vu ZHMgKGRpZSwgJmxvdywgJmhpZ2gsIGN1LCBOVUxMKQotLSAgICAgICE9IFBDX0JPVU5EU19OT1Rf UFJFU0VOVCkKLSsgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93LCAmaGlnaCwg Y3UsIE5VTEwpID49IFBDX0JPVU5EU19SQU5HRVMpCi0gICAgIHsKLSAgICAgICAqbG93cGMgPSBt aW4gKCpsb3dwYywgbG93KTsKLSAgICAgICAqaGlnaHBjID0gbWF4ICgqaGlnaHBjLCBoaWdoKTsK LUBAIC0xMjE2OCw3ICsxMjE4Myw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVf aW5mbyAqZGllLAotICAgQ09SRV9BRERSIGN1cnJlbnRfbG93LCBjdXJyZW50X2hpZ2g7Ci0gCi0g ICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmN1cnJlbnRfbG93LCAmY3VycmVudF9o aWdoLCBjdSwgTlVMTCkKLS0gICAgICAhPSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0rICAgICAg Pj0gUENfQk9VTkRTX1JBTkdFUykKLSAgICAgewotICAgICAgIGJlc3RfbG93ID0gY3VycmVudF9s b3c7Ci0gICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotIyMjIGEvZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDkg QEAKLSsyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0rCi0rCVBSIGMrKy8xNTIzMQotKwkqIGdkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5l ZC5leHA6IFJlbW92ZSB4ZmFpbHMuCi0rCSogZ2RiLmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1i YXJlLmV4cDogTmV3IGZpbGUuCi0rCi0gMjAxNi0wNS0yNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNA cmVkaGF0LmNvbT4KLSAKLSAJKiBnZGIudGhyZWFkcy9hdHRhY2gtbWFueS1zaG9ydC1saXZlZC10 aHJlYWRzLmV4cCAoYmFkX2RlamFnbnUpOgotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL291 dF9vZl9saW5lX2luX2lubGluZWQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvb3V0 X29mX2xpbmVfaW5faW5saW5lZC5leHAKLUBAIC0yMywyMCArMjMsMTQgQEAgaWYge1tnZGJfY29t cGlsZV9hZGEgIiR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1ZyBvcHRp bWl6ZT0tTzJ9XQotIAotIGNsZWFuX3Jlc3RhcnQgJHt0ZXN0ZmlsZX0KLSAKLS0jIEdDQyBjdXJy ZW50bHkgaXMgbWlzc2luZyBhIERXX0FUX29yaWdpbiBhdHRyaWJ1dGUgaW4gb25lIG9mIHRoZQot LSMgbGV4aWNhbCBibG9ja3MsIHByZXZlbnRpbmcgR0RCIGZyb20gY3JlYXRpbmcgYSBzeW1ib2wg Zm9yIHRoZQotLSMgc3VicHJvZ3JhbSB3ZSB3YW50IHRvIGJyZWFrIG9uLgotLXNldHVwX3hmYWls ICIqLSotKiIKLSBnZGJfdGVzdCAiYnJlYWsgZm9vX28yMjRfMDIxLmNoaWxkMS5jaGlsZDIiIFwK LSAgICAgICAgICAiQnJlYWtwb2ludCBcWzAtOVxdKyBhdC4qOiBmaWxlIC4qZm9vX28yMjRfMDIx LmFkYiwgbGluZSBcWzAtOVxdKy4iCi0gCi0gZ2RiX3J1bl9jbWQKLS1zZXR1cF94ZmFpbCAiKi0q LSoiCi0gZ2RiX3Rlc3QgIiIgXAotICAgICAgICAgICJCcmVha3BvaW50ICRkZWNpbWFsLCBmb29f bzIyNF8wMjFcXC5jaGlsZDFcXC5jaGlsZDIgXFwocz1cXC5cXC5cXC5cXCkuKiIKLSAKLSBzZXQg b3B0X2FkZHJfaW4gIigkaGV4IGluKT8iCi0tc2V0dXBfeGZhaWwgIiotKi0qIgotIGdkYl90ZXN0 ICJidCIgXAotICAgICBbbXVsdGlfbGluZSAiIzAgKyRvcHRfYWRkcl9pbiArZm9vX28yMjRfMDIx XFwuY2hpbGQxXFwuY2hpbGQyIFxcKHM9XFwuXFwuXFwuXFwpLioiIFwKLSAgICAgICAgICAgICAg ICAgIiMxICskb3B0X2FkZHJfaW4gK2Zvb19vMjI0XzAyMVxcLmNoaWxkMSBcXChcXCkuKiIgXAot LS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sZXhpY2Fs LWJsb2NrLWJhcmUuZXhwCi1AQCAtMCwwICsxLDcwIEBACi0rIyBDb3B5cmlnaHQgMjAxNiBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Ci0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCi0rbG9hZF9saWIgZHdhcmYuZXhwCi0rCi0rIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVu IG9uIHRhcmdldHMgd2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgotK2lmIHshW2R3 YXJmMl9zdXBwb3J0XX0gewotKyAgICByZXR1cm4gMAotK30KLSsKLStzdGFuZGFyZF90ZXN0Zmls ZSAuUyBtYWluLmMKLSsKLSsjIE1ha2Ugc29tZSBEV0FSRiBmb3IgdGhlIHRlc3QuCi0rc2V0IGFz bV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkc3JjZmlsZV0KLStEd2FyZjo6YXNzZW1ibGUg JGFzbV9maWxlIHsKLSsgICAgY3Uge30gewotKwljb21waWxlX3VuaXQgewotKwkgICAge2xvd19w YyBbZ2RiX3RhcmdldF9zeW1ib2wgbWFpbl0gRFdfRk9STV9hZGRyfQotKwkgICAge2hpZ2hfcGMg W2dkYl90YXJnZXRfc3ltYm9sIG1haW5dKzB4MTAwMDAgRFdfRk9STV9hZGRyfQotKwl9IHsKLSsJ ICAgIGRlY2xhcmVfbGFiZWxzIGludGVnZXJfbGFiZWwKLSsKLSsJICAgIGludGVnZXJfbGFiZWw6 IERXX1RBR19iYXNlX3R5cGUgewotKwkJe0RXX0FUX2J5dGVfc2l6ZSA0IERXX0ZPUk1fc2RhdGF9 Ci0rCQl7RFdfQVRfZW5jb2RpbmcgIEBEV19BVEVfc2lnbmVkfQotKwkJe0RXX0FUX25hbWUgICAg ICBpbnRlZ2VyfQotKwkgICAgfQotKwotKwkgICAgRFdfVEFHX3N1YnByb2dyYW0gewotKwkJe25h bWUgbWFpbn0KLSsJCXtEV19BVF9leHRlcm5hbCAxIGZsYWd9Ci0rCQl7bG93X3BjIFtnZGJfdGFy Z2V0X3N5bWJvbCBtYWluXSBEV19GT1JNX2FkZHJ9Ci0rCQl7aGlnaF9wYyBbZ2RiX3RhcmdldF9z eW1ib2wgbWFpbl0rMHgxMDAwMCBEV19GT1JNX2FkZHJ9Ci0rCSAgICB9IHsKLSsJCURXX1RBR19s ZXhpY2FsX2Jsb2NrIHsKLSsJCX0gewotKwkJICAgIERXX1RBR192YXJpYWJsZSB7Ci0rCQkJe0RX X0FUX25hbWUgdGVzdHZhcn0KLSsJCQkgICAge0RXX0FUX3R5cGUgOiRpbnRlZ2VyX2xhYmVsfQot KwkJCSAgICB7RFdfQVRfZXh0ZXJuYWwgMSBmbGFnfQotKwkJCXtEV19BVF9sb2NhdGlvbiB7Ci0r CQkJICAgIERXX09QX2FkZHIgW2dkYl90YXJnZXRfc3ltYm9sIG1haW5dCi0rCQkJfSBTUEVDSUFM X2V4cHJ9Ci0rCQkgICAgfQotKwkJfQotKwkgICAgfQotKwl9Ci0rICAgIH0KLSt9Ci0rCi0raWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gXAotKwkJ CSAgW2xpc3QgJHNyY2ZpbGUyICRhc21fZmlsZV0ge25vZGVidWd9XSB9IHsKLSsgICAgcmV0dXJu IC0xCi0rfQotKwotK3J1bnRvX21haW4KLSsKLSsjIEZBSUxpbmcgR0RCIGRpZCBwcmludDogTm8g c3ltYm9sICJ0ZXN0dmFyIiBpbiBjdXJyZW50IGNvbnRleHQuCi0rZ2RiX3Rlc3QgInAgdGVzdHZh ciIgeyA9IC0/WzAtOV0rfQotLS0gCi0yLjUuNQotCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTQxODY2 LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoIGIvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVu LnBhdGNoCmluZGV4IGI2NTdiZDUuLjhiN2IzZDAgMTAwNjQ0Ci0tLSBhL2dkYi1iejU0MTg2Ni1y d2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaAorKysgYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1y dW4ucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv Y29uZmlnL2kzODYvbGludXg2NC5taAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYw MjExLm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNi0wMi0xMSAyMDo1NjozMi40 NzA2NzQ4NzcgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYv bGludXg2NC5taAkyMDE2LTAyLTExIDIwOjU2OjUxLjE1ODc5NzcxMiArMDEwMAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNi0wNy0w MiAyMjo1OToxOC4yMTMyNDg3NTIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv Y29uZmlnL2kzODYvbGludXg2NC5taAkyMDE2LTA3LTAyIDIyOjU5OjI1LjcxNjMxMzkxMSArMDIw MAogQEAgLTcsNyArNyw3IEBACiAgCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vIGxpbnV4 LWJ0cmFjZS5vIFwKICAJbGludXgtd2FpdHBpZC5vIGxpbnV4LXBlcnNvbmFsaXR5Lm8geDg2LWxp bnV4Lm8gXApAQCAtMTEsMTAgKzExLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvY29uZmlnL2kzODYvbGludXg2NC5taAogIE5BVF9DREVQUyA9ICQoc3JjZGlyKS9wcm9jLXNl cnZpY2UubGlzdAogIAogICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJ0aHJlYWRfZGIgbmVl ZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhlCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2NvbmZpZy9pMzg2L2xpbnV4Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAy MTEub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxNi0wMi0xMSAyMDo1NjoyNi45MjU2 Mzg0MzAgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGlu dXgubWgJMjAxNi0wMi0xMSAyMDo1NjozMi40NzE2NzQ4ODQgKzAxMDAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDYzMC5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2LTA3LTAyIDIyOjU5 OjE4LjIxMzI0ODc1MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWcv aTM4Ni9saW51eC5taAkyMDE2LTA3LTAyIDIyOjU5OjI1LjcxNjMxMzkxMSArMDIwMAogQEAgLTEs NiArMSw2IEBACiAgIyBIb3N0OiBJbnRlbCAzODYgcnVubmluZyBHTlUvTGludXguCiAgCkBAIC0y MywxMCArMjMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4 Ni9saW51eC5taAogIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKICAJ eDg2LW5hdC5vIHg4Ni1kcmVncy5vIGkzODYtbGludXgtbmF0Lm8geDg2LWxpbnV4LW5hdC5vIFwK ICAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE2LTAyLTExIDIwOjU2OjMy LjQ3MTY3NDg4NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWcvaTM4 Ni9ubS1saW51eC5oCTIwMTYtMDctMDIgMjI6NTk6MjUuNzE2MzEzOTExICswMjAwCiBAQCAtMCww ICsxLDI4IEBACiArLyogTmF0aXZlIHN1cHBvcnQgZm9yIEdOVS9MaW51eCBpMzg2LgogKwpAQCAt NTYsMTAgKzU2LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kz ODYvbm0tbGludXguaAogKyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2lu dCh0eXBlLCBjbnQsIG90KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnL2kzODYvbm0tbGludXg2NC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAky MDE2LTAyLTExIDIwOjU2OjMyLjQ3MTY3NDg4NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxNi0wNy0wMiAyMjo1OToyNS43MTYz MTM5MTEgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05V L0xpbnV4IGFtZDY0LgogKwpAQCAtODksMTMgKzg5LDEzIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbm0tbGludXg2NC5oCiArI2RlZmluZSB0YXJnZXRfY2Fu X3VzZV9oYXJkd2FyZV93YXRjaHBvaW50KHR5cGUsIGNudCwgb3QpIDEKICsKICsjZW5kaWYgLyog Tk1fTElOVVg2NF9IICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3RhcmdldC5o CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNi0wMi0xMSAyMDo1 NjoyNi45MjY2Mzg0MzcgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGFyZ2V0 LmgJMjAxNi0wMi0xMSAyMDo1NjozMi40NzI2NzQ4OTAgKzAxMDAKLUBAIC0xOTI0LDkgKzE5MjQs MTEgQEAKLSAgICBDTlQgaXMgdGhlIG51bWJlciBvZiBzdWNoIHdhdGNocG9pbnRzIHVzZWQgc28g ZmFyLCBpbmNsdWRpbmcgdGhpcwotICAgIG9uZS4gIE9USEVSVFlQRSBpcyB3aG8ga25vd3Mgd2hh dC4uLiAgKi8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90YXJnZXQuaAkyMDE2 LTA3LTAyIDIyOjU5OjE4LjIxNDI0ODc2MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi90YXJnZXQuaAkyMDE2LTA3LTAyIDIyOjU5OjI1LjcxNzMxMzkxOSArMDIwMAorQEAgLTE5 MjgsOSArMTkyOCwxMSBAQAorICAgIG9uZS4gIE9USEVSVFlQRSBpcyB0aGUgbnVtYmVyIG9mIHdh dGNocG9pbnRzIG9mIG90aGVyIHR5cGVzIHRoYW4KKyAgICB0aGlzIG9uZSB1c2VkIHNvIGZhci4g ICovCiAgCiArI2lmbmRlZiB0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50CiAgI2Rl ZmluZSB0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50KFRZUEUsQ05ULE9USEVSVFlQ RSkgXApAQCAtMTA1LDEwICsxMDUsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90YXJnZXQuaAogIAogIC8qIFJldHVybnMgdGhlIG51bWJlciBvZiBkZWJ1ZyByZWdpc3RlcnMg bmVlZGVkIHRvIHdhdGNoIHRoZSBnaXZlbgogICAgIG1lbW9yeSByZWdpb24sIG9yIHplcm8gaWYg bm90IHN1cHBvcnRlZC4gICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9y ZS1ydW4uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTYtMDItMTEgMjA6NTY6MzIu NDcyNjc0ODkwICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTYtMDctMDIgMjI6NTk6MjUu NzE3MzEzOTE5ICswMjAwCiBAQCAtMCwwICsxLDQwIEBACiArIyBDb3B5cmlnaHQgMjAwOSwgMjAx MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKCmRpZmYgLS1naXQgYS9nZGItZHRz LXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2ggYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQu cGF0Y2gKaW5kZXggODM4OGM4Ni4uY2JhMWE1YiAxMDA2NDQKLS0tIGEvZ2RiLWR0cy1yaGVsNi1w eXRob24tY29tcGF0LnBhdGNoCisrKyBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRj aApAQCAtMSwxMCArMSwxMCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVn LmNnaT9pZD0xMDIwMDA0CiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRp cmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODowNTo0 My4wNDY3NDYzNTEgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVj dG9yeS9NYWtlZmlsZS5pbgkyMDE1LTA1LTMxIDE4OjA1OjU4LjQ4Mzg0MTY1NSArMDIwMAotQEAg LTYwLDYgKzYwLDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDYzMC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMy OjEzLjc4ODE2NDA0MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRp cmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2ODE5ODg1MCArMDIwMAor QEAgLTYxLDYgKzYxLDggQEAKICAJZ2RiL2ZyYW1lcy5weSBcCiAgCWdkYi9GcmFtZUl0ZXJhdG9y LnB5IFwKICAJZ2RiL0ZyYW1lRGVjb3JhdG9yLnB5IFwKQEAgLTEzLDE4ICsxMywxOCBAQCBJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICAJ Z2RiL3R5cGVzLnB5IFwKICAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2RiL3Vud2luZGVyLnB5IFwK LUBAIC03Niw2ICs3OCw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitAQCAtNzcsNiArNzksNyBA QAogIAlnZGIvY29tbWFuZC9wcmV0dHlfcHJpbnRlcnMucHkgXAogIAlnZGIvY29tbWFuZC9wcm9t cHQucHkgXAogIAlnZGIvY29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFja3Ry YWNlLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKKyAJZ2RiL2Z1bmN0aW9uL2Fz X3N0cmluZy5weSBcCiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAotIAlnZGIvZnVuY3Rp b24vc3RyZm5zLnB5IFwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGli L2dkYi9GcmFtZVdyYXBwZXIucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0 aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTgu NDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIv Z2RiL0ZyYW1lV3JhcHBlci5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIwMAog QEAgLTAsMCArMSwxMjIgQEAKICsjIFdyYXBwZXIgQVBJIGZvciBmcmFtZXMuCiArCkBAIC0xNDgs MTAgKzE0OCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9n ZGIvRnJhbWVXcmFwcGVyLnB5CiArCiArICAgIGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFtZSk6 CiArICAgICAgICByZXR1cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFtZSkKLUluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5 CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE2LTA3LTAzIDE2OjMyOjE3 Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFj ZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJldHVybiBpdGVyCiArICAg IHJldHVybiBvbGRfZnJhbWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5 CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFu ZC9iYWNrdHJhY2UucHkJMjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2Uu cHkJMjAxNi0wNy0wMyAxNjozMjoxNy44NjkxOTg4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMTA2IEBA CiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTFvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5w YXRjaAppbmRleCBiMWMxMzFkLi41Yjg0ODU3IDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtMW9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5w YXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAxNi0wMi9tc2cwMDg0My5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMS82XSBmb3J0cmFu OiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKK1JFOiBbcGluZ10gW1BBVENIIHYy IDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcwor aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0 bWwKIAorRnJvbSA5OTM4MzQ0NjlmMWU2NGU1NDYxZTFlMWJlZjkxN2ZkMzg4ZmU0MjhlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgu dC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBUaHUsIDEyIE5vdiAyMDE1IDE1OjQ1OjUyICsw MTAwCitTdWJqZWN0OiBbUEFUQ0ggMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25h bCBzdWJhcnJheXMKIAogQWRkIGFuIGFyZ3VtZW50IGNvdW50IGZvciBzdWJyYW5nZSBleHByZXNz aW9ucyBpbiBGb3J0cmFuLgogQmFzZWQgb24gdGhlIGNvdW50ZWQgdmFsdWUgY2FsY3VsYXRlIGEg bmV3IGFycmF5IHdpdGggdGhlCkBAIC0zNiwxNyArMzksMTcgQEAgbmV3PiAkMyA9ICggKCAyMSwg MzEsIDQxKSAoIDIyLCAzMiwgNDIpICggMjMsIDMzLCA0MykgKQogCiBTaWduZWQtb2ZmLWJ5OiBD aHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0tLQot IGdkYi9ldmFsLmMgICB8IDMwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDMxNCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi9mLWV4 cC55ICB8ICAgMiArCi0gZ2RiL3ZhbG9wcy5jIHwgMTU3ICsrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLQorIGdkYi92YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdlZCwgMzc1IGluc2VydGlv bnMoKyksIDk1IGRlbGV0aW9ucygtKQorIDQgZmlsZXMgY2hhbmdlZCwgMzgwIGluc2VydGlvbnMo KyksIDk3IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFs LmMKLWluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CitpbmRleCBkZTFjNjYzLi4zNTgxNWE0 IDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwotQEAgLTM5OSwyOSAr Mzk5LDI1MyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVj dCB2YWx1ZSAqZWxlbWVudCwKK0BAIC0zOTksMjkgKzM5OSwyNTQgQEAgaW5pdF9hcnJheV9lbGVt ZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgdmFsdWUgKmVsZW1lbnQsCiAgICByZXR1 cm4gaW5kZXg7CiAgfQogIApAQCAtNjYsNDEgKzY5LDQ5IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMy NWYgMTAwNjQ0CiAtICBpbnQgcGMgPSAoKnBvcykgKyAxOwogKyAgaW50IGksIGRpbV9jb3VudCA9 IDA7CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSAgIHN0cnVjdCB0eXBlICpy YW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkp KSk7Ci0tICBlbnVtIGY5MF9yYW5nZV90eXBlIHJhbmdlX3R5cGUKLS0gICAgPSAoZW51bSBmOTBf cmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKy0g IHN0cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFs dWVfdHlwZSAoYXJyYXkpKSk7CistICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9 IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25z dCk7CiAtIAogLSAgKnBvcyArPSAzOworLQorLSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5E X0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGxvd19i b3VuZCA9IFRZUEVfTE9XX0JPVU5EIChyYW5nZSk7CistICBlbHNlCistICAgIGxvd19ib3VuZCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKSk7CiArICBzdHJ1Y3QgdmFsdWUgKm5ld19hcnJheSA9IGFycmF5OwogKyAgc3RydWN0IHR5 cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsK LSsgIHN0cnVjdCB0eXBlICp0ZW1wX3R5cGU7CisrICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGU7Cisr CisrICB0eXBlZGVmIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UKKysgIHsKKysgICAgZW51bSByYW5n ZV90eXBlIGY5MF9yYW5nZV90eXBlOworKyAgICBMT05HRVNUIGxvdywgaGlnaDsKKysgIH0gc3Vi c2NyaXB0X3JhbmdlOworKworKyAgdHlwZWRlZiBlbnVtIHN1YnNjcmlwdF9raW5kCisrICB7Cisr ICAgIFNVQlNDUklQVF9SQU5HRSwgICAgLyogZS5nLiAiKGxvd2JvdW5kOmhpZ2hib3VuZCkiICAq LworKyAgICBTVUJTQ1JJUFRfSU5ERVggICAgLyogZS5nLiAiKGxpdGVyYWwpIiAgKi8KKysgIH0g a2luZDsKICsKICsgIC8qIExvY2FsIHN0cnVjdCB0byBob2xkIHVzZXIgZGF0YSBmb3IgRm9ydHJh biBzdWJhcnJheSBkaW1lbnNpb25zLiAgKi8KICsgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUKICsg IHsKICsgICAgLyogRm9yIGV2ZXJ5IGRpbWVuc2lvbiwgd2UgYXJlIGVpdGhlciB3b3JraW5nIG9u IGEgcmFuZ2Ugb3IgYW4gaW5kZXgKICsgICAgICAgZXhwcmVzc2lvbiwgc28gd2Ugc3RvcmUgdGhp cyBpbmZvIHNlcGFyYXRlbHkgZm9yIGxhdGVyLiAgKi8KLSsgICAgZW51bQotKyAgICB7Ci0rICAg ICAgU1VCU0NSSVBUX1JBTkdFLCAgICAvKiBlLmcuICIobG93Ym91bmQ6aGlnaGJvdW5kKSIgICov Ci0rICAgICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFsKSIgICovCi0rICAg IH0ga2luZDsKKysgICAgZW51bSBzdWJzY3JpcHRfa2luZCBraW5kOwogKwogKyAgICAvKiBXZSBh bHNvIHN0b3JlIGVpdGhlciB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kIGluZm8sIG9yIHRoZSBp bmRleAogKyAgICAgICBudW1iZXIuICBCZWZvcmUgZXZhbHVhdGlvbiBvZiB0aGUgaW5wdXQgdmFs dWVzLCB3ZSBkbyBub3Qga25vdyBpZiB3ZSBhcmUKICsgICAgICAgYWN0dWFsbHkgd29ya2luZyBv biBhIHJhbmdlIG9mIHJhbmdlcywgb3IgYW4gaW5kZXggaW4gYSByYW5nZS4gIFNvIGFzIGEKICsg ICAgICAgZmlyc3Qgc3RlcCB3ZSBzdG9yZSBhbGwgaW5wdXQgaW4gYSB1bmlvbi4gIFRoZSBhcnJh eSBjYWxjdWxhdGlvbiBpdHNlbGYKICsgICAgICAgZGVhbHMgd2l0aCB0aGlzIGxhdGVyIG9uLiAg Ki8KLSsgICAgdW5pb24KKysgICAgdW5pb24gZWxlbWVudF9yYW5nZQogKyAgICB7Ci0rICAgICAg c3RydWN0IHN1YnNjcmlwdF9yYW5nZQotKyAgICAgIHsKLSsgICAgICAgIGVudW0gZjkwX3Jhbmdl X3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0rICAgICAgICBMT05HRVNUIGxvdywgaGlnaDsKLSsgICAg ICB9Ci0rICAgICAgcmFuZ2U7CisrICAgICAgc3Vic2NyaXB0X3JhbmdlIHJhbmdlOwogKyAgICAg IExPTkdFU1QgbnVtYmVyOwotKyAgICB9OworKyAgICB9IFU7CiArICB9ICpzdWJzY3JpcHRfYXJy YXk7CiArCiArICAvKiBDaGVjayBpZiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBwcm92aWRlZCBi eSB0aGUgdXNlciBtYXRjaGVzCkBAIC0xMDksNyArMTIwLDcgQEAgaW5kZXggNzhhZDk0Ni4uYzlm MzI1ZiAxMDA2NDQKICsgIGlmIChuYXJncyAhPSBjYWxjX2Y3N19hcnJheV9kaW1zICh2YWx1ZV90 eXBlIChuZXdfYXJyYXkpKSkKICsgICAgZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3Jp cHRzIikpOwogKwotKyAgc3Vic2NyaXB0X2FycmF5ID0gYWxsb2NhIChzaXplb2YgKCpzdWJzY3Jp cHRfYXJyYXkpICogbmFyZ3MpOworKyAgc3Vic2NyaXB0X2FycmF5ID0gKHN0cnVjdCBzdWJzY3Jp cHRfc3RvcmUqKSBhbGxvY2EgKHNpemVvZiAoKnN1YnNjcmlwdF9hcnJheSkgKiBuYXJncyk7CiAr CiArICAvKiBQYXJzZSB0aGUgdXNlciBpbnB1dCBpbnRvIHRoZSBTVUJTQ1JJUFRfQVJSQVkgdG8g c3RvcmUgaXQuICBXZSBuZWVkCiArICAgICB0byBldmFsdWF0ZSBpdCBmaXJzdCwgYXMgdGhlIGlu cHV0IGlzIGZyb20gbGVmdC10by1yaWdodC4gIFRoZQpAQCAtMTIyLDIyICsxMzMsMjIgQEAgaW5k ZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICsgICAgewogKyAgICAgIHN0cnVjdCBzdWJzY3Jp cHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKICAKLS0gIGlmIChyYW5nZV90 eXBlID09IExPV19CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZB VUxUKQotLSAgICBsb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2UpOworLSAgaWYgKHJh bmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VO RF9ERUZBVUxUKQorLSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7CiAt ICBlbHNlCi0tICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAo TlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CistICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9h c19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwog KyAgICAgIC8qIFRoZSB1c2VyIGlucHV0IGlzIGEgcmFuZ2UsIHdpdGggb3Igd2l0aG91dCBsb3dl ciBhbmQgdXBwZXIgYm91bmQuCiArCSBFLmcuOiAicCBhcnJ5KDI6NSkiLCAicCBhcnJ5KCA6NSki LCAicCBhcnJ5KCA6ICkiLCBldGMuICAqLwotKyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bj b2RlID09IE9QX0Y5MF9SQU5HRSkKKysgICAgICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9 PSBPUF9SQU5HRSkKICsJewogKwkgIGludCBwYyA9ICgqcG9zKSArIDE7Ci0rCSAgc3RydWN0IHN1 YnNjcmlwdF9yYW5nZSAqcmFuZ2U7CisrCSAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsKICsKICsJ ICBpbmRleC0+a2luZCA9IFNVQlNDUklQVF9SQU5HRTsKLSsJICByYW5nZSA9ICZpbmRleC0+cmFu Z2U7CisrCSAgcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7CiArCiArCSAgKnBvcyArPSAzOwotKwkg IHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxv bmdjb25zdCk7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkg bG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKICsKICsJICAvKiBJZiBh IGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgdGhlIGJpdCBoYXMgYmVlbgog KwkgICAgIHNldCBhbmQgd2UgY2FuIGFzc2lnbiB0aGUgdmFsdWUgZnJvbSB0aGUgZWx0IHN0YWNr LiAgU2FtZSBmb3IKQEAgLTE1NSwxNyArMTY2LDEzIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYg MTAwNjQ0CiArICAgICAgZWxzZQogKwl7CiArCSAgc3RydWN0IHZhbHVlICp2YWw7Ci0gCi0tICBp ZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RI X0JPVU5EX0RFRkFVTFQpCi0tICAgIGhpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKHJhbmdl KTsKLS0gIGVsc2UKLS0gICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1 YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CisrCiArCSAgaW5kZXgtPmtpbmQg PSBTVUJTQ1JJUFRfSU5ERVg7CiArCiArCSAgLyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0 IG11c3QgYmUgYSBsZWdhbCBpbnRlZ2VyIGluIEY3Ny4gIFRoaXMKICsJICAgICBlbnN1cmVzIHRo ZSB2YWxpZGl0eSBvZiB0aGUgcHJvdmlkZWQgaW5kZXguICAqLwogKwkgIHZhbCA9IGV2YWx1YXRl X3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKLSsJICBpbmRleC0+bnVt YmVyID0gdmFsdWVfYXNfbG9uZyAodmFsKTsKKysJICBpbmRleC0+VS5udW1iZXIgPSB2YWx1ZV9h c19sb25nICh2YWwpOwogKwl9CiArCiArICAgIH0KQEAgLTE4OCw3ICsxOTUsNyBAQCBpbmRleCA3 OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogKwkgICAgICAgdHJlYXQgYW55IHN1YnNlcXVlbnQgdXNl ciBlbnRyeSBhcyBhIHJhbmdlLiAgV2Ugc2ltcGx5CiArCSAgICAgICBpbmNyZW1lbnQgRElNX0NP VU5UIHdoaWNoIHRlbGxzIHVzIGhvdyBtYW55IHRpbWVzIHdlIGFyZQogKwkgICAgICAgY2FsbGlu ZyBWQUxVRV9TTElDRV8xLiAgKi8KLSsJICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdl ID0gJmluZGV4LT5yYW5nZTsKKysJICAgIHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgt PlUucmFuZ2U7CiArCiArCSAgICAvKiBJZiBubyBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkg dGhlIHVzZXIsIHdlIHRha2UgdGhlCiArCSAgICAgICBkZWZhdWx0IGJvdW5kYXJ5LiAgU2FtZSBm b3IgdGhlIGhpZ2ggYm91bmQuICAqLwpAQCAtMjMyLDE5ICsyMzksMTkgQEAgaW5kZXggNzhhZDk0 Ni4uYzlmMzI1ZiAxMDA2NDQKICsJICAgICAgIHRvIGdldCB0aGUgdmFsdWUgb2Zmc2V0IHJpZ2h0 LiAgKi8KICsJICAgIGlmIChkaW1fY291bnQgPT0gMCkKICsJICAgICAgbmV3X2FycmF5Ci0rCSAg ICAgICAgPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgtPm51bWJl ciwKKysJICAgICAgICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRl eC0+VS5udW1iZXIsCiArCQkJCQkgICAgZjc3X2dldF9sb3dlcmJvdW5kICh2YWx1ZV90eXBlCiAr CQkJCQkJCQkgIChuZXdfYXJyYXkpKSk7CiArCSAgICBlbHNlCiArCSAgICAgIHsKICsJCS8qIENo ZWNrIGZvciB2YWxpZCBpbmRleCBpbnB1dC4gICovCi0rCQlpZiAoaW5kZXgtPm51bWJlciA8IFRZ UEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQotKwkJICAgIHx8IGluZGV4LT5udW1iZXIgPiBUWVBF X0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQorKwkJaWYgKGluZGV4LT5VLm51bWJlciA8IFRZUEVf TE9XX0JPVU5EIChpbmRleF90eXBlKQorKwkJICAgIHx8IGluZGV4LT5VLm51bWJlciA+IFRZUEVf SElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCiArCQkgIGVycm9yIChfKCJlcnJvciBubyBzdWNoIHZl Y3RvciBlbGVtZW50IikpOwogKwogKwkJZGltX2NvdW50Kys7CiArCQluZXdfYXJyYXkgPSB2YWx1 ZV9zbGljZV8xIChuZXdfYXJyYXksCi0rCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPm51 bWJlciksCisrCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPlUubnVtYmVyKSwKICsJCQkJ CSAgIDEsIC8qIGxlbmd0aCBpcyAnMScgZWxlbWVudCAgKi8KICsJCQkJCSAgIGRpbV9jb3VudCk7 CiArCSAgICAgIH0KQEAgLTI3MCwxMCArMjc3LDEwIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYg MTAwNjQ0CiArICBpZiAoZGltX2NvdW50ID4gMSkKICsgICAgewogKyAgICAgIHN0cnVjdCB2YWx1 ZSAqdiA9IE5VTEw7CisrCisrICAgICAgZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh2YWx1 ZV90eXBlIChuZXdfYXJyYXkpKTsKICAKIC0gIHJldHVybiB2YWx1ZV9zbGljZSAoYXJyYXksIGxv d19ib3VuZCwgaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpOwotKyAgICAgIHRlbXBfdHlwZSA9 IFRZUEVfVEFSR0VUX1RZUEUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwotKwogKyAgICAgIC8q IEV2ZXJ5IFNVQlNDUklQVF9SQU5HRSBpbiB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMgYW4gYWN0 dWFsIHJhbmdlIGluCiArCSB0aGUgb3V0cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2UgdGhlIFNV QlNDUklQVF9BUlJBWSBhZ2FpbiwgbG9va2luZwogKwkgZm9yIGEgcmFuZ2UgZW50cnkuICBXaGVu IHdlIGZpbmQgb25lLCB3ZSB1c2UgdGhlIHJhbmdlIGluZm8gdG8gY3JlYXRlCkBAIC0yODksMjYg KzI5NiwyNSBAQCBpbmRleCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogKwogKwkgICAgICByYW5n ZV90eXBlCiArCQk9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwKLSsJCQkJICAgICB0 ZW1wX3R5cGUsCi0rCQkJCSAgICAgMSwKLSsJCQkJICAgICBpbmRleC0+cmFuZ2UuaGlnaCAtIGlu ZGV4LT5yYW5nZS5sb3cgKyAxKTsKKysJCQkJCSAgICBlbHRfdHlwZSwKKysJCQkJCSAgICAxLAor KwkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmhpZ2gKKysJCQkJCSAgICAgIC0gaW5kZXgtPlUucmFu Z2UubG93ICsgMSk7CiArCiArCSAgICAgIGludGVyaW1fYXJyYXlfdHlwZSA9IGNyZWF0ZV9hcnJh eV90eXBlIChOVUxMLAotKwkJCQkJCSAgICAgIHRlbXBfdHlwZSwKKysJCQkJCQkgICAgICBlbHRf dHlwZSwKICsJCQkJCQkgICAgICByYW5nZV90eXBlKTsKICsKLSsJICAgICAgLyogRm9yIHNvbWUg cmVhc29uIHRoZSB0eXBlIGNvZGUgb2YgdGhlIGNvbnRlbnRzIGlzIG1pc3NpbmcsIHNvCi0rCQkg cmVzZXQgaXQgZnJvbSB0aGUgb3JpZ2luYWwgYXJyYXkuICAqLwogKwkgICAgICBUWVBFX0NPREUg KGludGVyaW1fYXJyYXlfdHlwZSkKICsJCT0gVFlQRV9DT0RFICh2YWx1ZV90eXBlIChuZXdfYXJy YXkpKTsKICsKICsJICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChpbnRlcmltX2FycmF5X3R5cGUp OwogKwotKwkgICAgICB0ZW1wX3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKKysJICAgICAgZWx0X3R5 cGUgPSB2YWx1ZV90eXBlICh2KTsKICsJICAgIH0KICsKICsJfQotKyAgICAgIHZhbHVlX2NvbnRl bnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKHRlbXBfdHlwZSkpOwor KyAgICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5H VEggKGVsdF90eXBlKSk7CiArICAgICAgcmV0dXJuIHY7CiArICAgIH0KICsKQEAgLTMxNiwyNCAr MzIyLDI0IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAgfQogIAogIAotQEAgLTE4 MTAsMTQgKzIwMzQsMTEgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAq ZXhwZWN0X3R5cGUsCitAQCAtMTgxMCwxNCArMjAzNSwxMSBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgICBzd2l0Y2ggKGNvZGUpCiAg CXsKICAJY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0tCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNv ZGUgPT0gT1BfRjkwX1JBTkdFKQorLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9Q X1JBTkdFKQogLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3Ms IG5vc2lkZSk7CiAtCSAgZWxzZQogLQkgICAgZ290byBtdWx0aV9mNzdfc3Vic2NyaXB0OwogKwkg IHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRl KTsKICAKICAJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotIAkgIGlmIChleHAtPmVsdHNbKnBvc10u b3Bjb2RlID09IE9QX0Y5MF9SQU5HRSkKKyAJICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9 PSBPUF9SQU5HRSkKIC0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwg cG9zLCBub3NpZGUpOwogKwkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhw LCBwb3MsIDEsIG5vc2lkZSk7CiAgCSAgZWxzZQogIAkgICAgewogIAkgICAgICBhcmcyID0gZXZh bHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotQEAgLTIyMjIs NDkgKzI0NDMsNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBl Y3RfdHlwZSwKK0BAIC0yMjIyLDQ5ICsyNDQ0LDYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCX0KICAgICAgICByZXR1cm4gKGFyZzEpOwog IApAQCAtMzgzLDcgKzM4OSw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAgICAg IGNhc2UgQklOT1BfTE9HSUNBTF9BTkQ6CiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAo TlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKICAgICAgICBpZiAobm9zaWRlID09IEVWQUxf U0tJUCkKLUBAIC0zMTIxLDYgKzMyOTksOSBAQCBjYWxjX2Y3N19hcnJheV9kaW1zIChzdHJ1Y3Qg dHlwZSAqYXJyYXlfdHlwZSkKK0BAIC0zMTIyLDYgKzMzMDEsOSBAQCBjYWxjX2Y3N19hcnJheV9k aW1zIChzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSkKICAgIGludCBuZGltZW4gPSAxOwogICAgc3Ry dWN0IHR5cGUgKnRtcF90eXBlOwogIApAQCAtMzk0LDEwICs0MDAsMTAgQEAgaW5kZXggNzhhZDk0 Ni4uYzlmMzI1ZiAxMDA2NDQKICAgICAgZXJyb3IgKF8oIkNhbid0IGdldCBkaW1lbnNpb25zIGZv ciBhIG5vbi1hcnJheSB0eXBlIikpOwogIAogZGlmZiAtLWdpdCBhL2dkYi9mLWV4cC55IGIvZ2Ri L2YtZXhwLnkKLWluZGV4IDRmYWFjMzIuLjkzNDNhYmIgMTAwNjQ0CitpbmRleCBlMzE0OGEzLi5k YzEzMWMxIDEwMDY0NAogLS0tIGEvZ2RiL2YtZXhwLnkKICsrKyBiL2dkYi9mLWV4cC55Ci1AQCAt MzA4LDYgKzMwOCw4IEBAIGFyZ2xpc3QgOglzdWJyYW5nZQorQEAgLTI1Myw2ICsyNTMsOCBAQCBh cmdsaXN0IDoJc3VicmFuZ2UKICAgICAKICBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXBy ZWMgQUJPVkVfQ09NTUEKICAJCQl7IGFyZ2xpc3RfbGVuKys7IH0KQEAgLTQwNywxMCArNDEzLDEw IEBAIGluZGV4IDRmYWFjMzIuLjkzNDNhYmIgMTAwNjQ0CiAgCiAgLyogVGhlcmUgYXJlIGZvdXIg c29ydHMgb2Ygc3VicmFuZ2UgdHlwZXMgaW4gRjkwLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvdmFs b3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CitpbmRl eCA3MWZiMWIzLi44MTdhNGNmIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiArKysgYi9nZGIv dmFsb3BzLmMKLUBAIC0zNzU5LDU2ICszNzU5LDE1MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAo Y29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitAQCAtMzc2Niw1NiArMzc2NiwxNTMg QEAgdmFsdWVfb2ZfdGhpc19zaWxlbnQgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5n KQogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGlu dCBsb3dib3VuZCwgaW50IGxlbmd0aCkKICB7CkBAIC00MjAsNyArNDI2LDkgQEAgaW5kZXggNWEy NDRhOS4uMDllYTg3NyAxMDA2NDQKICsgIHJldHVybiB2YWx1ZV9zbGljZV8xIChhcnJheSwgbG93 Ym91bmQsIGxlbmd0aCwgMSk7CiArfQogKwotKy8qIENBTExfQ09VTlQgaXMgdXNlZCB0byBkZXRl cm1pbmUgaWYgd2UgYXJlIGNhbGxpbmcgdGhlIGZ1bmN0aW9uIG9uY2UsIGUuZy4KKysvKiBWQUxV RV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRl IHRoZSBudW1iZXIKKysgICBvZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQg ZXhwcmVzc2lvbi4KKysgICBDQUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFy ZSBjYWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcuCiArICAgd2UgYXJlIHdvcmtpbmcgb24g dGhlIGN1cnJlbnQgZGltZW5zaW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2FsbGluZwogKyAg IHRoZSBmdW5jdGlvbiByZXBlYXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0 YWtlIGVsZW1lbnRzCiArICAgZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVkuCkBAIC01MTUs NyArNTIzLDcgQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsgICAgICBkb25lIHdp dGggaXQuICAqLwogIAogKyAgc2xpY2VfcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2Vf dHlwZSAoTlVMTCwgVFlQRV9UQVJHRVRfVFlQRSAocmFuZ2VfdHlwZSksCi0rCQkJCQlhcnlfbG93 X2JvdW5kLCBzbGljZV9yYW5nZV9zaXplKTsKKysJCQkJCSAgICAgICBhcnlfbG93X2JvdW5kLCBz bGljZV9yYW5nZV9zaXplKTsKICAgIHsKIC0gICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9 IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwogLSAgICBMT05HRVNUIG9mZnNldApAQCAt NTk0LDcgKzYwMiw3IEBAIGluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CiAgCiAgLyogQ3Jl YXRlIGEgdmFsdWUgZm9yIGEgRk9SVFJBTiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0 IG9mIHRoZQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDJl YWM1ZWYuLjM0MDA0NjAgMTAwNjQ0CitpbmRleCBmOGVjODU0Li45NTU4OGFmIDEwMDY0NAogLS0t IGEvZ2RiL3ZhbHVlLmgKICsrKyBiL2dkYi92YWx1ZS5oCiBAQCAtMTA1Niw2ICsxMDU2LDggQEAg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFyeWluZ190b19zbGljZSAoc3RydWN0IHZhbHVlICopOwpA QCAtNjA3LDUgKzYxNSw1IEBAIGluZGV4IDJlYWM1ZWYuLjM0MDA0NjAgMTAwNjQ0CiAgCQkJCQkg ICAgc3RydWN0IHR5cGUgKik7CiAgCiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEv Z2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtMm9mNi5wYXRjaAppbmRleCBiZjQ4MTQzLi5iNDEwMGZlIDEwMDY0NAotLS0gYS9nZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtMm9mNi5wYXRjaApAQCAtMSwxMCArMSwxMyBAQAotaHR0cDovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMTYtMDIvbXNnMDA4NDEuaHRtbAotU3ViamVjdDogW1BBVENIIHYy IDIvNl0gZm9ydHJhbjogY29tYmluZSBzdWJhcnJheSBhbmQgc3RyaW5nIGNvbXB1dGF0aW9uCitS RTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFy cmF5cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAxNi0wNy9tc2cwMDAwOS5odG1sCiAKK0Zyb20gNzMzYjNiNjBiZTVjOGQyM2ZhN2U0NzQ5OGQz NWU0NzAxNTI4ZjNhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9waCBX ZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTogRnJpLCAxMyBO b3YgMjAxNSAwOTowMDozMyArMDEwMAorU3ViamVjdDogW1BBVENIIDIvNl0gZm9ydHJhbjogY29t YmluZSBzdWJhcnJheSBhbmQgc3RyaW5nIGNvbXB1dGF0aW9uCiAKLVN0cmluZ3Mgb25seSBoYXZl IG9uZSBkaW1lbnNpb24sIGJ1dCB0aGUgZWxlbWVudCBjb21wdXRhdGlvbiBpcwotaWRlbnRpY2Fs IHRvIHRoZSBzdWJhcnJheSBjb21wdXRhdGlvbiBmb3IgcmFuZ2VzIGFuZCBpbmRpY2VzLgorU3Ry aW5ncyB0eXBlcyBhcmUgaGFuZGxlZCBsaWtlIGFycmF5IHR5cGVzIHdpdGggb25seSBvbmUgZGlt ZW5zaW9uLgorVGhlcmVmb3JlIHRoZSBzYW1lIGFsZ29yaXRobSB0byBjYWxjdWxhdGUgc3Vic2V0 cyBpcyB1c2VkLgogCiAyMDEzLTExLTI2ICBDaHJpc3RvcGggV2Vpbm1hbm4gIDxjaHJpc3RvcGgu dC53ZWlubWFubkBpbnRlbC5jb20+CiAKQEAgLTE5LDI3ICsyMiwyNyBAQCBTaWduZWQtb2ZmLWJ5 OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KICAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDkgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1n aXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotaW5kZXggYzlmMzI1Zi4uMTY0ZDdhYiAxMDA2 NDQKK2luZGV4IDM1ODE1YTQuLjVjMjBmZWUgMTAwNjQ0CiAtLS0gYS9nZGIvZXZhbC5jCiArKysg Yi9nZGIvZXZhbC5jCi1AQCAtMjAzNCwxNiArMjAzNCw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFu ZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIwMzUsMTYgKzIwMzUsOCBAQCBl dmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAg ICBzd2l0Y2ggKGNvZGUpCiAgCXsKICAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CiAtCSAgcmV0dXJu IHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogLQog IAljYXNlIFRZUEVfQ09ERV9TVFJJTkc6Ci0tCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUg PT0gT1BfRjkwX1JBTkdFKQorLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JB TkdFKQogLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIDEs IG5vc2lkZSk7CiAtCSAgZWxzZQogLQkgICAgewogLQkgICAgICBhcmcyID0gZXZhbHVhdGVfc3Vi ZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwogLQkgICAgICByZXR1cm4gdmFs dWVfc3Vic2NyaXB0IChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7CiAtCSAgICB9Ci0rCSAg cmV0dXJuICB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRl KTsKKysJICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3Ms IG5vc2lkZSk7CiAgCiAgCWNhc2UgVFlQRV9DT0RFX1BUUjoKICAJY2FzZSBUWVBFX0NPREVfRlVO QzoKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtM29mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCmlu ZGV4IDUwYTY1ODIuLjRlNGRlN2QgMTAwNjQ0Ci0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRl bC0zb2Y2LnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCkBA IC0xLDcgKzEsMTAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2 LTAyL21zZzAwODQ1Lmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiAzLzZdIGZvcnRyYW46IGNoYW5n ZSBzdWJyYW5nZSBlbnVtIHRvIGJpdCBmaWVsZAorUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBm b3J0cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCitodHRwczov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAogCitG cm9tIDA1OGVkOWU1NWRiNzIyNDRmZTFjNTM0NmExMWZhNjdlZmY2MWQzMTggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCiBGcm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5t YW5uQGludGVsLmNvbT4KK0RhdGU6IE1vbiwgMjMgTm92IDIwMTUgMTA6MzE6NDQgKzAxMDAKK1N1 YmplY3Q6IFtQQVRDSCAzLzZdIGZvcnRyYW46IGNoYW5nZSBzdWJyYW5nZSBlbnVtIHRvIGJpdCBm aWVsZAogCiBDaGFuZ2UgRm9ydHJhbiBzdWJyYW5nZSBlbnVtIGZvciBzdWJyYW5nZSBleHByZXNz aW9ucyB0bwogcmVwcmVzZW50IGEgYml0ZmllbGQgZm9yIGVhc2llciBtYW5pcHVsYXRpb24uICBD b25zZXF1ZW50bHkKQEAgLTEyLDMxICsxNSw0MSBAQCBiZWhhdmlvdXIgb2YgR0RCIGlzIHVuY2hh bmdlZC4KIAogCSogZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBDaGFuZ2UgZXZhbHVhdGlv biBvZiB0aGUKIAlzdWJhcnJheSBib3VuZGFyaWVzLiAgU2V0IGJvdW5kYXJpZXMgdG8gYmUgZWl0 aGVyIHVzZXIKLQlwcm92aWRlZCAoYml0IGluIGY5MF9yYW5nZV90eXBlIHdhcyBzZXQpIG9yIHRh a2UgdGhlCi0JZGVmYXVsdCB2YWx1ZSBpZiB0aGUgYm91bmRhcnkgd2FzIG5vdCBwcm92aWRlZCBi eSB0aGUgdXNlci4KKwlwcm92aWRlZCAoYml0IGluIHJhbmdlX3R5cGUgd2FzIHNldCksIG9yIHRh a2UgdGhlIGRlZmF1bHQKKwl2YWx1ZSBpZiB0aGUgYm91bmRhcnkgd2FzIG5vdCBwcm92aWRlZCBi eSB0aGUgdXNlci4KKwkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6IEFsdGVy IGJvdW5kYXJ5IGNvbS0KKwlwdXRhdGlvbnMgdG8gdXNlIHVwZGF0ZWQgcmFuZ2VfdHlwZSBlbnVt LgorCSogZXhwcHJpbnQuaCAoZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCk6IERpdG8uCisJKiBl eHByZXNzaW9uLmggKHJhbmdlX3R5cGUpOiBDaGFuZ2UgdGhlIGVudW0gdG8gdXNlIGJpdAorCXZh bHVlcyBmb3IgZWFjaCBib3VuZGFyeSwgaWYgc2V0IGJ5IHRoZSB1c2VyLgogCSogZi1leHAueSAo c3VicmFuZ2UpOiBDaGFuZ2UgcnVsZXMgZm9yIHN1YnJhbmdlIGV4cHJlc3Npb25zCiAJdG8gd3Jp dGUgdGhlIHJlbGV2YW50IGJpdCBzZXF1ZW5jZSBvbnRvIHRoZSBlbHQgc3RhY2suCi0JKiBmLWxh bmcuaCAoZjkwX3JhbmdlX3R5cGUpOiBDaGFuZ2UgdGhlIGVudW0gdG8gdXNlIGJpdAotCXZhbHVl cyBmb3IgZWFjaCBib3VuZGFyeSwgaWYgc2V0IGJ5IHRoZSB1c2VyLgotCSogcGFyc2UuYyAob3Bl cmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogSW4gY2FzZSBvZgotCU9QX0Y5MF9SQU5HRSBjaGFuZ2Ug dGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBudW1iZXIgb2YKLQlhcmd1bWVudHMgb24gdGhlIGVsdCBz dGFjaywgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2YKLQlib3VuZGFyaWVzIHByb3ZpZGVkIGJ5 IHRoZSB1c2VyLgorCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogSW4gY2Fz ZSBvZiBPUF9SQU5HRQorCWNoYW5nZSB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIG51bWJlciBvZglh cmd1bWVudHMgb24gdGhlCisJZWx0IHN0YWNrLCBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBi b3VuZGFyaWVzIHByb3ZpZGVkCisJYnkgdGhlIHVzZXIuCisJKiBydXN0LWV4cC55IChjb252ZXJ0 X2FzdF90b19leHByZXNzaW9uKTogTW9kaWZ5IGNhbGN1bGEtCisJdGlvbiBvZiBzdWJzY3JpcHQg ZWxlbWVudHMgdG8gdXNlIGFsdGVyZWQgcmFuZ2VfdHlwZS4KKwkqIHJ1c3QtbGFuZy5jIChydXN0 X3JhbmdlKTogRGl0by4KKwkqIHJ1c3QtbGFuZy5jIChydXN0X3N1YnNjcmlwdCk6IERpdG8uCiAK IAogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFu bkBpbnRlbC5jb20+CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxNCArKysrKystLS0tLS0tLQotIGdk Yi9mLWV4cC55ICB8IDExICsrKysrKy0tLS0tCi0gZ2RiL2YtbGFuZy5oIHwgIDYgKystLS0tCi0g Z2RiL3BhcnNlLmMgIHwgMjEgKysrKysrKystLS0tLS0tLS0tLS0tCi0gNCBmaWxlcyBjaGFuZ2Vk LCAyMiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKKyBnZGIvZXZhbC5jICAgICAgIHwg MTQgKysrKysrLS0tLS0tLS0KKyBnZGIvZXhwcHJpbnQuYyAgIHwgMjAgKysrKysrKystLS0tLS0t LS0tLS0KKyBnZGIvZXhwcmVzc2lvbi5oIHwgMTUgKysrKysrLS0tLS0tLS0tCisgZ2RiL2YtZXhw LnkgICAgICB8IDExICsrKysrKy0tLS0tCisgZ2RiL3BhcnNlLmMgICAgICB8IDIxICsrKysrKysr LS0tLS0tLS0tLS0tLQorIGdkYi9ydXN0LWV4cC55ICAgfCAxMiArKystLS0tLS0tLS0KKyBnZGIv cnVzdC1sYW5nLmMgIHwgMTcgKysrKysrKystLS0tLS0tLS0KKyA3IGZpbGVzIGNoYW5nZWQsIDQ1 IGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwu YyBiL2dkYi9ldmFsLmMKLWluZGV4IDE2NGQ3YWIuLjliOGIwNTEgMTAwNjQ0CitpbmRleCA1YzIw ZmVlLi40NGU4NjAwIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwot QEAgLTQ4MCwxMiArNDgwLDEyIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICph cnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00ODIsMTIgKzQ4MiwxMiBAQCB2YWx1 ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpl eHAsCiAgCSAgLyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHRo ZSBiaXQgaGFzIGJlZW4KICAJICAgICBzZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVlIGZy b20gdGhlIGVsdCBzdGFjay4gIFNhbWUgZm9yCiAgCSAgICAgdXBwZXIgYm91bmQuICAqLwpAQCAt NTMsNyArNjYsNyBAQCBpbmRleCAxNjRkN2FiLi45YjhiMDUxIDEwMDY0NAogIAkgICAgcmFuZ2Ut PmhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAog IAkJCQkJCQkgIHBvcywgbm9zaWRlKSk7CiAgCX0KLUBAIC01MjYsMTIgKzUyNiwxMCBAQCB2YWx1 ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpl eHAsCitAQCAtNTI4LDEyICs1MjgsMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAogIAkgICAgLyogSWYgbm8gbG93 ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB3ZSB0YWtlIHRoZQogIAkgICAgICAg ZGVmYXVsdCBib3VuZGFyeS4gIFNhbWUgZm9yIHRoZSBoaWdoIGJvdW5kLiAgKi8KQEAgLTY4LDcw ICs4MSwxMzUgQEAgaW5kZXggMTY0ZDdhYi4uOWI4YjA1MSAxMDA2NDQKICAJICAgICAgcmFuZ2Ut PmhpZ2ggPSBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpOwogIAogIAkgICAgLyogQm90aCB1 c2VyIHByb3ZpZGVkIGxvdyBhbmQgaGlnaCBib3VuZCBoYXZlIHRvIGJlIGluc2lkZSB0aGUKK2Rp ZmYgLS1naXQgYS9nZGIvZXhwcHJpbnQuYyBiL2dkYi9leHBwcmludC5jCitpbmRleCBjMzdlY2Iw Li4yMTRkNThlIDEwMDY0NAorLS0tIGEvZ2RiL2V4cHByaW50LmMKKysrKyBiL2dkYi9leHBwcmlu dC5jCitAQCAtNTY4LDEyICs1NjgsMTAgQEAgcHJpbnRfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKKyAJKnBvcyArPSAyOworIAorIAlmcHV0c19maWx0 ZXJlZCAoIlJBTkdFKCIsIHN0cmVhbSk7CistCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRf REVGQVVMVAorLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlm ICgocmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5E KQorIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7 CisgCWZwdXRzX2ZpbHRlcmVkICgiLi4iLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlwZSA9PSBM T1dfQk9VTkRfREVGQVVMVAorLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFV TFQpCisrCWlmICgocmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IFNVQkFSUkFZ X0hJR0hfQk9VTkQpCisgCSAgcHJpbnRfc3ViZXhwIChleHAsIHBvcywgc3RyZWFtLCBQUkVDX0FC T1ZFX0NPTU1BKTsKKyAJZnB1dHNfZmlsdGVyZWQgKCIpIiwgc3RyZWFtKTsKKyAJcmV0dXJuOwor QEAgLTEwNTUsMTYgKzEwNTMsMTYgQEAgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCAoc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKKyAKKyAJc3dpdGNoIChyYW5nZV90eXBlKQorIAkgIHsKKy0JICBj YXNlIEJPVEhfQk9VTkRfREVGQVVMVDoKKysJICBjYXNlIFNVQkFSUkFZX05PTkVfQk9VTkQ6Cisg CSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICcuLiciLCBzdHJlYW0pOworIAkgICAgYnJlYWs7 CistCSAgY2FzZSBMT1dfQk9VTkRfREVGQVVMVDoKKysJICBjYXNlIFNVQkFSUkFZX0hJR0hfQk9V TkQ6CisgCSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICcuLkVYUCciLCBzdHJlYW0pOworIAkg ICAgYnJlYWs7CistCSAgY2FzZSBISUdIX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJB WV9MT1dfQk9VTkQ6CisgCSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLiciLCBzdHJl YW0pOworIAkgICAgYnJlYWs7CistCSAgY2FzZSBOT05FX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2Fz ZSAoU1VCQVJSQVlfTE9XX0JPVU5EIHwgU1VCQVJSQVlfSElHSF9CT1VORCk6CisgCSAgICBmcHV0 c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLkVYUCciLCBzdHJlYW0pOworIAkgICAgYnJlYWs7Cisg CSAgZGVmYXVsdDoKK0BAIC0xMDcyLDExICsxMDcwLDkgQEAgZHVtcF9zdWJleHBfYm9keV9zdGFu ZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKKyAJICAgIGJyZWFrOworIAkgIH0KKyAKKy0J aWYgKHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUCistCSAgICB8fCByYW5nZV90eXBl ID09IE5PTkVfQk9VTkRfREVGQVVMVCkKKysJaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlfTE9X X0JPVU5EKSA9PSBTVUJBUlJBWV9MT1dfQk9VTkQpCisgCSAgZWx0ID0gZHVtcF9zdWJleHAgKGV4 cCwgc3RyZWFtLCBlbHQpOworLQlpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVAor LQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2Vf dHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgCSAg ZWx0ID0gZHVtcF9zdWJleHAgKGV4cCwgc3RyZWFtLCBlbHQpOworICAgICAgIH0KKyAgICAgICBi cmVhazsKK2RpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAor aW5kZXggNDk1MmQ4NC4uNWE2YjcyMCAxMDA2NDQKKy0tLSBhL2dkYi9leHByZXNzaW9uLmgKKysr KyBiL2dkYi9leHByZXNzaW9uLmgKK0BAIC0xNTIsMTcgKzE1MiwxNCBAQCBleHRlcm4gdm9pZCBk dW1wX3Jhd19leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLAorIAkJCQkgc3RydWN0IHVp X2ZpbGUgKiwgY2hhciAqKTsKKyBleHRlcm4gdm9pZCBkdW1wX3ByZWZpeF9leHByZXNzaW9uIChz dHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKKyAKKy0vKiBJbiBhbiBPUF9S QU5HRSBleHByZXNzaW9uLCBlaXRoZXIgYm91bmQgY291bGQgYmUgZW1wdHksIGluZGljYXRpbmcK Ky0gICB0aGF0IGl0cyB2YWx1ZSBpcyBieSBkZWZhdWx0IHRoYXQgb2YgdGhlIGNvcnJlc3BvbmRp bmcgYm91bmQgb2YgdGhlCistICAgYXJyYXkgb3Igc3RyaW5nLiAgU28gd2UgaGF2ZSBmb3VyIHNv cnRzIG9mIHN1YnJhbmdlLiAgVGhpcworLSAgIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRp ZnkgdGhpcy4gICovCistICAgCisrLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVy IGJvdW5kIGNhbiBiZSBwcm92aWRlZCBieSB0aGUgdXNlciwgb3Igbm90LgorKyAgIFRoaXMgZW51 bWVyYXRpb24gdHlwZSBpcyB0byBpZGVudGlmeSB0aGlzLiAgKi8KKysKKyBlbnVtIHJhbmdlX3R5 cGUKKyAgIHsKKy0gICAgQk9USF9CT1VORF9ERUZBVUxULAkJLyogIig6KSIgICovCistICAgIExP V19CT1VORF9ERUZBVUxULAkJLyogIig6aGlnaCkiICAqLworLSAgICBISUdIX0JPVU5EX0RFRkFV TFQsCQkvKiAiKGxvdzopIiAgKi8KKy0gICAgTk9ORV9CT1VORF9ERUZBVUxUCQkvKiAiKGxvdzpo aWdoKSIgICovCisrICAgIFNVQkFSUkFZX05PTkVfQk9VTkQgPSAweDAsCQkvKiAiKCA6ICkiICAq LworKyAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KKysgICAg U1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLworICAgfTsKKyAKKyAj ZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJT05fSCkgKi8KIGRpZmYgLS1naXQgYS9nZGIvZi1l eHAueSBiL2dkYi9mLWV4cC55Ci1pbmRleCA5MzQzYWJiLi5iMTIwNmRlIDEwMDY0NAoraW5kZXgg ZGMxMzFjMS4uZTJjNTRiNiAxMDA2NDQKIC0tLSBhL2dkYi9mLWV4cC55CiArKysgYi9nZGIvZi1l eHAueQotQEAgLTMxNSwyNiArMzE1LDI3IEBAIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAl cHJlYyBBQk9WRV9DT01NQQorQEAgLTI2MCwyNiArMjYwLDI3IEBAIGFyZ2xpc3QJOglhcmdsaXN0 ICcsJyBleHAgICAlcHJlYyBBQk9WRV9DT01NQQogIC8qIFRoZXJlIGFyZSBmb3VyIHNvcnRzIG9m IHN1YnJhbmdlIHR5cGVzIGluIEY5MC4gICovCiAgCiAgc3VicmFuZ2U6CWV4cCAnOicgZXhwCSVw cmVjIEFCT1ZFX0NPTU1BCi0tCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9G OTBfUkFOR0UpOyAKKy0JCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsgCiAtCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTk9ORV9CT1VORF9ERUZB VUxUKTsKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7 CisrCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwKICsJCQkJCQkgU1VCQVJSQVlfTE9XX0JPVU5E IHwgU1VCQVJSQVlfSElHSF9CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9SQU5HRSk7IH0KICAJOwogIAogIHN1YnJhbmdlOglleHAgJzonCSVwcmVjIEFCT1ZFX0NP TU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOwor IAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3Jp dGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIEhJR0hfQk9VTkRfREVGQVVMVCk7CiArCQkJICB3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5EKTsKLSAJCQkg IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKyAJCQkgIHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQogIAk7CiAgCiAgc3VicmFu Z2U6CSc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2Rl IChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisgCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9SQU5HRSk7CiAtCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTE9X X0JPVU5EX0RFRkFVTFQpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNV QkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwg T1BfRjkwX1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOyB9CiAgCTsKICAKICBzdWJyYW5nZToJJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJ eyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworIAkJCXsgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3JpdGVfZXhwX2Vs dF9sb25nY3N0IChwc3RhdGUsIEJPVEhfQk9VTkRfREVGQVVMVCk7CiArCQkJICB3cml0ZV9leHBf ZWx0X2xvbmdjc3QgKHBzdGF0ZSwgMCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9SQU5HRSk7IH0KICAJOwogIAotZGlmZiAtLWdpdCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9m LWxhbmcuaAotaW5kZXggZWVjYTEwNy4uNGQ1NmJmNyAxMDA2NDQKLS0tLSBhL2dkYi9mLWxhbmcu aAotKysrIGIvZ2RiL2YtbGFuZy5oCi1AQCAtNDQsMTAgKzQ0LDggQEAgZXh0ZXJuIHZvaWQgZl92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERS LAotICAgIAotIGVudW0gZjkwX3JhbmdlX3R5cGUKLSAgIHsKLS0gICAgQk9USF9CT1VORF9ERUZB VUxULAkJLyogIig6KSIgICovCi0tICAgIExPV19CT1VORF9ERUZBVUxULAkJLyogIig6aGlnaCki ICAqLwotLSAgICBISUdIX0JPVU5EX0RFRkFVTFQsCQkvKiAiKGxvdzopIiAgKi8KLS0gICAgTk9O RV9CT1VORF9ERUZBVUxUCQkvKiAiKGxvdzpoaWdoKSIgICovCi0rICAgIFNVQkFSUkFZX0xPV19C T1VORCA9IDB4MSwJCS8qICIobG93OikiICAqLwotKyAgICBTVUJBUlJBWV9ISUdIX0JPVU5EID0g MHgyCQkvKiAiKDpoaWdoKSIgICovCi0gICB9OwotIAotIC8qIEEgY29tbW9uIGJsb2NrLiAgKi8K IGRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCA0MTkxZmM2Li5k NTAwMjc5IDEwMDY0NAoraW5kZXggMmIwMDcwOC4uNmQ1NGE3NyAxMDA2NDQKIC0tLSBhL2dkYi9w YXJzZS5jCiArKysgYi9nZGIvcGFyc2UuYwogQEAgLTEwMDYsMjIgKzEwMDYsMTcgQEAgb3BlcmF0 b3JfbGVuZ3RoX3N0YW5kYXJkIChjb25zdCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgaW50IGVu ZHBvcywKICAKLSAgICAgY2FzZSBPUF9GOTBfUkFOR0U6CisgICAgIGNhc2UgT1BfUkFOR0U6CiAg ICAgICAgb3BsZW4gPSAzOwogKyAgICAgIGFyZ3MgPSAwOwotICAgICAgIHJhbmdlX3R5cGUgPSAo ZW51bSBmOTBfcmFuZ2VfdHlwZSkKKyAgICAgICByYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlw ZSkKICAJbG9uZ2VzdF90b19pbnQgKGV4cHItPmVsdHNbZW5kcG9zIC0gMl0ubG9uZ2NvbnN0KTsK ICAKIC0gICAgICBzd2l0Y2ggKHJhbmdlX3R5cGUpCkBAIC0xNTcsNiArMjM1LDEwNyBAQCBpbmRl eCA0MTkxZmM2Li5kNTAwMjc5IDEwMDY0NAogIAogICAgICAgIGJyZWFrOwogIAorZGlmZiAtLWdp dCBhL2dkYi9ydXN0LWV4cC55IGIvZ2RiL3J1c3QtZXhwLnkKK2luZGV4IGMxYTg2M2MuLjc2MDky OWI1IDEwMDY0NAorLS0tIGEvZ2RiL3J1c3QtZXhwLnkKKysrKyBiL2dkYi9ydXN0LWV4cC55CitA QCAtMjQxOCwyMyArMjQxOCwxNyBAQCBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdHJ1Y3Qg cGFyc2VyX3N0YXRlICpzdGF0ZSwKKyAKKyAgICAgY2FzZSBPUF9SQU5HRToKKyAgICAgICB7Cist CWVudW0gcmFuZ2VfdHlwZSBraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOworKwllbnVtIHJhbmdl X3R5cGUga2luZCA9IFNVQkFSUkFZX05PTkVfQk9VTkQ7CisgCisgCWlmIChvcGVyYXRpb24tPmxl ZnQub3AgIT0gTlVMTCkKKyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChz dGF0ZSwgb3BlcmF0aW9uLT5sZWZ0Lm9wLCB0b3ApOworLQkgICAga2luZCA9IEhJR0hfQk9VTkRf REVGQVVMVDsKKysJICAgIGtpbmQgPSBTVUJBUlJBWV9MT1dfQk9VTkQ7CisgCSAgfQorIAlpZiAo b3BlcmF0aW9uLT5yaWdodC5vcCAhPSBOVUxMKQorIAkgIHsKKyAJICAgIGNvbnZlcnRfYXN0X3Rv X2V4cHJlc3Npb24gKHN0YXRlLCBvcGVyYXRpb24tPnJpZ2h0Lm9wLCB0b3ApOworLQkgICAgaWYg KGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorLQkgICAgICBraW5kID0gTE9XX0JPVU5EX0RF RkFVTFQ7CistCSAgICBlbHNlCistCSAgICAgIHsKKy0JCWdkYl9hc3NlcnQgKGtpbmQgPT0gSElH SF9CT1VORF9ERUZBVUxUKTsKKy0JCWtpbmQgPSBOT05FX0JPVU5EX0RFRkFVTFQ7CistCSAgICAg IH0KKysJICAgIGtpbmQgPSAocmFuZ2VfdHlwZSkgKGtpbmQgfCBTVUJBUlJBWV9ISUdIX0JPVU5E KTsKKyAJICB9CisgCXdyaXRlX2V4cF9lbHRfb3Bjb2RlIChzdGF0ZSwgT1BfUkFOR0UpOworIAl3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKHN0YXRlLCBraW5kKTsKK2RpZmYgLS1naXQgYS9nZGIvcnVz dC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMKK2luZGV4IDVkZjk5Y2UuLjhkNTNlMzEgMTAwNjQ0 CistLS0gYS9nZGIvcnVzdC1sYW5nLmMKKysrKyBiL2dkYi9ydXN0LWxhbmcuYworQEAgLTExODgs OSArMTE4OCw5IEBAIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LCBlbnVtIG5vc2lkZSBub3NpZGUpCisgICBraW5kID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2Vz dF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsKKyAgICpwb3MgKz0gMzsK KyAKKy0gIGlmIChraW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IE5PTkVfQk9V TkRfREVGQVVMVCkKKysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJS QVlfTE9XX0JPVU5EKQorICAgICBsb3cgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhw LCBwb3MsIG5vc2lkZSk7CistICBpZiAoa2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCBraW5k ID09IE5PTkVfQk9VTkRfREVGQVVMVCkKKysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0hJR0hfQk9V TkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAg KE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSk7CisgCisgICBpZiAobm9zaWRlID09IEVWQUxf U0tJUCkKK0BAIC0xMjc5LDcgKzEyNzksNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorIAorICAgKmxvdyA9IDA7CisgICAqaGln aCA9IDA7CistICAqa2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgICpraW5kID0gU1VCQVJS QVlfTk9ORV9CT1VORDsKKyAKKyAgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09IDApCisgICAg IHJldHVybjsKK0BAIC0xMjg3LDE1ICsxMjg3LDE0IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCisgICBpID0gMDsKKyAgIGlmIChz dHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgMCksICJzdGFydCIpID09IDApCisgICAgIHsK Ky0gICAgICAqa2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKKysgICAgICAqa2luZCA9IFNVQkFS UkFZX0xPV19CT1VORDsKKyAgICAgICAqbG93ID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQg KHJhbmdlLCAwKSk7CisgICAgICAgKytpOworICAgICB9CisgICBpZiAoVFlQRV9ORklFTERTICh0 eXBlKSA+IGkKKyAgICAgICAmJiBzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSksICJl bmQiKSA9PSAwKQorICAgICB7CistICAgICAgKmtpbmQgPSAoKmtpbmQgPT0gQk9USF9CT1VORF9E RUZBVUxUCistCSAgICAgICA/IExPV19CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxU KTsKKysgICAgICAqa2luZCA9IChyYW5nZV90eXBlKSAoKmtpbmQgfCBTVUJBUlJBWV9ISUdIX0JP VU5EKTsKKyAgICAgICAqaGlnaCA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwg aSkpOworICAgICB9CisgfQorQEAgLTEzMTAsNyArMTMwOSw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAorICAg c3RydWN0IHR5cGUgKnJoc3R5cGU7CisgICBMT05HRVNUIGxvdywgaGlnaF9ib3VuZDsKKyAgIC8q IEluaXRpYWxpemVkIHRvIGFwcGVhc2UgdGhlIGNvbXBpbGVyLiAgKi8KKy0gIGVudW0gcmFuZ2Vf dHlwZSBraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOworKyAgZW51bSByYW5nZV90eXBlIGtpbmQg PSBTVUJBUlJBWV9OT05FX0JPVU5EOworICAgTE9OR0VTVCBoaWdoID0gMDsKKyAgIGludCB3YW50 X3NsaWNlID0gMDsKKyAKK0BAIC0xMzY2LDcgKzEzNjUsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAJZXJy b3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CisgCisgICAgICAgaWYg KHdhbnRfc2xpY2UKKy0JICAmJiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9 PSBMT1dfQk9VTkRfREVGQVVMVCkpCisrCSAgJiYgKChraW5kICYgU1VCQVJSQVlfTE9XX0JPVU5E KSAhPSBTVUJBUlJBWV9MT1dfQk9VTkQpKQorIAlsb3cgPSBsb3dfYm91bmQ7CisgICAgICAgaWYg KGxvdyA8IDApCisgCWVycm9yIChfKCJJbmRleCBsZXNzIHRoYW4gemVybyIpKTsKK0BAIC0xMzg0 LDcgKzEzODMsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50 ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAJICBDT1JFX0FERFIgYWRkcjsKKyAJICBzdHJ1 Y3QgdmFsdWUgKmFkZHJ2YWwsICp0ZW07CisgCistCSAgaWYgKGtpbmQgPT0gQk9USF9CT1VORF9E RUZBVUxUIHx8IGtpbmQgPT0gSElHSF9CT1VORF9ERUZBVUxUKQorKwkgIGlmICgoa2luZCAmIFNV QkFSUkFZX0hJR0hfQk9VTkQpICE9IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgCSAgICBoaWdoID0g aGlnaF9ib3VuZDsKKyAJICBpZiAoaGlnaCA8IDApCisgCSAgICBlcnJvciAoXygiSGlnaCBpbmRl eCBsZXNzIHRoYW4gemVybyIpKTsKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9n ZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1p bnRlbC00b2Y2LnBhdGNoCmluZGV4IDY1NjNkNzEuLjBlMDk2ZTMgMTAwNjQ0Ci0tLSBhL2dkYi1m b3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLXN0cmlkZS1p bnRlbC00b2Y2LnBhdGNoCkBAIC0xLDcgKzEsMTAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwODQyLmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiA0 LzZdIGZvcnRyYW46IGVuYWJsZSBwYXJzaW5nIG9mIHN0cmlkZSBwYXJhbWV0ZXIgZm9yIHN1YnJh bmdlcworUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1lbnNpb25h bCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCitodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAogCitGcm9tIDMzOGU0Yzg2MGFkMjA1ODk2YjRh OTVjNzlmNTQ0NzBjNzllZWIzNDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBDaHJp c3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KK0RhdGU6IFdl ZCwgMSBKdW4gMjAxNiAxNToxMToyNCArMDIwMAorU3ViamVjdDogW1BBVENIIDQvNl0gZm9ydHJh bjogZW5hYmxlIHBhcnNpbmcgb2Ygc3RyaWRlIHBhcmFtZXRlciBmb3Igc3VicmFuZ2VzCiAKIEFs bG93IHRoZSB1c2VyIHRvIHByb3ZpZGUgYSBzdHJpZGUgcGFyYW1ldGVyIGZvciBGb3J0cmFuCiBz dWJhcnJheXMuICBUaGUgc3RyaWRlIHBhcmFtZXRlciBjYW4gYmUgYW55IGludGVnZXIgZXhjZXB0 CkBAIC0xMSwxMCArMTQsMTAgQEAgc3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2Fu IGJlIGFueSBpbnRlZ2VyIGV4Y2VwdAogCiAJKiBldmFsLmMgKHZhbHVlX2Y5MF9zdWJhcnJheSk6 IEFkZCBleHByZXNzaW9uIGV2YWx1YXRpb24KIAlmb3IgYSBzdHJpZGUgcGFyYW1ldGVyIGluIGEg Rm9ydHJhbiByYW5nZSBleHByZXNzaW9uLgorCSogZXhwcmVzc2lvbi5oIChyYW5nZV90eXBlKTog QWRkIGZpZWxkIHRvIGVudW0gdG8gc2hvdyB3aGVuCisJYSBzdHJpZGUgdmFsdWUgd2FzIHByb3Zp ZGVkIGJ5IHRoZSB1c2VyLgogCSogZi1leHAueTogQWRkIHlhY2MgcnVsZXMgZm9yIHdyaXRpbmcg aW5mbyBvbiB0aGUgZWx0IHN0YWNrCiAJd2hlbiB0aGUgdXNlciBwcm92aWRlZCBhIHN0cmlkZSBh cmd1bWVudC4KLQkqIGYtbGFuZy5oIChGOTBfUkFOR0UpOiBBZGQgZmllbGQgdG8gZW51bSB0byBz aG93IHdoZW4gYQotCXN0cmlkZSB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIuCiAJKiBwYXJzZS5j IChvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQpOiBDaGVjayBpZiBhIHN0cmlkZQogCXZhbHVlIHdh cyBwcm92aWRlZCwgYW5kIGluY3JlbWVudCBhcmd1bWVudCBjb3VudGVyCiAJYWNjb3JkaW5nbHku CkBAIC0yMiwyNiArMjUsMjcgQEAgc3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2Fu IGJlIGFueSBpbnRlZ2VyIGV4Y2VwdAogCiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1h bm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMgICB8 IDEwICsrKysrKysrKy0KLSBnZGIvZi1leHAueSAgfCAzMyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0KLSBnZGIvZi1sYW5nLmggfCAgNSArKystLQotIGdkYi9wYXJzZS5jICB8ICAz ICsrKwotIDQgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK KyBnZGIvZXZhbC5jICAgICAgIHwgMTEgKysrKysrKysrKy0KKyBnZGIvZXhwcmVzc2lvbi5oIHwg IDcgKysrKystLQorIGdkYi9mLWV4cC55ICAgICAgfCAzMSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCisgZ2RiL3BhcnNlLmMgICAgICB8ICAzICsrKworIGdkYi92YWxvcHMuYyAgICAg fCAgNCArKy0tCisgNSBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDliOGIw NTEuLjMwOGFkYTMgMTAwNjQ0CitpbmRleCA0NGU4NjAwLi5iNWFhZjFjIDEwMDY0NAogLS0tIGEv Z2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwotQEAgLTQzOCw3ICs0MzgsNyBAQCB2YWx1ZV9m OTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAs Ci0gICAgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQotICAgICAgIHsKLSAgICAgICAgIGVudW0g ZjkwX3JhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0tICAgICAgICBMT05HRVNUIGxvdywgaGln aDsKLSsgICAgICAgIExPTkdFU1QgbG93LCBoaWdoLCBzdHJpZGU7Ci0gICAgICAgfQotICAgICAg IHJhbmdlOwotICAgICAgIExPTkdFU1QgbnVtYmVyOwotQEAgLTQ4OCw2ICs0ODgsMTQgQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAorQEAgLTQxOSw3ICs0MTksNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1 ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgICB0eXBlZGVmIHN0cnVjdCBzdWJz Y3JpcHRfcmFuZ2UKKyAgIHsKKyAgICAgZW51bSByYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwor LSAgICBMT05HRVNUIGxvdywgaGlnaDsKKysgICAgTE9OR0VTVCBsb3csIGhpZ2gsIHN0cmlkZTsK KyAgIH0gc3Vic2NyaXB0X3JhbmdlOworIAorICAgdHlwZWRlZiBlbnVtIHN1YnNjcmlwdF9raW5k CitAQCAtNDkwLDYgKzQ5MCwxNSBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCSAgICAgID09IFNVQkFSUkFZX0hJR0hf Qk9VTkQpCiAgCSAgICByYW5nZS0+aGlnaCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4 cCAoTlVMTF9UWVBFLCBleHAsCiAgCQkJCQkJCSAgcG9zLCBub3NpZGUpKTsKQEAgLTQ5LDgyICs1 Myw4MSBAQCBpbmRleCA5YjhiMDUxLi4zMDhhZGEzIDEwMDY0NAogKwkgIC8qIEFzc2lnbiB0aGUg dXNlcidzIHN0cmlkZSB2YWx1ZSBpZiBwcm92aWRlZC4gICovCiArCSAgaWYgKChyYW5nZS0+Zjkw X3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9TVFJJREUpID09IFNVQkFSUkFZX1NUUklERSkKICsJICAg IHJhbmdlLT5zdHJpZGUgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQ RSwgZXhwLAotKwkJCQkJCQkgICAgcG9zLCBub3NpZGUpKTsKKysJCQkJCQkJICAgICBwb3MsIG5v c2lkZSkpOworKwogKwkgIC8qIEFzc2lnbiB0aGUgZGVmYXVsdCBzdHJpZGUgdmFsdWUgJzEnLiAg Ki8KICsJICBlbHNlCiArCSAgICByYW5nZS0+c3RyaWRlID0gMTsKICAJfQogICAgICAgIC8qIFVz ZXIgaW5wdXQgaXMgYW4gaW5kZXguICBFLmcuOiAicCBhcnJ5KDUpIi4gICovCiAgICAgICAgZWxz ZQorZGlmZiAtLWdpdCBhL2dkYi9leHByZXNzaW9uLmggYi9nZGIvZXhwcmVzc2lvbi5oCitpbmRl eCA1YTZiNzIwLi4zNGNhNTRiIDEwMDY0NAorLS0tIGEvZ2RiL2V4cHJlc3Npb24uaAorKysrIGIv Z2RiL2V4cHJlc3Npb24uaAorQEAgLTE1MywxMyArMTUzLDE2IEBAIGV4dGVybiB2b2lkIGR1bXBf cmF3X2V4cHJlc3Npb24gKHN0cnVjdCBleHByZXNzaW9uICosCisgZXh0ZXJuIHZvaWQgZHVtcF9w cmVmaXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7 CisgCisgLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNhbiBiZSBw cm92aWRlZCBieSB0aGUgdXNlciwgb3Igbm90LgorLSAgIFRoaXMgZW51bWVyYXRpb24gdHlwZSBp cyB0byBpZGVudGlmeSB0aGlzLiAgKi8KKysgICBJbiBhZGRpdGlvbiB0byB0aGlzLCB0aGUgdXNl ciBjYW4gYWxzbyBzcGVjaWZ5IGEgc3RyaWRlIHZhbHVlIHRvIGluZGljYXRlZAorKyAgIG9ubHkg Y2VydGFpbiBlbGVtZW50cyBvZiB0aGUgYXJyYXkuICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMg dG8gaWRlbnRpZnkKKysgICB0aGlzLiAgKi8KKyAKKyBlbnVtIHJhbmdlX3R5cGUKKyAgIHsKKyAg ICAgU1VCQVJSQVlfTk9ORV9CT1VORCA9IDB4MCwJCS8qICIoIDogKSIgICovCisgICAgIFNVQkFS UkFZX0xPV19CT1VORCA9IDB4MSwJCS8qICIobG93OikiICAqLworLSAgICBTVUJBUlJBWV9ISUdI X0JPVU5EID0gMHgyCQkvKiAiKDpoaWdoKSIgICovCisrICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQg PSAweDIsCQkvKiAiKDpoaWdoKSIgICovCisrICAgIFNVQkFSUkFZX1NUUklERSA9IDB4NAkJLyog Iig6OnN0cmlkZSkiICAqLworICAgfTsKKyAKKyAjZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJ T05fSCkgKi8KIGRpZmYgLS1naXQgYS9nZGIvZi1leHAueSBiL2dkYi9mLWV4cC55Ci1pbmRleCBi MTIwNmRlLi41MTUxZmVlIDEwMDY0NAoraW5kZXggZTJjNTRiNi4uNzFmMTgyMyAxMDA2NDQKIC0t LSBhL2dkYi9mLWV4cC55CiArKysgYi9nZGIvZi1leHAueQotQEAgLTMxNiw4ICszMTYsOCBAQCBh cmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKLSAKLSBzdWJyYW5n ZToJZXhwICc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bj b2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7Ci0tCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3Qg KHBzdGF0ZSwKLS0JCQkJCQkgU1VCQVJSQVlfTE9XX0JPVU5EIHwgU1VCQVJSQVlfSElHSF9CT1VO RCk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JP VU5ECi0rCQkJCQkJIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0 X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9Ci0gCTsKLSAKLUBAIC0zMzksNiArMzM5 LDM1IEBAIHN1YnJhbmdlOgknOicJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQkgIHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KLSAJOworQEAgLTI4MCw3ICsyODAs MzYgQEAgc3VicmFuZ2U6CSc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKICAKKyBzdWJyYW5nZToJ JzonCSVwcmVjIEFCT1ZFX0NPTU1BCisgCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9SQU5HRSk7CistCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgMCk7Cisr CQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTk9ORV9CT1VORCk7 CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KKysJOwor KwogKy8qIEVhY2ggc3VicmFuZ2UgdHlwZSBjYW4gaGF2ZSBhIHN0cmlkZSBhcmd1bWVudC4gICov CiArc3VicmFuZ2U6CWV4cCAnOicgZXhwICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7 IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0 ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9leHBfZWx0 X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5ECiArCQkJCQkJIHwgU1VCQVJSQVlf SElHSF9CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBfZWx0 X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwogK3N1YnJhbmdlOglleHAgJzon ICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJS QVlfTE9XX0JPVU5ECiArCQkJCQkJIHwgU1VCQVJSQVlfU1RSSURFKTsKLSsJCQkgIHdyaXRlX2V4 cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKysJCQkgIHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQogKwk7CiArCiArc3VicmFuZ2U6CSc6JyBl eHAgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKysJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3Rh dGUsIE9QX1JBTkdFKTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJB UlJBWV9ISUdIX0JPVU5ECiArCQkJCQkJIHwgU1VCQVJSQVlfU1RSSURFKTsKLSsJCQkgIHdyaXRl X2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKysJCQkgIHdyaXRlX2V4 cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQogKwk7CiArCiArc3VicmFuZ2U6CSc6 JyAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFS UkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBf UkFOR0UpOyB9Ci0rCTsKLSsKLSBjb21wbGV4bnVtOiAgICAgZXhwICcsJyBleHAgCi0gICAgICAg ICAgICAgICAgIAl7IH0gICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgOwotZGlm ZiAtLWdpdCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcuaAotaW5kZXggNGQ1NmJmNy4uMGFk NTdhZiAxMDA2NDQKLS0tLSBhL2dkYi9mLWxhbmcuaAotKysrIGIvZ2RiL2YtbGFuZy5oCi1AQCAt NDQsOCArNDQsOSBAQCBleHRlcm4gdm9pZCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29u c3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0gICAgCi0gZW51bSBmOTBfcmFuZ2VfdHlw ZQotICAgewotLSAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8K LS0gICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLwotKyAgICBT VUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiBvciAiKGxvdzo6KSIgKi8KLSsg ICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MiwJCS8qICIoOmhpZ2gpIiBvciAiKDpoaWdoOiki ICAqLwotKyAgICBTVUJBUlJBWV9TVFJJREUgPSAweDQJCS8qICIoOjpzdHJpZGUpIiAgKi8KLSAg IH07CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KKyAJ OwogIAotIC8qIEEgY29tbW9uIGJsb2NrLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBi L2dkYi9wYXJzZS5jCi1pbmRleCBkNTAwMjc5Li4wNzI0OGMzIDEwMDY0NAoraW5kZXggNmQ1NGE3 Ny4uOTkyYWY4NyAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZS5jCiArKysgYi9nZGIvcGFyc2UuYwog QEAgLTEwMTgsNiArMTAxOCw5IEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCkBAIC0xMzcsNiArMTQwLDI4IEBAIGlu ZGV4IGQ1MDAyNzkuLjA3MjQ4YzMgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgCiAgICAgIGRlZmF1 bHQ6CitkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCitpbmRleCA4MTdh NGNmLi5mYmM3ZGNiIDEwMDY0NAorLS0tIGEvZ2RiL3ZhbG9wcy5jCisrKysgYi9nZGIvdmFsb3Bz LmMKK0BAIC0zODM0LDcgKzM4MzQsNyBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFy cmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorICAgaWYgKGNh bGxfY291bnQgPT0gMSkKKyAgICAgeworICAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZ UEUgKGFycmF5X3R5cGUpOworLSAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBlbGVtX2NvdW50Owor KyAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBhcnlfbG93X2JvdW5kICsgZWxlbV9jb3VudCAtIDE7 CisgCisgICAgICAgLyogQ2hlY2sgaWYgdGhlIGFycmF5IGJvdW5kcyBhcmUgdmFsaWQuICAqLwor ICAgICAgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmYXJ5X2xvd19ib3Vu ZCwgJmFyeV9oaWdoX2JvdW5kKSA8IDApCitAQCAtMzg0Niw3ICszODQ2LDcgQEAgdmFsdWVfc2xp Y2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQg Y2FsbF9jb3VudCkKKyAgIGVsc2UKKyAgICAgeworICAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lO REVYX1RZUEUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKKy0gICAgICBzbGljZV9y YW5nZV9zaXplID0gKGFyeV9sb3dfYm91bmQgKyByb3dfY291bnQgLSAxKSAqIChlbGVtX2NvdW50 KTsKKysgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIChyb3dfY291bnQg KiBlbGVtX2NvdW50KSAtIDE7CisgICAgICAgYXJ5X2xvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5E IChyYW5nZV90eXBlKTsKKyAgICAgfQorIAogLS0gCi0yLjUuMAorMi41LjUKIAoKZGlmZiAtLWdp dCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3Ry aWRlLWludGVsLTVvZjYucGF0Y2gKaW5kZXggOWE3ZGJhMy4uMmI5YTY2MiAxMDA2NDQKLS0tIGEv Z2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTVvZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3Ry aWRlLWludGVsLTVvZjYucGF0Y2gKQEAgLTEsOSArMSwxMiBAQAotaHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDIvbXNnMDA4NDQuaHRtbAotU3ViamVjdDogW1BBVENI IHYyIDUvNl0gZm9ydHJhbjogY2FsY3VsYXRlIHN1YmFycmF5IHdpdGggc3RyaWRlIHZhbHVlcy4K K1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3Vi YXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSAxMTg5MDk4YzNjYWNjMmVlNjkwMjFkZTFh ODNhZDMzMjg4MjFkNzU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3Bo IFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBXZWQsIDEg SnVuIDIwMTYgMTU6MDQ6MDEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA1LzZdIGZvcnRyYW46IGNh bGN1bGF0ZSBlbGVtZW50cyBvZiBhIHN1YmFycmF5IHVzaW5nIGEKKyBwcm92aWRlZCBzdHJpZGUg dmFsdWUKIAotQ2FsY3VsYXRlIGVsZW1lbnRzIG9mIGEgc3ViYXJyYXkgdXNpbmcgYSBwcm92aWRl ZCBzdHJpZGUgdmFsdWUKIFRoZSBzdHJpZGUgdmFsdWUgY2FuIGJlIGEgcG9zaXRpdmUgb3IgbmVn YXRpdmUgaW50ZWdlciwgYnV0IG1heQogbm90IGJlIHplcm8uICBJZiBubyBzdHJpZGUgaXMgcHJv dmlkZWQsIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZQogMSB0byBwcmludCBhbGwgZWxlbWVudHMgaW5z aWRlIHRoZSByYW5nZS4KQEAgLTMyLDQ0ICszNSwyNSBAQCAkMyA9ICgxLCAzLCA1LCA3LCA5KQog CiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5u QGludGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMgICB8IDExMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIGdkYi92YWxvcHMuYyB8 ICA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgZ2Ri L2V2YWwuYyAgIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tCisgZ2RiL3ZhbG9wcy5jIHwgIDgzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi92YWx1ZS5oICB8ICAgMiArLQot IDMgZmlsZXMgY2hhbmdlZCwgMTUyIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQorIDMg ZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQogCiBkaWZm IC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDMwOGFkYTMuLmQwMWI1Nzkg MTAwNjQ0CitpbmRleCBiNWFhZjFjLi4xZjI3YjZmIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwog KysrIGIvZ2RiL2V2YWwuYwotQEAgLTQzNyw4ICs0MzcsOCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkg KHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gICAgIHsKLSAg ICAgICBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCi0gICAgICAgewotLSAgICAgICAgZW51bSBmOTBf cmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsKLS0gICAgICAgIExPTkdFU1QgbG93LCBoaWdoLCBz dHJpZGU7Ci0rCWVudW0gZjkwX3JhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0rCUxPTkdFU1Qg bG93LCBoaWdoLCBzdHJpZGU7Ci0gICAgICAgfQotICAgICAgIHJhbmdlOwotICAgICAgIExPTkdF U1QgbnVtYmVyOwotQEAgLTQ3NSw3ICs0NzUsNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgcmFuZ2UgPSAmaW5k ZXgtPnJhbmdlOworQEAgLTQ3Nyw3ICs0NzcsNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCSAgcmFuZ2UgPSAmaW5k ZXgtPlUucmFuZ2U7CiAgCiAgCSAgKnBvcyArPSAzOwotLQkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlw ZSA9IGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7Ci0rCSAgcmFuZ2Ut PmY5MF9yYW5nZV90eXBlID0gZXhwLT5lbHRzW3BjXS5sb25nY29uc3Q7CistCSAgcmFuZ2UtPmY5 MF9yYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0 c1twY10ubG9uZ2NvbnN0KTsKKysJICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51bSByYW5n ZV90eXBlKSBleHAtPmVsdHNbcGNdLmxvbmdjb25zdDsKICAKICAJICAvKiBJZiBhIGxvd2VyIGJv dW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgdGhlIGJpdCBoYXMgYmVlbgogIAkgICAgIHNl dCBhbmQgd2UgY2FuIGFzc2lnbiB0aGUgdmFsdWUgZnJvbSB0aGUgZWx0IHN0YWNrLiAgU2FtZSBm b3IKLUBAIC00ODQsNiArNDg0LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgICAgICA9PSBTVUJBUlJBWV9MT1df Qk9VTkQpCi0gCSAgICByYW5nZS0+bG93ID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhw IChOVUxMX1RZUEUsIGV4cCwKLSAJCQkJCQkJIHBvcywgbm9zaWRlKSk7Ci0rCi0gCSAgaWYgKChy YW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKQotIAkgICAgICA9PSBT VUJBUlJBWV9ISUdIX0JPVU5EKQotIAkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25nIChl dmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAotQEAgLTQ5Niw2ICs0OTcsMTAgQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAorQEAgLTQ5OSw2ICs0OTksMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgIC8qIEFzc2lnbiB0aGUgZGVm YXVsdCBzdHJpZGUgdmFsdWUgJzEnLiAgKi8KICAJICBlbHNlCiAgCSAgICByYW5nZS0+c3RyaWRl ID0gMTsKQEAgLTgwLDcgKzY0LDcgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAJ fQogICAgICAgIC8qIFVzZXIgaW5wdXQgaXMgYW4gaW5kZXguICBFLmcuOiAicCBhcnJ5KDUpIi4g ICovCiAgICAgICAgZWxzZQotQEAgLTUxMiwxMCArNTE3LDggQEAgdmFsdWVfZjkwX3N1YmFycmF5 IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTUxNSwx MCArNTE5LDggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAogICAgICB9CiAgCkBAIC05Myw3ICs3Nyw3IEBAIGluZGV4 IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsg aS0tKQogICAgICB7CiAgICAgICAgc3RydWN0IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vi c2NyaXB0X2FycmF5W2ldOwotQEAgLTU0OCw2ICs1NTEsNDggQEAgdmFsdWVfZjkwX3N1YmFycmF5 IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTU1MSw2 ICs1NTMsNDggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkJfHwgcmFuZ2UtPmhpZ2ggPiBUWVBFX0hJR0hfQk9VTkQg KGluZGV4X3R5cGUpKQogIAkgICAgICBlcnJvciAoXygicHJvdmlkZWQgYm91bmQocykgb3V0c2lk ZSBhcnJheSBib3VuZChzKSIpKTsKICAKQEAgLTExMyw3ICs5Nyw3IEBAIGluZGV4IDMwOGFkYTMu LmQwMWI1NzkgMTAwNjQ0CiArCiArCX0KICsKLSsgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJH RVRfVFlQRSAoYXJyYXlfdHlwZSk7CisrICAgICAgIGFycmF5X3R5cGUgPSBUWVBFX1RBUkdFVF9U WVBFIChhcnJheV90eXBlKTsKICsgICAgfQogKwogKyAgLyogUmVzZXQgQVJSQVlfVFlQRSBiZWZv cmUgc2xpY2luZy4qLwpAQCAtMTM3LDEyICsxMjEsMTIgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3 OSAxMDA2NDQKICsJICAgICAgIHRyZWF0IGFueSBzdWJzZXF1ZW50IHVzZXIgZW50cnkgYXMgYSBy YW5nZS4gIFdlIHNpbXBseQogKwkgICAgICAgaW5jcmVtZW50IERJTV9DT1VOVCB3aGljaCB0ZWxs cyB1cyBob3cgbWFueSB0aW1lcyB3ZSBhcmUKICsJICAgICAgIGNhbGxpbmcgVkFMVUVfU0xJQ0Vf MS4gICovCi0rCSAgICBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+cmFu Z2U7CisrCSAgICBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlID0gJmluZGV4LT5VLnJhbmdlOwogKwog IAkgICAgLyogRElNX0NPVU5UIGNvdW50cyBldmVyeSB1c2VyIGFyZ3VtZW50IHRoYXQgaXMgdHJl YXRlZCBhcyBhIHJhbmdlLgogIAkgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGV4cHJlc3Np b25zIGxpa2UgJ3ByaW50IGFycmF5KDcsIDg6OSkuCiAgCSAgICAgICBIZXJlIHRoZSBmaXJzdCBh cmd1bWVudCBpcyBhIGxpdGVyYWwsIGJ1dCBtdXN0IGJlIHRyZWF0ZWQgYXMgYQotQEAgLTU1NSwx MCArNjAwLDkgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTU1OCwxMCArNjAyLDkgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgICAg ZGltX2NvdW50Kys7CiAgCiAgCSAgICBuZXdfYXJyYXkKQEAgLTE1NiwxMyArMTQwLDcgQEAgaW5k ZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAJICB9CiAgCSAgYnJlYWs7CiAgCi1AQCAtNTcy LDI3ICs2MTYsMzggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgICAgICAgdG8gZ2V0IHRoZSB2YWx1ZSBvZmZzZXQg cmlnaHQuICAqLwotIAkgICAgaWYgKGRpbV9jb3VudCA9PSAwKQotIAkgICAgICBuZXdfYXJyYXkK LS0JICAgICAgICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRleC0+ bnVtYmVyLAotKwkJPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgt Pm51bWJlciwKLSAJCQkJCSAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVlX3R5cGUKK0BAIC01 ODAsMjEgKzYyMywzMiBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCQkJCQkJCQkgIChuZXdfYXJyYXkpKSk7CiAgCSAg ICBlbHNlCiAgCSAgICAgIHsKQEAgLTE3NCwyMSArMTUyLDIxIEBAIGluZGV4IDMwOGFkYTMuLmQw MWI1NzkgMTAwNjQ0CiArCQkgICBjYW5ub3QgZG8gdGhlIHJhbmdlIGNoZWNrcyBmb3IgdXMuIFNv IHdlIGhhdmUgdG8gbWFrZSBzdXJlCiArCQkgICBvdXJzZWx2ZXMgdGhhdCB0aGUgdXNlciBwcm92 aWRlZCBpbmRleCBpcyBpbnNpZGUgdGhlCiArCQkgICBhcnJheSBib3VuZHMuICBUaHJvdyBhbiBl cnJvciBpZiBub3QuICAqLwotIAkJaWYgKGluZGV4LT5udW1iZXIgPCBUWVBFX0xPV19CT1VORCAo aW5kZXhfdHlwZSkKLS0JCSAgICB8fCBpbmRleC0+bnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChp bmRleF90eXBlKSkKKyAJCWlmIChpbmRleC0+VS5udW1iZXIgPCBUWVBFX0xPV19CT1VORCAoaW5k ZXhfdHlwZSkKKy0JCSAgICB8fCBpbmRleC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGlu ZGV4X3R5cGUpKQogLQkJICBlcnJvciAoXygiZXJyb3Igbm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIp KTsKLSsJCSAgICAmJiBpbmRleC0+bnVtYmVyIDwgVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBl KSkKKysJCSAgICAmJiBpbmRleC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5 cGUpKQogKwkJICBlcnJvciAoXygicHJvdmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3Vu ZChzKSIpKTsKICsKLSsJCWlmIChpbmRleC0+bnVtYmVyID4gVFlQRV9MT1dfQk9VTkQgKGluZGV4 X3R5cGUpCi0rCQkgICAgJiYgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhf dHlwZSkpCisrCQlpZiAoaW5kZXgtPlUubnVtYmVyID4gVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5 cGUpCisrCQkgICAgJiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90 eXBlKSkKICsJCSAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91 bmQocykiKSk7CiAgCiAtCQlkaW1fY291bnQrKzsKICAJCW5ld19hcnJheSA9IHZhbHVlX3NsaWNl XzEgKG5ld19hcnJheSwKLS0JCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+bnVtYmVyKSwK Ky0JCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+VS5udW1iZXIpLAogLQkJCQkJICAgMSwg LyogbGVuZ3RoIGlzICcxJyBlbGVtZW50ICAqLwotKwkJCQkJICAgaW5kZXgtPm51bWJlciwKKysJ CQkJCSAgIGluZGV4LT5VLm51bWJlciwKICsJCQkJCSAgIDEsIC8qIENPVU5UIGlzICcxJyBlbGVt ZW50ICAqLwogKwkJCQkJICAgMSwgLyogU1RSSURFIHNldCB0byAnMScgICovCiAgCQkJCQkgICBk aW1fY291bnQpOwpAQCAtMTk3LDEzICsxNzUsMTEgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAx MDA2NDQKICAJICB9CiAgCSAgYnJlYWs7CiAgCX0KLS0gICAgfQogKyAgICAgIGFycmF5X3R5cGUg PSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKTsKLSsgIH0KKyAgICAgfQogIAogICAgLyog V2l0aCBESU1fQ09VTlQgPiAxIHdlIGN1cnJlbnRseSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFy cmF5LCBidXQgZXhwZWN0Ci0gICAgICBhbiBhcnJheSBvZiBhcnJheXMsIGRlcGVuZGluZyBvbiBo b3cgbWFueSByYW5nZXMgaGF2ZSBiZWVuIHByb3ZpZGVkIGJ5Ci1AQCAtNjE3LDcgKzY3Miw5IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKK0BAIC02MjAsNyArNjc0LDkgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgdGhlIG91dHB1dCBhcnJh eS4gIFNvIHdlIHRyYXZlcnNlIHRoZSBTVUJTQ1JJUFRfQVJSQVkgYWdhaW4sIGxvb2tpbmcKICAJ IGZvciBhIHJhbmdlIGVudHJ5LiAgV2hlbiB3ZSBmaW5kIG9uZSwgd2UgdXNlIHRoZSByYW5nZSBp bmZvIHRvIGNyZWF0ZQogIAkgYW4gYWRkaXRpb25hbCByYW5nZV90eXBlIHRvIHNldCB0aGUgY29y cmVjdCBib3VuZHMgYW5kIGRpbWVuc2lvbnMgZm9yCkBAIC0yMTQsMzUgKzE5MCwzNSBAQCBpbmRl eCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsg aSsrKQogIAl7CiAgCSAgc3RydWN0IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0 X2FycmF5W2ldOwotQEAgLTYyNSwxMiArNjgyLDIwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3Ry dWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICBpZiAoaW5kZXgt PmtpbmQgPT0gU1VCU0NSSVBUX1JBTkdFKQorQEAgLTYyOSwxMiArNjg1LDIwIEBAIHZhbHVlX2Y5 MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwK ICAJICAgIHsKICAJICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUsICppbnRlcmltX2FycmF5 X3R5cGU7CisgCiArCSAgICAgIGludCBuZXdfbGVuZ3RoOwogKwogKwkgICAgICAvKiBUaGUgbGVu Z3RoIG9mIGEgc3ViLWRpbWVuc2lvbiB3aXRoIGFsbCBlbGVtZW50cyBiZXR3ZWVuIHRoZQogKwkJ IGJvdW5kcyBwbHVzIHRoZSBzdGFydCBlbGVtZW50IGl0c2VsZi4gIEl0IG1heSBiZSBtb2RpZmll ZCBieQogKwkJIGEgdXNlciBwcm92aWRlZCBzdHJpZGUgdmFsdWUuICAqLwotKwkgICAgICBuZXdf bGVuZ3RoID0gaW5kZXgtPnJhbmdlLmhpZ2ggLSBpbmRleC0+cmFuZ2UubG93OworKwkgICAgICBu ZXdfbGVuZ3RoID0gaW5kZXgtPlUucmFuZ2UuaGlnaCAtIGluZGV4LT5VLnJhbmdlLmxvdzsKKysK KysJICAgICAgbmV3X2xlbmd0aCAvPSBpbmRleC0+VS5yYW5nZS5zdHJpZGU7CiArCi0rCSAgICAg IG5ld19sZW5ndGggLz0gaW5kZXgtPnJhbmdlLnN0cmlkZTsKLSAKICAJICAgICAgcmFuZ2VfdHlw ZQogIAkJPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsCi0tCQkJCSAgICAgdGVtcF90 eXBlLAotLQkJCQkgICAgIDEsCi0tCQkJCSAgICAgaW5kZXgtPnJhbmdlLmhpZ2ggLSBpbmRleC0+ cmFuZ2UubG93ICsgMSk7Ci0rCQkJCQkgICAgdGVtcF90eXBlLAotKwkJCQkJICAgIGluZGV4LT5y YW5nZS5sb3csCi0rCQkJCQkgICAgaW5kZXgtPnJhbmdlLmxvdyArIG5ld19sZW5ndGgpOworIAkJ CQkJICAgIGVsdF90eXBlLAorLQkJCQkJICAgIDEsCistCQkJCQkgICAgaW5kZXgtPlUucmFuZ2Uu aGlnaAorLQkJCQkJICAgICAgLSBpbmRleC0+VS5yYW5nZS5sb3cgKyAxKTsKKysJCQkJCSAgICBp bmRleC0+VS5yYW5nZS5sb3csCisrCQkJCQkgICAgaW5kZXgtPlUucmFuZ2UubG93ICsgbmV3X2xl bmd0aCk7CiAgCiAgCSAgICAgIGludGVyaW1fYXJyYXlfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBl IChOVUxMLAotIAkJCQkJCSAgICAgIHRlbXBfdHlwZSwKKyAJCQkJCQkgICAgICBlbHRfdHlwZSwK IGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDA5ZWE4Nzcu LjgzYzg0NjIgMTAwNjQ0CitpbmRleCBmYmM3ZGNiLi5kZWQ4ZWZjIDEwMDY0NAogLS0tIGEvZ2Ri L3ZhbG9wcy5jCiArKysgYi9nZGIvdmFsb3BzLmMKLUBAIC0zNzU5LDEwICszNzU5LDEzIEBAIHZh bHVlX29mX3RoaXNfc2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZykKK0BA IC0zNzY2LDEwICszNzY2LDEzIEBAIHZhbHVlX29mX3RoaXNfc2lsZW50IChjb25zdCBzdHJ1Y3Qg bGFuZ3VhZ2VfZGVmbiAqbGFuZykKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX3NsaWNlIChzdHJ1 Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCiAgewpAQCAtMjU5LDgg KzIzNSw4IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiArICByZXR1cm4gdmFsdWVf c2xpY2VfMSAoYXJyYXksIGxvd2JvdW5kLCBsZW5ndGgsIDEsIDEpOwogIH0KICAKLSAvKiBDQUxM X0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlv biBvbmNlLCBlLmcuCi1AQCAtMzc3Niw3ICszNzc5LDggQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2 YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkKKyAvKiBWQUxVRV9TTElDRV8x IGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1i ZXIKK0BAIC0zNzg1LDcgKzM3ODgsOCBAQCB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJh eSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQogICAgIHJhbmdlcyBpbiB0aGUgY2FsbGluZyBm dW5jdGlvbi4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTI3MCw3ICsyNDYsNyBAQCBpbmRl eCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogIHsKICAgIHN0cnVjdCB0eXBlICpzbGljZV9yYW5n ZV90eXBlLCAqc2xpY2VfdHlwZSwgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci1AQCAtMzc5OSwxNCAr MzgwMywyNCBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91 bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4MDgsMTQgKzM4MTIsMjQgQEAg dmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVu Z3RoLCBpbnQgY2FsbF9jb3VudCkKICAgICAgIGF0dHJpYnV0ZXMgb2YgdGhlIHVuZGVybHlpbmcg dHlwZS4gICovCiAgICBpZiAoY2FsbF9jb3VudCA+IDEpCiAgICAgIHsKQEAgLTI5NywyNSArMjcz LDcgQEAgaW5kZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICAgIGVsdF9zdHJpZGUgPSBUWVBF X0xFTkdUSCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7CiAgCiAgICBlbHRfb2ZmcyAq PSBlbHRfc2l6ZTsKLUBAIC0zODI1LDcgKzM4MzksNyBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQot ICAgaWYgKGNhbGxfY291bnQgPT0gMSkKLSAgICAgewotICAgICAgIHJhbmdlX3R5cGUgPSBUWVBF X0lOREVYX1RZUEUgKGFycmF5X3R5cGUpOwotLSAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBlbGVt X2NvdW50OwotKyAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBhcnlfbG93X2JvdW5kICsgZWxlbV9j b3VudCAtIDE7Ci0gCi0gICAgICAgLyogQ2hlY2sgaWYgdGhlIGFycmF5IGJvdW5kcyBhcmUgdmFs aWQuICAqLwotICAgICAgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmYXJ5 X2xvd19ib3VuZCwgJmFyeV9oaWdoX2JvdW5kKSA8IDApCi1AQCAtMzgzNyw3ICszODUxLDcgQEAg dmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVu Z3RoLCBpbnQgY2FsbF9jb3VudCkKLSAgIGVsc2UKLSAgICAgewotICAgICAgIHJhbmdlX3R5cGUg PSBUWVBFX0lOREVYX1RZUEUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLS0gICAg ICBzbGljZV9yYW5nZV9zaXplID0gKGFyeV9sb3dfYm91bmQgKyByb3dfY291bnQgLSAxKSAqIChl bGVtX2NvdW50KTsKLSsgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIChy b3dfY291bnQgKiBlbGVtX2NvdW50KSAtIDE7Ci0gICAgICAgYXJ5X2xvd19ib3VuZCA9IFRZUEVf TE9XX0JPVU5EIChyYW5nZV90eXBlKTsKLSAgICAgfQotIAotQEAgLTM4NDksOCArMzg2Myw5IEBA IHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxl bmd0aCwgaW50IGNhbGxfY291bnQpCitAQCAtMzg1OCw4ICszODcyLDkgQEAgdmFsdWVfc2xpY2Vf MSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2Fs bF9jb3VudCkKICAgIHsKICAgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKICAKQEAgLTMy Nyw3ICsyODUsNyBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogICAgICAgIHsKICAJ ZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAgCi1AQCAtMzg3 MSwyOSArMzg4Niw1MyBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQg bG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4ODAsMjkgKzM4OTUs NTMgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBp bnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKICAJICB9CiAgCiAgICAgICAgfQpAQCAtMzU5LDgg KzMxNyw4IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgCXNsaWNlX3R5cGUgPSBj cmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwgZWxlbWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsK ICAKIC0JVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQ RSAoYXJyYXlfdHlwZSkpOwotKwkvKiBJZiB3ZSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5 LCB3ZSBjb3B5IGl0cyBUWVBFX0NPREUuICBGb3IgYQotKwkgICBtdWx0aSBkaW1lbnNpb25hbCBh cnJheSB3ZSBjb3B5IHRoZSBlbWJlZGRlZCB0eXBlJ3MgVFlQRV9DT0RFLiAgKi8KKysJIC8qIElm IHdlIGhhdmUgYSBvbmUgZGltZW5zaW9uYWwgYXJyYXksIHdlIGNvcHkgaXRzIFRZUEVfQ09ERS4g IEZvciBhCisrCSAgICBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSB3ZSBjb3B5IHRoZSBlbWJlZGRl ZCB0eXBlJ3MgVFlQRV9DT0RFLiAgKi8KICsJaWYgKGNhbGxfY291bnQgPT0gMSkKICsJICBUWVBF X0NPREUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsJZWxzZQpAQCAt Mzk1LDcgKzM1Myw3IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgICAgICAgfQog IAogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDM0MDA0NjAu LmMxOGVmMmUgMTAwNjQ0CitpbmRleCA5NTU4OGFmLi5lNDE3NjM5IDEwMDY0NAogLS0tIGEvZ2Ri L3ZhbHVlLmgKICsrKyBiL2dkYi92YWx1ZS5oCiBAQCAtMTA1Niw3ICsxMDU2LDcgQEAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqdmFyeWluZ190b19zbGljZSAoc3RydWN0IHZhbHVlICopOwpAQCAtNDA4 LDUgKzM2Niw1IEBAIGluZGV4IDM0MDA0NjAuLmMxOGVmMmUgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZh bHVlICosCiAgCQkJCQkgICAgc3RydWN0IHR5cGUgKik7CiAtLSAKLTIuNS4wCisyLjUuNQogCgpk aWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYtbm9rZmFpbC5wYXRjaCBi L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDViNjFkZTEuLjAwMDAwMDAKLS0tIGEvZ2RiLWZvcnRyYW4tc3Ry aWRlLWludGVsLTZvZjYtbm9rZmFpbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAg QEAKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1 YnJhbmdlLmV4cC1vcmlnCTIwMTYtMDEtMDggMjI6NDU6NDQuOTU2ODQyNTUzICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5l eHAJMjAxNi0wMS0wOCAyMzoyNjowNS4wNzg1NTQ2MjkgKzAxMDAKLUBAIC0zOSwyNyArMzksMTYg QEAgZm9yZWFjaCB2YXIge2EgYWxsb2MgcHRyfSB7Ci0gICAgIHNldCBvbGRfcHJlZml4ICRwZl9w cmVmaXgKLSAgICAgbGFwcGVuZCBwZl9wcmVmaXggIiR2YXI6IgotIAotLSAgICBzZXR1cF9rZmFp bCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDIs IDI6MykiIHsgPSBcKDIyLCAzMlwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdy ZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDI6MywgMykiIHsgPSBcKDMyLCAz M1wpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAg IGdkYl90ZXN0ICJwICR2YXIgKDEsIDI6KSIgeyA9IFwoMjEsIDMxXCl9Ci0tICAgIHNldHVwX2tm YWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAo MiwgOjIpIiB7ID0gXCgxMiwgMjJcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVn cmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgzLCAyOjIpIiB7ID0gXCgyM1wp fQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdk Yl90ZXN0ICJwdHlwZSAkdmFyICgzLCAyOjIpIiAiID0gJGludDQgXFwoMjoyXFwpIgotLSAgICBz ZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJw ICR2YXIgKDQsIDopIiB7ID0gXCgxNCwgMjQsIDM0XCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSot KiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoOiwgOikiIHsg PSBcKFwoICoxMSwgMTIsIDEzLCAxNFwpIFwoICoyMSwgMjIsIDIzLCAyNFwpIFwoICozMSwgMzIs IDMzLCAzNFwpICpcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85 OTk5IgotICAgICBnZGJfdGVzdCAicHR5cGUgJHZhciAoOiwgOikiICIgPSAkaW50NCBcXCg0LDNc XCkiCi0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAg Z2RiX3Rlc3QgInAgJHZhciAoOikiICJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIKLS0gICAg c2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAi cCAkdmFyICg6LCA6LCA6KSIgIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIgotIAotICAgICBz ZXQgcGZfcHJlZml4ICRvbGRfcHJlZml4Ci1AQCAtNjgsNSArNTcsNCBAQCBmb3JlYWNoIHZhciB7 YSBhbGxvYyBwdHJ9IHsKLSBnZGJfdGVzdF9ub19vdXRwdXQge3NldCAkYT1hfQotIGRlbGV0ZV9i cmVha3BvaW50cwotIGdkYl91bmxvYWQKLS1zZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNz aW9uLzk5OTkiCi0gZ2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9CgpkaWZmIC0t Z2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1z dHJpZGUtaW50ZWwtNm9mNi5wYXRjaAppbmRleCA0N2ZhZWYyLi43NzdiYmM5IDEwMDY0NAotLS0g YS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1z dHJpZGUtaW50ZWwtNm9mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0Ny5odG1sCi1TdWJqZWN0OiBbUEFU Q0ggdjIgNi82XSBmb3J0cmFuOiB0ZXN0IGNhc2VzIGZvciBzdWJhcnJheSBzdHJpZGVzIGFuZCBz bGljZXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9u YWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSA5ODJkNTgyZWU3MzhjYmNmMjUy YmE4ZWFiNTlhOTUxNGVkZGE3NWI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hy aXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBX ZWQsIDQgRGVjIDIwMTMgMTE6NDc6MTUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCA2LzZdIGZvcnRy YW46IHRlc3QgY2FzZXMgZm9yIHN1YmFycmF5IHN0cmlkZXMgYW5kIHNsaWNlcwogCiBBZGQgdGVz dCBjYXNlcyBmb3Igc3ViYXJyYXkgY3JlYXRpb24gd2l0aCByYW5nZSwgbGl0ZXJhbCBhbmQKIHN0 cmlkZSB2YWx1ZSBwZXJtdXRhdGlvbnMgZm9yIG9uZSwgdHdvLCBhbmQgdGhyZWUgZGltZW5zaW9u YWwKQEAgLTUxMSw1ICs1MTQsNSBAQCBpbmRleCAwMDAwMDAwLi5mMjJmY2JlCiArICBjYWxsIHN1 YgogK2VuZAogLS0gCi0yLjUuMAorMi41LjUKIAoKZGlmZiAtLWdpdCBhL2dkYi1weXRob24tZ2ls LnBhdGNoIGIvZ2RiLXB5dGhvbi1naWwucGF0Y2gKaW5kZXggMWUzYjBiOS4uNWNlMTNhOCAxMDA2 NDQKLS0tIGEvZ2RiLXB5dGhvbi1naWwucGF0Y2gKKysrIGIvZ2RiLXB5dGhvbi1naWwucGF0Y2gK QEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhv bi50ZXhpCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RvYy9weXRob24udGV4aQog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZG9jL3B5dGhvbi50 ZXhpCTIwMTUtMDUtMzEgMTc6NTc6MTIuNDMxNTkzOTgzICswMjAwCi0rKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50ZXhpCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU0NjA3NzA4 ICswMjAwCi1AQCAtMjI5LDYgKzIyOSwxNCBAQCByZXR1cm5lZCBhcyBhIHN0cmluZy4gIFRoZSBk ZWZhdWx0IGlzIEBjCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZG9jL3B5dGhv bi50ZXhpCTIwMTYtMDctMDMgMTY6MzA6MzcuMDA5MzM4MzU4ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL2RvYy9weXRob24udGV4aQkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMjM4 Nzg2NyArMDIwMAorQEAgLTIyOSw2ICsyMjksMTQgQEAKICByZXR1cm4gdmFsdWUgaXMgQGNvZGV7 Tm9uZX0uICBJZiBAdmFye3RvX3N0cmluZ30gaXMgQGNvZGV7VHJ1ZX0sIHRoZQogIEB2YWx1ZXtH REJOfSB2aXJ0dWFsIHRlcm1pbmFsIHdpbGwgYmUgdGVtcG9yYXJpbHkgc2V0IHRvIHVubGltaXRl ZCB3aWR0aAogIGFuZCBoZWlnaHQsIGFuZCBpdHMgcGFnaW5hdGlvbiB3aWxsIGJlIGRpc2FibGVk OyBAcHhyZWZ7U2NyZWVuIFNpemV9LgpAQCAtMTcsMTEgKzE3LDExIEBAIEluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9kb2MvcHl0aG9uLnRleGkKICBAZW5kIGRlZnVuCiAgCiAgQGZpbmRl eCBnZGIuYnJlYWtwb2ludHMKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24v cHl0aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9u L3B5dGhvbi1pbnRlcm5hbC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wNS0zMSAxNzo1NzoxMi40MzI1 OTM5ODkgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLWlu dGVybmFsLmgJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTQ2MDc3MDggKzAyMDAKLUBAIC0xNDIsNiAr MTQyLDggQEAgdHlwZWRlZiBpbnQgUHlfc3NpemVfdDsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNi0wNy0wMyAxNjozMDozNy4w MTAzMzgzNjYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCTIwMTYtMDctMDMgMTY6MzA6NDIuODEyMzg3ODY3ICswMjAwCitAQCAtMTQw LDYgKzE0MCw4IEBACiAgI2RlZmluZSBQeUdJTFN0YXRlX1JlbGVhc2UoQVJHKSAoKHZvaWQpKEFS RykpCiAgI2RlZmluZSBQeUV2YWxfSW5pdFRocmVhZHMoKQogICNkZWZpbmUgUHlUaHJlYWRTdGF0 ZV9Td2FwKEFSRykgKCh2b2lkKShBUkcpKQpAQCAtMzAsMTEgKzMwLDExIEBAIEluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKICAjZGVmaW5lIFB5 RXZhbF9SZWxlYXNlTG9jaygpCiAgI2VuZGlmCiAgCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvcHl0aG9uL3B5dGhvbi5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5 dGhvbi9weXRob24uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU2NjA3NzIwICswMjAwCi0r KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTUtMDUtMzEgMTg6 MDI6MDguODkxNDI0MjI3ICswMjAwCi1AQCAtNjI3LDEzICs2MjcsMTggQEAgZXhlY3V0ZV9nZGJf Y29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5TworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9y aWcvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE2LTA3LTAzIDE2OjMwOjM3LjAxMTMzODM3NSArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9uLmMJMjAxNi0wNy0w MyAxNjozMToxNi4zMjQ2NzM3ODMgKzAyMDAKK0BAIC02MTksMTMgKzYxOSwxOCBAQAogIHsKICAg IGNvbnN0IGNoYXIgKmFyZzsKICAgIFB5T2JqZWN0ICpmcm9tX3R0eV9vYmogPSBOVUxMLCAqdG9f c3RyaW5nX29iaiA9IE5VTEw7CkBAIC01Nyw3ICs1Nyw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9weXRob24vcHl0aG9uLmMKICAgICAgcmV0dXJuIE5VTEw7CiAgCiAgICBmcm9t X3R0eSA9IDA7Ci1AQCAtNjU0LDEyICs2NTksMjggQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlP YmplY3QgKnNlbGYsIFB5TworQEAgLTY0Niw2ICs2NTEsMTUgQEAKICAgICAgICB0b19zdHJpbmcg PSBjbXA7CiAgICAgIH0KICAKQEAgLTczLDggKzczLDkgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYwogICAgVFJZCiAgICAgIHsKICAgICAgICAvKiBDb3B5 IHRoZSBhcmd1bWVudCB0ZXh0IGluIGNhc2UgdGhlIGNvbW1hbmQgbW9kaWZpZXMgaXQuICAqLwot ICAgICAgIGNoYXIgKmNvcHkgPSB4c3RyZHVwIChhcmcpOworQEAgLTY1Myw2ICs2NjcsMTMgQEAK ICAgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cCA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGNv cHkpOworICAgICAgIHN0cnVjdCBpbnRlcnAgKmludGVycDsKICAKICsgICAgICAvKiBJbiB0aGUg Y2FzZSBvZiBsb25nIHJ1bm5pbmcgR0RCIGNvbW1hbmRzLCBhbGxvdyB0aGUgdXNlciB0bwogKwkg cmVsZWFzZSB0aGUgUHl0aG9uIEdJTCBhY3F1aXJlZCBieSBQeXRob24uICBSZXN0b3JlIHRoZSBH SUwKQEAgLTgzLDEwICs4NCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0 aG9uL3B5dGhvbi5jCiArICAgICAgaWYgKHJlbGVhc2VfZ2lsKQogKwlzdGF0ZSA9IFB5RXZhbF9T YXZlVGhyZWFkKCk7CiArCi0gICAgICAgbWFrZV9jbGVhbnVwX3Jlc3RvcmVfaW50ZWdlciAoJmlu dGVycHJldGVyX2FzeW5jKTsKLSAgICAgICBpbnRlcnByZXRlcl9hc3luYyA9IDA7CisgICAgICAg bWFrZV9jbGVhbnVwX3Jlc3RvcmVfaW50ZWdlciAoJmN1cnJlbnRfdWktPmFzeW5jKTsKKyAgICAg ICBjdXJyZW50X3VpLT5hc3luYyA9IDA7CiAgCi1AQCAtNjcyLDExICs2OTMsMjMgQEAgZXhlY3V0 ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5TworQEAgLTY3MSwxMSArNjkyLDIzIEBA CiAgCSAgZXhlY3V0ZV9jb21tYW5kIChjb3B5LCBmcm9tX3R0eSk7CiAgCX0KICAKQEAgLTExMSwx MCArMTEyLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9u LmMKICAgICAgfQogICAgRU5EX0NBVENICiAgCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt Z2lsLW10aHJlYWQuYwkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVh ZC5jCTIwMTYtMDctMDMgMTY6MzA6NDIuODEzMzg3ODc2ICswMjAwCiBAQCAtMCwwICsxLDEyIEBA CiArI2luY2x1ZGUgPHN0ZGlvLmg+CiArCkBAIC0xMjgsMTAgKzEyOSwxMCBAQCBJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQu YwogKyAgICAgIHByaW50ZiAoIlNsZWVwaW5nICVkXG4iLCBpKTsKICsgICAgfQogK30KLUluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRo cmVhZC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktZ2lsLW10aHJlYWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCTIwMTUtMDUtMzEgMTc6 NTc6MTQuNjU3NjA3NzI2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAkyMDE2LTA3LTAzIDE2OjMwOjQyLjgx MzM4Nzg3NiArMDIwMAogQEAgLTAsMCArMSw2OSBAQAogKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjAyLDEwICsyMDMsMTAgQEAgSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1t dGhyZWFkLmV4cAogKwl9CiArICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1naWwtbXRocmVhZC5weQkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NzYwNzcyNiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRo cmVhZC5weQkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxNDM4Nzg4NCArMDIwMAogQEAgLTAsMCArMSwy MiBAQAogK2ltcG9ydCB0aHJlYWQKICtpbXBvcnQgdGltZQoKZGlmZiAtLWdpdCBhL2dkYi1yZWFk bGluZTYyLWFzay1tb3JlLXJoLnBhdGNoIGIvZ2RiLXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0 Y2gKaW5kZXggYWU2ODk0Ni4uNDYzZDlkMyAxMDA2NDQKLS0tIGEvZ2RiLXJlYWRsaW5lNjItYXNr LW1vcmUtcmgucGF0Y2gKKysrIGIvZ2RiLXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0Y2gKQEAg LTEsMTcgKzEsMTggQEAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcv Z2RiL2V2ZW50LXRvcC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYwotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2V2ZW50LXRvcC5jCTIwMTYtMDEtMDkgMTQ6 NTE6MDIuMzI0MjQzNTA2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50 LXRvcC5jCTIwMTYtMDEtMDkgMTQ6NTE6MzMuMDI5NDM0MTIxICswMTAwCi1AQCAtMTAzMyw2ICsx MDMzLDEzIEBAIHNldF9hc3luY19lZGl0aW5nX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGkKLSB2b2lk Ci0gZ2RiX3NldHVwX3JlYWRsaW5lICh2b2lkKQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9ldmVudC10b3AuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9y aWcvZ2RiL2V2ZW50LXRvcC5jCTIwMTYtMDctMDMgMTY6MzI6MzYuMTA4MzQyMTU5ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2V2ZW50LXRvcC5jCTIwMTYtMDctMDMgMTY6MzI6 NTkuNzg3NTIzNzMzICswMjAwCitAQCAtMTI1Miw2ICsxMjUyLDEzIEBACiAgeworICAgc3RydWN0 IHVpICp1aSA9IGN1cnJlbnRfdWk7CisgCiArI2lmZGVmIE5FRURfUkxfU1RBVEVfRkVET1JBX0dE QgogKyAgLyogNi4yIHJlZ3Jlc3Npb246IG5vIGxvbmdlZCBhc2tzIGZvciAtLW1vcmUtLQogKyAg ICAgZ2RiLmJhc2UvcmVhZGxpbmUtYXNrLmV4cAogKyAgICAgaHR0cHM6Ly9idWd6aWxsYS5yZWRo YXQuY29tL3Nob3dfYnVnLmNnaT9pZD03MDExMzEgICovCiArICBSTF9TRVRTVEFURSAoUkxfU1RB VEVfRkVET1JBX0dEQik7Ci0rCiArI2VuZGlmCisrCiAgICAvKiBUaGlzIGZ1bmN0aW9uIGlzIGEg bm9vcCBmb3IgdGhlIHN5bmMgY2FzZS4gIFRoZSBhc3N1bXB0aW9uIGlzCiAgICAgICB0aGF0IHRo ZSBzeW5jIHNldHVwIGlzIEFMTCBkb25lIGluIGdkYl9pbml0LCBhbmQgd2Ugd291bGQgb25seQog ICAgICAgbWVzcyBpdCB1cCBoZXJlLiAgVGhlIHN5bmMgc3R1ZmYgc2hvdWxkIHJlYWxseSBnbyBh d2F5IG92ZXIKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNo IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCA2MDM3ZTBlLi5iMzdj NWI5IDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBi L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMSArNDYzLDExIEBA IENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3 Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFp bi5wYXRjaAogCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNS0xMS0wMiAyMToy MzoxMS4xNzUzNTE0MTAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxh bmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5NzM2NDcxNCArMDEwMAotQEAgLTc1LDcgKzc1LDcg QEAgc3RhdGljIHN0cnVjdCB0eXBlICpkZXNjX2JvdW5kc190eXBlIChzdAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNTM1 MTAxMTcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjUyNzUzMDAyOCArMDIwMAorQEAgLTc1LDcgKzc1LDcgQEAKICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICopOwogIApAQCAt NDc2LDcgKzQ3Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcu YwogIAogIHN0YXRpYyBpbnQgZmF0X3BudHJfYm91bmRzX2JpdHNpemUgKHN0cnVjdCB0eXBlICop OwogIAotQEAgLTgzLDEzICs4MywxMyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKmRlc2NfZGF0YV90 YXJnZXRfdHlwCitAQCAtODMsMTMgKzgzLDEzIEBACiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq ZGVzY19kYXRhIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00OTIsNyArNDkyLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBkZXNj X2JvdW5kX2JpdHNpemUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKLUBAIC0xNzIsNyAr MTcyLDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpzdGF0aWNfdW53cmFwX3R5cGUgKAorQEAgLTE3 Miw3ICsxNzIsNyBAQAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnVud3JhcF92YWx1ZSAoc3Ry dWN0IHZhbHVlICopOwogIApAQCAtNTAxLDcgKzUwMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVjb2RlX2Nv bnN0cmFpbmVkX3BhY2tlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC0xODcs NyArMTg3LDggQEAgc3RhdGljIGludCBhZGFfaXNfdW5jb25zdHJhaW5lZF9wYWNrZWRfYQorQEAg LTE4Nyw3ICsxODcsOCBAQAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdF9w YWNrZWQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHZhbHVlICoqKTsKICAKQEAgLTUxMSw3ICs1MTEsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMg c3RydWN0IHZhbHVlICpjb2VyY2VfdW5zcGVjX3ZhbF90b190eXBlIChzdHJ1Y3QgdmFsdWUgKiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHlwZSAqKTsKLUBAIC0yMTUsMTQgKzIxNiwxNCBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICp2YWx1 ZV92YWxfYXRyIChzdHJ1CitAQCAtMjE1LDE0ICsyMTYsMTQgQEAKICBzdGF0aWMgc3RydWN0IHN5 bWJvbCAqc3RhbmRhcmRfbG9va3VwIChjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCBibG9jayAq LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9lbnVtKTsK ICAKQEAgLTUzMCw3ICs1MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS1sYW5nLmMKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfdG9fZml4ZWRfdmFsdWVfY3Jl YXRlIChzdHJ1Y3QgdHlwZSAqLCBDT1JFX0FERFIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZhbHVlICopOwotQEAgLTIzNiw3ICsyMzcs NyBAQCBzdGF0aWMgaW50IGFkYV9pc19kaXJlY3RfYXJyYXlfdHlwZSAoc3RyCitAQCAtMjM2LDcg KzIzNyw3IEBACiAgc3RhdGljIHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0IGdk YmFyY2ggKiwKICAJCQkJICAgIHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKik7CiAgCkBAIC01 MzksNyArNTM5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5j CiAgCQkJCQkgICAgIHN0cnVjdCB0eXBlICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFz c2lnbl9hZ2dyZWdhdGUgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgCi1AQCAtNzAw LDcgKzcwMSw3IEBAIGNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZQorQEAg LTcwMCw3ICs3MDEsNyBAQAogIH0KICAKICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgpAQCAtNTQ4 LDcgKzU0OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwog IHsKICAgIGlmICh2YWxhZGRyID09IE5VTEwpCiAgICAgIHJldHVybiBOVUxMOwotQEAgLTcwOSw3 ICs3MTAsNyBAQCBjb25kX29mZnNldF9ob3N0IChjb25zdCBnZGJfYnl0ZSAqdmFsYWRkCitAQCAt NzA5LDcgKzcxMCw3IEBACiAgfQogIAogIHN0YXRpYyBDT1JFX0FERFIKQEAgLTU1Nyw3ICs1NTcs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBp ZiAoYWRkcmVzcyA9PSAwKQogICAgICByZXR1cm4gMDsKLUBAIC0xNzE3LDcgKzE3MTgsNyBAQCBk ZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICphcnIpCitAQCAtMTc1Niw3ICsxNzU3LDcgQEAKICAv KiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVy KSwgIHRoZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRk cmVzcyBvZiB0aGUgYm91bmRzIGRhdGEuICAqLwogIApAQCAtNTY2LDcgKzU2Niw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIGZhdF9wbnRyX2JvdW5kc19i aXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBP UyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsKLUBAIC0xNzgzLDcgKzE3ODQsNyBAQCBkZXNj X2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQorQEAgLTE4MjIsNyArMTgyMyw3IEBACiAgLyogSWYg VFlQRSBpcyB0aGUgdHlwZSBvZiBhbiBhcnJheS1kZXNjcmlwdG9yIChmYXQgcG9pbnRlciksIHRo ZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBv ZiB0aGUgZGF0YS4gICovCiAgCkBAIC01NzUsNyArNTc1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0 eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5 cGUgKHR5cGUpLCAwKTsKLUBAIC0xODE4LDcgKzE4MTksNyBAQCBkZXNjX29uZV9ib3VuZCAoc3Ry dWN0IHZhbHVlICpib3VuZHMsIGluCitAQCAtMTg1Nyw3ICsxODU4LDcgQEAKICAgICBvZiB0aGUg SXRoIGxvd2VyIGJvdW5kIHN0b3JlZCBpbiBpdCwgaWYgV0hJQ0ggaXMgMCwgYW5kIHRoZSBJdGgg dXBwZXIKICAgICBib3VuZCwgaWYgV0hJQ0ggaXMgMS4gIFRoZSBmaXJzdCBib3VuZCBpcyBJPTEu ICAqLwogIApAQCAtNTg0LDcgKzU4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLWxhbmcuYwogIGRlc2NfYm91bmRfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IGksIGludCB3aGljaCkKICB7CiAgICByZXR1cm4gVFlQRV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFz ZV90eXBlICh0eXBlKSwgMiAqIGkgKyB3aGljaCAtIDIpOwotQEAgLTIwMDgsNyArMjAwOSw3IEBA IGFkYV90eXBlX29mX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyciwgaW4KK0BAIC0yMDQ3LDcgKzIw NDgsNyBAQAogIAkgICAgICAgICB6ZXJvLCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSByZWNvbXB1 dGVkLiAgKi8KICAJICAgICAgaWYgKGxvIDwgaGkpCiAgCQl7CkBAIC01OTMsNyArNTkzLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCQkgICAgICAgICho aSAtIGxvICsgMSkgKiBUWVBFX0ZJRUxEX0JJVFNJWkUgKGVsdF90eXBlLCAwKTsKICAKICAJCSAg VFlQRV9MRU5HVEggKGFycmF5X3R5cGUpID0gKGFycmF5X2JpdHNpemUgKyA3KSAvIDg7Ci1AQCAt MjE2OCw3ICsyMTY5LDcgQEAgZGVjb2RlX3BhY2tlZF9hcnJheV9iaXRzaXplIChzdHJ1Y3QgdHlw ZQorQEAgLTIyMDcsNyArMjIwOCw3IEBACiAgICAgdGhlIGxlbmd0aCBpcyBhcmJpdHJhcnkuICAq LwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCkBAIC02MDIsNyArNjAyLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgewogICAgc3RydWN0IHR5cGUgKm5l d19lbHRfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpuZXdfdHlwZTsKLUBAIC0yMjIyLDcgKzIyMjMs NyBAQCBkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0CitAQCAtMjI2MSw3 ICsyMjYyLDcgQEAKICAgIGNoYXIgKm5hbWU7CiAgICBjb25zdCBjaGFyICp0YWlsOwogICAgc3Ry dWN0IHR5cGUgKnNoYWRvd190eXBlOwpAQCAtNjExLDcgKzYxMSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogICAgaWYgKCFyYXdfbmFtZSkKICAgICAg cmF3X25hbWUgPSBhZGFfdHlwZV9uYW1lIChkZXNjX2Jhc2VfdHlwZSAodHlwZSkpOwotQEAgLTIy OTMsNyArMjI5NCw4IEBAIGRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXkgKHN0cnVjdAor QEAgLTIzMzIsNyArMjMzMyw4IEBACiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAgSW4gb3Jk ZXIgdG8gaW50ZXJwcmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1c3RpZmll ZCkgcGFja2VkIGFycmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZpcnN0IGxl ZnQtanVzdGlmeSBpdC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgVUxPTkdFU1QgbW9kOwogIAogICAgICAg IG1vZCA9IGFkYV9tb2R1bHVzICh2YWx1ZV90eXBlIChhcnIpKSAtIDE7Ci1AQCAtMjUyMSw3ICsy NTIzLDcgQEAgYWRhX3VucGFja19mcm9tX2NvbnRlbnRzIChjb25zdCBnZGJfYnl0ZQorQEAgLTI1 NjAsNyArMjU2Miw3IEBACiAgCiAgc3RydWN0IHZhbHVlICoKICBhZGFfdmFsdWVfcHJpbWl0aXZl X3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqb2JqLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK QEAgLTYzMCw3ICs2MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1s YW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBl KQogIHsKICAgIHN0cnVjdCB2YWx1ZSAqdjsKLUBAIC0yNTk0LDcgKzI1OTYsNyBAQCBhZGFfdmFs dWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjYzMyw3ICsyNjM1LDcgQEAK ICAKICAgIGlmIChvYmogIT0gTlVMTCkKICAgICAgewpAQCAtNjM5LDcgKzYzOSw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogICAgICAgIHNldF92YWx1 ZV9jb21wb25lbnRfbG9jYXRpb24gKHYsIG9iaik7CiAgICAgICAgc2V0X3ZhbHVlX2JpdHBvcyAo diwgYml0X29mZnNldCArIHZhbHVlX2JpdHBvcyAob2JqKSk7Ci1AQCAtMjY0Miw3ICsyNjQ0LDcg QEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgorQEAgLTI2ODEsNyAr MjY4Myw3IEBACiAgICAgbm90IG92ZXJsYXAuICAqLwogIHN0YXRpYyB2b2lkCiAgbW92ZV9iaXRz IChnZGJfYnl0ZSAqdGFyZ2V0LCBpbnQgdGFyZ19vZmZzZXQsIGNvbnN0IGdkYl9ieXRlICpzb3Vy Y2UsCkBAIC02NDgsNyArNjQ4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtbGFuZy5jCiAgewogICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOwogICAgaW50IGFjY3Vt X2JpdHMsIGNodW5rX3NpemU7Ci1AQCAtMjczMiw3ICsyNzM0LDcgQEAgYWRhX3ZhbHVlX2Fzc2ln biAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcworQEAgLTI3NzEsNyArMjc3Myw3IEBACiAgICAgIHsK ICAgICAgICBpbnQgbGVuID0gKHZhbHVlX2JpdHBvcyAodG92YWwpCiAgCQkgKyBiaXRzICsgSE9T VF9DSEFSX0JJVCAtIDEpIC8gSE9TVF9DSEFSX0JJVDsKQEAgLTY1Nyw3ICs2NTcsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBnZGJfYnl0ZSAq YnVmZmVyID0gKGdkYl9ieXRlICopIGFsbG9jYSAobGVuKTsKICAgICAgICBzdHJ1Y3QgdmFsdWUg KnZhbDsKICAgICAgICBDT1JFX0FERFIgdG9fYWRkciA9IHZhbHVlX2FkZHJlc3MgKHRvdmFsKTsK LUBAIC0yNzgzLDcgKzI3ODUsNyBAQCB2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50IChzdHJ1Y3Qg dmFsdWUKK0BAIC0yODIyLDcgKzI4MjQsNyBAQAogICAgICAoTE9OR0VTVCkgICh2YWx1ZV9hZGRy ZXNzIChjb21wb25lbnQpIC0gdmFsdWVfYWRkcmVzcyAoY29udGFpbmVyKSk7CiAgICBpbnQgYml0 X29mZnNldF9pbl9jb250YWluZXIgPQogICAgICB2YWx1ZV9iaXRwb3MgKGNvbXBvbmVudCkgLSB2 YWx1ZV9iaXRwb3MgKGNvbnRhaW5lcik7CkBAIC02NjYsNyArNjY2LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgICB2YWwgPSB2YWx1ZV9jYXN0ICh2 YWx1ZV90eXBlIChjb21wb25lbnQpLCB2YWwpOwogIAotQEAgLTQzOTIsNyArNDM5NCw3IEBAIGVu c3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC00NDgwLDcgKzQ0ODIsNyBAQAogICAg aWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbm90X2x2YWwKICAgICAgICB8fCBWQUxVRV9MVkFMICh2 YWwpID09IGx2YWxfaW50ZXJuYWx2YXIpCiAgICAgIHsKQEAgLTY3NSw3ICs2NzUsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JF X0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFj ZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAtNDQ3Niw3ICs0NDc4LDcgQEAgc3RhdGljIENP UkVfQUREUgorQEAgLTQ1NjQsNyArNDU2Niw3IEBACiAgdmFsdWVfcG9pbnRlciAoc3RydWN0IHZh bHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKQEAgLTY4NCw3ICs2ODQsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgIGdkYl9ieXRlICpidWYgPSAo Z2RiX2J5dGUgKikgYWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtNjcx MSw3ICs2NzEzLDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgor QEAgLTY3OTksNyArNjgwMSw3IEBACiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNz KQogIHsKQEAgLTY5Myw3ICs2OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS1sYW5nLmMKICAgIHN0cnVjdCB0eXBlICp0YWdfdHlwZTsKICAKICAgIGlmIChmaW5kX3N0 cnVjdF9maWVsZCAoIl90YWciLCB0eXBlLCAwLCAmdGFnX3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQs Ci1AQCAtNzE4MSw3ICs3MTgzLDcgQEAgYWRhX2luX3ZhcmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1 Y3QgdHlwZQorQEAgLTcyODAsNyArNzI4Miw3IEBACiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBo YW5kbGUgcGFja2VkIHZhbHVlcyBvZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqCkBAIC03MDIsNyArNzAyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5 cGUgKmFyZ190eXBlKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwotQEAgLTcxOTMsNyArNzE5 NSw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTcyOTIs NyArNzI5NCw3IEBACiAgCiAgICBpZiAoVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmll bGRubykgIT0gMCkKICAgICAgewpAQCAtNzExLDcgKzcxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklF TERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pOwogIAogICAgICAgIHJldHVybiBhZGFfdmFs dWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKGFyZzEsIHZhbHVlX2NvbnRlbnRzIChhcmcxKSwKLUBA IC03MjIwLDkgKzcyMjIsOSBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUKK0BAIC03MzE5LDkgKzczMjEsOSBAQAogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhl cndpc2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTcyMyw3ICs3MjMsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCSAgIGludCAqaW5kZXhfcCkKICB7 CiAgICBpbnQgaTsKLUBAIC03MjQwLDggKzcyNDIsOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZSwgc3RyCitAQCAtNzMzOSw4ICs3MzQxLDggQEAKICAKICAgIGZvciAoaSA9 IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsKQEAgLTczNCw3ICs3 MzQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAg ICBjb25zdCBjaGFyICp0X2ZpZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwog IAogICAgICAgIGlmICh0X2ZpZWxkX25hbWUgPT0gTlVMTCkKLUBAIC03MzExLDcgKzczMTMsNyBA QCBudW1fdmlzaWJsZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTc0MTAsNyArNzQx Miw3IEBACiAgICAgU2VhcmNoZXMgcmVjdXJzaXZlbHkgdGhyb3VnaCB3cmFwcGVyIGZpZWxkcyAo ZS5nLiwgJ19wYXJlbnQnKS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NDMs NyArNzQzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGludCBp OwotQEAgLTczNDQsNyArNzM0Niw3IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICpuYW0KK0BAIC03NDQzLDcgKzc0NDUsNyBAQAogICAgICAgICAgICBpbnQgajsKICAgICAg ICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBhZGFfY2hlY2tfdHlwZWRlZiAoVFlQRV9G SUVMRF9UWVBFICh0eXBlLAogIAkJCQkJCQkJCWkpKTsKQEAgLTc1Miw3ICs3NTIsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICAgICAgZm9y IChqID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkKICAgICAgICAg ICAgICB7Ci1AQCAtNzM2Miw4ICs3MzY0LDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNv bnN0IGNoYXIgKm5hbQorQEAgLTc0NjEsOCArNzQ2Myw4IEBACiAgICByZXR1cm4gTlVMTDsKICB9 CiAgCkBAIC03NjMsNyArNzYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtbGFuZy5jCiAgCiAgCiAgLyogUmV0dXJuIGZpZWxkICNJTkRFWCBpbiBBUkcsIHdoZXJlIHRo ZSBpbmRleCBpcyB0aGF0IHJldHVybmVkIGJ5Ci1AQCAtNzM3Miw3ICs3Mzc0LDcgQEAgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maQorQEAgLTc0NzEsNyArNzQ3Myw3IEBA CiAgICogSWYgZm91bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAg c3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NzIsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCQkJc3RydWN0IHR5cGUgKnR5cGUpCiAgewog ICAgcmV0dXJuIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoJmluZGV4LCBhcmcsIG9mZnNldCwg dHlwZSk7Ci1AQCAtNzM4NCw3ICs3Mzg2LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50 IGluZGV4LCBzdHJ1YworQEAgLTc0ODMsNyArNzQ4NSw3IEBACiAgICogKklOREVYX1AuICAqLwog IAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtNzgxLDcgKzc4MSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3RydWN0IHR5cGUgKnR5cGUp CiAgewogICAgaW50IGk7Ci1AQCAtNzQ3NCw3ICs3NDc2LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9l bHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTc1NzMsNyArNzU3NSw4IEBACiAgICAgIHYgPSBh ZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAobmFtZSwgYXJnLCAwLCB0KTsKICAgIGVsc2UKICAgICAg ewpAQCAtNzkxLDcgKzc5MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRh LWxhbmcuYwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlOwogICAgICAgIENPUkVfQURE UiBhZGRyZXNzOwogIAotQEAgLTc3OTEsOCArNzc5NCw4IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1 Y3QgdmFsdWUgKnZhbDApCitAQCAtNzkwNCw4ICs3OTA3LDggQEAKICAvKiBSZXR1cm4gT0ZGIHJv dW5kZWQgdXB3YXJkIGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxlIG9mCiAgICAgQUxJR05NRU5U IChhIHBvd2VyIG9mIDIpLiAgKi8KICAKQEAgLTgwMiw3ICs4MDIsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdu bWVudCAtIDEpICYgfihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtODE4NiwxMCArODE4OSw5IEBA IGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04Mjk5LDEwICs4 MzAyLDkgQEAKICAgIHN0cnVjdCB2YWx1ZSAqbWFyayA9IHZhbHVlX21hcmsgKCk7CiAgICBzdHJ1 Y3QgdmFsdWUgKmR2YWw7CiAgICBzdHJ1Y3QgdHlwZSAqcnR5cGU7CkBAIC04MTUsNyArODE1LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICBpbnQgZjsK ICAKICAgIC8qIENvbXB1dGUgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdGhpcyByZWNvcmQgdHlw ZSB0aGF0IGFyZSBnb2luZwotQEAgLTgyNjcsNyArODI2OSw3IEBAIGFkYV90ZW1wbGF0ZV90b19m aXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04MzgwLDcgKzgzODIsNyBAQAogIAkgICAgIHRo YXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAoZmll bGRfdHlwZSkpCiAgCSAgICB7CkBAIC04MjQsNyArODI0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgCSAgICAgIGZpZWxkX3ZhbGFkZHIgPSBjb25k X29mZnNldF9ob3N0IChmaWVsZF92YWxhZGRyLCBmaWVsZF9vZmZzZXQpOwogIAkgICAgICBmaWVs ZF9hZGRyZXNzID0gY29uZF9vZmZzZXRfdGFyZ2V0IChmaWVsZF9hZGRyZXNzLCBmaWVsZF9vZmZz ZXQpOwotQEAgLTg0MDMsMTEgKzg0MDUsMTEgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29y ZF90eXBlXzEgKHN0cgorQEAgLTg1MTYsMTEgKzg1MTgsMTEgQEAKICAgIGlmIChUWVBFX0xFTkdU SCAodHlwZSkgPD0gMCkKICAgICAgewogICAgICAgIGlmIChUWVBFX05BTUUgKHJ0eXBlKSkKQEAg LTg0MCw3ICs4NDAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5n LmMKICAgICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAtODg3NCw3ICs4ODc2LDggQEAgdG9fZml4 ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAorQEAgLTg5ODcsNyArODk4OSw4IEBA CiAgCSB0eXBlIHdhcyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5cGUuICBBcyBhIHJl c3VsdCwgdGhlCiAgCSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBuZWVkcyB0byBiZSBz ZXQgYWdhaW4sIGFuZCB0aGUgYXJyYXkKICAJIGxlbmd0aCBuZWVkcyB0byBiZSByZWNvbXB1dGVk IGJhc2VkIG9uIHRoYXQgYml0c2l6ZS4gICovCkBAIC04NTAsMTEgKzg1MCwxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBpbnQgZWx0X2JpdHNp emUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKICAKICAgICAgICBUWVBFX0ZJRUxE X0JJVFNJWkUgKHJlc3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuaAorSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE3NzM1MTQy MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCTIwMTUtMTEt MDIgMjE6MjM6MTMuMTk4MzY0NzIxICswMTAwCi1AQCAtMTY4LDcgKzE2OCw3IEBAIGV4dGVybiB2 b2lkIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNTQ1MTAxMjUgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUyODUzMDAzNiArMDIwMAorQEAgLTE2OCw3ICsxNjgsNyBAQAogIGV4dGVybiB2b2lkIGFk YV9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3X3N5 bWJvbCwKICAJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgCkBAIC04NjMsNyAr ODYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAgCQkJ ICAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAog IAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotQEAgLTE4Myw3ICsx ODMsNyBAQCBleHRlcm4gdm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0CitAQCAtMTgz LDcgKzE4Myw3IEBACiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlw ZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRzdHIgKHN0 cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC04NzIs NyArODcyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAg CQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKICBzdHJ1Y3QgdmFs dWUgKmFkYV9jb252ZXJ0X2FjdHVhbCAoc3RydWN0IHZhbHVlICphY3R1YWwsCi1AQCAtMjU1LDcg KzI1NSw3IEBAIGV4dGVybiBpbnQgYWRhX2lzX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnIKK0BAIC0y NTUsNyArMjU1LDcgQEAKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICphZGFfdmFsdWVfcHJpbWl0 aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJCSAgICAgY29uc3QgZ2RiX2J5 dGUgKiwKQEAgLTg4MSwxMSArODgxLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLWxhbmcuaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphZGFf Y29lcmNlX3RvX3NpbXBsZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2FkYS10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3 NzM1MTQyMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAKLUBAIC04OTEsOCArODkxLDgg QEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA1NTUxMDEzMyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdHlwZXBy aW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKK0BAIC04OTEsOCArODkx LDggQEAKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKICAK ICAJICAgIGlmICghYWRhX2lzX3JhbmdlX3R5cGVfbmFtZSAobmFtZSkpCkBAIC04OTYsNyArODk2 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMKICAJ ICAgIGVsc2UKICAJICAgICAgewogIAkJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAicmFuZ2Ug Iik7Ci1AQCAtOTEzLDcgKzkxMyw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZTAsIGNvbnMKK0BAIC05MTMsNyArOTEzLDggQEAKICAJICB9CiAgCWJyZWFrOwogICAgICAgIGNh c2UgVFlQRV9DT0RFX0ZMVDoKQEAgLTkwNiwxMCArOTA2LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLXR5cGVwcmludC5jCiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQ RV9DT0RFX0VOVU06CiAgCWlmIChzaG93IDwgMCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYWRhLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRh LXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9hZGEtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3OTM1MTQzNiArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjE5OTM2NDcyOCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2Fk YS12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU2NTEwMTQxICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTI4NTMwMDM2ICswMjAwCiBAQCAtMzMsMTEgKzMzLDExIEBACiAgI2luY2x1ZGUgIm9iamZpbGVz LmgiCiAgCkBAIC05MjQsNyArOTI0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtdmFscHJpbnQuYwogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAq KTsKICAMCiAgCi1AQCAtMjc5LDcgKzI3OSw3IEBAIGFkYV9lbWl0X2NoYXIgKGludCBjLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKK0BAIC0yNzksNyArMjc5LDcgQEAKICAgICBvZiBhIGNoYXJhY3Rlci4g ICovCiAgCiAgc3RhdGljIGludApAQCAtOTMzLDcgKzkzMyw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMKICAJIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyKQogIHsKICAgIGlmICh0eXBlX2xlbiA9PSAxKQotQEAgLTQ0MSwxMSArNDQxLDExIEBAIGFk YV9wcmludF9zY2FsYXIgKHN0cnVjdCB0eXBlICp0eXBlLCBMT04KK0BAIC00NDEsMTEgKzQ0MSwx MSBAQAogIAogIHN0YXRpYyB2b2lkCiAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IHN0cnVjdCB0eXBlICplbHR0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtOTQ3LDcg Kzk0Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMK ICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0g MDsKICAgIGludCBuZWVkX2NvbW1hID0gMDsKLUBAIC00NjAsOSArNDYwLDkgQEAgcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAorQEAgLTQ2MCw5ICs0NjAsOSBAQAogICAg ICB7CiAgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5n CiAgICAgICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAtOTU5LDcg Kzk1OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMK ICAKICAgICAgICBRVUlUOwogIAotQEAgLTQ5Myw3ICs0OTMsOCBAQCBwcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitAQCAtNDkzLDcgKzQ5Myw4IEBACiAgCSAgYWRhX2Vt aXRfY2hhciAoY2hhcl9hdCAoc3RyaW5nLCBpLCB0eXBlX2xlbiwgYnl0ZV9vcmRlciksCiAgCQkJ IGVsdHR5cGUsIHN0cmVhbSwgJ1wnJywgdHlwZV9sZW4pOwogIAkgIGZwdXRzX2ZpbHRlcmVkICgi JyIsIHN0cmVhbSk7CkBAIC05NjksNyArOTY5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJp bnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEg PSAxOwotQEAgLTUyMSw3ICs1MjIsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgc3RydWN0CitAQCAtNTIxLDcgKzUyMiw3IEBACiAgCiAgdm9pZAogIGFkYV9wcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC05NzgsNyArOTc4 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkg ICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNTMxLDEy ICs1MzIsMTIgQEAgYWRhX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdAorQEAg LTUzMSwxMiArNTMyLDEyIEBACiAgCiAgc3RhdGljIGludAogIHByaW50X3ZhcmlhbnRfcGFydCAo c3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZF9udW0sCkBAIC05OTMsNyArOTkzLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0 IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdmFy X3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkX251bSk7Ci1AQCAtNTcyLDExICs1 NzMsMTEgQEAgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaQorQEAgLTU3 MiwxMSArNTczLDExIEBACiAgCiAgc3RhdGljIGludAogIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTAwNyw3ICsxMDA3 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJ ICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBpbnQgaSwg bGVuOwotQEAgLTY0Myw3ICs2NDQsNyBAQCBwcmludF9maWVsZF92YWx1ZXMgKHN0cnVjdCB0eXBl ICp0eXBlLCBjCitAQCAtNjQzLDcgKzY0NCw3IEBACiAgCSAgICB9CiAgCSAgZWxzZQogIAkgICAg ewpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtdmFscHJpbnQuYwogIAkgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUg KHR5cGUsIGkpOwogIAkgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogIAot QEAgLTY4OSw4ICs2OTAsOCBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5 cGUsCitAQCAtNjg5LDggKzY5MCw4IEBACiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKICAgIHN0cnVj dCB0eXBlICplbHR0eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CkBAIC0xMDI3LDcgKzEw MjcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAg CiAgICAvKiBXZSBrbm93IHRoYXQgRUxUVFlQRSBjYW5ub3QgcG9zc2libHkgYmUgbnVsbCwgYmVj YXVzZSB3ZSBhc3N1bWUKICAgICAgIHRoYXQgd2UncmUgY2FsbGVkIG9ubHkgd2hlbiBUWVBFIGlz IGEgc3RyaW5nLWxpa2UgdHlwZS4KLUBAIC03MDksNyArNzEwLDcgQEAgYWRhX3ZhbF9wcmludF9z dHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTcwOSw3ICs3MTAsNyBAQAogICAgICAgZWxl bWVudHMgdXAgdG8gaXQuICAqLwogICAgaWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRfbnVsbCkK ICAgICAgewpAQCAtMTAzNiw3ICsxMDM2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgICAgIC8qIExvb2sgZm9yIGEgTlVMTCBjaGFyLiAg Ki8KICAgICAgICBmb3IgKHRlbXBfbGVuID0gMDsKLUBAIC0xMDc0LDcgKzEwNzUsNyBAQCBhZGFf dmFsX3ByaW50X3JlZiAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtMTA3NCw3ICsxMDc1LDcg QEAKICAKICBzdGF0aWMgdm9pZAogIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCiAgCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1A QCAtMTE1Nyw3ICsxMTU4LDcgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29ucworQEAgLTExNTcsNyArMTE1OCw3IEBACiAgCiAgdm9pZAogIGFkYV92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTEwNTQsMTEgKzEw NTQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwog IAkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCSAgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5v dGF0ZS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2Fubm90YXRlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTkzNjQ3MjggKzAxMDAKLUBAIC01 NDIsMjEgKzU0MiwyMSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvYW5ub3RhdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUx MDE0OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5jCTIwMTYt MDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAwCitAQCAtNTMzLDIxICs1MzMsMjEgQEAKICB9 CiAgDAogIHZvaWQKQEAgLTEwODQsMTEgKzEwODQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9hbm5vdGF0ZS5jCiAgfQogIAogIHZvaWQKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYW5ub3RhdGUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h bm5vdGF0ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv YW5ub3RhdGUuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE3OTM1MTQzNiArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk5MzY0 NzI4ICswMTAwCi1AQCAtOTIsOCArOTIsOCBAQCBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9z b3VyY2VfZW5kICh2CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYW5ub3RhdGUu aAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hbm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAw CitAQCAtOTIsOCArOTIsOCBAQAogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3doZXJlICh2 b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpOwogIApAQCAtMTA5 OSwxMSArMTA5OSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRl LmgKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAodm9pZCk7CiAgZXh0ZXJuIHZv aWQgYW5ub3RhdGVfZWx0ICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9hcnJheV9zZWN0 aW9uX2VuZCAodm9pZCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51 eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tbGludXgtbmF0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hcm0tbGludXgt bmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODAzNTE0NDMgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAwMzY0 NzM0ICswMTAwCi1AQCAtMTA5OSw3ICsxMDk5LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVh a3BvaW50IChzdHJ1Y3QgdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FybS1s aW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 Mjk1MzAwNDQgKzAyMDAKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQAogICAgIEFERFI/ICAqLwogIHN0 YXRpYyBpbnQKICBhcm1fbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3Qg dGFyZ2V0X29wcyAqc2VsZiwKQEAgLTExMTIsMTEgKzExMTIsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hcm0tbGludXgtbmF0LmMKICB7CiAgICBjb25zdCBzdHJ1Y3QgYXJt X2xpbnV4X2h3YnBfY2FwICpjYXAgPSBhcm1fbGludXhfZ2V0X2h3YnBfY2FwICgpOwogICAgQ09S RV9BRERSIG1heF93cF9sZW5ndGgsIGFsaWduZWRfYWRkcjsKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYXgtZ2RiLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgt Z2RiLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1n ZGIuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE4MjM1MTQ1NiArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9heC1nZGIuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwMTM2NDc0MSArMDEw MAotQEAgLTgzLDEyICs4MywxMiBAQCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0 IGdkYmFyCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4wNjA1MTAxNzMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYXgtZ2RiLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAyMDAKK0BAIC04Mywx MiArODMsMTIgQEAKICBzdGF0aWMgdm9pZCBnZW5fc2lnbl9leHRlbmQgKHN0cnVjdCBhZ2VudF9l eHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdlbl9leHRlbmQgKHN0cnVjdCBh Z2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdlbl9mZXRjaCAoc3Ry dWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgc3RhdGljIHZvaWQgZ2Vu X3N5bV9vZmZzZXQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCBzeW1ib2wgKik7CiAgc3Rh dGljIHZvaWQgZ2VuX3Zhcl9yZWYgKHN0cnVjdCBnZGJhcmNoICosIHN0cnVjdCBhZ2VudF9leHBy ICpheCwKICAJCQkgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0cnVjdCBzeW1ib2wgKnZhcik7 Ci1AQCAtMTM2LDE1ICsxMzYsMTYgQEAgc3RhdGljIHZvaWQgZ2VuX2RlcmVmIChzdHJ1Y3QgYWdl bnRfZXhwcgorQEAgLTEzNiwxNSArMTM2LDE2IEBACiAgc3RhdGljIHZvaWQgZ2VuX2FkZHJlc3Nf b2YgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCBheHNfdmFsdWUgKik7CiAgc3RhdGljIHZv aWQgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50 X2V4cHIgKmF4LAogIAkJCSAgICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLApAQCAtMTE1MSw3 ICsxMTUxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIAkJ CQkgICAgIHN0cnVjdCB0eXBlICp0eXBlKTsKICBzdGF0aWMgdm9pZCBnZW5fc3RydWN0X3JlZiAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgICBz dHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKLUBAIC01MzksNyArNTQwLDcgQEAgZ2VuX2ZldGNoIChz dHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHN0cnVjdAorQEAgLTUzOCw3ICs1MzksNyBAQAogICAgIHJp Z2h0IHNoaWZ0IGl0IGJ5IC1ESVNUQU5DRSBiaXRzIGlmIERJU1RBTkNFIDwgMC4gIFRoaXMgZ2Vu ZXJhdGVzCiAgICAgdW5zaWduZWQgKGxvZ2ljYWwpIHJpZ2h0IHNoaWZ0cy4gICovCiAgc3RhdGlj IHZvaWQKQEAgLTExNjAsNyArMTE2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYXgtZ2RiLmMKICB7CiAgICBpZiAoZGlzdGFuY2UgPiAwKQogICAgICB7Ci1AQCAtNTkzLDcg KzU5NCw3IEBAIGdlbl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKK0BAIC01 OTIsNyArNTkzLDcgQEAKICAgICBwcm9ncmFtbWluZyBpbiBNTCwgaXQgd291bGQgYmUgY2xlYXJl ciB3aHkgdGhlc2UgYXJlIHRoZSBzYW1lCiAgICAgdGhpbmcuICAqLwogIHN0YXRpYyB2b2lkCkBA IC0xMTY5LDcgKzExNjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdk Yi5jCiAgewogICAgLyogSXQgd291bGQgc3VmZmljZSB0byBzaW1wbHkgcHVzaCB0aGUgb2Zmc2V0 IGFuZCBhZGQgaXQsIGJ1dCB0aGlzCiAgICAgICBtYWtlcyBpdCBlYXNpZXIgdG8gcmVhZCBwb3Np dGl2ZSBhbmQgbmVnYXRpdmUgb2Zmc2V0cyBpbiB0aGUKLUBAIC0xMjQ5LDcgKzEyNTAsNyBAQCBn ZW5fYWRkcmVzc19vZiAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzCitAQCAtMTI0OCw3ICsxMjQ5 LDcgQEAKICBzdGF0aWMgdm9pZAogIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9u ICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFs dWUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTE3OCw3ICsxMTc4LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIE5vdGUgdGhhdCBvcHNbaV0g ZmV0Y2hlcyA4IDw8IGkgYml0cy4gICovCiAgICBzdGF0aWMgZW51bSBhZ2VudF9vcCBvcHNbXQot QEAgLTEyODQsMTMgKzEyODUsMTMgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Np b24gKmV4cAorQEAgLTEyODMsMTMgKzEyODQsMTMgQEAKICAKICAgIC8qIFRoZSBmaXJzdCBhbmQg b25lLWFmdGVyLWxhc3QgYml0cyBpbiB0aGUgZmllbGQsIGJ1dCByb3VuZGVkIGRvd24KICAgICAg IGFuZCB1cCB0byBieXRlIGJvdW5kYXJpZXMuICAqLwpAQCAtMTE5Nyw3ICsxMTk3LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIAogICAgLyogVGhlIGluZGV4 IGluIG9wcyBvZiB0aGUgb3Bjb2RlIHdlJ3JlIGNvbnNpZGVyaW5nLiAgKi8KICAgIGludCBvcDsK LUBAIC0xNDA5LDcgKzE0MTAsNyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwCitAQCAtMTQwOCw3ICsxNDA5LDcgQEAKICBzdGF0aWMgdm9pZAogIGdlbl9wcmltaXRp dmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCQkgICAgIHN0cnVjdCBhZ2VudF9l eHByICpheCwgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogSXMgdGhp cyBhIGJpdGZpZWxkPyAgKi8KICAgIGlmIChUWVBFX0ZJRUxEX1BBQ0tFRCAodHlwZSwgZmllbGRu bykpCi1AQCAtMTQzNCw3ICsxNDM1LDcgQEAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4 cHJlc3Npb24gKgorQEAgLTE0MzMsNyArMTQzNCw3IEBACiAgc3RhdGljIGludAogIGdlbl9zdHJ1 Y3RfcmVmX3JlY3Vyc2l2ZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4 cHIgKmF4LAogIAkJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjE1LDExICsxMjE1 LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICBp bnQgaSwgcnNsdDsKICAgIGludCBuYmFzZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZW5lcmFsLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MTgyMzUxNDU2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVyYWwu YwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwMTM2NDc0MSArMDEwMAotQEAgLTE5Miw3ICsxOTIsNyBA QCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDYw NTEwMTczICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LWdlbmVyYWwuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTE5OSw3ICsxOTksNyBAQAog IAogIC8qIEFwcGVuZCBhIHRyYWNlX3F1aWNrIGluc3RydWN0aW9uIHRvIEVYUFIsIHRvIHJlY29y ZCBOIGJ5dGVzLiAgKi8KICB2b2lkCkBAIC0xMjI4LDExICsxMjI4LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBtdXN0IGZpdCBp biBhIGJ5dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2F4LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2F4LmgJMjAx NS0xMS0wMiAyMToyMzoxMS4xODMzNTE0NjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYXguaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwMTM2NDc0MSArMDEwMAotQEAgLTIwNyw3 ICsyMDcsNyBAQCBleHRlcm4gdm9pZCBheF9leHQgKHN0cnVjdCBhZ2VudF9leHByICpFCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXguaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2 MDUxMDE3MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC5oCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTI5NTMwMDQ0ICswMjAwCitAQCAtMjEwLDcgKzIxMCw3IEBACiAgZXh0ZXJu IHZvaWQgYXhfemVyb19leHQgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCiAg LyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4g Ynl0ZXMuICAqLwpAQCAtMTI0MSwxMSArMTI0MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2F4LmgKICAKICAvKiBBcHBlbmQgYSBnb3RvIG9wIHRvIEVYUFIuICBPUCBpcyB0 aGUgYWN0dWFsIG9wIChtdXN0IGJlIGFvcF9nb3RvIG9yCiAgICAgYW9wX2lmX2dvdG8pLiAgV2Ug YXNzdW1lIHdlIGRvbid0IGtub3cgdGhlIHRhcmdldCBvZmZzZXQgeWV0LAotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYnJlYWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTg4MzUxNDk2ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTExLTAy IDIxOjIzOjEzLjIwNTM2NDc2NyArMDEwMAotQEAgLTIyMTUsOSArMjIxNSw5IEBAIHNob3VsZF9i ZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjc1MTAyMzAgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTMxNTMwMDYwICswMjAwCitAQCAtMjI1MSw5ICsyMjUxLDkgQEAKICAJewogIAkg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVuOiBzdGVw cGluZyBwYXN0IG5vbi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI1Nyw3ICsxMjU3LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmMKICAJfQogICAg ICAgIHJldHVybiAwOwogICAgICB9Ci1AQCAtNzA1Myw3ICs3MDUzLDcgQEAgYnJlYWtwb2ludF9h ZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcworQEAgLTcxODEsNyArNzE4MSw3IEBACiAgCiAg c3RhdGljIGludAogIGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSAoc3RydWN0IGFkZHJl c3Nfc3BhY2UgKmFzcGFjZTEsIENPUkVfQUREUiBhZGRyMSwKQEAgLTEyNjYsNyArMTI2Niw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVf QUREUiBhZGRyMikKICB7CiAgICByZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2lu dHMgKHRhcmdldF9nZGJhcmNoICgpKQotQEAgLTExMzg3LDcgKzExMzg3LDcgQEAgY2FuX3VzZV9o YXJkd2FyZV93YXRjaHBvaW50IChzdHJ1Y3QgdmFsdQorQEAgLTExNTM0LDcgKzExNTM0LDcgQEAK ICAJCSAgICAgICYmIFRZUEVfQ09ERSAodnR5cGUpICE9IFRZUEVfQ09ERV9BUlJBWSkpCiAgCQl7 CiAgCQkgIENPUkVfQUREUiB2YWRkciA9IHZhbHVlX2FkZHJlc3MgKHYpOwpAQCAtMTI3NSwxMSAr MTI3NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYwog IAkJICBpbnQgbnVtX3JlZ3M7CiAgCiAgCQkgIGxlbiA9ICh0YXJnZXRfZXhhY3Rfd2F0Y2hwb2lu dHMKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5oCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAyIDIxOjIz OjExLjE5MDM1MTUwOSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3Bv aW50LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAKLUBAIC0yMzcsNyArMjM3 LDcgQEAgc3RydWN0IGJwX3RhcmdldF9pbmZvCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvYnJlYWtwb2ludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY4NTEwMjM4ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTIzNyw3ICsyMzcsNyBAQAogIAogICAgLyogSWYgdGhp cyBpcyBhIHJhbmdlZCBicmVha3BvaW50LCB0aGVuIHRoaXMgZmllbGQgY29udGFpbnMgdGhlCiAg ICAgICBsZW5ndGggb2YgdGhlIHJhbmdlIHRoYXQgd2lsbCBiZSB3YXRjaGVkIGZvciBleGVjdXRp b24uICAqLwpAQCAtMTI4OCw3ICsxMjg4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9icmVha3BvaW50LmgKICAKICAgIC8qIElmIHRoZSBicmVha3BvaW50IGxpdmVzIGluIG1l bW9yeSBhbmQgcmVhZGluZyB0aGF0IG1lbW9yeSB3b3VsZAogICAgICAgZ2l2ZSBiYWNrIHRoZSBi cmVha3BvaW50LCBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbCBjb250ZW50cywgdGhlbgotQEAgLTQx Myw3ICs0MTMsNyBAQCBzdHJ1Y3QgYnBfbG9jYXRpb24KK0BAIC00MTMsNyArNDEzLDcgQEAKICAg IC8qIEZvciBoYXJkd2FyZSB3YXRjaHBvaW50cywgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByZWdp b24gYmVpbmcKICAgICAgIHdhdGNoZWQuICBGb3IgaGFyZHdhcmUgcmFuZ2VkIGJyZWFrcG9pbnRz LCB0aGUgc2l6ZSBvZiB0aGUKICAgICAgIGJyZWFrcG9pbnQgcmFuZ2UuICAqLwpAQCAtMTI5Nywx MSArMTI5NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQu aAogIAogICAgLyogVHlwZSBvZiBoYXJkd2FyZSB3YXRjaHBvaW50LiAgKi8KICAgIGVudW0gdGFy Z2V0X2h3X2JwX3R5cGUgd2F0Y2hwb2ludF90eXBlOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9jLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtbGFuZy5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkwMzUxNTA5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2MtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0NzczICswMTAwCi1A QCAtMTg3LDcgKzE4Nyw3IEBAIGNfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUs IHMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jLWxhbmcuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA2OTUxMDI0NiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9j LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTE4Niw3ICsx ODYsNyBAQAogIAogIHZvaWQKICBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgCkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5jCiAgCSAgICBjb25zdCBjaGFyICp1c2VyX2VuY29kaW5n LCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNjc2LDcgKzY3Niw3IEBAIGV2YWx1YXRlX3N1YmV4cF9j IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3QKK0BAIC02NzUsNyArNjc1LDcgQEAKICAJICB9CiAgCWVs c2UKICAJICB7CkBAIC0xMzE5LDcgKzEzMTksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2MtbGFuZy5jCiAgCiAgCSAgICAvKiBXcml0ZSB0aGUgdGVybWluYXRpbmcgY2hhcmFj dGVyLiAgKi8KICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7ICsraSkK LUBAIC02ODUsNyArNjg1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpleHBl Y3RfdAorQEAgLTY4NCw3ICs2ODQsNyBAQAogIAkgICAgaWYgKHNhdGlzZnlfZXhwZWN0ZWQpCiAg CSAgICAgIHsKICAJCUxPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTMyOCwxMSAr MTMyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5jCiAgCiAg CQlpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFIChleHBlY3RfdHlwZSks CiAgCQkJCQkgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv Yy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9j LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5MTM1MTUxNSArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9jLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNjM2NDc3MyAr MDEwMAotQEAgLTc0LDcgKzc0LDcgQEAgZXh0ZXJuIHZvaWQgY19wcmludF90eXBlZGVmIChzdHJ1 Y3QgdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTYt MDctMTYgMTQ6MzM6NDIuMDY5NTEwMjQ2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2MtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtNzcs NyArNzcsNyBAQAogIAkJCSAgICAgc3RydWN0IHVpX2ZpbGUgKik7CiAgCiAgZXh0ZXJuIHZvaWQg Y192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC0xMzQxLDcg KzEzNDEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5oCiAgCQkJ IHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJ IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotQEAgLTk0LDcgKzk0LDcgQEAg ZXh0ZXJuIHZvaWQgY19wcmludGNoYXIgKGludCwgc3RydWN0IHR5cAorQEAgLTk3LDcgKzk3LDcg QEAKICBleHRlcm4gdm9pZCBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwKICAJ CQlzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwKICAJCQljb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAt MTM1MCwyOCArMTM1MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFu Zy5oCiAgCQkJY29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywKICAJCQlpbnQgZm9yY2VfZWxsaXBz ZXMsCiAgCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotQEAg LTEyMCwxNCArMTIwLDE0IEBAIGV4dGVybiB2b2lkIGNwX3ByaW50X2NsYXNzX21lbWJlciAoY29u c3QKLSAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKiwgY2hhciAqKTsKLSAKLSBleHRlcm4gdm9pZCBj cF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi0tCQkJ CSAgIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAotKwkJCQkgICBjb25zdCBnZGJf Ynl0ZSAqLCBMT05HRVNULCBDT1JFX0FERFIsCi0gCQkJCSAgIHN0cnVjdCB1aV9maWxlICosIGlu dCwKLSAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJCSAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICosCi0gCQkJCSAgIHN0cnVjdCB0eXBlICoqLCBpbnQpOwotIAot IGV4dGVybiB2b2lkIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZSAqLAot LQkJCQkJY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0rCQkJCQljb25zdCBnZGJf Ynl0ZSAqLCBMT05HRVNULCBDT1JFX0FERFIsCi0gCQkJCQlzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQs Ci0gCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICosCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtdmFscHJp bnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAx NS0xMS0wMiAyMToyMzoxMS4xOTEzNTE1MTUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYy12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1A QCAtMjQyLDcgKzI0Miw3IEBAIGNfdmFsX3ByaW50X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y28KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYy12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAt MjQ0LDcgKzI0NCw3IEBACiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gMCAmJiBUWVBFX0xF TkdUSCAodW5yZXNvbHZlZF9lbHR0eXBlKSA+IDApCiAgICAgIHsKICAgICAgICBMT05HRVNUIGxv d19ib3VuZCwgaGlnaF9ib3VuZDsKQEAgLTEzODAsNyArMTM2Myw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCiAgICAgICAgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKICAgICAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICAgICAgdW5zaWduZWQg aW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KLUBAIC0zMTYs OCArMzE2LDggQEAgY192YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAg LTMxOCw4ICszMTgsOCBAQAogIAkgIGlmIChjcF9pc192dGJsX3B0cl90eXBlIChlbHR0eXBlKSkK ICAJICAgIHsKICAJICAgICAgaSA9IDE7CkBAIC0xMzkxLDcgKzEzNzQsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtdmFscHJpbnQuYwogIAkgICAgfQogIAkgIGVsc2UKICAJ ICAgIHsKLUBAIC0zOTQsNyArMzk0LDcgQEAgY192YWxfcHJpbnRfc3RydWN0IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgYworQEAgLTM5Niw3ICszOTYsNyBAQAogIAkgLWZ2dGFibGVfdGh1bmtzLiAgKE90 aGVyd2lzZSwgbG9vayB1bmRlcgogIAkgVFlQRV9DT0RFX1BUUi4pICAqLwogICAgICAgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CkBAIC0xNDAwLDcgKzEz ODMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtdmFscHJpbnQuYwogIAkJ ICAgICsgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsCiAgCQkJCQkgVlRCTF9GTkFERFJfT0ZGU0VU KSAvIDgpOwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gVFlQRV9GSUVMRF9UWVBF ICh0eXBlLCBWVEJMX0ZOQUREUl9PRkZTRVQpOwotQEAgLTQ5Myw3ICs0OTMsNyBAQCBjX3ZhbF9w cmludF9tZW1iZXJwdHIgKHN0cnVjdCB0eXBlICp0eXBlCitAQCAtNDk1LDcgKzQ5NSw3IEBACiAg CiAgdm9pZAogIGNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCkBAIC0xNDA5LDI5ICsxMzkyLDE4IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYy12YWxwcmludC5jCiAgCSAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJ ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBAIC01NjUs NyArNTY1LDggQEAgY192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdAotIAkg ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi0gewotICAg c3RydWN0IHR5cGUgKnR5cGUsICpyZWFsX3R5cGUsICp2YWxfdHlwZTsKLS0gIGludCBmdWxsLCB0 b3AsIHVzaW5nX2VuYzsKLSsgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rICBMT05HRVNUIHRvcDsK LSAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKLSAKLSAgIG9w dHMuZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtYWJp LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTExLTAyIDIx OjIzOjExLjE5MjM1MTUyMiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1h YmkuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNzM2NDc4MCArMDEwMAotQEAgLTY0LDEyICs2NCwx MiBAQCBpc19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lKQorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcwNTEwMjU0 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NwLWFiaS5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtNjQsMTIgKzY0LDEyIEBACiAgICByZXR1cm4g KCpjdXJyZW50X2NwX2FiaS5pc19vcGVyYXRvcl9uYW1lKSAobmFtZSk7CiAgfQogIAogLWludAog K0xPTkdFU1QKICBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4 LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09S RV9BRERSIGFkZHJlc3MsCi0rCQkgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIg YWRkcmVzcywKKyAJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAtICBpbnQgcmVzID0gMDsKQEAg LTE0MzksNyArMTQxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtYWJp LmMKICAKICAgIGdkYl9hc3NlcnQgKGN1cnJlbnRfY3BfYWJpLmJhc2VjbGFzc19vZmZzZXQgIT0g TlVMTCk7CiAgCi1AQCAtOTYsNyArOTYsNyBAQCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50CitAQCAtOTYsNyArOTYsNyBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVf dmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsCiAgCQkJc3RydWN0IGZuX2Zp ZWxkICpmLCBpbnQgaiwKQEAgLTE0NDgsMjAgKzE0MjAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9jcC1hYmkuYwogIHsKICAgIGlmICgoY3VycmVudF9jcF9hYmkudmlydHVh bF9mbl9maWVsZCkgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTA2LDcgKzEwNiw3 IEBAIHZhbHVlX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmEKLSAKLSBzdHJ1Y3Qg dHlwZSAqCi0gdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwKLS0J CSBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMpCi0rCQkgTE9OR0VTVCAqdG9wLCBpbnQgKnVzaW5n X2VuYykKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVMTDsKLSAKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvY3AtYWJpLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvY3AtYWJpLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9jcC1hYmkuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5MjM1MTUyMiArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNzM2NDc4 MCArMDEwMAotQEAgLTEwOCw3ICsxMDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92 aXJ0dWFsX2ZuX2ZpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtYWJpLmgJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvY3AtYWJpLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BA IC0xMDgsNyArMTA4LDcgQEAKICAJCQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICpmLAogIAkJCQkJ ICAgICBpbnQgaiwKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xNDcwLDIyICsx NDMzLDEzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtYWJpLmgKICAKICAK ICAvKiBUcnkgdG8gZmluZCB0aGUgcnVuLXRpbWUgdHlwZSBvZiBWQUxVRSwgdXNpbmcgQysrIHJ1 bi10aW1lIHR5cGUKLUBAIC0xMzUsNyArMTM1LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfdmlydHVhbF9mbl9maQotICAgIEZVTEwsIFRPUCwgYW5kIFVTSU5HX0VOQyBjYW4gZWFjaCBi ZSB6ZXJvLCBpbiB3aGljaCBjYXNlIHdlIGRvbid0Ci0gICAgcHJvdmlkZSB0aGUgY29ycmVzcG9u ZGluZyBwaWVjZSBvZiBpbmZvcm1hdGlvbi4gICovCi0gZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1 ZV9ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCAqZnVsbCwgaW50ICp0b3AsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAqZnVsbCwgTE9OR0VTVCAqdG9wLAotIAkJCQkgICAgIGlu dCAqdXNpbmdfZW5jKTsKLSAKLSAvKiBDb21wdXRlIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFz cyB3aGljaCBpcyB0aGUgSU5ERVh0aCBiYXNlY2xhc3MKLUBAIC0xNDQsMTEgKzE0NCwxMSBAQCBl eHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3RyCitAQCAtMTQ0LDExICsxNDQs MTEgQEAKICAgICBjb250ZW50cyBvZiBWQUwuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2Yg dGhlIGJhc2VjbGFzcyB2YWx1ZQogICAgIHJlbGF0aXZlIHRvICh0aGUgYWRkcmVzcyBvZikoQVJH KSArIE9GRlNFVC4gICovCiAgCiAtZXh0ZXJuIGludCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3Qg dHlwZSAqdHlwZSwKIC0JCQkgICAgIGludCBpbmRleCwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs Ci0tCQkJICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorLQkJCSAgICAgTE9OR0VTVCBlbWJlZGRl ZF9vZmZzZXQsCiAtCQkJICAgICBDT1JFX0FERFIgYWRkcmVzcywKIC0JCQkgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsKTsKICtleHRlcm4gTE9OR0VTVCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1 Y3QgdHlwZSAqdHlwZSwKQEAgLTE0OTYsNDggKzE0NTAsMjggQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9jcC1hYmkuaAogIAogIC8qIERlc2NyaWJlIHRoZSB0YXJnZXQgb2YgYSBw b2ludGVyIHRvIG1ldGhvZC4gIENPTlRFTlRTIGlzIHRoZSBieXRlCiAgICAgcGF0dGVybiByZXBy ZXNlbnRpbmcgdGhlIHBvaW50ZXIgdG8gbWV0aG9kLiAgVFlQRSBpcyB0aGUgcG9pbnRlciB0bwot QEAgLTIyNywxMiArMjI3LDEzIEBAIHN0cnVjdCBjcF9hYmlfb3BzCitAQCAtMjI3LDEyICsyMjcs MTIgQEAKICAgIHN0cnVjdCB2YWx1ZSAqKCp2aXJ0dWFsX2ZuX2ZpZWxkKSAoc3RydWN0IHZhbHVl ICoqYXJnMXAsCiAgCQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICogZiwKICAJCQkJICAgICBpbnQg aiwgc3RydWN0IHR5cGUgKiB0eXBlLAogLQkJCQkgICAgIGludCBvZmZzZXQpOwogKwkJCQkgICAg IExPTkdFU1Qgb2Zmc2V0KTsKICAgIHN0cnVjdCB0eXBlICooKnJ0dGlfdHlwZSkgKHN0cnVjdCB2 YWx1ZSAqdiwgaW50ICpmdWxsLAotLQkJCSAgICAgaW50ICp0b3AsIGludCAqdXNpbmdfZW5jKTsK KyAJCQkgICAgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpOwogLSAgaW50ICgqYmFzZWNs YXNzX29mZnNldCkgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCi0tCQkJICAgY29uc3Qg YmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCistCQkJICAgY29uc3QgYmZk X2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAogLQkJCSAgIENPUkVfQURE UiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7Ci0rCQkJICAgICBMT05HRVNUICp0 b3AsIGludCAqdXNpbmdfZW5jKTsKICsgIExPTkdFU1QgKCpiYXNlY2xhc3Nfb2Zmc2V0KSAoc3Ry dWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKLSsJCQkgICAgICAgY29uc3QgYmZkX2J5dGUgKnZh bGFkZHIsCi0rCQkJICAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRk cmVzcywKLSsJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOworKwkJCSAgICAgICBj b25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJICAg ICAgIENPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgICB2b2lk ICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKICAJCQkgICAg c3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2NwLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MTkzMzUxNTI5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLXZhbHByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKLUBAIC04MCw3ICs4MCw3IEBA IHN0YXRpYyB2b2lkIGNwX3ByaW50X3N0YXRpY19maWVsZCAoc3RydWMKLSAJCQkJICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci0gCi0gc3RhdGljIHZvaWQgY3BfcHJpbnRf dmFsdWUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi0tCQkJICAgIGNvbnN0IGdkYl9i eXRlICosIGludCwKLSsJCQkgICAgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKLSAJCQkgICAg Q09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLAotIAkJCSAgICBpbnQsIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqLAotIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotQEAg LTE1NCw3ICsxNTQsNyBAQCBjcF9pc192dGJsX21lbWJlciAoc3RydWN0IHR5cGUgKnR5cGUpCi0g Ci0gdm9pZAotIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVj dCB0eXBlICpyZWFsX3R5cGUsCi0tCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGlu dCBvZmZzZXQsCi0rCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qgb2Zm c2V0LAotIAkJICAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAotIAkJICAgICAgIGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0zMzQs NyArMzM0LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNi0wNy0xNiAx NDozMzo0Mi4wNzE1MTAyNjIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3At dmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTMzNCw3 ICszMzQsNyBAQAogIAkJfQogIAkgICAgICBlbHNlIGlmIChpID09IHZwdHJfZmllbGRubyAmJiB0 eXBlID09IHZwdHJfYmFzZXR5cGUpCiAgCQl7CkBAIC0xNTQ2LDU3ICsxNDgwLDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlw ZSAqaV90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHBy aW50X2NoZWNrX3ZhbGlkaXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1AQCAt NDE3LDcgKzQxNyw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUK LSAKLSB2b2lkCi0gY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlICp0eXBl LAotLQkJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IG9mZnNldCwKLSsJCQkgICAg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qgb2Zmc2V0LAotIAkJCSAgICBDT1JFX0FE RFIgYWRkcmVzcywKLSAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us Ci0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQzNCw3ICs0MzQsOCBAQCBj cF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKLSAJCQkJICAgICBUQVJHRVRf Q0hBUl9CSVQgKiBUWVBFX0xFTkdUSCAodHlwZSkpKQotICAgICB7Ci0gICAgICAgc3RydWN0IHZh bHVlICp2YWx1ZTsKLS0gICAgICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0rICAgICAgaW50 IGZ1bGwsIHVzaW5nX2VuYzsKLSsgICAgICBMT05HRVNUIHRvcDsKLSAKLSAgICAgICAvKiBVZ2gs IHdlIGhhdmUgdG8gY29udmVydCBiYWNrIHRvIGEgdmFsdWUgaGVyZS4gICovCi0gICAgICAgdmFs dWUgPSB2YWx1ZV9mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzICh0eXBlLCB2YWxhZGRyICsgb2Zm c2V0LAotQEAgLTQ1OSw3ICs0NjAsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3Ry dWN0IHR5cGUKLSAKLSBzdGF0aWMgdm9pZAotIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKLS0JCWNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LCBpbnQgb2Zmc2V0LAotKwkJY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qgb2Zmc2V0 LAotIAkJQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQlpbnQg cmVjdXJzZSwgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQljb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC00NjksNyArNDcwLDcgQEAgY3BfcHJpbnRfdmFs dWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YwotICAgICA9IChzdHJ1Y3QgdHlwZSAqKikgb2Jz dGFja19uZXh0X2ZyZWUgKCZkb250X3ByaW50X3ZiX29ic3RhY2spOwotICAgc3RydWN0IG9ic3Rh Y2sgdG1wX29ic3RhY2sgPSBkb250X3ByaW50X3ZiX29ic3RhY2s7Ci0gICBpbnQgaSwgbl9iYXNl Y2xhc3NlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci0tICBpbnQgdGhpc29mZnNldDsK LSsgIExPTkdFU1QgdGhpc29mZnNldDsKLSAgIHN0cnVjdCB0eXBlICp0aGlzdHlwZTsKLSAKLSAg IGlmIChkb250X3ByaW50X3ZiID09IDApCi1AQCAtNDgzLDcgKzQ4NCw3IEBAIGNwX3ByaW50X3Zh bHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKLSAKLSAgIGZvciAoaSA9IDA7IGkgPCBuX2Jh c2VjbGFzc2VzOyBpKyspCi0gICAgIHsKLS0gICAgICBpbnQgYm9mZnNldCA9IDA7Ci0rICAgICAg TE9OR0VTVCBib2Zmc2V0ID0gMDsKLSAgICAgICBpbnQgc2tpcCA9IDA7Ci0gICAgICAgc3RydWN0 IHR5cGUgKmJhc2VjbGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBp KSk7Ci0gICAgICAgY29uc3QgY2hhciAqYmFzZW5hbWUgPSBUWVBFX05BTUUgKGJhc2VjbGFzcyk7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZC1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1Mjkg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgJMjAxNS0xMS0wMiAy MToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKLUBAIC04MSw3ICs4MSw3IEBAIGV4dGVybiBzdHJ1Y3Qg YmxvY2tfc3ltYm9sIGRfbG9va3VwX25lc3QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9kLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9kLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUz MDA3NiArMDIwMAorQEAgLTgxLDcgKzgxLDcgQEAKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQu YyAgKi8KICAKICBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTYwNSwyMCArMTQ5MywxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9kLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvZC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkzMzUxNTI5ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAgLTI5LDcgKzI5LDcgQEAKLSAKLSBzdGF0aWMgaW50 Ci0gZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCi0tCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms Ci0rCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotIAkJ ICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAotIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKQotQEAgLTczLDkgKzczLDkgQEAgZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgYworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2QtdmFscHJp bnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9kLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzM1MzAwNzYg KzAyMDAKK0BAIC03Myw5ICs3Myw5IEBACiAgCiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3By aW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEQuICAqLwogIHZvaWQKQEAgLTE2MzEsMTEgKzE1MTAs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kLXZhbHByaW50LmMKICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewog ICAgaW50IHJldDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZG91Ymxlc3QuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZG91Ymxlc3QuYwkyMDE1LTExLTAyIDIx OjIzOjExLjE5NDM1MTUzNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3Vi bGVzdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA4MzY0Nzg3ICswMTAwCi1AQCAtNzY1LDcgKzc2 NSw3IEBAIGZsb2F0Zm9ybWF0X2Zyb21fZG91Ymxlc3QgKGNvbnN0IHN0cnVjdAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4w NzI1MTAyNzAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZG91Ymxlc3QuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAorQEAgLTc4NCw3ICs3ODQsNyBAQAog ICAgIGJ1dCBub3QgcGFzc2VkIG9uIGJ5IEdEQi4gIFRoaXMgc2hvdWxkIGJlIGZpeGVkLiAgKi8K ICAKICBzdGF0aWMgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoKQEAgLTE2NDQsNyArMTUyMyw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZG91Ymxlc3QuYwogIHsKICAgIGNv bnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqZm9ybWF0OwogIAotQEAgLTc5Myw4ICs3OTMsOCBAQCBm bG9hdGZvcm1hdF9mcm9tX2xlbmd0aCAoc3RydWN0IGdkYmFyY2gKK0BAIC04MTIsOCArODEyLDgg QEAKICAgIGVsc2UKICAgICAgZm9ybWF0ID0gTlVMTDsKICAgIGlmIChmb3JtYXQgPT0gTlVMTCkK QEAgLTE2NTUsMTEgKzE1MzQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9k b3VibGVzdC5jCiAgICByZXR1cm4gZm9ybWF0OwogIH0KICAKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv ZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9kd2FyZjJsb2MuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE5NzM1MTU1NSArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIw OTM2NDc5MyArMDEwMAotQEAgLTE2MzIsMTkgKzE2MzIsMTkgQEAgaW5zZXJ0X2JpdHMgKHVuc2ln bmVkIGludCBkYXR1bSwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9kd2FyZjJs b2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3NjUxMDMwMiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiAr MDIwMAorQEAgLTE2MzgsMTkgKzE2MzgsMTkgQEAKICAgICBCSVRTX0JJR19FTkRJQU4gaXMgdGFr ZW4gZGlyZWN0bHkgZnJvbSBnZGJhcmNoLiAgKi8KICAKICBzdGF0aWMgdm9pZApAQCAtMTY4NSw3 ICsxNTY0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwog IAogICAgZGVzdF9hdmFpbCA9IDggLSBkZXN0X29mZnNldF9iaXRzICUgODsKICAKLUBAIC0xNjgy LDEzICsxNjgyLDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTY4OCwxMyArMTY4OCwxMyBAQAogIHJl YWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCiAgewogICAgaW50IGk7CkBAIC0xNzAx LDcgKzE1ODAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5j CiAgICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7 CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKLUBAIC0xNzE1LDggKzE3MTUsOCBAQCByZWFk X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE3MjEsOCArMTcyMSw4IEBACiAg ICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykK ICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tp XTsKQEAgLTE3MTIsNyArMTU5MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZHdhcmYybG9jLmMKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsK ICAKICAgICAgICAvKiBDb21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNl dHMgZm9yIGNvcHlpbmcsIGluCi1AQCAtMTg1NiwxMyArMTg1NiwxMyBAQCBzdGF0aWMgdm9pZAor QEAgLTE4NjIsMTMgKzE4NjIsMTMgQEAKICB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqdG8sIHN0cnVjdCB2YWx1ZSAqZnJvbSkKICB7CiAgICBpbnQgaTsKQEAgLTE3MjgsNyArMTYw Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAgIHNp emVfdCBidWZmZXJfc2l6ZSA9IDA7CiAgICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKICAgIHN0 cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotQEAgLTE4OTAsOCArMTg5MCw4IEBAIHdyaXRlX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKK0BAIC0xODk2LDggKzE4OTYsOCBAQAogICAg Zm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07 CkBAIC0xNzM5LDE4ICsxNjE4LDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZHdhcmYybG9jLmMKICAgICAgICBpbnQgbmVlZF9iaXR3aXNlOwogICAgICAgIGNvbnN0IGdkYl9i eXRlICpzb3VyY2VfYnVmZmVyOwogIAotQEAgLTIwMTAsOCArMjAxMCw4IEBAIHdyaXRlX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKLSAgICBhIHN5bnRoZXRpYyBwb2ludGVyLiAg Ki8KK0BAIC0yMDE3LDcgKzIwMTcsNyBAQAogIAogIHN0YXRpYyBpbnQKLS1jaGVja19waWVjZWRf c3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zm c2V0LAorIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVl ICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0LAogLQkJCQlpbnQgYml0X2xlbmd0aCkKLStjaGVj a19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExP TkdFU1QgYml0X29mZnNldCwKICsJCQkJTE9OR0VTVCBiaXRfbGVuZ3RoKQogIHsKICAgIHN0cnVj dCBwaWVjZV9jbG9zdXJlICpjCiAgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVl X2NvbXB1dGVkX2Nsb3N1cmUgKHZhbHVlKTsKLUBAIC0yMDI0LDcgKzIwMjQsNyBAQCBjaGVja19w aWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0CitAQCAtMjAzMCw3ICsyMDMwLDcgQEAK ICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQog ICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ld OwpAQCAtMTc1OSwyMCArMTYzNiwxOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2R3YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjA2 Niw5ICsyMDY2LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwK K0BAIC0yMTMyLDggKzIxMzIsOCBAQAogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgICBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWU7CiAgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gYmF0b247 Ci0tICBpbnQgaSwgYml0X29mZnNldCwgYml0X2xlbmd0aDsKKy0gIGludCBpLCBiaXRfbGVuZ3Ro OworLSAgTE9OR0VTVCBiaXRfb2Zmc2V0OwogKyAgaW50IGk7Ci0rICBMT05HRVNUIGJpdF9sZW5n dGg7CisrICBMT05HRVNUIGJpdF9sZW5ndGgsIGJpdF9vZmZzZXQ7CiAgICBzdHJ1Y3QgZHdhcmZf ZXhwcl9waWVjZSAqcGllY2UgPSBOVUxMOwotLSAgTE9OR0VTVCBieXRlX29mZnNldDsKLSsgIExP TkdFU1QgYnl0ZV9vZmZzZXQsIGJpdF9vZmZzZXQ7CisgICBMT05HRVNUIGJ5dGVfb2Zmc2V0Owog ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXI7Ci0gCi0gICB0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKLUBAIC0yMDgzLDcgKzIwODQsNyBAQCBpbmRpcmVjdF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjE1MCw3ICsyMTUwLDcgQEAKICAg IGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAg ICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpA QCAtMTc4MSw3ICsxNjU2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2Fy ZjJsb2MuYwogIAogICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIzNjMsNyAr MjM2NCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKK0BAIC0y NDQ0LDcgKzI0NDQsNyBAQAogIAkgICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGR3YXJmX2V4cHJf ZmV0Y2ggKGN0eCwgMCk7CiAgCSAgICBnZGJfYnl0ZSAqY29udGVudHM7CiAgCSAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsX2J5dGVzOwpAQCAtMTc5MCwxMSArMTY2NSwxMSBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgCSAgICBpZiAoYnl0ZV9vZmZzZXQg KyBUWVBFX0xFTkdUSCAodHlwZSkgPiBuKQogIAkgICAgICBpbnZhbGlkX3N5bnRoZXRpY19wb2lu dGVyICgpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJyZWFkLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjA0MzUxNjAxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNTM2NDgzMyArMDEwMAotQEAgLTE5MTcs MTIgKzE5MTcsMTIgQEAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKAor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA4MzUxMDM1OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9k d2FyZjJyZWFkLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzY1MzAxMDAgKzAyMDAKK0BAIC0xOTM1 LDEyICsxOTM1LDEyIEBACiAgfQogIAogIHN0YXRpYyB2b2lkCkBAIC0xODExLDcgKzE2ODYsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwogIH0KICAKICBz dGF0aWMgdm9pZAotQEAgLTEyNTU0LDggKzEyNTU0LDggQEAgZHdhcmYyX2FkZF9maWVsZCAoc3Ry dWN0IGZpZWxkX2luZm8gKmZpcAorQEAgLTEyNTczLDggKzEyNTczLDggQEAKICAJICAgICAgICAg b2JqZWN0LCBhbmQgdGhlbiBzdWJ0cmFjdCBvZmYgdGhlIG51bWJlciBvZiBiaXRzIG9mCiAgCSAg ICAgICAgIHRoZSBmaWVsZCBpdHNlbGYuICBUaGUgcmVzdWx0IGlzIHRoZSBiaXQgb2Zmc2V0IG9m CiAgCSAgICAgICAgIHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE4MjIsMTEgKzE2OTcs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJyZWFkLmMKICAKICAJ ICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwogIAkg ICAgICBpZiAoYXR0cikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2V2YWwuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2V2YWwuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIw NjM1MTYxNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0zMTcsNyArMzE3LDggQEAgZXZhbHVh dGVfc3RydWN0X3R1cGxlIChzdHJ1Y3QgdmFsdWUgKnN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2V2YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NjUxMDM4MyArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 Mzc1MzAxMDggKzAyMDAKK0BAIC0zMTcsNyArMzE3LDggQEAKICAgIHdoaWxlICgtLW5hcmdzID49 IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CkBAIC0xODM2LDcg KzE3MTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogICAgICAg IGJmZF9ieXRlICphZGRyOwogIAogICAgICAgIGZpZWxkbm8rKzsKLUBAIC0zNzgsNyArMzc5LDcg QEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorQEAgLTM3OCw3ICsz NzksNyBAQAogIAkJICAgIGVudW0gbm9zaWRlIG5vc2lkZSwgTE9OR0VTVCBsb3dfYm91bmQsIExP TkdFU1QgaGlnaF9ib3VuZCkKICB7CiAgICBMT05HRVNUIGluZGV4OwpAQCAtMTg0NSw3ICsxNzIw LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMKICAKICAgIGlmIChl eHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IEJJTk9QX0NPTU1BKQogICAgICB7Ci1AQCAtNTI2LDEx ICs1MjcsMTEgQEAgYmlub3BfcHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZgorQEAg LTgyMiwxMSArODIzLDExIEBACiAgICAgIC8qIEZJWE1FOiBBbHNvIG1peGVkIGludGVncmFsL2Jv b2xlYW5zLCB3aXRoIHJlc3VsdCBhbiBpbnRlZ2VyLiAgKi8KICAgICAgewogICAgICAgIGNvbnN0 IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ1aWx0aW4gPSBidWlsdGluX3R5cGUgKGdkYmFyY2gpOwpA QCAtMTg2MCw3ICsxNzM1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFs LmMKICAgICAgICBpbnQgdW5zaWduZWRfb3BlcmF0aW9uOwogIAogICAgICAgIC8qIERldGVybWlu ZSB0eXBlIGxlbmd0aCBhbmQgc2lnbmVkbmVzcyBhZnRlciBwcm9tb3Rpb24gZm9yCi1AQCAtNzEy LDcgKzcxMyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKK0BA IC0xMDA4LDcgKzEwMDksNyBAQAogICAgc3RydWN0IHZhbHVlICoqYXJndmVjOwogICAgaW50IGNv ZGU7CiAgICBpbnQgaXg7CkBAIC0xODY5LDcgKzE3NDQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2V2YWwuYwogICAgc3RydWN0IHR5cGUgKiphcmdfdHlwZXM7CiAgICBpbnQg c2F2ZV9wb3MxOwogICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOwotQEAgLTg5MSw3 ICs4OTIsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAt MTE4Nyw3ICsxMTg4LDcgQEAKICAJICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5E RVhfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpOwogIAkgIHN0cnVjdCB2YWx1ZSAqYXJyYXkgPSBhbGxvY2F0ZV92YWx1 ZSAoZXhwZWN0X3R5cGUpOwpAQCAtMTg3OCwyMSArMTc1MywxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogIAkgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5k LCBpbmRleDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxv d19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC0xOTAwLDcgKzE5MDEsOCBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCi0gICAgICAgewotICAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcxKTsKLSAgICAgICAgIHN0cnVjdCB0eXBl ICpyZWFsX3R5cGU7Ci0tICAgICAgICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0rICAgICAg ICBpbnQgZnVsbCwgdXNpbmdfZW5jOwotKwlMT05HRVNUIHRvcDsKLSAJc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgb3B0czsKLSAKLSAJZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9mLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA2MzUxNjE0ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjE2MzY0ODM5ICswMTAwCi1AQCAtMTAzLDcgKzEwMyw3IEBAIGZfcHJpbnRjaGFyIChp bnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9mLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NzUxMDM5MSArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUz MDEwOCArMDIwMAorQEAgLTEwMyw3ICsxMDMsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgZl9wcmlu dHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICpzdHJpbmcsCkBAIC0xOTAxLDExICsxNzY2LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQogIHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBmX2dl dF9lbmNvZGluZyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFu Zy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAy MToyMzoxMS4yMDczNTE2MjAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1s YW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0zMCw3ICszMCw3 IEBAIGV4dGVybiB2b2lkIGZfZXJyb3IgKGNoYXIgKik7CS8qIERlZmluZWQKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NzUx MDM5MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLWxhbmcuaAkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAorQEAgLTMwLDcgKzMwLDcgQEAKICBleHRlcm4g dm9pZCBmX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVp X2ZpbGUgKiwgaW50LAogIAkJCSAgaW50LCBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25z ICopOwogIApAQCAtMTkxNCwxMSArMTc3OSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2YtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgY29uc3Qg c3RydWN0IHZhbHVlICosCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICop OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjA3MzUxNjIwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJp bnQuYwkyMDE1LTExLTAyIDIxOjI0OjM0LjEwODg5NzA5MCArMDEwMAotQEAgLTM4LDcgKzM4LDcg QEAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZl92YWxwcmludCAodm9pZAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4 NzUxMDM5MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKK0BAIC0zOCw3ICszOCw3IEBACiAg c3RhdGljIHZvaWQgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwogIHN0YXRpYyB2 b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsK ICAKQEAgLTE5MjcsNyArMTc5Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Zi12YWxwcmludC5jCiAgCiAgLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBs aWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCiAgICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJh eSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwotQEAgLTczLDggKzcz LDggQEAgZjc3X2dldF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC03Myw4ICs3 Myw4IEBACiAgc3RhdGljIHZvaWQKICBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0 ZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewpAQCAtMTkzOCw3ICsxODAzLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAKICAgIC8qIFJlY3Vyc2l2ZWx5 IGdvIGFsbCB0aGUgd2F5IGRvd24gaW50byBhIHBvc3NpYmx5IG11bHRpLWRpbWVuc2lvbmFsCiAg ICAgICBGNzcgYXJyYXkgYW5kIGdldCB0aGUgYm91bmRzLiAgRm9yIHNpbXBsZSBhcnJheXMsIHRo aXMgaXMgcHJldHR5Ci1AQCAtMTA2LDcgKzEwNiw3IEBAIGY3N19nZXRfZHluYW1pY19sZW5ndGhf b2ZfYWdncmVnYXRlIChzdHIKK0BAIC0xMDYsNyArMTA2LDcgQEAKICBzdGF0aWMgdm9pZAogIGY3 N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBlICp0 eXBlLAogIAkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xOTQ3LDcgKzE4MTIsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAkJICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAotQEAgLTExNSw3ICsxMTUsNyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5k aW1lbnNpCitAQCAtMTE1LDcgKzExNSw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9 IFRZUEVfSU5ERVhfVFlQRSAoY2hlY2tfdHlwZWRlZiAodHlwZSkpOwogICAgQ09SRV9BRERSIGFk ZHIgPSBhZGRyZXNzICsgZW1iZWRkZWRfb2Zmc2V0OwogICAgTE9OR0VTVCBsb3dlcmJvdW5kLCB1 cHBlcmJvdW5kOwpAQCAtMTk1Niw3ICsxODIxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9mLXZhbHByaW50LmMKICAKICAgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5 cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCk7CiAgCi1AQCAtMTc4LDcgKzE3OCw3IEBAIGY3 N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKK0BAIC0xNzIsNyArMTcyLDcg QEAKICAKICBzdGF0aWMgdm9pZAogIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTk2NSw3ICsxODMwLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAJCSBDT1JFX0FERFIgYWRkcmVz cywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCSBpbnQgcmVjdXJzZSwKICAJCSBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC0yMTUsOCArMjE1LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBnZW5lcmljX3ZhbF9wcmludF9kZQorQEAgLTIxMSw4ICsyMTEsOSBAQAogICAgIGZ1bmN0aW9u OyB0aGV5IGFyZSBpZGVudGljYWwuICAqLwogIAogIHZvaWQKQEAgLTE5NzcsMTEgKzE4NDIsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAJICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZmluZHZhci5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZpbmR2 YXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2ZpbmR2 YXIuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIwODM1MTYyNyArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9maW5kdmFyLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTczNjQ4NDYgKzAx MDAKLUBAIC04MDEsNyArODAxLDcgQEAgc3RydWN0IHZhbHVlICoKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9maW5kdmFyLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODg1MTAzOTkg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmluZHZhci5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCitAQCAtODAyLDcgKzgwMiw3IEBACiAgZGVmYXVsdF92 YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUg KnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVnbnVtLCBzdHJ1Y3Qg ZnJhbWVfaWQgZnJhbWVfaWQpCiAgewpAQCAtMTk5MCwyMSArMTg1NSwxNiBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZpbmR2YXIuYwogICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9 IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKICAKICAgIFZBTFVFX0xWQUwgKHZhbHVlKSA9IGx2YWxf cmVnaXN0ZXI7Ci1AQCAtODM0LDEwICs4MzQsMTAgQEAgdm9pZAotIHJlYWRfZnJhbWVfcmVnaXN0 ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkK LSB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7 Ci0tICBpbnQgb2Zmc2V0ID0gMDsKLS0gIGludCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2 YWx1ZSk7Ci0rICBMT05HRVNUIG9mZnNldCA9IDA7Ci0rICBMT05HRVNUIHJlZ19vZmZzZXQgPSB2 YWx1ZV9vZmZzZXQgKHZhbHVlKTsKK0BAIC04MzgsNyArODM4LDcgQEAKKyAgIExPTkdFU1Qgb2Zm c2V0ID0gMDsKKyAgIExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAodmFsdWUpOwog ICAgaW50IHJlZ251bSA9IFZBTFVFX1JFR05VTSAodmFsdWUpOwogLSAgaW50IGxlbiA9IHR5cGVf bGVuZ3RoX3VuaXRzIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpKTsKICsgIExP TkdFU1QgbGVuID0gdHlwZV9sZW5ndGhfdW5pdHMgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KHZhbHVlKSkpOwogIAogICAgZ2RiX2Fzc2VydCAoVkFMVUVfTFZBTCAodmFsdWUpID09IGx2YWxf cmVnaXN0ZXIpOwogIAotQEAgLTg1Miw3ICs4NTIsNyBAQCByZWFkX2ZyYW1lX3JlZ2lzdGVyX3Zh bHVlIChzdHJ1Y3QgdmFsdWUKK0BAIC04NTMsNyArODUzLDcgQEAKICAgIHdoaWxlIChsZW4gPiAw KQogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICpyZWd2YWwgPSBnZXRfZnJhbWVfcmVnaXN0 ZXJfdmFsdWUgKGZyYW1lLCByZWdudW0pOwpAQCAtMjAxMywxMSArMTg3MywxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZpbmR2YXIuYwogIAogICAgICAgIC8qIElmIHRoZSBy ZWdpc3RlciBsZW5ndGggaXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcwogICAgICAg ICAgIHJlbWFpbmluZyB0byBjb3B5LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlhdGUgYnl0 ZXMuICAqLwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mcmFtZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA4MzUx NjI3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMTgzNjQ4NTIgKzAxMDAKLUBAIC0xMjcyLDcgKzEyNzIsNyBAQCBkZXByZWNh dGVkX2ZyYW1lX3JlZ2lzdGVyX3JlYWQgKHN0cnVjdCBmCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvZnJhbWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4OTUxMDQwNyArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mcmFtZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTM4NTMwMTE2ICswMjAwCitAQCAtMTMyMCw3ICsxMzIwLDcgQEAKICAKICBpbnQKICBnZXRfZnJh bWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwK QEAgLTIwMjYsNyArMTg4Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJh bWUuYwogIAkJCSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtMTMw MSw3ICsxMzAxLDcgQEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaQor QEAgLTEzNDksNyArMTM0OSw3IEBACiAgICAgIH0KICAgIGlmIChsZW4gPiBtYXhzaXplKQogICAg ICBlcnJvciAoXygiQmFkIGRlYnVnIGluZm9ybWF0aW9uIGRldGVjdGVkOiAiCkBAIC0yMDM1LDEx ICsxODk1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuYwogIAog ICAgLyogQ29weSB0aGUgZGF0YS4gICovCiAgICB3aGlsZSAobGVuID4gMCkKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9mcmFtZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvZnJhbWUuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIwOTM1MTYzNCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE4MzY0ODUy ICswMTAwCi1AQCAtNTg1LDcgKzU4NSw3IEBAIGV4dGVybiB2b2lkIHB1dF9mcmFtZV9yZWdpc3Rl ciAoc3RydWN0IGYKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mcmFtZS5oCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDkwNTEwNDE1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2ZyYW1lLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzg1MzAxMTYgKzAyMDAKK0BAIC01 ODUsNyArNTg1LDcgQEAKICAgICBjb250ZW50cyBhcmUgb3B0aW1pemVkIG91dCBvciB1bmF2YWls YWJsZSwgc2V0ICpPUFRJTUlaRURQLAogICAgICpVTkFWQUlMQUJMRVAgYWNjb3JkaW5nbHkuICAq LwogIGV4dGVybiBpbnQgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsIGludCByZWdudW0sCkBAIC0yMDQ4LDExICsxOTA4LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuaAogIAkJCQkgICAgIGdkYl9ieXRlICpteWFkZHIs CiAgCQkJCSAgICAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCk7CiAgCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTIzNTE2NTMg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAy IDIxOjIzOjEzLjIyMDM2NDg2NiArMDEwMAotQEAgLTI3MTksNyArMjcxOSw3IEBAIGFsbG9jYXRl X2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDkyNTEwNDMxICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wNy0xNiAxNDoz Mzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC0yNzIyLDcgKzI3MjIsNyBAQAogICAgIGxlYXN0IGFz IGxvbmcgYXMgT0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA2MSw3ICsxOTIx LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCiAgCSAgIGNv bnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKICAgIHN0cnVjdCB0 eXBlICp0eXBlOwotQEAgLTI5NTksOCArMjk1OSw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3Ry dWN0IHR5cGUgKmJhc2UsIHMKK0BAIC0yOTYyLDggKzI5NjIsOCBAQAogIAogIHN0YXRpYyBpbnQK ICBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHR5 cGUgKmRjbGFzcywKQEAgLTIwNzIsNyArMTkzMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZ2RidHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFs dWUgKnZhbCkKICB7CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTI5NzEsNyArMjk3MSw3IEBA IGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yOTc0LDcgKzI5 NzQsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNsYXNzKSAm JiBjb3VudCA8IDI7ICsraSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVyOwpAQCAt MjA4MSw3ICsxOTQxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBl cy5jCiAgCiAgICAgICAgaXRlciA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTIChkY2xh c3MsIGkpKTsKICAKLUBAIC0zMDEyLDcgKzMwMTIsNyBAQCBpc191bmlxdWVfYW5jZXN0b3Jfd29y a2VyIChzdHJ1Y3QgdHlwZSAqCitAQCAtMzAxNSw3ICszMDE1LDcgQEAKICBpbnQKICBpc191bmlx dWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CkBA IC0yMDkwLDcgKzE5NTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5 cGVzLmMKICAKICAgIHJldHVybiBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChiYXNlLCB2YWx1 ZV90eXBlICh2YWwpLCAmb2Zmc2V0LAogIAkJCQkgICAgdmFsdWVfY29udGVudHNfZm9yX3ByaW50 aW5nICh2YWwpLAotQEAgLTQyMDAsNyArNDIwMCw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlLAorQEAgLTQyMDMsNyArNDIwMyw3IEBACiAgICAgICAgYnJlYWs7CiAg ICAgIH0KICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAtMjA5OSw0MCArMTk1OSwyMCBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBFX09C SkZJTEVfT1dORUQgKHR5cGUpKQogICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAoc3Bh Y2VzLCAib2JqZmlsZSAiKTsKLUBAIC00MzI4LDggKzQzMjgsOCBAQCByZWN1cnNpdmVfZHVtcF90 eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLSAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERf RU5VTVZBTCAodHlwZSwgaWR4KSkpOwotICAgICAgIGVsc2UKLSAJcHJpbnRmaV9maWx0ZXJlZCAo c3BhY2VzICsgMiwKLS0JCQkgICJbJWRdIGJpdHBvcyAlZCBiaXRzaXplICVkIHR5cGUgIiwKLS0J CQkgIGlkeCwgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGlkeCksCi0rCQkJICAiWyVkXSBiaXRw b3MgJXMgYml0c2l6ZSAlZCB0eXBlICIsCi0rCQkJICBpZHgsIHBsb25nZXN0IChUWVBFX0ZJRUxE X0JJVFBPUyAodHlwZSwgaWR4KSksCi0gCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlk eCkpOwotICAgICAgIGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgaWR4KSwgZ2RiX3N0ZG91dCk7Ci0gICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVz JyAoIiwKLUBAIC00NjcxLDcgKzQ2NzEsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBl ICp0eXBlKQorQEAgLTQ2NjMsNyArNDY2Myw3IEBACiAgCiAgc3RydWN0IHR5cGUgKgogIGFyY2hf dHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0tCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUs IGludCBsZW5ndGgsIGNoYXIgKm5hbWUpCi0rCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIExPTkdF U1QgbGVuZ3RoLCBjaGFyICpuYW1lKQorLQkgICBlbnVtIHR5cGVfY29kZSBjb2RlLCBpbnQgbGVu Z3RoLCBjb25zdCBjaGFyICpuYW1lKQorKwkgICBlbnVtIHR5cGVfY29kZSBjb2RlLCBMT05HRVNU IGxlbmd0aCwgY29uc3QgY2hhciAqbmFtZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxMzM1 MTY2MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjIwMzY0ODY2ICswMTAwCi1AQCAtNTEyLDcgKzUxMiw3IEBAIHVuaW9u IGZpZWxkX2xvY2F0aW9uCi0gICAgICBnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbj0wIHRhcmdldHMs IGl0IGlzIHRoZSBiaXQgb2Zmc2V0IHRvCi0gICAgICB0aGUgTFNCLiAgKi8KLSAKLS0gIGludCBi aXRwb3M7Ci0rICBMT05HRVNUIGJpdHBvczsKLSAKLSAgIC8qICogRW51bSB2YWx1ZS4gICovCi0g ICBMT05HRVNUIGVudW12YWw7Ci1AQCAtODIyLDcgKzgyMiw3IEBAIHN0cnVjdCB0eXBlCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE2LTA3LTE2IDE0OjMz OjQyLjA5MzUxMDQzOSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBl cy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAwCitAQCAtODA2LDcgKzgwNiw3 IEBACiAgICAgICB0eXBlX2xlbmd0aF91bml0cyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBpbiBv cmRlciB0byBnZXQgdGhlIGxlbmd0aAogICAgICAgZXhwcmVzc2VkIGluIHRhcmdldCBhZGRyZXNz YWJsZSBtZW1vcnkgdW5pdHMuICAqLwogIApAQCAtMjE0MSw3ICsxOTgxLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCiAgCiAgICAvKiAqIENvcmUgdHlwZSwg c2hhcmVkIGJ5IGEgZ3JvdXAgb2YgcXVhbGlmaWVkIHR5cGVzLiAgKi8KICAKLUBAIC0xNzE3LDEx ICsxNzE3LDEyIEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgdHlwZV9sZW5ndGhfdW5pdHMgKHMKK0BA IC0xNjc3LDExICsxNjc3LDExIEBACiAgCiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3Ry dWN0IG9iamZpbGUtb3duZWQgdHlwZXMuICAqLwogIApAQCAtMjE1MCwxNyArMTk5MCwxNiBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgKICAJCQkgICAgICAgc3Ry dWN0IG9iamZpbGUgKik7CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25zdHJ1Y3QgYXJj aGl0ZWN0dXJlLW93bmVkIHR5cGVzLiAgKi8KLS1leHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfdHlw ZSAoc3RydWN0IGdkYmFyY2ggKiwgZW51bSB0eXBlX2NvZGUsIGludCwgY2hhciAqKTsKKy1leHRl cm4gc3RydWN0IHR5cGUgKmFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgZW51bSB0eXBlX2Nv ZGUsIGludCwKICtleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2gg KiwgZW51bSB0eXBlX2NvZGUsIExPTkdFU1QsCi0rCQkJICAgICAgIGNoYXIgKik7Ci0gZXh0ZXJu IHN0cnVjdCB0eXBlICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBp bnQsIGNoYXIgKik7Ci0gZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2NoYXJhY3Rlcl90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUg KmFyY2hfYm9vbGVhbl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjEzMzUxNjYwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2dudS12Mi1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAotQEAgLTgy LDcgKzgyLDcgQEAgZ251djJfaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZQorIAkJ CSAgICAgICBjb25zdCBjaGFyICopOworIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9pbnRlZ2Vy X3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LAorIAkJCQkgICAgICAgY29uc3QgY2hh ciAqKTsKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYyLWFiaS5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDkzNTEwNDM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2dudS12Mi1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAor QEAgLTgyLDcgKzgyLDcgQEAKICAgICBUWVBFIGlzIHRoZSB0eXBlIGluIHdoaWNoIEYgaXMgbG9j YXRlZC4gICovCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgZ251djJfdmlydHVhbF9mbl9maWVs ZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqIGYsIGludCBqLApAQCAt MjE2OSw0MCArMjAwOCwyNiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12 Mi1hYmkuYwogIHsKICAgIHN0cnVjdCB2YWx1ZSAqYXJnMSA9ICphcmcxcDsKICAgIHN0cnVjdCB0 eXBlICp0eXBlMSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKLUBAIC0xODMs NyArMTgzLDggQEAgZ251djJfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQotIAot IAotIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCi0tZ251djJfdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3Qg dmFsdWUgKnYsIGludCAqZnVsbCwgaW50ICp0b3AsIGludCAqdXNpbmdfZW5jKQotK2dudXYyX3Zh bHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsIExPTkdFU1QgKnRvcCwK LSsJCSAgICAgICBpbnQgKnVzaW5nX2VuYykKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqa25vd25fdHlw ZTsKLSAgIHN0cnVjdCB0eXBlICpydHRpX3R5cGU7Ci1AQCAtMzM4LDkgKzMzOSw5IEBAIHZiX21h dGNoIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAorQEAgLTMzOCw3ICszMzgsNyBAQAog ICAgIHRhcmdldCkuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB2 YWx1ZSByZWxhdGl2ZQogICAgIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4gICov CiAgCiAtc3RhdGljIGludAogK3N0YXRpYyBMT05HRVNUCiAgZ251djJfYmFzZWNsYXNzX29mZnNl dCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKLS0JCQljb25zdCBiZmRfYnl0ZSAqdmFs YWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwg TE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAogIAkJCUNPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGUgPSBUWVBFX0JBU0VD TEFTUyAodHlwZSwgaW5kZXgpOwotQEAgLTM1OCw4ICszNTksOCBAQCBnbnV2Ml9iYXNlY2xhc3Nf b2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwCitAQCAtMzU4LDggKzM1OCw3IEBACiAgCSAgaWYgKHZi X21hdGNoICh0eXBlLCBpLCBiYXNldHlwZSkpCiAgCSAgICB7CiAgCSAgICAgIHN0cnVjdCB0eXBl ICpmaWVsZF90eXBlOwotLQkgICAgICBpbnQgZmllbGRfb2Zmc2V0OworLQkgICAgICBMT05HRVNU IGZpZWxkX29mZnNldDsKIC0JICAgICAgaW50IGZpZWxkX2xlbmd0aDsKLSsJICAgICAgTE9OR0VT VCBmaWVsZF9vZmZzZXQ7Ci0rCSAgICAgIExPTkdFU1QgZmllbGRfbGVuZ3RoOworKwkgICAgICBM T05HRVNUIGZpZWxkX29mZnNldCwgZmllbGRfbGVuZ3RoOwogIAkgICAgICBDT1JFX0FERFIgYWRk cjsKICAKICAJICAgICAgZmllbGRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQ RSAodHlwZSwgaSkpOwotQEAgLTM4Myw3ICszODQsNyBAQCBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0 IChzdHJ1Y3QgdHlwZSAqdHlwCitAQCAtMzgzLDcgKzM4Miw3IEBACiAgCSAgLyogRG9uJ3QgZ28g dGhyb3VnaCBiYXNlY2xhc3Nfb2Zmc2V0LCBhcyB0aGF0IHdyYXBzCiAgCSAgICAgZXhjZXB0aW9u cywgdGh1cywgaW5uZXIgZXhjZXB0aW9ucyB3b3VsZCBiZSB3cmFwcGVkIG1vcmUKICAJICAgICB0 aGFuIG9uY2UuICAqLwpAQCAtMjIxMSwxMSArMjAzNiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2dudS12Mi1hYmkuYwogIAkgICAgZ251djJfYmFzZWNsYXNzX29mZnNldCAo dHlwZSwgaSwgdmFsYWRkciwKICAJCQkJICAgIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgdmFs KTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE1LTExLTAyIDIx OjIzOjExLjIxNDM1MTY2NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUt djMtYWJpLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjEzNjQ4NzIgKzAxMDAKLUBAIC0xMDgsNyAr MTA4LDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqYQorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3LTE2IDE0OjMz OjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMt YWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC0xMDgsNyArMTA4 LDcgQEAKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdDsKICAgIHN0cnVjdCBmaWVsZCAqZmllbGRfbGlz dCwgKmZpZWxkOwpAQCAtMjIyNCw3ICsyMDQ5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIHN0cnVjdCB0eXBlICp2b2lkX3B0cl90eXBlCiAg ICAgID0gYnVpbHRpbl90eXBlIChhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKLUBAIC0xODQsNyAr MTg0LDcgQEAgdnRhYmxlX3B0cmRpZmZfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgorQEAgLTE4 NCw3ICsxODQsNyBAQAogIC8qIFJldHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRo ZSBpbWFnaW5hcnkgYHN0cnVjdAogICAgIGdkYl9nbnVfdjNfYWJpX3Z0YWJsZScgb2JqZWN0IHRv IHRoZSB2dGFibGUncyAiYWRkcmVzcyBwb2ludCIKICAgICAoaS5lLiwgd2hlcmUgb2JqZWN0cycg dmlydHVhbCB0YWJsZSBwb2ludGVycyBwb2ludCkuICAqLwpAQCAtMjIzMywxNiArMjA1OCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgdnRhYmxlX2Fk ZHJlc3NfcG9pbnRfb2Zmc2V0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICB7CiAgICBzdHJ1 Y3QgdHlwZSAqdnRhYmxlX3R5cGUKLUBAIC0yODYsNyArMjg2LDcgQEAgZ251djNfZ2V0X3Z0YWJs ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwotIAotIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCi0gZ251 djNfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLSAgICAgICAgICAgICAgICAgaW50 ICpmdWxsX3AsIGludCAqdG9wX3AsIGludCAqdXNpbmdfZW5jX3ApCi0rICAgICAgICAgICAgICAg ICBpbnQgKmZ1bGxfcCwgTE9OR0VTVCAqdG9wX3AsIGludCAqdXNpbmdfZW5jX3ApCi0gewotICAg c3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7Ci0gICBzdHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpOwotQEAgLTQxMSw3ICs0MTEsNyBAQCBn bnV2M19nZXRfdmlydHVhbF9mbiAoc3RydWN0IGdkYmFyY2ggKmdkCitAQCAtNDExLDcgKzQxMSw3 IEBACiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3Ry dWN0IHZhbHVlICoqdmFsdWVfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5f ZmllbGQgKmYsIGludCBqLApAQCAtMjI1MSwxOCArMjA2NywxNiBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2dudS12My1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKCp2YWx1ZV9wKSk7CiAgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaDsKLUBAIC00NDEsMTYgKzQ0MSwxNiBAQCBnbnV2M192aXJ0dWFsX2Zu X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2CitAQCAtNDQxLDcgKzQ0MSw3IEBACiAgCiAgICAgLTEg aXMgcmV0dXJuZWQgb24gZXJyb3IuICAqLwogIAogLXN0YXRpYyBpbnQKICtzdGF0aWMgTE9OR0VT VAogIGdudXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgs Ci0tCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJ Y29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJCWNv bnN0IGJmZF9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKICAJCQlDT1JF X0FERFIgYWRkcmVzcywgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCi0gewotICAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2g7CitAQCAtNDUwLDcgKzQ1MCw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcHRy X3R5cGU7CiAgICBzdHJ1Y3QgdmFsdWUgKnZ0YWJsZTsKICAgIHN0cnVjdCB2YWx1ZSAqdmJhc2Vf YXJyYXk7CkBAIC0yMjcxLDcgKzIwODUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2dudS12My1hYmkuYwogIAogICAgLyogRGV0ZXJtaW5lIGFyY2hpdGVjdHVyZS4gICovCiAg ICBnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7Ci1AQCAtNDc0LDcgKzQ3NCw3IEBAIGdu dXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC00NzQsNyArNDc0LDcg QEAKICAgIGN1cl9iYXNlX29mZnNldCA9IGN1cl9iYXNlX29mZnNldCArIHZ0YWJsZV9hZGRyZXNz X3BvaW50X29mZnNldCAoZ2RiYXJjaCk7CiAgICBpZiAoKC0gY3VyX2Jhc2Vfb2Zmc2V0KSAlIFRZ UEVfTEVOR1RIIChwdHJfdHlwZSkgIT0gMCkKICAgICAgZXJyb3IgKF8oIk1pc2FsaWduZWQgdmJh c2Ugb2Zmc2V0LiIpKTsKQEAgLTIyODAsNyArMjA5NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICB2dGFibGUgPSBnbnV2M19nZXRfdnRhYmxl IChnZGJhcmNoLCB0eXBlLCBhZGRyZXNzICsgZW1iZWRkZWRfb2Zmc2V0KTsKICAgIGdkYl9hc3Nl cnQgKHZ0YWJsZSAhPSBOVUxMKTsKLUBAIC01MTgsNyArNTE4LDcgQEAgZ251djNfZmluZF9tZXRo b2RfaW4gKHN0cnVjdCB0eXBlICpkb21haQorQEAgLTUxOCw3ICs1MTgsNyBAQAogICAgICAgd2Un cmUgb3V0IG9mIGx1Y2suICAqLwogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NF UyAoZG9tYWluKTsgaSsrKQogICAgICB7CkBAIC0yMjg5LDExICsyMTAzLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgICAgICAgc3RydWN0IHR5cGUg KmJhc2V0eXBlOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAoZG9tYWluLCBp KSkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFuZy5oCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxNDM1 MTY2NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgJMjAxNS0x MS0wMiAyMToyMzoxMy4yMjEzNjQ4NzIgKzAxMDAKLUBAIC04NSw3ICs4NSw3IEBAIGV4dGVybiB2 b2lkIGdvX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTM5NTMwMTI0ICswMjAwCitAQCAtODUsNyArODUsNyBAQAogIC8qIERlZmluZWQgaW4gZ28t dmFscHJpbnQuYy4gICovCiAgCiAgZXh0ZXJuIHZvaWQgZ29fdmFsX3ByaW50IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yMzAyLDIwICsyMTE2LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFuZy5oCiAgCQkJICBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjE0MzUxNjY3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHBy aW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAxMDAKLUBAIC0zNyw3ICszNyw3 IEBACi0gCi0gc3RhdGljIHZvaWQKLSBwcmludF9nb19zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKLSsJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCi0gCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCi1AQCAtODYsOSArODYsOSBAQCBwcmludF9nb19zdHJpbmcgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ28tdmFs cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9nby12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMw MTI0ICswMjAwCitAQCAtODYsOSArODYsOSBAQAogIC8qIEltcGxlbWVudHMgdGhlIGxhX3ZhbF9w cmludCByb3V0aW5lIGZvciBsYW5ndWFnZSBHby4gICovCiAgCiAgdm9pZApAQCAtMjMyOCwxMSAr MjEzMywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50LmMK ICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewog ICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9qdi1sYW5nLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFu Zy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvanYtbGFu Zy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE1MzUxNjczICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2p2LWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMjM2NDg3OSArMDEw MAotQEAgLTQ0MCw3ICs0NDAsNyBAQCBqYXZhX2xpbmtfY2xhc3NfdHlwZSAoc3RydWN0IGdkYmFy Y2ggKmdkCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvanYtbGFuZy5jCTIwMTYt MDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2p2LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTQ0 MCw3ICs0NDAsNyBAQAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsgaSA8 IG5maWVsZHM7IGkrKykKICAgICAgewogICAgICAgIGludCBhY2NmbGFnczsKQEAgLTIzNDEsNyAr MjE0Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5jCiAgCiAg ICAgICAgaWYgKGZpZWxkcyA9PSBOVUxMKQogIAl7Ci1AQCAtODkwLDcgKzg5MCw3IEBAIGphdmFf cHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUKK0BAIC04OTAsNyArODkwLDcgQEAK ICBzdGF0aWMgdm9pZAogIGphdmFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0 cnVjdCB0eXBlICp0eXBlLAogIAkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTIz NTAsMTEgKzIxNTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5n LmMKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQog IHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBqYXZhX2dldF9lbmNvZGluZyAodHlw ZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuaAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9qdi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUz NTE2NzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5oCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCi1AQCAtNDMsOCArNDMsOCBAQCBzdHJ1Y3Qg YnVpbHRpbl9qYXZhX3R5cGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9qdi1s YW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICsw MjAwCitAQCAtNDMsOCArNDMsOCBAQAogIAogIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9q YXZhX3R5cGUgKmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKICAKQEAgLTIz NjUsMjAgKzIxNzAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5n LmgKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICopOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9qdi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LXZhbHBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi12 YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE1MzUxNjczICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjIz NjQ4NzkgKzAxMDAKLUBAIC0yNjYsNyArMjY2LDcgQEAgamF2YV92YWx1ZV9wcmludCAoc3RydWN0 IHZhbHVlICp2YWwsIHN0cgotIAotIHN0YXRpYyB2b2lkCi0gamF2YV9wcmludF92YWx1ZV9maWVs ZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgaW50 IG9mZnNldCwKLSsJCQkgTE9OR0VTVCBvZmZzZXQsCi0gCQkJIENPUkVfQUREUiBhZGRyZXNzLCBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCSBpbnQgcmVjdXJzZSwKLSAJCQkgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCi1AQCAtNDU0LDcgKzQ1NCw3IEBAIGphdmFfcHJpbnRfdmFsdWVfZmll bGRzIChzdHJ1Y3QgdHlwZSAqdHkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9q di12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk1NTEwNDU1ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 NDA1MzAxMzIgKzAyMDAKK0BAIC00NTQsNyArNDU0LDcgQEAKICAKICB2b2lkCiAgamF2YV92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTIz ODcsMTEgKzIxODMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi12YWxw cmludC5jCiAgCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCWNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMTYzNTE2ODAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3Vh Z2UuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTczOSw3ICs3Mzks NyBAQCB1bmtfbGFuZ19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqCistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5 NTUxMDQ1NSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAtNzY2LDcgKzc2Niw3IEBACiAg CiAgc3RhdGljIHZvaWQKICB1bmtfbGFuZ19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yNDAwLDcgKzIxOTYsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMKICAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5n LCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNzU4LDcgKzc1OCw3IEBAIHVua19sYW5nX3ByaW50X3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTc4NSw3ICs3ODUsNyBAQAogIAogIHN0YXRpYyB2 b2lkCiAgdW5rX2xhbmdfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsCkBAIC0yNDA5LDExICsyMjA1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYwogIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2xhbmd1YWdlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9sYW5ndWFnZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE2MzUxNjgwICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjMz NjQ4ODUgKzAxMDAKLUBAIC0xODksNyArMTg5LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5ndWFnZS5oCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDk1NTEwNDU1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1 YWdlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0xOTYsNyArMTk2 LDcgQEAKICAJCQkgIHN0cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAKICAgICAgdm9pZCAoKmxh X3ByaW50c3RyKSAoc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBl LApAQCAtMjQyMiw3ICsyMjE4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9s YW5ndWFnZS5oCiAgCQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMs CiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAotQEAgLTIzMSw3 ICsyMzEsNyBAQCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbgorQEAgLTIzOCw3ICsyMzgsNyBAQAogIAog ICAgICB2b2lkICgqbGFfdmFsX3ByaW50KSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICBjb25z dCBnZGJfYnl0ZSAqY29udGVudHMsCkBAIC0yNDMxLDExICsyMjI3LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL20yLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL20yLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y MjMzNjQ4ODUgKzAxMDAKLUBAIC0xMDQsMTAgKzEwNCwxMCBAQCBtMl9wcmludGNoYXIgKGludCBj LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9t Mi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTY1MTA0NjMgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMy ICswMjAwCitAQCAtMTA0LDEwICsxMDQsMTAgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50 c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnN0cmluZywKQEAgLTI0NDgsNyArMjI0NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbTItbGFuZy5jCiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAw OwogICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtMTIy LDkgKzEyMiw5IEBAIG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHIKK0BA IC0xMjIsOSArMTIyLDkgQEAKICAgICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFy YWN0ZXIgd2UgYXJlIGV4YW1pbmluZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJl cGVhdGVkLiAgKi8KQEAgLTI0NjAsNyArMjI1Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvbTItbGFuZy5jCiAgCiAgICAgICAgUVVJVDsKICAKLUBAIC0xNTAsNyArMTUwLDcg QEAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgorQEAgLTE1MCw3ICsx NTAsNyBAQAogIAkgICAgICBpbl9xdW90ZXMgPSAwOwogIAkgICAgfQogIAkgIG0yX3ByaW50Y2hh ciAoc3RyaW5nW2ldLCB0eXBlLCBzdHJlYW0pOwpAQCAtMjQ2OSwxMSArMjI2NSwxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsK ICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwog IAkgIG5lZWRfY29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1s YW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItbGFuZy5oCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjE3MzUxNjg2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L20yLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTM0LDcg KzM0LDcgQEAgZXh0ZXJuIHZvaWQgbTJfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQy LjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmgJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0zNCw3ICszNCw3IEBACiAg ZXh0ZXJuIGludCBtMl9pc19sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBp bnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgCkBAIC0yNDgy LDExICsyMjc4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5o CiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUg KiwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9tMi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3 MzUxNjg2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmludC5j CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCi1AQCAtMjM0LDkgKzIzNCwxMiBA QCBzdGF0aWMgdm9pZCBtMl9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4w OTY1MTA0NjMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdHlwZXByaW50 LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKK0BAIC0yMzQsOSArMjM0LDEy IEBACiAgCSAgbTJfcHJpbnRfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKHR5cGUpLCBzdHJlYW0s IHNob3csIC0xLCAxKTsKICAJfQogICAgICAgIGVsc2UKQEAgLTI1MDIsMTEgKzIyOTgsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi10eXBlcHJpbnQuYwogICAgICB9CiAg ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJdIE9GICIpOwogICAgbTJfcHJpbnRfdHlwZSAo VFlQRV9UQVJHRVRfVFlQRSAodHlwZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVsLCBmbGFncyk7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMTczNTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFs cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5MiArMDEwMAotQEAgLTM1LDcgKzM1 LDcgQEAgc3RhdGljIGludCBwcmludF91bnBhY2tlZF9wb2ludGVyIChzdHJ1YworLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wOTY1MTA0NjMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdmFscHJp bnQuYwkyMDE2LTA3LTE2IDE0OjM1OjE5LjgzMDI5NzAxMyArMDIwMAorQEAgLTM1LDcgKzM1LDcg QEAKICAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgc3RhdGljIHZvaWQKICBtMl9w cmludF9hcnJheV9jb250ZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLApAQCAtMjUxNSw3ICsyMzExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9tMi12YWxwcmludC5jCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtNjcsNyArNjcsNyBAQCBnZXRfbG9uZ19z ZXRfYm91bmRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02Nyw3ICs2Nyw3IEBACiAgCiAgc3Rh dGljIHZvaWQKICBtMl9wcmludF9sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLApAQCAtMjUyNCw3ICsyMzIwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt KQogIHsKICAgIGludCBlbXB0eV9zZXQgICAgICAgID0gMTsKLUBAIC0xNTgsNyArMTU4LDcgQEAg bTJfcHJpbnRfbG9uZ19zZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAgLTE1OCw3ICsxNTgs NyBAQAogIAogIHN0YXRpYyB2b2lkCiAgbTJfcHJpbnRfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTMzLDcgKzIzMjksNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTI2Miw3ICsyNjIsNyBAQCBwcmlu dF92YXJpYWJsZV9hdF9hZGRyZXNzIChzdHJ1Y3QgdHlwZSAqCitAQCAtMjYwLDcgKzI2MCw3IEBA CiAgCiAgc3RhdGljIHZvaWQKICBtMl9wcmludF9hcnJheV9jb250ZW50cyAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjU0MiwyNyArMjMzOCwyMyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBA IC0zMDgsMTQgKzMwOCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50 X2RlCitAQCAtMzA4LDEzICszMDgsMTMgQEAKICAgICBmdW5jdGlvbjsgdGhleSBhcmUgaWRlbnRp Y2FsLiAgKi8KICAKICB2b2lkCiAtbTJfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0tCSAgICAgIENPUkVf QUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSttMl92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLSsJ ICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkgICAg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyttMl92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRl ZF9vZmZzZXQsCisgCSAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92 YWx1ZSwKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsK LS0gIHVuc2lnbmVkIGludCBpID0gMDsJLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJpbnRlZC4g ICovCiAtICB1bnNpZ25lZCBsZW47Ci0rICBVTE9OR0VTVCBpID0gMDsJLyogTnVtYmVyIG9mIGNo YXJhY3RlcnMgcHJpbnRlZC4gICovCiArICBVTE9OR0VTVCBsZW47CiAgICBzdHJ1Y3QgdHlwZSAq ZWx0dHlwZTsKICAgIENPUkVfQUREUiBhZGRyOwogIAotQEAgLTM0MCw3ICszNDEsNyBAQCBtMl92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnCitAQCAtMzM5LDcgKzMzOSw3IEBA CiAgCSAgICAgICAgIGVsZW1lbnRzIHVwIHRvIGl0LiAgKi8KICAJICAgICAgaWYgKG9wdGlvbnMt PnN0b3BfcHJpbnRfYXRfbnVsbCkKICAJCXsKQEAgLTI1NzEsMTAgKzIzNjMsMTkgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5jCiAgCiAgCQkgIC8qIExvb2sg Zm9yIGEgTlVMTCBjaGFyLiAgKi8KICAJCSAgZm9yICh0ZW1wX2xlbiA9IDA7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmMKK0BAIC00MTUsNyArNDE1LDcgQEAKKyAJ eworIAkgIHN0cnVjdCB0eXBlICpyYW5nZSA9IGVsdHR5cGU7CisgCSAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7CistCSAgaW50IGk7CisrCSAgTE9OR0VTVCBpOworIAkgIGludCBuZWVk X2NvbW1hID0gMDsKKyAKKyAJICBmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE1LTExLTAyIDIxOjIzOjEx LjIxODM1MTY5MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5j CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTQxNTMwMTQwICswMjAwCiBAQCAtMjEsOCArMjEsOCBAQAogICNpbmNsdWRlICJt ZW1yYW5nZS5oIgogIApAQCAtMjU4NiwxMSArMjM4NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL21lbXJhbmdlLmMKICB7CiAgICBVTE9OR0VTVCBoLCBsOwogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5oCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL21lbXJhbmdlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE4MzUxNjkzICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmgJMjAxNS0xMS0wMiAy MToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKLUBAIC0zMCw3ICszMCw3IEBAIHN0cnVjdCBtZW1fcmFu Z2UKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDk3NTEwNDcxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L21lbXJhbmdlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKK0BAIC0zMCw3 ICszMCw3IEBACiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCiAgICAvKiBMZW5ndGggb2YgdGhlIHJh bmdlLiAgKi8KQEAgLTI1OTksNyArMjQwMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbWVtcmFuZ2UuaAogIH07CiAgCiAgdHlwZWRlZiBzdHJ1Y3QgbWVtX3JhbmdlIG1lbV9y YW5nZV9zOwotQEAgLTQwLDggKzQwLDggQEAgREVGX1ZFQ19PKG1lbV9yYW5nZV9zKTsKK0BAIC00 MCw4ICs0MCw4IEBACiAgLyogUmV0dXJucyB0cnVlIGlmIHRoZSByYW5nZXMgZGVmaW5lZCBieSBb c3RhcnQxLCBzdGFydDErbGVuMSkgYW5kCiAgICAgW3N0YXJ0Miwgc3RhcnQyK2xlbjIpIG92ZXJs YXAuICAqLwogIApAQCAtMjYxMCwxMSArMjQxMSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL21lbXJhbmdlLmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBS QU5HRS4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21pcHMtbGludXgt bmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy1saW51eC1uYXQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21pcHMtbGludXgt bmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTgzNTE2OTMgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2 NDg5OSArMDEwMAotQEAgLTU4Nyw3ICs1ODcsNyBAQCBtaXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9h ZGRyZXNzIChzdHJ1Y3QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9taXBzLWxp bnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk3NTEwNDcxICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 NDE1MzAxNDAgKzAyMDAKK0BAIC01ODcsNyArNTg3LDcgQEAKICAKICBzdGF0aWMgaW50CiAgbWlw c19saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpz ZWxmLApAQCAtMjYyMywxMSArMjQyNCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL21pcHMtbGludXgtbmF0LmMKICB7CiAgICBzdHJ1Y3QgcHRfd2F0Y2hfcmVncyBkdW1teV9y ZWdzOwogICAgaW50IGk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL29wZW5jbC1s YW5nLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvb3BlbmNsLWxhbmcuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4yMTkzNTE2OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEw MAotQEAgLTc4LDExICs3OCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwky MDE2LTA3LTE2IDE0OjMzOjQyLjA5NzUxMDQ3MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9vcGVuY2wtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQxNTMwMTQwICswMjAw CitAQCAtNzgsMTEgKzc4LDExIEBACiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKICBsb29rdXBf b3BlbmNsX3ZlY3Rvcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgZW51bSB0eXBlX2Nv ZGUgY29kZSwKQEAgLTI2NDEsMzcgKzI0NDIsMjkgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9vcGVuY2wtbGFuZy5jCiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IE5VTEw7CiAgICBz dHJ1Y3QgdHlwZSAqKnR5cGVzID0gYnVpbHRpbl9vcGVuY2xfdHlwZSAoZ2RiYXJjaCk7CiAgCi1A QCAtMTcyLDkgKzE3Miw5IEBAIGx2YWxfZnVuY19yZWFkIChzdHJ1Y3QgdmFsdWUgKnYpCi0gICBz dHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29t cHV0ZWRfY2xvc3VyZSAodik7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKHYpKTsKK0BAIC0xNzQsNyArMTc0LDcgQEAKICAgIHN0cnVjdCB0eXBlICpl bHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52 YWwpKSk7Ci0tICBpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLS0gIGludCBlbHNpemUg PSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0 ICh2KTsKKyAgIExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CiAtICBpbnQg biwgaSwgaiA9IDA7Ci0rICBMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7Ci0rICBM T05HRVNUIGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOwogKyAgTE9OR0VTVCBuLCBpLCBq ID0gMDsKICAgIExPTkdFU1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBA IC0yMDEsOSArMjAxLDkgQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVj dAotICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZh bHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOwotICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlICh2KSk7CitAQCAtMjAzLDcgKzIwMyw3IEBACiAgICBzdHJ1Y3Qg dHlwZSAqZWx0eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAoYy0+dmFsKSkpOwotLSAgaW50IG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7Ci0tICBpbnQg ZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CisgICBMT05HRVNUIG9mZnNldCA9IHZhbHVl X29mZnNldCAodik7CisgICBMT05HRVNUIGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOwog LSAgaW50IG4sIGksIGogPSAwOwotKyAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYp OwotKyAgTE9OR0VTVCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKICsgIExPTkdFU1Qg biwgaSwgaiA9IDA7CiAgICBMT05HRVNUIGxvd2IgPSAwOwogICAgTE9OR0VTVCBoaWdoYiA9IDA7 CiAgCi1AQCAtMjQzLDE3ICsyNDMsMTcgQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUg KnYsIHN0cnVjdAorQEAgLTI0MywxNyArMjQzLDE3IEBACiAgCiAgc3RhdGljIGludAogIGx2YWxf ZnVuY19jaGVja19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2LAotLQkJ CQkgICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQorLQkJCQkgICBMT05HRVNUIG9mZnNldCwgaW50 IGxlbmd0aCkKICsJCQkJICAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQogIHsKICAg IHN0cnVjdCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9j b21wdXRlZF9jbG9zdXJlICh2KTsKQEAgLTI2OTIsNyArMjQ4NSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgaWYgKGVuZHJlc3QpCiAgICAg IGVuZCsrOwotQEAgLTI2Myw4ICsyNjMsOCBAQCBsdmFsX2Z1bmNfY2hlY2tfc3ludGhldGljX3Bv aW50ZXIgKGNvbnN0CitAQCAtMjYzLDggKzI2Myw4IEBACiAgCiAgICBmb3IgKGkgPSBzdGFydDsg aSA8IGVuZDsgaSsrKQogICAgICB7CkBAIC0yNzAzLDExICsyNDk2LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgICAgIGlmICghdmFsdWVf Yml0c19zeW50aGV0aWNfcG9pbnRlciAoYy0+dmFsLAogIAkJCQkJIGMtPmluZGljZXNbaV0gKiBl bHNpemUgKyBjb21wX29mZnNldCwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1s YW5nLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTExLTAy IDIxOjIzOjExLjIxOTM1MTY5OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9w LWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAotQEAgLTk1LDggKzk1 LDggQEAgcGFzY2FsX21haW5fbmFtZSAodm9pZCkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9wLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5ODUxMDQ3OSArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 MjUzMDE0OCArMDIwMAorQEAgLTk1LDggKzk1LDggQEAKICAgICBhcmUgbm90IG11bHRpcGxlIG9m IFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlz IGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwogIGludApA QCAtMjcxOCw3ICsyNTExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxh bmcuYwogIAkJICAgICAgIHN0cnVjdCB0eXBlICoqY2hhcl90eXBlLAogIAkJICAgICAgIGNvbnN0 IGNoYXIgKiphcnJheW5hbWUpCiAgewotQEAgLTIxNiwxMiArMjE2LDEyIEBAIHBhc2NhbF9wcmlu dGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHkKK0BAIC0yMTYsMTIgKzIxNiwxMiBAQAogIAog IHZvaWQKICBwYXNjYWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLApAQCAtMjczMyw3ICsyNTI2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9wLWxhbmcuYwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAg IGludCBpbl9xdW90ZXMgPSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTI0OSw5ICsy NDksOSBAQCBwYXNjYWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjQ5 LDkgKzI0OSw5IEBACiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVy IHdlIGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRl ZC4gICovCkBAIC0yNzQ1LDcgKzI1MzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3AtbGFuZy5jCiAgICAgICAgdW5zaWduZWQgbG9uZyBpbnQgY3VycmVudF9jaGFyOwogIAog ICAgICAgIFFVSVQ7Ci1AQCAtMjgzLDcgKzI4Myw3IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwKK0BAIC0yODMsNyArMjgzLDcgQEAKICAJICAgICAgaW5fcXVvdGVz ID0gMDsKICAJICAgIH0KICAJICBwYXNjYWxfcHJpbnRjaGFyIChjdXJyZW50X2NoYXIsIHR5cGUs IHN0cmVhbSk7CkBAIC0yNzU0LDExICsyNTQ3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvcC1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQg Kz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9wLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxOTM1MTY5OSAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuaAkyMDE1LTExLTAyIDIx OjIzOjEzLjIyNjM2NDkwNSArMDEwMAotQEAgLTM2LDcgKzM2LDcgQEAgZXh0ZXJuIHZvaWQgcGFz Y2FsX3ByaW50X3R5cGUgKHN0cnVjdCB0eQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3AtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk4NTEwNDc5ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQyNTMw MTQ4ICswMjAwCitAQCAtMzYsNyArMzYsNyBAQAogIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90 eXBlZGVmIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qgc3ltYm9sICosCiAgCQkJCSAgc3RydWN0IHVp X2ZpbGUgKik7CiAgCkBAIC0yNzY3LDcgKzI1NjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3AtbGFuZy5oCiAgCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQsCiAgCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1AQCAtNTAsMTMgKzUwLDEzIEBAIGV4dGVy biB2b2lkIHBhc2NhbF90eXBlX3ByaW50X21ldGhvZF9hcmcKK0BAIC01MCwxMyArNTAsMTMgQEAK ICAvKiBUaGVzZSBhcmUgaW4gcC1sYW5nLmM6ICovCiAgCiAgZXh0ZXJuIGludApAQCAtMjc4Mywy MCArMjU3NiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5oCiAg CQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKICBleHRlcm4g c3RydWN0IHR5cGUgKipjb25zdCAocGFzY2FsX2J1aWx0aW5fdHlwZXNbXSk7Ci1AQCAtNzIsNyAr NzIsNyBAQCBleHRlcm4gdm9pZAotIAkJCQkgICAgY29uc3Qgc3RydWN0IHR5cGVfcHJpbnRfb3B0 aW9ucyAqKTsKLSAKLSBleHRlcm4gdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2ZpZWxk cyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKLS0JCQkJCSAgICAgIGludCwKLSsJ CQkJCSAgICAgIExPTkdFU1QsCi0gCQkJCQkgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxl ICosCi0gCQkJCQkgICAgICBpbnQsCi0gCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEx LjIyMDM1MTcwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjYzNjQ5MDUgKzAxMDAKLUBAIC01Nyw3ICs1Nyw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1 MTA0NzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC12YWxwcmludC5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQyNTMwMTQ4ICswMjAwCitAQCAtNTksNyArNTksNyBAQAogIAog IHZvaWQKICBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsCkBAIC0yODA1LDcgKzI1ODksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cmVjdXJzZSwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAtNjgsOCArNjgs OCBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uCitAQCAtNzAsOCAr NzAsOCBAQAogICAgdW5zaWduZWQgbGVuOwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQ7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZTsKQEAgLTI4MTYsNTIgKzI2MDAsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50LmMKICAgIHN0cnVjdCB0eXBl ICpjaGFyX3R5cGU7CiAgICBDT1JFX0FERFIgYWRkcjsKICAgIGludCB3YW50X3NwYWNlID0gMDsK LUBAIC00NjcsNyArNDY3LDcgQEAgc3RhdGljIHZvaWQgcGFzY2FsX29iamVjdF9wcmludF9zdGF0 aWNfZgotIAkJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci0g Ci0gc3RhdGljIHZvaWQgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKiwg Y29uc3QgZ2RiX2J5dGUgKiwKLS0JCQkJICAgICAgIGludCwKLSsJCQkJICAgICAgIExPTkdFU1Qs Ci0gCQkJCSAgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkJICAg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKiwKLUBAIC01MjYsNyArNTI2LDcgQEAgcGFzY2FsX29iamVjdF9pc192 dGJsX21lbWJlciAoc3RydWN0IHR5cAotIAotIHZvaWQKLSBwYXNjYWxfb2JqZWN0X3ByaW50X3Zh bHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot LQkJCQkgIGludCBvZmZzZXQsCi0rCQkJCSAgTE9OR0VTVCBvZmZzZXQsCi0gCQkJCSAgQ09SRV9B RERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJCSAgaW50IHJlY3Vyc2Us Ci0gCQkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNjk3LDcgKzY5Nyw3IEBAIHBh c2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QKLSAKLSBzdGF0aWMgdm9pZAot IHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCQkgICBpbnQgb2Zmc2V0LAotKwkJCSAgIExPTkdFU1Qgb2Zmc2V0 LAotIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJ CSAgIGludCByZWN1cnNlLAotIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTcy MCwxMSArNzIwLDExIEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICoK LSAKLSAgIGZvciAoaSA9IDA7IGkgPCBuX2Jhc2VjbGFzc2VzOyBpKyspCi0gICAgIHsKLS0gICAg ICBpbnQgYm9mZnNldCA9IDA7Ci0rICAgICAgTE9OR0VTVCBib2Zmc2V0ID0gMDsKLSAgICAgICBz dHJ1Y3QgdHlwZSAqYmFzZWNsYXNzID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKHR5 cGUsIGkpKTsKLSAgICAgICBjb25zdCBjaGFyICpiYXNlbmFtZSA9IHR5cGVfbmFtZV9ub190YWcg KGJhc2VjbGFzcyk7Ci0gICAgICAgY29uc3QgZ2RiX2J5dGUgKmJhc2VfdmFsYWRkciA9IE5VTEw7 Ci0tICAgICAgaW50IHRoaXNvZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAg ICAgIGludCBza2lwID0gMDsKLSAKLSAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHR5 cGUsIGkpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcGMtbGludXgtbmF0LmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLWxpbnV4LW5hdC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNzM2NDkxMiArMDEw MAotQEAgLTE0NDksNyArMTQ0OSw3IEBAIHBwY19saW51eF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQg KHN0cnVjdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5OTUxMDQ4NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDgg KzAyMDAKK0BAIC0xNDQ5LDcgKzE0NDksNyBAQAogIAogIHN0YXRpYyBpbnQKICBwcGNfbGludXhf cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAg LTI4NzAsMTEgKzI2MTMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcGMt bGludXgtbmF0LmMKICB7CiAgICAvKiBIYW5kbGUgc3ViLTgtYnl0ZSBxdWFudGl0aWVzLiAgKi8K ICAgIGlmIChsZW4gPD0gMCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJpbnRj bWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcmludGNtZC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjIyMTM1MTcxMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9wcmludGNtZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI3MzY0OTEyICswMTAwCi1AQCAtMjc0 LDcgKzI3NCw3IEBAIHByaW50X2Zvcm1hdHRlZCAoc3RydWN0IHZhbHVlICp2YWwsIGludAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4wOTk1MTA0ODcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHJpbnRj bWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MzUzMDE1NiArMDIwMAorQEAgLTI3OSw3ICsyNzks NyBAQAogIAkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IHR5cGUgKnR5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWwpKTsKQEAgLTI4ODMsNyArMjYyNiw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJpbnRjbWQuYwogIAogICAgaWYg KFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIG5leHRfYWRkcmVzcyA9IHZh bHVlX2FkZHJlc3MgKHZhbCkgKyBsZW47Ci1AQCAtMzUyLDcgKzM1Miw3IEBAIHByaW50X3NjYWxh cl9mb3JtYXR0ZWQgKGNvbnN0IGdkYl9ieXRlICoKK0BAIC0zNTcsNyArMzU3LDcgQEAKICB7CiAg ICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwogICAgTE9O R0VTVCB2YWxfbG9uZyA9IDA7CkBAIC0yODkyLDExICsyNjM1LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcHJpbnRjbWQuYwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogIAogICAgLyogU3RyaW5nIHByaW50 aW5nIHNob3VsZCBnbyB0aHJvdWdoIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkLiAgKi8KLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJvY2ZzLmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9wcm9jZnMuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMzM1MTcyNiArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcm9jZnMuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjIyODM2NDkxOCArMDEwMAotQEAgLTQ4NjMsNyArNDg2Myw3IEBAIHByb2Nmc19yZW1vdmVf d2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9wcm9jZnMuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwMDUxMDQ5NSArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcm9jZnMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MzUz MDE1NiArMDIwMAorQEAgLTQ4NjMsNyArNDg2Myw3IEBACiAgCiAgc3RhdGljIGludAogIHByb2Nm c19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApA QCAtMjkwNSwyNCArMjY0OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3By b2Nmcy5jCiAgewogICAgLyogVGhlIG1hbiBwYWdlIGZvciBwcm9jKDQpIG9uIFNvbGFyaXMgMi42 IGFuZCB1cCBzYXlzIHRoYXQgdGhlCiAgICAgICBzeXN0ZW0gY2FuIHN1cHBvcnQgInRob3VzYW5k cyIgb2YgaGFyZHdhcmUgd2F0Y2hwb2ludHMsIGJ1dCBnaXZlcwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMjMzNTE3MjYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5 LXByZXR0eXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjkzNjQ5MjUgKzAxMDAKLUBAIC03 MDMsNyArNzAzLDcgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAot IGVudW0gZXh0X2xhbmdfcmMKLSBnZGJweV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKGNvbnN0 IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKLSAJCQkJc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCQlpbnQgZW1iZWRkZWRfb2Zm c2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLAotIAkJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKLSAJCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJCWNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9yZWdjYWNoZS5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvcmVnY2FjaGUuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyNDM1MTczMiArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI5 MzY0OTI1ICswMTAwCi1AQCAtOTU4LDcgKzk1OCw3IEBAIHR5cGVkZWYgdm9pZCAocmVnY2FjaGVf d3JpdGVfZnR5cGUpIChzdHIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9yZWdj YWNoZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTAxNTEwNTAzICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDQ1MzAxNjUg KzAyMDAKK0BAIC05NjcsNyArOTY3LDcgQEAKICAKICBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0 dXMKICByZWdjYWNoZV94ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCBy ZWdudW0sCkBAIC0yOTMxLDcgKzI2NjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3JlZ2NhY2hlLmMKICAJCSAgICBlbnVtIHJlZ2lzdGVyX3N0YXR1cyAoKnJlYWQpIChzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJCQkJCSAgaW50IHJlZ251bSwKICAJCQkJCQkgIGdk Yl9ieXRlICpidWYpLAotQEAgLTEwMDIsNyArMTAwMiw3IEBAIHJlZ2NhY2hlX3hmZXJfcGFydCAo c3RydWN0IHJlZ2NhY2hlICpyZWcKK0BAIC0xMDExLDcgKzEwMTEsNyBAQAogIAogIGVudW0gcmVn aXN0ZXJfc3RhdHVzCiAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5NDAsNyArMjY3MCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNj ciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAxMyw3ICsxMDEzLDcgQEAgcmVn Y2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlCitAQCAtMTAyMiw3ICsxMDIyLDcg QEAKICAKICB2b2lkCiAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTQ5LDcgKzI2NzksNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVz Y3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwMjQsNyArMTAyNCw3IEBAIHJl Z2NhY2hlX3Jhd193cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0xMDMzLDcgKzEwMzMs NyBAQAogIAogIGVudW0gcmVnaXN0ZXJfc3RhdHVzCiAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFy dCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5NTgsNyArMjY4 OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAg IHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAt MTAzNSw3ICsxMDM1LDcgQEAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2Nh YworQEAgLTEwNDQsNyArMTA0NCw3IEBACiAgCiAgdm9pZAogIHJlZ2NhY2hlX2Nvb2tlZF93cml0 ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk2Nywx MSArMjY5NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMK ICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwog IAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI0 MzUxNzMyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmgJMjAx NS0xMS0wMiAyMToyMzoxMy4yMzAzNjQ5MzEgKzAxMDAKLUBAIC05Miw5ICs5Miw5IEBAIGV4dGVy biB2b2lkIHJlZ2NhY2hlX3Jhd193cml0ZV91bnNpZ25lZAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL3JlZ2NhY2hlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDE1MTA1MDMgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuaAkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjU0NDUzMDE2NSArMDIwMAorQEAgLTgwLDkgKzgwLDkgQEAKICAKICBleHRlcm4gZW51 bSByZWdpc3Rlcl9zdGF0dXMKICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgKHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTgzLDcgKzI3MTMsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmgKICAKICB2b2lkIHJlZ2NhY2hlX2lu dmFsaWRhdGUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0pOwogIAotQEAg LTEzMSwxMCArMTMxLDExIEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNp Z24KK0BAIC0xMTksMTAgKzExOSwxMSBAQAogICAgIHdyaXRlIHN0eWxlIG9wZXJhdGlvbnMuICAq LwogIAogIGVudW0gcmVnaXN0ZXJfc3RhdHVzIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCkBAIC0yOTk4LDExICsyNzI4LDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAogIAogIC8qIFNwZWNpYWwgcm91dGlu ZXMgdG8gcmVhZC93cml0ZSB0aGUgUEMuICAqLwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9yZW1vdGUuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZW1vdGUu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3JlbW90ZS5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI3MzUxNzUyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3JlbW90ZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjMyMzY0OTQ1ICswMTAwCi1A QCAtOTE1Nyw3ICs5MTU3LDcgQEAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0ID0gLTE7 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmVtb3RlLmMJMjAxNi0wNy0xNiAx NDozMzo0Mi4xMDQ1MTA1MjcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVt b3RlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDU1MzAxNzIgKzAyMDAKK0BAIC05NDczLDcgKzk0 NzMsNyBAQAogIAogIHN0YXRpYyBpbnQKICByZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBv aW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMwMTEsMTEgKzI3NDEsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZW1vdGUuYwogIHsKICAgIGlmIChyZW1vdGVf aHdfd2F0Y2hwb2ludF9sZW5ndGhfbGltaXQgPT0gMCkKICAgICAgcmV0dXJuIDA7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3NwdS1tdWx0aWFyY2guYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9zcHUtbXVsdGlhcmNoLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMjgzNTE3NTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3B1LW11bHRp YXJjaC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjMzMzY0OTUxICswMTAwCi1AQCAtMTI3LDcgKzEy Nyw3IEBAIHNwdV90aHJlYWRfYXJjaGl0ZWN0dXJlIChzdHJ1Y3QgdGFyZ2V0X28KKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4xMDU1MTA1MzYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3B1LW11 bHRpYXJjaC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ1NTMwMTcyICswMjAwCitAQCAtMTI3LDcg KzEyNyw3IEBACiAgLyogT3ZlcnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCByb3V0aW5lLiAgKi8KICBzdGF0aWMgaW50CiAgc3B1X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hw b2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0zMDI0LDExICsyNzU0LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCiAgewogICAgc3Ry dWN0IHRhcmdldF9vcHMgKm9wc19iZW5lYXRoID0gZmluZF90YXJnZXRfYmVuZWF0aCAoc2VsZik7 CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N0YWNrLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvc3RhY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjkzNTE3NjUg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwkyMDE1LTExLTAyIDIx OjIzOjEzLjIzMzM2NDk1MSArMDEwMAotQEAgLTE3Niw3ICsxNzYsNyBAQCBwcmludF9zdGFja19m cmFtZSAoc3RydWN0IGZyYW1lX2luZm8gKmZyCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvc3RhY2suYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNjUxMDU0NCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ2NTMw MTgxICswMjAwCitAQCAtMTc2LDcgKzE3Niw3IEBACiAgICAgYXJndW1lbnQgKG5vdCBqdXN0IHRo ZSBmaXJzdCBuYW1lbGVzcyBhcmd1bWVudCkuICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0zMDM3 LDcgKzI3NjcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N0YWNrLmMKICAJ CQkgICBpbnQgZmlyc3QsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotQEAgLTUzOSw3ICs1Mzks NyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitAQCAtNTM3LDcg KzUzNyw3IEBACiAgICAvKiBPZmZzZXQgb2YgbmV4dCBzdGFjayBhcmd1bWVudCBiZXlvbmQgdGhl IG9uZSB3ZSBoYXZlIHNlZW4gdGhhdCBpcwogICAgICAgYXQgdGhlIGhpZ2hlc3Qgb2Zmc2V0LCBv ciAtMSBpZiB3ZSBoYXZlbid0IGNvbWUgdG8gYSBzdGFjawogICAgICAgYXJndW1lbnQgeWV0LiAg Ki8KQEAgLTMwNDYsNyArMjc3Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv c3RhY2suYwogICAgLyogTnVtYmVyIG9mIGludHMgb2YgYXJndW1lbnRzIHRoYXQgd2UgaGF2ZSBw cmludGVkIHNvIGZhci4gICovCiAgICBpbnQgYXJnc19wcmludGVkID0gMDsKICAgIHN0cnVjdCBj bGVhbnVwICpvbGRfY2hhaW47Ci1AQCAtNTczLDggKzU3Myw4IEBAIHByaW50X2ZyYW1lX2FyZ3Mg KHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC01NzEsOCArNTcxLDggQEAKICAJICAgIGNhc2Ug TE9DX0FSRzoKICAJICAgIGNhc2UgTE9DX1JFRl9BUkc6CiAgCSAgICAgIHsKQEAgLTMwNTcsNyAr Mjc4Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogIAogIAkJ LyogQ29tcHV0ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQgYnkgYWRkaW5nIHRoZSBzaXplIG9m CiAgCQkgICB0aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0byBhbiBpbnQgYm91bmRhcnkuICAq LwotQEAgLTcwOSw3ICs3MDksNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpm dW5jLCBzCitAQCAtNzA3LDcgKzcwNyw3IEBACiAgICAgICBlbm91Z2ggYWJvdXQgdGhlIHN0YWNr IHRvIGZpbmQgdGhlbS4gICovCiAgICBpZiAobnVtICE9IC0xKQogICAgICB7CkBAIC0zMDY2LDEx ICsyNzk2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogIAog ICAgICAgIGlmIChoaWdoZXN0X29mZnNldCA9PSAtMSkKICAJc3RhcnQgPSBnZGJhcmNoX2ZyYW1l X2FyZ3Nfc2tpcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3N5bW1pc2MuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9z eW1taXNjLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9z eW1taXNjLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjkzNTE3NjUgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvc3ltbWlzYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM0MzY0OTU4 ICswMTAwCi1AQCAtNTM0LDExICs1MzQsMTEgQEAgcHJpbnRfc3ltYm9sICh2b2lkICphcmdzKQor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjEwNzUxMDU1MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zeW1t aXNjLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC01MzgsMTEgKzUz OCwxMSBAQAogIAogIAljYXNlIExPQ19DT05TVF9CWVRFUzoKICAJICB7CkBAIC0zMDg1LDExICsy ODE1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3ltbWlzYy5jCiAgCSAg ICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyBpKyspCiAgCSAgICAgIGZwcmlu dGZfZmlsdGVyZWQgKG91dGZpbGUsICIgJTAyeCIsCiAgCQkJCSh1bnNpZ25lZCkgU1lNQk9MX1ZB TFVFX0JZVEVTIChzeW1ib2wpW2ldKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dGFyZ2V0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90YXJnZXQuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjIzMDM1MTc3MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi90YXJnZXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzNDM2NDk1OCArMDEwMAotQEAgLTU0LDcg KzU0LDcgQEAgc3RhdGljIGludCBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaQorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MTA4NTEwNTYwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQ2NTMwMTgxICswMjAwCitAQCAtNTYsNyArNTYsNyBAQAogIAkJ CQkJCSBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKICAKICBzdGF0aWMgaW50IGRlZmF1bHRf cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApAQCAtMzA5 OCw3ICsyODI4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuYwog IAogIHN0YXRpYyB2b2lkIGRlZmF1bHRfcmNtZCAoc3RydWN0IHRhcmdldF9vcHMgKiwgY29uc3Qg Y2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKLUBAIC0zMTMyLDcgKzMxMzIsNyBAQCB0YXJn ZXRfZmlsZWlvX3JlYWRfc3RyYWxsb2MgKHN0cnVjdCBpbmZlCitAQCAtMzE5Niw3ICszMTk2LDcg QEAKICAKICBzdGF0aWMgaW50CiAgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzEwNywxMSArMjgzNywxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5jCiAgewogICAgcmV0dXJuIChsZW4gPD0g Z2RiYXJjaF9wdHJfYml0ICh0YXJnZXRfZ2RiYXJjaCAoKSkgLyBUQVJHRVRfQ0hBUl9CSVQpOwog IH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIzMTM1MTc3 OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjIzNTM2NDk2NCArMDEwMAotQEAgLTU0OSw3ICs1NDksNyBAQCBzdHJ1Y3QgdGFy Z2V0X29wcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTYt MDctMTYgMTQ6MzM6NDIuMTA5NTEwNTY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3RhcmdldC5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ3NTMwMTg5ICswMjAwCitAQCAtNTUx LDcgKzU1MSw3IEBACiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHBy b3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAq LwogICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChzdHJ1Y3QgdGFy Z2V0X29wcyAqLApAQCAtMzEyMCwxMSArMjg1MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAoZGVmYXVsdF9y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOwogIAogICAgICBpbnQgKCp0b19jYW5fYWNjZWxf d2F0Y2hwb2ludF9jb25kaXRpb24pIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdHJhY2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMzMzUxNzkyICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE1LTExLTAy IDIxOjIzOjEzLjIzNjM2NDk3MSArMDEwMAotQEAgLTkzMCwxMyArOTMwLDEzIEBAIGFkZF9yZWdp c3RlciAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqY28KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTI1MTA1OTIgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdHJhY2Vwb2ludC5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTQ3NTMwMTg5ICswMjAwCitAQCAtOTMwLDEzICs5MzAsMTMgQEAKICBzdGF0aWMg dm9pZAogIGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqbWVtcmFuZ2VzLCAK ICAJICAgICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCkBAIC0zMTQwLDcgKzI4NzAs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogICAgICB9 CiAgCiAgICAvKiB0eXBlOiBtZW1yYW5nZV9hYnNvbHV0ZSA9PSBtZW1vcnksIG90aGVyIG4gPT0g YmFzZXJlZyAqLwotQEAgLTk2Niw3ICs5NjYsNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNv bGxlY3Rpb25fbGlzdCAqCitAQCAtOTY2LDcgKzk2Niw3IEBACiAgCQlDT1JFX0FERFIgc2NvcGUs CiAgCQlpbnQgdHJhY2Vfc3RyaW5nKQogIHsKQEAgLTMxNDksNyArMjg3OSw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICB1bnNpZ25lZCBpbnQgcmVn OwogICAgYmZkX3NpZ25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwot QEAgLTk5MCw4ICs5OTAsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlz dCAqCitAQCAtOTkwLDggKzk5MCw4IEBACiAgCSAgY2hhciB0bXBbNDBdOwogIAogIAkgIHNwcmlu dGZfdm1hICh0bXAsIG9mZnNldCk7CkBAIC0zMTYwLDcgKzI4OTAsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkJCSAgIHRtcCAvKiBhZGRyZXNzICov KTsKICAJfQogICAgICAgIC8qIEEgc3RydWN0IG1heSBiZSBhIEMrKyBjbGFzcyB3aXRoIHN0YXRp YyBmaWVsZHMsIGdvIHRvIGdlbmVyYWwKLUBAIC0xMDIzLDggKzEwMjMsOCBAQCBjb2xsZWN0X3N5 bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCitAQCAtMTAyMyw4ICsxMDIzLDggQEAKICAg ICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAgICAgICAg aWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzE3MSw3ICsyOTAxLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQp OwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7 CiAgCX0KLUBAIC0xMDM1LDggKzEwMzUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxl Y3Rpb25fbGlzdCAqCitAQCAtMTAzNSw4ICsxMDM1LDggQEAKICAgICAgICBvZmZzZXQgPSAwOwog ICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCiAgCXsKQEAgLTMxODIsNyArMjkxMiw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgCSAgcHJpbnRmX3ZtYSAo b2Zmc2V0KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSByZWcgJWRcbiIsIHJlZyk7CiAg CX0KLUBAIC0xMDQ3LDggKzEwNDcsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rp b25fbGlzdCAqCitAQCAtMTA0Nyw4ICsxMDQ3LDggQEAKICAgICAgICBvZmZzZXQgPSBmcmFtZV9v ZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJ ewpAQCAtMzE5Myw3ICsyOTIzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJl ZCAoIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBAIC0yNzA4LDcgKzI3 MDgsOCBAQCBzY29wZV9pbmZvIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMjcwMyw3 ICsyNzAzLDggQEAKICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CiAgICBjaGFyICpzYXZlX2FyZ3Mg PSBhcmdzOwogICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7CkBAIC0zMjAzLDcgKzI5MzMs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogICAgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2g7CiAgICBpbnQgcmVnbm87CiAgICBzdHJ1Y3QgZXZlbnRfbG9j YXRpb24gKmxvY2F0aW9uOwotQEAgLTI4NTIsOCArMjg1MywxMSBAQCBzY29wZV9pbmZvIChjaGFy ICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMjg0Nyw4ICsyODQ4LDExIEBACiAgCQl9CiAgCSAg ICB9CiAgCSAgaWYgKFNZTUJPTF9UWVBFIChzeW0pKQpAQCAtMzIxNywyNCArMjk0NywxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAl9CiAgICAgICAg aWYgKEJMT0NLX0ZVTkNUSU9OIChibG9jaykpCiAgCWJyZWFrOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi90eXBlcHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjM0MzUxNzk4 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjM2MzY0OTcxICswMTAwCi1AQCAtNDA2LDcgKzQwNiw3IEBAIHdoYXRpc19l eHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCi0gICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlID0gTlVM TDsKLSAgIHN0cnVjdCB0eXBlICp0eXBlOwotICAgaW50IGZ1bGwgPSAwOwotLSAgaW50IHRvcCA9 IC0xOwotKyAgTE9OR0VTVCB0b3AgPSAtMTsKLSAgIGludCB1c2luZ19lbmMgPSAwOwotICAgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKLSAgIHN0cnVjdCB0eXBlX3ByaW50X29wdGlv bnMgZmxhZ3MgPSBkZWZhdWx0X3B0eXBlX2ZsYWdzOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWxhcml0aC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFy aXRoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxh cml0aC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjM0MzUxNzk4ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMiAyMToyMzo1OS44MjI2NzE0OTYg KzAxMDAKLUBAIC0xODgsMTIgKzE4OCwxMiBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1 ZSAqYXJyYXksIExPCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFsYXJpdGgu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExNDUxMDYwOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWxhcml0aC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ4NTMwMTk3ICswMjAw CitAQCAtMTg4LDcgKzE4OCw3IEBACiAgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdlciBkb2Vz LiAgKi8KICAKICBzdHJ1Y3QgdmFsdWUgKgpAQCAtMzI0MywxNCArMjk2MCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwogIHsKICAgIHN0cnVjdCB0eXBlICph cnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICAgIHN0cnVj dCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5 X3R5cGUpKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChl bHRfdHlwZSk7Ci0tICB1bnNpZ25lZCBpbnQgZWx0X29mZnM7Ci0rICBVTE9OR0VTVCBlbHRfc2l6 ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0rICBVTE9OR0VTVCBlbHRfb2ZmczsK LSAgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQ RSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0IHZhbHVlICp2OwotIAotQEAgLTY3OCw3ICs2Nzgs NyBAQCB2YWx1ZV9jb25jYXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CitAQCAtNjc0LDcg KzY3NCw3IEBACiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMTsKICAgIHN0cnVjdCB2YWx1ZSAqaW52 YWwyOwogICAgc3RydWN0IHZhbHVlICpvdXR2YWwgPSBOVUxMOwpAQCAtMzI1OSw3ICsyOTY5LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291 bnQsIGlkeDsKICAgIGNoYXIgKnB0cjsKICAgIGNoYXIgaW5jaGFyOwotQEAgLTE1MzEsNyArMTUz MSw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorQEAgLTE1Mjcs NyArMTUyNyw3IEBACiAgaW50CiAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJn MSkKICB7CkBAIC0zMjY4LDcgKzI5NzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbGFyaXRoLmMKICAgIGNvbnN0IGdkYl9ieXRlICpwOwogICAgc3RydWN0IHR5cGUgKnR5 cGUxOwogIAotQEAgLTE1NjIsMTEgKzE1NjIsMTEgQEAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVj dCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTU4LDExICsxNTU4LDExIEBACiAgc3RhdGljIGludAogIHZh bHVlX3N0cmNtcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCiAgewpA QCAtMzI4MywyMCArMjk5MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Zh bGFyaXRoLmMKICAKICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKICAgICAgewotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWxvcHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjQwMzUxODM4ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjM4MzY0OTg0ICswMTAwCi1AQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICpz ZWFyY2hfc3RydWN0X2ZpZWxkCi0gCi0gc3RhdGljIHN0cnVjdCB2YWx1ZSAqc2VhcmNoX3N0cnVj dF9tZXRob2QgKGNvbnN0IGNoYXIgKiwgc3RydWN0IHZhbHVlICoqLAotIAkJCQkJICAgc3RydWN0 IHZhbHVlICoqLAotLQkJCQkJICAgaW50LCBpbnQgKiwgc3RydWN0IHR5cGUgKik7Ci0rCQkJCQkg ICBMT05HRVNULCBpbnQgKiwgc3RydWN0IHR5cGUgKik7Ci0gCi0gc3RhdGljIGludCBmaW5kX29s b2FkX2NoYW1wX25hbWVzcGFjZSAoc3RydWN0IHZhbHVlICoqLCBpbnQsCi0gCQkJCSAgICAgICBj b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwKLUBAIC03OSw3ICs3OSw3IEBAIG9sb2FkX2NsYXNz aWZpY2F0aW9uIGNsYXNzaWZ5X29sb2FkX21hdGMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi92YWxvcHMuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExNzUxMDYzMiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxvcHMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 ODUzMDE5NyArMDIwMAorQEAgLTc5LDcgKzc5LDcgQEAKICAJCQkJCSAgIGludCwgaW50KTsKICAK ICBzdGF0aWMgc3RydWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0 cnVjdCB0eXBlICosCkBAIC0zMzA1LDE5ICszMDA2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi92YWxvcHMuYwogIAkJCQkJCSAgICAgY29uc3QgY2hhciAqLAogIAkJCQkJCSAg ICAgc3RydWN0IHR5cGUgKiwKICAJCQkJCQkgICAgIGludCwgZW51bSBub3NpZGUpOwotQEAgLTk2 LDkgKzk2LDkgQEAgc3RhdGljIENPUkVfQUREUiBhbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcgotIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKmNhc3RfaW50b19jb21wbGV4IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1 Y3QgdmFsdWUgKik7Ci0gCi0gc3RhdGljIHZvaWQgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZh bHVlICoqLCBjb25zdCBjaGFyICosCi0tCQkJICAgICAgaW50LCBzdHJ1Y3QgdHlwZSAqLCBzdHJ1 Y3QgZm5fZmllbGQgKiosIGludCAqLAotKwkJCSAgICAgIExPTkdFU1QsIHN0cnVjdCB0eXBlICos IHN0cnVjdCBmbl9maWVsZCAqKiwgaW50ICosCi0gCQkJICAgICAgVkVDICh4bWV0aG9kX3dvcmtl cl9wdHIpICoqLAotLQkJCSAgICAgIHN0cnVjdCB0eXBlICoqLCBpbnQgKik7Ci0rCQkJICAgICAg c3RydWN0IHR5cGUgKiosIExPTkdFU1QgKik7Ci0gCi0gdm9pZCBfaW5pdGlhbGl6ZV92YWxvcHMg KHZvaWQpOwotIAotQEAgLTE4Myw3ICsxODMsNyBAQCBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9y IChjb25zdCBjaGFyICpuCitAQCAtMTgzLDcgKzE4Myw3IEBACiAgICAgc3BhY2UuICAqLwogIAog IHN0cnVjdCB2YWx1ZSAqCkBAIC0zMzI2LDE3ICszMDE1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi92YWxvcHMuYwogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmOwogICAg c3RydWN0IHZhbHVlICp2YWwgPSBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yICgibWFsbG9jIiwg Jm9iamYpOwotQEAgLTI1Niw3ICsyNTYsOCBAQCB2YWx1ZV9jYXN0X3N0cnVjdHMgKHN0cnVjdCB0 eXBlICp0eXBlLCBzCi0gICBpZiAoVFlQRV9OQU1FICh0MikgIT0gTlVMTCkKLSAgICAgewotICAg ICAgIC8qIFRyeSBkb3duY2FzdGluZyB1c2luZyB0aGUgcnVuLXRpbWUgdHlwZSBvZiB0aGUgdmFs dWUuICAqLwotLSAgICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICBpbnQgZnVs bCwgdXNpbmdfZW5jOwotKyAgICAgIExPTkdFU1QgdG9wOwotICAgICAgIHN0cnVjdCB0eXBlICpy ZWFsX3R5cGU7Ci0gCi0gICAgICAgcmVhbF90eXBlID0gdmFsdWVfcnR0aV90eXBlICh2MiwgJmZ1 bGwsICZ0b3AsICZ1c2luZ19lbmMpOwotQEAgLTM5NiwxMiArMzk3LDEyIEBAIHZhbHVlX2Nhc3Qg KHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmEKK0BAIC0zOTcsMTIgKzM5NywxMiBAQAogICAg aWYgKGNvZGUxID09IFRZUEVfQ09ERV9BUlJBWSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBl ICplbGVtZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTMzNTEsNjQgKzMw MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCSAgTE9O R0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIG5ld19sZW5ndGg7CiAgCiAgCSAgaWYgKGdldF9k aXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDAp Ci1AQCAtNjM1LDcgKzYzNiw3IEBAIHZhbHVlX3JlaW50ZXJwcmV0X2Nhc3QgKHN0cnVjdCB0eXBl ICp0eXAKLSBzdGF0aWMgaW50Ci0gZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpk ZXNpcmVkX3R5cGUsCi0gCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAg IGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwK LSAJCSAgICAgIENPUkVfQUREUiBhZGRyZXNzLAotIAkJICAgICAgc3RydWN0IHZhbHVlICp2YWws Ci0gCQkgICAgICBzdHJ1Y3QgdHlwZSAqc2VhcmNoX3R5cGUsCi1AQCAtNjQ3LDggKzY0OCw4IEBA IGR5bmFtaWNfY2FzdF9jaGVja18xIChzdHJ1Y3QgdHlwZSAqZGVzaXIKLSAKLSAgIGZvciAoaSA9 IDA7IGkgPCBUWVBFX05fQkFTRUNMQVNTRVMgKHNlYXJjaF90eXBlKSAmJiByZXN1bHRfY291bnQg PCAyOyArK2kpCi0gICAgIHsKLS0gICAgICBpbnQgb2Zmc2V0ID0gYmFzZWNsYXNzX29mZnNldCAo c2VhcmNoX3R5cGUsIGksIHZhbGFkZHIsIGVtYmVkZGVkX29mZnNldCwKLS0JCQkJICAgICBhZGRy ZXNzLCB2YWwpOwotKyAgICAgIExPTkdFU1Qgb2Zmc2V0ID0gYmFzZWNsYXNzX29mZnNldCAoc2Vh cmNoX3R5cGUsIGksIHZhbGFkZHIsCi0rCQkJCQkgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2 YWwpOwotIAotICAgICAgIGlmIChjbGFzc190eXBlc19zYW1lX3AgKGRlc2lyZWRfdHlwZSwgVFlQ RV9CQVNFQ0xBU1MgKHNlYXJjaF90eXBlLCBpKSkpCi0gCXsKLUBAIC02ODIsNyArNjgzLDcgQEAg ZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgotIHN0YXRpYyBpbnQKLSBk eW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKLSAJCSAgICAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwK LSsJCSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgQ09SRV9BRERSIGFk ZHJlc3MsCi0gCQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgIHN0cnVjdCB0eXBl ICpzZWFyY2hfdHlwZSwKLUBAIC02OTIsNyArNjkzLDcgQEAgZHluYW1pY19jYXN0X2NoZWNrXzIg KHN0cnVjdCB0eXBlICpkZXNpcgotIAotICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xB U1NFUyAoc2VhcmNoX3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKLSAgICAgewotLSAg ICAgIGludCBvZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCBvZmZzZXQ7Ci0gCi0gICAgICAgaWYgKCEg QkFTRVRZUEVfVklBX1BVQkxJQyAoc2VhcmNoX3R5cGUsIGkpKQotIAljb250aW51ZTsKLUBAIC03 MjMsNyArNzI0LDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcgot IHN0cnVjdCB2YWx1ZSAqCi0gdmFsdWVfZHluYW1pY19jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHZhbHVlICphcmcpCi0gewotLSAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwotKyAg aW50IGZ1bGwsIHVzaW5nX2VuYzsKLSsgIExPTkdFU1QgdG9wOwotICAgc3RydWN0IHR5cGUgKnJl c29sdmVkX3R5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKLSAgIHN0cnVjdCB0eXBlICphcmdf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwotICAgc3RydWN0IHR5cGUg KmNsYXNzX3R5cGUsICpydHRpX3R5cGU7Ci1AQCAtOTU0LDcgKzk1Niw3IEBAIHZhbHVlX2F0X2xh enkgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0EKLSB9Ci0gCi0gdm9pZAotLXJlYWRfdmFsdWVf bWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50IGVtYmVkZGVkX29mZnNldCwKLStyZWFkX3Zh bHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAot IAkJICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKLSAJCSAgIGdkYl9ieXRlICpidWZm ZXIsIHNpemVfdCBsZW5ndGgpCi0gewotQEAgLTEwNTcsNyArMTA1OSw3IEBAIHZhbHVlX2Fzc2ln biAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQAogICAg ICAgIHsKICAJY29uc3QgZ2RiX2J5dGUgKmRlc3RfYnVmZmVyOwogIAlDT1JFX0FERFIgY2hhbmdl ZF9hZGRyOwpAQCAtMzQxNywxMzQgKzMwMzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3ZhbG9wcy5jCiAgICAgICAgICBnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNU KV07CiAgCiAgCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi1AQCAtMTEyNiw3ICsxMTI4LDcg QEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YwotIAlpZiAodmFsdWVf Yml0c2l6ZSAodG92YWwpKQotIAkgIHsKLSAJICAgIHN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFs dWVfcGFyZW50ICh0b3ZhbCk7Ci0tCSAgICBpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJl bnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Ci0rCSAgICBMT05HRVNUIG9mZnNldCA9IHZhbHVl X29mZnNldCAocGFyZW50KSArIHZhbHVlX29mZnNldCAodG92YWwpOwotIAkgICAgaW50IGNoYW5n ZWRfbGVuOwotIAkgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwotIAkgICAg aW50IG9wdGltLCB1bmF2YWlsOwotQEAgLTE1OTAsNyArMTU5Miw3IEBAIHZhbHVlX2FycmF5IChp bnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQKLSB7Ci0gICBpbnQgbmVsZW07Ci0gICBpbnQgaWR4 OwotLSAgdW5zaWduZWQgaW50IHR5cGVsZW5ndGg7Ci0rICBVTE9OR0VTVCB0eXBlbGVuZ3RoOwot ICAgc3RydWN0IHZhbHVlICp2YWw7Ci0gICBzdHJ1Y3QgdHlwZSAqYXJyYXl0eXBlOwotIAotQEAg LTE3NjYsNyArMTc2OCw3IEBAIHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyYXJncywgaW50 IG4KLSAKLSBzdGF0aWMgdm9pZAotIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUg KipyZXN1bHRfcHRyLCBzdHJ1Y3QgdmFsdWUgKnYsCi0tCQkgICAgICBpbnQgKmxhc3RfYm9mZnNl dCwgaW50IGJvZmZzZXQsCi0rCQkgICAgICBMT05HRVNUICpsYXN0X2JvZmZzZXQsIExPTkdFU1Qg Ym9mZnNldCwKLSAJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB0eXBlICp0eXBlKQot IHsKLSAgIGlmICh2ICE9IE5VTEwpCi1AQCAtMTc5MCwxMCArMTc5MiwxMCBAQCB1cGRhdGVfc2Vh cmNoX3Jlc3VsdCAoc3RydWN0IHZhbHVlICoqcmVzCi0gICAgbG9va3VwIGlzIGFtYmlndW91cy4g ICovCi0gCi0gc3RhdGljIHZvaWQKLS1kb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFy ICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCi0rZG9fc2VhcmNoX3N0cnVj dF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICphcmcxLCBMT05HRVNUIG9m ZnNldCwKLSAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGxvb2tpbmdfZm9yX2Jhc2VjbGFzcywK LSAJCQlzdHJ1Y3QgdmFsdWUgKipyZXN1bHRfcHRyLAotLQkJCWludCAqbGFzdF9ib2Zmc2V0LAot KwkJCUxPTkdFU1QgKmxhc3RfYm9mZnNldCwKLSAJCQlzdHJ1Y3QgdHlwZSAqb3V0ZXJtb3N0X3R5 cGUpCi0gewotICAgaW50IGk7Ci1AQCAtMTg0MCw3ICsxODQyLDcgQEAgZG9fc2VhcmNoX3N0cnVj dF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQotIAkJICAgPHZhcmlhbnQgZmllbGQ+LiAgKi8KLSAK LSAJCXN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7Ci0tCQlpbnQgbmV3X29mZnNldCA9IG9mZnNldDsK LSsJCUxPTkdFU1QgbmV3X29mZnNldCA9IG9mZnNldDsKLSAKLSAJCS8qIFRoaXMgaXMgcHJldHR5 IGdyb3NzLiAgSW4gRysrLCB0aGUgb2Zmc2V0IGluIGFuCi0gCQkgICBhbm9ueW1vdXMgdW5pb24g aXMgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUKLUBAIC0xODc5LDcgKzE4ODEsNyBA QCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCi0gCQkJICAgICAmJiAo c3RyY21wX2l3IChuYW1lLCAKLSAJCQkJCSAgICBUWVBFX0JBU0VDTEFTU19OQU1FICh0eXBlLCAK LSAJCQkJCQkJCSBpKSkgPT0gMCkpOwotLSAgICAgIGludCBib2Zmc2V0ID0gdmFsdWVfZW1iZWRk ZWRfb2Zmc2V0IChhcmcxKSArIG9mZnNldDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQgPSB2YWx1 ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0OwotIAotICAgICAgIGlmIChCQVNFVFlQ RV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCi0gCXsKLUBAIC0xOTU1LDcgKzE5NTcsNyBAQCBzZWFy Y2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzCi0gCQkgICAgIHN0cnVjdCB0eXBl ICp0eXBlLCBpbnQgbG9va2luZ19mb3JfYmFzZWNsYXNzKQotIHsKLSAgIHN0cnVjdCB2YWx1ZSAq cmVzdWx0ID0gTlVMTDsKLS0gIGludCBib2Zmc2V0ID0gMDsKLSsgIExPTkdFU1QgYm9mZnNldCA9 IDA7Ci0gCi0gICBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcxLCAwLCB0eXBlLCBs b29raW5nX2Zvcl9iYXNlY2xhc3MsCi0gCQkJICAmcmVzdWx0LCAmYm9mZnNldCwgdHlwZSk7Ci1A QCAtMTk3Miw3ICsxOTc0LDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFt ZSwgcwotIAotIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChj b25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKLS0JCSAgICAgIHN0cnVjdCB2 YWx1ZSAqKmFyZ3MsIGludCBvZmZzZXQsCi0rCQkgICAgICBzdHJ1Y3QgdmFsdWUgKiphcmdzLCBM T05HRVNUIG9mZnNldCwKLSAJCSAgICAgIGludCAqc3RhdGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlw ZSAqdHlwZSkKLSB7Ci0gICBpbnQgaTsKLUBAIC0yMDM2LDggKzIwMzgsOCBAQCBzZWFyY2hfc3Ry dWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwKLSAKLSAgIGZvciAoaSA9IFRZUEVfTl9CQVNF Q0xBU1NFUyAodHlwZSkgLSAxOyBpID49IDA7IGktLSkKLSAgICAgewotLSAgICAgIGludCBiYXNl X29mZnNldDsKLS0gICAgICBpbnQgdGhpc19vZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCBiYXNlX29m ZnNldDsKLSsgICAgICBMT05HRVNUIHRoaXNfb2Zmc2V0OwotIAotICAgICAgIGlmIChCQVNFVFlQ RV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCi0gCXsKLUBAIC0yMjcyLDEwICsyMjc0LDEwIEBAIHZh bHVlX3N0cnVjdF9lbHRfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKioKLSAKLSBzdGF0aWMgdm9pZAot IGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNoYXIgKm1ldGhv ZCwKLS0JCSAgaW50IG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUsCi0rCQkgIExPTkdFU1Qgb2Zm c2V0LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLSAJCSAgc3RydWN0IGZuX2ZpZWxkICoqZm5fbGlzdCwg aW50ICpudW1fZm5zLAotIAkJICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKip4bV93b3JrZXJf dmVjLAotLQkJICBzdHJ1Y3QgdHlwZSAqKmJhc2V0eXBlLCBpbnQgKmJvZmZzZXQpCi0rCQkgIHN0 cnVjdCB0eXBlICoqYmFzZXR5cGUsIExPTkdFU1QgKmJvZmZzZXQpCi0gewotICAgaW50IGk7Ci0g ICBzdHJ1Y3QgZm5fZmllbGQgKmYgPSBOVUxMOwotQEAgLTIzMzIsNyArMjMzNCw3IEBAIGZpbmRf bWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGMKLSAgICAgIGV4dGVuc2lvbiBtZXRo b2RzLiAgKi8KLSAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkgLSAxOyBpID49 IDA7IGktLSkKLSAgICAgewotLSAgICAgIGludCBiYXNlX29mZnNldDsKLSsgICAgICBMT05HRVNU IGJhc2Vfb2Zmc2V0OwotIAotICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwg aSkpCi0gCXsKLUBAIC0yMzc1LDcgKzIzNzcsNyBAQCB2YWx1ZV9maW5kX29sb2FkX21ldGhvZF9s aXN0IChzdHJ1Y3QgdmFsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNl dCwgc3RydWN0IGZuX2ZpZWxkICoqZm5fbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgKm51bV9mbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDICh4 bWV0aG9kX3dvcmtlcl9wdHIpICoqeG1fd29ya2VyX3ZlYywKLS0JCQkgICAgICBzdHJ1Y3QgdHlw ZSAqKmJhc2V0eXBlLCBpbnQgKmJvZmZzZXQpCi0rCQkJICAgICAgc3RydWN0IHR5cGUgKipiYXNl dHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqdDsKLSAKLUBAIC0y NDg2LDcgKzI0ODgsNyBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdmFsdWUgKiphcmdz Ci0gICAvKiBOdW1iZXIgb2Ygb3ZlcmxvYWRlZCBpbnN0YW5jZXMgYmVpbmcgY29uc2lkZXJlZC4g ICovCi0gICBpbnQgbnVtX2ZucyA9IDA7Ci0gICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGUgPSBOVUxM OwotLSAgaW50IGJvZmZzZXQ7Ci0rICBMT05HRVNUIGJvZmZzZXQ7Ci0gCi0gICBzdHJ1Y3QgY2xl YW51cCAqYWxsX2NsZWFudXBzID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFudXAsIE5VTEwpOwot IAotQEAgLTMzMDAsNyArMzMwMiw3IEBAIGNvbXBhcmVfcGFyYW1ldGVycyAoc3RydWN0IHR5cGUg KnQxLCBzdHIKK0BAIC0zMzI4LDcgKzMzMjgsNyBAQAogICAgIHRoZSBmb3JtICJET01BSU46Ok5B TUUiLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTM1NTMsNyArMzA0OCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJCQkJc3RydWN0IHR5 cGUgKmN1cnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCiAgCQkJCXN0cnVjdCB0eXBlICppbnR5cGUs IAogIAkJCQlpbnQgd2FudF9hZGRyZXNzLAotQEAgLTMzMzQsNyArMzMzNiw3IEBAIHZhbHVlX3N0 cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKK0BAIC0zMzYyLDcgKzMzNjIsNyBAQAog IAkgIGlmICh3YW50X2FkZHJlc3MpCiAgCSAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25nZXN0CiAg CSAgICAgIChsb29rdXBfbWVtYmVycHRyX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodCwgaSksIGRv bWFpbiksCkBAIC0zNTYyLDcgKzMwNTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbG9wcy5jCiAgCSAgZWxzZSBpZiAobm9zaWRlICE9IEVWQUxfTk9STUFMKQogIAkgICAg cmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpKTsKICAJICBlbHNl Ci1AQCAtMzUwMiw3ICszNTA0LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChz dHJ1Y3QgdAorQEAgLTM1MzAsNyArMzUzMCw3IEBACiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNM QVNTRVMgKHQpIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUg KnY7CkBAIC0zNTcxLDE2ICszMDY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodCwgaSkpCiAg CWJhc2Vfb2Zmc2V0ID0gMDsKLUBAIC0zNTgzLDcgKzM1ODUsNyBAQCB2YWx1ZV9tYXliZV9uYW1l c3BhY2VfZWx0IChjb25zdCBzdHJ1Y3QKLSAKLSBzdHJ1Y3QgdHlwZSAqCi0gdmFsdWVfcnR0aV9p bmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgCi0tCQkJICBpbnQgKnRv cCwgaW50ICp1c2luZ19lbmMpCi0rCQkJICBMT05HRVNUICp0b3AsIGludCAqdXNpbmdfZW5jKQot IHsKLSAgIHN0cnVjdCB2YWx1ZSAqdGFyZ2V0ID0gTlVMTDsKLSAgIHN0cnVjdCB0eXBlICp0eXBl LCAqcmVhbF90eXBlLCAqdGFyZ2V0X3R5cGU7Ci1AQCAtMzY1MSwxMiArMzY1MywxMiBAQCB2YWx1 ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCitAQCAtMzY3OSw3ICszNjc5LDcg QEAKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKmFy Z3AsIAogIAkJICAgc3RydWN0IHR5cGUgKnJ0eXBlLCAKQEAgLTM1ODksMjYgKzMwNzUsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwogIAkJICAgaW50IHh1c2lu Z19lbmMpCiAgewogICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLSAgIGludCBmdWxsID0gMDsK LS0gIGludCB0b3AgPSAtMTsKLSsgIExPTkdFU1QgdG9wID0gLTE7Ci0gICBpbnQgdXNpbmdfZW5j ID0gMDsKLSAgIHN0cnVjdCB2YWx1ZSAqbmV3X3ZhbDsKLSAKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92 YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv dmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI0MjM1MTg1MSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0 OTkxICswMTAwCi1AQCAtMjk5LDcgKzI5OSw3IEBAIHZhbF9wcmludF9zY2FsYXJfdHlwZV9wIChz dHJ1Y3QgdHlwZSAqdHkKLSBpbnQKLSB2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwKLSAJCQkgc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJIGludCBlbWJlZGRl ZF9vZmZzZXQsCi0rCQkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7Ci1AQCAt ODM0LDcgKzgzNCw3IEBAIGdlbmVyaWNfdmFsX3ByaW50X2NvbXBsZXggKHN0cnVjdCB0eXBlICoK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMTE4NTEwNjQwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Zh bHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC05MDcsNyAr OTA3LDcgQEAKICAKICB2b2lkCiAgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM2MTcsMjUgKzMwODgsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMKICAJCSAgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5h bF92YWx1ZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAotQEAgLTk2OSw3ICs5NjksNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvCi0gICAgUkVDVVJTRS4gICovCi0gCi0gdm9pZAotLXZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAot K3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwKLSAJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAt MTIyMSw3ICsxMjIxLDcgQEAgdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUg KgotIAotIHZvaWQKLSB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKnR5 cGUsCi0tCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAotKwkJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJCSAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLSAJCQkgICAgaW50IHNpemUsCi1AQCAt MTc2Niw3ICsxNzY2LDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0 cgorQEAgLTE4NDIsNyArMTg0Miw3IEBACiAgCiAgdm9pZAogIHByaW50X2hleF9jaGFycyAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0zNjQ0LDEz ICszMDk3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAg ewogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgCi1AQCAtMTg4MywyMiArMTg4MywyMiBAQCBtYXli ZV9wcmludF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmluCi0gCi0gdm9pZAotIHZhbF9wcmlu dF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJICBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkgIENPUkVfQUREUiBhZGRyZXNz LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTE5NjQsMTcgKzE5NjQsMTcgQEAKICAJCQkg IGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKQEAgLTM2NzMsNyArMzEyMCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwogICAgTE9OR0VT VCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAgICBMT05HRVNUIGxvd19wb3MsIGhpZ2hfcG9zOwog IAotQEAgLTE5ODgsNyArMTk4OCw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0 IHR5cGUgKnQKK0BAIC0yMDY0LDcgKzIwNjQsNyBAQAogIAkJICAgICBhZGRyZXNzLCBzdHJlYW0s IHJlY3Vyc2UgKyAxLCB2YWwsIG9wdGlvbnMsCiAgCQkgICAgIGN1cnJlbnRfbGFuZ3VhZ2UpOwog IAkgIGFubm90YXRlX2VsdF9yZXAgKHJlcHMpOwpAQCAtMzY4Miw3ICszMTI5LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgCSAgYW5ub3RhdGVfZWx0X3Jl cF9lbmQgKCk7CiAgCiAgCSAgaSA9IHJlcDEgLSAxOwotQEAgLTI2NDQsNyArMjY0NCw3IEBAIHBy aW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0YWNrIChzdHJ1Y3QKK0BAIC0yNzIwLDcgKzI3MjAs NyBAQAogIAogIHZvaWQKICBnZW5lcmljX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgCkBAIC0zNjkxLDE2ICszMTM4LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwogIAkJICBjb25zdCBjaGFyICplbmNvZGlu ZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJICBpbnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVf dGVybWluYXRvciwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4y NDIzNTE4NTEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAky MDE1LTExLTAyIDIxOjIzOjEzLjIzOTM2NDk5MSArMDEwMAotQEAgLTExNSwxMSArMTE1LDExIEBA IGV4dGVybiB2b2lkIG1heWJlX3ByaW50X2FycmF5X2luZGV4IChzdHIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCQkJICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLS1leHRlcm4gdm9pZCB2 YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICos IGludCwKLStleHRlcm4gdm9pZCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBl ICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvdmFscHJpbnQuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjExODUxMDY0MCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5oCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTQ5NTMwMjA1ICswMjAwCitAQCAtMTE5LDcgKzExOSw3IEBACiAgCQkJCSAgICAgIENPUkVf QUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKiwKICAJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKQEAg LTM3MDksMTYgKzMxNTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHBy aW50LmgKICAKICBleHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ludCAoc3RydWN0IHR5 cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKICAJCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKLUBA IC0xMjksNyArMTI5LDcgQEAgZXh0ZXJuIHZvaWQgdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAo cwotIAkJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci0gCi0gZXh0ZXJuIHZvaWQg dmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKHN0cnVjdCB0eXBlICosCi0tCQkJCQljb25zdCBn ZGJfYnl0ZSAqLCBpbnQsCi0rCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAotIAkJCQkJ Y29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqLAotIAkJCQkJaW50LAotQEAgLTE0NSw3ICsxNDUsNyBAQCBleHRlcm4gdm9pZCBwcmlu dF9kZWNpbWFsX2NoYXJzIChzdHJ1Y3QKK0BAIC0xNDEsNyArMTQxLDcgQEAKICAJCQkJIHVuc2ln bmVkIGludCwgZW51bSBiZmRfZW5kaWFuKTsKICAKICBleHRlcm4gdm9pZCBwcmludF9oZXhfY2hh cnMgKHN0cnVjdCB1aV9maWxlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC0zNzI3LDcgKzMxNjAs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKICAKICBleHRl cm4gdm9pZCBwcmludF9jaGFyX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgdHlwZSAq LAogIAkJCSAgICAgIGNvbnN0IGdkYl9ieXRlICosIHVuc2lnbmVkIGludCwgZW51bSBiZmRfZW5k aWFuKTsKLUBAIC0xOTQsNyArMTk0LDcgQEAgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlY29y YXRpb25zCitAQCAtMTk0LDcgKzE5NCw3IEBACiAgCiAgCiAgZXh0ZXJuIHZvaWQgZ2VuZXJpY192 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAg LTM3MzYsNyArMzE2OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJp bnQuaAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCQkgICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMjA0LDcgKzIw NCw3IEBAIGV4dGVybiB2b2lkIGdlbmVyaWNfZW1pdF9jaGFyIChpbnQgYywgc3QKK0BAIC0yMDQs NyArMjA0LDcgQEAKICAJCQkgICAgICAgaW50IHF1b3RlciwgY29uc3QgY2hhciAqZW5jb2Rpbmcp OwogIAogIGV4dGVybiB2b2lkIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM3NDUsODMgKzMxNzgsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCiAgCQkJICAgICAgY29uc3QgY2hhciAq ZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgICAgICBpbnQgcXVvdGVfY2hhciwg aW50IGNfc3R5bGVfdGVybWluYXRvciwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Zh bHVlLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsdWUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4yNDgzNTE4OTAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFs dWUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MTM2NTAwNCArMDEwMAotQEAgLTY2LDEwICs2Niwx MCBAQCBzdHJ1Y3QgaW50ZXJuYWxfZnVuY3Rpb24KLSBzdHJ1Y3QgcmFuZ2UKLSB7Ci0gICAvKiBM b3dlc3Qgb2Zmc2V0IGluIHRoZSByYW5nZS4gICovCi0tICBpbnQgb2Zmc2V0OwotKyAgTE9OR0VT VCBvZmZzZXQ7Ci0gCi0gICAvKiBMZW5ndGggb2YgdGhlIHJhbmdlLiAgKi8KLS0gIGludCBsZW5n dGg7Ci0rICBMT05HRVNUIGxlbmd0aDsKLSB9OwotIAotIHR5cGVkZWYgc3RydWN0IHJhbmdlIHJh bmdlX3M7Ci1AQCAtODAsOCArODAsOCBAQCBERUZfVkVDX08ocmFuZ2Vfcyk7Ci0gICAgW29mZnNl dDIsIG9mZnNldDIrbGVuMikgb3ZlcmxhcC4gICovCi0gCi0gc3RhdGljIGludAotLXJhbmdlc19v dmVybGFwIChpbnQgb2Zmc2V0MSwgaW50IGxlbjEsCi0tCQlpbnQgb2Zmc2V0MiwgaW50IGxlbjIp Ci0rcmFuZ2VzX292ZXJsYXAgKExPTkdFU1Qgb2Zmc2V0MSwgTE9OR0VTVCBsZW4xLAotKwkJTE9O R0VTVCBvZmZzZXQyLCBMT05HRVNUIGxlbjIpCi0gewotICAgVUxPTkdFU1QgaCwgbDsKLSAKLUBA IC0xMDUsNyArMTA1LDcgQEAgcmFuZ2VfbGVzc3RoYW4gKGNvbnN0IHJhbmdlX3MgKnIxLCBjb25z dAotICAgIE9GRlNFVCtMRU5HVEgpLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tcmFuZ2VzX2NvbnRh aW4gKFZFQyhyYW5nZV9zKSAqcmFuZ2VzLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3Jhbmdl c19jb250YWluIChWRUMocmFuZ2VfcykgKnJhbmdlcywgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1Qg bGVuZ3RoKQotIHsKLSAgIHJhbmdlX3Mgd2hhdDsKLSAgIGludCBpOwotQEAgLTI0MCw3ICsyNDAs NyBAQCBzdHJ1Y3QgdmFsdWUKLSAgICAgIHRoZSBhZGRyZXNzLiAgSWYgbHZhbCA9PSBsdmFsX3Jl Z2lzdGVyLCB0aGlzIGlzIGEgZnVydGhlciBvZmZzZXQgZnJvbQotICAgICAgbG9jYXRpb24uYWRk cmVzcyB3aXRoaW4gdGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlIG1lbWJl cgotICAgICAgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KLS0gIGludCBvZmZzZXQ7Ci0rICBM T05HRVNUIG9mZnNldDsKLSAKLSAgIC8qIE9ubHkgdXNlZCBmb3IgYml0ZmllbGRzOyBudW1iZXIg b2YgYml0cyBjb250YWluZWQgaW4gdGhlbS4gICovCi0gICBpbnQgYml0c2l6ZTsKLUBAIC0zMTAs OCArMzEwLDggQEAgc3RydWN0IHZhbHVlCi0gICAgICBgdHlwZScsIGFuZCBgZW1iZWRkZWRfb2Zm c2V0JyBpcyB6ZXJvLCBzbyBldmVyeXRoaW5nIHdvcmtzCi0gICAgICBub3JtYWxseS4gICovCi0g ICBzdHJ1Y3QgdHlwZSAqZW5jbG9zaW5nX3R5cGU7Ci0tICBpbnQgZW1iZWRkZWRfb2Zmc2V0Owot LSAgaW50IHBvaW50ZWRfdG9fb2Zmc2V0OwotKyAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQ7Ci0r ICBMT05HRVNUIHBvaW50ZWRfdG9fb2Zmc2V0OwotIAotICAgLyogVmFsdWVzIGFyZSBzdG9yZWQg aW4gYSBjaGFpbiwgc28gdGhhdCB0aGV5IGNhbiBiZSBkZWxldGVkIGVhc2lseQotICAgICAgb3Zl ciBjYWxscyB0byB0aGUgaW5mZXJpb3IuICBWYWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBA IC0zNTAsNyArMzUwLDcgQEAgZ2V0X3ZhbHVlX2FyY2ggKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs dQotIH0KLSAKLSBpbnQKLS12YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVl ICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSt2YWx1ZV9iaXRzX2F2YWlsYWJsZSAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3Ro KQotIHsKLSAgIGdkYl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7Ci0gCi1AQCAtMzU4LDcgKzM1OCw4 IEBAIHZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUKLSB9Ci0gCi0gaW50 Ci0tdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQg b2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3ZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCi0rCQkgICAgICAgTE9OR0VTVCBsZW5ndGgp Ci0gewotICAgcmV0dXJuIHZhbHVlX2JpdHNfYXZhaWxhYmxlICh2YWx1ZSwKLSAJCQkgICAgICAg b2Zmc2V0ICogVEFSR0VUX0NIQVJfQklULAotQEAgLTM2Niw3ICszNjcsOCBAQCB2YWx1ZV9ieXRl c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvdmFsdWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExOTUxMDY0OCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ5 NTMwMjA1ICswMjAwCitAQCAtMzY2LDcgKzM2Niw4IEBACiAgfQogIAogIGludApAQCAtMzgzMSwz NiArMzE5Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwogIHsK ICAgIGdkYl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7CiAgCi1AQCAtNDI4LDcgKzQzMCw4IEBAIHZh bHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWwKLSAgICBPRkZTRVQgYml0cywg YW5kIGV4dGVuZGluZyBmb3IgdGhlIG5leHQgTEVOR1RIIGJpdHMuICAqLwotIAotIHN0YXRpYyB2 b2lkCi0taW5zZXJ0X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoVkVDKHJhbmdlX3MpICoqdmVjdG9y cCwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLStpbnNlcnRfaW50b19iaXRfcmFuZ2VfdmVjdG9y IChWRUMocmFuZ2VfcykgKip2ZWN0b3JwLCBMT05HRVNUIG9mZnNldCwKLSsJCQkgICAgICBMT05H RVNUIGxlbmd0aCkKLSB7Ci0gICByYW5nZV9zIG5ld3I7Ci0gICBpbnQgaTsKLUBAIC01OTksNyAr NjAyLDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdQotIH0KLSAK LSB2b2lkCi0tbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1 ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSttYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxl IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJCQkgICAgICBMT05HRVNU IGxlbmd0aCkKLSB7Ci0gICBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHZhbHVlLAotIAkJ CSAgICAgICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtNjEzLDcgKzYxNyw3IEBAIG1h cmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWwKLSAKLSBzdGF0aWMgaW50Ci0g ZmluZF9maXJzdF9yYW5nZV9vdmVybGFwIChWRUMocmFuZ2VfcykgKnJhbmdlcywgaW50IHBvcywK LS0JCQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rCQkJICBMT05HRVNUIG9mZnNldCwgTE9O R0VTVCBsZW5ndGgpCi0gewotICAgcmFuZ2VfcyAqcjsKLSAgIGludCBpOwotQEAgLTgwOSw5ICs4 MTMsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXBfYW5kX21hdGNoIChzdHJ1CitAQCAtODEy LDkgKzgxMyw5IEBACiAgICAgUmV0dXJuIHRydWUgaWYgdGhlIGF2YWlsYWJsZSBiaXRzIG1hdGNo LiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC0zODczLDU5ICszMjA1LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5jCiAgewogICAgLyogRWFjaCBhcnJheSBlbGVtZW50 IGNvcnJlc3BvbmRzIHRvIGEgcmFuZ2VzIHNvdXJjZSAodW5hdmFpbGFibGUsCiAgICAgICBvcHRp bWl6ZWQgb3V0KS4gICcxJyBpcyBmb3IgVkFMMSwgJzInIGZvciBWQUwyLiAgKi8KLUBAIC04NzEs OSArODc1LDkgQEAgdmFsdWVfY29udGVudHNfYml0c19lcSAoY29uc3Qgc3RydWN0IHZhbAotIH0K LSAKLSBpbnQKLS12YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBp bnQgb2Zmc2V0MSwKLS0JCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIs Ci0tCQkgICBpbnQgbGVuZ3RoKQotK3ZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbDEsIExPTkdFU1Qgb2Zmc2V0MSwKLSsJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs MiwgTE9OR0VTVCBvZmZzZXQyLAotKwkJICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmV0dXJu IHZhbHVlX2NvbnRlbnRzX2JpdHNfZXEgKHZhbDEsIG9mZnNldDEgKiBUQVJHRVRfQ0hBUl9CSVQs Ci0gCQkJCSB2YWwyLCBvZmZzZXQyICogVEFSR0VUX0NIQVJfQklULAotQEAgLTEwMzcsMTMgKzEw NDEsMTMgQEAgZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoc3RydWN0IHZhbHVlCi0gICB2YWx1 ZS0+dHlwZSA9IHR5cGU7Ci0gfQotIAotLWludAotK0xPTkdFU1QKLSB2YWx1ZV9vZmZzZXQgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUpCi0gewotICAgcmV0dXJuIHZhbHVlLT5vZmZzZXQ7Ci0g fQotIHZvaWQKLS1zZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zm c2V0KQotK3NldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zm c2V0KQotIHsKLSAgIHZhbHVlLT5vZmZzZXQgPSBvZmZzZXQ7Ci0gfQotQEAgLTEyNTcsOCArMTI2 MSw5IEBAIHZhbHVlX3Jhbmdlc19jb3B5X2FkanVzdGVkIChzdHJ1Y3QgdmFsdWUKLSAgICBEU1Rf T0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwotIAotIHZvaWQK LS12YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIGludCBkc3Rfb2Zm c2V0LAotLQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsIGludCBsZW5ndGgp Ci0rdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRz dF9vZmZzZXQsCi0rCQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZzZXQsCi0r CQkJIHNzaXplX3QgbGVuZ3RoKQotIHsKLSAgIHJhbmdlX3MgKnI7Ci0gICBpbnQgc3JjX2JpdF9v ZmZzZXQsIGRzdF9iaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoOwotQEAgLTEzMDUsOCArMTMxMCw4IEBA IHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmQKLSAgICBEU1RfT0ZGU0VU K0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwotIAotIHZvaWQKLS12YWx1 ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkg ICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwgaW50IGxlbmd0aCkKLSt2YWx1 ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAot KwkJICAgICBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LCBzc2l6ZV90IGxl bmd0aCkKLSB7Ci0gICBpZiAoc3JjLT5sYXp5KQotICAgICB2YWx1ZV9mZXRjaF9sYXp5IChzcmMp OwotQEAgLTEzNzAsNyArMTM3NSw4IEBAIHZhbHVlX29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUKK0BAIC0xNDU2LDcgKzE0NTcsOCBAQAogICAgIHRoZSBmb2xsb3dpbmcgTEVOR1RI IGJ5dGVzLiAgKi8KICAKICB2b2lkCkBAIC0zOTM1LDE5OSArMzIxNSwyMCBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMKICB7CiAgICBtYXJrX3ZhbHVlX2JpdHNfb3B0 aW1pemVkX291dCAodmFsdWUsCiAgCQkJCSBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAt MTM4MCwxNCArMTM4NiwxNSBAQCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVj dCB2Ci0gLyogU2VlIHZhbHVlLmguICAqLwotIAotIHZvaWQKLS1tYXJrX3ZhbHVlX2JpdHNfb3B0 aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkK LSttYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9O R0VTVCBvZmZzZXQsCi0rCQkJICAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIGluc2VydF9p bnRvX2JpdF9yYW5nZV92ZWN0b3IgKCZ2YWx1ZS0+b3B0aW1pemVkX291dCwgb2Zmc2V0LCBsZW5n dGgpOwotIH0KLSAKLSBpbnQKLSB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCSAgICAgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0r CQkJICAgICAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIGlmICh2YWx1 ZS0+bHZhbCAhPSBsdmFsX2NvbXB1dGVkCi0gICAgICAgfHwgIXZhbHVlLT5sb2NhdGlvbi5jb21w dXRlZC5mdW5jcy0+Y2hlY2tfc3ludGhldGljX3BvaW50ZXIpCi1AQCAtMTM5NywyNiArMTQwNCwy NiBAQCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Ci0gCQkJCQkJCQkg IGxlbmd0aCk7Ci0gfQotIAotLWludAotK0xPTkdFU1QKLSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQg KHN0cnVjdCB2YWx1ZSAqdmFsdWUpCi0gewotICAgcmV0dXJuIHZhbHVlLT5lbWJlZGRlZF9vZmZz ZXQ7Ci0gfQotIAotIHZvaWQKLS1zZXRfdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBpbnQgdmFsKQotK3NldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2 YWx1ZSAqdmFsdWUsIExPTkdFU1QgdmFsKQotIHsKLSAgIHZhbHVlLT5lbWJlZGRlZF9vZmZzZXQg PSB2YWw7Ci0gfQotIAotLWludAotK0xPTkdFU1QKLSB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAo c3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUtPnBvaW50ZWRfdG9fb2Zm c2V0OwotIH0KLSAKLSB2b2lkCi0tc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBpbnQgdmFsKQotK3NldF92YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3Ry dWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpCi0gewotICAgdmFsdWUtPnBvaW50ZWRfdG9f b2Zmc2V0ID0gdmFsOwotIH0KLUBAIC0yMjk1LDcgKzIzMDIsNyBAQCBnZXRfaW50ZXJuYWx2YXJf ZnVuY3Rpb24gKHN0cnVjdCBpbnRlcm5hCi0gfQotIAotIHZvaWQKLS1zZXRfaW50ZXJuYWx2YXJf Y29tcG9uZW50IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgaW50IG9mZnNldCwgaW50IGJpdHBv cywKLStzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwg TE9OR0VTVCBvZmZzZXQsIGludCBiaXRwb3MsCi0gCQkJICAgaW50IGJpdHNpemUsIHN0cnVjdCB2 YWx1ZSAqbmV3dmFsKQotIHsKLSAgIGdkYl9ieXRlICphZGRyOwotQEAgLTMwMjAsNyArMzAyNyw3 IEBAIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVlICoKLSAgICBGSUVMRE5P IHNheXMgd2hpY2ggZmllbGQuICAqLwotIAotIHN0cnVjdCB2YWx1ZSAqCi0tdmFsdWVfcHJpbWl0 aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCi0rdmFsdWVfcHJpbWl0 aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAotIAkJICAgICAg IGludCBmaWVsZG5vLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCi0gewotICAgc3RydWN0IHZhbHVl ICp2OwotQEAgLTMwNzIsNyArMzA3OSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0 IHZhbHVlICphcmcKLSAgICAgICAvKiBUaGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJv YmplY3QsIHNvIHByZXNlcnZlIHRoZQotIAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBs YXRlciByZWZlcmVuY2VzIHRvIHZpcnR1YWwKLSAJIGJhc2VzLCBldGMuICAqLwotLSAgICAgIGlu dCBib2Zmc2V0OwotKyAgICAgIExPTkdFU1QgYm9mZnNldDsKLSAKLSAgICAgICAvKiBMYXp5IHJl Z2lzdGVyIHZhbHVlcyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwotICAgICAg IGlmIChWQUxVRV9MVkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkgKGFy ZzEpKQotQEAgLTMxNTksNyArMzE2Niw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFy ZzEsIGludCBmaWUKLSBzdHJ1Y3QgdmFsdWUgKgotIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICpmLAotIAkJaW50IGosIHN0cnVjdCB0eXBlICp0 eXBlLAotLQkJaW50IG9mZnNldCkKLSsJCUxPTkdFU1Qgb2Zmc2V0KQotIHsKLSAgIHN0cnVjdCB2 YWx1ZSAqdjsKLSAgIHN0cnVjdCB0eXBlICpmdHlwZSA9IFRZUEVfRk5fRklFTERfVFlQRSAoZiwg aik7Ci1AQCAtMzIyOSwxNCArMzIzNiwxNCBAQCB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVl ICoqYXJnMXAsIHN0Ci0gCi0gc3RhdGljIExPTkdFU1QKLSB1bnBhY2tfYml0c19hc19sb25nIChz dHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAg IGludCBiaXRwb3MsIGludCBiaXRzaXplKQotKwkJICAgICBMT05HRVNUIGJpdHBvcywgaW50IGJp dHNpemUpCi0gewotICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdldF90eXBlX2FyY2ggKGZpZWxkX3R5cGUpKTsKLSAgIFVMT05HRVNUIHZhbDsKLSAg IFVMT05HRVNUIHZhbG1hc2s7Ci0gICBpbnQgbHNiY291bnQ7Ci0gICBpbnQgYnl0ZXNfcmVhZDsK LS0gIGludCByZWFkX29mZnNldDsKLSsgIExPTkdFU1QgcmVhZF9vZmZzZXQ7Ci0gCi0gICAvKiBS ZWFkIHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyByZXF1aXJlZDsgdGhlcmUgbWF5IG5vdCBi ZQotICAgICAgZW5vdWdoIGJ5dGVzIHRvIHJlYWQgYW4gZW50aXJlIFVMT05HRVNULiAgKi8KLUBA IC0zMjg1LDcgKzMyOTIsNyBAQCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmll bGRfCi0gCi0gaW50Ci0gdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICAgaW50IGVtYmVkZGVkX29mZnNl dCwgaW50IGZpZWxkbm8sCi0rCQkJICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmll bGRubywKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgKnJlc3VsdCkK LSB7Ci0gICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwot QEAgLTMzMjksNyArMzMzNiw3IEBAIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAq dHlwZSwKLSB2b2lkCi0gdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3Rf dmFsLAotIAkJICAgICAgIGludCBiaXRwb3MsIGludCBiaXRzaXplLAotLQkJICAgICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJICAgICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCSAgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl cjsKLUBAIC0zMzY3LDcgKzMzNzQsNyBAQCB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2 YWx1ZSAqZGVzCi0gc3RydWN0IHZhbHVlICoKLSB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0 IHR5cGUgKnR5cGUsIGludCBmaWVsZG5vLAotIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCi0tCQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCkKLSsJCSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCkKLSB7Ci0gICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxk bm8pOwotICAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8p OwotQEAgLTMzODgsMTIgKzMzOTUsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0 eXBlICp0eXBlLAotIAotIHZvaWQKLSBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBn ZGJfYnl0ZSAqYWRkciwKLS0JICAgICAgTE9OR0VTVCBmaWVsZHZhbCwgaW50IGJpdHBvcywgaW50 IGJpdHNpemUpCi0rCSAgICAgIExPTkdFU1QgZmllbGR2YWwsIExPTkdFU1QgYml0cG9zLCBpbnQg Yml0c2l6ZSkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwotICAgVUxPTkdFU1Qgb3dvcmQ7Ci0gICBV TE9OR0VTVCBtYXNrID0gKFVMT05HRVNUKSAtMSA+PiAoOCAqIHNpemVvZiAoVUxPTkdFU1QpIC0g Yml0c2l6ZSk7Ci0tICBpbnQgYnl0ZXNpemU7Ci0rICBMT05HRVNUIGJ5dGVzaXplOwotIAotICAg LyogTm9ybWFsaXplIEJJVFBPUy4gICovCi0gICBhZGRyICs9IGJpdHBvcyAvIDg7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdmFsdWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3ZhbHVlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MTM2 NTAwNCArMDEwMAotQEAgLTEzNSw4ICsxMzUsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfcGFy ZW50IChzdHJ1Y3QgdmFsCi0gICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90 ZSBhbHNvIHRoZSBtZW1iZXIKLSAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwotIAotLWV4 dGVybiBpbnQgdmFsdWVfb2Zmc2V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKik7Ci0tZXh0ZXJuIHZv aWQgc2V0X3ZhbHVlX29mZnNldCAoc3RydWN0IHZhbHVlICosIGludCBvZmZzZXQpOwotK2V4dGVy biBMT05HRVNUIHZhbHVlX29mZnNldCAoY29uc3Qgc3RydWN0IHZhbHVlICopOwotK2V4dGVybiB2 b2lkIHNldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqLCBMT05HRVNUIG9mZnNldCk7Ci0g Ci0gLyogVGhlIGNvbW1lbnQgZnJvbSAic3RydWN0IHZhbHVlIiByZWFkczogYGBJcyBpdCBtb2Rp ZmlhYmxlPyAgT25seQotICAgIHJlbGV2YW50IGlmIGx2YWwgIT0gbm90X2x2YWwuJycuICBTaG91 bGRuJ3QgdGhlIHZhbHVlIGluc3RlYWQgYmUKLUBAIC0yMDUsMTAgKzIwNSwxMCBAQCBleHRlcm4g c3RydWN0IHR5cGUgKnZhbHVlX2FjdHVhbF90eXBlIChzCi0gCQkJCSAgICAgICBpbnQgcmVzb2x2 ZV9zaW1wbGVfdHlwZXMsCi0gCQkJCSAgICAgICBpbnQgKnJlYWxfdHlwZV9mb3VuZCk7Ci0gCi0t ZXh0ZXJuIGludCB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSk7 Ci0tZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBpbnQgdmFsKTsKLS1leHRlcm4gaW50IHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3Ry dWN0IHZhbHVlICp2YWx1ZSk7Ci0tZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX2VtYmVkZGVkX29mZnNl dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IHZhbCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVf cG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOwotK2V4dGVybiB2b2lkIHNl dF92YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2 YWwpOwotK2V4dGVybiBMT05HRVNUIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVl ICp2YWx1ZSk7Ci0rZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0 IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpOwotIAotIC8qIEZvciBsdmFsX2NvbXB1dGVkIHZh bHVlcywgdGhpcyBzdHJ1Y3R1cmUgaG9sZHMgZnVuY3Rpb25zIHVzZWQgdG8KLSAgICByZXRyaWV2 ZSBhbmQgc2V0IHRoZSB2YWx1ZSAob3IgcG9ydGlvbnMgb2YgdGhlIHZhbHVlKS4KLUBAIC0yNDYs NyArMjQ2LDcgQEAgc3RydWN0IGx2YWxfZnVuY3MKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi92YWx1ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1 MzAyMTMgKzAyMDAKK0BAIC0yNDYsNyArMjQ2LDcgQEAKICAgIC8qIElmIG5vbi1OVUxMLCB0aGlz IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGluZGljYXRlZCBiaXRzCiAgICAgICBv ZiBWQUxVRSBhcmUgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCiAgICBpbnQgKCpjaGVja19zeW50 aGV0aWNfcG9pbnRlcikgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCSAgaW50IG9m ZnNldCwgaW50IGxlbmd0aCk7CistCQkJCSAgTE9OR0VTVCBvZmZzZXQsIGludCBsZW5ndGgpOwog KwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CiAgCiAgICAvKiBSZXR1cm4g YSBkdXBsaWNhdGUgb2YgVkFMVUUncyBjbG9zdXJlLCBmb3IgdXNlIGluIGEgbmV3IHZhbHVlLgog ICAgICAgVGhpcyBtYXkgc2ltcGx5IHJldHVybiB0aGUgc2FtZSBjbG9zdXJlLCBpZiBWQUxVRSdz IGlzCi1AQCAtMjgzLDcgKzI4Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX2Nv bXB1dGVkX3YKLSAgICBPdGhlcndpc2UsIHJldHVybiAxLiAgKi8KLSAKLSBleHRlcm4gaW50IHZh bHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwKLS0JCQkJICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCSAgICBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwKLSAJCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSAK LSBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9vcHRpbWl6ZWRfb3V0X3ZhbHVlIChzdHJ1 Y3QgdHlwZSAqdHlwZSk7Ci1AQCAtMzc3LDcgKzM3Nyw4IEBAIGV4dGVybiBpbnQgdmFsdWVfb3B0 aW1pemVkX291dCAoc3RydWN0IHYKK0BAIC0zNzcsNyArMzc3LDggQEAKICAgICBvdGhlcndpc2Uu ICAqLwogIAogIGV4dGVybiBpbnQgdmFsdWVfYml0c19hbnlfb3B0aW1pemVkX291dCAoY29uc3Qg c3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQxMzcsNyArMzIzOCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogIAogIC8qIExpa2UgdmFsdWVfb3B0aW1pemVkX291 dCwgYnV0IHJldHVybiB0cnVlIGlmZiB0aGUgd2hvbGUgdmFsdWUgaXMKICAgICBvcHRpbWl6ZWQg b3V0LiAgKi8KLUBAIC0zODcsMTMgKzM4OCwxMyBAQCBleHRlcm4gaW50IHZhbHVlX2VudGlyZWx5 X29wdGltaXplZF9vdXQKK0BAIC0zODcsNyArMzg4LDcgQEAKICAgICBMRU5HVEggYnl0ZXMgYXMg b3B0aW1pemVkIG91dC4gICovCiAgCiAgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRlc19vcHRp bWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDE0NiwxMjQgKzMyNDcsMTIgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgLyogTWFyayBWQUxV RSdzIGNvbnRlbnQgYml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IKICAg ICBMRU5HVEggYml0cyBhcyBvcHRpbWl6ZWQgb3V0LiAgKi8KLSAKLSBleHRlcm4gdm9pZCBtYXJr X3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJCSAg IGludCBvZmZzZXQsIGludCBsZW5ndGgpOwotKwkJCQkJICAgTE9OR0VTVCBvZmZzZXQsIExPTkdF U1QgbGVuZ3RoKTsKLSAKLSAvKiBTZXQgb3IgcmV0dXJuIGZpZWxkIGluZGljYXRpbmcgd2hldGhl ciBhIHZhcmlhYmxlIGlzIGluaXRpYWxpemVkIG9yCi0gICAgbm90LCBiYXNlZCBvbiBkZWJ1Z2dp bmcgaW5mb3JtYXRpb24gc3VwcGxpZWQgYnkgdGhlIGNvbXBpbGVyLgotQEAgLTQ3Niw3ICs0Nzcs NyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpjb2VyY2VfYXJyYXkgKHN0cnVjCi0gICAgZXh0ZW5k aW5nIGZvciBMRU5HVEggYml0cyBhcmUgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCi0gCi0gZXh0 ZXJuIGludCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLAotLQkJCQkJIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwotKwkJCQkJIExPTkdFU1Qg b2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5l IHdoZXRoZXIgdGhlIGNvbnRlbnRzIGJ5dGVzIHN0YXJ0aW5nIGF0Ci0gICAgT0ZGU0VUIGFuZCBl eHRlbmRpbmcgZm9yIExFTkdUSCBieXRlcyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCi1A QCAtNDg0LDcgKzQ4NSw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRl cgotICAgIGJ5dGUgaXMgdW5hdmFpbGFibGUuICAqLwotIAotIGV4dGVybiBpbnQgdmFsdWVfYnl0 ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkgIGludCBvZmZz ZXQsIGludCBsZW5ndGgpOwotKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7 Ci0gCi0gLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbnRlbnRzIGJp dHMgc3RhcnRpbmcgYXQKLSAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJpdHMg YXJlIGF2YWlsYWJsZS4gIFRoaXMgcmV0dXJucwotQEAgLTQ5Miw3ICs0OTMsNyBAQCBleHRlcm4g aW50IHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3QKLSAgICBiaXQgaXMgdW5hdmFpbGFibGUu ICAqLwotIAotIGV4dGVybiBpbnQgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsdWUsCi0tCQkJCSBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKLSsJCQkJIExPTkdF U1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogTGlrZSB2YWx1ZV9ieXRlc19hdmFp bGFibGUsIGJ1dCByZXR1cm4gZmFsc2UgaWYgYW55IGJ5dGUgaW4gdGhlCi0gICAgd2hvbGUgb2Jq ZWN0IGlzIHVuYXZhaWxhYmxlLiAgKi8KLUBAIC01MDYsNyArNTA3LDcgQEAgZXh0ZXJuIGludCB2 YWx1ZV9lbnRpcmVseV91bmF2YWlsYWJsZSAocwotICAgIExFTkdUSCBieXRlcyBhcyB1bmF2YWls YWJsZS4gICovCi0gCi0gZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAo c3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0r CQkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogTWFyayBWQUxV RSdzIGNvbnRlbnQgYml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IKLSAg ICBMRU5HVEggYml0cyBhcyB1bmF2YWlsYWJsZS4gICovCi1AQCAtNTY3LDkgKzU2OCw5IEBAIGV4 dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZQotICAgIGFmdGVyIHRoZSBpbmZl cmlvciBpcyBnb25lLCBpdCB3b3JrcyB3aXRoIGNvbnN0IHZhbHVlcy4gIFRoZXJlZm9yZSwKLSAg ICB0aGlzIHJvdXRpbmUgbXVzdCBub3QgYmUgY2FsbGVkIHdpdGggbGF6eSB2YWx1ZXMuICAqLwot IAotLWV4dGVybiBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs MSwgaW50IG9mZnNldDEsCi0tCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQg b2Zmc2V0MiwKLS0JCQkgICAgICBpbnQgbGVuZ3RoKTsKLStleHRlcm4gaW50IHZhbHVlX2NvbnRl bnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExPTkdFU1Qgb2Zmc2V0MSwKLSsJCQkg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIExPTkdFU1Qgb2Zmc2V0MiwKLSsJCQkgICAg ICBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogUmVhZCBMRU5HVEggYWRkcmVzc2FibGUgbWVtb3J5 IHVuaXRzIHN0YXJ0aW5nIGF0IE1FTUFERFIgaW50byBCVUZGRVIsCi0gICAgd2hpY2ggaXMgKG9y IHdpbGwgYmUgY29waWVkIHRvKSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5Ci1AQCAt NTc4LDcgKzU3OSw3IEBAIGV4dGVybiBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnUK LSAgICBtZW1vcnkgaXMgbGlrZXdpc2UgdW5hdmFpbGFibGUuICBTVEFDSyBpbmRpY2F0ZXMgd2hl dGhlciB0aGUgbWVtb3J5Ci0gICAgaXMga25vd24gdG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KLSAK LS1leHRlcm4gdm9pZCByZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIGludCBl bWJlZGRlZF9vZmZzZXQsCi0rZXh0ZXJuIHZvaWQgcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2 YWx1ZSAqdmFsLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkgICAgICAgaW50IHN0YWNr LCBDT1JFX0FERFIgbWVtYWRkciwKLSAJCQkgICAgICAgZ2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90 IGxlbmd0aCk7Ci0gCi1AQCAtNjE0LDE3ICs2MTUsMTggQEAgZXh0ZXJuIExPTkdFU1QgdW5wYWNr X2ZpZWxkX2FzX2xvbmcgKHN0cgotIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot IAkJCQkgICAgIGludCBmaWVsZG5vKTsKLSBleHRlcm4gaW50IHVucGFja192YWx1ZV9maWVsZF9h c19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJ CWludCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAotKwkJCQlMT05HRVNUIGVtYmVkZGVk X29mZnNldCwgaW50IGZpZWxkbm8sCi0gCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05H RVNUICpyZXN1bHQpOwotIAotIGV4dGVybiB2b2lkIHVucGFja192YWx1ZV9iaXRmaWVsZCAoc3Ry dWN0IHZhbHVlICpkZXN0X3ZhbCwKLSAJCQkJICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0t CQkJCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJ CQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLSsJCQkJICAgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsCi0gCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSAKLSBleHRlcm4gc3Ry dWN0IHZhbHVlICp2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBm aWVsZG5vLAotIAkJCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCQkgICBpbnQg ZW1iZWRkZWRfb2Zmc2V0LAotKwkJCQkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkJ CQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7Ci0gCi0gZXh0ZXJuIHZvaWQgcGFja19sb25n IChnZGJfYnl0ZSAqYnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pOwotQEAgLTY4 MywxMiArNjg1LDEyIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmRlZmF1bHRfcmVhZF92YXJfdmEK LSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV92YWx1ZSAoc3RydWN0IHR5cGUgKnR5 cGUpOwotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0 eXBlICp0eXBlKTsKLS1leHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFs dWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNy Y19vZmZzZXQsCi0tCQkJCSBpbnQgbGVuZ3RoKTsKLS1leHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50 c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIGludCBkc3Rfb2Zmc2V0LAotLQkJCQkgICAg IHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwKLS0JCQkJICAgICBpbnQgbGVuZ3Ro KTsKLStleHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwg c3NpemVfdCBkc3Rfb2Zmc2V0LAotKwkJCQkgc3RydWN0IHZhbHVlICpzcmMsIHNzaXplX3Qgc3Jj X29mZnNldCwKLSsJCQkJIHNzaXplX3QgbGVuZ3RoKTsKLStleHRlcm4gdm9pZCB2YWx1ZV9jb250 ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIHNzaXplX3QgZHN0X29mZnNldCwKLSsJ CQkJICAgICBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LAotKwkJCQkgICAg IHNzaXplX3QgbGVuZ3RoKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9yZXBl YXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgY291bnQpOwotIAotQEAgLTc2NiwxNiAr NzY4LDE2IEBAIGV4dGVybiBpbnQgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHYKLSAKLSBl eHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQg ZmllbGRubyk7Ci0gCi0tZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcHJpbWl0aXZlX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCi0rZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq dmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0 LAorQEAgLTc3MSwxMiArNzcyLDExIEBACiAgCQkJCQkgICAgaW50IGZpZWxkbm8sCiAgCQkJCQkg ICAgc3RydWN0IHR5cGUgKmFyZ190eXBlKTsKICAKLSAKLS1leHRlcm4gc3RydWN0IHR5cGUgKnZh bHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICosIGludCAqLCBpbnQgKiwKLStl eHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVl ICosIGludCAqLCBMT05HRVNUICosCistCisgZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9ydHRp X2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqLCBpbnQgKiwgTE9OR0VTVCAqLAogIAkJCQkJ ICAgICAgaW50ICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Z1bGxfb2JqZWN0 IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHR5cGUgKiwgaW50LApAQCAtNDI3Miw0NCArMzI2MSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogIAogIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX2Nhc3RfcG9pbnRlcnMgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2 YWx1ZSAqLCBpbnQpOwogIAotQEAgLTg3MCw3ICs4NzIsNyBAQCBleHRlcm4gdm9pZCBzZXRfaW50 ZXJuYWx2YXJfc3RyaW5nIChzdHJ1Ci0gZXh0ZXJuIHZvaWQgY2xlYXJfaW50ZXJuYWx2YXIgKHN0 cnVjdCBpbnRlcm5hbHZhciAqdmFyKTsKLSAKLSBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJf Y29tcG9uZW50IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwKLS0JCQkJICAgICAgIGludCBvZmZz ZXQsCi0rCQkJCSAgICAgICBMT05HRVNUIG9mZnNldCwKLSAJCQkJICAgICAgIGludCBiaXRwb3Ms IGludCBiaXRzaXplLAotIAkJCQkgICAgICAgc3RydWN0IHZhbHVlICpuZXd2YWx1ZSk7Ci0gCi1A QCAtOTUxLDcgKzk1Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3hfdW5vcCAoc3Ry dWMKLSAJCQkJICAgZW51bSBub3NpZGUgbm9zaWRlKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAq ZiwKLS0JCQkJICAgICBpbnQgaiwgc3RydWN0IHR5cGUgKnR5cGUsIGludCBvZmZzZXQpOwotKwkJ CQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBvZmZzZXQpOwotIAotIGV4 dGVybiBpbnQgYmlub3BfdHlwZXNfdXNlcl9kZWZpbmVkX3AgKGVudW0gZXhwX29wY29kZSBvcCwK LSAJCQkJICAgICAgIHN0cnVjdCB0eXBlICp0eXBlMSwKLUBAIC05NzksNyArOTgxLDggQEAgZXh0 ZXJuIHZvaWQgcmVsZWFzZV92YWx1ZV9vcl9pbmNyZWYgKHN0cgotIGV4dGVybiBpbnQgcmVjb3Jk X2xhdGVzdF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiB2b2lkIG1vZGlm eV9maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGdkYl9ieXRlICphZGRyLAotLQkJCSAgTE9OR0VT VCBmaWVsZHZhbCwgaW50IGJpdHBvcywgaW50IGJpdHNpemUpOwotKwkJCSAgTE9OR0VTVCBmaWVs ZHZhbCwgTE9OR0VTVCBiaXRwb3MsCi0rCQkJICBpbnQgYml0c2l6ZSk7Ci0gCi0gZXh0ZXJuIHZv aWQgdHlwZV9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywK LSAJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgc2hvdyk7Ci1AQCAtMTAwOSw3ICsxMDEy LDcgQEAgZXh0ZXJuIHZvaWQgdmFsdWVfcHJpbnRfYXJyYXlfZWxlbWVudHMgKAotIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX3JlbGVhc2VfdG9fbWFyayAoc3RydWN0IHZhbHVlICptYXJrKTsK LSAKLSBleHRlcm4gdm9pZCB2YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCSAgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIg YWRkcmVzcywKLSsJCSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCi0gCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0g CQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTA2MiwxMCArMTA2NSwxMSBAQCBl eHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCitAQCAtMTA2NSwxMCArMTA2 NSwxMSBAQAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3Ig KGNvbnN0IGNoYXIgKiwKICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC00MzIzLDEx ICszMjc1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogIAog IC8qIFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3MzOTAtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvczM5MC1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjI0MjM2NTAxMCArMDEwMAotQEAgLTYxMiw3ICs2MTIsNyBAQCBzMzkw X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0IHRhcmdlCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMDUx MDY1NiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LW5hdC5j CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUwNTMwMjEzICswMjAwCitAQCAtNjEyLDcgKzYxMiw3IEBA CiAgCiAgc3RhdGljIGludAogIHMzOTBfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1 Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTQzMzYsMzcgKzMyODgsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIDE7CiAg fQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9leHRlbnNpb24tcHJpdi5oCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZXh0ZW5zaW9uLXByaXYu aAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQyMzY1MDEw ICswMTAwCi1AQCAtMTgxLDcgKzE4MSw3IEBAIHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2Vfb3Bz Ci0gICBlbnVtIGV4dF9sYW5nX3JjICgqYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyKQotICAgICAo Y29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCi0gICAgICBzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tICAgICBpbnQgZW1iZWRkZWRfb2Zm c2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBD T1JFX0FERFIgYWRkcmVzcywKLSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAotICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLAotICAgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4g Kmxhbmd1YWdlKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC1kZWxl Z2F0ZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3B5 dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJ MjAxNS0xMS0wMiAyMToyMzoxMy4yNDIzNjUwMTAgKzAxMDAKLUBAIC0zMTYsNyArMzE2LDcgQEAg ZXh0ZXJuIGludCBnZGJweV9hdXRvX2xvYWRfZW5hYmxlZCAoY29ucwotIGV4dGVybiBlbnVtIGV4 dF9sYW5nX3JjIGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlcgotICAgKGNvbnN0IHN0cnVj dCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqLAotICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0gICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIg YWRkcmVzcywKLSsgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms Ci0gICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMu YwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC1k ZWxlZ2F0ZXMuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MjM1MTkxNyArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0xMS0wMiAyMToyMzox My4yNDMzNjUwMTcgKzAxMDAKLUBAIC03MzYsMTQgKzczNiwxNCBAQCBkZWJ1Z193YXRjaHBvaW50 X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIxNTEwNjY0ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU1MDUzMDIxMyArMDIwMAorQEAgLTczNiwxNCArNzM2LDE0IEBACiAgfQog IAogIHN0YXRpYyBpbnQKQEAgLTQzODMsNyArMzMwOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgaW50IHJlc3VsdDsKICAgIGZw cmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT50b19yZWdpb25fb2tfZm9yX2h3 X3dhdGNocG9pbnQgKC4uLilcbiIsIGRlYnVnX3RhcmdldC50b19zaG9ydG5hbWUpOwotQEAgLTc1 Myw3ICs3NTMsNyBAQCBkZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjCitA QCAtNzUzLDcgKzc1Myw3IEBACiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9n KTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzEpOwogICAgZnB1dHNfdW5m aWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC00MzkyLDExICszMzE4LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBmcHV0c191 bmZpbHRlcmVkICgiKSA9ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X2lu dCAocmVzdWx0KTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCJcbiIsIGdkYl9zdGRsb2cpOwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDMzNjUwMTcg KzAxMDAKLUBAIC03MzYsNyArNzM2LDcgQEAgYWFyY2g2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2lu dCAoc3RydWN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWFyY2g2NC1saW51 eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMjUxMDY3MiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTUxNTMwMjIxICswMjAwCitAQCAtNzM2LDcgKzczNiw3IEBACiAgCiAgc3RhdGljIGludAogIGFh cmNoNjRfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29w cyAqc2VsZiwKQEAgLTQ0MDUsMTEgKzMzMzEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIGFhcmNoNjRfbGludXhf cmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChhZGRyLCBsZW4pOwogIH0KLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MjM1 MTkxNyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmMJ MjAxNS0xMS0wMiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKLUBAIC0zODQsNyArMzg0LDcgQEAg eDg2X3JlbW92ZV9hbGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCB4OAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEy MjUxMDY3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRyZWdz LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC0zODQsNyArMzg0LDcg QEAKICAKICBzdGF0aWMgaW50CiAgeDg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKHN0 cnVjdCB4ODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSwKQEAgLTQ0MTgsNyArMzM0NCw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgCQkJCSAgZW51 bSB0YXJnZXRfaHdfYnBfdHlwZSB0eXBlKQogIHsKICAgIGludCByZXR2YWwgPSAwOwotQEAgLTU1 Miw3ICs1NTIsNyBAQCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB4ODZfZGViCitA QCAtNTUyLDcgKzU1Miw3IEBACiAgCiAgaW50CiAgeDg2X2RyX3JlZ2lvbl9va19mb3Jfd2F0Y2hw b2ludCAoc3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLApAQCAtNDQyNywxMSArMzM1 MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3MuYwog IHsKICAgIGludCBucmVnczsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY29t cGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1LTExLTAy IDIxOjIzOjExLjI1MzM1MTkyMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9j b21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDQzNjUwMjQg KzAxMDAKLUBAIC0yOTksMTEgKzI5OSwxMSBAQCBnZW5lcmF0ZV9yZWdpc3Rlcl9zdHJ1Y3QgKHN0 cnVjdCB1aV9maWxlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY29tcGlsZS9j b21waWxlLWMtc3VwcG9ydC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTI5OSwxMSArMjk5LDExIEBA CiAgCiAgCSAgICAgIGRlZmF1bHQ6CiAgCQlmcHJpbnRmX3VuZmlsdGVyZWQgKHN0cmVhbSwKQEAg LTQ0NDUsMTEgKzMzNzEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jb21w aWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAgZnB1dHNfdW5maWx0ZXJl ZCAoIjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25h dC94ODYtZHJlZ3MuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRy ZWdzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9uYXQv eDg2LWRyZWdzLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5MjMgKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjQ0MzY1MDI0ICswMTAwCi1AQCAtMTE2LDcgKzExNiw3IEBAIGV4dGVybiBpbnQgeDg2X2RyX3Jl bW92ZV93YXRjaHBvaW50IChzdHIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9u YXQveDg2LWRyZWdzLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjI1MTA2NzIgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTUxNTMwMjIxICswMjAwCitAQCAtMTE2LDcgKzExNiw3IEBACiAgLyogUmV0dXJuIG5vbi16 ZXJvIGlmIHdlIGNhbiB3YXRjaCBhIG1lbW9yeSByZWdpb24gdGhhdCBzdGFydHMgYXQKICAgICBh ZGRyZXNzIEFERFIgYW5kIHdob3NlIGxlbmd0aCBpcyBMRU4gYnl0ZXMuICAqLwogIGV4dGVybiBp bnQgeDg2X2RyX3JlZ2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWJ1Z19yZWdf c3RhdGUgKnN0YXRlLApAQCAtNDQ1OCwxMSArMzM4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3MuaAogIAogIC8qIElmIHRoZSBpbmZlcmlvciBoYXMg c29tZSBicmVhay93YXRjaHBvaW50IHRoYXQgdHJpZ2dlcmVkLCBzZXQgdGhlCiAgICAgYWRkcmVz cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBicmVhay93YXRjaHBvaW50IGFuZCByZXR1cm4gdHJ1ZS4K LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIveDg2LW5hdC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3g4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3g4Ni1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MzM1MTky MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKLUBAIC0xNzQsNyArMTc0LDcgQEAgeDg2X3JlbW92 ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3g4Ni1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMzUxMDY4MCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94ODYtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41NTE1MzAyMjEgKzAyMDAKK0BAIC0xNzQsNyArMTc0LDcgQEAKICAKICBzdGF0aWMgaW50CiAg eDg2X3JlZ2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBA IC00NDcxLDI5ICszMzk3LDI1IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIveDg2 LW5hdC5jCiAgewogICAgc3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlCiAgICAgID0g eDg2X2RlYnVnX3JlZ19zdGF0ZSAocHRpZF9nZXRfcGlkIChpbmZlcmlvcl9wdGlkKSk7Ci1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9ndWlsZS9ndWlsZS1pbnRl cm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzox My4yNDQzNjUwMjQgKzAxMDAKLUBAIC02MDYsNyArNjA2LDcgQEAgZXh0ZXJuIHZvaWQgZ2Ric2Nt X3ByZXNlcnZlX3ZhbHVlcwotIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdkYnNjbV9hcHBseV92 YWxfcHJldHR5X3ByaW50ZXIKLSAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2Rl Zm4gKiwKLSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0t ICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rICAgTE9OR0VTVCBl bWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAotICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9ndWlsZS9zY20tcHJldHR5LXByaW50LmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcnVzdC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9ndWlsZS9zY20tcHJldHR5LXByaW50LmMJMjAxNS0xMS0wMiAy MToyMzoxMS4yNTQzNTE5MzAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ3Vp bGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQ1MzY1MDMwICswMTAw Ci1AQCAtOTU4LDcgKzk1OCw3IEBAIHBwc2NtX3ByaW50X2NoaWxkcmVuIChTQ00gcHJpbnRlciwg ZW51bQotIGVudW0gZXh0X2xhbmdfcmMKLSBnZGJzY21fYXBwbHlfdmFsX3ByZXR0eV9wcmludGVy IChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcsCi0gCQkJCSBz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCSBpbnQgZW1i ZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJIExPTkdFU1QgZW1iZWRkZWRf b2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAotIAkJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJCSBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMzUxMDY4 MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTQxMCw3ICs0MTAsNyBAQAorIAorIHN0 YXRpYyB2b2lkCisgcnVzdF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0 IHR5cGUgKnR5cGUsCistCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCB1bnNpZ25lZCBp bnQgbGVuZ3RoLAorKwkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywgVUxPTkdFU1QgbGVu Z3RoLAorIAkgICAgICAgY29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywgaW50IGZvcmNlX2VsbGlw c2VzLAorIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CisgeworQEAgLTQ1Niw3ICs0NTYsNyBAQAorIC8qIGxhX3ZhbF9wcmludCBpbXBsZW1lbnRhdGlv biBmb3IgUnVzdC4gICovCisgCisgc3RhdGljIHZvaWQKKy1ydXN0X3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAorK3J1c3RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJQ09SRV9BRERSIGFkZHJlc3MsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCisgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKCmRp ZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoIGIvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaAppbmRleCAxZjZkMjM3Li44NTc2MGRiIDEwMDY0NAot LS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKQEAgLTEzNywxMCArMTM3LDEwIEBAIENvbnRlbnQtVHlw ZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50 LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtdGRlcC5wYXRjaAogCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hbHBoYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi41 OTI4MTM5OTAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWxwaGEtdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MjAuMzA4ODM0NzE3ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuMzkwNTAyNzE4 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ3LjUxMTUxOTc4OCArMDIwMAogQEAgLTI5OSwxNyArMjk5LDE3IEBACiAgewog ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFy Y2gpOwpAQCAtMTgzLDExICsxODMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9hbHBoYS10ZGVwLmMKICAJICAgICAgbWVtY3B5IChhcmdfcmVnX2J1ZmZlciArIG9mZnNldCwg Y29udGVudHMsIHRsZW4pOwogIAkgICAgICBvZmZzZXQgKz0gdGxlbjsKICAJICAgICAgY29udGVu dHMgKz0gdGxlbjsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTAx LTA4IDE5OjE2OjE2LjU5NDgxNDAwMSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9hbWQ2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMDk4MzQ3MjMgKzAxMDAKLUBAIC02 OTksNyArNjk5LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbWQ2NC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS4zOTE1MDI3MjYgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYW1kNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTEyNTE5Nzk2 ICswMjAwCitAQCAtNzI5LDcgKzcyOSw3IEBACiAgCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNv bnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7CiAgICBlbnVtIGFtZDY0X3JlZ19jbGFzcyB0aGVj bGFzc1syXTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2FtZDY0LXRkZXAuYwogICAgc3RhdGljIGludCBpbnRlZ2VyX3JlZ251bVtdID0geyBBTUQ2 NF9SQVhfUkVHTlVNLCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAgICBzdGF0aWMgaW50IHNzZV9yZWdu dW1bXSA9IHsgQU1ENjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hNTTFfUkVHTlVNIH07CiAgICBpbnQg aW50ZWdlcl9yZWcgPSAwOwotQEAgLTg1MCw4ICs4NTAsOCBAQAorQEAgLTg4MCw4ICs4ODAsOCBA QAogICAgfTsKICAgIHN0cnVjdCB2YWx1ZSAqKnN0YWNrX2FyZ3MgPSBYQUxMT0NBVkVDIChzdHJ1 Y3QgdmFsdWUgKiwgbmFyZ3MpOwogICAgaW50IG51bV9zdGFja19hcmdzID0gMDsKQEAgLTIwNyw3 ICsyMDcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwog ICAgaW50IGludGVnZXJfcmVnID0gMDsKICAgIGludCBzc2VfcmVnID0gMDsKICAgIGludCBpOwot QEAgLTg2Myw3ICs4NjMsNyBAQAorQEAgLTg5Myw3ICs4OTMsNyBAQAogICAgZm9yIChpID0gMDsg aSA8IG5hcmdzOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVl X3R5cGUgKGFyZ3NbaV0pOwpAQCAtMjE2LDEwICsyMTYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9hbWQ2NC10ZGVwLmMKICAgICAgICBlbnVtIGFtZDY0X3JlZ19jbGFzcyB0 aGVjbGFzc1syXTsKICAgICAgICBpbnQgbmVlZGVkX2ludGVnZXJfcmVncyA9IDA7CiAgICAgICAg aW50IG5lZWRlZF9zc2VfcmVncyA9IDA7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2FtZDY0LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Ft ZDY0LXdpbmRvd3MtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi41OTU4MTQw MDYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtd2luZG93cy10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTA4MzQ3MjggKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjM5MzUwMjc0MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC13aW5k b3dzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxMjUxOTc5NiArMDIwMAogQEAgLTI4OCw3 ICsyODgsNyBAQAogIAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwKICAJCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0 ZWJ1ZikKQEAgLTIyOSwxMSArMjI5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKICAgIGludCByZWdudW0gPSAtMTsKICAKICAgIC8qIFNl ZSBpZiBvdXIgdmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAgSWYgaXQgaXMs IHRoZW4KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYXJtLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2 LjYwMzgxNDA1MSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5j CTIwMTYtMDEtMDggMTk6MTc6MDUuNzM3MDg4MTA3ICswMTAwCi1AQCAtMzM0MCw3ICszMzQwLDcg QEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDAwNTAyNzk4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FybS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNjozMC4zMjg4NjQzNzYgKzAyMDAKK0BAIC0zNDQz LDcgKzM0NDMsNyBAQAogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRs eSBzdXBwb3J0ZWQsIG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICov CiAgCkBAIC0yNDIsNyArMjQyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9h cm0tdGRlcC5jCiAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAog IAkJCSAgICBlbnVtIGFybV92ZnBfY3ByY19iYXNlX3R5cGUgKmJhc2VfdHlwZSkKICB7Ci1AQCAt MzQyMyw3ICszNDIzLDcgQEAKK0BAIC0zNTI2LDcgKzM1MjYsNyBAQAogIAkgIH0KICAJZWxzZQog IAkgIHsKQEAgLTI1MSw3ICsyNTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2FybS10ZGVwLmMKICAJICAgIHVuc2lnbmVkIHVuaXRsZW47CiAgCiAgCSAgICBjb3VudCA9IGFy bV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX1RBUkdFVF9UWVBFICh0KSwKLUBAIC0zNDQ2 LDEzICszNDQ2LDE1IEBACitAQCAtMzU0OSwxMiArMzU0OSwxMiBAQAogIAogICAgICBjYXNlIFRZ UEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpAQCAtMjYxLDE2ICsyNjEsMTIgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAgCWludCBpOwogIAlmb3IgKGkgPSAw OyBpIDwgVFlQRV9ORklFTERTICh0KTsgaSsrKQogIAkgIHsKLS0JICAgIGludCBzdWJfY291bnQg PSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKLS0J CQkJCQkJYmFzZV90eXBlKTsKLSsJICAgIExPTkdFU1Qgc3ViX2NvdW50OwotKwotKwkgICAgc3Vi X2NvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfRklFTERfVFlQRSAodCwg aSksCi0rCQkJCQkJICAgIGJhc2VfdHlwZSk7Ci0gCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQot IAkgICAgICByZXR1cm4gLTE7Ci0gCSAgICBjb3VudCArPSBzdWJfY291bnQ7Ci1AQCAtMzQ3Miwx MyArMzQ3NCwxNSBAQAorLQkgICAgaW50IHN1Yl9jb3VudCA9IDA7CisrCSAgICBMT05HRVNUIHN1 Yl9jb3VudCA9IDA7CisgCisgCSAgICBpZiAoIWZpZWxkX2lzX3N0YXRpYyAoJlRZUEVfRklFTEQg KHQsIGkpKSkKKyAJICAgICAgc3ViX2NvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUg KFRZUEVfRklFTERfVFlQRSAodCwgaSksCitAQCAtMzU3OCwxMyArMzU3OCwxNSBAQAogIAogICAg ICBjYXNlIFRZUEVfQ09ERV9VTklPTjoKICAgICAgICB7CkBAIC0yODksNyArMjg1LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAgCSAgICBpZiAoc3ViX2Nv dW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7CiAgCSAgICBjb3VudCA9IChjb3VudCA+IHN1 Yl9jb3VudCA/IGNvdW50IDogc3ViX2NvdW50KTsKLUBAIC0zNTE0LDcgKzM1MTgsNyBAQAorQEAg LTM2MjAsNyArMzYyMiw3IEBACiAgCQkJaW50ICpjb3VudCkKICB7CiAgICBlbnVtIGFybV92ZnBf Y3ByY19iYXNlX3R5cGUgYiA9IFZGUF9DUFJDX1VOS05PV047CkBAIC0yOTgsNyArMjk0LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAgICBpZiAoYyA8PSAw IHx8IGMgPiA0KQogICAgICByZXR1cm4gMDsKICAgICpiYXNlX3R5cGUgPSBiOwotQEAgLTM1OTUs NyArMzU5OSw3IEBACitAQCAtMzcwMSw3ICszNzAzLDcgQEAKICAKICAgIGZvciAoYXJnbnVtID0g MDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0zMDcsMTEgKzMwMywxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAgICAgICBzdHJ1 Y3QgdHlwZSAqYXJnX3R5cGU7CiAgICAgICAgc3RydWN0IHR5cGUgKnRhcmdldF90eXBlOwogICAg ICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9hdnItdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hdnItdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjA0ODE0MDU3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTQ4MzQ3NTAgKzAx MDAKLUBAIC0xMTk2LDEzICsxMTk2LDEzIEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvYXZyLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMTUwMjgwNiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hdnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcu NTE2NTE5ODI4ICswMjAwCitAQCAtMTE5NSwxMyArMTE5NSwxMyBAQAogIAogIHN0cnVjdCBzdGFj a19pdGVtCiAgewpAQCAtMzI3LDcgKzMyMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvYXZyLXRkZXAuYwogIHsKICAgIHN0cnVjdCBzdGFja19pdGVtICpzaTsKICAgIHNpID0g WE5FVyAoc3RydWN0IHN0YWNrX2l0ZW0pOwotQEAgLTEyOTEsMTIgKzEyOTEsMTIgQEAKK0BAIC0x Mjg5LDEyICsxMjg5LDEyIEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAg ICAgewpAQCAtMzQxLDIyICszMzcsMjIgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9hdnItdGRlcC5jCiAtICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICsgICAg ICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAKLSAgICAgICAvKiBDYWxjdWxh dGUgdGhlIHBvdGVudGlhbCBsYXN0IHJlZ2lzdGVyIG5lZWRlZC4gICovCi0gICAgICAgbGFzdF9y ZWdudW0gPSByZWdudW0gLSAobGVuICsgKGxlbiAmIDEpKTsKLUluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvYmZpbi10ZGVwLmMKKyAgICAgICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVudGlh bCBsYXN0IHJlZ2lzdGVyIG5lZWRlZC4KKyAgICAgICAgICBFLmcuIEZvciBsZW5ndGggMiwgcmVn aXN0ZXJzIHJlZ251bSBhbmQgcmVnbnVtLTEgKHNheSAyNSBhbmQgMjQpCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvYmZpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDU4 MTQwNjIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYmZpbi10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoyMC4zMTU4MzQ3NTYgKzAxMDAKLUBAIC01MDQsNyArNTA0LDcgQEAKLSAg IGdkYl9ieXRlIGJ1Zls0XTsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9iZmlu LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMTUwMjgwNiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9iZmluLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNjUxOTgy OCArMDIwMAorQEAgLTUwMiw3ICs1MDIsNyBAQAorICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGk7CiAgICBsb25nIHJl Z19yMCwgcmVnX3IxLCByZWdfcjI7CiAtICBpbnQgdG90YWxfbGVuID0gMDsKICsgIHNzaXplX3Qg dG90YWxfbGVuID0gMDsKLSAgIGVudW0gYmZpbl9hYmkgYWJpID0gYmZpbl9hYmkgKGdkYmFyY2gp OwotICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24s IE5VTEwpOwogIAotQEAgLTUyOCw3ICs1MjgsNyBAQAorICAgZm9yIChpID0gbmFyZ3MgLSAxOyBp ID49IDA7IGktLSkKKyAgICAgeworQEAgLTUyNCw3ICs1MjQsNyBAQAogICAgICB7CiAgICAgICAg c3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tpXSk7 CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSk7CkBAIC0zNjUsMTAgKzM2MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2JmaW4tdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKICAgICAgICB3cml0 ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50cyAoYXJnc1tpXSksIGNvbnRhaW5lcl9sZW4pOwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jcmlzLXRkZXAuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9jcmlzLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjA2 ODE0MDY4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5jCTIw MTYtMDEtMDggMTk6MTY6MjAuMzE2ODM0NzYyICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDM1MDI4MjMgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41MTc1MTk4MzYgKzAyMDAKIEBAIC02NjMsMTMgKzY2MywxMyBAQAogIAogIHN0cnVj dCBzdGFja19pdGVtCkBAIC0zODUsNyArMzgxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9jcmlzLXRkZXAuYwogIHsKICAgIHN0cnVjdCBzdGFja19pdGVtICpzaSA9IFhORVcg KHN0cnVjdCBzdGFja19pdGVtKTsKICAgIHNpLT5kYXRhID0gKGdkYl9ieXRlICopIHhtYWxsb2Mg KGxlbik7Ci1AQCAtODQxLDEzICs4NDEsMTMgQEAKK0BAIC04MzMsMTMgKzgzMywxMyBAQAogIAog ICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAg LTQwMywxMSArMzk5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY3Jpcy10 ZGVwLmMKICAgICAgICAKICAgICAgICAvKiBIb3cgbWF5IHJlZ2lzdGVycyB3b3J0aCBvZiBzdG9y YWdlIGRvIHdlIG5lZWQgZm9yIHRoaXMgYXJndW1lbnQ/ICAqLwogICAgICAgIHJlZ19kZW1hbmQg PSAobGVuIC8gNCkgKyAobGVuICUgNCAhPSAwID8gMSA6IDApOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9oODMwMC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvaDgzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvaDgzMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjA3ODE0MDczICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2 OjIwLjMxNjgzNDc2MiArMDEwMAotQEAgLTYzOSw3ICs2MzksNyBAQAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMzUw MjgyMyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9oODMwMC10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0Ny41MTc1MTk4MzYgKzAyMDAKK0BAIC02MzcsNyArNjM3LDcgQEAKICAJ CSAgICAgICBpbnQgc3RydWN0X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKICAg IGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNo KTsKQEAgLTQxNiw3ICs0MTIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4 MzAwLXRkZXAuYwogICAgaW50IHdvcmRzaXplID0gQklOV09SRCAoZ2RiYXJjaCk7CiAgICBpbnQg cmVnID0gRV9BUkcwX1JFR05VTTsKICAgIGludCBhcmd1bWVudDsKLUBAIC02NjYsMTEgKzY2Niwx MSBAQAorQEAgLTY2NCwxMSArNjY0LDExIEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3QgY2xlYW51 cCAqYmFja190bzsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3Nb YXJndW1lbnRdKTsKQEAgLTQzMCw3ICs0MjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2g4MzAwLXRkZXAuYwogICAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSAoZ2RiX2J5dGUg KikgeG1hbGxvYyAocGFkZGVkX2xlbik7CiAgICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAo eGZyZWUsIHBhZGRlZCk7CiAgCi1AQCAtNjk5LDcgKzY5OSw3IEBACitAQCAtNjk3LDcgKzY5Nyw3 IEBACiAgCSAgICAgIC8qIEhlYXZlbnMgdG8gQmV0c3kgLS0tIGl0J3MgcmVhbGx5IGdvaW5nIGlu IHJlZ2lzdGVycyEKICAJICAgICAgICAgTm90ZSB0aGF0IG9uIHRoZSBoOC8zMDBzLCB0aGVyZSBh cmUgZ2FwcyBiZXR3ZWVuIHRoZQogIAkgICAgICAgICByZWdpc3RlcnMgaW4gdGhlIHJlZ2lzdGVy IGZpbGUuICAqLwpAQCAtNDM5LDExICs0MzUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9oODMwMC10ZGVwLmMKICAKICAJICAgICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQg PCBwYWRkZWRfbGVuOyBvZmZzZXQgKz0gd29yZHNpemUpCiAgCQl7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2hwcGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2hwcGEtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvaHBwYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDk4MTQwODUgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoy MC4zMTc4MzQ3NjcgKzAxMDAKLUBAIC05OTUsNyArOTk1LDcgQEAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwNTUwMjgz OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ3LjUxODUxOTg0NCArMDIwMAorQEAgLTk5MSw3ICs5OTEsNyBAQAogICAgICB7 CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnKTsKQEAgLTQ1Miw3ICs0NDgsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2hwcGEtdGRlcC5jCiAgICAgICAgY29uc3QgYmZkX2J5dGUg KnZhbGJ1ZjsKICAgICAgICBiZmRfYnl0ZSBmcHRyYnVmWzhdOwogICAgICAgIGludCByZWdudW07 Ci1AQCAtMTE5MCw3ICsxMTkwLDcgQEAKK0BAIC0xMTg2LDcgKzExODYsNyBAQAogIAkJICAgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICAgZ2Ri X2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7CkBAIC00NjEsMTAg KzQ1NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2hwcGEtdGRlcC5jCiAg ICBpbnQgcmVnbnVtLCBvZmZzZXQ7CiAgCiAgICBpZiAobGVuID4gMTYpCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoxNi42MDk4MTQwODUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni1k YXJ3aW4tdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzE3ODM0NzY3ICswMTAwCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDUuNDA1NTAyODM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kz ODYtZGFyd2luLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxODUxOTg0NCArMDIwMAogQEAg LTE2Myw3ICsxNjMsNyBAQAogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8 IDI7IHdyaXRlX3Bhc3MrKykKQEAgLTQ3NCwxMSArNDcwLDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCiAgICAgICAgaW50IG51bV9tMTI4ID0g MDsKICAKICAgICAgICBpZiAoc3RydWN0X3JldHVybikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4 Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9p Mzg2LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYxNTgxNDExOCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxOTgz NDc3OCArMDEwMAotQEAgLTI2NjMsNyArMjY2Myw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTA1MDI4NzkgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKK0BAIC0yNjY0LDcgKzI2NjQsNyBAQAogICAgZ2RiX2J5 dGUgYnVmWzRdOwogICAgaW50IGk7CiAgICBpbnQgd3JpdGVfcGFzczsKQEAgLTQ4Nyw3ICs0ODMs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICAv KiBEZXRlcm1pbmUgdGhlIHRvdGFsIHNwYWNlIHJlcXVpcmVkIGZvciBhcmd1bWVudHMgYW5kIHN0 cnVjdAogICAgICAgcmV0dXJuIGFkZHJlc3MgaW4gYSBmaXJzdCBwYXNzIChhbGxvd2luZyBmb3Ig MTYtYnl0ZS1hbGlnbmVkCi1AQCAtMjY3MSw3ICsyNjcxLDcgQEAKK0BAIC0yNjcyLDcgKzI2NzIs NyBAQAogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdyaXRlX3Bh c3MrKykKICAgICAgewpAQCAtNDk2LDcgKzQ5Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgICAgICBpZiAoc3RydWN0X3JldHVybikKICAJewot QEAgLTI2ODgsNyArMjY4OCw3IEBACitAQCAtMjY4OSw3ICsyNjg5LDcgQEAKICAKICAgICAgICBm b3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAJewpAQCAtNTA1LDcgKzUwMSw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAJICBpZiAod3JpdGVf cGFzcykKICAJICAgIHsKLUBAIC0yODk1LDcgKzI4OTUsNyBAQAorQEAgLTI4OTYsNyArMjg5Niw3 IEBACiAgewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2Ri YXJjaCk7CiAgICBlbnVtIHR5cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKQEAgLTUx NCw3ICs1MTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRlcC5j CiAgCiAgICBnZGJfYXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1QKICAgICAgICAgICAg ICAgIHx8IGNvZGUgPT0gVFlQRV9DT0RFX1VOSU9OCi1AQCAtMzY0MSw3ICszNjQxLDcgQEAKK0BA IC0zNzE4LDcgKzM3MTgsNyBAQAogIGkzODZfY29udmVydF9yZWdpc3Rlcl9wIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKICAJCQkgaW50IHJlZ251bSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewpA QCAtNTIzLDcgKzUxOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10 ZGVwLmMKICAKICAgIC8qIFZhbHVlcyBtYXkgYmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSByZWdp c3RlcnMuICBNb3N0IGRlYnVnZ2luZwogICAgICAgZm9ybWF0cyBhcmVuJ3QgZXhwcmVzc2l2ZSBl bm91Z2ggdG8gc3BlY2lmeSB0aGUgbG9jYXRpb25zLCBzbwotQEAgLTM2NzQsNyArMzY3NCw3IEBA CitAQCAtMzc1MSw3ICszNzUxLDcgQEAKICAJCQlpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFp bGFibGVwKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2gg KGZyYW1lKTsKQEAgLTUzMiw3ICs1MjgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2kzODYtdGRlcC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVn bnVtKSkKICAgICAgcmV0dXJuIGkzODdfcmVnaXN0ZXJfdG9fdmFsdWUgKGZyYW1lLCByZWdudW0s IHR5cGUsIHRvLAotQEAgLTM3MTAsNyArMzcxMCw3IEBACitAQCAtMzc4Nyw3ICszNzg3LDcgQEAK ICBpMzg2X3ZhbHVlX3RvX3JlZ2lzdGVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCBy ZWdudW0sCiAgCQkJc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICpmcm9tKQogIHsK QEAgLTU0MSwxMSArNTM3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4 Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZXRfZnJhbWVfYXJjaCAoZnJh bWUpLCByZWdudW0pKQogICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2lx MjAwMC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaXEyMDAwLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2lxMjAwMC10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTY4MTQxMjQgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyMDgzNDc4 NCArMDEwMAotQEAgLTY1MSw4ICs2NTEsOSBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTE1MDI4ODcgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAorQEAgLTY0Niw4ICs2NDYsOSBAQAogICAgY29uc3QgYmZk X2J5dGUgKnZhbDsKICAgIGJmZF9ieXRlIGJ1Zls0XTsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwpA QCAtNTU3LDExICs1NTMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pcTIw MDAtdGRlcC5jCiAgICAvKiBVc2VkIHRvIGNvcHkgc3RydWN0IGFyZ3VtZW50cyBpbnRvIHRoZSBz dGFjay4gICovCiAgICBDT1JFX0FERFIgc3RydWN0X3B0cjsKICAKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvbTMyci10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbTMyci10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9tMzJyLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYxNjgxNDEyNCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tMzJyLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIw LjMyMDgzNDc4NCArMDEwMAotQEAgLTY4Nyw3ICs2ODcsNyBAQAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDExNTAyODg3 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDcuNTIwNTE5ODYwICswMjAwCitAQCAtNjg1LDcgKzY4NSw3IEBACiAgICBDT1JF X0FERFIgcmVndmFsOwogICAgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIHZhbGJ1ZltNQVhf UkVHSVNURVJfU0laRV07CkBAIC01NzAsMTAgKzU2NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL20zMnItdGRlcC5jCiAgCiAgICAvKiBGaXJzdCBmb3JjZSBzcCB0byBhIDQt Ynl0ZSBhbGlnbm1lbnQuICAqLwogICAgc3AgPSBzcCAmIH4zOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9tNjhrLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tNjhrLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcv Z2RiL202OGstdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjE3ODE0MTI5ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL202OGstdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAu MzIwODM0Nzg0ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTY4ay10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTI1MDI4OTUgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvbTY4ay10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAg KzAyMDAKIEBAIC0zODIsNyArMzgyLDcgQEAKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKQEAgLTU5NiwxMCArNTkyLDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTY4ay10ZGVwLmMKICAKICAgICAgICAvKiBOb24t c2NhbGFycyBiaWdnZXIgdGhhbiA0IGJ5dGVzIGFyZSBsZWZ0IGFsaWduZWQsIG90aGVycyBhcmUK ICAJIHJpZ2h0IGFsaWduZWQuICAqLwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9t ODhrLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL204OGstdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MTYuNjE3ODE0MTI5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL204OGstdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIxODM0NzkwICswMTAw CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0NS40MTI1MDI4OTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv bTg4ay10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjE1MTk4NjggKzAyMDAKIEBAIC0yNTcs MTMgKzI1NywxMyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2Nh Y2hlX2FyY2ggKHJlZ2NhY2hlKTsKQEAgLTYyNywxMCArNjIzLDEwIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBpZiAobTg4a19pbl9yZWdp c3Rlcl9wICh0eXBlKSkKICAJewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tZXAt dGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MTYuNjE4ODE0MTM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL21lcC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjE4MzQ3OTAgKzAxMDAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6 NDUuNDEzNTAyOTAzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjE1MTk4NjggKzAyMDAKIEBAIC0yMjcyLDcgKzIyNzIs NyBAQAogIAogICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKQEAgLTY0MCwxMCArNjM2LDEw IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWVwLXRkZXAuYwogIAogICAgICAg IGlmIChhcmdfbGVuID4gTUVQX0dQUl9TSVpFKQogICAgICAgICAgewotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9taXBzLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL21pcHMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjI2ODE0MTc5ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MjAuMzI0ODM0ODA2ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbWlw cy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MjE1MDI5NjcgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjM1MTk4 ODQgKzAyMDAKIEBAIC00NTUsNyArNDU1LDcgQEAKICBtaXBzX3hmZXJfcmVnaXN0ZXIgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgIGlu dCByZWdfbnVtLCBpbnQgbGVuZ3RoLApAQCAtNjY0LDcgKzY2MCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGlmIChtaXBzX2RlYnVnICYmIG91dCAh PSBOVUxMKQogICAgICB7CiAgICAgICAgaW50IGk7Ci1AQCAtNDU1NCwxMyArNDU1NCwxMyBAQAor QEAgLTQ1MjksMTMgKzQ1MjksMTMgQEAKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lT VEVSX1NJWkVdOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwogICAg ICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy ZykpOwpAQCAtNjgxLDcgKzY3Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv bWlwcy10ZGVwLmMKICAKICAgICAgICAvKiBUaGUgRUFCSSBwYXNzZXMgc3RydWN0dXJlcyB0aGF0 IGRvIG5vdCBmaXQgaW4gYSByZWdpc3RlciBieQogICAgICAgICAgIHJlZmVyZW5jZS4gICovCi1A QCAtNDgyOSw3ICs0ODI5LDcgQEAKK0BAIC00ODA0LDcgKzQ4MDQsNyBAQAogIAogIHN0YXRpYyBp bnQKICBtaXBzX24zMm42NF9mcF9hcmdfY2h1bmtfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IHN0cnVjdCB0eXBlICphcmdfdHlwZSwKQEAgLTY5MCw3ICs2ODYsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgewogICAgaW50IGk7CiAgCi1AQCAtNDg0 NCw3ICs0ODQ0LDcgQEAKK0BAIC00ODE5LDcgKzQ4MTksNyBAQAogIAogICAgZm9yIChpID0gMDsg aSA8IFRZUEVfTkZJRUxEUyAoYXJnX3R5cGUpOyBpKyspCiAgICAgIHsKQEAgLTY5OSw3ICs2OTUs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgICAgICAg c3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CiAgCiAgICAgICAgLyogV2UncmUgb25seSBsb29raW5n IGF0IG5vcm1hbCBmaWVsZHMuICAqLwotQEAgLTQ4ODYsNyArNDg4Niw3IEBACitAQCAtNDg2MSw3 ICs0ODYxLDcgQEAKICAgIGludCBhcmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50 IGFyZ251bTsKQEAgLTcwOCw3ICs3MDQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL21pcHMtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGVudW0gYmZkX2Vu ZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVf QUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKLUBA IC01MjM3LDExICs1MjM3LDExIEBACitAQCAtNTIxMiwxMSArNTIxMiwxMSBAQAogIAkJCQk6IE1J UFNfVjBfUkVHTlVNKTsKICAJICAgZmllbGQgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBmaWVsZCsr LCByZWdudW0gKz0gMikKICAJewpAQCAtNzI0LDcgKzcyMCw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAJICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfRklF TERfVFlQRSAodHlwZSwgZmllbGQpKSA9PSAxNikKICAJICAgIHsKICAJICAgICAgLyogQSAxNi1i eXRlIGxvbmcgZG91YmxlIGZpZWxkIGdvZXMgaW4gdHdvIGNvbnNlY3V0aXZlCi1AQCAtNTI4Myw4 ICs1MjgzLDggQEAKK0BAIC01MjU4LDggKzUyNTgsOCBAQAogIAkgIGlmIChvZmZzZXQgKyB4ZmVy ID4gVFlQRV9MRU5HVEggKHR5cGUpKQogIAkgICAgeGZlciA9IFRZUEVfTEVOR1RIICh0eXBlKSAt IG9mZnNldDsKICAJICBpZiAobWlwc19kZWJ1ZykKQEAgLTczNSw3ICs3MzEsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCSAgbWlwc194ZmVyX3JlZ2lz dGVyIChnZGJhcmNoLCByZWdjYWNoZSwKICAJCQkgICAgICBnZGJhcmNoX251bV9yZWdzIChnZGJh cmNoKSArIHJlZ251bSwKICAJCQkgICAgICB4ZmVyLCBCRkRfRU5ESUFOX1VOS05PV04sIHJlYWRi dWYsIHdyaXRlYnVmLAotQEAgLTUzNDIsNyArNTM0Miw3IEBACitAQCAtNTMxNyw3ICs1MzE3LDcg QEAKICAgIGludCBhcmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFyZ251bTsK QEAgLTc0NCw3ICs3NDAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMt dGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRl X29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5j X2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKLUBAIC01NDA2LDEz ICs1NDA2LDEzIEBACitAQCAtNTM4MSwxMyArNTM4MSwxMyBAQAogICAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAg ICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn KSk7CkBAIC03NjEsNyArNzU3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9t aXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAotQEAg LTU4NzAsOCArNTg3MCw4IEBACitAQCAtNTg0Miw4ICs1ODQyLDggQEAKICAgIGludCBhcmdyZWc7 CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTc3Miw3ICs3NjgsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBD T1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7 CiAgCi1AQCAtNTkzMSwxMyArNTkzMSwxMyBAQAorQEAgLTU5MDMsMTMgKzU5MDMsMTMgQEAKICAg ICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJn c1thcmdudW1dOwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtNzg5LDExICs3ODUsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRl bnRzIChhcmcpOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tbjEwMzAwLXRk ZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tbjEwMzAwLXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL21uMTAzMDAtdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MTYuNjI3ODE0MTg1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI0ODM0ODA2ICsw MTAwCi1AQCAtMTIyNyw3ICsxMjI3LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyMjUwMjk3NiArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ3LjUyNDUxOTg5MiArMDIwMAorQEAgLTEyMjUsNyArMTIyNSw3IEBACiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBj b25zdCBpbnQgcHVzaF9zaXplID0gcmVnaXN0ZXJfc2l6ZSAoZ2RiYXJjaCwgRV9QQ19SRUdOVU0p OwogICAgaW50IHJlZ3NfdXNlZDsKQEAgLTgwMiwxMSArNzk4LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvbW4xMDMwMC10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAw OwogICAgaW50IGFyZ251bTsKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL210LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9tdC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9tdC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjg4MTQxOTAgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbXQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI0 ODM0ODA2ICswMTAwCi1AQCAtNzgxLDkgKzc4MSw5IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvbXQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDIzNTAyOTg0ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL210LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ3LjUyNDUxOTg5MiArMDIwMAorQEAgLTc4MCw5ICs3ODAsOSBAQAogICAgZ2RiX2J5dGUgYnVm W01UX01BWF9TVFJVQ1RfU0laRV07CiAgICBpbnQgYXJncmVnID0gTVRfMVNUX0FSR1JFRzsKICAg IGludCBzcGxpdF9wYXJhbV9sZW4gPSAwOwpAQCAtODE4LDEwICs4MTQsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tdC10ZGVwLmMKICAgIGludCBpLCBqOwogIAogICAgLyog Rmlyc3QgaGFuZGxlIGhvd2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJH UkVHIHRocnUKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcHBjLXN5c3YtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1zeXN2LXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjE2LjYyOTgxNDE5NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjU4MzQ4MTIgKzAx MDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MjQ1MDI5OTIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAw CiBAQCAtNjYsNyArNjYsNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IG9wZW5jbF9hYmkgPSBwcGNfc3lzdl91 c2Vfb3BlbmNsX2FiaSAodmFsdWVfdHlwZSAoZnVuY3Rpb24pKTsKQEAgLTg2NiwxMCArODYyLDEw IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcHBjLXN5c3YtdGRlcC5jCiAgCiAg ICAvKiBFbmZvcmNlIGFsaWdubWVudCBvZiBzdGFjayBsb2NhdGlvbiwgaWYgcmVxdWVzdGVkLiAg Ki8KICAgIGlmIChhbGlnbiA+IHRkZXAtPndvcmRzaXplKQotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9ybDc4LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9y bDc4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2Ri L3JsNzgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjI5ODE0MTk2ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI1 ODM0ODEyICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmw3OC10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MjQ1MDI5OTIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjU1MTk5MDAgKzAy MDAKIEBAIC0xMzM2LDggKzEzMzYsOCBAQAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7 IGktLSkKICAgICAgewpAQCAtODgxLDEwICs4NzcsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9ybDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAg ICAgICAgd3JpdGVfbWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNi0wMS0wOCAx OToxNjoxNi42MzA4MTQyMDIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcnM2 MDAwLWFpeC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjY4MzQ4MTcgKzAxMDAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ1LjQyNTUwMzAwMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9y czYwMDAtYWl4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCArMDIwMAogQEAg LTE4Niw5ICsxODYsOSBAQAogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hf dGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC04OTcsNyArODkzLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9yczYwMDAtYWl4LXRkZXAuYwogICAgZ2RiX2J5dGUgdG1wX2J1ZmZl cls1MF07CiAgICBpbnQgZl9hcmdubyA9IDA7CQkvKiBjdXJyZW50IGZsb2F0aW5nIHBvaW50IGFy Z25vICovCiAgICBpbnQgd29yZHNpemUgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpLT53b3Jkc2l6 ZTsKLUBAIC0zMjEsNyArMzIxLDcgQEAKK0BAIC0zMTksNyArMzE5LDcgQEAKICAKICAgIGlmICgo YXJnbm8gPCBuYXJncykgfHwgYXJnYnl0ZXMpCiAgICAgIHsKQEAgLTkwNiwxMSArOTAyLDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKICAKICAg ICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv czM5MC1saW51eC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvczM5MC1s aW51eC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dk Yi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzMjgxNDIxMyArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjIwLjMyODgzNDgyOSArMDEwMAotQEAgLTI5ODEsNyArMjk4MSw3IEBACistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvczM5MC1saW51eC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0NS40Mjc1MDMwMTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvczM5 MC1saW51eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjY1MTk5MDggKzAyMDAKK0BAIC0z MTI1LDcgKzMxMjUsNyBAQAogIC8qIERldGVybWluZSB3aGV0aGVyIE4gaXMgYSBwb3dlciBvZiB0 d28uICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTkxOSw3ICs5MTUsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3MzOTAtbGludXgtdGRlcC5jCiAgewogICAgcmV0dXJuIG4gJiYg KChuICYgKG4gLSAxKSkgPT0gMCk7CiAgfQotQEAgLTMwMzgsNyArMzAzOCw3IEBACitAQCAtMzE4 Miw3ICszMTgyLDcgQEAKICAJCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciwgaW50IGlzX3Vu bmFtZWQpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcpKTsKQEAgLTkyOCwxMCArOTI0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvczM5MC1saW51eC10ZGVwLmMKICAgIGludCB3cml0ZV9tb2RlID0gYXMtPnJlZ2Nh Y2hlICE9IE5VTEw7CiAgCiAgICBpZiAoczM5MF9mdW5jdGlvbl9hcmdfZmxvYXQgKHR5cGUpKQot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zY29yZS10ZGVwLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvc2NvcmUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYu NjMzODE0MjE4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Njb3JlLXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyODgzNDgyOSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3Njb3JlLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyODUwMzAy NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zY29yZS10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41Mjc1MTk5MTYgKzAyMDAKIEBAIC01MTQsNyArNTE0LDcgQEAKICAgIGVu dW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsK ICAgIGludCBhcmdudW07CkBAIC05NDEsMTAgKzkzNywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3Njb3JlLXRkZXAuYwogICAgQ09SRV9BRERSIHN0YWNrX29mZnNldCA9IDA7 CiAgICBDT1JFX0FERFIgYWRkciA9IDA7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3NoLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zaC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zaC10ZGVwLmMJ MjAxNi0wMS0wOCAxOToxNjoxNi42MzU4MTQyMzAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvc2gtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI5ODM0ODM0ICswMTAwCist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDUuNDI5NTAzMDMyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNzUxOTkxNiArMDIwMAogQEAgLTgwNSw3ICs4MDUs NyBAQAogIHN0YXRpYyBpbnQKICBzaF91c2Vfc3RydWN0X2NvbnZlbnRpb24gKGludCByZW5lc2Fz X2FiaSwgc3RydWN0IHR5cGUgKnR5cGUpCkBAIC05ODMsMjAgKzk3OSwyMCBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NoLXRkZXAuYwogICAgaW50IHBhc3Nfb25fc3RhY2sgPSAw OwogICAgaW50IGxhc3RfcmVnX2FyZyA9IElOVF9NQVg7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3NoNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3NoNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9n ZGIvc2g2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MzU4MTQyMzAgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4z Mjk4MzQ4MzQgKzAxMDAKLUBAIC0xMDU2LDcgKzEwNTYsNyBAQAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDMwNTAzMDQw ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoNjQtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDcuNTI4NTE5OTI1ICswMjAwCitAQCAtMTA2MCw3ICsxMDYwLDcgQEAKICAJCSAg ICAgIENPUkVfQUREUiBzdHJ1Y3RfYWRkcikKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAtICBpbnQgc3RhY2tfb2Zmc2V0 LCBzdGFja19hbGxvYzsKICsgIExPTkdFU1Qgc3RhY2tfb2Zmc2V0LCBzdGFja19hbGxvYzsKICAg IGludCBpbnRfYXJncmVnOwotICAgaW50IGZsb2F0X2FyZ3JlZzsKLSAgIGludCBkb3VibGVfYXJn cmVnOwotQEAgLTEwNjcsNyArMTA2Nyw3IEBACisgICBpbnQgZmxvYXRfYXJnX2luZGV4ID0gMDsK KyAgIGludCBkb3VibGVfYXJnX2luZGV4ID0gMDsKK0BAIC0xMDY5LDcgKzEwNjksNyBAQAogICAg Q09SRV9BRERSIHJlZ3ZhbDsKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2 YWxidWZbOF07CkBAIC0xMDA1LDEwICsxMDAxLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvc2g2NC10ZGVwLmMKICAgIGludCBhcmdyZWdfc2l6ZTsKICAgIGludCBmcF9hcmdz WzEyXTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmMtdGRlcC5jCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwYXJjLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjE2LjYzNjgxNDIzNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9z cGFyYy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzA4MzQ4NDAgKzAxMDAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zcGFyYy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 NS40MzE1MDMwNDggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI4NTE5OTI1ICswMjAwCiBAQCAtNTI1LDcgKzUyNSw3 IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewpAQCAtMTAxOCwxMCAr MTAxNCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjLXRkZXAuYwog IAogICAgICAgIGlmIChzcGFyY19zdHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAo c3BhcmNfZmxvYXRpbmdfcCAodHlwZSkgJiYgbGVuID09IDE2KQotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9zcGFyYzY0LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM3ODE0MjQxICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTYtMDEt MDggMTk6MTY6MjAuMzMwODM0ODQwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzI1MDMwNTYgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKIEBAIC02MzYsNyArNjM2LDggQEAKICAKICBzdGF0aWMg dm9pZApAQCAtMTA3NywxMCArMTA3MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3NwYXJjNjQtdGRlcC5jCiAgICAgICAgaW50IHJlZ251bSA9IC0xOwogICAgICAgIGdkYl9i eXRlIGJ1ZlsxNl07CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwdS10ZGVw LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3B1LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoxNi42Mzg4MTQyNDYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv c3B1LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMTgzNDg0NSArMDEwMAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40 MzM1MDMwNjQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3B1LXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ3LjUyOTUxOTkzMiArMDIwMAogQEAgLTE0MjksNyArMTQyOSw3IEBA CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMDk5LDExICsx MDk1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3B1LXRkZXAuYwogIAkg IGludCBwcmVmZXJyZWRfc2xvdDsKICAJICAKICAJICBpZiAoc3B1X3NjYWxhcl92YWx1ZV9wICh0 eXBlKSkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGljNngtdGRlcC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpYzZ4LXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjE2LjYzOTgxNDI1MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2 eC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAKLUBAIC04OTUsNyAr ODk1LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWM2eC10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS40MzM1MDMwNjQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGljNngtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI5NTE5OTMyICswMjAw CitAQCAtODkyLDcgKzg5Miw3IEBACiAgICBpbnQgYXJncmVnID0gMDsKICAgIGludCBhcmdudW07 CiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gNDsKQEAgLTExMTIsNyArMTEwOCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGljNngtdGRlcC5jCiAgICBDT1JFX0FERFIgZnVuY19h ZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBzdHJ1 Y3QgdHlwZSAqZnVuY190eXBlID0gdmFsdWVfdHlwZSAoZnVuY3Rpb24pOwotQEAgLTkyOSw3ICs5 MjksNyBAQAorQEAgLTkyNiw3ICs5MjYsNyBAQAogICAgLyogTm93IG1ha2Ugc3BhY2Ugb24gdGhl IHN0YWNrIGZvciB0aGUgYXJncy4gICovCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5h cmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtMTEyMSw3ICsxMTE3LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKICAgICAgICBpZiAoYXJnbnVtID49IDEw IC0gYXJncmVnKQogIAlyZWZlcmVuY2VzX29mZnNldCArPSBsZW47CiAgICAgICAgc3RhY2tfb2Zm c2V0ICs9IGxlbjsKLUBAIC05NDgsNyArOTQ4LDcgQEAKK0BAIC05NDUsNyArOTQ1LDcgQEAKICAg ICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJn c1thcmdudW1dOwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtMTEzMCw3ICsxMTI2LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKICAgICAgICBlbnVtIHR5cGVfY29kZSB0eXBl Y29kZSA9IFRZUEVfQ09ERSAoYXJnX3R5cGUpOwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRl bnRzIChhcmcpOwotQEAgLTExMDgsNyArMTEwOCw4IEBACitAQCAtMTEwNSw3ICsxMTA1LDggQEAK ICAJICAgIH0KICAJICBlbHNlCiAgCSAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElO RV9fLApAQCAtMTE0MCwyMyArMTEzNiwyMyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3RpYzZ4LXRkZXAuYwogIAogIAkgIGFkZHIgPSBzcCArIHN0YWNrX29mZnNldDsKICAJICB3 cml0ZV9tZW1vcnkgKGFkZHIsIHZhbCwgbGVuKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvdGlsZWd4LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWxl Z3gtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv dGlsZWd4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjY0MDgxNDI1NyArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAu MzMyODM0ODUxICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGlsZWd4 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzNDUwMzA3MiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTMwNTE5 OTQxICswMjAwCiBAQCAtMjg4LDcgKzI4OCw3IEBACiAgICBDT1JFX0FERFIgc3RhY2tfZGVzdCA9 IHNwOwogICAgaW50IGFyZ3JlZyA9IFRJTEVHWF9SMF9SRUdOVU07CiAgICBpbnQgaSwgajsKLS0g IGludCB0eXBlbGVuLCBzbGFja2xlbiwgYWxpZ25sZW47Ci0rICBMT05HRVNUIHR5cGVsZW4sIHNs YWNrbGVuLCBhbGlnbmxlbjsKKy0gIGludCB0eXBlbGVuLCBzbGFja2xlbjsKKysgIExPTkdFU1Qg dHlwZWxlbiwgc2xhY2tsZW47CiAgICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgZm91cl96ZXJvX3dv cmRzWzE2XSA9IHsgMCB9OwogIAogICAgLyogSWYgc3RydWN0X3JldHVybiBpcyAxLCB0aGVuIHRo ZSBzdHJ1Y3QgcmV0dXJuIGFkZHJlc3Mgd2lsbAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi92ODUwLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92ODUwLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Y4NTAt dGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQwODE0MjU3ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMyODM0ODUx ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MzQ1MDMwNzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBA IC0xMDE5LDcgKzEwMTksNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ3JlZzsKQEAgLTExNzUsMTAgKzEx NzEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92ODUwLXRkZXAuYwogICAg ICAgIGdkYl9ieXRlICp2YWw7CiAgICAgICAgZ2RiX2J5dGUgdmFsYnVmW3Y4NTBfcmVnX3NpemVd OwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YXgtdGRlcC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYu NjQxODE0MjYzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10ZGVwLmMJ MjAxNi0wMS0wOCAxOToxNjoyMC4zMzM4MzQ4NTYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM1NTAzMDgwICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0xMTEsNyArMTExLDcgQEAKICAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAg LTExOTcsMTAgKzExOTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YXgt dGRlcC5jCiAgCiAgICAgICAgc3AgLT0gKGxlbiArIDMpICYgfjM7CiAgICAgICAgY291bnQgKz0g KGxlbiArIDMpIC8gNDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHN0b3JteTE2 LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94c3Rvcm15MTYtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIveHN0b3JteTE2 LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjY0MTgxNDI2MyArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMz ODM0ODU2ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIveHN0b3JteTE2 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzNTUwMzA4MCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTMw NTE5OTQxICswMjAwCiBAQCAtMjMzLDggKzIzMyw5IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgc3Rh Y2tfZGVzdCA9IHNwOwpAQCAtMTIxMywxMCArMTIwOSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAg ICBnZGJfYnl0ZSBidWZbeHN0b3JteTE2X3BjX3NpemVdOwogIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi94dGVuc2EtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3h0ZW5zYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQzODE0Mjc0ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wMS0wOCAx OToxNjoyMC4zMzQ4MzQ4NjIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi94dGVuc2EtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM3NTAzMDk2ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 Ny41MzE1MTk5NDkgKzAyMDAKIEBAIC0xNjM4LDggKzE2MzgsNyBAQAogIAogICAgICAgIGlmIChs ZW4gPiAoY2FsbHNpemUgPiA4ID8gOCA6IDE2KSkKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQy NC1iaXRwb3MtMjVvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRj aAppbmRleCAyMGRiOTE1Li5lZjVlMDQ4IDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjVvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gK QEAgLTQ3LDExICs0NywxMSBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsg ZmlsZW5hbWU9Zjc3LWJvdW5kcy5wYXRjaAogCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2YtbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtbGFuZy5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmgJMjAx NS0xMS0wMiAyMToyNToxNC4yMzMxNjEwOTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyNToyMi40MDQyMTQ4NjAgKzAxMDAKLUBAIC02 Miw5ICs2Miw5IEBAIHN0cnVjdCBjb21tb25fYmxvY2sKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9mLWxhbmcuaAkyMDE2LTA3LTE2IDEwOjU2OjExLjY4Mjc2MjcyMiArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLWxhbmcuaAkyMDE2LTA3LTE2IDEwOjU2OjE1 LjU1NDc5MzcwNCArMDIwMAorQEAgLTQ5LDkgKzQ5LDkgQEAKICAgIHN0cnVjdCBzeW1ib2wgKmNv bnRlbnRzWzFdOwogIH07CiAgCkBAIC02MywzOCArNjMsMzggQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9mLWxhbmcuaAogIAogIGV4dGVybiB2b2lkIGY3N19nZXRfZHluYW1pY19h cnJheV9sZW5ndGggKHN0cnVjdCB0eXBlICopOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9mLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2Yt dHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9mLXR5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjU6MTQuMjM0MTYxMTA0ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyNToy Mi40MDQyMTQ4NjAgKzAxMDAKLUBAIC0xNzEsNyArMTcxLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNw ZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L2YtdHlwZXByaW50LmMJMjAxNi0wNy0xNiAxMDo1NjoxMS42ODI3NjI3MjIgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjQz Ljc5NTAxOTY2MCArMDIwMAorQEAgLTE0Nyw3ICsxNDcsNyBAQAogIAkJCSAgICAgaW50IHNob3cs IGludCBwYXNzZWRfYV9wdHIsIGludCBkZW1hbmdsZWRfYXJncywKLSAJCQkgICAgIGludCBhcnJh eXByaW50X3JlY3Vyc2VfbGV2ZWwpCisgCQkJICAgICBpbnQgYXJyYXlwcmludF9yZWN1cnNlX2xl dmVsLCBpbnQgcHJpbnRfcmFua19vbmx5KQogIHsKIC0gIGludCB1cHBlcl9ib3VuZCwgbG93ZXJf Ym91bmQ7CiArICBMT05HRVNUIHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKICAKICAgIC8qIE5v IHN0YXRpYyB2YXJpYWJsZXMgYXJlIHBlcm1pdHRlZCBhcyBhbiBlcnJvciBjYWxsIG1heSBvY2N1 ciBkdXJpbmcKICAgICAgIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLiAgKi8KLUBAIC0yMDQs NyArMjA0LDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQotIAot ICAgICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Ci0gICAg ICAgICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLwotLSAg ICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsK LSsgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlczoiLCBwbG9uZ2VzdCAo bG93ZXJfYm91bmQpKTsKK0BAIC0xOTQsNyArMTk0LDcgQEAKKyAJeworIAkgIGxvd2VyX2JvdW5k ID0gZjc3X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKKyAJICBpZiAobG93ZXJfYm91bmQgIT0gMSkJ LyogTm90IHRoZSBkZWZhdWx0LiAgKi8KKy0JICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg IiVkOiIsIGxvd2VyX2JvdW5kKTsKKysJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVz OiIsIHBsb25nZXN0IChsb3dlcl9ib3VuZCkpOwogIAotICAgICAgICAgICAvKiBNYWtlIHN1cmUg dGhhdCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCi0gICAgICAgICAgICAg IHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4gICov Ci1AQCAtMjE0LDcgKzIxNCw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0 IHR5cGUKLSAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHVw cGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKLS0gICAgICAgICAgICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOwotKyAgICAgICAgICAg ICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJXMiLCBwbG9uZ2VzdCAodXBwZXJfYm91bmQp KTsKLSAgICAgICAgICAgICB9CisgCSAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4g YXNzdW1lZCBzaXplIGFycmF5LCB3ZQorIAkgICAgIHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHBy aW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4gICovCitAQCAtMjA0LDcgKzIwNCw3IEBACisgCSAg ZWxzZQorIAkgICAgeworIAkgICAgICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAo dHlwZSk7CistCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91 bmQpOworKwkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1 cHBlcl9ib3VuZCkpOworIAkgICAgfQorIAl9CiAgCi0gICAgICAgICAgIGlmIChUWVBFX0NPREUg KFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSAhPSBUWVBFX0NPREVfQVJSQVkpCi1AQCAtMjgzLDcg KzI4Myw3IEBAIHZvaWQKK0BAIC0yNzYsNyArMjc2LDcgQEAKICBmX3R5cGVfcHJpbnRfYmFzZSAo c3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBzaG93LAogIAkJ ICAgaW50IGxldmVsKQogIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKICAgIGludCBpbmRleDsKICAKICAgIFFVSVQ7Ci1A QCAtMzY1LDcgKzM2NSw3IEBAIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3QKK0BAIC0zNTgsNyArMzU4LDcgQEAKICAgICAgICBlbHNlCiAgCXsKICAJICB1cHBlcl9ib3Vu ZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7CkBAIC0xMTIsMTEgKzExMiwxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKICAJfQogICAgICAgIGJy ZWFrOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjU6MTQuMjM0MTYxMTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Yt dmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1OjIyLjQwNTIxNDg2NyArMDEwMAotQEAgLTQzLDcg KzQzLDcgQEAgTE9OR0VTVCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTgorLS0tIGdk Yi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2 OjExLjY4Mjc2MjcyMiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXZhbHBy aW50LmMJMjAxNi0wNy0xNiAxMDo1NjoxNS41NTQ3OTM3MDQgKzAyMDAKK0BAIC00Myw3ICs0Myw3 IEBACiAgLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBh IHJvdydzIGVsZW1lbnRzCiAgICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRz IHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwogIApAQCAtMTI1LDcgKzEyNSw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCiAgZjc3X2dldF9sb3dl cmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpZiAoVFlQRV9BUlJBWV9MT1dFUl9C T1VORF9JU19VTkRFRklORUQgKHR5cGUpKQotQEAgLTUyLDcgKzUyLDcgQEAgZjc3X2dldF9sb3dl cmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC01Miw3ICs1Miw3IEBACiAgICByZXR1cm4g VFlQRV9BUlJBWV9MT1dFUl9CT1VORF9WQUxVRSAodHlwZSk7CiAgfQogIAoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtbGF6eXZhbHVlLnBhdGNoCmluZGV4IDMxOTc4ZWMuLjgwMjVlMmQgMTAwNjQ0Ci0tLSBh L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0 MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaApAQCAtMSwxOSArMSw3IEBACi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL3ZhbHVlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyMi5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICsw MjAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzox NzoyNy42ODczMDA2ODkgKzAyMDAKLUBAIC05MzQsNyArOTM0LDYgQEAgYWxsb2NhdGVfdmFsdWVf bGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpCi0gICAgICBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAq LwotICAgY2hlY2tfdHlwZWRlZiAodHlwZSk7Ci0gCi0tICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3Jf ZXJyb3IgKFRZUEVfTEVOR1RIICh0eXBlKSk7Ci0gICB2YWwgPSBYQ05FVyAoc3RydWN0IHZhbHVl KTsKLSAgIHZhbC0+Y29udGVudHMgPSBOVUxMOwotICAgdmFsLT5uZXh0ID0gYWxsX3ZhbHVlczsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdl c3QtdHlwZXMtNjRiaXQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5l eHAJMjAxNS0xMC0yNCAyMzoxNzowNC4wNDIxNDM2MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCTIw MTYtMDctMDMgMTU6MDA6NTcuNjE3MzQ3ODUwICswMjAwCiBAQCAtMCwwICsxLDU5IEBACiArIyBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNDUs OCArMzMsOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAogKwogKyMgVGVzdCA2NC1iaXQgZmlsZSBmaXJz dCBhcyBpdCBpcyBub3QgY29tcGlsZWQgc28gaXRzIGNvbXBpbGF0aW9uIG5ldmVyIGZhaWxzLgog KwotK3NldCBmaWxlNjRiaXRiejJ1dSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LTY0 Yml0LmJ6Mi51dQotK3NldCBmaWxlNjRiaXQgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxl fS02NGJpdAorK3NldCBmaWxlNjRiaXRiejJ1dSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZp bGV9LmJ6Mi51dQorK3NldCBmaWxlNjRiaXQgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxl fQogKwogK2lmIHtbY2F0Y2ggInN5c3RlbSBcInV1ZGVjb2RlIC1vIC0gJHtmaWxlNjRiaXRiejJ1 dX0gfCBiemlwMiAtZGMgPiR7ZmlsZTY0Yml0fVwiIl0gIT0gMH0gewogKyAgICB1bnRlc3RlZCAi ZmFpbGVkIHV1ZGVjb2RlIG9yIGJ6aXAyIgpAQCAtNjAsNyArNDgsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0 LmV4cAogKwogK2NsZWFuX3Jlc3RhcnQgJHtmaWxlNjRiaXR9CiArCi0rI2lmIHsgW3ByZXBhcmVf Zm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9LTY0Yml0ICRzcmNmaWxlMiB7 bm9kZWJ1Z31dIH0geworKyNpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4 cCAke3Rlc3RmaWxlfSAkc3JjZmlsZTIge25vZGVidWd9XSB9IHsKICsjICAgIHJldHVybiAtMQog KyN9CiArCkBAIC03NCwxMCArNjIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAKICt9CiArCiArdGVz dCAibmF0aXZlIgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMt NjRiaXQuYwkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5j CTIwMTYtMDctMDMgMTU6MDA6NTcuNjE4MzQ3ODU5ICswMjAwCiBAQCAtMCwwICsxLDI4IEBACiAr LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAg LTEwNywxMCArOTUsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jCiArewogKyAgcmV0dXJuIDA7CiArfQot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2Vz dC10eXBlcy02NGJpdC5TCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwkyMDE1 LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5TCTIwMTYtMDctMDMg MTU6MDA6NTcuNjE4MzQ3ODU5ICswMjAwCiBAQCAtMCwwICsxLDI0OSBAQAogKy8qIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0zNjEsMTAgKzM0 OSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMKICsJLnN0cmluZwkiY2hhciIKICsJLmlkZW50CSJHQ0M6 IChHTlUpIDQuNy4zIDIwMTIxMTA5IChwcmVyZWxlYXNlKSIKICsJLnNlY3Rpb24JLm5vdGUuR05V LXN0YWNrLCIiLEBwcm9nYml0cwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5iejIudXUKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQu YnoyLnV1CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0 MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvbG9uZ2VzdC10eXBlcy02NGJpdC5iejIudXUJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4 NTkgKzAyMDAKIEBAIC0wLDAgKzEsNjcgQEAKICtiZWdpbiA3NTUgZ2RiLmJhc2UvbG9uZ2VzdC10 eXBlcy02NGJpdC5iejIKICtNMEVJSC4zJSE2MjkzNjwnTiNPSGAiRy9fX19fX19fX15fX19fX18/ X1lfX19fX18vL103U1FENSdeL18lCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1weS11bndp bmQtbTMyLnBhdGNoIGIvZ2RiLXRlc3RzdWl0ZS1weS11bndpbmQtbTMyLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxYTRhNzQKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGItdGVzdHN1aXRlLXB5LXVud2luZC1tMzIucGF0Y2gKQEAgLTAsMCArMSw1NCBAQAoraHR0cDov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAxODAuaHRtbAorU3Vi amVjdDogW3Rlc3RzdWl0ZSBwYXRjaF0gU2tpcCBweS11bndpbmQuZXhwIG9uIHg4Nl82NCAtbTMy CisKKworLS12a29ncU9mMnNIVjdWblBkCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQorCitIaSwKKworKGdkYikg c291cmNlIC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZS9vdXRw dXRzL2dkYi5weXRob24vcHktdW53aW5kL3B5LXVud2luZC5weV5NCitQeXRob24gc2NyaXB0IGlt cG9ydGVkXk0KK1B5dGhvbiBFeGNlcHRpb24gPHR5cGUgJ2V4Y2VwdGlvbnMuVmFsdWVFcnJvcic+ IEJhZCByZWdpc3RlcjogXk0KKyhnZGIpIEZBSUw6IGdkYi5weXRob24vcHktdW53aW5kLmV4cDog aW1wb3J0IHB5dGhvbiBzY3JpcHRzCisKK2NsYXNzIFRlc3RVbndpbmRlcihVbndpbmRlcik6Cisg ICAgQU1ENjRfUkJQID0gNgorICAgIEFNRDY0X1JTUCA9IDcKKyAgICBBTUQ2NF9SSVAgPSAxNgor CitUaGlzIHdhcyBhbHJlYWR5IGRpc2N1c3NlZCBoZXJlOgorCVJlOiBbdGVzdHN1aXRlIHBhdGNo XSBGaXggZ2RiLmJ0cmFjZS90YWlsY2FsbC1vbmx5LmV4cCBlcnJvcnMgb24geDg2XzY0LW0zMgor CWh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNC9tc2cwMDIyMi5o dG1sCisJTWVzc2FnZS1JRDogPDIwMTYwNDExMTk1NTM3LkdBMjIyOTlAaG9zdDEuamFua3JhdG9j aHZpbC5uZXQ+CitidXQgbm8gR0RCIG1haW50YWluZXIgZ2F2ZSBhbiBhbnN3ZXIgaG93IHRvIHJ1 biB0ZXN0c3VpdGUgaW4gY3Jvc3MtYXJjaCBtb2RlLgorCisKK0phbgorCistLXZrb2dxT2Yyc0hW N1ZuUGQKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVu dC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0xCisKK2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nCisyMDE2LTA3LTE3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+CisKKwkqIGdkYi5weXRob24vcHktdW53aW5kLmV4cDogVGVzdCBhbHNvICFbaXNfbHA2NF90 YXJnZXRdLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXVud2lu ZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdW53aW5kLmV4cAoraW5kZXggNTE3 MmEwMy4uZTMxYTQ3MiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS11 bndpbmQuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdW53aW5kLmV4cAor QEAgLTI4LDcgKzI4LDcgQEAgaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5l eHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfV0gfSB7CisgaWYgeyBbc2tpcF9weXRob25fdGVzdHNd IH0geyBjb250aW51ZSB9CisgCisgIyBUaGlzIHRlc3QgcnVucyBvbiBhIHNwZWNpZmljIHBsYXRm b3JtLgorLWlmIHsgISBbaXN0YXJnZXQgeDg2XzY0LSpdfSB7IGNvbnRpbnVlIH0KKytpZiB7ICFb aXN0YXJnZXQgeDg2XzY0LSotKiBdIHx8ICFbaXNfbHA2NF90YXJnZXRdIH0geyBjb250aW51ZSB9 CisgCisgIyBUaGUgZm9sbG93aW5nIHRlc3RzIHJlcXVpcmUgZXhlY3V0aW9uLgorIAorCistLXZr b2dxT2Yyc0hWN1ZuUGQtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1zZWxmdGVzdC1j eHgucGF0Y2ggYi9nZGItdGVzdHN1aXRlLXNlbGZ0ZXN0LWN4eC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWIzZjNhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXRl c3RzdWl0ZS1zZWxmdGVzdC1jeHgucGF0Y2gKQEAgLTAsMCArMSw2NiBAQAoraHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAxNzkuaHRtbAorU3ViamVjdDog W3Rlc3RzdWl0ZSBwYXRjaF0gRml4IGdkYi5nZGIvc2VsZnRlc3QuZXhwIGZvciBDKystTzItZy1i dWlsdCBHREIKKworCistLVpHaVMwUTVJV3BQdGZwcHYKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAor Cit0ZXN0ZWQgb24gRmVkb3JhIDI0IHg4Nl82NCBhZnRlcjoKKwkuL2NvbmZpZ3VyZTsgbWFrZQor VGhhdCBpczogQ0ZMQUdTPSctZyAtTzInIENYWEZMQUdTPSctZyAtTzInCisKK09LIGZvciBjaGVj ay1pbj8KKworCitKYW4KKworLS1aR2lTMFE1SVdwUHRmcHB2CitDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmls ZW5hbWU9MQorCitnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworMjAxNi0wNy0xNiAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuZ2RiL3NlbGZ0ZXN0 LmV4cCAoZG9fc3RlcHNfYW5kX25leHRzKTogQWRkICJuZXh0IG92ZXIgVFJZIiBhbmQKKwkic3Rl cCBpbnRvIGNhcHR1cmVkX21haW4gKGFyZ3MpIi4KKwkodGVzdF93aXRoX3NlbGYpOiBBZGQgImNh cHR1cmVkX21haW4gKGFyZ3MpOyIgY2FzZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmdkYi9zZWxmdGVzdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhw CitpbmRleCBhZjAwMjZjLi4yY2RkNWMxIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Z2RiL3NlbGZ0ZXN0LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4 cAorQEAgLTExNiw2ICsxMTYsMTQgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30geworIAkJ c2V0IGRlc2NyaXB0aW9uICJuZXh0IG92ZXIgbGltX2F0X3N0YXJ0IGluaXRpYWxpemF0aW9uIgor IAkJc2V0IGNvbW1hbmQgIm5leHQiCisgCSAgICB9CisrCSAgICAtcmUgIi4qVFJZLiokZ2RiX3By b21wdCAkIiB7CisrCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBUUlkiCisrCQlzZXQgY29t bWFuZCAibmV4dCIKKysJICAgIH0KKysJICAgIC1yZSAiLipjYXB0dXJlZF9tYWluIFxcKGFyZ3Nc XCk7LiokZ2RiX3Byb21wdCAkIiB7CisrCQlzZXQgZGVzY3JpcHRpb24gInN0ZXAgaW50byBjYXB0 dXJlZF9tYWluIChhcmdzKSIKKysJCXNldCBjb21tYW5kICJzdGVwIgorKwkgICAgfQorIAkgICAg LXJlICIuKmNvdW50IC4gMHgzLiokZ2RiX3Byb21wdCAkIiB7CisgCQlzZXQgZGVzY3JpcHRpb24g Im5leHQgb3ZlciBjb25kaXRpb25hbCBzdGFjayBhbGlnbm1lbnQgY29kZSAxIgorIAkJc2V0IGNv bW1hbmQgIm5leHQiCitAQCAtMzMwLDYgKzMzOCwxMyBAQCBwcm9jIHRlc3Rfd2l0aF9zZWxmIHsg ZXhlY3V0YWJsZSB9IHsKKyAJLXJlICJTdGFydGluZyBwcm9ncmFtLipCcmVha3BvaW50IFxbMC05 XF0rLC4qY2FwdHVyZWRfbWFpbiAuZGF0YS4qJGdkYl9wcm9tcHQgJCIgeworIAkgICAgeGZhaWwg IiRkZXNjcmlwdGlvbiAobGluZSBudW1iZXJzIHNjcmFtYmxlZD8pIgorIAl9CisrCS1yZSAiY2Fw dHVyZWRfbWFpbiBcXChhcmdzXFwpO1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBnZGJfdGVz dF9tdWx0aXBsZSAic3RlcCIgIiRkZXNjcmlwdGlvbiIgeworKwkJLXJlICJjYXB0dXJlZF9tYWlu IC5kYXRhLiogYXQgLiptYWluLmM6LiokZ2RiX3Byb21wdCAkIiB7CisrCQkgICAgcGFzcyAiJGRl c2NyaXB0aW9uIgorKwkJfQorKwkgICAgfQorKwl9CisgCS1yZSAidmZvcms6IE5vIG1vcmUgcHJv Y2Vzc2VzLiokZ2RiX3Byb21wdCAkIiB7CisgCSAgICBmYWlsICIkZGVzY3JpcHRpb24gKG91dCBv ZiB2aXJ0dWFsIG1lbW9yeSkiCisgCSAgICBzZXQgdGltZW91dCAkb2xkdGltZW91dAorCistLVpH aVMwUTVJV3BQdGZwcHYtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4 LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAzYjhkNzdhLi4wMDAwMDAwCi0tLSBhL2dkYi12bGEtaW50ZWwtMDRvZjIz LWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLVJlOiBbUEFUQ0ggMDQv MjNdIHZsYTogbWFrZSBkeW5hbWljIGZvcnRyYW4gYXJyYXlzIGZ1bmN0aW9uYWwuCi1odHRwczov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNnMDA1NzAuaHRtbAotCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMTEtMDMgMjA6 NDE6NDguNTQzNTA0OTk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFy aXRoLmMJMjAxNS0xMS0wMyAyMDo0NjozNi45OTUyMzg4ODggKzAxMDAKLUBAIC0xOTMsMTAgKzE5 MywxNyBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCi0gICBzdHJ1 Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7 Ci0gICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9U WVBFIChhcnJheV90eXBlKSk7Ci0gICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSB0eXBlX2xlbmd0 aF91bml0cyAoZWx0X3R5cGUpOwotLSAgdW5zaWduZWQgaW50IGVsdF9vZmZzID0gbG9uZ2VzdF90 b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0X29mZnM7Ci0g ICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZUEUg KGFycmF5X3R5cGUpKTsKLSAgIHN0cnVjdCB2YWx1ZSAqdjsKLSAKLSsgIGlmIChUWVBFX05PVF9B U1NPQ0lBVEVEIChhcnJheV90eXBlKSkKLSsgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQgKHZlY3RvciBub3QgYXNzb2NpYXRlZCkiKSk7Ci0rICBpZiAoVFlQRV9OT1RfQUxMT0NB VEVEIChhcnJheV90eXBlKSkKLSsgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQg KHZlY3RvciBub3QgYWxsb2NhdGVkKSIpKTsKLSsKLSsgIGVsdF9vZmZzID0gbG9uZ2VzdF90b19p bnQgKGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rCi0gICBpZiAoZWx0X3N0cmlkZSA+IDApCi0gICAg IGVsdF9vZmZzICo9IGVsdF9zdHJpZGU7Ci0gICBlbHNlIGlmIChlbHRfc3RyaWRlIDwgMCkKLUBA IC0yMTAsMTQgKzIxNyw3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVl ICoKLSAKLSAgIGlmIChpbmRleCA8IGxvd2VyYm91bmQgfHwgKCFUWVBFX0FSUkFZX1VQUEVSX0JP VU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKLSAJCQkgICAgICYmIGVsdF9vZmZzID49IHR5 cGVfbGVuZ3RoX3VuaXRzIChhcnJheV90eXBlKSkpCi0tICAgIHsKLS0gICAgICBpZiAodHlwZV9u b3RfYXNzb2NpYXRlZCAoYXJyYXlfdHlwZSkpCi0tICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhc3NvY2lhdGVkKSIpKTsKLS0gICAgICBlbHNlIGlm ICh0eXBlX25vdF9hbGxvY2F0ZWQgKGFycmF5X3R5cGUpKQotLSAgICAgICAgZXJyb3IgKF8oIm5v IHN1Y2ggdmVjdG9yIGVsZW1lbnQgKHZlY3RvciBub3QgYWxsb2NhdGVkKSIpKTsKLS0gICAgICBl bHNlCi0tICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLS0gICAg fQotKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSAKLSAgIGlmIChW QUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQot ICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoZWx0X3R5cGUpOwoKZGlmZiAtLWdpdCBhL2dk Yi12bGEtaW50ZWwtMW9mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtMW9mNy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTcyOTIyCi0tLSAvZGV2L251bGwKKysrIGIv Z2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCkBAIC0wLDAgKzEsMTgwIEBACitGcm9tIDI2ZTE1NmQ2 MjIxMWNhODQ1OGZhYTMyNmYyMTk0MGU5ZmExOGM4ZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBCZXJuaGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRl OiBUdWUsIDEyIEp1bCAyMDE2IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS83XSBG b3J0cmFuOiBUZXN0c3VpdGUsIGZpeCBkaWZmZXJlbmNlcyBpbiB0eXBlIG5hbWluZy4KKworQ29u dGludWVkIG9uIDBjMTNmN2U1NTlhZmU1Zjk3M2E1OTMxMWIwZTQwMTI5NmM0OGQ5NmMKKyhmb3J0 cmFuOiBUZXN0c3VpdGUsIGZpeCBkaWZmZXJlbnQgdHlwZSBuYW1pbmcgYWNyb3NzIGNvbXBpbGVy cykuCisKKzIwMTYtMDYtMDggIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRl bC5jb20+CisKK2dkYi9UZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSogZ2RiLmZvcnRyYW4vdmxhLXZh bHVlLmV4cDogVXNlIHR5cGUgbmFtZXMgZGVmaW5lZCBpbiBsaWJmb3J0cmFuLgorCSogZ2RiLm1p L21pLXZhci1jaGlsZC1mLmV4cDogTGlrZXdpc2UuCisJKiBnZGIubWkvbWktdmxhLWZvcnRyYW4u ZXhwOiBMaWtld2lzZS4KKworQ2hhbmdlLUlkOiBJN2VlOTQ1ODdhOTkyYWRkMjdmZWM3N2M3NzI2 ZjlhNjljOGZkZjM3MworLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUu ZXhwIHwgMTIgKysrKysrKystLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxk LWYuZXhwIHwgIDcgKysrLS0tLQorIGdkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFu LmV4cCB8IDE4ICsrKysrKysrKysrLS0tLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12 YWx1ZS5leHAKK2luZGV4IDA5NDUxODEuLjI3NWY3MzggMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXZhbHVlLmV4cAorQEAgLTE0LDYgKzE0LDcgQEAKKyAjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgor IAorIHN0YW5kYXJkX3Rlc3RmaWxlICJ2bGEuZjkwIgorK2xvYWRfbGliICJmb3J0cmFuLmV4cCIK KyAKKyBpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl fSAke3NyY2ZpbGV9IFwKKyAgICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKK0BAIC0yNSwxMiAr MjYsMTUgQEAgaWYgIVtydW50b19tYWluXSB7CisgICAgIHJldHVybiAtMQorIH0KKyAKKysjIERl cGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJl IHByaW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IHJlYWwgW2ZvcnRyYW5fcmVhbDRdCisrCisgIyBU cnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBub24gYWxsb2NhdGVkIFZMQQorIGdkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWluaXQiXQorIGdkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2bGExLWluaXQiCisgZ2RiX3Rlc3QgInByaW50IHZsYTEiICIgPSA8bm90IGFsbG9j YXRlZD4iICJwcmludCBub24tYWxsb2NhdGVkIHZsYTEiCisgZ2RiX3Rlc3QgInByaW50ICZ2bGEx IiBcCistICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoPG5v dCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxc XCggJHJlYWwgXFxcKDxub3QgYWxsb2NhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJp bnQgbm9uLWFsbG9jYXRlZCAmdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgxLDEsMSkiICJu byBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAg ICJwcmludCBtZW1iZXIgaW4gbm9uLWFsbG9jYXRlZCB2bGExICgxKSIKK0BAIC01MSw3ICs1NSw3 IEBAIHdpdGhfdGltZW91dF9mYWN0b3IgMTUgeworIAkic3RlcCBvdmVyIHZhbHVlIGFzc2lnbm1l bnQgb2YgdmxhMSIKKyB9CisgZ2RiX3Rlc3QgInByaW50ICZ2bGExIiBcCistICAiID0gXFxcKFBU UiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoMTAsMTAsMTBcXFwpXFxcKVxcXCkg JGhleCIgXAorKyAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoMTAsMTAsMTBcXFwp XFxcKVxcXCkgJGhleCIgXAorICAgInByaW50IGFsbG9jYXRlZCAmdmxhMSIKKyBnZGJfdGVzdCAi cHJpbnQgdmxhMSgzLCA2LCA5KSIgIiA9IDEzMTEiICJwcmludCBhbGxvY2F0ZWQgdmxhMSgzLDYs OSkiCisgZ2RiX3Rlc3QgInByaW50IHZsYTEoMSwgMywgOCkiICIgPSAxMzExIiAicHJpbnQgYWxs b2NhdGVkIHZsYTEoMSwzLDgpIgorQEAgLTcxLDcgKzc1LDcgQEAgZ2RiX3Rlc3QgInByaW50IHZs YTEoOSwgOSwgOSkiICIgPSA5OTkiIFwKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIHVuZGVm aW5lZCBwb2ludGVyIHRvIFZMQSAoZGFuZ2xpbmcpCisgZ2RiX3Rlc3QgInByaW50IHB2bGEiICIg PSA8bm90IGFzc29jaWF0ZWQ+IiAicHJpbnQgdW5kZWZpbmVkIHB2bGEiCisgZ2RiX3Rlc3QgInBy aW50ICZwdmxhIiBcCistICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxc KSBcXFwoPG5vdCBhc3NvY2lhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBU UiBUTyAtPiBcXFwoICRyZWFsIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgi IFwKKyAgICJwcmludCBub24tYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZs YSgxLCAzLCA4KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2Np YXRlZFxcXCkiIFwKKyAgICJwcmludCB1bmRlZmluZWQgcHZsYSgxLDMsOCkiCitAQCAtODAsNyAr ODQsNyBAQCBnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRlZAorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJwdmxhLWFzc29jaWF0ZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJwdmxhLWFzc29jaWF0ZWQiCisgZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBcCistICAiID0g XFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoMTAsMTAsMTBcXFwpXFxc KVxcXCkgJGhleCIgXAorKyAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoMTAsMTAs MTBcXFwpXFxcKVxcXCkgJGhleCIgXAorICAgInByaW50IGFzc29jaWF0ZWQgJnB2bGEiCisgZ2Ri X3Rlc3QgInByaW50IHB2bGEoMywgNiwgOSkiICIgPSA0MiIgInByaW50IGFzc29jaWF0ZWQgcHZs YSgzLDYsOSkiCisgZ2RiX3Rlc3QgInByaW50IHB2bGEoMSwgMywgOCkiICIgPSAxMDAxIiAicHJp bnQgYXNzb2NpYXRlZCBwdmxhKDEsMyw4KSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taS12YXItY2hpbGQtZi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hp bGQtZi5leHAKK2luZGV4IGYzZWQ3YzIuLmJjNDRjNmIgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLXZhci1jaGlsZC1mLmV4cAorQEAgLTE3LDYgKzE3LDcgQEAKKyAKKyBsb2FkX2xpYiBtaS1z dXBwb3J0LmV4cAorIHNldCBNSUZMQUdTICItaT1taSIKKytsb2FkX2xpYiAiZm9ydHJhbi5leHAi CisgCisgaWYgeyBbc2tpcF9mb3J0cmFuX3Rlc3RzXSB9IHsgcmV0dXJuIC0xIH0KKyAKK0BAIC00 MCwxMCArNDEsOCBAQCBtaV9ydW50byBNQUlOX18KKyBtaV9jcmVhdGVfdmFyb2JqICJhcnJheSIg ImFycmF5IiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIGFycmF5IgorIAorIAorLSMgRGVwZW5kaW5n IG9uIHRoZSBjb21waWxlciB2ZXJzaW9uIGJlaW5nIHVzZWQsIHRoZSBuYW1lIG9mIHRoZSA0LWJ5 dGUgaW50ZWdlcgorLSMgYW5kIHJlYWwgdHlwZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHku ICBGb3IgaW5zdGFuY2UsIGdmb3J0cmFuLTQuMSB1c2VzCistIyAiaW50NCIgd2hlcmVhcyBnZm9y dHJhbi00LjMgdXNlcyAiaW50ZWdlcihraW5kPTQpIi4KKy1zZXQgaW50NCAiKGludDR8aW50ZWdl clxcKGtpbmQ9NFxcKSkiCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQs IHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5LgorK3NldCBpbnQ0IFtm b3J0cmFuX2ludDRdCisgCisgc2V0IGNoaWxkcmVuIFtsaXN0IFtsaXN0ICJhcnJheS4tMSIgIi0x IiAyICIkaW50NCBcXCgyXFwpIl0gXAorIAkJICBbbGlzdCAiYXJyYXkuMCIgIjAiIDIgIiRpbnQ0 IFxcKDJcXCkiXSBcCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZv cnRyYW4uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCitpbmRl eCAzMzNiNzFhLi4xNzc5ZWMwIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmxhLWZvcnRyYW4uZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJh bi5leHAKK0BAIC0xOCw2ICsxOCw3IEBACisgCisgbG9hZF9saWIgbWktc3VwcG9ydC5leHAKKyBz ZXQgTUlGTEFHUyAiLWk9bWkiCisrbG9hZF9saWIgImZvcnRyYW4uZXhwIgorIAorIGdkYl9leGl0 CisgaWYgW21pX2dkYl9zdGFydF0geworQEAgLTMyLDYgKzMzLDkgQEAgaWYgeyBbZ2RiX2NvbXBp bGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFi bGUgXAorICAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgRGVwZW5kaW5nIG9uIHRoZSBjb21waWxl ciBiZWluZyB1c2VkLCB0aGUgdHlwZSBuYW1lcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4K KytzZXQgcmVhbCBbZm9ydHJhbl9yZWFsNF0KKysKKyBtaV9kZWxldGVfYnJlYWtwb2ludHMKKyBt aV9nZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKyBtaV9nZGJfbG9hZCAke2Jp bmZpbGV9CitAQCAtNTgsNyArNjIsNyBAQCBtaV9nZGJfdGVzdCAiNTAzLXZhci1ldmFsdWF0ZS1l eHByZXNzaW9uIHZsYTFfbm90X2FsbG9jYXRlZCIgXAorICAgIjUwM1xcXmRvbmUsdmFsdWU9XCJc XFxbMFxcXF1cIiIgXAorICAgImV2YWwgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1p X2xpc3RfYXJyYXlfdmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5kZXggInZsYTFfbm90X2FsbG9jYXRl ZCIgIjAiICIxIiBcCistICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4gb2Yg dmxhMV9ub3RfYWxsb2NhdGVkIgorKyAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9u b3RfYWxsb2NhdGVkIgorIAorIAorIAorQEAgLTcxLDEwICs3NSwxMCBAQCBtaV9leHBlY3Rfc3Rv cCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIiICIuKnZsYS5mOTAiICIkYnBfbGluZW5vIiBcCisg bWlfZ2RiX3Rlc3QgIjUxMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAorICAgIjUx MFxcXmRvbmUsdmFsdWU9XCJcXCguKlxcKVwiIiAiZXZhbHVhdGUgYWxsb2NhdGVkIHZsYSIKKyAK Ky1taV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgdmxhMV9hbGxvY2F0ZWQgdmxhMSAicmVhbFxcXChr aW5kPTRcXFwpIFxcXCg1XFxcKSIgXAorK21pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX2Fs bG9jYXRlZCB2bGExICIkcmVhbCBcXFwoNVxcXCkiIFwKKyAgICJjcmVhdGUgbG9jYWwgdmFyaWFi bGUgdmxhMV9hbGxvY2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUxMS12YXItaW5mby10eXBlIHZsYTFf YWxsb2NhdGVkIiBcCistICAiNTExXFxeZG9uZSx0eXBlPVwicmVhbFxcXChraW5kPTRcXFwpIFxc XCg1XFxcKVwiIiBcCisrICAiNTExXFxeZG9uZSx0eXBlPVwiJHJlYWwgXFxcKDVcXFwpXCIiIFwK KyAgICJpbmZvIHR5cGUgdmFyaWFibGUgdmxhMV9hbGxvY2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUx Mi12YXItc2hvdy1mb3JtYXQgdmxhMV9hbGxvY2F0ZWQiIFwKKyAgICI1MTJcXF5kb25lLGZvcm1h dD1cIm5hdHVyYWxcIiIgXAorQEAgLTgzLDcgKzg3LDcgQEAgbWlfZ2RiX3Rlc3QgIjUxMy12YXIt ZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExX2FsbG9jYXRlZCIgXAorICAgIjUxM1xcXmRvbmUsdmFs dWU9XCJcXFxbNVxcXF1cIiIgXAorICAgImV2YWwgdmFyaWFibGUgdmxhMV9hbGxvY2F0ZWQiCisg bWlfbGlzdF9hcnJheV92YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAidmxhMV9hbGxvY2F0ZWQi ICI1IiAiMSIgXAorLSAgICAicmVhbFxcXChraW5kPTRcXFwpIiAiZ2V0IGNoaWxkcmVuIG9mIHZs YTFfYWxsb2NhdGVkIgorKyAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9hbGxvY2F0 ZWQiCisgCisgCisgc2V0IGJwX2xpbmVubyBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMS1maWxs ZWQiXQorQEAgLTE0OCw3ICsxNTIsNyBAQCBnZGJfZXhwZWN0IHsKKyAJICAgICI1ODNcXF5kb25l LHZhbHVlPVwiXFxcWzBcXFxdXCIiIFwKKyAJICAgICJldmFsIHZhcmlhYmxlIHB2bGEyX25vdF9h c3NvY2lhdGVkIgorIAltaV9saXN0X2FycmF5X3Zhcm9ial9jaGlsZHJlbl93aXRoX2luZGV4ICJw dmxhMl9ub3RfYXNzb2NpYXRlZCIgIjAiICIxIiBcCistCSAgICAicmVhbFxcXChraW5kPTRcXFwp IiAiZ2V0IGNoaWxkcmVuIG9mIHB2bGEyX25vdF9hc3NvY2lhdGVkIgorKwkgICAgIiRyZWFsIiAi Z2V0IGNoaWxkcmVuIG9mIHB2bGEyX25vdF9hc3NvY2lhdGVkIgorICAgICB9CisgICAgIC1yZSAi NTgwXFxeZXJyb3IsbXNnPVwidmFsdWUgY29udGVudHMgdG9vIGxhcmdlIFxcKFxbMC05XF0rIGJ5 dGVzXFwpLioke21pX2dkYl9wcm9tcHR9JCIgeworIAkjIFVuZGVmaW5lZCBiZWhhdmlvdXIgaW4g Z2ZvcnRyYW4uCitAQCAtMTczLDkgKzE3Nyw5IEBAIG1pX2dkYl90ZXN0ICI1OTAtZGF0YS1ldmFs dWF0ZS1leHByZXNzaW9uIHB2bGEyIiBcCisgICAiZXZhbHVhdGUgYXNzb2NpYXRlZCB2bGEiCisg CisgbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHB2bGEyX2Fzc29jaWF0ZWQgcHZsYTIgXAorLSAg InJlYWxcXFwoa2luZD00XFxcKSBcXFwoNSwyXFxcKSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSBw dmxhMl9hc3NvY2lhdGVkIgorKyAgIiRyZWFsIFxcXCg1LDJcXFwpIiAiY3JlYXRlIGxvY2FsIHZh cmlhYmxlIHB2bGEyX2Fzc29jaWF0ZWQiCisgbWlfZ2RiX3Rlc3QgIjU5MS12YXItaW5mby10eXBl IHB2bGEyX2Fzc29jaWF0ZWQiIFwKKy0gICI1OTFcXF5kb25lLHR5cGU9XCJyZWFsXFxcKGtpbmQ9 NFxcXCkgXFxcKDUsMlxcXClcIiIgXAorKyAgIjU5MVxcXmRvbmUsdHlwZT1cIiRyZWFsIFxcXCg1 LDJcXFwpXCIiIFwKKyAgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKKyBt aV9nZGJfdGVzdCAiNTkyLXZhci1zaG93LWZvcm1hdCBwdmxhMl9hc3NvY2lhdGVkIiBcCisgICAi NTkyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKKy0tIAorMi43LjQKKwoKZGlmZiAtLWdp dCBhL2dkYi12bGEtaW50ZWwtMm9mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtMm9mNy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWExNzdhCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBhdGNoCkBAIC0wLDAgKzEsNzUgQEAKK0Zyb20gYTg3 OWIyNTAxZTYxZWUzZDNlZmFkYmRiNmIzMzIxMmI1N2QzYTJlMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4K K0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAy LzddIEZvcnRyYW46IFJlc29sdmUgZHluYW1pYyBwcm9wZXJ0aWVzIG9mIHBvaW50ZXIgdHlwZXMu CisKK0luIEZvcnRyYW4gYSBwb2ludGVyIG1heSBoYXZlIGEgZHluYW1pYyBhc3NvY2lhdGVkIHBy b3BlcnR5LgorCisyMDE2LTA3LTA4ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxA aW50ZWwuY29tPgorCitnZGIvQ2hhbmdlbG9nOgorCSogZ2RidHlwZXMuYyAocmVzb2x2ZV9keW5h bWljX3R5cGVzX2ludGVybmFsKTogUmVzb2x2ZSBwb2ludGVyIHR5cGVzLgorCSAgKHJlc29sdmVf ZHluYW1pY19wb2ludGVyKTogTmV3LgorCitDaGFuZ2UtSWQ6IEllNGI5ZDYzOTdjZmEwODllZTJl MGRiMDJiZWIxODQxNWE3NTFjMWMwCistLS0KKyBnZGIvZ2RidHlwZXMuYyB8IDI5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5 cGVzLmMKK2luZGV4IGVjNWMxN2EuLmI1M2U2NDkgMTAwNjQ0CistLS0gYS9nZGIvZ2RidHlwZXMu YworKysrIGIvZ2RiL2dkYnR5cGVzLmMKK0BAIC0xODA2LDcgKzE4MDYsOCBAQCBpc19keW5hbWlj X3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgdG9wX2xldmVsKQorICAgdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOworIAorICAgLyogV2Ugb25seSB3YW50IHRvIHJlY29n bml6ZSByZWZlcmVuY2VzIGF0IHRoZSBvdXRlcm1vc3QgbGV2ZWwuICAqLworLSAgaWYgKHRvcF9s ZXZlbCAmJiBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYpCisrICBpZiAodG9wX2xl dmVsICYmCisrICAgICAgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JFRiB8fCBUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9QVFIpKQorICAgICB0eXBlID0gY2hlY2tfdHlwZWRl ZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOworIAorICAgLyogVHlwZXMgdGhhdCBoYXZlIGEg ZHluYW1pYyBUWVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKK0BAIC0yMTA1LDYgKzIx MDYsMjggQEAgcmVzb2x2ZV9keW5hbWljX3N0cnVjdCAoc3RydWN0IHR5cGUgKnR5cGUsCisgICBy ZXR1cm4gcmVzb2x2ZWRfdHlwZTsKKyB9CisgCisrLyogV29ya2VyIGZvciBwb2ludGVyIHR5cGVz LiAgKi8KKysKKytzdGF0aWMgc3RydWN0IHR5cGUgKgorK3Jlc29sdmVfZHluYW1pY19wb2ludGVy IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKysJCQkgc3RydWN0IHByb3BlcnR5X2FkZHJfaW5mbyAqYWRk cl9zdGFjaykKKyt7CisrICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOworKyAgQ09SRV9BRERS IHZhbHVlOworKworKyAgdHlwZSA9IGNvcHlfdHlwZSAodHlwZSk7CisrCisrICAvKiBSZXNvbHZl IGFzc29jaWF0ZWQgcHJvcGVydHkuICAqLworKyAgcHJvcCA9IFRZUEVfQVNTT0NJQVRFRF9QUk9Q ICh0eXBlKTsKKysgIGlmIChwcm9wICE9IE5VTEwgJiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorKyAgICB7CisrICAgICAgVFlQRV9E WU5fUFJPUF9BRERSIChwcm9wKSA9IHZhbHVlOworKyAgICAgIFRZUEVfRFlOX1BST1BfS0lORCAo cHJvcCkgPSBQUk9QX0NPTlNUOworKyAgICB9CisrCisrICByZXR1cm4gdHlwZTsKKyt9CisrCisg LyogV29ya2VyIGZvciByZXNvbHZlZF9keW5hbWljX3R5cGUuICAqLworIAorIHN0YXRpYyBzdHJ1 Y3QgdHlwZSAqCitAQCAtMjE1Myw2ICsyMTc2LDEwIEBAIHJlc29sdmVfZHluYW1pY190eXBlX2lu dGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAJICAgIGJyZWFrOworIAkgIH0KKyAKKysgICAg ICAgIGNhc2UgVFlQRV9DT0RFX1BUUjoKKysgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHlu YW1pY19wb2ludGVyICh0eXBlLCBhZGRyX3N0YWNrKTsKKysgCSAgYnJlYWs7CisrCisgCWNhc2Ug VFlQRV9DT0RFX0FSUkFZOgorIAkgIHJlc29sdmVkX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJy YXkgKHR5cGUsIGFkZHJfc3RhY2spOworIAkgIGJyZWFrOworLS0gCisyLjcuNAorCgpkaWZmIC0t Z2l0IGEvZ2RiLXZsYS1pbnRlbC0zb2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0zb2Y3LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwOTU0MDQKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItdmxhLWludGVsLTNvZjcucGF0Y2gKQEAgLTAsMCArMSwxMTMgQEAKK0Zyb20g ZDJmZDVmZWEyYzA2MDUyYzUzZDk5YmZhMjVmZGFlZDljZjVkZDIxNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNv bT4KK0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SCAzLzddIFR5cGVwcmludDogUmVzb2x2ZSBhbnkgZHluYW1pYyB0YXJnZXQgdHlwZSBvZiBhIHBv aW50ZXIuCisKK0JlZm9yZSBjb250aW51aW5nIHdpdGggbGFuZ3VhZ2Ugc3BlY2lmaWMgdHlwZSBw cmludGluZword2UgaGF2ZSB0byByZXNvbHZlIHRoZSB0YXJnZXQgdHlwZSBvZiBhIHBvaW50ZXIK K2FzIHdlIG1pZ2h0IHdhbm5hIHByaW50IG1vcmUgZGV0YWlscyBvZiB0aGUgdGFyZ2V0CitsaWtl IHRoZSBkaW1lbnNpb24gb2YgYW4gYXJyYXkuIFdlIGhhdmUgdG8gcmVzb2x2ZSBpdCBoZXJlCith cyB3ZSBkb24ndCBoYXZlIGFueSBhZGRyZXNzIGluZm9ybWF0aW9uIGxhdGVyIG9uLgorCisyMDE2 LTA3LTA4ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorCitn ZGIvQ2hhbmdlbG9nOgorCSogdHlwZXByaW50LmMgKHdoYXRpc19leHApOiBSZXNvbHZlIGR5bmFt aWMgdGFyZ2V0IHR5cGUKKwkgIG9mIHBvaW50ZXJzLgorCitnZGIvVGVzdHN1aXRlL0NoYW5nZWxv ZzoKKwkqIGdkYi5jcC92bGEtY3h4LmNjOiBBZGRlZCBwb2ludGVyIHRvIGR5bmFtaWMgdHlwZS4K KwkqIGdkYi5jcC92bGEtY3h4LmV4cDogVGVzdCBwb2ludGVyIHRvIGR5bmFtaWMgdHlwZS4KKwor Q2hhbmdlLUlkOiBJZGZmMGQ2ZGQwZWFiMzEyNWI0NWQ0NzBhMTJiNWU2NmIzOTJlNDJjMworLS0t CisgZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYyAgfCAgOSArKysrKysrKysKKyBnZGIv dGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cCB8ICA1ICsrKysrCisgZ2RiL3R5cGVwcmludC5j ICAgICAgICAgICAgICAgICAgfCAxOSArKysrKysrKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFu Z2VkLCAzMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5j cC92bGEtY3h4LmNjIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworaW5kZXggYTFm ZDUxMC4uNWY4ZjhhYiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHgu Y2MKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MKK0BAIC0xNSw2ICsxNSwx MCBAQAorICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworIAorK2V4dGVybiAiQyIg eworKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyt9CisrCisgc3RydWN0IGNvbnRhaW5lcjsKKyAKKyBz dHJ1Y3QgZWxlbWVudAorQEAgLTQwLDExICs0NCwxNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCisgICB0eXBlZGVmIHR5cGVvZiAodmxhKSAmdmxhcmVmdHlwZWRlZjsKKyAgIHZs YXJlZnR5cGVkZWYgdmxhcmVmMiAodmxhKTsKKyAgIGNvbnRhaW5lciBjOworKyAgdHlwZW9mICh2 bGEpICpwdHIgPSBOVUxMOworKworKyAgLy8gQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorKyAg cHRyID0gJnZsYTsKKyAKKyAgIGZvciAoaW50IGkgPSAwOyBpIDwgejsgKytpKQorICAgICB2bGFb aV0gPSA1ICsgMiAqIGk7CisgCisgICAvLyB2bGFzX2ZpbGxlZAorICAgdmxhWzBdID0gMiAqIHZs YVswXTsKKysKKyAgIHJldHVybiB2bGFbMl07CisgfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL3ZsYS1jeHguZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAK K2luZGV4IGY2MjI0ZGMuLmJhYmRmYjcgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5j cC92bGEtY3h4LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKK0BA IC0yMyw2ICsyMywxMCBAQCBpZiAhW3J1bnRvX21haW5dIHsKKyAgICAgcmV0dXJuIC0xCisgfQor IAorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgcG9pbnRlciBh c3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHBvaW50ZXIg YXNzaWdubWVudCIKKytnZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFt2YXJp YWJsZSBsZW5ndGhcXFxdIiAicHR5cGUgcHRyLCBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50Igor KworIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGFzX2ZpbGxlZCJdCisg Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYXNfZmlsbGVkIgorIAorQEAgLTMzLDMgKzM3 LDQgQEAgZ2RiX3Rlc3QgInByaW50IHZsYXJlZiIgIiA9IFxcKGludCBcXCgmXFwpXFxcWzNcXFxd XFwpIEAkaGV4OiBcXHs1LCA3LCA5XFx9IgorICMgYnVnIGJlaW5nIHRlc3RlZCwgaXQncyBiZXR0 ZXIgbm90IHRvIGRlcGVuZCBvbiB0aGUgZXhhY3Qgc3BlbGxpbmcuCisgZ2RiX3Rlc3QgInByaW50 IHZsYXJlZjIiICIgPSBcXCguKlxcKSBAJGhleDogXFx7NSwgNywgOVxcfSIKKyBnZGJfdGVzdCAi cHJpbnQgYyIgIiA9IFxce2UgPSBcXHtjID0gQCRoZXhcXH1cXH0iCisrZ2RiX3Rlc3QgInB0eXBl IHB0ciIgImludCBcXChcXCpcXClcXFxbM1xcXF0iCitkaWZmIC0tZ2l0IGEvZ2RiL3R5cGVwcmlu dC5jIGIvZ2RiL3R5cGVwcmludC5jCitpbmRleCBlNzc1MTNlLi5lM2Q4NGM3IDEwMDY0NAorLS0t IGEvZ2RiL3R5cGVwcmludC5jCisrKysgYi9nZGIvdHlwZXByaW50LmMKK0BAIC00ODUsNiArNDg1 LDI1IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCisgICAgICAgcHJpbnRmX2Zp bHRlcmVkICgiICovXG4iKTsgICAgCisgICAgIH0KKyAKKysgIC8qIFJlc29sdmUgYW55IGR5bmFt aWMgdGFyZ2V0IHR5cGUsIGFzIHdlIG1pZ2h0IHByaW50CisrICAgICBhZGRpdGlvbmFsIGluZm9y bWF0aW9uIGFib3V0IHRoZSB0YXJnZXQuCisrICAgICBGb3IgZXhhbXBsZSwgaW4gRm9ydHJhbiBh bmQgQyB3ZSBhcmUgcHJpbnRpbmcgdGhlIGRpbWVuc2lvbiBvZiB0aGUKKysgICAgIGR5bmFtaWMg YXJyYXkgdGhlIHBvaW50ZXIgaXMgcG9pbnRpbmcgdG8uICAqLworKyAgaWYgKFRZUEVfQ09ERSAo dHlwZSkgPT0gVFlQRV9DT0RFX1BUUgorKyAgICAgICYmIGlzX2R5bmFtaWNfdHlwZSAodHlwZSkg PT0gMSkKKysgICAgeworKyAgICAgIENPUkVfQUREUiBhZGRyOworKyAgICAgIGlmIChOVUxMICE9 IFRZUEVfREFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQRSh0eXBlKSkpCisrCWFkZHIgPSB2 YWx1ZV9hZGRyZXNzICh2YWwpOworKyAgICAgIGVsc2UKKysJYWRkciA9IHZhbHVlX2FzX2FkZHJl c3MgKHZhbCk7CisrCisrICAgICAgaWYgKGFkZHIgIT0gMAorKwkgICYmIHR5cGVfbm90X2Fzc29j aWF0ZWQgKHR5cGUpID09IDApCisrCVRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpID0gcmVzb2x2ZV9k eW5hbWljX3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLAorKwkJCQkJCQlOVUxMLCBhZGRy KTsKKysgICAgfQorKworICAgTEFfUFJJTlRfVFlQRSAodHlwZSwgIiIsIGdkYl9zdGRvdXQsIHNo b3csIDAsICZmbGFncyk7CisgICBwcmludGZfZmlsdGVyZWQgKCJcbiIpOworIAorLS0gCisyLjcu NAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC00b2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRl bC00b2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGNhMzUK LS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLTRvZjcucGF0Y2gKQEAgLTAsMCArMSw1 MDggQEAKK0Zyb20gZjYzNzgyZDI1ZWJkNTkzYzRjNDY2OWQ0YzM5NGEyNzA2ZjE1ZTY2MCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVj a2VsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSCA0LzddIEZvcnRyYW46IFR5cGVwcmludCwgZml4IGRhbmdsaW5nIHR5cGVz LgorCitTaG93IHRoZSB0eXBlIG9mIG5vdC1hbGxvY2F0ZWQgYW5kL29yIG5vdC1hc3NvY2lhdGVk IHR5cGVzCithcyB0aGlzIGlzIGtub3duLiAgRm9yIGFycmF5IHR5cGVzIGFuZCBwb2ludGVyIHRv IGFycmF5IHR5cGVzCit3ZSBhcmUgZ29pbmcgdG8gcHJpbnQgdGhlIG51bWJlciBvZiByYW5rcy4K KworMjAxNi0wNi0zMCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNv bT4KKworZ2RiL0NoYW5nZUxvZzoKKwkqIGYtdHlwZXByaW50LmMgKGZfcHJpbnRfdHlwZSk6IERv bid0IGJ5cGFzcyBkYW5nbGluZyB0eXBlcy4KKwkgIChmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZm aXgpOiBBZGQgcHJpbnRfcmFuayBwYXJhbWV0ZXIuCisJICAoZl90eXBlX3ByaW50X3ZhcnNwZWNf c3VmZml4KTogUHJpbnQgcmFua3Mgb2YgYXJyYXkgdHlwZXMKKwkgIGluIGNhc2UgdGhleSBkYW5n bGluZy4KKwkgIChmX3R5cGVfcHJpbnRfYmFzZSk6IEFkZCBwcmludF9yYW5rIHBhcmFtZXRlci4K KworZ2RiL1Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisJKiBnZGIuZm9ydHJhbi9wb2ludGVycy5mOTA6 IE5ldy4KKwkqIGdkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwOiBOZXcuCisJKiBnZGIuZm9ydHJh bi92bGEtcHR5cGUuZXhwOiBBZGFwdCBleHBlY3RlZCByZXN1bHRzLgorCSogZ2RiLmZvcnRyYW4v dmxhLXR5cGUuZXhwOiBMaWtld2lzZS4KKwkqIGdkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHA6IExp a2V3aXNlLgorCSogZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cDogTGlrZXdpc2UuCisKK0NoYW5n ZS1JZDogSWI1NWYyOGI0MDkyY2Y4OGUzNDkxODQ0OWEyZWJiNmU1ZGFhZmU1MTIKKy0tLQorIGdk Yi9mLXR5cGVwcmludC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTUgKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5 MCAgIHwgIDgwICsrKysrKysrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ByaW50X3R5cGUuZXhwIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAgIHwgIDEyICsrLS0K KyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cCAgIHwgICA3ICsrLQorIGdk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cCAgfCAgIDQgKy0KKyBnZGIvdGVz dHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAgIHwgICA5ICstLQorIDcgZmlsZXMgY2hh bmdlZCwgMjQ4IGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEw MDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAorIGNyZWF0ZSBtb2Rl IDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCisKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNi0wNy0xNiAx MDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi10 eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU1OjU5Ljc2MzY2NzM1NSArMDIwMAorQEAgLTM3LDcg KzM3LDcgQEAKKyAjZW5kaWYKKyAKKyBzdGF0aWMgdm9pZCBmX3R5cGVfcHJpbnRfdmFyc3BlY19z dWZmaXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosIGludCwKKy0JCQkJCSBpbnQs IGludCwgaW50KTsKKysJCQkJCSBpbnQsIGludCwgaW50LCBpbnQpOworIAorIHZvaWQgZl90eXBl X3ByaW50X3ZhcnNwZWNfcHJlZml4IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqLAor IAkJCQkgIGludCwgaW50KTsKK0BAIC01NCwxOCArNTQsNiBAQAorICAgZW51bSB0eXBlX2NvZGUg Y29kZTsKKyAgIGludCBkZW1hbmdsZWRfYXJnczsKKyAKKy0gIGlmICh0eXBlX25vdF9hc3NvY2lh dGVkICh0eXBlKSkKKy0gICAgeworLSAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3Ry ZWFtKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0KKy0gIGlmICh0eXBlX25vdF9hbGxvY2F0 ZWQgKHR5cGUpKQorLSAgICB7CistICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVh bSk7CistICAgICAgcmV0dXJuOworLSAgICB9CistCisgICBmX3R5cGVfcHJpbnRfYmFzZSAodHlw ZSwgc3RyZWFtLCBzaG93LCBsZXZlbCk7CisgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKKyAg IGlmICgodmFyc3RyaW5nICE9IE5VTEwgJiYgKnZhcnN0cmluZyAhPSAnXDAnKQorQEAgLTg3LDcg Kzc1LDcgQEAKKyAgICAgICAgICBzbyBkb24ndCBwcmludCBhbiBhZGRpdGlvbmFsIHBhaXIgb2Yg KCkncy4gICovCisgCisgICAgICAgZGVtYW5nbGVkX2FyZ3MgPSB2YXJzdHJpbmdbc3RybGVuICh2 YXJzdHJpbmcpIC0gMV0gPT0gJyknOyAKKy0gICAgICBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZm aXggKHR5cGUsIHN0cmVhbSwgc2hvdywgMCwgZGVtYW5nbGVkX2FyZ3MsIDApOworKyAgICAgIGZf dHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAodHlwZSwgc3RyZWFtLCBzaG93LCAwLCBkZW1hbmds ZWRfYXJncywgMCwgMCk7CisgICAgfQorIH0KKyAKK0BAIC0xNTcsNyArMTQ1LDcgQEAKKyBzdGF0 aWMgdm9pZAorIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCQkJICAgICBpbnQgc2hvdywgaW50IHBhc3NlZF9h X3B0ciwgaW50IGRlbWFuZ2xlZF9hcmdzLAorLQkJCSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJz ZV9sZXZlbCkKKysJCQkgICAgIGludCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwsIGludCBwcmlu dF9yYW5rX29ubHkpCisgeworICAgaW50IHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKKyAKK0BA IC0xODEsMzQgKzE2OSw1MCBAQAorIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoIik7Cisg CisgICAgICAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKHR5cGUpKQorLSAgICAgICAgdmFsX3By aW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOworKwlwcmludF9yYW5rX29ubHkgPSAxOworICAg ICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAodHlwZSkpCistICAgICAgICB2YWxfcHJp bnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKKysJcHJpbnRfcmFua19vbmx5ID0gMTsKKysgICAg ICBlbHNlIGlmICgoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpCisrCQkmJiBQUk9QX0NPTlNU ICE9IFRZUEVfRFlOX1BST1BfS0lORCAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpKSkKKysJ ICAgICAgfHwgKFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpCisrCQkmJiBQUk9QX0NPTlNUICE9 IFRZUEVfRFlOX1BST1BfS0lORCAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkpKQorKwkgICAg ICB8fCAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQorKwkJICAmJiBQUk9QX0NPTlNUICE9IFRZ UEVfRFlOX1BST1BfS0lORCAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKSkpKQorKwkvKiBUaGlz IGNhc2UgZXhpc3Qgd2hlbiB3ZSBwdHlwZSBhIHR5cGVuYW1lIHdoaWNoIGhhcyB0aGUKKysJICAg ZHluYW1pYyBwcm9wZXJ0aWVzIGJ1dCBjYW5ub3QgYmUgcmVzb2x2ZWQgYXMgdGhlcmUgaXMKKysJ ICAgbm8gb2JqZWN0LiAgKi8KKysJcHJpbnRfcmFua19vbmx5ID0gMTsKKysKKysgICAgICBpZiAo VFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKQor KwlmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBz dHJlYW0sIDAsCisrCQkJCSAgICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJ CQkgICAgIHByaW50X3Jhbmtfb25seSk7CisrCisrICAgICAgaWYgKHByaW50X3Jhbmtfb25seSA9 PSAxKQorKwlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICI6Iik7CisgICAgICAgZWxzZQorLSAg ICAgICAgeworLSAgICAgICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorLSAgICAgICAgICAgIGZfdHlwZV9wcmludF92YXJzcGVj X3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xl dmVsKTsKKy0KKy0gICAgICAgICAgbG93ZXJfYm91bmQgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHR5 cGUpOworLSAgICAgICAgICBpZiAobG93ZXJfYm91bmQgIT0gMSkJLyogTm90IHRoZSBkZWZhdWx0 LiAgKi8KKy0gICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZDoiLCBsb3dl cl9ib3VuZCk7CistCistICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFu IGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UKKy0gICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2Fybmlu ZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KKy0KKy0gICAgICAgICAgaWYg KFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKKy0gICAgICAgICAg ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIqIik7CistICAgICAgICAgIGVsc2UKKy0gICAg ICAgICAgICB7CistICAgICAgICAgICAgICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3Vu ZCAodHlwZSk7CistICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZCIs IHVwcGVyX2JvdW5kKTsKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgIGlmIChUWVBFX0NP REUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSAhPSBUWVBFX0NPREVfQVJSQVkpCistICAgICAg ICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSwgc3RyZWFtLCAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOworLSAgICAgICAgfQorKwl7CisrCSAgbG93 ZXJfYm91bmQgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHR5cGUpOworKwkgIGlmIChsb3dlcl9ib3Vu ZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLworKwkgICAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQpOworKworKwkgIC8qIE1ha2Ugc3VyZSB0aGF0LCBp ZiB3ZSBoYXZlIGFuIGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UKKysJICAgICBwcmludCBvdXQgYSB3 YXJuaW5nIGFuZCBwcmludCB0aGUgdXBwZXJib3VuZCBhcyAnKicuICAqLworKworKwkgIGlmIChU WVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkpCisrCSAgICBmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIqIik7CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICB1cHBl cl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7CisrCSAgICAgIGZwcmludGZfZmls dGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOworKwkgICAgfQorKwl9CisrCisrICAg ICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9B UlJBWSkKKysJZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKSwgc3RyZWFtLCAwLAorKwkJCQkgICAgIDAsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZl bCwKKysJCQkJICAgICBwcmludF9yYW5rX29ubHkpOworKworICAgICAgIGlmIChhcnJheXByaW50 X3JlY3Vyc2VfbGV2ZWwgPT0gMSkKKyAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwor ICAgICAgIGVsc2UKK0BAIC0yMTksMTMgKzIyMywxNCBAQAorICAgICBjYXNlIFRZUEVfQ09ERV9Q VFI6CisgICAgIGNhc2UgVFlQRV9DT0RFX1JFRjoKKyAgICAgICBmX3R5cGVfcHJpbnRfdmFyc3Bl Y19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsIDEsIDAsCistCQkJ CSAgIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCk7CisrCQkJCSAgIGFycmF5cHJpbnRfcmVjdXJz ZV9sZXZlbCwgMCk7CisgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOworICAg ICAgIGJyZWFrOworIAorICAgICBjYXNlIFRZUEVfQ09ERV9GVU5DOgorICAgICAgIGZfdHlwZV9w cmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwK Ky0JCQkJICAgcGFzc2VkX2FfcHRyLCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOworKwkJ CQkgICBwYXNzZWRfYV9wdHIsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwKKysJCQkJICAg MCk7CisgICAgICAgaWYgKHBhc3NlZF9hX3B0cikKKyAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiKSIpOworIAorQEAgLTM3Niw3ICszODEsNyBAQAorIAkgICAgICBmcHV0c19maWx0ZXJlZCAo IiA6OiAiLCBzdHJlYW0pOworIAkgICAgICBmcHV0c19maWx0ZXJlZCAoVFlQRV9GSUVMRF9OQU1F ICh0eXBlLCBpbmRleCksIHN0cmVhbSk7CisgCSAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1 ZmZpeCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpbmRleCksCistCQkJCQkgICBzdHJlYW0sIHNo b3cgLSAxLCAwLCAwLCAwKTsKKysJCQkJCSAgIHN0cmVhbSwgc2hvdyAtIDEsIDAsIDAsIDAsIDAp OworIAkgICAgICBmcHV0c19maWx0ZXJlZCAoIlxuIiwgc3RyZWFtKTsKKyAJICAgIH0KKyAJICBm cHJpbnRmaV9maWx0ZXJlZCAobGV2ZWwsIHN0cmVhbSwgIkVuZCBUeXBlICIpOworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkw Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9wb2ludGVycy5mOTAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wNzk1MjU4NjAgKzAyMDAKK0BAIC0w LDAgKzEsODAgQEAKKyshIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysh IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyshCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3JhbSBwb2lu dGVycworKworKyAgdHlwZSA6OiB0d28KKysgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZs YTEgKDopCisrICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6KQorKyAgZW5k IHR5cGUgdHdvCisrCisrICBsb2dpY2FsLCB0YXJnZXQgOjogbG9ndgorKyAgY29tcGxleCwgdGFy Z2V0IDo6IGNvbXYKKysgIGNoYXJhY3RlciwgdGFyZ2V0IDo6IGNoYXJ2CisrICBjaGFyYWN0ZXIg KGxlbj0zKSwgdGFyZ2V0IDo6IGNoYXJhCisrICBpbnRlZ2VyLCB0YXJnZXQgOjogaW50dgorKyAg aW50ZWdlciwgdGFyZ2V0LCBkaW1lbnNpb24gKDEwLDIpIDo6IGludGEKKysgIHJlYWwsIHRhcmdl dCAgICA6OiByZWFsdgorKyAgdHlwZSh0d28pLCB0YXJnZXQgIDo6IHR3b3YKKysKKysgIGxvZ2lj YWwsIHBvaW50ZXIgOjogbG9ncAorKyAgY29tcGxleCwgcG9pbnRlciA6OiBjb21wCisrICBjaGFy YWN0ZXIsIHBvaW50ZXI6OiBjaGFycAorKyAgY2hhcmFjdGVyIChsZW49MyksIHBvaW50ZXI6OiBj aGFyYXAKKysgIGludGVnZXIsIHBvaW50ZXIgOjogaW50cAorKyAgaW50ZWdlciwgcG9pbnRlciwg ZGltZW5zaW9uICg6LDopIDo6IGludGFwCisrICByZWFsLCBwb2ludGVyIDo6IHJlYWxwCisrICB0 eXBlKHR3byksIHBvaW50ZXIgOjogdHdvcAorKworKyAgbnVsbGlmeSAobG9ncCkKKysgIG51bGxp ZnkgKGNvbXApCisrICBudWxsaWZ5IChjaGFycCkKKysgIG51bGxpZnkgKGNoYXJhcCkKKysgIG51 bGxpZnkgKGludHApCisrICBudWxsaWZ5IChpbnRhcCkKKysgIG51bGxpZnkgKHJlYWxwKQorKyAg bnVsbGlmeSAodHdvcCkKKysKKysgIGxvZ3AgPT4gbG9ndiAgICAhIEJlZm9yZSBwb2ludGVyIGFz c2lnbm1lbnQKKysgIGNvbXAgPT4gY29tdgorKyAgY2hhcnAgPT4gY2hhcnYKKysgIGNoYXJhcCA9 PiBjaGFyYQorKyAgaW50cCA9PiBpbnR2CisrICBpbnRhcCA9PiBpbnRhCisrICByZWFscCA9PiBy ZWFsdgorKyAgdHdvcCA9PiB0d292CisrCisrICBsb2d2ID0gYXNzb2NpYXRlZChsb2dwKSAgICAg ISBCZWZvcmUgdmFsdWUgYXNzaWdubWVudAorKyAgY29tdiA9IGNtcGx4KDEsMikKKysgIGNoYXJ2 ID0gImEiCisrICBjaGFyYSA9ICJhYmMiCisrICBpbnR2ID0gMTAKKysgIGludGEoOiw6KSA9IDEK KysgIGludGEoMywxKSA9IDMKKysgIHJlYWx2ID0gMy4xNAorKworKyAgYWxsb2NhdGUgKHR3b3Yl aXZsYTEoMykpCisrICBhbGxvY2F0ZSAodHdvdiVpdmxhMigyLDIpKQorKyAgdHdvdiVpdmxhMSgx KSA9IDExCisrICB0d292JWl2bGExKDIpID0gMTIKKysgIHR3b3YlaXZsYTEoMykgPSAxMworKyAg dHdvdiVpdmxhMigxLDEpID0gMjExCisrICB0d292JWl2bGEyKDIsMSkgPSAyMjEKKysgIHR3b3Yl aXZsYTIoMSwyKSA9IDIxMgorKyAgdHdvdiVpdmxhMigyLDIpID0gMjIyCisrCisrICBpbnR2ID0g aW50diArIDEgISBBZnRlciB2YWx1ZSBhc3NpZ25tZW50CisrCisrZW5kIHByb2dyYW0gcG9pbnRl cnMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ByaW50X3R5cGUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9wcmludF90eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUy NTg2MCArMDIwMAorQEAgLTAsMCArMSwxMDAgQEAKKysjIENvcHlyaWdodCAyMDE2IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysj CisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KysKKytzdGFuZGFyZF90ZXN0ZmlsZSAicG9pbnRlcnMuZjkwIgorK2xvYWRfbGliIGZvcnRyYW4u ZXhwCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0 ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0 dXJuIC0xCisrfQorKworKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAiY291 bGQgbm90IHJ1biB0byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBEZXBlbmRpbmcg b24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVk IGRpZmZlcmVudGx5LgorK3NldCBsb2dpY2FsIFtmb3J0cmFuX2xvZ2ljYWw0XQorK3NldCByZWFs IFtmb3J0cmFuX3JlYWw0XQorK3NldCBpbnQgW2ZvcnRyYW5faW50NF0KKytzZXQgY29tcGxleCBb Zm9ydHJhbl9jb21wbGV4NF0KKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0eXBlIGxvZ3AiICJ0 eXBlID0gUFRSIFRPIC0+IFxcKCAkbG9naWNhbCBcXCkiICJwdHlwZSBsb2dwLCBub3QgYXNzb2Np YXRlZCIKKytnZGJfdGVzdCAicHR5cGUgY29tcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRjb21w bGV4IFxcKSIgInB0eXBlIGNvbXAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBj aGFycCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpIiAicHR5cGUgY2hh cnAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFyYXAiICJ0eXBlID0gUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIgInB0eXBlIGNoYXJhcCwgbm90IGFzc29jaWF0 ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIGludHAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxc KSIgInB0eXBlIGludHAsIG5vdCBhc3NvY2lhdGVkIgorK3NldCB0ZXN0ICJwdHlwZSBpbnRhcCwg bm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIGludGFwIiAkdGVzdCB7 CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGludCBcXCg6LDpcXClcXClcclxuJGdk Yl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlw ZSA9ICRpbnQgXFwoOiw6XFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgICAgIHBhc3MgJHRl c3QKKysgICAgfQorK30KKytnZGJfdGVzdCAicHR5cGUgcmVhbHAiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCAkcmVhbCBcXCkiICJwdHlwZSByZWFscCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3Qg InB0eXBlIHR3b3AiIFwKKysgICAgW211bHRpX2xpbmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIFR5 cGUgdHdvIiBcCisrICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMVxcKDpcXCkiIFwK KysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisrICAgICAg ICAgICAgICAgICJFbmQgVHlwZSB0d28gXFwpIl0gXAorKyAgICAicHR5cGUgdHdvcCwgbm90IGFz c29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHR3byIgXAorKyAgICBbbXVsdGlfbGluZSAidHlw ZSA9IFR5cGUgdHdvIiBcCisrICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMVxcKDpc XCkiIFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisr ICAgICAgICAgICAgICAgICJFbmQgVHlwZSB0d28iXQorKworKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJw dHlwZSB0d29wIiBcCisrICAgIFttdWx0aV9saW5lICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBUeXBl IHR3byIgXAorKyAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYTFcXCg6XFwpIiBcCisr ICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMlxcKDosOlxcKSIgXAorKyAgICAgICAg ICAgICAgICAiRW5kIFR5cGUgdHdvIFxcKSJdCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJBZnRlciB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwdHlwZSBs b2d2IiAidHlwZSA9ICRsb2dpY2FsIgorK2dkYl90ZXN0ICJwdHlwZSBjb212IiAidHlwZSA9ICRj b21wbGV4IgorK2dkYl90ZXN0ICJwdHlwZSBjaGFydiIgInR5cGUgPSBjaGFyYWN0ZXJcXCoxIgor K2dkYl90ZXN0ICJwdHlwZSBjaGFyYSIgInR5cGUgPSBjaGFyYWN0ZXJcXCozIgorK2dkYl90ZXN0 ICJwdHlwZSBpbnR2IiAidHlwZSA9ICRpbnQiCisrZ2RiX3Rlc3QgInB0eXBlIGludGEiICJ0eXBl ID0gJGludCBcXCgxMCwyXFwpIgorK2dkYl90ZXN0ICJwdHlwZSByZWFsdiIgInR5cGUgPSAkcmVh bCIKKysKKysKKytnZGJfdGVzdCAicHR5cGUgbG9ncCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRs b2dpY2FsIFxcKSIKKytnZGJfdGVzdCAicHR5cGUgY29tcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwo ICRjb21wbGV4IFxcKSIKKytnZGJfdGVzdCAicHR5cGUgY2hhcnAiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCoxIFxcKSIKKytnZGJfdGVzdCAicHR5cGUgY2hhcmFwIiAidHlwZSA9 IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXCkiCisrZ2RiX3Rlc3QgInB0eXBlIGludHAi ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxcKSIKKytzZXQgdGVzdCAicHR5cGUgaW50YXAi CisrZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgeworKyAgICAtcmUgInR5cGUgPSAkaW50 IFxcKDEwLDJcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAg ICB9CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGludCBcXCgxMCwyXFwpXFwpXHJc biRnZGJfcHJvbXB0ICQiIHsKKysgICAgICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytnZGJf dGVzdCAicHR5cGUgcmVhbHAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkcmVhbCBcXCkiCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5 cGUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkw OTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wNzk1MjU4NjAgKzAyMDAK K0BAIC0zMiw5ICszMiw5IEBACisgIyBDaGVjayB0aGUgcHR5cGUgb2YgdmFyaW91cyBWTEEgc3Rh dGVzIGFuZCBwb2ludGVyIHRvIFZMQSdzLgorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2bGExLWluaXQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWlu aXQiCistZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5 cGUgdmxhMSBub3QgaW5pdGlhbGl6ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0g PG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMiBub3QgaW5pdGlhbGl6ZWQiCistZ2RiX3Rlc3Qg InB0eXBlIHB2bGEiICJ0eXBlID0gPG5vdCBhc3NvY2lhdGVkPiIgInB0eXBlIHB2bGEgbm90IGlu aXRpYWxpemVkIgorK2dkYl90ZXN0ICJwdHlwZSB2bGExIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6 XFwpIiAicHR5cGUgdmxhMSBub3QgaW5pdGlhbGl6ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTIi ICJ0eXBlID0gJHJlYWwgXFwoOiw6LDpcXCkiICJwdHlwZSB2bGEyIG5vdCBpbml0aWFsaXplZCIK KytnZGJfdGVzdCAicHR5cGUgcHZsYSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBl IHB2bGEgbm90IGluaXRpYWxpemVkIgorIGdkYl90ZXN0ICJwdHlwZSB2bGExKDMsIDYsIDkpIiAi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXFwpIiBcCisg ICAicHR5cGUgdmxhMSgzLCA2LCA5KSBub3QgaW5pdGlhbGl6ZWQiCisgZ2RiX3Rlc3QgInB0eXBl IHZsYTIoNSwgNDUsIDIwKSIgXAorQEAgLTgxLDIwICs4MSwyMCBAQAorIAorIGdkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLWRlYXNzb2NpYXRlZCJdCisgZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVhc3NvY2lhdGVkIgorLWdkYl90ZXN0ICJwdHlwZSBw dmxhIiAidHlwZSA9IDxub3QgYXNzb2NpYXRlZD4iICJwdHlwZSBwdmxhIGRlYXNzb2NpYXRlZCIK KytnZGJfdGVzdCAicHR5cGUgcHZsYSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBl IHB2bGEgZGVhc3NvY2lhdGVkIgorIGdkYl90ZXN0ICJwdHlwZSBwdmxhKDUsIDQ1LCAyMCkiIFwK KyAgICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFzc29jaWF0ZWRcXFwp IiBcCisgICAicHR5cGUgcHZsYSg1LCA0NSwgMjApIG5vdCBhc3NvY2lhdGVkIgorIAorIGdkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWRlYWxsb2NhdGVkIl0KKyBnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMS1kZWFsbG9jYXRlZCIKKy1nZGJfdGVzdCAicHR5 cGUgdmxhMSIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBhbGxvY2F0 ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBlID0gJHJlYWwgXFwoOiw6LDpcXCkiICJw dHlwZSB2bGExIG5vdCBhbGxvY2F0ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHZsYTEoMywgNiwgOSki ICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwK KyAgICJwdHlwZSB2bGExKDMsIDYsIDkpIG5vdCBhbGxvY2F0ZWQiCisgCisgZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTItZGVhbGxvY2F0ZWQiXQorIGdkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJ2bGEyLWRlYWxsb2NhdGVkIgorLWdkYl90ZXN0ICJwdHlwZSB2bGEy IiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBlIHZsYTIgbm90IGFsbG9jYXRlZCIKKytn ZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHZs YTIgbm90IGFsbG9jYXRlZCIKKyBnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCisg ICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXFwpIiBc CisgICAicHR5cGUgdmxhMig1LCA0NSwgMjApIG5vdCBhbGxvY2F0ZWQiCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXR5cGUuZXhwCTIwMTYtMDctMTYgMTA6NTQ6NDguNzQ5MDk5MTUwICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt dHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0xMzIsNyAr MTMyLDEwIEBACisgICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIG9uZSIgXQorIAorICMg Q2hlY2sgYWxsb2NhdGlvbiBzdGF0dXMgb2YgZHluYW1pYyBhcnJheSBhbmQgaXQncyBkeW5hbWlj IG1lbWJlcnMKKy1nZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFyciIgInR5cGUgPSA8bm90IGFsbG9j YXRlZD4iCisrZ2RiX3Rlc3QgInB0eXBlIGZpdmVkeW5hcnIiIFwKKysgICAgICAgICBbbXVsdGlf bGluZSAidHlwZSA9IFR5cGUgZml2ZSIgXAorKyAgICAgICAgICAgICAgICAgICAgICIgICAgVHlw ZSBvbmUgOjogdG9uZSIgXAorKyAgICAgICAgICAgICAgICAgICAgICJFbmQgVHlwZSBmaXZlIFxc KDpcXCkiIF0KKyBnZGJfdGVzdCAibmV4dCIgIiIKKyBnZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFy cigyKSIgXAorICAgICAgICAgIFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSBmaXZlIiBcCitAQCAt MTQxLDcgKzE0NCw3IEBACisgICAgICAgICAgInB0eXBlIGZpdmVkeW5hcnIoMiksIHRvbmUgaXMg bm90IGFsbG9jYXRlZCIKKyBnZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFycigyKSV0b25lIiBcCisg ICAgICAgICAgW211bHRpX2xpbmUgInR5cGUgPSBUeXBlIG9uZSIgXAorLSAgICAgICAgICAgICAg ICAgICAgICIgICAgJGludCA6OiBpdmxhXFwoPG5vdCBhbGxvY2F0ZWQ+XFwpIiBcCisrICAgICAg ICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGFcXCg6LDosOlxcKSIgXAorICAgICAgICAg ICAgICAgICAgICAgICJFbmQgVHlwZSBvbmUiIF0gXAorICAgICAgICAgICJwdHlwZSBmaXZlZHlu YXJyKDIpJXRvbmUsIG5vdCBhbGxvY2F0ZWQiCisgCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJ MjAxNi0wNy0xNiAxMDo1NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0zNCw3ICszNCw3IEBACisg Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKyBnZGJfdGVzdCAicHJpbnQg dmxhMSIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50IG5vbi1hbGxvY2F0ZWQgdmxhMSIKKyBn ZGJfdGVzdCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwg XFxcKDxub3QgYWxsb2NhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBU TyAtPiBcXFwoICRyZWFsIFxcXCg6LDosOlxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQg bm9uLWFsbG9jYXRlZCAmdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgxLDEsMSkiICJubyBz dWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJw cmludCBtZW1iZXIgaW4gbm9uLWFsbG9jYXRlZCB2bGExICgxKSIKK0BAIC03NSw3ICs3NSw3IEBA CisgIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiB1bmRlZmluZWQgcG9pbnRlciB0byBWTEEgKGRh bmdsaW5nKQorIGdkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gPG5vdCBhc3NvY2lhdGVkPiIgInBy aW50IHVuZGVmaW5lZCBwdmxhIgorIGdkYl90ZXN0ICJwcmludCAmcHZsYSIgXAorLSAgIiA9IFxc XChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhc3NvY2lhdGVkPlxcXClcXFwpXFxcKSAk aGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCg6LDosOlxcXClcXFwp XFxcKSAkaGV4IiBcCisgICAicHJpbnQgbm9uLWFzc29jaWF0ZWQgJnB2bGEiCisgZ2RiX3Rlc3Qg InByaW50IHB2bGEoMSwgMywgOCkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Ig bm90IGFzc29jaWF0ZWRcXFwpIiBcCisgICAicHJpbnQgdW5kZWZpbmVkIHB2bGEoMSwzLDgpIgor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1m b3J0cmFuLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTYtMDctMTYgMTA6NTQ6NDgu NzQ5MDk5MTUwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTYtMDctMTYgMTA6NTU6NDIuMDgwNTI1ODY4ICsw MjAwCitAQCAtMTcsNiArMTcsNyBAQAorICMgQXJyYXkgKFZMQSkuCisgCisgbG9hZF9saWIgbWkt c3VwcG9ydC5leHAKKytsb2FkX2xpYiBmb3J0cmFuLmV4cAorIHNldCBNSUZMQUdTICItaT1taSIK KyBsb2FkX2xpYiAiZm9ydHJhbi5leHAiCisgCitAQCAtNTAsMTAgKzUxLDEwIEBACisgbWlfZ2Ri X3Rlc3QgIjUwMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAorICAgIjUwMFxcXmRv bmUsdmFsdWU9XCI8bm90IGFsbG9jYXRlZD5cIiIgImV2YWx1YXRlIG5vdCBhbGxvY2F0ZWQgdmxh IgorIAorLW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX25vdF9hbGxvY2F0ZWQgdmxhMSAi PG5vdCBhbGxvY2F0ZWQ+IiBcCisrbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfbm90X2Fs bG9jYXRlZCB2bGExICIkcmVhbCBcXCg6XFwpIiBcCisgICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxl IHZsYTFfbm90X2FsbG9jYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTAxLXZhci1pbmZvLXR5cGUgdmxh MV9ub3RfYWxsb2NhdGVkIiBcCistICAiNTAxXFxeZG9uZSx0eXBlPVwiPG5vdCBhbGxvY2F0ZWQ+ XCIiIFwKKysgICI1MDFcXF5kb25lLHR5cGU9XCIkcmVhbCBcXCg6XFwpXCIiIFwKKyAgICJpbmZv IHR5cGUgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1pX2dkYl90ZXN0ICI1MDItdmFy LXNob3ctZm9ybWF0IHZsYTFfbm90X2FsbG9jYXRlZCIgXAorICAgIjUwMlxcXmRvbmUsZm9ybWF0 PVwibmF0dXJhbFwiIiBcCitAQCAtMTQwLDEwICsxNDEsMTAgQEAKKyAgICAgLXJlICI1ODBcXF5k b25lLHZhbHVlPVwiPG5vdCBhc3NvY2lhdGVkPlwiLioke21pX2dkYl9wcm9tcHR9JCIgeworIAlw YXNzICR0ZXN0CisgCistCW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9ub3RfYXNzb2Np YXRlZCBwdmxhMiAiPG5vdCBhc3NvY2lhdGVkPiIgXAorKwltaV9jcmVhdGVfdmFyb2JqX2NoZWNr ZWQgcHZsYTJfbm90X2Fzc29jaWF0ZWQgcHZsYTIgIiRyZWFsIFxcKDosOlxcKSIgXAorIAkgICAg ImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIKKyAJbWlfZ2RiX3Rl c3QgIjU4MS12YXItaW5mby10eXBlIHB2bGEyX25vdF9hc3NvY2lhdGVkIiBcCistCSAgICAiNTgx XFxeZG9uZSx0eXBlPVwiPG5vdCBhc3NvY2lhdGVkPlwiIiBcCisrCSAgICAiNTgxXFxeZG9uZSx0 eXBlPVwiJHJlYWwgXFwoOiw6XFwpXCIiIFwKKyAJICAgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZs YTJfbm90X2Fzc29jaWF0ZWQiCisgCW1pX2dkYl90ZXN0ICI1ODItdmFyLXNob3ctZm9ybWF0IHB2 bGEyX25vdF9hc3NvY2lhdGVkIiBcCisgCSAgICAiNTgyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFs XCIiIFwKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTVvZjcucGF0Y2ggYi9nZGItdmxhLWlu dGVsLTVvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E0OWIz YwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRjaApAQCAtMCwwICsx LDM0OSBAQAorRnJvbSBiNmU2NjhjY2QzNTZlYTNlNzVkMzBmMjAzMTQzMzRiMTIwM2MyMmRlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5o ZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAor U3ViamVjdDogW1BBVENIIDUvN10gUmVzb2x2ZSBkeW5hbWljIHRhcmdldCB0eXBlcyBvZiBwb2lu dGVycy4KKworV2hlbiBkZXJlZmVyZW5jaW5nIHBvaW50ZXJzIHRvIGR5bmFtaWMgdGFyZ2V0IHR5 cGVzLAorcmVzb2x2ZSB0aGUgdGFyZ2V0IHR5cGUuCisKKzIwMTYtMDYtMzAgIEJlcm5oYXJkIEhl Y2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiBO RVdTOiBBZGRlZCBlbnRyeS4KKwkqIGMtdmFscHJpbnQuYyAoY19wcmludF92YWwpOiBSZXNvbHZl IGR5bmFtaWMgdGFyZ2V0IHR5cGVzLgorCSogdmFsb3BzLmMgKHZhbHVlX2luZCk6IFJlc29sdmUg ZHluYW1pYyB0YXJnZXQgdHlwZXMuCisJKiB2YWxwcmludC5jIChjaGVja19wcmludGFibGUpOiBE b24ndCBzaG9ydGN1dCBub3QgYXNzb2NpYXRlZAorCSAgcG9pbnRlcnMuCisKK2dkYi9UZXN0c3Vp dGUvQ2hhbmdlbG9nOgorCSogcG9pbnRlcnMuZjkwOiBBZGRlZCBwb2ludGVyIHRvIGR5bmFtaWMg dHlwZXMuCisJKiBnZGIuZm9ydHJhbi9wb2ludGVycy5leHA6IE5ldy4KKworQ2hhbmdlLUlkOiBJ OTk4ZDRkYTRhNWJhNDg5OWI4Y2IyMTE1NTc2ZjQ0ZWZhNzQxZTY5OAorLS0tCisgZ2RiL05FV1Mg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKworIGdkYi9jLXZhbHByaW50LmMg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmNw L3ZsYS1jeHguZXhwICAgICAgIHwgICA0ICsrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9w b2ludGVycy5leHAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAgfCAgMTcgKysrKysKKyBnZGIvdmFs b3BzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKysrLQorIGdkYi92YWxwcmlu dC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2IC0tCisgNyBmaWxlcyBjaGFuZ2VkLCAx ODIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKKworZGlmZiAtLWdpdCBhL2dkYi9O RVdTIGIvZ2RiL05FV1MKK2luZGV4IDM4MjNmMjAuLjM3ZTRjYTcgMTAwNjQ0CistLS0gYS9nZGIv TkVXUworKysrIGIvZ2RiL05FV1MKK0BAIC0zLDYgKzMsOCBAQAorIAorICoqKiBDaGFuZ2VzIHNp bmNlIEdEQiA3LjExCisgCisrKiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJzIHRvIGR5bmFtaWMg dHlwZXMuCisrCisgKiBHREIgbm93IHN1cHBvcnRzIGEgbmVnYXRpdmUgcmVwZWF0IGNvdW50IGlu IHRoZSAneCcgY29tbWFuZCB0byBleGFtaW5lCisgICBtZW1vcnkgYmFja3dhcmQgZnJvbSB0aGUg Z2l2ZW4gYWRkcmVzcy4gIEZvciBleGFtcGxlOgorIAorZGlmZiAtLWdpdCBhL2dkYi9jLXZhbHBy aW50LmMgYi9nZGIvYy12YWxwcmludC5jCitpbmRleCAyY2I0MThkLi4xMjAxNjNmIDEwMDY0NAor LS0tIGEvZ2RiL2MtdmFscHJpbnQuYworKysrIGIvZ2RiL2MtdmFscHJpbnQuYworQEAgLTY0NSw2 ICs2NDUsMjggQEAgY192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sCisgICAgICAgZWxzZQorIAl7CisgCSAgLyogbm9ybWFsIGNhc2UgKi8KKysJ ICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisrCSAgICAgICYmIDEgPT0g aXNfZHluYW1pY190eXBlICh0eXBlKSkKKysJICAgIHsKKysJICAgICAgQ09SRV9BRERSIGFkZHI7 CisrCSAgICAgIGlmIChOVUxMICE9IFRZUEVfREFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSkpKQorKwkJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrCSAgICAgIGVsc2UK KysJCWFkZHIgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOworKworKwkgICAgICAvKiBXZSByZXNv bHZlIHRoZSB0YXJnZXQtdHlwZSBvbmx5IHdoZW4gdGhlCisrCSAgICAgICAgIHBvaW50ZXIgaXMg YXNzb2NpYXRlZC4gICovCisrCSAgICAgIGlmICgoYWRkciAhPSAwKQorKwkJICAmJiAoMCA9PSB0 eXBlX25vdF9hc3NvY2lhdGVkICh0eXBlKSkpCisrCQkgIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp ID0KKysJCSAgICAgIHJlc29sdmVfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSwKKysJCQkJCSAgICBOVUxMLCBhZGRyKTsKKysJICAgIH0KKysJICBlbHNlCisrCSAgICB7Cisr CSAgICAgIC8qIERvIG5vdGhpbmcuIFJlZmVyZW5jZXMgYXJlIGFscmVhZHkgcmVzb2x2ZWQgZnJv bSB0aGUgYmVnaW5uaW5nLAorKwkgICAgICAgICBvbmx5IHBvaW50ZXJzIGFyZSByZXNvbHZlZCB3 aGVuIHdlIGFjdHVhbCBuZWVkIHRoZSB0YXJnZXQuICAqLworKwkgICAgfQorIAkgIGZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKKyAJICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwp LCAiIiwgc3RyZWFtLCAtMSk7CisgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhwCitpbmRleCBiYWJkZmI3Li41NDNkOWViIDEwMDY0NAor LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKKysrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL3ZsYS1jeHguZXhwCitAQCAtMjYsNiArMjYsOCBAQCBpZiAhW3J1bnRvX21haW5d IHsKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIg YXNzaWdubWVudCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVy IGFzc2lnbm1lbnQiCisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbdmFy aWFibGUgbGVuZ3RoXFxcXSIgInB0eXBlIHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIK KytnZGJfdGVzdCAicHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxcKVxcXFt2YXJpYWJsZSBsZW5n dGhcXFxdXFwpIDB4MCIgInByaW50IHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytn ZGJfdGVzdCAicHJpbnQgKnB0ciIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgw IiAicHJpbnQgKnB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKyAKKyBnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhc19maWxsZWQiXQorIGdkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJ2bGFzX2ZpbGxlZCIKK0BAIC0zOCwzICs0MCw1IEBAIGdkYl90ZXN0ICJw cmludCB2bGFyZWYiICIgPSBcXChpbnQgXFwoJlxcKVxcXFszXFxcXVxcKSBAJGhleDogXFx7NSwg NywgOVxcfSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhcmVmMiIgIiA9IFxcKC4qXFwpIEAkaGV4OiBc XHs1LCA3LCA5XFx9IgorIGdkYl90ZXN0ICJwcmludCBjIiAiID0gXFx7ZSA9IFxce2MgPSBAJGhl eFxcfVxcfSIKKyBnZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFszXFxcXSIK KytnZGJfdGVzdCAicHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxcKVxcXFszXFxcXVxcKSAkaGV4 IgorK2dkYl90ZXN0ICJwcmludCAqcHRyIiAiID0gXFx7NSwgNywgOVxcfSIKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMC4uYzE5ZDdlMAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9wb2ludGVycy5leHAKK0BAIC0wLDAgKzEsMTIzIEBACisrIyBDb3B5cmlnaHQgMjAxNiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgInBvaW50ZXJzLmY5MCIKKytsb2FkX2xpYiBm b3J0cmFuLmV4cAorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhw ICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Cisr ICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1bnRvX21haW5dIHsKKysgICAgdW50ZXN0ZWQg ImNvdWxkIG5vdCBydW4gdG8gbWFpbiIKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgRGVwZW5k aW5nIG9uIHRoZSBjb21waWxlciBiZWluZyB1c2VkLCB0aGUgdHlwZSBuYW1lcyBjYW4gYmUgcHJp bnRlZCBkaWZmZXJlbnRseS4KKytzZXQgbG9naWNhbCBbZm9ydHJhbl9sb2dpY2FsNF0KKytzZXQg cmVhbCBbZm9ydHJhbl9yZWFsNF0KKytzZXQgaW50IFtmb3J0cmFuX2ludDRdCisrc2V0IGNvbXBs ZXggW2ZvcnRyYW5fY29tcGxleDRdCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwcmludCBs b2dwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKVxcKSAweDAiICJwcmludCBsb2dw LCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmxvZ3AiICJDYW5ub3QgYWNjZXNz IG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpsb2dwLCBub3QgYXNzb2NpYXRlZCIKKytn ZGJfdGVzdCAicHJpbnQgY29tcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkY29tcGxleCBcXClcXCkg MHgwIiAicHJpbnQgY29tcCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50ICpjb21w IiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqY29tcCwgbm90 IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IGNoYXJwIiAiPSBcXChQVFIgVE8gLT4gXFwo IGNoYXJhY3RlclxcKjEgXFwpXFwpIDB4MCIgInByaW50IGNoYXJwLCBub3QgYXNzb2NpYXRlZCIK KytnZGJfdGVzdCAicHJpbnQgKmNoYXJwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVz cyAweDAiICJwcmludCAqY2hhcnAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBj aGFyYXAiICI9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcXCkgMHgwIiAicHJp bnQgY2hhcmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmNoYXJhcCIgIkNh bm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKmNoYXJhcCwgbm90IGFz c29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IGludHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGlu dCBcXClcXCkgMHgwIiAicHJpbnQgaW50cCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInBy aW50ICppbnRwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAq aW50cCwgbm90IGFzc29jaWF0ZWQiCisrc2V0IHRlc3QgInByaW50IGludGFwLCBub3QgYXNzb2Np YXRlZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgaW50YXAiICR0ZXN0IHsKKysgIC1yZSAi ID0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKDosOlxcKVxcKVxcKSA8bm90IGFzc29jaWF0ZWQ+ XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorKyAgLXJlICIgPSA8 bm90IGFzc29jaWF0ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAg fQorK30KKytnZGJfdGVzdCAicHJpbnQgcmVhbHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJHJlYWwg XFwpXFwpIDB4MCIgInByaW50IHJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJp bnQgKnJlYWxwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAq cmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBcJG15X3ZhciA9IGludHAi ICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXClcXCkgMHgwIgorKworKworK2dkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgdmFsdWUgYXNzaWdubWVudCJdCisrZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90 ZXN0ICJwcmludCAqKHR3b3ApJWl2bGEyIiAiPSA8bm90IGFsbG9jYXRlZD4iCisrCisrCisrZ2Ri X2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQi XQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJBZnRlciB2YWx1ZSBhc3NpZ25tZW50Igor K2dkYl90ZXN0ICJwcmludCBsb2dwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKVxc KSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmxvZ3AiICI9IFxcLlRSVUVcXC4i CisrZ2RiX3Rlc3QgInByaW50IGNvbXAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwp XFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqY29tcCIgIj0gXFwoMSwyXFwp IgorK2dkYl90ZXN0ICJwcmludCBjaGFycCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCoxIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmNoYXJwIiAiPSAn YSciCisrZ2RiX3Rlc3QgInByaW50IGNoYXJhcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0 ZXJcXCozIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmNoYXJhcCIg Ij0gJ2FiYyciCisrZ2RiX3Rlc3QgInByaW50IGludHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGlu dCBcXClcXCkgJGhleFwoIDwuKj5cKT8iCisrZ2RiX3Rlc3QgInByaW50ICppbnRwIiAiPSAxMCIK KytzZXQgdGVzdF9uYW1lICJwcmludCBpbnRhcCwgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0 aXBsZSAicHJpbnQgaW50YXAiICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKFxcKCAxLCAxLCAz KCwgMSl7N31cXCkgXFwoIDEoLCAxKXs5fVxcKSBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAg ICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoICRpbnQg XFwoMTAsMlxcKVxcKVxcKSAkaGV4XCggPC4qPlwpP1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAg IGdkYl90ZXN0ICJwcmludCAqaW50YXAiICI9IFxcKFxcKCAxLCAxLCAzKCwgMSl7N31cXCkgXFwo IDEoLCAxKXs5fVxcKSBcXCkiCisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorK30KKytzZXQg dGVzdF9uYW1lICJwcmludCBpbnR2bGFwLCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxl ICJwcmludCBpbnR2bGFwIiAkdGVzdF9uYW1lIHsKKysgIC1yZSAiPSBcXCgyLCAyLCAyLCA0KCwg Mil7Nn1cXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0K KysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwoMTBcXClcXClcXCkgJGhleFwoIDwu Kj5cKT9cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBnZGJfdGVzdCAicHJpbnQgKmludHZsYXAi ICI9IFxcKDIsIDIsIDIsIDQoLCAyKXs2fVxcKSIKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9 CisrfQorK2dkYl90ZXN0ICJwcmludCByZWFscCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkcmVhbCBc XClcXCkgJGhleFwoIDwuKj5cKT8iCisrZ2RiX3Rlc3QgInByaW50ICpyZWFscCIgIj0gM1xcLjE0 MDAwXFxkKyIKKytnZGJfdGVzdCAicHJpbnQgYXJyYXlPZlB0cigyKSVwIiAiPSBcXChQVFIgVE8g LT4gXFwoIFR5cGUgdHdvIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQg KihhcnJheU9mUHRyKDIpJXApIiAiPSBcXCggaXZsYTEgPSBcXCgxMSwgMTIsIDEzXFwpLCBpdmxh MiA9IFxcKFxcKCAyMTEsIDIyMVxcKSBcXCggMjEyLCAyMjJcXCkgXFwpIFxcKSIKKytzZXQgdGVz dF9uYW1lICJwcmludCBhcnJheU9mUHRyKDMpJXAiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3Rf bmFtZSAkdGVzdF9uYW1lIHsKKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIFxc KVxcKSA8bm90IGFzc29jaWF0ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVz dF9uYW1lCisrICB9CisrICAtcmUgIj0gXFwoUFRSIFRPIC0+IFxcKCBUeXBlIHR3byBcXClcXCkg MHgwXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9CisrfQor K3NldCB0ZXN0X25hbWUgInByaW50ICooYXJyYXlPZlB0cigzKSVwKSwgYXNzb2NpYXRlZCIKKytn ZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgKihhcnJheU9mUHRyKDMpJXApIiAkdGVzdF9uYW1lIHsK KysgIC1yZSAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDBcclxuJGdkYl9wcm9t cHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysgIC1yZSAiQXR0ZW1wdCB0byB0 YWtlIGNvbnRlbnRzIG9mIGEgbm90IGFzc29jaWF0ZWQgcG9pbnRlci5cclxuJGdkYl9wcm9tcHQg JCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKyt9CisrZ2RiX3Rlc3QgInByaW50ICoo KGludGVnZXIqKSAmaW50YSArIDIpIiAiPSAzIiAicHJpbnQgdGVtcG9yYXJ5IHBvaW50ZXIsIGFy cmF5IgorK2dkYl90ZXN0ICJwcmludCAqKChpbnRlZ2VyKikgJmludHZsYSArIDMpIiAiPSA0IiAi cHJpbnQgdGVtcG9yYXJ5IHBvaW50ZXIsIGFsbG9jYXRlZCB2bGEiCisrZ2RiX3Rlc3QgInByaW50 IFwkcGMiICI9IFxcKFBUUiBUTyAtPiBcXCggdm9pZCBcXChcXClcXChcXClcXClcXCkgJGhleCA8 cG9pbnRlcnNcXCtcXGQrPiIgIlByaW50IHByb2dyYW0gY291bnRlciIKK2RpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vcG9pbnRlcnMuZjkwCitpbmRleCA5ZWJiYWE5Li4wMDAxOTNjIDEwMDY0NAorLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKKysrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCitAQCAtMjAsMTQgKzIwLDIwIEBAIHByb2dy YW0gcG9pbnRlcnMKKyAgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZsYTIgKDosIDopCisg ICBlbmQgdHlwZSB0d28KKyAKKysgIHR5cGUgOjogdHdvUHRyCisrICAgIHR5cGUgKHR3byksIHBv aW50ZXIgOjogcAorKyAgZW5kIHR5cGUgdHdvUHRyCisrCisgICBsb2dpY2FsLCB0YXJnZXQgOjog bG9ndgorICAgY29tcGxleCwgdGFyZ2V0IDo6IGNvbXYKKyAgIGNoYXJhY3RlciwgdGFyZ2V0IDo6 IGNoYXJ2CisgICBjaGFyYWN0ZXIgKGxlbj0zKSwgdGFyZ2V0IDo6IGNoYXJhCisgICBpbnRlZ2Vy LCB0YXJnZXQgOjogaW50dgorICAgaW50ZWdlciwgdGFyZ2V0LCBkaW1lbnNpb24gKDEwLDIpIDo6 IGludGEKKysgIGludGVnZXIsIHRhcmdldCwgYWxsb2NhdGFibGUsIGRpbWVuc2lvbiAoOikgOjog aW50dmxhCisgICByZWFsLCB0YXJnZXQgICAgOjogcmVhbHYKKyAgIHR5cGUodHdvKSwgdGFyZ2V0 ICA6OiB0d292CisrICB0eXBlKHR3b1B0cikgOjogYXJyYXlPZlB0ciAoMykKKyAKKyAgIGxvZ2lj YWwsIHBvaW50ZXIgOjogbG9ncAorICAgY29tcGxleCwgcG9pbnRlciA6OiBjb21wCitAQCAtMzUs NiArNDEsNyBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICBjaGFyYWN0ZXIgKGxlbj0zKSwgcG9pbnRl cjo6IGNoYXJhcAorICAgaW50ZWdlciwgcG9pbnRlciA6OiBpbnRwCisgICBpbnRlZ2VyLCBwb2lu dGVyLCBkaW1lbnNpb24gKDosOikgOjogaW50YXAKKysgIGludGVnZXIsIHBvaW50ZXIsIGRpbWVu c2lvbiAoOikgOjogaW50dmxhcAorICAgcmVhbCwgcG9pbnRlciA6OiByZWFscAorICAgdHlwZSh0 d28pLCBwb2ludGVyIDo6IHR3b3AKKyAKK0BAIC00NCw4ICs1MSwxMiBAQCBwcm9ncmFtIHBvaW50 ZXJzCisgICBudWxsaWZ5IChjaGFyYXApCisgICBudWxsaWZ5IChpbnRwKQorICAgbnVsbGlmeSAo aW50YXApCisrICBudWxsaWZ5IChpbnR2bGFwKQorICAgbnVsbGlmeSAocmVhbHApCisgICBudWxs aWZ5ICh0d29wKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVwKQorKyAgbnVsbGlmeSAoYXJy YXlPZlB0cigyKSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigzKSVwKQorIAorICAgbG9ncCA9 PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorICAgY29tcCA9PiBjb212CitA QCAtNTMsOCArNjQsMTAgQEAgcHJvZ3JhbSBwb2ludGVycworICAgY2hhcmFwID0+IGNoYXJhCisg ICBpbnRwID0+IGludHYKKyAgIGludGFwID0+IGludGEKKysgIGludHZsYXAgPT4gaW50dmxhCisg ICByZWFscCA9PiByZWFsdgorICAgdHdvcCA9PiB0d292CisrICBhcnJheU9mUHRyKDIpJXAgPT4g dHdvdgorIAorICAgbG9ndiA9IGFzc29jaWF0ZWQobG9ncCkgICAgICEgQmVmb3JlIHZhbHVlIGFz c2lnbm1lbnQKKyAgIGNvbXYgPSBjbXBseCgxLDIpCitAQCAtNjMsNiArNzYsMTAgQEAgcHJvZ3Jh bSBwb2ludGVycworICAgaW50diA9IDEwCisgICBpbnRhKDosOikgPSAxCisgICBpbnRhKDMsMSkg PSAzCisrICBhbGxvY2F0ZSAoaW50dmxhKDEwKSkKKysgIGludHZsYSg6KSA9IDIKKysgIGludHZs YSg0KSA9IDQKKysgIGludHZsYXAgPT4gaW50dmxhCisgICByZWFsdiA9IDMuMTQKKyAKKyAgIGFs bG9jYXRlICh0d292JWl2bGExKDMpKQorZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92 YWxvcHMuYworaW5kZXggNDAzOTJlOC4uNmYzODU2MCAxMDA2NDQKKy0tLSBhL2dkYi92YWxvcHMu YworKysrIGIvZ2RiL3ZhbG9wcy5jCitAQCAtMTU2Miw2ICsxNTYyLDE5IEBAIHZhbHVlX2luZCAo c3RydWN0IHZhbHVlICphcmcxKQorICAgaWYgKFRZUEVfQ09ERSAoYmFzZV90eXBlKSA9PSBUWVBF X0NPREVfUFRSKQorICAgICB7CisgICAgICAgc3RydWN0IHR5cGUgKmVuY190eXBlOworKyAgICAg IENPUkVfQUREUiBhZGRyOworKworKyAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkIChiYXNl X3R5cGUpKQorKyAgICAgICAgZXJyb3IgKF8oIkF0dGVtcHQgdG8gdGFrZSBjb250ZW50cyBvZiBh IG5vdCBhc3NvY2lhdGVkIHBvaW50ZXIuIikpOworKworKyAgICAgIGlmIChOVUxMICE9IFRZUEVf REFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90eXBlKSkpCisrCWFkZHIgPSB2 YWx1ZV9hZGRyZXNzIChhcmcxKTsKKysgICAgICBlbHNlCisrCWFkZHIgPSB2YWx1ZV9hc19hZGRy ZXNzIChhcmcxKTsKKysKKysgICAgICBpZiAoYWRkciAhPSAwKQorKwlUWVBFX1RBUkdFVF9UWVBF IChiYXNlX3R5cGUpID0KKysJICAgIHJlc29sdmVfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9U WVBFIChiYXNlX3R5cGUpLCBOVUxMLCBhZGRyKTsKKyAKKyAgICAgICAvKiBXZSBtYXkgYmUgcG9p bnRpbmcgdG8gc29tZXRoaW5nIGVtYmVkZGVkIGluIGEgbGFyZ2VyIG9iamVjdC4KKyAgICAgICAg ICBHZXQgdGhlIHJlYWwgdHlwZSBvZiB0aGUgZW5jbG9zaW5nIG9iamVjdC4gICovCitAQCAtMTU3 Nyw4ICsxNTkwLDcgQEAgdmFsdWVfaW5kIChzdHJ1Y3QgdmFsdWUgKmFyZzEpCisgICAgICAgZWxz ZQorIAkvKiBSZXRyaWV2ZSB0aGUgZW5jbG9zaW5nIG9iamVjdCBwb2ludGVkIHRvLiAgKi8KKyAJ YXJnMiA9IHZhbHVlX2F0X2xhenkgKGVuY190eXBlLCAKKy0JCQkgICAgICAodmFsdWVfYXNfYWRk cmVzcyAoYXJnMSkKKy0JCQkgICAgICAgLSB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoYXJnMSkp KTsKKysJCQkgICAgICAoYWRkciAtIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChhcmcxKSkpOwor IAorICAgICAgIGVuY190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7CisgICAgICAgcmV0dXJuIHJl YWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190eXBlLCBiYXNlX3R5cGUsIGFy ZzEpOworZGlmZiAtLWdpdCBhL2dkYi92YWxwcmludC5jIGIvZ2RiL3ZhbHByaW50LmMKK2luZGV4 IDY4OTZkYTIuLmY1OTIyNzggMTAwNjQ0CistLS0gYS9nZGIvdmFscHJpbnQuYworKysrIGIvZ2Ri L3ZhbHByaW50LmMKK0BAIC0xMTQxLDEyICsxMTQxLDYgQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxl IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAgICAgICByZXR1 cm4gMDsKKyAgICAgfQorIAorLSAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKHZhbHVlX3R5cGUg KHZhbCkpKQorLSAgICB7CistICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0p OworLSAgICAgIHJldHVybiAwOworLSAgICB9CistCisgICBpZiAodHlwZV9ub3RfYWxsb2NhdGVk ICh2YWx1ZV90eXBlICh2YWwpKSkKKyAgICAgeworICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2Nh dGVkIChzdHJlYW0pOworLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC02 b2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC02b2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjQ1OTY4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVs LTZvZjcucGF0Y2gKQEAgLTAsMCArMSwxMDIgQEAKK0Zyb20gODY2NTM0NGMxNGI5YWU4YjJlMGMz N2JhMDZkNjg4MWE1NDZkMWEzNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJlcm5o YXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMTIgSnVs IDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA2LzddIEZvcnRyYW46IFRlc3Rz dWl0ZSwgYWRkIGN5Y2xpYyBwb2ludGVycy4KKworMjAxNi0wNS0yNSAgQmVybmhhcmQgSGVja2Vs ICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6 CisJKiBwb2ludGVycy5mOTA6IEFkZCBjeWxpYyBwb2ludGVycy4KKwkqIHBvaW50ZXJzLmV4cDog QWRkIHByaW50IG9mIGN5Y2xpYyBwb2ludGVycy4KKworQ2hhbmdlLUlkOiBJYzNiNjE4N2M1OTgw ZmQ2YzM3ZTJlOTQ3ODdmODMyMWU1YjdmMmQ3NQorLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9wb2ludGVycy5leHAgfCAyMCArKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwIHwgMTIgKysrKysrKysrKysrCisgMiBmaWxlcyBj aGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3BvaW50ZXJzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRl cnMuZXhwCitpbmRleCBjMTlkN2UwLi42N2NmOTk5IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vcG9pbnRlcnMuZXhwCitAQCAtNTcsNiArNTcsMjQgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgInBy aW50IGludGFwIiAkdGVzdCB7CisgZ2RiX3Rlc3QgInByaW50IHJlYWxwIiAiPSBcXChQVFIgVE8g LT4gXFwoICRyZWFsIFxcKVxcKSAweDAiICJwcmludCByZWFscCwgbm90IGFzc29jaWF0ZWQiCisg Z2RiX3Rlc3QgInByaW50ICpyZWFscCIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3Mg MHgwIiAicHJpbnQgKnJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQgXCRt eV92YXIgPSBpbnRwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwpXFwpIDB4MCIKKytzZXQg dGVzdCAicHJpbnQgY3ljbGljcDEsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxl ICJwcmludCBjeWNsaWNwMSIgJHRlc3QgeworKyAgLXJlICI9IFxcKCBpID0gLT9cXGQrLCBwID0g MHgwIFxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3QKKysgIH0KKysgIC1y ZSAiPSBcXCggaSA9IC0/XFxkKywgcCA9IDxub3QgYXNzb2NpYXRlZD4gXFwpXHJcbiRnZGJfcHJv bXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorK30KKytzZXQgdGVzdCAicHJpbnQgY3lj bGljcDElcCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGN5Y2xp Y3AxJXAiICR0ZXN0IHsKKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhw b2ludGVyIFxcKVxcKSAweDBcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0Cisr ICB9CisrICAtcmUgIj0gXFwoUFRSIFRPIC0+IFxcKCBUeXBlIHR5cGV3aXRocG9pbnRlciBcXClc XCkgPG5vdCBhc3NvY2lhdGVkPlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3QK KysgIH0KKyt9CisgCisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJl Zm9yZSB2YWx1ZSBhc3NpZ25tZW50Il0KK0BAIC0xMTgsNiArMTM2LDggQEAgZ2RiX3Rlc3RfbXVs dGlwbGUgInByaW50ICooYXJyYXlPZlB0cigzKSVwKSIgJHRlc3RfbmFtZSB7CisgICAgIHBhc3Mg JHRlc3RfbmFtZQorICAgfQorIH0KKytnZGJfdGVzdCAicHJpbnQgY3ljbGljcDEiICI9IFxcKCBp ID0gMSwgcCA9ICRoZXhcKCA8Lio+XCk/IFxcKSIKKytnZGJfdGVzdCAicHJpbnQgY3ljbGljcDEl cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBUeXBlIHR5cGV3aXRocG9pbnRlciBcXClcXCkgJGhleFwo IDwuKj5cKT8iCisgZ2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50YSArIDIpIiAiPSAz IiAicHJpbnQgdGVtcG9yYXJ5IHBvaW50ZXIsIGFycmF5IgorIGdkYl90ZXN0ICJwcmludCAqKChp bnRlZ2VyKikgJmludHZsYSArIDMpIiAiPSA0IiAicHJpbnQgdGVtcG9yYXJ5IHBvaW50ZXIsIGFs bG9jYXRlZCB2bGEiCisgZ2RiX3Rlc3QgInByaW50IFwkcGMiICI9IFxcKFBUUiBUTyAtPiBcXCgg dm9pZCBcXChcXClcXChcXClcXClcXCkgJGhleCA8cG9pbnRlcnNcXCtcXGQrPiIgIlByaW50IHBy b2dyYW0gY291bnRlciIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Bv aW50ZXJzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCitpbmRl eCAwMDAxOTNjLi42MjQwYzg3IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9wb2ludGVycy5mOTAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMu ZjkwCitAQCAtMjAsNiArMjAsMTEgQEAgcHJvZ3JhbSBwb2ludGVycworICAgICBpbnRlZ2VyLCBh bGxvY2F0YWJsZSA6OiBpdmxhMiAoOiwgOikKKyAgIGVuZCB0eXBlIHR3bworIAorKyAgdHlwZSA6 OiB0eXBlV2l0aFBvaW50ZXIKKysgICAgaW50ZWdlciBpCisrICAgIHR5cGUodHlwZVdpdGhQb2lu dGVyKSwgcG9pbnRlcjo6IHAKKysgIGVuZCB0eXBlIHR5cGVXaXRoUG9pbnRlcgorKworICAgdHlw ZSA6OiB0d29QdHIKKyAgICAgdHlwZSAodHdvKSwgcG9pbnRlciA6OiBwCisgICBlbmQgdHlwZSB0 d29QdHIKK0BAIC0zNCw2ICszOSw3IEBAIHByb2dyYW0gcG9pbnRlcnMKKyAgIHJlYWwsIHRhcmdl dCAgICA6OiByZWFsdgorICAgdHlwZSh0d28pLCB0YXJnZXQgIDo6IHR3b3YKKyAgIHR5cGUodHdv UHRyKSA6OiBhcnJheU9mUHRyICgzKQorKyAgdHlwZSh0eXBlV2l0aFBvaW50ZXIpLCB0YXJnZXQ6 OiBjeWNsaWNwMSxjeWNsaWNwMgorIAorICAgbG9naWNhbCwgcG9pbnRlciA6OiBsb2dwCisgICBj b21wbGV4LCBwb2ludGVyIDo6IGNvbXAKK0BAIC01Nyw2ICs2Myw4IEBAIHByb2dyYW0gcG9pbnRl cnMKKyAgIG51bGxpZnkgKGFycmF5T2ZQdHIoMSklcCkKKyAgIG51bGxpZnkgKGFycmF5T2ZQdHIo MiklcCkKKyAgIG51bGxpZnkgKGFycmF5T2ZQdHIoMyklcCkKKysgIG51bGxpZnkgKGN5Y2xpY3Ax JXApCisrICBudWxsaWZ5IChjeWNsaWNwMiVwKQorIAorICAgbG9ncCA9PiBsb2d2ICAgICEgQmVm b3JlIHBvaW50ZXIgYXNzaWdubWVudAorICAgY29tcCA9PiBjb212CitAQCAtNjgsNiArNzYsMTAg QEAgcHJvZ3JhbSBwb2ludGVycworICAgcmVhbHAgPT4gcmVhbHYKKyAgIHR3b3AgPT4gdHdvdgor ICAgYXJyYXlPZlB0cigyKSVwID0+IHR3b3YKKysgIGN5Y2xpY3AxJWkgPSAxCisrICBjeWNsaWNw MSVwID0+IGN5Y2xpY3AyCisrICBjeWNsaWNwMiVpID0gMgorKyAgY3ljbGljcDIlcCA9PiBjeWNs aWNwMQorIAorICAgbG9ndiA9IGFzc29jaWF0ZWQobG9ncCkgICAgICEgQmVmb3JlIHZhbHVlIGFz c2lnbm1lbnQKKyAgIGNvbXYgPSBjbXBseCgxLDIpCistLSAKKzIuNy40CisKCmRpZmYgLS1naXQg YS9nZGItdmxhLWludGVsLTdvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTdvZjcucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzI2YzM0MQotLS0gL2Rldi9udWxsCisr KyBiL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaApAQCAtMCwwICsxLDUxOCBAQAorRnJvbSAxZTVi ZDlhZWM5ZWUwMmMyZjc3MWU0ZGM5OTc1NzBjODJkNzRiM2I4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgor RGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDcv N10gZm9ydF9keW5fYXJyYXk6IEZvcnRyYW4gZHluYW1pYyBzdHJpbmcgc3VwcG9ydAorCitUaGlz IHBhdGNoIGNoYW5nZXMgdGhlIHNlbWFudGljIG9mIHRoZSBEd2FyZiBzdHJpbmcgbGVuZ3RoCith dHRyaWJ1dGUgdG8gcmVmbGVjdCB0aGUgc3RhbmRhcmQgYXMgd2VsbCBhcyBlbmFibGVzCitjb3Jy ZWN0IHN0cmluZyBsZW5ndGggY2FsY3VsYXRpb24gb2YgZHluYW1pYyBzdHJpbmdzLiBBZGQKK3Rl c3RzIGZvciB2YXJvdXMgZHluYW1pYyBzdHJpbmcgZXZhbHVhdGlvbnMuCisKK09sZDoKKyhnZGIp IHAgbXlfZHluX3N0cmluZworQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDYwNWZj MAorCitOZXc6CisoZ2RiKSBwICpteV9keW5fc3RyaW5nCiskMSA9ICdmb28nCisKK2dkYi9DaGFu Z2xvZzoKKwkqIGR3YXJmMnJlYWQuYyAocmVhZF90YWdfc3RyaW5nX3R5cGUpOiBjaGFuZ2VkCisJ c2VtYW50aWMgb2YgRFdfQVRfc3RyaW5nX2xlbmd0aCB0byBiZSBhYmxlIHRvCisJaGFuZGxlIER3 YXJmIGJsb2NrcyBhcyB3ZWxsLiBTdXBwb3J0IGZvcgorCURXX0FUX2J5dGVfbGVuZ3RoIGFkZGVk IHRvIGdldCBjb3JyZWN0IGxlbmd0aAorCWlmIHNwZWNpZmllZCBpbiBjb21iaW5hdGlvbiB3aXRo CisJRFdfQVRfc3RyaW5nX2xlbmd0aC4KKwkoYXR0cl90b19keW5hbWljX3Byb3ApOiBhZGRlZAor CWZ1bmN0aW9uYWxpdHkgdG8gYWRkIER3YXJmIG9wZXJhdG9ycyB0byBiYXRvbgorCWRhdGEgYXR0 cmlidXRlLiBBZGRlZCBwb3N0IHZhbHVlcyB0byBiYXRvbgorCWFzIHJlcXVpcmVkIGJ5IHRoZSBz dHJpbmcgZXZhbHVhdGlvbiBjYXNlLgorCShyZWFkX3N1YnJhbmdlX3R5cGUpOiBBZGFwdCBjYWxs ZXIuCisJKHNldF9kaWVfdHlwZSk6IEFkYXB0IGNhbGxlci4KKwkoYWRkX3Bvc3RfdmFsdWVzX3Rv X2JhdG9uKTogTmV3IGZ1bmN0aW9uLgorICAgIAkqIGdkYnR5cGVzLmMgKHJlc29sdmVfZHluYW1p Y190eXBlKTogQWRkCisgICAgCWNvbmRpdGlvbnMgdG8gc3VwcG9ydCBzdHJpbmcgdHlwZXMuCisg ICAgCShyZXNvbHZlX2R5bmFtaWNfYXJyYXkpOiBBZGQgY29uZGl0aW9ucyBmb3IgZHluYW1pYwor ICAgIAlzdHJpbmdzIGFuZCBjcmVhdGUgYSBuZXcgc3RyaW5nIHR5cGUuCisgICAgCShpc19keW5h bWljX3R5cGUpOiBGb2xsb3cgcG9pbnRlciBpZiBhIHN0cmluZyB0eXBlCisgICAgCXdhcyBkZXRl Y3RlZCwgYXMgRm9ydHJhbiBzdHJpbmdzIGFyZSByZXByZXNlbnRlZAorICAgIAlhcyBwb2ludGVy cyB0byBzdHJpbmdzIGludGVybmFsbHkuCisKK2dkYi90ZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSog dmxhLXN0cmluZ3MuZjkwOiBOZXcgZmlsZS4KKwkqIHZsYS1zdHJpbmdzLmV4cDogTmV3IGZpbGUu CisKK0NoYW5nZS1JZDogSTdkN2Y0N2M3YTQ5MDBhN2ZkYjUxMTAyMDMyNDU1YjUzZDYwZTYwZDcK Ky0tLQorIGdkYi9kd2FyZjJyZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU4ICsr KysrKysrKysrKysrKysrKysrKysrKystLS0tLQorIGdkYi9nZGJ0eXBlcy5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDE1ICsrLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmluZ3MuZXhwIHwgMTAzICsrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MCB8ICAzOSArKysrKysrKworIDQgZmlsZXMgY2hhbmdl ZCwgMjg1IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAorIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAorCitkaWZm IC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKK2luZGV4IDY2NThh MzguLjY3OGRhOGYgMTAwNjQ0CistLS0gYS9nZGIvZHdhcmYycmVhZC5jCisrKysgYi9nZGIvZHdh cmYycmVhZC5jCitAQCAtMTc2NCw3ICsxNzY0LDggQEAgc3RhdGljIHZvaWQgcmVhZF9zaWduYXR1 cmVkX3R5cGUgKHN0cnVjdCBzaWduYXR1cmVkX3R5cGUgKik7CisgCisgc3RhdGljIGludCBhdHRy X3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKKyAJCQkJIHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKKy0JCQkJIHN0cnVjdCBk eW5hbWljX3Byb3AgKnByb3ApOworKwkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwgY29u c3QgZ2RiX2J5dGUgKmFkZGl0aW9uYWxfZGF0YSwKKysJCQkJIGludCBhZGRpdGlvbmFsX2RhdGFf c2l6ZSk7CisgCisgLyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCisgCitAQCAtMTE0 MzcsNyArMTE0MzgsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgeworICAgICAgIG5ld29iai0+c3RhdGljX2xpbmsK KyAJPSBYT0JORVcgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHN0cnVjdCBkeW5hbWljX3By b3ApOworLSAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmot PnN0YXRpY19saW5rKTsKKysgICAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBj dSwgbmV3b2JqLT5zdGF0aWNfbGluaywgTlVMTCwgMCk7CisgICAgIH0KKyAKKyAgIGN1LT5saXN0 X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CitAQCAtMTQ0OTUsMjkgKzE0NDk2LDk0IEBAIHJl YWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9i amZpbGUpOworICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwg KmNoYXJfdHlwZTsKKyAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CistICB1bnNpZ25lZCBpbnQg bGVuZ3RoOworKyAgdW5zaWduZWQgaW50IGxlbmd0aCA9IFVJTlRfTUFYOworKworKyAgaW5kZXhf dHlwZSA9IG9iamZpbGVfdHlwZSAob2JqZmlsZSktPmJ1aWx0aW5faW50OworKyAgcmFuZ2VfdHlw ZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3Ro KTsKKyAKKysgIC8qIElmIERXX0FUX3N0cmluZ19sZW5ndGggaXMgZGVmaW5lZCwgdGhlIGxlbmd0 aCBpcyBzdG9yZWQgaW4gbWVtb3J5LiAgKi8KKyAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9zdHJpbmdfbGVuZ3RoLCBjdSk7CisgICBpZiAoYXR0cikKKyAgICAgeworLSAgICAgIGxl bmd0aCA9IERXX1VOU05EIChhdHRyKTsKKysgICAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChh dHRyKSkKKysJeworKwkgIHN0cnVjdCBhdHRyaWJ1dGUgKmJ5dGVfc2l6ZSwgKmJpdF9zaXplOwor KwkgIHN0cnVjdCBkeW5hbWljX3Byb3AgaGlnaDsKKysKKysJICBieXRlX3NpemUgPSBkd2FyZjJf YXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKKysJICBiaXRfc2l6ZSA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2JpdF9zaXplLCBjdSk7CisrCisrCSAgLyogRFdfQVRfYnl0ZV9zaXpl IHNob3VsZCBuZXZlciBvY2N1ciBpbiBjb21iaW5hdGlvbiB3aXRoCisrCSAgICAgRFdfQVRfYml0 X3NpemUuICAqLworKwkgIGlmIChieXRlX3NpemUgIT0gTlVMTCAmJiBiaXRfc2l6ZSAhPSBOVUxM KQorKwkgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgICAgIF8oIkRX X0FUX2J5dGVfc2l6ZSBBTkQgIgorKwkJCSAiRFdfQVRfYml0X3NpemUgZm91bmQgdG9nZXRoZXIg YXQgdGhlIHNhbWUgdGltZS4iKSk7CisrCisrCSAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBB TkQgRFdfQVRfYnl0ZV9zaXplIGV4aXN0IHRvZ2V0aGVyLAorKwkgICAgIERXX0FUX2J5dGVfc2l6 ZSBkZXNjcmliZXMgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHNob3VsZCBiZSByZWFkCisrCSAg ICAgZnJvbSB0aGUgbGVuZ3RoIG1lbW9yeSBsb2NhdGlvbi4gICovCisrCSAgaWYgKGJ5dGVfc2l6 ZSAhPSBOVUxMKQorKwkgICAgeworKwkgICAgICAvKiBCdWlsZCBuZXcgZHdhcmYyX2xvY2V4cHJf YmF0b24gc3RydWN0dXJlIHdpdGggYWRkaXRpb25zIHRvIHRoZQorKwkJIGRhdGEgYXR0cmlidXRl LCB0byByZWZsZWN0IERXQVJGIHNwZWNpYWxpdGllcyB0byBnZXQgYWRkcmVzcworKwkJIHNpemVz LiAgKi8KKysJICAgICAgY29uc3QgZ2RiX2J5dGUgYXBwZW5kX29wc1tdID0KKysJCXsKKysJCS8q IERXX09QX2RlcmVmX3NpemU6IHNpemUgb2YgYW4gYWRkcmVzcyBvbiB0aGUgdGFyZ2V0IG1hY2hp bmUKKysJCSAgIChieXRlcyksIHdoZXJlIHRoZSBzaXplIHdpbGwgYmUgc3BlY2lmaWVkIGJ5IHRo ZSBuZXh0CisrCQkgICBvcGVyYW5kLiAgKi8KKysJCURXX09QX2RlcmVmX3NpemUsCisrCQkvKiBP cGVyYW5kIGZvciBEV19PUF9kZXJlZl9zaXplLiAgKi8KKysJCURXX1VOU05EKGJ5dGVfc2l6ZSkg fTsKKysKKysJICAgICAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwg JmhpZ2gsIGFwcGVuZF9vcHMsCisrCQkJCQkgQVJSQVlfU0laRShhcHBlbmRfb3BzKSkpCisrCQlj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkJICAgXygiQ291bGQgbm90IHBhcnNl IERXX0FUX2J5dGVfc2l6ZSIpKTsKKysJICAgIH0KKysJICBlbHNlIGlmIChiaXRfc2l6ZSAhPSBO VUxMKQorKwkgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgICAgIF8o IkRXX0FUX3N0cmluZ19sZW5ndGggQU5EICIKKysJCQkgIkRXX0FUX2JpdF9zaXplIGZvdW5kIGJ1 dCBub3Qgc3VwcG9ydGVkIHlldC4iKSk7CisrCSAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBX SVRIT1VUIERXX0FUX2J5dGVfc2l6ZSBleGlzdCwgdGhlIGRlZmF1bHQKKysJICAgICBpcyB0aGUg YWRkcmVzcyBzaXplIG9mIHRoZSB0YXJnZXQgbWFjaGluZS4gICovCisrCSAgZWxzZQorKwkgICAg eworKwkgICAgICBjb25zdCBnZGJfYnl0ZSBhcHBlbmRfb3BzW10gPQorKwkJeyBEV19PUF9kZXJl ZiB9OworKworKwkgICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1 LCAmaGlnaCwgYXBwZW5kX29wcywKKysJCQkJCSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkKKysJ CWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysJCQkgICBfKCJDb3VsZCBub3QgcGFy c2UgRFdfQVRfc3RyaW5nX2xlbmd0aCIpKTsKKysJICAgIH0KKysKKysJICBUWVBFX1JBTkdFX0RB VEEgKHJhbmdlX3R5cGUpLT5oaWdoID0gaGlnaDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkg IFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNORChhdHRyKTsKKysJICBUWVBF X0hJR0hfQk9VTkRfS0lORCAocmFuZ2VfdHlwZSkgPSBQUk9QX0NPTlNUOworKwl9CisgICAgIH0K KyAgIGVsc2UKKyAgICAgeworLSAgICAgIC8qIENoZWNrIGZvciB0aGUgRFdfQVRfYnl0ZV9zaXpl IGF0dHJpYnV0ZS4gICovCisrICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUg YXR0cmlidXRlLCB3aGljaCByZXByZXNlbnRzIHRoZSBsZW5ndGgKKysJIGluIHRoaXMgY2FzZS4g ICovCisgICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3Up OworICAgICAgIGlmIChhdHRyKQorLSAgICAgICAgeworLSAgICAgICAgICBsZW5ndGggPSBEV19V TlNORCAoYXR0cik7CistICAgICAgICB9CisrCXsKKysJICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdl X3R5cGUpID0gRFdfVU5TTkQoYXR0cik7CisrCSAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdl X3R5cGUpID0gUFJPUF9DT05TVDsKKysJfQorICAgICAgIGVsc2UKKy0gICAgICAgIHsKKy0gICAg ICAgICAgbGVuZ3RoID0gMTsKKy0gICAgICAgIH0KKysJeworKwkgIFRZUEVfSElHSF9CT1VORCAo cmFuZ2VfdHlwZSkgPSAxOworKwkgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9 IFBST1BfQ09OU1Q7CisrCX0KKyAgICAgfQorIAorLSAgaW5kZXhfdHlwZSA9IG9iamZpbGVfdHlw ZSAob2JqZmlsZSktPmJ1aWx0aW5faW50OworLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNf cmFuZ2VfdHlwZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKKyAgIGNoYXJfdHlwZSA9 IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsK KyAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlw ZSk7CisgCitAQCAtMTQ4NDcsNyArMTQ5MTMsOCBAQCByZWFkX2Jhc2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIAorIHN0YXRpYyBpbnQKKyBhdHRy X3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRp ZV9pbmZvICpkaWUsCistCQkgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwgc3RydWN0IGR5bmFt aWNfcHJvcCAqcHJvcCkKKysJCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHlu YW1pY19wcm9wICpwcm9wLAorKwkJICAgICAgY29uc3QgZ2RiX2J5dGUgKmFkZGl0aW9uYWxfZGF0 YSwgaW50IGFkZGl0aW9uYWxfZGF0YV9zaXplKQorIHsKKyAgIHN0cnVjdCBkd2FyZjJfcHJvcGVy dHlfYmF0b24gKmJhdG9uOworICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2sgPSAmY3UtPm9iamZp bGUtPm9iamZpbGVfb2JzdGFjazsKK0BAIC0xNDg1NywxNCArMTQ5MjQsMzMgQEAgYXR0cl90b19k eW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5m byAqZGllLAorIAorICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0g ICAgICBiYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRv bik7CisrICAgICAgYmF0b24gPSBYT0JORVcob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0 eV9iYXRvbik7CisgICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CisgICAgICAg YmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKKy0gICAgICBiYXRvbi0+bG9jZXhw ci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOworLSAgICAgIGJhdG9uLT5sb2NleHByLmRh dGEgPSBEV19CTE9DSyAoYXR0ciktPmRhdGE7CisrCisrICAgICAgaWYgKGFkZGl0aW9uYWxfZGF0 YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKKysJeworKwkgIGdkYl9ieXRl ICpkYXRhOworKworKwkgIGRhdGEgPSAoZ2RiX2J5dGUgKikgb2JzdGFja19hbGxvYygKKysJICAg ICAgJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCSAgICAgIERXX0JMT0NLIChhdHRy KS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysJICBtZW1jcHkgKGRhdGEsIERXX0JM T0NLIChhdHRyKS0+ZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5zaXplKTsKKysJICBtZW1jcHkgKGRh dGEgKyBEV19CTE9DSyAoYXR0ciktPnNpemUsIGFkZGl0aW9uYWxfZGF0YSwKKysJCSAgYWRkaXRp b25hbF9kYXRhX3NpemUpOworKworKwkgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOworKwkg IGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAoYXR0ciktPnNpemUgKyBhZGRpdGlvbmFs X2RhdGFfc2l6ZTsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGJhdG9uLT5sb2NleHByLmRh dGEgPSBEV19CTE9DSyAoYXR0ciktPmRhdGE7CisrCSAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERX X0JMT0NLIChhdHRyKS0+c2l6ZTsKKysJfQorKworICAgICAgIHByb3AtPmRhdGEuYmF0b24gPSBi YXRvbjsKKyAgICAgICBwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOworLSAgICAgIGdkYl9hc3Nl cnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7CisrICAgICAgZ2RiX2Fzc2VydChwcm9wLT5k YXRhLmJhdG9uICE9IE5VTEwpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfcmVm IChhdHRyKSkKKyAgICAgeworQEAgLTE0ODk3LDggKzE0OTgzLDI4IEBAIGF0dHJfdG9fZHluYW1p Y19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRp ZSwKKyAJCWJhdG9uID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2Jh dG9uKTsKKyAJCWJhdG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwg dGFyZ2V0X2N1KTsKKyAJCWJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7CistCQli YXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKKy0JCWJh dG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKworKwkJ aWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkK KysJCSAgeworKwkJICAgIGdkYl9ieXRlICpkYXRhOworKworKwkJICAgIGRhdGEgPSAoZ2RiX2J5 dGUgKikgb2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCQkJ ICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7 CisrCQkgICAgbWVtY3B5IChkYXRhLCBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhLAorKwkJ CSAgICBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEg KyBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplLAorKwkJCSAgICBhZGRpdGlvbmFsX2RhdGEs IGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysKKysJCSAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0g ZGF0YTsKKysJCSAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gKERXX0JMT0NLICh0YXJnZXRfYXR0 ciktPnNpemUKKysJCQkJCSAgICsgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKwkJICB9CisrCQll bHNlCisrCQkgIHsKKysJCSAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKHRhcmdl dF9hdHRyKS0+ZGF0YTsKKysJCSAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRh cmdldF9hdHRyKS0+c2l6ZTsKKysJCSAgfQorKworIAkJcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9u OworIAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKKyAJCWdkYl9hc3NlcnQgKHByb3AtPmRh dGEuYmF0b24gIT0gTlVMTCk7CitAQCAtMTUwMDgsMTcgKzE1MTE0LDE3IEBAIHJlYWRfc3VicmFu Z2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIAor ICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvd2VyX2JvdW5kLCBjdSk7CisgICBp ZiAoYXR0cikKKy0gICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZsb3cp OworKyAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdywgTlVMTCwg MCk7CisgICBlbHNlIGlmICghbG93X2RlZmF1bHRfaXNfdmFsaWQpCisgICAgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywgXygiTWlzc2luZyBEV19BVF9sb3dlcl9ib3VuZCAiCisgCQkJ CSAgICAgICItIERJRSBhdCAweCV4IFtpbiBtb2R1bGUgJXNdIiksCisgCSAgICAgICBkaWUtPm9m ZnNldC5zZWN0X29mZiwgb2JqZmlsZV9uYW1lIChjdS0+b2JqZmlsZSkpOworIAorICAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3VwcGVyX2JvdW5kLCBjdSk7CistICBpZiAoIWF0dHJf dG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCkpCisrICBpZiAoIWF0dHJfdG9f ZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgTlVMTCwgMCkpCisgICAgIHsKKyAg ICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY291bnQsIGN1KTsKKy0gICAgICBp ZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoKSkKKysgICAgICBp ZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBOVUxMLCAwKSkK KyAJeworIAkgIC8qIElmIGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0 aW9uIGhlcmUuICAqLworIAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2lu ZCA9PSBQUk9QX0NPTlNUKQorQEAgLTIyMzg5LDcgKzIyNDk1LDcgQEAgc2V0X2RpZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2FsbG9jYXRlZCwgY3UpOwor ICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0gICAgICBpZiAoYXR0 cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgICAgICBpZiAoYXR0 cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKKyAgICAg ICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQUxMT0NBVEVELCBwcm9wLCB0eXBlLCBvYmpmaWxl KTsKKyAgICAgfQorICAgZWxzZSBpZiAoYXR0ciAhPSBOVUxMKQorQEAgLTIyNDA0LDcgKzIyNTEw LDcgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2Fzc29jaWF0ZWQsIGN1KTsKKyAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQor ICAgICB7CistICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm cHJvcCkpCisrICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm cHJvcCwgTlVMTCwgMCkpCisgICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FTU09DSUFU RUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyICE9IE5V TEwpCitAQCAtMjI0MTcsNyArMjI1MjMsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisgICAv KiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KKyAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CistICBpZiAoYXR0 cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgIGlmIChhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQorICAgICBhZGRf ZHluX3Byb3AgKERZTl9QUk9QX0RBVEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9iamZpbGUpOwor IAorICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQorZGlm ZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKK2luZGV4IGI1M2U2NDku LjBhYTkxMTMgMTAwNjQ0CistLS0gYS9nZGIvZ2RidHlwZXMuYworKysrIGIvZ2RiL2dkYnR5cGVz LmMKK0BAIC0xODQxLDYgKzE4NDEsNyBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVj dCB0eXBlICp0eXBlLCBpbnQgdG9wX2xldmVsKQorICAgICAgIH0KKyAKKyAgICAgY2FzZSBUWVBF X0NPREVfQVJSQVk6CisrICAgIGNhc2UgVFlQRV9DT0RFX1NUUklORzoKKyAgICAgICB7CisgCWdk Yl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7CisgCitAQCAtMTk0NSw3ICsxOTQ2 LDggQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgIHN0cnVj dCB0eXBlICphcnlfZGltOworICAgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKKyAKKy0gIGdk Yl9hc3NlcnQgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKTsKKysgIGdkYl9h c3NlcnQgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZCisrCSAgICAgIHx8IFRZ UEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORyk7CisgCisgICB0eXBlID0gY29weV90 eXBlICh0eXBlKTsKKyAKK0BAIC0xOTcwLDEzICsxOTcyLDE3IEBAIHJlc29sdmVfZHluYW1pY19h cnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCisgCisgICBhcnlfZGltID0gY2hlY2tfdHlwZWRlZiAo VFlQRV9UQVJHRVRfVFlQRSAoZWx0X3R5cGUpKTsKKyAKKy0gIGlmIChhcnlfZGltICE9IE5VTEwg JiYgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfQVJSQVkpCisrICBpZiAoYXJ5X2Rp bSAhPSBOVUxMICYmIChUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJBWQorKyAg ICAgIHx8IFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX1NUUklORykpCisgICAgIGVs dF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsKKyAg IGVsc2UKKyAgICAgZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKKyAKKy0gIHJl dHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdl X3R5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfRklF TERfQklUU0laRSAodHlwZSwgMCkpOworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9D T0RFX1NUUklORykKKysgICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdfdHlwZSAodHlwZSwgZWx0X3R5 cGUsIHJhbmdlX3R5cGUpOworKyAgZWxzZQorKyAgICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVf d2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLAorKwkJCQkJICBUWVBFX0ZJ RUxEX0JJVFNJWkUgKHR5cGUsIDApKTsKKyB9CisgCisgLyogUmVzb2x2ZSBkeW5hbWljIGJvdW5k cyBvZiBtZW1iZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0YXRpYworQEAgLTIxODEsNiArMjE4 Nyw3IEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwK KyAgCSAgYnJlYWs7CisgCisgCWNhc2UgVFlQRV9DT0RFX0FSUkFZOgorKwljYXNlIFRZUEVfQ09E RV9TVFJJTkc6CisgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAodHlw ZSwgYWRkcl9zdGFjayk7CisgCSAgYnJlYWs7CisgCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpbmdzLmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjQ4 NGZkY2IKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmluZ3MuZXhwCitAQCAtMCwwICsxLDEwMyBAQAorKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rl c3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVi dWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIGNoZWNrIHRoYXQg YWxsIGZvcnRyYW4gc3RhbmRhcmQgZGF0YXR5cGVzIHdpbGwgYmUKKysjIGhhbmRsZWQgY29ycmVj dGx5IHdoZW4gdXNpbmcgYXMgVkxBJ3MKKysKKytpZiAhW3J1bnRvX21haW5dIHsKKysgICAgdW50 ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSJd CisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0xIgorK3Nl dCB0ZXN0ICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdF9tdWx0aXBsZSAi d2hhdGlzIHZhcl9jaGFyIiAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqMTAgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QK KysgICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFyYWN0ZXJcXCoxMFxyXG4kZ2RiX3Byb21wdCAk IiB7CisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKyt9Cisrc2V0IHRlc3QgInB0eXBlIHZhcl9j aGFyIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIHZhcl9jaGFyIiAkdGVz dCB7CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXHJc biRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgInR5 cGUgPSBjaGFyYWN0ZXJcXCoxMFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBwYXNzICR0ZXN0 CisrICAgIH0KKyt9CisrCisrCisrZ2RiX3Rlc3QgIm5leHQiICJcXGQrLip2YXJfY2hhciA9ICdm b28nLioiIFwKKysgICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIHZhcl9jaGFyIgorK2dk Yl90ZXN0ICJwcmludCBsIiAiID0gXFwuVFJVRVxcLiIgInByaW50IGFsbG9jYXRpb24gc3RhdHVz IGZpcnN0IHRpbWUiCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InZhcl9jaGFyLWZpbGxlZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2No YXItZmlsbGVkLTEiCisrc2V0IHRlc3QgInByaW50IHZhcl9jaGFyLCB2YXJfY2hhci1maWxsZWQt MSIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJl ICI9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcXCkgJGhleFxyXG4kZ2RiX3By b21wdCAkIiB7CisrICAgICAgICBnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiPSAnZm9vJyIg InByaW50ICp2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVkLTEiCisrCSAgICBwYXNzICR0ZXN0Cisr ICAgIH0KKysgICAgLXJlICI9ICdmb28nXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3Mg JHRlc3QKKysgICAgfQorK30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2NoYXIsIHZhcl9jaGFyLWZp bGxlZC0xIgorK2dkYl90ZXN0X211bHRpcGxlICJwdHlwZSB2YXJfY2hhciIgJHRlc3QgeworKyAg ICAtcmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXHJcbiRnZGJfcHJv bXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFy YWN0ZXJcXCozXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQor K30KKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMSkiICIgPSAxMDIgJ2YnIiAicHJpbnQgdmFy X2NoYXIoMSkiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDMpIiAiID0gMTExICdvJyIgInBy aW50IHZhcl9jaGFyKDMpIgorKworKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2YXJfY2hhci1maWxsZWQtMiJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZh cl9jaGFyLWZpbGxlZC0yIgorK3NldCB0ZXN0ICJwcmludCB2YXJfY2hhciwgdmFyX2NoYXItZmls bGVkLTIiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IHZhcl9jaGFyIiAkdGVzdCB7CisrICAg IC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXFwpICRoZXhcclxuJGdk Yl9wcm9tcHQgJCIgeworKyAgICAgICAgZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhciIgIj0gJ2Zv b2JhciciICJwcmludCAqdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0yIgorKwkgICAgcGFzcyAk dGVzdAorKyAgICB9CisrICAgIC1yZSAiPSAnZm9vYmFyJ1xyXG4kZ2RiX3Byb21wdCAkIiB7Cisr CSAgICBwYXNzICR0ZXN0CisrICAgIH0KKyt9Cisrc2V0IHRlc3QgInB0eXBlIHZhcl9jaGFyLCB2 YXJfY2hhci1maWxsZWQtMiIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5cGUgdmFyX2NoYXIiICR0 ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKVxy XG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICJ0 eXBlID0gY2hhcmFjdGVyXFwqNlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBwYXNzICR0ZXN0 CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaW5ncy5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjNjMjI3MzUKKy0tLSAvZGV2L251 bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCitAQCAt MCwwICsxLDM5IEBACisrISBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisr ISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyEg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIQorKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3Byb2dyYW0gdmxh X3N0cmluZ3MKKysgIGNoYXJhY3RlcihsZW49OiksIHRhcmdldCwgYWxsb2NhdGFibGUgICA6OiB2 YXJfY2hhcgorKyAgY2hhcmFjdGVyKGxlbj06KSwgcG9pbnRlciAgICAgICAgICAgICAgIDo6IHZh cl9jaGFyX3AKKysgIGxvZ2ljYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OiBs CisrCisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTEwKSA6OiB2YXJfY2hhcikKKysgIGwgPSBh bGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0x CisrICB2YXJfY2hhciA9ICdmb28nCisrICBkZWFsbG9jYXRlKHZhcl9jaGFyKSAgICAgICAgICAg ICAgICAgICAgISB2YXJfY2hhci1maWxsZWQtMQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikg ICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZGVhbGxvY2F0ZWQKKysgIGFsbG9jYXRlKGNoYXJh Y3RlcihsZW49NDIpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikKKysg IHZhcl9jaGFyID0gJ2Zvb2JhcicKKysgIHZhcl9jaGFyID0gJycgICAgICAgICAgICAgICAgICAg ICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0yCisrICB2YXJfY2hhciA9ICdiYXInICAgICAgICAg ICAgICAgICAgICAgICAgISB2YXJfY2hhci1lbXB0eQorKyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikK KysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MjEpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9j YXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTMKKysg IHZhcl9jaGFyID0gJ2pvaG5kb2UnCisrICB2YXJfY2hhcl9wID0+IHZhcl9jaGFyCisrICBsID0g YXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLWFzc29jaWF0 ZWQKKysgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCisrICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9w KSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCisrZW5kIHByb2dyYW0g dmxhX3N0cmluZ3MKKy0tIAorMi43LjQKKwoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtbG9n aWNhbC1ub3QucGF0Y2ggYi9nZGItdmxhLWludGVsLWxvZ2ljYWwtbm90LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzUxYzg0Li4wMDAwMDAwCi0tLSBhL2dkYi12bGEtaW50 ZWwtbG9naWNhbC1ub3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0g Li9nZGIvdmFsdWUuYy1vcmlnCTIwMTUtMDItMTEgMTU6MTc6NTguNDEzMjQxNzc5ICswMTAwCi0r KysgLi9nZGIvdmFsdWUuYwkyMDE1LTAyLTExIDE1OjE5OjQyLjA2ODcxNjk0OSArMDEwMAotQEAg LTMwNzQsNyArMzA3NCw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICph cmcKLSAJfQotIAotICAgICAgIGlmICghVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotLSAgICAg ICAgICB8fCAhVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0r ICAgICAgICAgIHx8IFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSAhPSBQUk9QX0NPTlNU KQotIAl2LT5vZmZzZXQgPSAodmFsdWVfb2Zmc2V0IChhcmcxKSArIG9mZnNldAotIAkJICAgICAr IHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkpOwotICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2Ri LXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2ggYi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZp eC5wYXRjaAppbmRleCBmNjE5N2YyLi4zMjE0ZGUyIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVs LXN0cmluZ2J0LWZpeC5wYXRjaAorKysgYi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRj aApAQCAtMzEsMjYgKzMxLDYgQEAgSmFuCiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9dXMtYXNjaWkKIENvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9InZsYXN0 cmluZ29ubHkucGF0Y2giCiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBl cy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0eXBl cy5jCTIwMTUtMDUtMzEgMTY6MTQ6MDQuMTY0NTMzODMzICswMjAwCi0rKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZ2RidHlwZXMuYwkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NDU0NTM0NCArMDIw MAotQEAgLTE4NTEsNiArMTg1MSw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0 IHR5cGUgKnQKLSAgICAgICB9Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgotKyAgICBj YXNlIFRZUEVfQ09ERV9TVFJJTkc6Ci0gICAgICAgewotIAlnZGJfYXNzZXJ0IChUWVBFX05GSUVM RFMgKHR5cGUpID09IDEpOwotIAotQEAgLTIxOTIsNiArMjE5Myw3IEBAIHJlc29sdmVfZHluYW1p Y190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHkKLSAJICB9Ci0gCi0gCWNhc2UgVFlQRV9DT0RFX0FS UkFZOgotKwljYXNlIFRZUEVfQ09ERV9TVFJJTkc6Ci0gCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29s dmVfZHluYW1pY19hcnJheSAodHlwZSwgYWRkcl9zdGFjayk7Ci0gCSAgYnJlYWs7Ci0gCiBJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMt b3RoZXItZnJhbWUtc3R1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLXRl c3RzLnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5mYzhhYjViCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRl bC10ZXN0cy5wYXRjaApAQCAtMCwwICsxLDM3NyBAQAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJ MjAxNi0wMS0wOCAxOToxNTo0NC45ODM2Mzc2ODAgKzAxMDAKK0BAIC0wLDAgKzEsNjEgQEAKKysj IENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisr IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKKysK KytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAk e3NyY2ZpbGV9IFwKKysgICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEK Kyt9CisrCisraWYgIVtydW50byBNQUlOX19dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0 IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKKysgICAgY29udGludWUKKyt9CisrCisrIyBDaGVj ayBWTEEgcGFzc2VkIHRvIGZpcnN0IEZvcnRyYW4gZnVuY3Rpb24uCisrZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMxLXZsYS1wYXNzZWQiXQorK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJmdW5jMS12bGEtcGFzc2VkIgorK2dkYl90ZXN0ICJwcmludCB2bGEiICIg PSBcXCggKlxcKCAqMjIsICoyMiwgKjIyLFxbKCkyMiwgLlxdKlxcKSIgXAorKyAgInByaW50IHZs YSAoZnVuYzEpIgorK2dkYl90ZXN0ICJwdHlwZSB2bGEiICJ0eXBlID0gaW50ZWdlclxcXChraW5k PTRcXFwpIFxcXCgxMCwxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEgKGZ1bmMxKSIKKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtdmxhLW1vZGlmaWVkIl0KKytn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEtdmxhLW1vZGlmaWVkIgorK2dkYl90ZXN0 ICJwcmludCB2bGEoNSw1KSIgIiA9IDU1IiAicHJpbnQgdmxhKDUsNSkgKGZ1bmMxKSIKKytnZGJf dGVzdCAicHJpbnQgdmxhKDcsNykiICIgPSA3NyIgInByaW50IHZsYSg1LDUpIChmdW5jMSkiCisr CisrIyBDaGVjayBpZiB0aGUgdmFsdWVzIGFyZSBjb3JyZWN0IGFmdGVyIHJldHVybmluZyBmcm9t IGZ1bmMxCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMxLXJldHVy bmVkIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEtcmV0dXJuZWQiCisrZ2Ri X3Rlc3QgInByaW50IHJldCIgIiA9IC5UUlVFLiIgInByaW50IHJldCBhZnRlciBmdW5jMSByZXR1 cm5lZCIKKysKKysjIENoZWNrIFZMQSBwYXNzZWQgdG8gc2Vjb25kIEZvcnRyYW4gZnVuY3Rpb24K KytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzItdmxhLXBhc3NlZCJd CisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMyLXZsYS1wYXNzZWQiCisrZ2RiX3Rl c3QgInByaW50IHZsYSIgXAorKyAgIiA9IFxcXCg0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwg NDQsIDQ0LCA0NFxcXCkiIFwKKysgICJwcmludCB2bGEgKGZ1bmMyKSIKKytnZGJfdGVzdCAicHR5 cGUgdmxhIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoMTBcXFwpIiBcCisrICAi cHR5cGUgdmxhIChmdW5jMikiCisrCisrIyBDaGVjayBpZiB0aGUgcmV0dXJuZWQgVkxBIGhhcyB0 aGUgY29ycmVjdCB2YWx1ZXMgYW5kIHB0eXBlLgorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJmdW5jMi1yZXR1cm5lZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImZ1bmMyLXJldHVybmVkIgorK2dkYl90ZXN0ICJwcmludCB2bGEzIiAiID0gXFxcKDEsIDIsIDQ0 LCA0LCA0NCwgNDQsIDQ0LCA4LCA0NCwgNDRcXFwpIiBcCisrICAicHJpbnQgdmxhMyAoYWZ0ZXIg ZnVuYzIpIgorK2dkYl90ZXN0ICJwdHlwZSB2bGEzIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00 XFxcKSBcXFwoMTBcXFwpIiBcCisrICAicHR5cGUgdmxhMyAoYWZ0ZXIgZnVuYzIpIgorSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMu ZjkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtZnVuYy5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODM2Mzc2ODAgKzAxMDAKK0BA IC0wLDAgKzEsNzEgQEAKKyshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK KyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr ISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyshCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyshIEZvdW5kYXRpb24sIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisr CisrbG9naWNhbCBmdW5jdGlvbiBmdW5jMSAodmxhKQorKyAgaW1wbGljaXQgbm9uZQorKyAgaW50 ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhICg6LCA6KQorKyAgZnVuYzEgPSBhbGxvY2F0ZWQodmxh KQorKyAgdmxhKDUsNSkgPSA1NSAgICAgICAgICAgICAgICEgZnVuYzEtdmxhLXBhc3NlZAorKyAg dmxhKDcsNykgPSA3NworKyAgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgICEgZnVuYzEtdmxh LW1vZGlmaWVkCisrZW5kIGZ1bmN0aW9uIGZ1bmMxCisrCisrZnVuY3Rpb24gZnVuYzIodmxhKQor KyAgaW1wbGljaXQgbm9uZQorKyAgaW50ZWdlciA6OiB2bGEgKDopCisrICBpbnRlZ2VyIDo6IGZ1 bmMyKHNpemUodmxhKSkKKysgIGludGVnZXIgOjogaworKworKyAgdmxhKDEpID0gMSAgICAgICAg ICAgICAgICAgICAgISBmdW5jMi12bGEtcGFzc2VkCisrICB2bGEoMikgPSAyCisrICB2bGEoNCkg PSA0CisrICB2bGEoOCkgPSA4CisrCisrICBmdW5jMiA9IHZsYQorK2VuZCBmdW5jdGlvbiBmdW5j MgorKworK3Byb2dyYW0gdmxhX2Z1bmMKKysgIGltcGxpY2l0IG5vbmUKKysgIGludGVyZmFjZQor KyAgICBsb2dpY2FsIGZ1bmN0aW9uIGZ1bmMxICh2bGEpCisrICAgICAgaW50ZWdlciA6OiB2bGEg KDosIDopCisrICAgIGVuZCBmdW5jdGlvbgorKyAgZW5kIGludGVyZmFjZQorKyAgaW50ZXJmYWNl CisrICAgIGZ1bmN0aW9uIGZ1bmMyICh2bGEpCisrICAgICAgaW50ZWdlciA6OiB2bGEgKDopCisr ICAgICAgaW50ZWdlciBmdW5jMihzaXplKHZsYSkpCisrICAgIGVuZCBmdW5jdGlvbgorKyAgZW5k IGludGVyZmFjZQorKworKyAgbG9naWNhbCA6OiByZXQKKysgIGludGVnZXIsIGFsbG9jYXRhYmxl IDo6IHZsYTEgKDosIDopCisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEyICg6KQorKyAg aW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhMyAoOikKKysKKysgIHJldCA9IC5GQUxTRS4KKysK KysgIGFsbG9jYXRlICh2bGExICgxMCwxMCkpCisrICB2bGExKDosOikgPSAyMgorKworKyAgYWxs b2NhdGUgKHZsYTIgKDEwKSkKKysgIHZsYTIoOikgPSA0NAorKworKyAgcmV0ID0gZnVuYzEodmxh MSkKKysgIHZsYTMgPSBmdW5jMih2bGEyKSAgICAgICAgICAhIGZ1bmMxLXJldHVybmVkCisrCisr ICByZXQgPSAuVFJVRS4gICAgICAgICAgICAgICAgISBmdW5jMi1yZXR1cm5lZAorK2VuZCBwcm9n cmFtIHZsYV9mdW5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAJMjAxNi0wMS0wOCAxOTox NTo0NC45ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAgKzEsNDQgQEAKKysjIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKKysKKytpZiB7IFtwcmVwYXJl X2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKKysg ICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgIVty dW50byBNQUlOX19dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3Bv aW50IE1BSU5fXyIKKysgICAgY29udGludWUKKyt9CisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgInJlLXJldmVyc2UtZWxlbWVudHMiXQorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJyZS1yZXZlcnNlLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhIiAi ID0gXFxcKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXFxcKSIgXAorKyAgInByaW50IHJl LXJldmVyc2UtZWxlbWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJp bnQgZmlyc3QgcmUtcmV2ZXJzZS1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEwKSIg IiA9IDEwIiAicHJpbnQgbGFzdCByZS1yZXZlcnNlLWVsZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIm9kZC1lbGVtZW50cyJdCisrZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgIm9kZC1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxc XCgxLCAzLCA1LCA3LCA5XFxcKSIgInByaW50IG9kZC1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJp bnQgcHZsYSgxKSIgIiA9IDEiICJwcmludCBmaXJzdCBvZGQtZWxlbWVudCIKKytnZGJfdGVzdCAi cHJpbnQgcHZsYSg1KSIgIiA9IDkiICJwcmludCBsYXN0IG9kZC1lbGVtZW50IgorKworK2dkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzaW5nbGUtZWxlbWVudCJdCisrZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInNpbmdsZS1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBw dmxhIiAiID0gXFxcKDVcXFwpIiAicHJpbnQgc2luZ2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInBy aW50IHB2bGEoMSkiICIgPSA1IiAicHJpbnQgb25lIHNpbmdsZS1lbGVtZW50IgorSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5m OTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1zdHJpZGUuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitA QCAtMCwwICsxLDMwIEBACisrISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y CisrISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIQorKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrISBGb3VuZGF0aW9uLCBJbmMuLCA1 OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgor KworK3Byb2dyYW0gdmxhX3N0cmlkZQorKyAgaW50ZWdlciwgdGFyZ2V0LCBhbGxvY2F0YWJsZSA6 OiB2bGEgKDopCisrICBpbnRlZ2VyLCBwb2ludGVyIDo6IHB2bGEgKDopCisrCisrICBhbGxvY2F0 ZSh2bGEoMTApKQorKyAgdmxhID0gKC8gKEksIEkgPSAxLDEwKSAvKQorKworKyAgcHZsYSA9PiB2 bGEoMTA6MTotMSkKKysgIHB2bGEgPT4gcHZsYSgxMDoxOi0xKQorKyAgcHZsYSA9PiB2bGEoMTox MDoyKSAgICEgcmUtcmV2ZXJzZS1lbGVtZW50cworKyAgcHZsYSA9PiB2bGEoNTo0Oi0yKSAgICEg b2RkLWVsZW1lbnRzCisrCisrICBwdmxhID0+IG51bGwoKSAgICAgICAgISBzaW5nbGUtZWxlbWVu dAorK2VuZCBwcm9ncmFtIHZsYV9zdHJpZGUKK0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmV4cAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Nv bGQuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitAQCAtMCwwICsxLDEw MSBAQAorKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIu ZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVz dGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJl dHVybiAtMQorK30KKysKKysjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4gc3RhbmRhcmQgZGF0YXR5 cGVzIHdpbGwgYmUKKysjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYXMgVkxBJ3MKKysK KytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRv IGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItYWxsb2NhdGVkLTEiXQorK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSIKKytnZGJfdGVzdCAicHJp bnQgdmFyX2NoYXIiIFwKKysgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxc KVxcKSAke2hleH0iIFwKKysgICJwcmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgZmlyc3Qg dGltZSIKKytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqMTAgXFwpIiBcCisrICAid2hhdGlzIHZhcl9jaGFyIGZpcnN0IHRpbWUiCisr Z2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVy XFwqMTAgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAi bmV4dCIgIlxcZCsuKnZhcl9jaGFyID0gJ2ZvbycuKiIgXAorKyAgIm5leHQgdG8gYWxsb2NhdGlv biBzdGF0dXMgb2YgdmFyX2NoYXIiCisrZ2RiX3Rlc3QgInByaW50IGwiICIgPSAuVFJVRS4iICJw cmludCBhbGxvY2F0aW9uIHN0YXR1cyBmaXJzdCB0aW1lIgorKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1maWxsZWQtMSJdCisrZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgInZhcl9jaGFyLWZpbGxlZC0xIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hh ciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcXCkgJHtoZXh9 IiBcCisrICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rl c3QgInByaW50ICp2YXJfY2hhciIgIiA9ICdmb28nIiBcCisrICAicHJpbnQgKnZhcl9jaGFyIGFm dGVyIGZpbGxlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hh ciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0 eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIgXAorKyAgInB0eXBlIHZhcl9j aGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigx KSIgIiA9IDEwMiAnZiciICJwcmludCB2YXJfY2hhcigxKSIKKytnZGJfdGVzdCAicHJpbnQgdmFy X2NoYXIoMykiICIgPSAxMTEgJ28nIiAicHJpbnQgdmFyX2NoYXIoMykiCisrCisrZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0yIl0KKytnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTIiCisrZ2RiX3Rlc3QgInByaW50 IHZhcl9jaGFyIiBcCisrICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKVxc KSAke2hleH0iIFwKKysgICJwcmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgc2Vjb25kIHRp bWUiCisrZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhciIgIiA9ICdmb29iYXInIiBcCisrICAicHJp bnQgKnZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBzZWNvbmQgdGltZSIKKytnZGJfdGVzdCAid2hh dGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXCkiIFwK KysgICJ3aGF0aXMgdmFyX2NoYXIgc2Vjb25kIHRpbWUiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcl9j aGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXCkiIFwKKysgICJwdHlw ZSB2YXJfY2hhciBzZWNvbmQgdGltZSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAidmFyX2NoYXItZW1wdHkiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2 YXJfY2hhci1lbXB0eSIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKKysgICIgPSBcXChQ VFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZh cl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0g XCJcIiIgInByaW50ICp2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCisrZ2RiX3Rlc3QgIndoYXRp cyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCisr ICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKKytnZGJfdGVzdCAicHR5cGUgdmFy X2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxcKSIgXAorKyAgInB0 eXBlIHZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAidmFyX2NoYXItYWxsb2NhdGVkLTMiXQorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2YXJfY2hhci1hbGxvY2F0ZWQtMyIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2No YXIiIFwKKysgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjIxIFxcKVxcKSAke2hl eH0iIFwKKysgICJwcmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKKytn ZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVy XFwqMjEgXFwpIiBcCisrICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0 aW1lIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjIxIFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0 aGlyZCB0aW1lIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJf Y2hhcl9wLWFzc29jaWF0ZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hh cl9wLWFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyX3AiIFwKKysgICIgPSBc XChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50 IHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFy X3AiICIgPSAnam9obmRvZSciIFwKKysgICJwcmludCAqdmFyX2NoYXJfIGFmdGVyIGFzc29jaWF0 ZWQiCisrZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhcl9wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqNyBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lh dGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhcl9wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqNyBcXCkiIFwKKysgICJwdHlwZSB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0 ZWQiCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaW5nc29sZC5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmY5MAkyMDE2LTAxLTA4IDE5OjE1 OjQ0Ljk4NDYzNzY4NiArMDEwMAorQEAgLTAsMCArMSw0MCBAQAorKyEgQ29weXJpZ2h0IDIwMTQg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor KyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24s IE1BIDAyMTExLTEzMDcsIFVTQS4KKysKKytwcm9ncmFtIHZsYV9zdHJpbmdzCisrICBjaGFyYWN0 ZXIobGVuPTopLCB0YXJnZXQsIGFsbG9jYXRhYmxlICAgOjogdmFyX2NoYXIKKysgIGNoYXJhY3Rl cihsZW49OiksIHBvaW50ZXIgICAgICAgICAgICAgICA6OiB2YXJfY2hhcl9wCisrICBsb2dpY2Fs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjogbAorKworKyAgYWxsb2NhdGUoY2hh cmFjdGVyKGxlbj0xMCkgOjogdmFyX2NoYXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAg ICAgICAgICAgICAgICAgISB2YXJfY2hhci1hbGxvY2F0ZWQtMQorKyAgdmFyX2NoYXIgPSAnZm9v JworKyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXIt ZmlsbGVkLTEKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAhIHZh cl9jaGFyLWRlYWxsb2NhdGVkCisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTQyKSA6OiB2YXJf Y2hhcikKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpCisrICB2YXJfY2hhciA9ICdmb29iYXIn CisrICB2YXJfY2hhciA9ICcnICAgICAgICAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1m aWxsZWQtMgorKyAgdmFyX2NoYXIgPSAnYmFyJyAgICAgICAgICAgICAgICAgICAgICAgICEgdmFy X2NoYXItZW1wdHkKKysgIGRlYWxsb2NhdGUodmFyX2NoYXIpCisrICBhbGxvY2F0ZShjaGFyYWN0 ZXIobGVuPTIxKSA6OiB2YXJfY2hhcikKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAg ICAgICAgICAgICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0zCisrICB2YXJfY2hhciA9ICdqb2huZG9l JworKyAgdmFyX2NoYXJfcCA9PiB2YXJfY2hhcgorKyAgbCA9IGFzc29jaWF0ZWQodmFyX2NoYXJf cCkgICAgICAgICAgICAgICEgdmFyX2NoYXJfcC1hc3NvY2lhdGVkCisrICB2YXJfY2hhcl9wID0+ IG51bGwoKQorKyAgbCA9IGFzc29jaWF0ZWQodmFyX2NoYXJfcCkgICAgICAgICAgICAgICEgdmFy X2NoYXJfcC1ub3QtYXNzb2NpYXRlZAorK2VuZCBwcm9ncmFtIHZsYV9zdHJpbmdzCgpkaWZmIC0t Z2l0IGEvZ2RiLXZsYS1pbnRlbC5wYXRjaCBiL2dkYi12bGEtaW50ZWwucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkZjZiMjMuLjAwMDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRl bC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ODAgKzAsMCBAQAotW1BBVENIIDAwLzIzXSBG b3J0cmFuIGR5bmFtaWMgYXJyYXkgc3VwcG9ydAotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE0LTA2L21zZzAwMTA4Lmh0bWwKLWh0dHBzOi8vZ2l0aHViLmNvbS9pbnRl bC1nZGIvdmxhL3RyZWUvdmxhLWZvcnRyYW4KLQotR0lUIHNuYXBzaG90OgotY29tbWl0IDUxMWJm ZjUyMDM3MmZmYzEwZmEyZmY1NjljMTc2YmRmMWU2ZTQ3NWQKLQotCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2MtdmFscHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA2NTU4 MjM1OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jLXZhbHByaW50LmMJMjAx Ni0wMS0wOCAxOToxNTo0NC45NzQ2Mzc2MzAgKzAxMDAKLUBAIC02NDIsNyArNjQyLDE2IEBACi0g CXsKLSAJICAvKiBub3JtYWwgY2FzZSAqLwotIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg IigiKTsKLS0JICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7 Ci0rCSAgaWYgKGlzX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQotKwkg ICAgewotKwkgICAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci0rCi0rCSAgICAgIHYgPSB2YWx1ZV9pbmQg KHZhbCk7Ci0rCSAgICAgIHYgPSB2YWx1ZV9hZGRyICh2KTsKLSsJICAgICAgdHlwZV9wcmludCAo dmFsdWVfdHlwZSAodiksICIiLCBzdHJlYW0sIC0xKTsKLSsJICAgIH0KLSsJICBlbHNlCi0rCSAg ICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7Ci0gCSAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKLSAJfQotICAgICB9Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2R3YXJmMmxvYy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvZHdhcmYybG9jLmgJMjAxNi0wMS0wOCAxOToxNTozNS4wNjY1 ODIzNjUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9jLmgJMjAx Ni0wMS0wOCAxOToxNTo0NC45NzQ2Mzc2MzAgKzAxMDAKLUBAIC0xMzgsNiArMTM4LDExIEBACi0g CQkJICAgICAgc3RydWN0IHByb3BlcnR5X2FkZHJfaW5mbyAqYWRkcl9zdGFjaywKLSAJCQkgICAg ICBDT1JFX0FERFIgKnZhbHVlKTsKLSAKLSsvKiBDaGVja3MgaWYgYSBkd2FyZiBsb2NhdGlvbiBk ZWZpbml0aW9uIGlzIHZhbGlkLgotKyAgIFJldHVybnMgMSBpZiB2YWxpZDsgMCBvdGhlcndpc2Uu ICAqLwotKwotK2V4dGVybiBpbnQgZHdhcmYyX2FkZHJlc3NfZGF0YV92YWxpZCAoY29uc3Qgc3Ry dWN0IHR5cGUgKnR5cGUpOwotKwotIC8qIEEgaGVscGVyIGZvciB0aGUgY29tcGlsZXIgaW50ZXJm YWNlIHRoYXQgY29tcGlsZXMgYSBzaW5nbGUgZHluYW1pYwotICAgIHByb3BlcnR5IHRvIEMgY29k ZS4KLSAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYycmVhZC5jCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIw MTYtMDEtMDggMTk6MTU6MzUuMDc4NTgyNDMyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MDYzNzY2MyArMDEwMAot QEAgLTE3NDUsNyArMTc0NSw5IEBACi0gCi0gc3RhdGljIGludCBhdHRyX3RvX2R5bmFtaWNfcHJv cCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKLSAJCQkJIHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLS0JCQkJIHN0cnVjdCBkeW5hbWljX3Byb3AgKnBy b3ApOwotKwkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKLSsJCQkJIGNvbnN0IGdkYl9i eXRlICphZGRpdGlvbmFsX2RhdGEsCi0rCQkJCSBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpOwot IAotIC8qIG1lbW9yeSBhbGxvY2F0aW9uIGludGVyZmFjZSAqLwotIAotQEAgLTExNDIwLDcgKzEx NDIyLDcgQEAKLSAgICAgewotICAgICAgIG5ld29iai0+c3RhdGljX2xpbmsKLSAJPSBYT0JORVcg KCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHN0cnVjdCBkeW5hbWljX3Byb3ApOwotLSAgICAg IGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5r KTsKLSsgICAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgbmV3b2JqLT5z dGF0aWNfbGluaywgTlVMTCwgMCk7Ci0gICAgIH0KLSAKLSAgIGN1LT5saXN0X2luX3Njb3BlID0g JmxvY2FsX3N5bWJvbHM7Ci1AQCAtMTQ0NzEsMjkgKzE0NDczLDkyIEBACi0gICBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwotICAgc3RydWN0IHR5 cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKLSAgIHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHI7Ci0tICB1bnNpZ25lZCBpbnQgbGVuZ3RoOwotKyAgdW5zaWduZWQg aW50IGxlbmd0aCA9IFVJTlRfTUFYOwotIAotKyAgaW5kZXhfdHlwZSA9IG9iamZpbGVfdHlwZSAo b2JqZmlsZSktPmJ1aWx0aW5faW50OwotKyAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFu Z2VfdHlwZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKLSsKLSsgIC8qIElmIERXX0FU X3N0cmluZ19sZW5ndGggaXMgZGVmaW5lZCwgdGhlIGxlbmd0aCBpcyBzdG9yZWQgYXQgc29tZSBs b2NhdGlvbgotKyAgICogaW4gbWVtb3J5LiAqLwotICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUs IERXX0FUX3N0cmluZ19sZW5ndGgsIGN1KTsKLSAgIGlmIChhdHRyKQotICAgICB7Ci0tICAgICAg bGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOwotKyAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sg KGF0dHIpKQotKyAgICAgICAgewotKyAgICAgICAgICBzdHJ1Y3QgYXR0cmlidXRlICpieXRlX3Np emUsICpiaXRfc2l6ZTsKLSsgICAgICAgICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOwotKwot KyAgICAgICAgICBieXRlX3NpemUgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUs IGN1KTsKLSsgICAgICAgICAgYml0X3NpemUgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9iaXRf c2l6ZSwgY3UpOwotKwotKyAgICAgICAgICAvKiBEV19BVF9ieXRlX3NpemUgc2hvdWxkIG5ldmVy IG9jY3VyIHRvZ2V0aGVyIGluIGNvbWJpbmF0aW9uIHdpdGgKLSsgICAgICAgICAgICAgRFdfQVRf c3RyaW5nX2xlbmd0aC4gICovCi0rICAgICAgICAgIGlmICgoYnl0ZV9zaXplID09IE5VTEwgJiYg Yml0X3NpemUgIT0gTlVMTCkgfHwKLSsgICAgICAgICAgICAgICAgICAoYnl0ZV9zaXplICE9IE5V TEwgJiYgYml0X3NpemUgPT0gTlVMTCkpCi0rICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmls ZV9jb21wbGFpbnRzLCBfKCJEV19BVF9ieXRlX3NpemUgQU5EICIKLSsgICAgICAgICAgICAgICAg ICAgICAgIkRXX0FUX2JpdF9zaXplIGZvdW5kIHRvZ2V0aGVyIGF0IHRoZSBzYW1lIHRpbWUuIikp OwotKwotKyAgICAgICAgICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIEFORCBEV19BVF9ieXRl X3NpemUgZXhpc3QgdG9nZXRoZXIsIGl0Ci0rICAgICAgICAgICAgIGRlc2NyaWJlcyB0aGUgbnVt YmVyIG9mIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSB0aGUgbGVuZ3RoCi0rICAgICAg ICAgICAgIG1lbW9yeSBsb2NhdGlvbi4gICovCi0rICAgICAgICAgIGlmIChieXRlX3NpemUgIT0g TlVMTCAmJiBiaXRfc2l6ZSA9PSBOVUxMKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAg IC8qIEJ1aWxkIG5ldyBkd2FyZjJfbG9jZXhwcl9iYXRvbiBzdHJ1Y3R1cmUgd2l0aCBhZGRpdGlv bnMgdG8gdGhlCi0rICAgICAgICAgICAgICAgICBkYXRhIGF0dHJpYnV0ZSwgdG8gcmVmbGVjdCBE V0FSRiBzcGVjaWFsaXRpZXMgdG8gZ2V0IGFkZHJlc3MKLSsgICAgICAgICAgICAgICAgIHNpemVz LiAgKi8KLSsgICAgICAgICAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9IHsKLSsg ICAgICAgICAgICAgICAgLyogRFdfT1BfZGVyZWZfc2l6ZTogc2l6ZSBvZiBhbiBhZGRyZXNzIG9u IHRoZSB0YXJnZXQgbWFjaGluZQotKyAgICAgICAgICAgICAgICAgICAoYnl0ZXMpLCB3aGVyZSB0 aGUgc2l6ZSB3aWxsIGJlIHNwZWNpZmllZCBieSB0aGUgbmV4dAotKyAgICAgICAgICAgICAgICAg ICBvcGVyYW5kLiAgKi8KLSsgICAgICAgICAgICAgICAgRFdfT1BfZGVyZWZfc2l6ZSwKLSsgICAg ICAgICAgICAgICAgLyogT3BlcmFuZCBmb3IgRFdfT1BfZGVyZWZfc2l6ZS4gICovCi0rICAgICAg ICAgICAgICAgIERXX1VOU05EIChieXRlX3NpemUpIH07Ci0rCi0rICAgICAgICAgICAgICBpZiAo IWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwKLSsgICAgICAgICAg ICAgICAgICAgICAgYXBwZW5kX29wcywgQVJSQVlfU0laRSAoYXBwZW5kX29wcykpKQotKyAgICAg ICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgXygiQ291bGQgbm90IHBhcnNlIERXX0FUX2J5dGVfc2l6ZSIpKTsKLSsgICAg ICAgICAgICB9Ci0rICAgICAgICAgIGVsc2UgaWYgKGJpdF9zaXplICE9IE5VTEwgJiYgYnl0ZV9z aXplID09IE5VTEwpCi0rICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRz LCBfKCJEV19BVF9zdHJpbmdfbGVuZ3RoIEFORCAiCi0rICAgICAgICAgICAgICAgICAgICAgICJE V19BVF9iaXRfc2l6ZSBmb3VuZCBidXQgbm90IHN1cHBvcnRlZCB5ZXQuIikpOwotKyAgICAgICAg ICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIFdJVEhPVVQgRFdfQVRfYnl0ZV9zaXplIGV4aXN0 LCB0aGUgZGVmYXVsdAotKyAgICAgICAgICAgICBpcyB0aGUgYWRkcmVzcyBzaXplIG9mIHRoZSB0 YXJnZXQgbWFjaGluZS4gICovCi0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB7Ci0rICAg ICAgICAgICAgICBjb25zdCBnZGJfYnl0ZSBhcHBlbmRfb3BzW10gPSB7IERXX09QX2RlcmVmIH07 Ci0rCi0rICAgICAgICAgICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUs IGN1LCAmaGlnaCwgYXBwZW5kX29wcywKLSsgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0la RSAoYXBwZW5kX29wcykpKQotKyAgICAgICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2Nv bXBsYWludHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgXygiQ291bGQgbm90IHBhcnNlIERX X0FUX3N0cmluZ19sZW5ndGgiKSk7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICBUWVBF X1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5oaWdoID0gaGlnaDsKLSsgICAgICAgIH0KLSsgICAg ICBlbHNlCi0rICAgICAgICB7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlw ZSkgPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORF9LSU5EIChy YW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAgIGVsc2UKLSAg ICAgewotLSAgICAgIC8qIENoZWNrIGZvciB0aGUgRFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZS4g ICovCi0rICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLCB3 aGljaCByZXByZXNlbnRzIHRoZSBsZW5ndGgKLSsgICAgICAgICBpbiB0aGlzIGNhc2UuICAqLwot ICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKLSAg ICAgICBpZiAoYXR0cikKLSAgICAgICAgIHsKLS0gICAgICAgICAgbGVuZ3RoID0gRFdfVU5TTkQg KGF0dHIpOwotKyAgICAgICAgICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gRFdfVU5T TkQgKGF0dHIpOwotKyAgICAgICAgICBUWVBFX0hJR0hfQk9VTkRfS0lORCAocmFuZ2VfdHlwZSkg PSBQUk9QX0NPTlNUOwotICAgICAgICAgfQotICAgICAgIGVsc2UKLSAgICAgICAgIHsKLS0gICAg ICAgICAgbGVuZ3RoID0gMTsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBl KSA9IDE7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBS T1BfQ09OU1Q7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLS0gIGluZGV4X3R5cGUgPSBvYmpmaWxl X3R5cGUgKG9iamZpbGUpLT5idWlsdGluX2ludDsKLS0gIHJhbmdlX3R5cGUgPSBjcmVhdGVfc3Rh dGljX3JhbmdlX3R5cGUgKE5VTEwsIGluZGV4X3R5cGUsIDEsIGxlbmd0aCk7Ci0gICBjaGFyX3R5 cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJj aCk7Ci0gICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdl X3R5cGUpOwotIAotQEAgLTE0ODE2LDEzICsxNDg4MSwxNSBAQAotICAgcmV0dXJuIHNldF9kaWVf dHlwZSAoZGllLCB0eXBlLCBjdSk7Ci0gfQotIAotKwotIC8qIFBhcnNlIGR3YXJmIGF0dHJpYnV0 ZSBpZiBpdCdzIGEgYmxvY2ssIHJlZmVyZW5jZSBvciBjb25zdGFudCBhbmQgcHV0IHRoZQotICAg IHJlc3VsdGluZyB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlIGludG8gc3RydWN0IGJvdW5kX3Byb3Au Ci0gICAgUmV0dXJucyAxIGlmIEFUVFIgY291bGQgYmUgcmVzb2x2ZWQgaW50byBQUk9QLCAwIG90 aGVyd2lzZS4gICovCi0gCi0gc3RhdGljIGludAotIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25z dCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLS0JCSAgICAg IHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wKQotKwkJICAg ICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCi0rCQkg ICAgICBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25hbF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRh X3NpemUpCi0gewotICAgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0b247Ci0gICBz dHJ1Y3Qgb2JzdGFjayAqb2JzdGFjayA9ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrOwot QEAgLTE0ODM1LDggKzE0OTAyLDI1IEBACi0gICAgICAgYmF0b24gPSBYT0JORVcgKG9ic3RhY2ss IHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24pOwotICAgICAgIGJhdG9uLT5yZWZlcmVuY2Vk X3R5cGUgPSBOVUxMOwotICAgICAgIGJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7 Ci0tICAgICAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZTsKLS0g ICAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKGF0dHIpLT5kYXRhOwotKwotKyAg ICAgIGlmIChhZGRpdGlvbmFsX2RhdGEgIT0gTlVMTCAmJiBhZGRpdGlvbmFsX2RhdGFfc2l6ZSA+ IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIGdkYl9ieXRlICpkYXRhOwotKwotKyAgICAgICAg ICBkYXRhID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCi0r ICAgICAgICAgICAgICAgICAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRh X3NpemUpOwotKyAgICAgICAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLIChhdHRyKS0+ZGF0YSwg RFdfQkxPQ0sgKGF0dHIpLT5zaXplKTsKLSsgICAgICAgICAgbWVtY3B5IChkYXRhICsgRFdfQkxP Q0sgKGF0dHIpLT5zaXplLAotKyAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRk aXRpb25hbF9kYXRhX3NpemUpOwotKwotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0g ZGF0YTsKLSsgICAgICAgICAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+ c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplOwotKyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsg ICAgICAgIHsKLSsgICAgICAgICAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRy KS0+ZGF0YTsKLSsgICAgICAgICAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRy KS0+c2l6ZTsKLSsgICAgICAgIH0KLSAgICAgICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247Ci0g ICAgICAgcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKLSAgICAgICBnZGJfYXNzZXJ0IChwcm9w LT5kYXRhLmJhdG9uICE9IE5VTEwpOwotQEAgLTE0ODcyLDggKzE0OTU2LDI4IEBACi0gCQliYXRv biA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7Ci0gCQli YXRvbi0+cmVmZXJlbmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7 Ci0gCQliYXRvbi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwotLQkJYmF0b24tPmxvY2V4 cHIuc2l6ZSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemU7Ci0tCQliYXRvbi0+bG9jZXhw ci5kYXRhID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0YTsKLSsKLSsJCWlmIChhZGRpdGlv bmFsX2RhdGEgIT0gTlVMTCAmJiBhZGRpdGlvbmFsX2RhdGFfc2l6ZSA+IDApCi0rCQkgIHsKLSsJ CSAgICBnZGJfYnl0ZSAqZGF0YTsKLSsKLSsJCSAgICBkYXRhID0gb2JzdGFja19hbGxvYyAoJmN1 LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCi0rCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0 ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCQkgICAgbWVtY3B5IChkYXRhLCBE V19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhLAotKwkJCSAgICBEV19CTE9DSyAodGFyZ2V0X2F0 dHIpLT5zaXplKTsKLSsJCSAgICBtZW1jcHkgKGRhdGEgKyBEV19CTE9DSyAodGFyZ2V0X2F0dHIp LT5zaXplLAotKwkJCSAgICBhZGRpdGlvbmFsX2RhdGEsIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsK LSsKLSsJCSAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gZGF0YTsKLSsJCSAgICBiYXRvbi0+bG9j ZXhwci5zaXplID0gKERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUKLSsJCQkJCSAgICsgYWRk aXRpb25hbF9kYXRhX3NpemUpOwotKwkJICB9Ci0rCQllbHNlCi0rCQkgIHsKLSsJCSAgICBiYXRv bi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0YTsKLSsJCSAgICBi YXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKLSsJCSAg fQotKwotIAkJcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwotIAkJcHJvcC0+a2luZCA9IFBST1Bf TE9DRVhQUjsKLSAJCWdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAt MTQ5MjcsNyArMTUwMzEsNyBAQAotICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZSwgKm9yaWdfYmFz ZV90eXBlOwotICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7Ci0gICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwotLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2g7Ci0rICBzdHJ1Y3QgZHlu YW1pY19wcm9wIGxvdywgaGlnaCwgc3RyaWRlOwotICAgaW50IGxvd19kZWZhdWx0X2lzX3ZhbGlk OwotICAgaW50IGhpZ2hfYm91bmRfaXNfY291bnQgPSAwOwotICAgY29uc3QgY2hhciAqbmFtZTsK LUBAIC0xNDk0Nyw3ICsxNTA1MSw5IEBACi0gCi0gICBsb3cua2luZCA9IFBST1BfQ09OU1Q7Ci0g ICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwotKyAgc3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOwot ICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCA9IDA7Ci0rICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSAw OwotIAotICAgLyogU2V0IExPV19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2Ug YW5kIERXQVJGIHZlcnNpb24gYWxsb3cKLSAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5k LiAgKi8KLUBAIC0xNDk4MCwxOSArMTUwODYsMjYgQEAKLSAgICAgICBicmVhazsKLSAgICAgfQot IAotKyAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7Ci0r ICBpZiAoYXR0cikKLSsgICAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBj dSwgJnN0cmlkZSwgTlVMTCwgMCkpCi0rICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBs YWludHMsIF8oIk1pc3NpbmcgRFdfQVRfYnl0ZV9zdHJpZGUgIgotKyAgICAgICAgICAgICAgICAg ICItIERJRSBhdCAweCV4IFtpbiBtb2R1bGUgJXNdIiksCi0rICAgICAgICAgICAgIGRpZS0+b2Zm c2V0LnNlY3Rfb2ZmLCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7Ci0rCi0gICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKLSAgIGlmIChhdHRyKQot LSAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdyk7Ci0rICAgIGF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93LCBOVUxMLCAwKTsKLSAgIGVs c2UgaWYgKCFsb3dfZGVmYXVsdF9pc192YWxpZCkKLSAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9j b21wbGFpbnRzLCBfKCJNaXNzaW5nIERXX0FUX2xvd2VyX2JvdW5kICIKLSAJCQkJICAgICAgIi0g RElFIGF0IDB4JXggW2luIG1vZHVsZSAlc10iKSwKLSAJICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rf b2ZmLCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7Ci0gCi0gICBhdHRyID0gZHdhcmYyX2F0 dHIgKGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKLS0gIGlmICghYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoKSkKLSsgIGlmICghYXR0cl90b19keW5hbWljX3By b3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBOVUxMLCAwKSkKLSAgICAgewotICAgICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOwotLSAgICAgIGlmIChhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQotKyAgICAgIGlmIChhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQotIAl7Ci0gCSAg LyogSWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4g ICovCi0gCSAgaWYgKGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5raW5kID09IFBST1Bf Q09OU1QpCi1AQCAtMTUwNTYsNyArMTUxNjksNyBAQAotICAgICAgICYmICFUWVBFX1VOU0lHTkVE IChiYXNlX3R5cGUpICYmIChoaWdoLmRhdGEuY29uc3RfdmFsICYgbmVnYXRpdmVfbWFzaykpCi0g ICAgIGhpZ2guZGF0YS5jb25zdF92YWwgfD0gbmVnYXRpdmVfbWFzazsKLSAKLS0gIHJhbmdlX3R5 cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAoTlVMTCwgb3JpZ19iYXNlX3R5cGUsICZsb3csICZoaWdo KTsKLSsgIHJhbmdlX3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAoTlVMTCwgb3JpZ19iYXNlX3R5 cGUsICZsb3csICZoaWdoLCAmc3RyaWRlKTsKLSAKLSAgIGlmIChoaWdoX2JvdW5kX2lzX2NvdW50 KQotICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5mbGFnX3VwcGVyX2JvdW5kX2lz X2NvdW50ID0gMTsKLUBAIC0yMjM2MCw3ICsyMjQ3Myw3IEBACi0gICBhdHRyID0gZHdhcmYyX2F0 dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBjdSk7Ci0gICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2Nr IChhdHRyKSkKLSAgICAgewotLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJnByb3ApKQotKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQotICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJP UF9BTExPQ0FURUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOwotICAgICB9Ci0gICBlbHNlIGlmIChh dHRyICE9IE5VTEwpCi1AQCAtMjIzNzUsNyArMjI0ODgsNyBAQAotICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2Fzc29jaWF0ZWQsIGN1KTsKLSAgIGlmIChhdHRyX2Zvcm1faXNfYmxv Y2sgKGF0dHIpKQotICAgICB7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRy LCBkaWUsIGN1LCAmcHJvcCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRy LCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0gICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9Q Uk9QX0FTU09DSUFURUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOwotICAgICB9Ci0gICBlbHNlIGlm IChhdHRyICE9IE5VTEwpCi1AQCAtMjIzODgsNyArMjI1MDEsNyBAQAotIAotICAgLyogUmVhZCBE V19BVF9kYXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCi0gICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwotLSAgaWYgKGF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkpCi0rICBpZiAoYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKLSAgICAgYWRkX2R5bl9wcm9w IChEWU5fUFJPUF9EQVRBX0xPQ0FUSU9OLCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKLSAKLSAgIGlm IChkd2FyZjJfcGVyX29iamZpbGUtPmRpZV90eXBlX2hhc2ggPT0gTlVMTCkKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvZi10eXBlcHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNi0wMS0wOCAxOToxNToz NS4wODA1ODI0NDMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZi10eXBlcHJp bnQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MDYzNzY2MyArMDEwMAotQEAgLTMxLDYgKzMxLDcg QEAKLSAjaW5jbHVkZSAidGFyZ2V0LmgiCi0gI2luY2x1ZGUgImYtbGFuZy5oIgotICNpbmNsdWRl ICJ0eXBlcHJpbnQuaCIKLSsjaW5jbHVkZSAidmFscHJpbnQuaCIKLSAKLSAjaWYgMAkJCQkvKiBD dXJyZW50bHkgdW51c2VkLiAgKi8KLSBzdGF0aWMgdm9pZCBmX3R5cGVfcHJpbnRfYXJncyAoc3Ry dWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci1AQCAtNjQsNiArNjUsMTcgQEAKLSAgICAg ewotICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotICAgICAgIHJldHVy bjsKLSsgICAgfQotKwotKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICB7 Ci0rICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVy bjsKLSsgICAgfQotKyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlwZSkpCi0rICAgIHsKLSsg ICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm47Ci0g ICAgIH0KLSAKLSAgIGZfdHlwZV9wcmludF9iYXNlICh0eXBlLCBzdHJlYW0sIHNob3csIGxldmVs KTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZi12YWxwcmludC5jCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTYt MDEtMDggMTk6MTU6MzUuMDgxNTgyNDQ4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2YtdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MTYzNzY2OSArMDEwMAotQEAg LTM2LDggKzM2LDYgQEAKLSAKLSBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2 b2lkKTsKLSBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7Ci0t c3RhdGljIHZvaWQgZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90YmwgKHN0cnVjdCB0eXBl ICosCi0tCQkJCQkgICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKLSBzdGF0aWMgdm9pZCBmNzdfZ2V0 X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RydWN0IHR5cGUgKik7Ci0gCi0gaW50IGY3 N19hcnJheV9vZmZzZXRfdGJsW01BWF9GT1JUUkFOX0RJTVMgKyAxXVsyXTsKLUBAIC00NSwxNSAr NDMsNiBAQAotIC8qIEFycmF5IHdoaWNoIGhvbGRzIG9mZnNldHMgdG8gYmUgYXBwbGllZCB0byBn ZXQgYSByb3cncyBlbGVtZW50cwotICAgIGZvciBhIGdpdmVuIGFycmF5LiAgQXJyYXkgYWxzbyBo b2xkcyB0aGUgc2l6ZSBvZiBlYWNoIHN1YmFycmF5LiAgKi8KLSAKLS0vKiBUaGUgZm9sbG93aW5n IG1hY3JvIGdpdmVzIHVzIHRoZSBzaXplIG9mIHRoZSBudGggZGltZW5zaW9uLCBXaGVyZSAKLS0g ICBuIGlzIDEgYmFzZWQuICAqLwotLQotLSNkZWZpbmUgRjc3X0RJTV9TSVpFKG4pIChmNzdfYXJy YXlfb2Zmc2V0X3RibFtuXVsxXSkKLS0KLS0vKiBUaGUgZm9sbG93aW5nIGdpdmVzIHVzIHRoZSBv ZmZzZXQgZm9yIHJvdyBuIHdoZXJlIG4gaXMgMS1iYXNlZC4gICovCi0tCi0tI2RlZmluZSBGNzdf RElNX09GRlNFVChuKSAoZjc3X2FycmF5X29mZnNldF90Ymxbbl1bMF0pCi0tCi0gaW50Ci0gZjc3 X2dldF9sb3dlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSB7Ci1AQCAtMTExLDQ3ICsxMDAs NiBAQAotICAgICAqIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKSkpOwotIH0KLSAKLS0vKiBGdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIGFycmF5IG9m ZnNldCxzaXplIHRhYmxlIGZvciB0aGUgYXJyYXkgCi0tICAgdHlwZSAidHlwZSIuICAqLwotLQot LXN0YXRpYyB2b2lkCi0tZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90YmwgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQotLXsKLS0gIHN0cnVjdCB0eXBlICp0 bXBfdHlwZTsKLS0gIGludCBlbHRsZW47Ci0tICBpbnQgbmRpbWVuID0gMTsKLS0gIGludCB1cHBl ciwgbG93ZXI7Ci0tCi0tICB0bXBfdHlwZSA9IHR5cGU7Ci0tCi0tICB3aGlsZSAoVFlQRV9DT0RF ICh0bXBfdHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLSAgICB7Ci0tICAgICAgdXBwZXIgPSBm NzdfZ2V0X3VwcGVyYm91bmQgKHRtcF90eXBlKTsKLS0gICAgICBsb3dlciA9IGY3N19nZXRfbG93 ZXJib3VuZCAodG1wX3R5cGUpOwotLQotLSAgICAgIEY3N19ESU1fU0laRSAobmRpbWVuKSA9IHVw cGVyIC0gbG93ZXIgKyAxOwotLQotLSAgICAgIHRtcF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAo dG1wX3R5cGUpOwotLSAgICAgIG5kaW1lbisrOwotLSAgICB9Ci0tCi0tICAvKiBOb3cgd2UgbXVs dGlwbHkgZWx0bGVuIGJ5IGFsbCB0aGUgb2Zmc2V0cywgc28gdGhhdCBsYXRlciB3ZSAKLS0gICAg IGNhbiBwcmludCBvdXQgYXJyYXkgZWxlbWVudHMgY29ycmVjdGx5LiAgVXAgdGlsbCBub3cgd2Ug Ci0tICAgICBrbm93IGFuIG9mZnNldCB0byBhcHBseSB0byBnZXQgdGhlIGl0ZW0gYnV0IHdlIGFs c28gCi0tICAgICBoYXZlIHRvIGtub3cgaG93IG11Y2ggdG8gYWRkIHRvIGdldCB0byB0aGUgbmV4 dCBpdGVtLiAgKi8KLS0KLS0gIG5kaW1lbi0tOwotLSAgZWx0bGVuID0gVFlQRV9MRU5HVEggKHRt cF90eXBlKTsKLS0gIEY3N19ESU1fT0ZGU0VUIChuZGltZW4pID0gZWx0bGVuOwotLSAgd2hpbGUg KC0tbmRpbWVuID4gMCkKLS0gICAgewotLSAgICAgIGVsdGxlbiAqPSBGNzdfRElNX1NJWkUgKG5k aW1lbiArIDEpOwotLSAgICAgIEY3N19ESU1fT0ZGU0VUIChuZGltZW4pID0gZWx0bGVuOwotLSAg ICB9Ci0tfQotLQotLQotLQotIC8qIEFjdHVhbCBmdW5jdGlvbiB3aGljaCBwcmludHMgb3V0IEY3 NyBhcnJheXMsIFZhbGFkZHIgPT0gYWRkcmVzcyBpbiAKLSAgICB0aGUgc3VwZXJpb3IuICBBZGRy ZXNzID09IHRoZSBhZGRyZXNzIGluIHRoZSBpbmZlcmlvci4gICovCi0gCi1AQCAtMTY0LDQxICsx MTIsNjIgQEAKLSAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAotIAkJICAgaW50ICplbHRzKQotIHsKLSsgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQ RV9JTkRFWF9UWVBFIChjaGVja190eXBlZGVmICh0eXBlKSk7Ci0rICBDT1JFX0FERFIgYWRkciA9 IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQ7Ci0rICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVy Ym91bmQ7Ci0gICBpbnQgaTsKLSAKLSsgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUs ICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCk7Ci0rCi0gICBpZiAobnNzICE9IG5kaW1lbnNpb25z KQotICAgICB7Ci0tICAgICAgZm9yIChpID0gMDsKLS0JICAgKGkgPCBGNzdfRElNX1NJWkUgKG5z cykgJiYgKCplbHRzKSA8IG9wdGlvbnMtPnByaW50X21heCk7Ci0rICAgICAgc2l6ZV90IGRpbV9z aXplOwotKyAgICAgIHNpemVfdCBvZmZzID0gMDsKLSsgICAgICBMT05HRVNUIGJ5dGVfc3RyaWRl ID0gYWJzIChUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBlKSk7Ci0rCi0rICAgICAgaWYgKGJ5 dGVfc3RyaWRlKQotKyAgICAgICAgZGltX3NpemUgPSBieXRlX3N0cmlkZTsKLSsgICAgICBlbHNl Ci0rICAgICAgICBkaW1fc2l6ZSA9IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSk7Ci0rCi0rICAgICAgZm9yIChpID0gbG93ZXJib3VuZDsKLSsJICAgKGkgPCB1cHBlcmJvdW5k ICsgMSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLSAJICAgaSsrKQotIAl7Ci0r CSAgc3RydWN0IHZhbHVlICpzdWJhcnJheSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJl c3MKLSsJICAgIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgdmFsdWVfY29udGVudHNfZm9yX3By aW50aW5nX2NvbnN0ICh2YWwpCi0rCSAgICAgKyBvZmZzLCBhZGRyICsgb2Zmcyk7Ci0rCi0gCSAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCAiKTsKLS0JICBmNzdfcHJpbnRfYXJyYXlfMSAo bnNzICsgMSwgbmRpbWVuc2lvbnMsIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLAotLQkJCSAgICAg dmFsYWRkciwKLS0JCQkgICAgIGVtYmVkZGVkX29mZnNldCArIGkgKiBGNzdfRElNX09GRlNFVCAo bnNzKSwKLS0JCQkgICAgIGFkZHJlc3MsCi0tCQkJICAgICBzdHJlYW0sIHJlY3Vyc2UsIHZhbCwg b3B0aW9ucywgZWx0cyk7Ci0rCSAgZjc3X3ByaW50X2FycmF5XzEgKG5zcyArIDEsIG5kaW1lbnNp b25zLCB2YWx1ZV90eXBlIChzdWJhcnJheSksCi0rCQkJICAgICB2YWx1ZV9jb250ZW50c19mb3Jf cHJpbnRpbmcgKHN1YmFycmF5KSwKLSsJCQkgICAgIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3Vi YXJyYXkpLAotKwkJCSAgICAgdmFsdWVfYWRkcmVzcyAoc3ViYXJyYXkpLAotKwkJCSAgICAgc3Ry ZWFtLCByZWN1cnNlLCBzdWJhcnJheSwgb3B0aW9ucywgZWx0cyk7Ci0rCSAgb2ZmcyArPSBkaW1f c2l6ZTsKLSAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpICIpOwotIAl9Ci0tICAgICAg aWYgKCplbHRzID49IG9wdGlvbnMtPnByaW50X21heCAmJiBpIDwgRjc3X0RJTV9TSVpFIChuc3Mp KSAKLSsgICAgICBpZiAoKmVsdHMgPj0gb3B0aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCB1cHBlcmJv dW5kKQotIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIuLi4iKTsKLSAgICAgfQotICAgZWxz ZQotICAgICB7Ci0tICAgICAgZm9yIChpID0gMDsgaSA8IEY3N19ESU1fU0laRSAobnNzKSAmJiAo KmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4OwotKyAgICAgIGZvciAoaSA9IGxvd2VyYm91bmQ7 IGkgPCB1cHBlcmJvdW5kICsgMSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4OwotIAkg ICBpKyssICgqZWx0cykrKykKLSAJewotLQkgIHZhbF9wcmludCAoVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSksCi0tCQkgICAgIHZhbGFkZHIsCi0tCQkgICAgIGVtYmVkZGVkX29mZnNldCArIGkgKiBG NzdfRElNX09GRlNFVCAobmRpbWVuc2lvbnMpLAotLQkJICAgICBhZGRyZXNzLCBzdHJlYW0sIHJl Y3Vyc2UsCi0tCQkgICAgIHZhbCwgb3B0aW9ucywgY3VycmVudF9sYW5ndWFnZSk7Ci0rCSAgc3Ry dWN0IHZhbHVlICplbHQgPSB2YWx1ZV9zdWJzY3JpcHQgKChzdHJ1Y3QgdmFsdWUgKil2YWwsIGkp OwotKwotKwkgIHZhbF9wcmludCAodmFsdWVfdHlwZSAoZWx0KSwKLSsJCSAgICAgdmFsdWVfY29u dGVudHNfZm9yX3ByaW50aW5nIChlbHQpLAotKwkJICAgICB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQg KGVsdCksCi0rCQkgICAgIHZhbHVlX2FkZHJlc3MgKGVsdCksIHN0cmVhbSwgcmVjdXJzZSwKLSsJ CSAgICAgZWx0LCBvcHRpb25zLCBjdXJyZW50X2xhbmd1YWdlKTsKLSAKLS0JICBpZiAoaSAhPSAo Rjc3X0RJTV9TSVpFIChuc3MpIC0gMSkpCi0rCSAgaWYgKGkgIT0gdXBwZXJib3VuZCkKLSAJICAg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiwgIik7Ci0gCi0gCSAgaWYgKCgqZWx0cyA9PSBv cHRpb25zLT5wcmludF9tYXggLSAxKQotLQkgICAgICAmJiAoaSAhPSAoRjc3X0RJTV9TSVpFIChu c3MpIC0gMSkpKQotKwkgICAgICAmJiAoaSAhPSB1cHBlcmJvdW5kKSkKLSAJICAgIGZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwotIAl9Ci0gICAgIH0KLUBAIC0yMjUsMTIgKzE5NCw2 IEBACi0gVHlwZSBub2RlIGNvcnJ1cHQhIEY3NyBhcnJheXMgY2Fubm90IGhhdmUgJWQgc3Vic2Ny aXB0cyAoJWQgTWF4KSIpLAotIAkgICBuZGltZW5zaW9ucywgTUFYX0ZPUlRSQU5fRElNUyk7Ci0g Ci0tICAvKiBTaW5jZSBGNzcgYXJyYXlzIGFyZSBzdG9yZWQgY29sdW1uLW1ham9yLCB3ZSBzZXQg dXAgYW4gCi0tICAgICBvZmZzZXQgdGFibGUgdG8gZ2V0IGF0IHRoZSB2YXJpb3VzIHJvdydzIGVs ZW1lbnRzLiAgVGhlIAotLSAgICAgb2Zmc2V0IHRhYmxlIGNvbnRhaW5zIGVudHJpZXMgZm9yIGJv dGggb2Zmc2V0IGFuZCBzdWJhcnJheSBzaXplLiAgKi8KLS0KLS0gIGY3N19jcmVhdGVfYXJyYXlw cmludF9vZmZzZXRfdGJsICh0eXBlLCBzdHJlYW0pOwotLQotICAgZjc3X3ByaW50X2FycmF5XzEg KDEsIG5kaW1lbnNpb25zLCB0eXBlLCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICAg IGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zLCAmZWx0cyk7Ci0gfQotQEAg LTM3NSwxMiArMzM4LDE1IEBACi0gICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCAi KTsKLSAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBp bmRleCsrKQotICAgICAgICAgewotLSAgICAgICAgICBpbnQgb2Zmc2V0ID0gVFlQRV9GSUVMRF9C SVRQT1MgKHR5cGUsIGluZGV4KSAvIDg7Ci0rCSAgc3RydWN0IHZhbHVlICpmaWVsZCA9IHZhbHVl X2ZpZWxkCi0rCSAgICAoKHN0cnVjdCB2YWx1ZSAqKW9yaWdpbmFsX3ZhbHVlLCBpbmRleCk7Ci0r Ci0rICAgICAgICAgIHZhbF9wcmludCAodmFsdWVfdHlwZSAoZmllbGQpLAotKwkJICAgICB2YWx1 ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKGZpZWxkKSwKLSsJCSAgICAgdmFsdWVfZW1iZWRkZWRf b2Zmc2V0IChmaWVsZCksCi0rCQkgICAgIHZhbHVlX2FkZHJlc3MgKGZpZWxkKSwgc3RyZWFtLCBy ZWN1cnNlICsgMSwKLSsJCSAgICAgZmllbGQsIG9wdGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwot IAotLSAgICAgICAgICB2YWxfcHJpbnQgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpLCB2 YWxhZGRyLAotLQkJICAgICBlbWJlZGRlZF9vZmZzZXQgKyBvZmZzZXQsCi0tCQkgICAgIGFkZHJl c3MsIHN0cmVhbSwgcmVjdXJzZSArIDEsCi0tCQkgICAgIG9yaWdpbmFsX3ZhbHVlLCBvcHRpb25z LCBjdXJyZW50X2xhbmd1YWdlKTsKLSAgICAgICAgICAgaWYgKGluZGV4ICE9IFRZUEVfTkZJRUxE UyAodHlwZSkgLSAxKQotICAgICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBzdHJlYW0p OwotICAgICAgICAgfQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5j Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2RidHlwZXMu YwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4MzU4MjQ1OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgyNjM3Njc0ICswMTAw Ci1AQCAtODM2LDcgKzgzNiw4IEBACi0gc3RydWN0IHR5cGUgKgotIGNyZWF0ZV9yYW5nZV90eXBl IChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAotIAkJ ICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqbG93X2JvdW5kLAotLQkJICAgY29uc3Qgc3Ry dWN0IGR5bmFtaWNfcHJvcCAqaGlnaF9ib3VuZCkKLSsJCSAgIGNvbnN0IHN0cnVjdCBkeW5hbWlj X3Byb3AgKmhpZ2hfYm91bmQsCi0rCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpzdHJp ZGUpCi0gewotICAgaWYgKHJlc3VsdF90eXBlID09IE5VTEwpCi0gICAgIHJlc3VsdF90eXBlID0g YWxsb2NfdHlwZV9jb3B5IChpbmRleF90eXBlKTsKLUBAIC04NTEsNiArODUyLDcgQEAKLSAgICAg VFlQRV9aQUxMT0MgKHJlc3VsdF90eXBlLCBzaXplb2YgKHN0cnVjdCByYW5nZV9ib3VuZHMpKTsK LSAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5sb3cgPSAqbG93X2JvdW5kOwotICAg VFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmhpZ2ggPSAqaGlnaF9ib3VuZDsKLSsgIFRZ UEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5zdHJpZGUgPSAqc3RyaWRlOwotIAotICAgaWYg KGxvd19ib3VuZC0+a2luZCA9PSBQUk9QX0NPTlNUICYmIGxvd19ib3VuZC0+ZGF0YS5jb25zdF92 YWwgPj0gMCkKLSAgICAgVFlQRV9VTlNJR05FRCAocmVzdWx0X3R5cGUpID0gMTsKLUBAIC04Nzks NyArODgxLDcgQEAKLSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1 bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCi0gCQkJICBMT05HRVNUIGxvd19ib3Vu ZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQotIHsKLS0gIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93LCBo aWdoOwotKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2gsIHN0cmlkZTsKLSAKLSAgIGxv dy5raW5kID0gUFJPUF9DT05TVDsKLSAgIGxvdy5kYXRhLmNvbnN0X3ZhbCA9IGxvd19ib3VuZDsK LUBAIC04ODcsNyArODg5LDExIEBACi0gICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwotICAgaGln aC5kYXRhLmNvbnN0X3ZhbCA9IGhpZ2hfYm91bmQ7Ci0gCi0tICByZXN1bHRfdHlwZSA9IGNyZWF0 ZV9yYW5nZV90eXBlIChyZXN1bHRfdHlwZSwgaW5kZXhfdHlwZSwgJmxvdywgJmhpZ2gpOwotKyAg c3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOwotKyAgc3RyaWRlLmRhdGEuY29uc3RfdmFsID0gMDsK LSsKLSsgIHJlc3VsdF90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKHJlc3VsdF90eXBlLCBpbmRl eF90eXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxvdywgJmhpZ2gs ICZzdHJpZGUpOwotIAotICAgcmV0dXJuIHJlc3VsdF90eXBlOwotIH0KLUBAIC0xMDg0LDE2ICsx MDkwLDIxIEBACi0gICAgICAgJiYgKCF0eXBlX25vdF9hc3NvY2lhdGVkIChyZXN1bHRfdHlwZSkK LSAJICAmJiAhdHlwZV9ub3RfYWxsb2NhdGVkIChyZXN1bHRfdHlwZSkpKQotICAgICB7Ci0tICAg ICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0rICAgICAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQsIGJ5dGVfc3RyaWRlOwotIAotICAgICAgIGlmIChnZXRfZGlzY3JldGVf Ym91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotIAlsb3df Ym91bmQgPSBoaWdoX2JvdW5kID0gMDsKLSAgICAgICBlbGVtZW50X3R5cGUgPSBjaGVja190eXBl ZGVmIChlbGVtZW50X3R5cGUpOwotKwotKyAgICAgIGJ5dGVfc3RyaWRlID0gYWJzIChUWVBFX0JZ VEVfU1RSSURFIChyYW5nZV90eXBlKSk7Ci0rCi0gICAgICAgLyogQmUgY2FyZWZ1bCB3aGVuIHNl dHRpbmcgdGhlIGFycmF5IGxlbmd0aC4gIEFkYSBhcnJheXMgY2FuIGJlCi0gCSBlbXB0eSBhcnJh eXMgd2l0aCB0aGUgaGlnaF9ib3VuZCBiZWluZyBzbWFsbGVyIHRoYW4gdGhlIGxvd19ib3VuZC4K LSAJIEluIHN1Y2ggY2FzZXMsIHRoZSBhcnJheSBsZW5ndGggc2hvdWxkIGJlIHplcm8uICAqLwot ICAgICAgIGlmIChoaWdoX2JvdW5kIDwgbG93X2JvdW5kKQotIAlUWVBFX0xFTkdUSCAocmVzdWx0 X3R5cGUpID0gMDsKLSsgICAgICBlbHNlIGlmIChieXRlX3N0cmlkZSA+IDApCi0rCVRZUEVfTEVO R1RIIChyZXN1bHRfdHlwZSkgPSBieXRlX3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5k ICsgMSk7Ci0gICAgICAgZWxzZSBpZiAoYml0X3N0cmlkZSA+IDApCi0gCVRZUEVfTEVOR1RIIChy ZXN1bHRfdHlwZSkgPQotIAkgIChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQg KyAxKSArIDcpIC8gODsKLUBAIC0xODA0LDEyICsxODE1LDMxIEBACi0gc3RhdGljIGludAotIGlz X2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwp Ci0gewotKyAgaW50IGluZGV4OwotKwotKyAgaWYgKCF0eXBlKQotKyAgICByZXR1cm4gMDsKLSsK LSAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKLSAKLSAgIC8qIFdlIG9ubHkgd2FudCB0 byByZWNvZ25pemUgcmVmZXJlbmNlcyBhdCB0aGUgb3V0ZXJtb3N0IGxldmVsLiAgKi8KLSAgIGlm ICh0b3BfbGV2ZWwgJiYgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUkVGKQotICAgICB0 eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOwotIAotKyAgaWYg KFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICBpZiAo VFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkpCi0rICAgIHJldHVybiAxOwotKwotKyAgLyogU2Nh biBmaWVsZCB0eXBlcyBpbiB0aGUgRm9ydHJhbiBjYXNlIGZvciBuZXN0ZWQgZHluYW1pYyB0eXBl cy4KLSsgICAgIFRoaXMgd2lsbCBiZSBkb25lIG9ubHkgZm9yIEZvcnRyYW4gYXMgaW4gdGhlIEMr KyBjYXNlIGFuIGVuZGxlc3MgcmVjdXJzaW9uCi0rICAgICBjYW4gb2NjdXIgaW4gdGhlIGFyZWEg b2YgY2xhc3Nlcy4gICovCi0rICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0g bGFuZ3VhZ2VfZm9ydHJhbikKLSsgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgVFlQRV9ORklF TERTICh0eXBlKTsgaW5kZXgrKykKLSsgICAgICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBFX0ZJ RUxEX1RZUEUgKHR5cGUsIGluZGV4KSkpCi0rICAgICAgICByZXR1cm4gMTsKLSsKLSAgIC8qIFR5 cGVzIHRoYXQgaGF2ZSBhIGR5bmFtaWMgVFlQRV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25zaWRlcmVk Ci0gICAgICBkeW5hbWljLCBldmVuIGlmIHRoZSB0eXBlIGl0c2VsZiBpcyBzdGF0aWNhbGx5IGRl ZmluZWQuCi0gICAgICBGcm9tIGEgdXNlcidzIHBvaW50IG9mIHZpZXcsIHRoaXMgbWF5IGFwcGVh ciBjb3VudGVyLWludHVpdGl2ZTsKLUBAIC0xODQ0LDExICsxODc0LDE5IEBACi0gICAgICAgewot IAlnZGJfYXNzZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09IDEpOwotIAotLQkvKiBUaGUgYXJy YXkgaXMgZHluYW1pYyBpZiBlaXRoZXIgdGhlIGJvdW5kcyBhcmUgZHluYW1pYywKLS0JICAgb3Ig dGhlIGVsZW1lbnRzIGl0IGNvbnRhaW5zIGhhdmUgYSBkeW5hbWljIGNvbnRlbnRzLiAgKi8KLSsJ LyogVGhlIGFycmF5IGlzIGR5bmFtaWMgaWYgZWl0aGVyCi0rICAgICAtIHRoZSBib3VuZHMgYXJl IGR5bmFtaWMsCi0rCSAgIC0gdGhlIGVsZW1lbnRzIGl0IGNvbnRhaW5zIGhhdmUgYSBkeW5hbWlj IGNvbnRlbnRzCi0rICAgICAtIGEgZGF0YV9sb2NhdG9uIGF0dHJpYnV0ZSB3YXMgZm91bmQuICAq LwotIAlpZiAoaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX0lOREVYX1RZUEUgKHR5cGUp LCAwKSkKLSAJICByZXR1cm4gMTsKLS0JcmV0dXJuIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAo VFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIDApOwotKwllbHNlIGlmIChUWVBFX0RBVEFfTE9DQVRJ T04gKHR5cGUpICE9IE5VTEwKLSsJICAgICAgICAgJiYgKFRZUEVfREFUQV9MT0NBVElPTl9LSU5E ICh0eXBlKSA9PSBQUk9QX0xPQ0VYUFIKLSsJICAgICAgICAgICAgIHx8IFRZUEVfREFUQV9MT0NB VElPTl9LSU5EICh0eXBlKSA9PSBQUk9QX0xPQ0xJU1QpKQotKyAgICByZXR1cm4gMTsKLSsgIGVs c2UKLSsgICAgcmV0dXJuIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSksIDApOwotKwlicmVhazsKLSAgICAgICB9Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RF X1NUUlVDVDoKLUBAIC0xODYxLDYgKzE4OTksMTggQEAKLSAJICAgICAgJiYgaXNfZHluYW1pY190 eXBlX2ludGVybmFsIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpLCAwKSkKLSAJICAgIHJldHVy biAxOwotICAgICAgIH0KLSsgICAgY2FzZSBUWVBFX0NPREVfUFRSOgotKyAgICAgIHsKLSsgICAg ICAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKQotKyAgICAgICAgICAgICYmIChUWVBFX0NP REUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfU1RSSU5HCi0rICAgICAg ICAgICAgICAgIHx8IFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVf Q09ERV9BUlJBWSkpCi0rICAgICAgICAgIHJldHVybiBpc19keW5hbWljX3R5cGUgKGNoZWNrX3R5 cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0rCi0rICAgICAgICByZXR1cm4gMDsK LSsgICAgICAgIGJyZWFrOwotKyAgICAgIH0KLSsgICAgZGVmYXVsdDoKLSsgICAgICByZXR1cm4g MDsKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotQEAgLTE4OTAsNyArMTk0MCw4IEBACi0gICBz dHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7Ci0gICBj b25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOwotICAgY29uc3Qgc3RydWN0IGR3YXJmMl9s b2NleHByX2JhdG9uICpiYXRvbjsKLS0gIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93X2JvdW5kLCBo aWdoX2JvdW5kOwotKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQs IHN0cmlkZTsKLSsgIHN0cnVjdCB0eXBlICpyYW5nZV9jb3B5ID0gY29weV90eXBlIChkeW5fcmFu Z2VfdHlwZSk7Ci0gCi0gICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKGR5bl9yYW5nZV90eXBlKSA9 PSBUWVBFX0NPREVfUkFOR0UpOwotIAotQEAgLTE5MjIsMTIgKzE5NzMsMTkgQEAKLSAgICAgICBo aWdoX2JvdW5kLmRhdGEuY29uc3RfdmFsID0gMDsKLSAgICAgfQotIAotKyAgcHJvcCA9ICZUWVBF X1JBTkdFX0RBVEEgKGR5bl9yYW5nZV90eXBlKS0+c3RyaWRlOwotKyAgaWYgKGR3YXJmMl9ldmFs dWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFjaywgJnZhbHVlKSkKLSsgICAgewot KyAgICAgIHN0cmlkZS5raW5kID0gUFJPUF9DT05TVDsKLSsgICAgICBzdHJpZGUuZGF0YS5jb25z dF92YWwgPSB2YWx1ZTsKLSsgICAgfQotKwotICAgc3RhdGljX3RhcmdldF90eXBlCi0tICAgID0g cmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfVEFSR0VUX1RZUEUgKGR5bl9yYW5n ZV90eXBlKSwKLSsgICAgPSByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJH RVRfVFlQRSAocmFuZ2VfY29weSksCi0gCQkJCSAgICAgYWRkcl9zdGFjaywgMCk7Ci0tICBzdGF0 aWNfcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChjb3B5X3R5cGUgKGR5bl9yYW5nZV90 eXBlKSwKLSsgIHN0YXRpY19yYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKHJhbmdlX2Nv cHksCi0gCQkJCQkgc3RhdGljX3RhcmdldF90eXBlLAotLQkJCQkJICZsb3dfYm91bmQsICZoaWdo X2JvdW5kKTsKLSsJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCwgJnN0cmlkZSk7Ci0gICBU WVBFX1JBTkdFX0RBVEEgKHN0YXRpY19yYW5nZV90eXBlKS0+ZmxhZ19ib3VuZF9ldmFsdWF0ZWQg PSAxOwotICAgcmV0dXJuIHN0YXRpY19yYW5nZV90eXBlOwotIH0KLUBAIC0xOTQ2LDcgKzIwMDQs OCBAQAotICAgc3RydWN0IHR5cGUgKmFyeV9kaW07Ci0gICBzdHJ1Y3QgZHluYW1pY19wcm9wICpw cm9wOwotIAotLSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJS QVkpOwotKyAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkK LSsJICAgICAgfHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKLSAKLSAg IHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOwotIAotQEAgLTE5NzEsMTMgKzIwMzAsMTggQEAKLSAK LSAgIGFyeV9kaW0gPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlwZSkp OwotIAotLSAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZ UEVfQ09ERV9BUlJBWSkKLSsgIGlmIChhcnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAoYXJ5 X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZCi0rCQkJICB8fCBUWVBFX0NPREUgKGFyeV9kaW0pID09 IFRZUEVfQ09ERV9TVFJJTkcpKQotICAgICBlbHRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJh eSAoYXJ5X2RpbSwgYWRkcl9zdGFjayk7Ci0gICBlbHNlCi0gICAgIGVsdF90eXBlID0gVFlQRV9U QVJHRVRfVFlQRSAodHlwZSk7Ci0gCi0tICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9z dHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApKTsKLSsgIGlm IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsgICAgICAmJiBUWVBFX0ZJ RUxEX0JJVFNJWkUgKHR5cGUsIDApID09IDApCi0rICAgIHJldHVybiBjcmVhdGVfc3RyaW5nX3R5 cGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlKTsKLSsgIGVsc2UKLSsgICAgcmV0dXJuIGNy ZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSwK LSsJCQkJCSAgVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7Ci0gfQotIAotIC8qIFJlc29s dmUgZHluYW1pYyBib3VuZHMgb2YgbWVtYmVycyBvZiB0aGUgdW5pb24gVFlQRSB0byBzdGF0aWMK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2RidHlwZXMuaAotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNi0wMS0wOCAx OToxNTozNS4wODU1ODI0NzEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ri dHlwZXMuaAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAotQEAgLTU3Nyw2ICs1 NzcsMTAgQEAKLSAKLSAgIHN0cnVjdCBkeW5hbWljX3Byb3AgaGlnaDsKLSAKLSsgIC8qICogU3Ry aWRlIG9mIHJhbmdlLiAgKi8KLSsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3Agc3RyaWRlOwotKwot ICAgLyogVHJ1ZSBpZiBISUdIIHJhbmdlIGJvdW5kIGNvbnRhaW5zIHRoZSBudW1iZXIgb2YgZWxl bWVudHMgaW4gdGhlCi0gICAgICBzdWJyYW5nZS4gVGhpcyBhZmZlY3RzIGhvdyB0aGUgZmluYWwg aGlnaHQgYm91bmQgaXMgY29tcHV0ZWQuICAqLwotIAotQEAgLTc0OSw2ICs3NTMsMTggQEAKLSAK LSAgIC8qICogQ29udGFpbnMgYWxsIGR5bmFtaWMgdHlwZSBwcm9wZXJ0aWVzLiAgKi8KLSAgIHN0 cnVjdCBkeW5hbWljX3Byb3BfbGlzdCAqZHluX3Byb3BfbGlzdDsKLSsKLSsgIC8qIFN0cnVjdHVy ZSBmb3IgRFdfQVRfYWxsb2NhdGVkLgotKyAgICAgVGhlIHByZXNlbmNlIG9mIHRoaXMgYXR0cmli dXRlIGluZGljYXRlcyB0aGF0IHRoZSBvYmplY3Qgb2YgdGhlIHR5cGUKLSsgICAgIGNhbiBiZSBh bGxvY2F0ZWQvZGVhbGxvY2F0ZWQuICBUaGUgdmFsdWUgY2FuIGJlIGEgZHdhcmYgZXhwcmVzc2lv biwKLSsgICAgIHJlZmVyZW5jZSwgb3IgYSBjb25zdGFudC4gICovCi0rICBzdHJ1Y3QgZHluYW1p Y19wcm9wICphbGxvY2F0ZWQ7Ci0rCi0rICAvKiBTdHJ1Y3R1cmUgZm9yIERXX0FUX2Fzc29jaWF0 ZWQuCi0rICAgICBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVkIHRoYXQg dGhlIG9iamVjdCBvZiB0aGUgdHlwZQotKyAgICAgY2FuIGJlIGFzc29jaWF0ZWQuICBUaGUgdmFs dWUgY2FuIGJlIGEgZHdhcmYgZXhwcmVzc2lvbiwKLSsgICAgIHJlZmVyZW5jZSwgb3IgYSBjb25z dGFudC4gICovCi0rICBzdHJ1Y3QgZHluYW1pY19wcm9wICphc3NvY2lhdGVkOwotIH07Ci0gCi0g LyogKiBBIGBgc3RydWN0IHR5cGUnJyBkZXNjcmliZXMgYSBwYXJ0aWN1bGFyIGluc3RhbmNlIG9m IGEgdHlwZSwgd2l0aAotQEAgLTEyNTUsNiArMTI3MSwxNSBAQAotICAgVFlQRV9SQU5HRV9EQVRB KHJhbmdlX3R5cGUpLT5oaWdoLmtpbmQKLSAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX0tJTkQocmFu Z2VfdHlwZSkgXAotICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cua2luZAotKyNk ZWZpbmUgVFlQRV9CWVRFX1NUUklERShyYW5nZV90eXBlKSBcCi0rICBUWVBFX1JBTkdFX0RBVEEo cmFuZ2VfdHlwZSktPnN0cmlkZS5kYXRhLmNvbnN0X3ZhbAotKyNkZWZpbmUgVFlQRV9CWVRFX1NU UklERV9CTE9DSyhyYW5nZV90eXBlKSBcCi0rICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSkt PnN0cmlkZS5kYXRhLmxvY2V4cHIKLSsjZGVmaW5lIFRZUEVfQllURV9TVFJJREVfTE9DTElTVChy YW5nZV90eXBlKSBcCi0rICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPnN0cmlkZS5kYXRh LmxvY2xpc3QKLSsjZGVmaW5lIFRZUEVfQllURV9TVFJJREVfS0lORChyYW5nZV90eXBlKSBcCi0r ICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPnN0cmlkZS5raW5kCi0rCi0gCi0gLyogUHJv cGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KLSAjZGVmaW5l IFRZUEVfREFUQV9MT0NBVElPTih0aGlzdHlwZSkgXAotQEAgLTEyNjYsNiArMTI5MSwxOCBAQAot ICNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQodGhpc3R5cGUpIFwKLSAgIFRZUEVfREFU QV9MT0NBVElPTiAodGhpc3R5cGUpLT5raW5kCi0gCi0rLyogQWxsb2NhdGVkIHN0YXR1cyBvZiB0 eXBlIG9iamVjdC4gIElmIHNldCB0byBub24temVybyBpdCBtZWFucyB0aGUgb2JqZWN0Ci0rICAg aXMgYWxsb2NhdGVkLiBBIHplcm8gdmFsdWUgbWVhbnMgaXQgaXMgbm90IGFsbG9jYXRlZC4gICov Ci0rI2RlZmluZSBUWVBFX05PVF9BTExPQ0FURUQodCkgIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0 KSBcCi0rICAmJiBUWVBFX0FMTE9DQVRFRF9QUk9QICh0KS0+a2luZCA9PSBQUk9QX0NPTlNUIFwK LSsgICYmICFUWVBFX0FMTE9DQVRFRF9QUk9QICh0KS0+ZGF0YS5jb25zdF92YWwpCi0rCi0rLyog QXNzb2NpYXRlZCBzdGF0dXMgb2YgdHlwZSBvYmplY3QuICBJZiBzZXQgdG8gbm9uLXplcm8gaXQg bWVhbnMgdGhlIG9iamVjdAotKyAgIGlzIGFzc29jaWF0ZWQuIEEgemVybyB2YWx1ZSBtZWFucyBp dCBpcyBub3QgYXNzb2NpYXRlZC4gICovCi0rI2RlZmluZSBUWVBFX05PVF9BU1NPQ0lBVEVEKHQp ICAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHQpIFwKLSsgICYmIFRZUEVfQVNTT0NJQVRFRF9QUk9Q ICh0KS0+a2luZCA9PSBQUk9QX0NPTlNUIFwKLSsgICYmICFUWVBFX0FTU09DSUFURURfUFJPUCAo dCktPmRhdGEuY29uc3RfdmFsKQotKwotIC8qIFByb3BlcnR5IGFjY2Vzc29ycyBmb3IgdGhlIHR5 cGUgYWxsb2NhdGVkL2Fzc29jaWF0ZWQuICAqLwotICNkZWZpbmUgVFlQRV9BTExPQ0FURURfUFJP UCh0aGlzdHlwZSkgXAotICAgZ2V0X2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQsIHRoaXN0 eXBlKQotQEAgLTEyODksNiArMTMyNiw5IEBACi0gICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5F RChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKLSAjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJf Qk9VTkRfSVNfVU5ERUZJTkVEKGFycmF5dHlwZSkgXAotICAgIFRZUEVfTE9XX0JPVU5EX1VOREVG SU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKLSsjZGVmaW5lIFRZUEVfQVJSQVlfU1RS SURFX0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKLSsgICAoVFlQRV9CWVRFX1NUUklERShUWVBF X0lOREVYX1RZUEUoYXJyYXl0eXBlKSkgPT0gMCkKLSsKLSAKLSAjZGVmaW5lIFRZUEVfQVJSQVlf VVBQRVJfQk9VTkRfVkFMVUUoYXJyYXl0eXBlKSBcCi0gICAgKFRZUEVfSElHSF9CT1VORChUWVBF X0lOREVYX1RZUEUoKGFycmF5dHlwZSkpKSkKLUBAIC0xNzc1LDYgKzE4MTUsNyBAQAotIAotIGV4 dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVj dCB0eXBlICosCi0gCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICosCi0rCQkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICosCi0gCQkJCSAgICAgICBjb25zdCBz dHJ1Y3QgZHluYW1pY19wcm9wICopOwotIAotIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2Fy cmF5X3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1m dW5jLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAotQEAgLTAsMCArMSw2 MSBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r Ci0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlICIu ZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVz dGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAgIHJl dHVybiAtMQotK30KLSsKLStpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAi Y291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsK LSsjIENoZWNrIFZMQSBwYXNzZWQgdG8gZmlyc3QgRm9ydHJhbiBmdW5jdGlvbi4KLStnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtdmxhLXBhc3NlZCJdCi0rZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXZsYS1wYXNzZWQiCi0rZ2RiX3Rlc3QgInByaW50 IHZsYSIgIiA9IFxcKCAqXFwoICoyMiwgKjIyLCAqMjIsXFsoKTIyLCAuXF0qXFwpIiBcCi0rICAi cHJpbnQgdmxhIChmdW5jMSkiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2Vy XFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEwXFxcKSIgXAotKyAgInB0eXBlIHZsYSAoZnVuYzEpIgot KwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEtbW9kaWZp ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS12bGEtbW9kaWZpZWQiCi0r Z2RiX3Rlc3QgInByaW50IHZsYSg1LDUpIiAiID0gNTUiICJwcmludCB2bGEoNSw1KSAoZnVuYzEp IgotK2dkYl90ZXN0ICJwcmludCB2bGEoNyw3KSIgIiA9IDc3IiAicHJpbnQgdmxhKDUsNSkgKGZ1 bmMxKSIKLSsKLSsjIENoZWNrIGlmIHRoZSB2YWx1ZXMgYXJlIGNvcnJlY3QgYWZ0ZXIgcmV0dXJu aW5nIGZyb20gZnVuYzEKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVu YzEtcmV0dXJuZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS1yZXR1cm5l ZCIKLStnZGJfdGVzdCAicHJpbnQgcmV0IiAiID0gLlRSVUUuIiAicHJpbnQgcmV0IGFmdGVyIGZ1 bmMxIHJldHVybmVkIgotKwotKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBzZWNvbmQgRm9ydHJhbiBm dW5jdGlvbgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMi12bGEt cGFzc2VkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzItdmxhLXBhc3NlZCIK LStnZGJfdGVzdCAicHJpbnQgdmxhIiBcCi0rICAiID0gXFxcKDQ0LCA0NCwgNDQsIDQ0LCA0NCwg NDQsIDQ0LCA0NCwgNDQsIDQ0XFxcKSIgXAotKyAgInByaW50IHZsYSAoZnVuYzIpIgotK2dkYl90 ZXN0ICJwdHlwZSB2bGEiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCki IFwKLSsgICJwdHlwZSB2bGEgKGZ1bmMyKSIKLSsKLSsjIENoZWNrIGlmIHRoZSByZXR1cm5lZCBW TEEgaGFzIHRoZSBjb3JyZWN0IHZhbHVlcyBhbmQgcHR5cGUuCi0rZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgImZ1bmMyLXJldHVybmVkIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiZnVuYzItcmV0dXJuZWQiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTMiICIgPSBcXFwo MSwgMiwgNDQsIDQsIDQ0LCA0NCwgNDQsIDgsIDQ0LCA0NFxcXCkiIFwKLSsgICJwcmludCB2bGEz IChhZnRlciBmdW5jMikiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxc XChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKLSsgICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMiki Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtZnVuYy5mOTAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCAr MDEwMAotQEAgLTAsMCArMSw3MSBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNl bnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwg SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcs IFVTQS4KLSsKLStsb2dpY2FsIGZ1bmN0aW9uIGZ1bmMxICh2bGEpCi0rICBpbXBsaWNpdCBub25l Ci0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEgKDosIDopCi0rICBmdW5jMSA9IGFsbG9j YXRlZCh2bGEpCi0rICB2bGEoNSw1KSA9IDU1ICAgICAgICAgICAgICAgISBmdW5jMS12bGEtcGFz c2VkCi0rICB2bGEoNyw3KSA9IDc3Ci0rICByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgISBm dW5jMS12bGEtbW9kaWZpZWQKLStlbmQgZnVuY3Rpb24gZnVuYzEKLSsKLStmdW5jdGlvbiBmdW5j Mih2bGEpCi0rICBpbXBsaWNpdCBub25lCi0rICBpbnRlZ2VyIDo6IHZsYSAoOikKLSsgIGludGVn ZXIgOjogZnVuYzIoc2l6ZSh2bGEpKQotKyAgaW50ZWdlciA6OiBrCi0rCi0rICB2bGEoMSkgPSAx ICAgICAgICAgICAgICAgICAgICAhIGZ1bmMyLXZsYS1wYXNzZWQKLSsgIHZsYSgyKSA9IDIKLSsg IHZsYSg0KSA9IDQKLSsgIHZsYSg4KSA9IDgKLSsKLSsgIGZ1bmMyID0gdmxhCi0rZW5kIGZ1bmN0 aW9uIGZ1bmMyCi0rCi0rcHJvZ3JhbSB2bGFfZnVuYwotKyAgaW1wbGljaXQgbm9uZQotKyAgaW50 ZXJmYWNlCi0rICAgIGxvZ2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkKLSsgICAgICBpbnRlZ2Vy IDo6IHZsYSAoOiwgOikKLSsgICAgZW5kIGZ1bmN0aW9uCi0rICBlbmQgaW50ZXJmYWNlCi0rICBp bnRlcmZhY2UKLSsgICAgZnVuY3Rpb24gZnVuYzIgKHZsYSkKLSsgICAgICBpbnRlZ2VyIDo6IHZs YSAoOikKLSsgICAgICBpbnRlZ2VyIGZ1bmMyKHNpemUodmxhKSkKLSsgICAgZW5kIGZ1bmN0aW9u Ci0rICBlbmQgaW50ZXJmYWNlCi0rCi0rICBsb2dpY2FsIDo6IHJldAotKyAgaW50ZWdlciwgYWxs b2NhdGFibGUgOjogdmxhMSAoOiwgOikKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTIg KDopCi0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEzICg6KQotKwotKyAgcmV0ID0gLkZB TFNFLgotKwotKyAgYWxsb2NhdGUgKHZsYTEgKDEwLDEwKSkKLSsgIHZsYTEoOiw6KSA9IDIyCi0r Ci0rICBhbGxvY2F0ZSAodmxhMiAoMTApKQotKyAgdmxhMig6KSA9IDQ0Ci0rCi0rICByZXQgPSBm dW5jMSh2bGExKQotKyAgdmxhMyA9IGZ1bmMyKHZsYTIpICAgICAgICAgICEgZnVuYzEtcmV0dXJu ZWQKLSsKLSsgIHJldCA9IC5UUlVFLiAgICAgICAgICAgICAgICAhIGZ1bmMyLXJldHVybmVkCi0r ZW5kIHByb2dyYW0gdmxhX2Z1bmMKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCi09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE2LTAx LTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCArMSw0NCBAQAotKyMgQ29weXJp Z2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK LSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgotKwotK2lmIHsg W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmls ZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsK LStpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRv IGJyZWFrcG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCi0rZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgInJlLXJldmVyc2UtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50 IHB2bGEiICIgPSBcXFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwpIiBcCi0rICAi cHJpbnQgcmUtcmV2ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9 IDEiICJwcmludCBmaXJzdCByZS1yZXZlcnNlLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2 bGEoMTApIiAiID0gMTAiICJwcmludCBsYXN0IHJlLXJldmVyc2UtZWxlbWVudCIKLSsKLStnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAib2RkLWVsZW1lbnRzIl0KLStnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAib2RkLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBwdmxh IiAiID0gXFxcKDEsIDMsIDUsIDcsIDlcXFwpIiAicHJpbnQgb2RkLWVsZW1lbnRzIgotK2dkYl90 ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IG9kZC1lbGVtZW50IgotK2dk Yl90ZXN0ICJwcmludCBwdmxhKDUpIiAiID0gOSIgInByaW50IGxhc3Qgb2RkLWVsZW1lbnQiCi0r Ci0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1lbGVtZW50Il0K LStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCi0rZ2RiX3Rlc3Qg InByaW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVudCIKLStnZGJf dGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVsZW1lbnQiCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaWRlLmY5MAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYg KzAxMDAKLUBAIC0wLDAgKzEsMzAgQEAKLSshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSshIEZvdW5kYXRpb24s IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3 LCBVU0EuCi0rCi0rcHJvZ3JhbSB2bGFfc3RyaWRlCi0rICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9j YXRhYmxlIDo6IHZsYSAoOikKLSsgIGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAoOikKLSsKLSsg IGFsbG9jYXRlKHZsYSgxMCkpCi0rICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8pCi0rCi0rICBw dmxhID0+IHZsYSgxMDoxOi0xKQotKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCi0rICBwdmxhID0+ IHZsYSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVsZW1lbnRzCi0rICBwdmxhID0+IHZsYSg1OjQ6 LTIpICAgISBvZGQtZWxlbWVudHMKLSsKLSsgIHB2bGEgPT4gbnVsbCgpICAgICAgICAhIHNpbmds ZS1lbGVtZW50Ci0rZW5kIHByb2dyYW0gdmxhX3N0cmlkZQotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3Ry aW5ncy5leHAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKLUBAIC0wLDAgKzEs MTAxIEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUg Ii5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0 ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAg cmV0dXJuIC0xCi0rfQotKwotKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRh dHlwZXMgd2lsbCBiZQotKyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncwot KwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4g dG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSJdCi0rZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0xIgotK2dkYl90ZXN0ICJw cmludCB2YXJfY2hhciIgXAotKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAg XFwpXFwpICR7aGV4fSIgXAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBmaXJz dCB0aW1lIgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKLSsgICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIK LStnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0 ZXJcXCoxMCBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBmaXJzdCB0aW1lIgotK2dkYl90ZXN0 ICJuZXh0IiAiXFxkKy4qdmFyX2NoYXIgPSAnZm9vJy4qIiBcCi0rICAibmV4dCB0byBhbGxvY2F0 aW9uIHN0YXR1cyBvZiB2YXJfY2hhciIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IC5UUlVFLiIg InByaW50IGFsbG9jYXRpb24gc3RhdHVzIGZpcnN0IHRpbWUiCi0rCi0rZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0xIl0KLStnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTEiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9j aGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAke2hl eH0iIFwKLSsgICJwcmludCB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKLStnZGJf dGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2ZvbyciIFwKLSsgICJwcmludCAqdmFyX2NoYXIg YWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9j aGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIg InR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCi0rICAicHR5cGUgdmFy X2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFy KDEpIiAiID0gMTAyICdmJyIgInByaW50IHZhcl9jaGFyKDEpIgotK2dkYl90ZXN0ICJwcmludCB2 YXJfY2hhcigzKSIgIiA9IDExMSAnbyciICJwcmludCB2YXJfY2hhcigzKSIKLSsKLStnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTIiXQotK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMiIKLStnZGJfdGVzdCAicHJp bnQgdmFyX2NoYXIiIFwKLSsgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwp XFwpICR7aGV4fSIgXAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBzZWNvbmQg dGltZSIKLStnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2Zvb2JhciciIFwKLSsgICJw cmludCAqdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1lIgotK2dkYl90ZXN0ICJ3 aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIg XAotKyAgIndoYXRpcyB2YXJfY2hhciBzZWNvbmQgdGltZSIKLStnZGJfdGVzdCAicHR5cGUgdmFy X2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAotKyAgInB0 eXBlIHZhcl9jaGFyIHNlY29uZCB0aW1lIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2YXJfY2hhci1lbXB0eSJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InZhcl9jaGFyLWVtcHR5IgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotKyAgIiA9IFxc KFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQg dmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIg PSBcIlwiIiAicHJpbnQgKnZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKLStnZGJfdGVzdCAid2hh dGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwK LSsgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0ICJwdHlwZSB2 YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCi0rICAi cHR5cGUgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMyJdCi0rZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0zIgotK2dkYl90ZXN0ICJwcmludCB2YXJf Y2hhciIgXAotKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpXFwpICR7 aGV4fSIgXAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1lIgot K2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0 ZXJcXCoyMSBcXCkiIFwKLSsgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJk IHRpbWUiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqMjEgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVk IHRoaXJkIHRpbWUiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZh cl9jaGFyX3AtYXNzb2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9j aGFyX3AtYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXJfcCIgXAotKyAgIiA9 IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNyBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJp bnQgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2No YXJfcCIgIiA9ICdqb2huZG9lJyIgXAotKyAgInByaW50ICp2YXJfY2hhcl8gYWZ0ZXIgYXNzb2Np YXRlZCIKLStnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFzc29j aWF0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAotKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2Np YXRlZCIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1zdHJpbmdzLmY5MAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQu OTg0NjM3Njg2ICswMTAwCi1AQCAtMCwwICsxLDQwIEBACi0rISBDb3B5cmlnaHQgMjAxNCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyEgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKLSshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCi0rISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSshIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIQotKyEgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSshIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rISBG b3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEg MDIxMTEtMTMwNywgVVNBLgotKwotK3Byb2dyYW0gdmxhX3N0cmluZ3MKLSsgIGNoYXJhY3Rlcihs ZW49OiksIHRhcmdldCwgYWxsb2NhdGFibGUgICA6OiB2YXJfY2hhcgotKyAgY2hhcmFjdGVyKGxl bj06KSwgcG9pbnRlciAgICAgICAgICAgICAgIDo6IHZhcl9jaGFyX3AKLSsgIGxvZ2ljYWwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OiBsCi0rCi0rICBhbGxvY2F0ZShjaGFyYWN0 ZXIobGVuPTEwKSA6OiB2YXJfY2hhcikKLSsgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAg ICAgICAgICAgICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0xCi0rICB2YXJfY2hhciA9ICdmb28nCi0r ICBkZWFsbG9jYXRlKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1maWxs ZWQtMQotKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2No YXItZGVhbGxvY2F0ZWQKLSsgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49NDIpIDo6IHZhcl9jaGFy KQotKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikKLSsgIHZhcl9jaGFyID0gJ2Zvb2JhcicKLSsg IHZhcl9jaGFyID0gJycgICAgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxl ZC0yCi0rICB2YXJfY2hhciA9ICdiYXInICAgICAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hh ci1lbXB0eQotKyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikKLSsgIGFsbG9jYXRlKGNoYXJhY3Rlcihs ZW49MjEpIDo6IHZhcl9jaGFyKQotKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAg ICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTMKLSsgIHZhcl9jaGFyID0gJ2pvaG5kb2UnCi0r ICB2YXJfY2hhcl9wID0+IHZhcl9jaGFyCi0rICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAg ICAgICAgICAgICAgISB2YXJfY2hhcl9wLWFzc29jaWF0ZWQKLSsgIHZhcl9jaGFyX3AgPT4gbnVs bCgpCi0rICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hh cl9wLW5vdC1hc3NvY2lhdGVkCi0rZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdHlwZXByaW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4 NjU4MjQ3NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90eXBlcHJpbnQuYwky MDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTQ2MCw2ICs0NjAsMTMgQEAK LSAKLSAgIHR5cGUgPSB2YWx1ZV90eXBlICh2YWwpOwotIAotKyAgaWYgKFRZUEVfQ09ERSAodHlw ZSkgPT0gVFlQRV9DT0RFX1BUUikKLSsgICAgaWYgKGlzX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpKQotKyAgICAgIHsKLSsJdmFsID0gdmFsdWVfYWRkciAodmFsdWVfaW5k ICh2YWwpKTsKLSsJdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0rICAgICAgfQotKwotICAgZ2V0 X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwotICAgaWYgKG9wdHMub2JqZWN0cHJpbnQpCi0g ICAgIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsYXJpdGguYwotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNi0w MS0wOCAxOToxNTozNS4wODc1ODI0ODIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdmFsYXJpdGguYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NTYzNzY5MSArMDEwMAotQEAgLTE5 Myw5ICsxOTMsMjEgQEAKLSAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKLSAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHVuc2lnbmVkIGlu dCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0tICB1bnNpZ25lZCBp bnQgZWx0X29mZnMgPSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91 bmQpOwotKyAgdW5zaWduZWQgaW50IGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGluZGV4IC0g bG93ZXJib3VuZCk7Ci0rICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChU WVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHN0cnVjdCB2YWx1ZSAqdjsKLSAKLSsg IGlmIChlbHRfc3RyaWRlID4gMCkKLSsgICAgZWx0X29mZnMgKj0gZWx0X3N0cmlkZTsKLSsgIGVs c2UgaWYgKGVsdF9zdHJpZGUgPCAwKQotKyAgICB7Ci0rICAgICAgaW50IG9mZnMgPSAoZWx0X29m ZnMgKyAxKSAqIGVsdF9zdHJpZGU7Ci0rCi0rICAgICAgZWx0X29mZnMgPSBUWVBFX0xFTkdUSCAo YXJyYXlfdHlwZSkgKyBvZmZzOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIGVsdF9vZmZzICo9IGVs dF9zaXplOwotKwotICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQotIAkJCSAgICAgJiYgZWx0X29mZnMg Pj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKLSAgICAgewotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4ODU4 MjQ4NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5jCTIwMTYt MDEtMDggMTk6MTU6NDQuOTg2NjM3Njk3ICswMTAwCi1AQCAtMzE2LDYgKzMxNiwxOCBAQAotICAg ICAgIHJldHVybiAwOwotICAgICB9Ci0gCi0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlw ZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7Ci0r ICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKHR5 cGUpKQotKyAgICB7Ci0rICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7Ci0r ICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSAgIGlmIChUWVBFX0NPREUgKHR5cGUpICE9IFRZ UEVfQ09ERV9VTklPTgotICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX1NU UlVDVAotICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKQotQEAg LTEwMjUsMTIgKzEwMzcsMTYgQEAKLSB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1 ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotIHsKLSsgIGNvbnN0IHN0cnVjdCB0eXBlICp0 eXBlOwotKwotICAgaWYgKHZhbCA9PSAwKQotICAgICB7Ci0gICAgICAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCBfKCI8YWRkcmVzcyBvZiB2YWx1ZSB1bmtub3duPiIpKTsKLSAgICAgICByZXR1 cm4gMDsKLSAgICAgfQotIAotKyAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0rCi0gICBpZiAo dmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAodmFsKSkKLSAgICAgewotICAgICAgIGlmIChv cHRpb25zLT5zdW1tYXJ5ICYmICF2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAodmFsdWVfdHlwZSAo dmFsKSkpCi1AQCAtMTA2Niw2ICsxMDgyLDE4IEBACi0gICAgIHsKLSAgICAgICB2YWxfcHJpbnRf bm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSAgICAgICByZXR1cm4gMDsKLSsgICAgfQotKwotKyAg aWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICB7Ci0rICAgICAgdmFsX3ByaW50 X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybiAwOwotKyAgICB9Ci0rCi0r ICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmlu dF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybiAwOwotICAgICB9Ci0gCi0g ICByZXR1cm4gMTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFscHJpbnQuaAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZhbHByaW50LmgJ MjAxNi0wMS0wOCAxOToxNTozNS4wODg1ODI0ODcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdmFscHJpbnQuaAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NjYzNzY5NyArMDEwMAot QEAgLTIzMiw0ICsyMzIsOCBAQAotIAkJCQkJc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKLSBl eHRlcm4gdm9pZCBwcmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVjdCBm b3JtYXRfZGF0YSAqZm10cCk7Ci0gCi0rZXh0ZXJuIHZvaWQgdmFsX3ByaW50X25vdF9hbGxvY2F0 ZWQgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwotKwotK2V4dGVybiB2b2lkIHZhbF9wcmludF9u b3RfYXNzb2NpYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci0rCi0gI2VuZGlmCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHVlLmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi92YWx1ZS5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDkw NTgyNDk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHVlLmMJMjAxNi0w MS0wOCAxOToxNTo0NC45ODc2Mzc3MDIgKzAxMDAKLUBAIC00MCw2ICs0MCw3IEBACi0gI2luY2x1 ZGUgInRyYWNlcG9pbnQuaCIKLSAjaW5jbHVkZSAiY3AtYWJpLmgiCi0gI2luY2x1ZGUgInVzZXIt cmVncy5oIgotKyNpbmNsdWRlICJkd2FyZjJsb2MuaCIKLSAKLSAvKiBQcm90b3R5cGVzIGZvciBl eHBvcnRlZCBmdW5jdGlvbnMuICAqLwotIAotQEAgLTE3ODgsNiArMTc4OSwyNSBAQAotICAgICAg IGlmIChmdW5jcy0+Y29weV9jbG9zdXJlKQotICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5j b21wdXRlZC5jbG9zdXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwotICAgICB9Ci0r Ci0rICAvKiBGb3IgZHluYW1pYyB0eXBlcyBjb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBjb21w b25lbnQgdmFsdWUgbG9jYXRpb24gaW4KLSsgICAgIHN1YiByYW5nZSB0eXBlcyBiYXNlZCBvbiB0 aGUgbG9jYXRpb24gb2YgdGhlIHN1YiByYW5nZSB0eXBlLCBpZiBub3QgYmVpbmcKLSsgICAgIGFu IGludGVybmFsIEdEQiB2YXJpYWJsZSBvciBwYXJ0cyBvZiBpdC4gICovCi0rICBpZiAoVkFMVUVf TFZBTCAoY29tcG9uZW50KSAhPSBsdmFsX2ludGVybmFsdmFyCi0rICAgICAgJiYgVkFMVUVfTFZB TCAoY29tcG9uZW50KSAhPSBsdmFsX2ludGVybmFsdmFyX2NvbXBvbmVudCkKLSsgICAgewotKyAg ICAgIENPUkVfQUREUiBhZGRyOwotKyAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlw ZSAod2hvbGUpOwotKwotKyAgICAgIGFkZHIgPSB2YWx1ZV9yYXdfYWRkcmVzcyAoY29tcG9uZW50 KTsKLSsKLSsgICAgICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotKyAgICAgICAgICAm JiBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsgICAgICAg IHsKLSsgICAgICAgICAgYWRkciA9IFRZUEVfREFUQV9MT0NBVElPTl9BRERSICh0eXBlKTsKLSsg ICAgICAgICAgc2V0X3ZhbHVlX2FkZHJlc3MgKGNvbXBvbmVudCwgYWRkcik7Ci0rICAgICAgICB9 Ci0rICAgIH0KLSB9Ci0gCi0gDAotQEAgLTMwOTUsMTMgKzMxMTUsMjIgQEAKLSAJdiA9IGFsbG9j YXRlX3ZhbHVlX2xhenkgKHR5cGUpOwotICAgICAgIGVsc2UKLSAJewotLQkgIHYgPSBhbGxvY2F0 ZV92YWx1ZSAodHlwZSk7Ci0tCSAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHYsIHZhbHVlX2Vt YmVkZGVkX29mZnNldCAodiksCi0tCQkJCSAgIGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAo YXJnMSkgKyBvZmZzZXQsCi0tCQkJCSAgIHR5cGVfbGVuZ3RoX3VuaXRzICh0eXBlKSk7Ci0rCSAg aWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKLSsJICAgICAgJiYgVFlQRV9EQVRBX0xPQ0FU SU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0rCSAgICB2ID0gdmFsdWVfYXRfbGF6eSAo dHlwZSwgdmFsdWVfYWRkcmVzcyAoYXJnMSkgKyBvZmZzZXQpOwotKwkgIGVsc2UKLSsJICAgIHsK LSsJICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLSsJICAgICAgdmFsdWVfY29udGVu dHNfY29weV9yYXcgKHYsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodiksCi0rCQkJCSAgICAgICBh cmcxLCB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0LAotKwkJCQkgICAgICAg dHlwZV9sZW5ndGhfdW5pdHMgKHR5cGUpKTsKLSsJICAgIH0KLSAJfQotLSAgICAgIHYtPm9mZnNl dCA9ICh2YWx1ZV9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0tCQkgICArIHZhbHVlX2VtYmVkZGVk X29mZnNldCAoYXJnMSkpOwotKwotKyAgICAgIGlmICghVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBl KQotKyAgICAgICAgICB8fCAhVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1Bf Q09OU1QpCi0rCXYtPm9mZnNldCA9ICh2YWx1ZV9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0rCQkg ICAgICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0gICAgIH0KLSAgIHNldF92YWx1 ZV9jb21wb25lbnRfbG9jYXRpb24gKHYsIGFyZzEpOwotICAgVkFMVUVfUkVHTlVNICh2KSA9IFZB TFVFX1JFR05VTSAoYXJnMSk7Ci1AQCAtMzY4OSw3ICszNzE4LDggQEAKLSAJCQkgICAgICBzdHJ1 Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlKQotIHsKLSAgIC8qIFJlLWFkanVzdCB0eXBlLiAgKi8K LS0gIGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKHZhbHVlLCBUWVBFX1RBUkdFVF9UWVBFIChv cmlnaW5hbF90eXBlKSk7Ci0rICBpZiAoIWlzX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQ RSAob3JpZ2luYWxfdHlwZSkpKQotKyAgICBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlICh2YWx1 ZSwgVFlQRV9UQVJHRVRfVFlQRSAob3JpZ2luYWxfdHlwZSkpOwotIAotICAgLyogQWRkIGVtYmVk ZGluZyBpbmZvLiAgKi8KLSAgIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsdWUsIGVuY190 eXBlKTsKLUBAIC0zNzA2LDYgKzM3MzYsMTIgQEAKLSAgIHN0cnVjdCB2YWx1ZSAqcmV0dmFsOwot ICAgc3RydWN0IHR5cGUgKmVuY190eXBlOwotIAotKyAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxh X2xhbmd1YWdlICE9IGxhbmd1YWdlX2ZvcnRyYW4KLSsgICAgICAmJiBUWVBFX0RBVEFfTE9DQVRJ T04gKHZhbHVlX3R5cGVfYXJnX3RtcCkgIT0gTlVMTAotKyAgICAgICYmIFRZUEVfREFUQV9MT0NB VElPTl9LSU5EICh2YWx1ZV90eXBlX2FyZ190bXApID09IFBST1BfQ09OU1QpCi0rICAgIGFyZyA9 IHZhbHVlX2F0X2xhenkgKHZhbHVlX3R5cGVfYXJnX3RtcCwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgVFlQRV9EQVRBX0xPQ0FUSU9OX0FERFIgKHZhbHVlX3R5cGVfYXJnX3RtcCkpOwotKwot ICAgcmV0dmFsID0gY29lcmNlX3JlZl9pZl9jb21wdXRlZCAoYXJnKTsKLSAgIGlmIChyZXR2YWwp Ci0gICAgIHJldHVybiByZXR2YWw7Ci1AQCAtMzgzNCw4ICszODcwLDE0IEBACi0gICAgIH0KLSAg IGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCi0gICAgIHsKLS0gICAg ICBDT1JFX0FERFIgYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7Ci0gICAgICAgc3RydWN0IHR5 cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSk7Ci0r ICAgICAgQ09SRV9BRERSIGFkZHI7Ci0rCi0rICAgICAgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAo dHlwZSkgIT0gTlVMTAotKwkgICYmIFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSA9PSBQ Uk9QX0NPTlNUKQotKwlhZGRyID0gVFlQRV9EQVRBX0xPQ0FUSU9OX0FERFIgKHR5cGUpOwotKyAg ICAgIGVsc2UKLSsJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7Ci0gCi0gICAgICAgaWYgKFRZ UEVfTEVOR1RIICh0eXBlKSkKLSAJcmVhZF92YWx1ZV9tZW1vcnkgKHZhbCwgMCwgdmFsdWVfc3Rh Y2sgKHZhbCksCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2R3YXJmMmxvYy5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZHdhcmYybG9jLmMJ MjAxNi0wMS0wOCAxOToxNTozNS4wOTE1ODI1MDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvZHdhcmYybG9jLmMJMjAxNi0wMS0wOCAxOToxNTo0NC45ODg2Mzc3MDggKzAxMDAK LUBAIC0yMzY4LDYgKzIzNjgsMTEgQEAKLSAJICAgIGFkZHJlc3MgPSB2YWx1ZV9hc19hZGRyZXNz ICh2YWx1ZV9mcm9tX3BvaW50ZXIgKHB0cl90eXBlLCBhZGRyZXNzKSk7Ci0gCi0gCSAgICBkb19j bGVhbnVwcyAodmFsdWVfY2hhaW4pOwotKwotKwkgICAgLyogU2VsZWN0IHJpZ2h0IGZyYW1lIHRv IGNvcnJlY3RseSBldmFsdWF0ZSBWTEEncyBkdXJpbmcgYSBiYWNrdHJhY2UuICAqLwotKwkgICAg aWYgKGlzX2R5bmFtaWNfdHlwZSAodHlwZSkpCi0rCSAgICAgIHNlbGVjdF9mcmFtZSAoZnJhbWUp OwotKwotIAkgICAgcmV0dmFsID0gdmFsdWVfYXRfbGF6eSAodHlwZSwgYWRkcmVzcyArIGJ5dGVf b2Zmc2V0KTsKLSAJICAgIGlmIChpbl9zdGFja19tZW1vcnkpCi0gCSAgICAgIHNldF92YWx1ZV9z dGFjayAocmV0dmFsLCAxKTsKLUBAIC0yNjYwLDYgKzI2NjUsMTkgQEAKLSAJCQkgICAgIGRhdGEs IGRhdGEgKyBzaXplLCBwZXJfY3UpOwotIH0KLSAKLSsvKiBTZWUgZHdhcmYybG9jLmguICAqLwot KwotK2ludAotK2R3YXJmMl9hZGRyZXNzX2RhdGFfdmFsaWQgKGNvbnN0IHN0cnVjdCB0eXBlICp0 eXBlKQotK3sKLSsgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsgICAgcmV0dXJu IDA7Ci0rCi0rICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAgcmV0dXJuIDA7 Ci0rCi0rICByZXR1cm4gMTsKLSt9Ci0gDAotIC8qIEhlbHBlciBmdW5jdGlvbnMgYW5kIGJhdG9u IGZvciBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUuICAqLwotIAoKZGlmZiAtLWdpdCBhL2dk Yi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggMWRjZmMyMi4uNGNjMWZjZiAxMDA2NDQKLS0tIGEvZ2Ri LnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTE5LDE1ICsxOSwxNSBAQCBTdW1tYXJ5OiBBIEdOVSBz b3VyY2UtbGV2ZWwgZGVidWdnZXIgZm9yIEMsIEMrKywgRm9ydHJhbiwgR28gYW5kIG90aGVyIGxh bmd1YWdlcwogTmFtZTogJXs/c2NsX3ByZWZpeH1nZGIKIAogIyBGcmVlemUgaXQgd2hlbiBHREIg Z2V0cyBicmFuY2hlZAotJWdsb2JhbCBzbmFwc3JjICAgIDIwMTYwMjEwCislZ2xvYmFsIHNuYXBz cmMgICAgMjAxNjA3MTYKICMgU2VlIHRpbWVzdGFtcCBvZiBzb3VyY2UgZ251bGliIGluc3RhbGxl ZCBpbnRvIGdkYi9nbnVsaWIvIC4KICVnbG9iYWwgc25hcGdudWxpYiAyMDE1MDgyMgogJWdsb2Jh bCB0YXJuYW1lIGdkYi0le3ZlcnNpb259Ci1WZXJzaW9uOiA3LjExLjEKK1ZlcnNpb246IDcuMTEu NTAuJXtzbmFwc3JjfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcg cmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBh cnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZv ciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDc2JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9kaXN0fQog CiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBh bmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFu ZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBA IC01MTksMTIgKzUxOSwxNiBAQCBQYXRjaDEwNjA6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0z b2Y2LnBhdGNoCiBQYXRjaDEwNjE6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBhdGNo CiBQYXRjaDEwNjI6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCiBQYXRjaDEw NjM6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCi1QYXRjaDg4ODogZ2RiLXZs YS1pbnRlbC5wYXRjaAotUGF0Y2g5ODM6IGdkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0Y2gK K1BhdGNoMTEzMjogZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCitQYXRjaDExMzM6IGdkYi12bGEt aW50ZWwtMm9mNy5wYXRjaAorUGF0Y2gxMTM0OiBnZGItdmxhLWludGVsLTNvZjcucGF0Y2gKK1Bh dGNoMTEzNTogZ2RiLXZsYS1pbnRlbC00b2Y3LnBhdGNoCitQYXRjaDExMzY6IGdkYi12bGEtaW50 ZWwtNW9mNy5wYXRjaAorUGF0Y2gxMTM3OiBnZGItdmxhLWludGVsLTZvZjcucGF0Y2gKK1BhdGNo MTEzODogZ2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCiBQYXRjaDg4OTogZ2RiLXZsYS1pbnRlbC1z dHJpbmdidC1maXgucGF0Y2gKLVBhdGNoOTEyOiBnZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0 Y2gKIFBhdGNoODg3OiBnZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAotUGF0Y2gxMDY5OiBnZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCitQYXRjaDg4ODogZ2RiLXZs YS1pbnRlbC10ZXN0cy5wYXRjaAogCiAjIENvbnRpbnVlIGJhY2t0cmFjZSBldmVuIGlmIGEgZnJh bWUgZmlsdGVyIHRocm93cyBhbiBleGNlcHRpb24gKFBoaWwgTXVsZG9vbikuCiBQYXRjaDkxODog Z2RiLWJ0cm9idXN0LnBhdGNoCkBAIC01NzAsOSArNTc0LDExIEBAIFBhdGNoMTEyMDogZ2RiLXRl c3RzdWl0ZS1kdzItdW5kZWZpbmVkLXJldC1hZGRyLnBhdGNoCiAjIE5ldyB0ZXN0IGZvciBQeXRo b24gIkNhbm5vdCBsb2NhdGUgb2JqZWN0IGZpbGUgZm9yIGJsb2NrIiAoZm9yIFJIIEJaIDEzMjU3 OTUpLgogUGF0Y2gxMTIzOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0ZXJzLXRlc3QucGF0Y2gK IAotIyBJbXBvcnQgYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jayAoUkggQlogMTMyNTM5NikuCi1Q YXRjaDExMjg6IGdkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKLVBhdGNo MTEyOTogZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaAorIyBbdGVzdHN1 aXRlXSBGaXggZ2RiLmdkYi9zZWxmdGVzdC5leHAgZm9yIEMrKy1PMi1nLWJ1aWx0IEdEQi4KK1Bh dGNoMTEzOTogZ2RiLXRlc3RzdWl0ZS1zZWxmdGVzdC1jeHgucGF0Y2gKKworIyBbdGVzdHN1aXRl XSBTa2lwIHB5LXVud2luZC5leHAgb24geDg2XzY0IC1tMzIuCitQYXRjaDExNDA6IGdkYi10ZXN0 c3VpdGUtcHktdW53aW5kLW0zMi5wYXRjaAogCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVs fSA+IDYKICMgUkxfU1RBVEVfRkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgpAQCAt NzcxLDEwICs3NzcsMTQgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRj aDEwNjEgLXAxCiAlcGF0Y2gxMDYyIC1wMQogJXBhdGNoMTA2MyAtcDEKLSVwYXRjaDg4OCAtcDEK LSVwYXRjaDk4MyAtcDEKKyVwYXRjaDExMzIgLXAxCislcGF0Y2gxMTMzIC1wMQorJXBhdGNoMTEz NCAtcDEKKyVwYXRjaDExMzUgLXAxCislcGF0Y2gxMTM2IC1wMQorJXBhdGNoMTEzNyAtcDEKKyVw YXRjaDExMzggLXAxCiAlcGF0Y2g4ODkgLXAxCi0lcGF0Y2g5MTIgLXAxCiAlcGF0Y2gxIC1wMQog CiAlcGF0Y2gxMDUgLXAxCkBAIC04NjgsNyArODc4LDcgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8 eGFyZ3Mgcm0gLWYKICVwYXRjaDg1MiAtcDEKICVwYXRjaDg2MyAtcDEKICVwYXRjaDg4NyAtcDEK LSVwYXRjaDEwNjkgLXAxCislcGF0Y2g4ODggLXAxCiAlcGF0Y2g5MTggLXAxCiAlcGF0Y2g5MjUg LXAxCiAlcGF0Y2g5MjcgLXAxCkBAIC04ODYsOCArODk2LDggQEAgZmluZCAtbmFtZSAiKi5pbmZv KiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDExMTggLXAxCiAlcGF0Y2gxMTIwIC1wMQogJXBhdGNoMTEy MyAtcDEKLSVwYXRjaDExMjggLXAxCi0lcGF0Y2gxMTI5IC1wMQorJXBhdGNoMTEzOSAtcDEKKyVw YXRjaDExNDAgLXAxCiAKICVwYXRjaDEwNzUgLXAxCiAlaWYgMCV7P3JoZWw6MX0gJiYgMCV7P3Jo ZWx9IDw9IDcKQEAgLTk2NSw2ICs5NzUsOCBAQCBDRkxBR1M9IiRDRkxBR1MgLURORUVEX1JMX1NU QVRFX0ZFRE9SQV9HREIiCiBDRkxBR1M9IiRDRkxBR1MgLURORUVEX0RFVEFDSF9TSUdTVE9QIgog JWVuZGlmCiAKK2V4cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKwogIyAtLWh0bWxkaXIgYW5kIC0t cGRmZGlyIGFyZSBub3QgdXNlZCBhcyB0aGV5IGFyZSB1c2VkIGZyb20gJXtnZGJfYnVpbGR9Lgog Li4vY29uZmlndXJlCQkJCQkJCVwKIAktLXByZWZpeD0le19wcmVmaXh9CQkJCQlcCkBAIC05NzUs NiArOTg3LDcgQEAgQ0ZMQUdTPSIkQ0ZMQUdTIC1ETkVFRF9ERVRBQ0hfU0lHU1RPUCIKIAktLXdp dGgtc3lzdGVtLWdkYmluaXQ9JXtfc3lzY29uZmRpcn0vZ2RiaW5pdAkJXAogCS0td2l0aC1nZGIt ZGF0YWRpcj0le19kYXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdz PSwtV25vLXVudXNlZAkJXAorCS0tZW5hYmxlLWJ1aWxkLXdpdGgtY3h4CQkJCQlcCiAlaWZuYXJj aCAle2l4ODZ9IGFscGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2NCBwcGM2NGxlIHNwYXJj IHNwYXJjdjkgc3BhcmM2NCAle2FybX0gYWFyY2g2NAogCS0tZGlzYWJsZS13ZXJyb3IJCQkJCVwK ICVlbHNlCkBAIC0xNDA3LDYgKzE0MjAsOSBAQCB0aGVuCiBmaQogCiAlY2hhbmdlbG9nCisqIFN1 biBKdWwgMTcgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4g LSA3LjExLjUwLjIwMTYwNzE2LTEuZmMyNQorLSBSZWJhc2UgdG8gRlNGIEdEQiA3LjExLjUwLjIw MTYwNzE2IChwcmUtNy4xMiB0cnVuayBzbmFwc2hvdCkuCisKICogTW9uIEp1biAyNyAyMDE2IEph biBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS03Ni5mYzI0 CiAtIFRlc3QgJ2luZm8gdHlwZS1wcmludGVycycgUHl0aG9uIGVycm9yIChSSCBCWiAxMzUwNDM2 KS4KIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDI2NDc4ZWIuLjkxNjFl MDYgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDdh ZDMyZDM4OTRhYWY5MGQwMGE0MzQzYTczNWMzZTFjICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1y MjI1NTIxLnRhci54egotNWFhNzE1MjJlNDg4ZTM1ODI0MzkxNzk2N2RiODc0NzYgIGdkYi03LjEx LjEudGFyLnh6Cis5YmNlOTNhNTY3ZGIwZTcxMmFkYWU1MWMzNTE3MGQwNiAgZ2RiLTcuMTEuNTAu MjAxNjA3MTYudGFyLnh6Cg==