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: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 8.2.50.20180917 (8.3pre). Date: Sat, 27 Jun 2026 23:59:16 GMT Message-ID: <178260475679.1.9531724330554838182.rpms-gdb-0702d0d3e831@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 0702d0d3e8313c1dc588ee5326b3f8af1cfe9a4d ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMDcwMmQwZDNlODMxM2MxZGM1ODhlZTUzMjZiM2Y4YWYxY2Zl OWE0ZAogICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2Rq QHJlZGhhdC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDktMTdUMTg6Mzg6MTQtMDQ6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzQ4My8tMzg0MCBpbiA1NSBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMDcw MmQwZDNlODMxM2MxZGM1ODhlZTUzMjZiM2Y4YWYxY2ZlOWE0ZD9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA4 LjIuNTAuMjAxODA5MTcgKDguM3ByZSkuCkFkZCAnZ2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5 dmlldy5wYXRjaCcuCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmlu ZGV4IDk0OWMyMDQuLjkxMmFmYTggMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGln bm9yZQpAQCAtMSwzICsxLDMgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5dGhvbi04LjEuMS0yMDE4 MDYyNi50YXIueHoKLS9nZGItOC4xLjkwLjIwMTgwNzI3LnRhci54egogL3YyLjAudGFyLmd6Cisv Z2RiLTguMi41MC4yMDE4MDkxNy50YXIueHoKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMuUGF0Y2gu aW5jbHVkZSBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4IGIzYzU2MzMuLjQ3YmY2ODUg MTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5QYXRj aC5pbmNsdWRlCkBAIC01MDQsMzMgKzUwNCw4IEBAIFBhdGNoMTIwOiBnZGItdmxhLWludGVsLWZp eC1wcmludC1jaGFyLWFycmF5LnBhdGNoCiAjID1mZWRvcmF0ZXN0CiBQYXRjaDEyMTogZ2RiLXJo YnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCiAKLSMgSW1wbGVtZW50IElQdjYgc3Vw cG9ydCBmb3IgR0RCL2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5p b3IpLgotUGF0Y2gxMjI6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaAotCi0KLVBhdGNo MTIzOiBnZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKLQotCi1QYXRjaDEyNDogZ2RiLXJo Yno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCi0KLSMgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9k aXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCi1QYXRjaDEyNTog Z2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0Y2gKLQotIyBBZGQgR0RCIHN1cHBv cnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgx KS4KLVBhdGNoMTI2OiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtMm9mNy5wYXRjaAotCi0j IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0s IFJIIEJaIDExODc1ODEpLgotUGF0Y2gxMjc6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0z b2Y3LnBhdGNoCi0KLSMgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCBy ZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCi1QYXRjaDEyODogZ2RiLXJoYnoxMTg3NTgx LXBvd2VyOC1yZWdzLTRvZjcucGF0Y2gKLQotIyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rp c3BsYXkgUE9XRVI4IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KLVBhdGNoMTI5OiBn ZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNW9mNy5wYXRjaAotCi0jIEFkZCBHREIgc3VwcG9y dCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEp LgotUGF0Y2gxMzA6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy02b2Y3LnBhdGNoCi0KLSMg QWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwg UkggQlogMTE4NzU4MSkuCi1QYXRjaDEzMTogZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTdv ZjcucGF0Y2gKKyMgVGhpcyBwYXRjaCBpcyBuZWVkZWQgdG8gY29tcGlsZSBHREIgYWZ0ZXIgLVdl cnJvcj1uYXJyb3dpbmcgaGFzCisjIGJlZW4gZW5hYmxlZCBieSBkZWZhdWx0LgorIyBBdXRob3I6 IFNlcmdpbyBEdXJpZ2FuIEp1bmlvci4KK1BhdGNoMTIyOiBnZGItcmhiejc5NTQyNC1iaXRwb3Mt YXJyYXl2aWV3LnBhdGNoCiAKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZSBi L19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCmluZGV4IGNhMzkwYjcuLjEzMWNmOTMgMTAwNjQ0Ci0t LSBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRl CkBAIC0xMjAsMTIgKzEyMCwzIEBACiAlcGF0Y2gxMjAgLXAxCiAlcGF0Y2gxMjEgLXAxCiAlcGF0 Y2gxMjIgLXAxCi0lcGF0Y2gxMjMgLXAxCi0lcGF0Y2gxMjQgLXAxCi0lcGF0Y2gxMjUgLXAxCi0l cGF0Y2gxMjYgLXAxCi0lcGF0Y2gxMjcgLXAxCi0lcGF0Y2gxMjggLXAxCi0lcGF0Y2gxMjkgLXAx Ci0lcGF0Y2gxMzAgLXAxCi0lcGF0Y2gxMzEgLXAxCgpkaWZmIC0tZ2l0IGEvX2dpdF91cHN0cmVh bV9jb21taXQgYi9fZ2l0X3Vwc3RyZWFtX2NvbW1pdAppbmRleCAwNmYzM2ZkLi41ZDgyZTI1IDEw MDY0NAotLS0gYS9fZ2l0X3Vwc3RyZWFtX2NvbW1pdAorKysgYi9fZ2l0X3Vwc3RyZWFtX2NvbW1p dApAQCAtMSArMSBAQAotYWIwODBjMTAyODY5ZGQzYWQzMDBhOTlkMGMwMGIyNTY0MDRmZDc2Ygor ZTA4ZWY2MjhhN2UzMDk4Njk5ZWM2OTM5NTg0ZTJjOWY3YTllMTk1MgoKZGlmZiAtLWdpdCBhL19w YXRjaF9vcmRlciBiL19wYXRjaF9vcmRlcgppbmRleCBlYzJmODZmLi40ZDE5OWNlIDEwMDY0NAot LS0gYS9fcGF0Y2hfb3JkZXIKKysrIGIvX3BhdGNoX29yZGVyCkBAIC0xMTksMTMgKzExOSw0IEBA IGdkYi10ZXN0c3VpdGUtcmVhZGxpbmU2My1zaWdpbnQucGF0Y2gKIGdkYi1hcmNoZXIucGF0Y2gK IGdkYi12bGEtaW50ZWwtZml4LXByaW50LWNoYXItYXJyYXkucGF0Y2gKIGdkYi1yaGJ6MTU1MzEw NC1zMzkweC1hcmNoMTItdGVzdC5wYXRjaAotZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YzLnBhdGNo Ci1nZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKLWdkYi1yaGJ6ODgxODQ5LWlwdjYtM29m My5wYXRjaAotZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0Y2gKLWdkYi1yaGJ6 MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3LnBhdGNoCi1nZGItcmhiejExODc1ODEtcG93ZXI4LXJl Z3MtM29mNy5wYXRjaAotZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTRvZjcucGF0Y2gKLWdk Yi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy01b2Y3LnBhdGNoCi1nZGItcmhiejExODc1ODEtcG93 ZXI4LXJlZ3MtNm9mNy5wYXRjaAotZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTdvZjcucGF0 Y2gKK2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1hcnJheXZpZXcucGF0Y2gKCmRpZmYgLS1naXQgYS9n ZGItNi4zLWdzdGFjay0yMDA1MDQxMS5wYXRjaCBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBh dGNoCmluZGV4IDM3YjA5ZGUuLjUyM2QwZDAgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtZ3N0YWNrLTIw MDUwNDExLnBhdGNoCisrKyBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCkBAIC0xNiw3 ICsxNiw3IEBAIFN1YmplY3Q6IGdkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCiBkaWZmIC0t Z2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCiAtLS0gYS9nZGIvTWFrZWZp bGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE3MzUsNyArMTczNSw3IEBAIGluZm8g aW5zdGFsbC1pbmZvIGNsZWFuLWluZm8gZHZpIHBkZiBpbnN0YWxsLXBkZiBodG1sIGluc3RhbGwt aHRtbDogZm9yY2UKK0BAIC0xNzMyLDcgKzE3MzIsNyBAQCBpbmZvIGluc3RhbGwtaW5mbyBjbGVh bi1pbmZvIGR2aSBwZGYgaW5zdGFsbC1wZGYgaHRtbCBpbnN0YWxsLWh0bWw6IGZvcmNlCiAgaW5z dGFsbDogYWxsCiAgCUAkKE1BS0UpICQoRkxBR1NfVE9fUEFTUykgaW5zdGFsbC1vbmx5CiAgCkBA IC0yNSw3ICsyNSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZp bGUuaW4KICAJdHJhbnNmb3JtZWRfbmFtZT1gdD0nJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKSc7 IFwKICAJCQkgIGVjaG8gZ2RiIHwgc2VkIC1lICIkJHQiYCA7IFwKICAJCWlmIHRlc3QgIngkJHRy YW5zZm9ybWVkX25hbWUiID0geDsgdGhlbiBcCi1AQCAtMTc4NCw3ICsxNzg0LDI1IEBAIGluc3Rh bGwtZ3VpbGU6CitAQCAtMTc4MSw3ICsxNzgxLDI1IEBAIGluc3RhbGwtZ3VpbGU6CiAgaW5zdGFs bC1weXRob246CiAgCSQoU0hFTEwpICQoc3JjZGlyKS8uLi9ta2luc3RhbGxkaXJzICQoREVTVERJ UikkKEdEQl9EQVRBRElSKS9weXRob24vZ2RiCiAgCkBAIC01Miw3ICs1Miw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KICAJdHJhbnNmb3JtZWRfbmFt ZT1gdD0nJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKSc7IFwKICAJCQkgIGVjaG8gZ2RiIHwgc2Vk IC1lICQkdGAgOyBcCiAgCQlpZiB0ZXN0ICJ4JCR0cmFuc2Zvcm1lZF9uYW1lIiA9IHg7IHRoZW4g XAotQEAgLTE4MDcsNiArMTgyNSwxOCBAQCB1bmluc3RhbGw6IGZvcmNlICQoQ09ORklHX1VOSU5T VEFMTCkKK0BAIC0xODA0LDYgKzE4MjIsMTggQEAgdW5pbnN0YWxsOiBmb3JjZSAkKENPTkZJR19V TklOU1RBTEwpCiAgCWZpCiAgCUAkKE1BS0UpIERPPXVuaW5zdGFsbCAiRE9ESVJTPSQoU1VCRElS UykiICQoRkxBR1NfVE9fUEFTUykgc3ViZGlyX2RvCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1y ZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRj aAppbmRleCBiNzBiNThmLi44YTUxYWVmIDEwMDY0NAotLS0gYS9nZGItNi4zLXJlYWRuZXZlci0y MDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaApAQCAt MzIsNCArMzIsNCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2djb3JlLmluIGIvZ2RiL2djb3JlLmluCiAr CSIkYmluYXJ5X3BhdGgvQEdEQl9UUkFOU0ZPUk1fTkFNRUAiIDwvZGV2L251bGwgLS1ueCAtLWJh dGNoIC0tcmVhZG5ldmVyIFwKICAJICAgIC1leCAic2V0IHBhZ2luYXRpb24gb2ZmIiAtZXggInNl dCBoZWlnaHQgMCIgLWV4ICJzZXQgd2lkdGggMCIgXAogIAkgICAgIiR7ZHVtcF9hbGxfY21kc1tA XX0iIFwKLSAJICAgIC1leCAiYXR0YWNoICRwaWQiIC1leCAiZ2NvcmUgJG5hbWUuJHBpZCIgLWV4 IGRldGFjaCAtZXggcXVpdAorIAkgICAgLWV4ICJhdHRhY2ggJHBpZCIgLWV4ICJnY29yZSAkcHJl Zml4LiRwaWQiIC1leCBkZXRhY2ggLWV4IHF1aXQKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjE2 NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRjaCBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMt b3V0ZXJtb3N0LnBhdGNoCmluZGV4IGE1NDlkMTAuLmYxMWRmMGEgMTAwNjQ0Ci0tLSBhL2dkYi02 LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCisrKyBiL2dkYi02LjUtYnoyMTY3 MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCkBAIC0xNjksNyArMTY5LDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9hbWQ2NC10ZGVwLmMgYi9nZGIvYW1kNjQtdGRlcC5jCiBkaWZmIC0tZ2l0IGEvZ2Ri L2kzODYtdGRlcC5jIGIvZ2RiL2kzODYtdGRlcC5jCiAtLS0gYS9nZGIvaTM4Ni10ZGVwLmMKICsr KyBiL2dkYi9pMzg2LXRkZXAuYwotQEAgLTg0MDQsNiArODQwNCw5IEBAIGkzODZfZ2RiYXJjaF9p bml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoX2xpc3QgKmFyY2hl cykKK0BAIC04NDA2LDYgKzg0MDYsOSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAgCiAgICB0ZGVwLT54 c2F2ZV94Y3IwX29mZnNldCA9IC0xOwogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjUtYnoyMTgzNzkt c29saWItdHJhbXBvbGluZS1sb29rdXAtbG9jay1maXgucGF0Y2ggYi9nZGItNi41LWJ6MjE4Mzc5 LXNvbGliLXRyYW1wb2xpbmUtbG9va3VwLWxvY2stZml4LnBhdGNoCmluZGV4IDQ1ZDg1NzAuLjIw NTc3ZWQgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtYnoyMTgzNzktc29saWItdHJhbXBvbGluZS1sb29r dXAtbG9jay1maXgucGF0Y2gKKysrIGIvZ2RiLTYuNS1iejIxODM3OS1zb2xpYi10cmFtcG9saW5l LWxvb2t1cC1sb2NrLWZpeC5wYXRjaApAQCAtMTEsNyArMTEsNyBAQCBodHRwczovL2J1Z3ppbGxh LnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIxODM3OQogZGlmZiAtLWdpdCBh L2dkYi9zeW10YWIuYyBiL2dkYi9zeW10YWIuYwogLS0tIGEvZ2RiL3N5bXRhYi5jCiArKysgYi9n ZGIvc3ltdGFiLmMKLUBAIC0zMTY1LDYgKzMxNjUsMTMgQEAgZmluZF9wY19zZWN0X2xpbmUgKENP UkVfQUREUiBwYywgc3RydWN0IG9ial9zZWN0aW9uICpzZWN0aW9uLCBpbnQgbm90Y3VycmVudCkK K0BAIC0zMTY2LDYgKzMxNjYsMTMgQEAgZmluZF9wY19zZWN0X2xpbmUgKENPUkVfQUREUiBwYywg c3RydWN0IG9ial9zZWN0aW9uICpzZWN0aW9uLCBpbnQgbm90Y3VycmVudCkKICAJICAgICBTWU1C T0xfTElOS0FHRV9OQU1FIChtc3ltYm9sKSk7ICovCiAgCSAgOwogIAkvKiBmYWxsIHRocm91Z2gg Ki8KCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNo IGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaAppbmRleCA0MDkzOGE1 Li41ODc2YTQ3IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJn LnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKQEAg LTg1LDcgKzg1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9leGVjLmMgYi9nZGIvZXhlYy5jCiAgCiAg I2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAt MzU3LDEyICszNTgsMjcgQEAgZXhlY19maWxlX2F0dGFjaCAoY29uc3QgY2hhciAqZmlsZW5hbWUs IGludCBmcm9tX3R0eSkKK0BAIC0zNTYsMTIgKzM1NywyNyBAQCBleGVjX2ZpbGVfYXR0YWNoIChj b25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQogIAogICAgICAgIGlmICghYmZkX2No ZWNrX2Zvcm1hdF9tYXRjaGVzIChleGVjX2JmZCwgYmZkX29iamVjdCwgJm1hdGNoaW5nKSkKICAJ ewpAQCAtMTAyLDcgKzEwMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXhlYy5jIGIvZ2RiL2V4ZWMu YwogIAkgIGV4ZWNfY2xvc2UgKCk7CiAtCSAgZXJyb3IgKF8oIlwiJXNcIjogbm90IGluIGV4ZWN1 dGFibGUgZm9ybWF0OiAlcyIpLAogLQkJIHNjcmF0Y2hfcGF0aG5hbWUsCi0tCQkgZ2RiX2JmZF9l cnJtc2cgKGJmZF9nZXRfZXJyb3IgKCksIG1hdGNoaW5nKSk7CistCQkgZ2RiX2JmZF9lcnJtc2cg KGJmZF9nZXRfZXJyb3IgKCksIG1hdGNoaW5nKS5jX3N0ciAoKSk7CiArCiArCSAgaWYgKGlzX2Nv cmUgIT0gMCkKICsJICAgIHRocm93X2Vycm9yIChJU19DT1JFX0VSUk9SLApAQCAtMTEyLDE0ICsx MTIsMTQgQEAgZGlmZiAtLWdpdCBhL2dkYi9leGVjLmMgYi9nZGIvZXhlYy5jCiArCSAgZWxzZQog KwkgICAgZXJyb3IgKF8oIlwiJXNcIjogbm90IGluIGV4ZWN1dGFibGUgZm9ybWF0OiAlcyIpLAog KwkJICAgc2NyYXRjaF9wYXRobmFtZSwKLSsJCSAgIGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vy cm9yICgpLCBtYXRjaGluZykpOworKwkJICAgZ2RiX2JmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3Ig KCksIG1hdGNoaW5nKS5jX3N0ciAoKSk7CiAgCX0KICAKICAgICAgICBpZiAoYnVpbGRfc2VjdGlv bl90YWJsZSAoZXhlY19iZmQsICZzZWN0aW9ucywgJnNlY3Rpb25zX2VuZCkpCiBkaWZmIC0tZ2l0 IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKIC0tLSBhL2dkYi9tYWluLmMKICsrKyBiL2dkYi9t YWluLmMKLUBAIC00NDcsNiArNDQ3LDM3IEBAIHN0cnVjdCBjbWRhcmcKK0BAIC00NDcsNiArNDQ3 LDM1IEBAIHN0cnVjdCBjbWRhcmcKICAgIGNoYXIgKnN0cmluZzsKICB9OwogIApAQCAtMTMwLDgg KzEzMCw2IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogK3N0YXRpYyB2 b2lkCiArZXhlY19vcl9jb3JlX2ZpbGVfYXR0YWNoIChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50 IGZyb21fdHR5KQogK3sKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci0rCiAr ICBnZGJfYXNzZXJ0IChleGVjX2JmZCA9PSBOVUxMKTsKICsKICsgIFRSWQpAQCAtMTU3LDcgKzE1 NSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogIHN0YXRpYyB2b2lk CiAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQog IHsKLUBAIC04ODMsNiArOTE0LDggQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRf bWFpbl9hcmdzICpjb250ZXh0KQorQEAgLTg4NCw2ICs5MTMsOCBAQCBjYXB0dXJlZF9tYWluXzEg KHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQpCiAgCXsKICAJICBzeW1hcmcgPSBh cmd2W29wdGluZF07CiAgCSAgZXhlY2FyZyA9IGFyZ3Zbb3B0aW5kXTsKQEAgLTE2Niw3ICsxNjQs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsK ICAJfQogIAotQEAgLTEwMzMsMTEgKzEwNjYsMjUgQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3Qg Y2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQorQEAgLTEwMzQsMTIgKzEwNjUsMjUgQEAgY2Fw dHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogICAgICAg ICYmIHN5bWFyZyAhPSBOVUxMCiAgICAgICAgJiYgc3RyY21wIChleGVjYXJnLCBzeW1hcmcpID09 IDApCiAgICAgIHsKQEAgLTE4NSwxMyArMTgzLDE0IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5j IGIvZ2RiL21haW4uYwogICAgICAgIC8qIFRoZSBleGVjIGZpbGUgYW5kIHRoZSBzeW1ib2wtZmls ZSBhcmUgdGhlIHNhbWUuICBJZiB3ZSBjYW4ndAogICAgICAgICAgIG9wZW4gaXQsIGJldHRlciBv bmx5IHByaW50IG9uZSBlcnJvciBtZXNzYWdlLgogLSAgICAgICAgIGNhdGNoX2NvbW1hbmRfZXJy b3JzIHJldHVybnMgbm9uLXplcm8gb24gc3VjY2VzcyEgICovCi0tICAgICAgaWYgKGNhdGNoX2Nv bW1hbmRfZXJyb3JzIChleGVjX2ZpbGVfYXR0YWNoLCBleGVjYXJnLAotLQkJCQkhYmF0Y2hfZmxh ZykpCistICAgICAgcmV0ID0gY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGV4ZWNfZmlsZV9hdHRhY2gs IGV4ZWNhcmcsCistCQkJCSAgIWJhdGNoX2ZsYWcpOworLSAgICAgIGlmIChyZXQgIT0gMCkKICsg ICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3Mh CiArCSBEbyBub3QgbG9hZCBFWEVDQVJHIGFzIGEgc3ltYm9sIGZpbGUgaWYgaXQgaGFzIGJlZW4g YWxyZWFkeSBwcm9jZXNzZWQKICsJIGFzIGEgY29yZSBmaWxlLiAgKi8KLSsgICAgICBpZiAoY2F0 Y2hfY29tbWFuZF9lcnJvcnMgKGZ1bmMsIGV4ZWNhcmcsICFiYXRjaF9mbGFnKQotKwkgICYmIGNv cmVfYmZkID09IE5VTEwpCi0gCWNhdGNoX2NvbW1hbmRfZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRf bWFpbl9hZGFwdGVyLCBzeW1hcmcsCi0gCQkJICAgICAgIWJhdGNoX2ZsYWcpOworKyAgICAgIHJl dCA9IGNhdGNoX2NvbW1hbmRfZXJyb3JzIChmdW5jLCBleGVjYXJnLCAhYmF0Y2hfZmxhZyk7Cisr ICAgICAgaWYgKHJldCAhPSAwICYmIGNvcmVfYmZkID09IE5VTEwpCisgCXJldCA9IGNhdGNoX2Nv bW1hbmRfZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRfbWFpbl9hZGFwdGVyLAorIAkJCQkgICAgc3lt YXJnLCAhYmF0Y2hfZmxhZyk7CiAgICAgIH0KCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLW1pc2xlYWRpbmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBh dGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1taXNsZWFkaW5nLXdhcm5pbmctbWlzc2luZy1k ZWJ1Z2luZm8tcmhiejk4MTE1NC5wYXRjaAppbmRleCBhMjUwNTdlLi4xNjJmM2Q3IDEwMDY0NAot LS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLW1pc2xlYWRpbmctd2FybmluZy1taXNzaW5nLWRl YnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlz bGVhZGluZy13YXJuaW5nLW1pc3NpbmctZGVidWdpbmZvLXJoYno5ODExNTQucGF0Y2gKQEAgLTI4 LDcgKzI4LDcgQEAgQ29tbWVudHMgYnkgU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakBy ZWRoYXQuY29tPjoKIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1pZC5j CiAtLS0gYS9nZGIvYnVpbGQtaWQuYwogKysrIGIvZ2RiL2J1aWxkLWlkLmMKLUBAIC01ODEsNyAr NTgxLDEwIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2xlbiwgY29u c3QgYmZkX2J5dGUgKmJ1aWxkX2lkLAorQEAgLTU3OCw3ICs1NzgsMTAgQEAgYnVpbGRfaWRfdG9f ZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLCBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQs CiAgCSAgZG9fY2xlYW51cHMgKGlubmVyKTsKICAKICAJICBpZiAoYWJmZCA9PSBOVUxMKQoKZGlm ZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLWxpYnJwbS13b3JrYXJvdW5kLnBh dGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gK aW5kZXggMzc1YjE3OC4uZTQ5MzVmNSAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKQEAgLTksNyArOSw3IEBAIFN1YmplY3Q6IGdk Yi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLWxpYnJwbS13b3JrYXJvdW5kLnBhdGNoCiBkaWZmIC0t Z2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9nZGIvYnVpbGQtaWQuYwogLS0tIGEvZ2RiL2J1aWxkLWlk LmMKICsrKyBiL2dkYi9idWlsZC1pZC5jCi1AQCAtNjUyLDYgKzY1MiwxOSBAQCBidWlsZF9pZF90 b19maWxlbmFtZSAoY29uc3Qgc3RydWN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQsIGNoYXIgKips aW5rX3JldHVybikKK0BAIC02NDksNiArNjQ5LDE5IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChj b25zdCBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuKQog ICNpbmNsdWRlIDxkbGZjbi5oPgogICNlbmRpZgogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNj bC5wYXRjaAppbmRleCA3ZTM5NDg4Li5kYTJiZjVkIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxk aWQtbG9jYXRlLXJwbS1zY2wucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0t c2NsLnBhdGNoCkBAIC0xMiw3ICsxMiw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9z aG93X2J1Zy5jZ2k/aWQ9OTUzNTg1CiBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9nZGIv YnVpbGQtaWQuYwogLS0tIGEvZ2RiL2J1aWxkLWlkLmMKICsrKyBiL2dkYi9idWlsZC1pZC5jCi1A QCAtNjg5LDcgKzY4OSwxMSBAQCBzdGF0aWMgaW50IG1pc3NpbmdfcnBtX2xpc3RfZW50cmllczsK K0BAIC02ODYsNyArNjg2LDExIEBAIHN0YXRpYyBpbnQgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVz OwogIC8qIFJldHVybnMgdGhlIGNvdW50IG9mIG5ld2x5IGFkZGVkIHJwbXMuICAqLwogIAogIHN0 YXRpYyBpbnQKQEAgLTI0LDcgKzI0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIv Z2RiL2J1aWxkLWlkLmMKICB7CiAgICBzdGF0aWMgaW50IHJwbV9pbml0X2RvbmUgPSAwOwogICAg cnBtdHMgdHM7Ci1AQCAtNzk2LDcgKzgwMCwxMSBAQCBtaXNzaW5nX3JwbV9lbmxpc3QgKGNvbnN0 IGNoYXIgKmZpbGVuYW1lKQorQEAgLTc5Myw3ICs3OTcsMTEgQEAgbWlzc2luZ19ycG1fZW5saXN0 IChjb25zdCBjaGFyICpmaWxlbmFtZSkKICAgIG1pID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMs IFJQTVRBR19CQVNFTkFNRVMsIGZpbGVuYW1lLCAwKTsKICAgIGlmIChtaSAhPSBOVUxMKQogICAg ICB7CkBAIC0zNiw3ICszNiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9i dWlsZC1pZC5jCiAgCXsKICAJICBIZWFkZXIgaDsKICAJICBjaGFyICpkZWJ1Z2luZm8sICoqc2xv dCwgKnMsICpzMjsKLUBAIC05MTQsNiArOTIyLDM3IEBAIG1pc3NpbmdfcnBtX2VubGlzdCAoY29u c3QgY2hhciAqZmlsZW5hbWUpCitAQCAtOTExLDYgKzkxOSwzNyBAQCBtaXNzaW5nX3JwbV9lbmxp c3QgKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogIAkgICAgeGZyZWUgKGRlYnVnaW5mbyk7CiAgCSAg Y291bnQrKzsKICAJfQpAQCAtNzQsNyArNzQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlk LmMgYi9nZGIvYnVpbGQtaWQuYwogIAogICAgICAgIHJwbWRiRnJlZUl0ZXJhdG9yX3AgKG1pKTsK ICAgICAgfQotQEAgLTkyNCw2ICs5NjMsMjEgQEAgbWlzc2luZ19ycG1fZW5saXN0IChjb25zdCBj aGFyICpmaWxlbmFtZSkKK0BAIC05MjEsNiArOTYwLDIxIEBAIG1pc3NpbmdfcnBtX2VubGlzdCAo Y29uc3QgY2hhciAqZmlsZW5hbWUpCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTk5LDcgKzk5LDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKIGRpZmYgLS1n aXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogLS0tIGEvZ2RiL2R3YXJm MnJlYWQuYwogKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTM0NjksNiArMzQ2OSwxNiBAQCBy ZWFkX2dkYl9pbmRleF9mcm9tX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAg LTM0NjcsNiArMzQ2NywxNiBAQCByZWFkX2dkYl9pbmRleF9mcm9tX2J1ZmZlciAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCiAgICAgICAic2V0IHVzZS1kZXByZWNhdGVkLWluZGV4LXNlY3Rpb25z IG9uIi4gICovCiAgICBpZiAodmVyc2lvbiA8IDYgJiYgIWRlcHJlY2F0ZWRfb2spCiAgICAgIHsK QEAgLTExNiw3ICsxMTYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9k d2FyZjJyZWFkLmMKICAgICAgICBzdGF0aWMgaW50IHdhcm5pbmdfcHJpbnRlZCA9IDA7CiAgICAg ICAgaWYgKCF3YXJuaW5nX3ByaW50ZWQpCiAgCXsKLUBAIC0zNDgwLDYgKzM0OTAsMTAgQEAgdG8g dXNlIHRoZSBzZWN0aW9uIGFueXdheS4iKSwKK0BAIC0zNDc4LDYgKzM0ODgsMTAgQEAgdG8gdXNl IHRoZSBzZWN0aW9uIGFueXdheS4iKSwKICAJICB3YXJuaW5nX3ByaW50ZWQgPSAxOwogIAl9CiAg ICAgICAgcmV0dXJuIDA7CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0u cGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCBkNWVjNGIwLi5j OWNkY2U0IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysg Yi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtMjQ0LDcgKzI0NCw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1pZC5jCiAgCiAgI2RlZmluZSBC VUlMRF9JRF9WRVJCT1NFX05PTkUgMAogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9GSUxFTkFN RVMgMQotQEAgLTY0MCw4ICs2NDIsMzY2IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBz dHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuKQorQEAgLTYz Nyw4ICs2MzksMzY2IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2J1 aWxkX2lkICpidWlsZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuKQogICAgcmV0dXJuIHJlc3VsdDsK ICB9CiAgCkBAIC02MTIsNyArNjEyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIv Z2RiL2J1aWxkLWlkLmMKICAgICBhdm9pZGFuY2UuICAqLwogIAogIHN0cnVjdCBtaXNzaW5nX2Zp bGVwYWlyCi1AQCAtNjk1LDExICsxMDU1LDE3IEBAIG1pc3NpbmdfZmlsZXBhaXJfY2hhbmdlICh2 b2lkKQorQEAgLTY5MiwxMSArMTA1MiwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9p ZCkKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVzdCBmcm9tIG1pc3NpbmdfZmls ZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxlcGFpcl9oYXNoID0gTlVMTDsK ICAgICAgfQpAQCAtNjMwLDcgKzYzMCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBi L2dkYi9idWlsZC1pZC5jCiAgICBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAoKTsKICB9CiAgCi1A QCAtNzY2LDE0ICsxMTMyLDM5IEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJp bmFyeSwgY29uc3QgY2hhciAqZGVidWcpCitAQCAtNzYzLDE0ICsxMTI5LDM5IEBAIGRlYnVnX3By aW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpCiAgCiAg ICAqc2xvdCA9IG1pc3NpbmdfZmlsZXBhaXI7CiAgCkBAIC02OTAsNyArNjkwLDcgQEAgZGlmZiAt LWdpdCBhL2dkYi9jb25maWcuaW4gYi9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYg dHJhbnNsYXRpb24gb2YgcHJvZ3JhbSBtZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2ZQogICAg IGxhbmd1YWdlIGlzIHJlcXVlc3RlZC4gKi8KICAjdW5kZWYgRU5BQkxFX05MUwotQEAgLTI3MCw2 ICsyNzMsOSBAQAorQEAgLTI1OCw2ICsyNjEsOSBAQAogIC8qIERlZmluZSBpZiBQeXRob24gMi43 IGlzIGJlaW5nIHVzZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUFlUSE9OMl83CiAgCkBAIC03MjIs OCArNzIyLDggQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAr d2l0aF9ycG0KICBlbmFibGVfdGFyZ2V0cwogIGVuYWJsZV82NF9iaXRfYmZkCi0gZW5hYmxlX2dk YmNsaQotQEAgLTkxMiw2ICs5MTgsMTEgQEAgQ0NDCisgZW5hYmxlX2dkYm1pCitAQCAtOTEwLDYg KzkxNiwxMSBAQCBDQ0MKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJTkZPRkxBR1MKQEAgLTczNSw3 ICs3MzUsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKICBZ QUNDCiAgWUZMQUdTCiAgWE1LTUYnCi1AQCAtMTU4Myw2ICsxNTk0LDggQEAgT3B0aW9uYWwgUGFj a2FnZXM6CitAQCAtMTU3OCw2ICsxNTg5LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbLS13aXRoLWF1dG8tbG9hZC1kaXJdCiAgICAtLXdpdGhvdXQt YXV0by1sb2FkLXNhZmUtcGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gbm90IHJl c3RyaWN0IGF1dG8tbG9hZGVkIGZpbGVzIGxvY2F0aW9ucwpAQCAtNzQ0LDcgKzc0NCw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogICAgLS13aXRoLWxpYnVu d2luZC1pYTY0ICAgdXNlIGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0 cwogICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0 ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5Ci1A QCAtMTY0MCw2ICsxNjUzLDEzIEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFi bGVzOgorQEAgLTE2MzUsNiArMTY0OCwxMyBAQCBTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50 IHZhcmlhYmxlczoKICAgIE1BS0VJTkZPICAgIFBhcmVudCBjb25maWd1cmUgZGV0ZWN0cyBpZiBp dCBpcyBvZiBzdWZmaWNpZW50IHZlcnNpb24uCiAgICBNQUtFSU5GT0ZMQUdTCiAgICAgICAgICAg ICAgICBQYXJhbWV0ZXJzIGZvciBNQUtFSU5GTy4KQEAgLTc1OCw3ICs3NTgsNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKICAgIFlBQ0MgICAgICAgIFRoZSBg WWV0IEFub3RoZXIgQ29tcGlsZXIgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4KICAg ICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjog YGJpc29uIC15JywgYGJ5YWNjJywKICAgICAgICAgICAgICAgIGB5YWNjJy4KLUBAIC02NTc1LDYg KzY1OTUsNDk0IEBAIF9BQ0VPRgorQEAgLTY1NzAsNiArNjU5MCw0OTQgQEAgX0FDRU9GCiAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3aXRoX2F1dG9f bG9hZF9zYWZlX3BhdGgiID4mNQogICRhc19lY2hvICIkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRo IiA+JjY7IH0KICAKQEAgLTE1MDMsNyArMTUwMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXZlbnQt dG9wLmMgYi9nZGIvZXZlbnQtdG9wLmMKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmlsZS5oIGIvZ2Ri L3N5bWZpbGUuaAogLS0tIGEvZ2RiL3N5bWZpbGUuaAogKysrIGIvZ2RiL3N5bWZpbGUuaAotQEAg LTU0MCw2ICs1NDAsOCBAQCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5h bWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0YSwKK0BAIC01MzQsNiArNTM0LDggQEAgdm9pZCBtYXBf c3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEs CiAgLyogYnVpbGQtaWQgc3VwcG9ydC4gICovCiAgZXh0ZXJuIHN0cnVjdCBiZmRfYnVpbGRfaWQg KmJ1aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7CiAgZXh0ZXJuIHZvaWQgZGVidWdf cHJpbnRfbWlzc2luZyAoY29uc3QgY2hhciAqYmluYXJ5LCBjb25zdCBjaGFyICpkZWJ1Zyk7Cgpk aWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRj aCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKaW5kZXgg MmI5NjE2Ni4uNmRhNTNhNyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xp Yi1taXNzaW5nLWlkcy5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1p c3NpbmctaWRzLnBhdGNoCkBAIC0xNCw3ICsxNCw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0 LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTMzOTg2MgogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0 LmMgYi9nZGIvc29saWItc3ZyNC5jCiAtLS0gYS9nZGIvc29saWItc3ZyNC5jCiArKysgYi9nZGIv c29saWItc3ZyNC5jCi1AQCAtMTM1OCwxNCArMTM1OCwyNyBAQCBzdnI0X3JlYWRfc29fbGlzdCAo Q09SRV9BRERSIGxtLCBDT1JFX0FERFIgcHJldl9sbSwKK0BAIC0xMzQzLDE0ICsxMzQzLDI3IEBA IHN2cjRfcmVhZF9zb19saXN0IChDT1JFX0FERFIgbG0sIENPUkVfQUREUiBwcmV2X2xtLAogIAl9 CiAgCiAgICAgICAgewpAQCAtNDQsNyArNDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2 cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKICAJaWYgKGJ1aWxkX2lkICE9IE5VTEwpCiAgCSAgewog IAkgICAgY2hhciAqbmFtZSwgKmJ1aWxkX2lkX2ZpbGVuYW1lOwotQEAgLTEzODAsMjMgKzEzOTMs NyBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBDT1JFX0FERFIgcHJldl9sbSwK K0BAIC0xMzY1LDIzICsxMzc4LDcgQEAgc3ZyNF9yZWFkX3NvX2xpc3QgKENPUkVfQUREUiBsbSwg Q09SRV9BRERSIHByZXZfbG0sCiAgCQl4ZnJlZSAobmFtZSk7CiAgCSAgICAgIH0KICAJICAgIGVs c2UKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCA2MThmNDFhLi5iMzdhMzk2IDEwMDY0NAotLS0gYS9n ZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUu cGF0Y2gKQEAgLTQzNiw3ICs0MzYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9n ZGIvYnVpbGQtaWQuYwogIAogICAgaWYgKGZvdW5kID09IE5VTEwpCiAgICAgIHdhcm5pbmcgKF8o IkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lwcGVkIiksCi1AQCAtNjUsMTEg KzQ2Myw1MCBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrX2xlbiwg Y29uc3QgYmZkX2J5dGUgKmNoZWNrKQorQEAgLTY1LDExICs0NjMsNDcgQEAgYnVpbGRfaWRfdmVy aWZ5IChiZmQgKmFiZmQsIHNpemVfdCBjaGVja19sZW4sIGNvbnN0IGJmZF9ieXRlICpjaGVjaykK ICAgIHJldHVybiByZXR2YWw7CiAgfQogIApAQCAtNDgxLDE0ICs0ODEsMTEgQEAgZGlmZiAtLWdp dCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKICtidWlsZF9pZF90b19kZWJ1Z19i ZmQgKHNpemVfdCBidWlsZF9pZF9sZW4sIGNvbnN0IGJmZF9ieXRlICpidWlsZF9pZCwKICsJCSAg ICAgICBjaGFyICoqbGlua19yZXR1cm4sIGludCBhZGRfZGVidWdfc3VmZml4KQogIHsKLSsgIGNo YXIgKmRlYnVnZGlyOwogKyAgc3RkOjpzdHJpbmcgbGluaywgbGlua19hbGw7Ci0rICBzdHJ1Y3Qg Y2xlYW51cCAqYmFja190bzsKLSsgIGludCBpeDsKICAgIGdkYl9iZmRfcmVmX3B0ciBhYmZkOwog IAogICAgLyogS2VlcCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9E SVJFQ1RPUlkgYmVpbmcgIiIgd2lsbAotQEAgLTgyLDYzICs1MTksMjk2IEBAIGJ1aWxkX2lkX3Rv X2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2xlbiwgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lk KQorQEAgLTgyLDYzICs1MTYsMjk2IEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1 aWxkX2lkX2xlbiwgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKQogICAgICB7CiAgICAgICAgY29u c3QgZ2RiX2J5dGUgKmRhdGEgPSBidWlsZF9pZDsKICAgICAgICBzaXplX3Qgc2l6ZSA9IGJ1aWxk X2lkX2xlbjsKQEAgLTgwNyw3ICs4MDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMg Yi9nZGIvYnVpbGQtaWQuYwogICAgICAgIC8qIFByZXZlbnQgbG9vcGluZyBvbiBhIHN0cmlwcGVk IC5kZWJ1ZyBmaWxlLiAgKi8KICAgICAgICBpZiAoYWJmZCAhPSBOVUxMCiAgCSAgJiYgZmlsZW5h bWVfY21wIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkLmdldCAoKSksCi1AQCAtMTUxLDMgKzgyMSwy MSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUpCitAQCAtMTUxLDMgKzgxOCwyMSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVf YnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgCiAgICByZXR1cm4gc3RkOjpz dHJpbmcgKCk7CiAgfQpAQCAtODMyLDkgKzgyOSw5IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQt aWQuYyBiL2dkYi9idWlsZC1pZC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmggYi9nZGIv YnVpbGQtaWQuaAogLS0tIGEvZ2RiL2J1aWxkLWlkLmgKICsrKyBiL2dkYi9idWlsZC1pZC5oCi1A QCAtMjIsOSArMjIsMTAgQEAKLSAKK0BAIC0yMyw5ICsyMywxMCBAQAogICNpbmNsdWRlICJnZGJf YmZkLmgiCisgI2luY2x1ZGUgImNvbW1vbi9yc3AtbG93LmgiCiAgCiAtLyogTG9jYXRlIE5UX0dO VV9CVUlMRF9JRCBmcm9tIEFCRkQgYW5kIHJldHVybiBpdHMgY29udGVudC4gICovCiArLyogU2Vw YXJhdGUgZGVidWdpbmZvIGZpbGVzIGhhdmUgY29ycnVwdGVkIFBIRFIgYnV0IFNIRFIgaXMgY29y cmVjdCB0aGVyZS4KQEAgLTg0NSw3ICs4NDIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlk LmggYi9nZGIvYnVpbGQtaWQuaAogIAogIC8qIFJldHVybiB0cnVlIGlmIEFCRkQgaGFzIE5UX0dO VV9CVUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuCiAgICAgT3RoZXJ3aXNlLCBpc3N1 ZSBhIHdhcm5pbmcgYW5kIHJldHVybiBmYWxzZS4gICovCi1AQCAtMzgsMTMgKzM5LDE4IEBAIGV4 dGVybiBpbnQgYnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQsCitAQCAtMzksMTQgKzQwLDE5IEBA IGV4dGVybiBpbnQgYnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQsCiAgICAgdGhlIGNhbGxlci4g ICovCiAgCiAgZXh0ZXJuIGdkYl9iZmRfcmVmX3B0ciBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNp emVfdCBidWlsZF9pZF9sZW4sCkBAIC04NjYsMTEgKzg2MywxMiBAQCBkaWZmIC0tZ2l0IGEvZ2Ri L2J1aWxkLWlkLmggYi9nZGIvYnVpbGQtaWQuaAogK2V4dGVybiBzdGQ6OnN0cmluZyBmaW5kX3Nl cGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAr CQkgICAgICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKmJ1aWxkX2lkX2ZpbGVuYW1l X3JldHVybik7CiAgCi0gI2VuZGlmIC8qIEJVSUxEX0lEX0ggKi8KKyAvKiBSZXR1cm4gYW4gaGV4 LXN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBCVUlMRF9JRC4gICovCisgCiBkaWZmIC0tZ2l0IGEv Z2RiL2NvZmZyZWFkLmMgYi9nZGIvY29mZnJlYWQuYwogLS0tIGEvZ2RiL2NvZmZyZWFkLmMKICsr KyBiL2dkYi9jb2ZmcmVhZC5jCi1AQCAtNzMzLDcgKzczMyw4IEBAIGNvZmZfc3ltZmlsZV9yZWFk IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFn cykKK0BAIC03MzQsNyArNzM0LDggQEAgY29mZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQogICAgLyogVHJ5IHRv IGFkZCBzZXBhcmF0ZSBkZWJ1ZyBmaWxlIGlmIG5vIHN5bWJvbHMgdGFibGUgZm91bmQuICAgKi8K ICAgIGlmICghb2JqZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xzIChvYmpmaWxlKSkKICAgICAgewpA QCAtOTA1LDcgKzkwMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29yZWxvdy5jIGIvZ2RiL2NvcmVs b3cuYwogK3sKICsgIENPUkVfQUREUiBhdF9lbnRyeTsKICsgIHN0cnVjdCBiZmRfYnVpbGRfaWQg KmJ1aWxkX2lkOwotKyAgY2hhciAqZXhlY2ZpbGVuYW1lLCAqZGVidWdfZmlsZW5hbWU7CisrICBj aGFyICpleGVjZmlsZW5hbWU7CiArICBjaGFyICpidWlsZF9pZF9maWxlbmFtZTsKICsgIHN0cnVj dCBjbGVhbnVwICpiYWNrX3RvOwogKwpAQCAtOTQ5LDcgKzk0Nyw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvY29yZWxvdy5jIGIvZ2RiL2NvcmVsb3cuYwogIC8qIElzc3VlIGEgbWVzc2FnZSBzYXlpbmcg d2UgaGF2ZSBubyBjb3JlIHRvIGRlYnVnLCBpZiBGUk9NX1RUWS4gICovCiAgCiAgc3RhdGljIHZv aWQKLUBAIC00NjQsNiArNTE2LDE0IEBAIGNvcmVfdGFyZ2V0X29wZW4gKGNvbnN0IGNoYXIgKmFy ZywgaW50IGZyb21fdHR5KQorQEAgLTQ2Myw2ICs1MTUsMTQgQEAgY29yZV90YXJnZXRfb3BlbiAo Y29uc3QgY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCiAgCXN3aXRjaF90b190aHJlYWQgKHRocmVh ZCk7CiAgICAgIH0KICAKQEAgLTk2NCw3ICs5NjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvcmVs b3cuYyBiL2dkYi9jb3JlbG93LmMKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICh0YXJnZXQsIGZy b21fdHR5KTsKICAKICAgIC8qIE5vdyBnbyB0aHJvdWdoIHRoZSB0YXJnZXQgc3RhY2sgbG9va2lu ZyBmb3IgdGhyZWFkcyBzaW5jZSB0aGVyZQotQEAgLTEwNjYsNCArMTEyNiwxMSBAQCB2b2lkCitA QCAtMTA3MSw0ICsxMTMxLDExIEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQog IHsKICAgIGFkZF90YXJnZXQgKGNvcmVfdGFyZ2V0X2luZm8sIGNvcmVfdGFyZ2V0X29wZW4sIGZp bGVuYW1lX2NvbXBsZXRlcik7CkBAIC05NzksNyArOTc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9j b3JlbG93LmMgYi9nZGIvY29yZWxvdy5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5m byBiL2dkYi9kb2MvZ2RiLnRleGluZm8KIC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KICsrKyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KLUBAIC0xOTU3MCw2ICsxOTU3MCwyNyBAQCBpbmZvcm1hdGlv biBmaWxlcy4KK0BAIC0xOTc3Miw2ICsxOTc3MiwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KICAK ICBAZW5kIHRhYmxlCiAgCkBAIC0xMDA3LDEwICsxMDA1LDIyIEBAIGRpZmYgLS1naXQgYS9nZGIv ZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7Lmdu dV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBk ZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUgbmFt ZWQKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYtaW5kZXgtY2FjaGUuYyBiL2dkYi9kd2FyZi1pbmRl eC1jYWNoZS5jCistLS0gYS9nZGIvZHdhcmYtaW5kZXgtY2FjaGUuYworKysrIGIvZ2RiL2R3YXJm LWluZGV4LWNhY2hlLmMKK0BAIC0xNDAsNyArMTQwLDcgQEAgaW5kZXhfY2FjaGU6OnN0b3JlIChz dHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlICpkd2FyZjJfcGVyX29iamZpbGUpCisgICBpZiAoIWVu YWJsZWQgKCkpCisgICAgIHJldHVybjsKKyAKKy0gIGNvbnN0IGJmZF9idWlsZF9pZCAqYnVpbGRf aWQgPSBidWlsZF9pZF9iZmRfZ2V0IChvYmotPm9iZmQpOworKyAgY29uc3QgYmZkX2J1aWxkX2lk ICpidWlsZF9pZCA9IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqLT5vYmZkKTsKKyAgIGlmIChi dWlsZF9pZCA9PSBudWxscHRyKQorICAgICB7CisgICAgICAgaWYgKGRlYnVnX2luZGV4X2NhY2hl KQogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiAtLS0g YS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMjY4Myw3ICsy NjgzLDcgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAoc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSAq ZHdhcmYyX3Blcl9vYmpmaWxlKQorQEAgLTI2OTMsNyArMjY5Myw3IEBAIGR3YXJmMl9nZXRfZHd6 X2ZpbGUgKHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJfb2JqZmlsZSkKICAg ICAgfQogIAogICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKQEAgLTEwMTksMTAgKzEwMjksMjggQEAg ZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBp ZiAoZHd6X2JmZCA9PSBOVUxMKQogICAgICBlcnJvciAoXygiY291bGQgbm90IGZpbmQgJy5nbnVf ZGVidWdhbHRsaW5rJyBmaWxlIGZvciAlcyIpLAorQEAgLTYxOTgsNyArNjE5OCw3IEBAIGdldF9n ZGJfaW5kZXhfY29udGVudHNfZnJvbV9zZWN0aW9uIChvYmpmaWxlICpvYmosIFQgKnNlY3Rpb25f b3duZXIpCisgc3RhdGljIGdkYjo6YXJyYXlfdmlldzxjb25zdCBnZGJfYnl0ZT4KKyBnZXRfZ2Ri X2luZGV4X2NvbnRlbnRzX2Zyb21fY2FjaGUgKG9iamZpbGUgKm9iaiwgZHdhcmYyX3Blcl9vYmpm aWxlICpkd2FyZjJfb2JqKQorIHsKKy0gIGNvbnN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQgPSBi dWlsZF9pZF9iZmRfZ2V0IChvYmotPm9iZmQpOworKyAgY29uc3QgYmZkX2J1aWxkX2lkICpidWls ZF9pZCA9IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqLT5vYmZkKTsKKyAgIGlmIChidWlsZF9p ZCA9PSBudWxscHRyKQorICAgICByZXR1cm4ge307CisgCitAQCAtNjIxMSw3ICs2MjExLDcgQEAg Z2V0X2dkYl9pbmRleF9jb250ZW50c19mcm9tX2NhY2hlIChvYmpmaWxlICpvYmosIGR3YXJmMl9w ZXJfb2JqZmlsZSAqZHdhcmYyX29iaikKKyBzdGF0aWMgZ2RiOjphcnJheV92aWV3PGNvbnN0IGdk Yl9ieXRlPgorIGdldF9nZGJfaW5kZXhfY29udGVudHNfZnJvbV9jYWNoZV9kd3ogKG9iamZpbGUg Km9iaiwgZHd6X2ZpbGUgKmR3eikKKyB7CistICBjb25zdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lk ID0gYnVpbGRfaWRfYmZkX2dldCAoZHd6LT5kd3pfYmZkLmdldCAoKSk7CisrICBjb25zdCBiZmRf YnVpbGRfaWQgKmJ1aWxkX2lkID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChkd3otPmR3el9iZmQu Z2V0ICgpKTsKKyAgIGlmIChidWlsZF9pZCA9PSBudWxscHRyKQorICAgICByZXR1cm4ge307Cisg CiBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKIC0tLSBhL2dkYi9l bGZyZWFkLmMKICsrKyBiL2dkYi9lbGZyZWFkLmMKLUBAIC0xMjkwLDcgKzEyOTAsOSBAQCBlbGZf c3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mg c3ltZmlsZV9mbGFncykKK0BAIC0xMjg5LDcgKzEyODksOSBAQCBlbGZfc3ltZmlsZV9yZWFkIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykK ICAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSA9PSBOVUxMCiAgCSAgICYm IG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgPT0gTlVMTCkKICAgICAg ewpAQCAtMTAzMyw3ICsxMDYxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9lbGZyZWFkLmMgYi9nZGIv ZWxmcmVhZC5jCiAgCiAgICAgICAgaWYgKGRlYnVnZmlsZS5lbXB0eSAoKSkKICAJZGVidWdmaWxl ID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAt MTMwMiw2ICsxMzA0LDEwIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQorQEAgLTEzMDEsNiArMTMwMywx MCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9h ZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykKICAJICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFi ZmQuZ2V0ICgpLCBkZWJ1Z2ZpbGUuY19zdHIgKCksCiAgCQkJCSAgICBzeW1maWxlX2ZsYWdzLCBv YmpmaWxlKTsKICAJfQpAQCAtMTA2MSw3ICsxMDg5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9vYmpm aWxlcy5oIGIvZ2RiL29iamZpbGVzLmgKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LW9iamZp bGUuYyBiL2dkYi9weXRob24vcHktb2JqZmlsZS5jCiAtLS0gYS9nZGIvcHl0aG9uL3B5LW9iamZp bGUuYwogKysrIGIvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKLUBAIC0xMzcsNyArMTM3LDcgQEAg b2JqZnB5X2dldF9idWlsZF9pZCAoUHlPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCitAQCAt MTMyLDcgKzEzMiw3IEBAIG9iamZweV9nZXRfYnVpbGRfaWQgKFB5T2JqZWN0ICpzZWxmLCB2b2lk ICpjbG9zdXJlKQogIAogICAgVFJZCiAgICAgIHsKQEAgLTEwNzAsNyArMTA5OCw3IEBAIGRpZmYg LS1naXQgYS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYyBiL2dkYi9weXRob24vcHktb2JqZmlsZS5j CiAgICAgIH0KICAgIENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewotQEAg LTU0NCw3ICs1NDQsNyBAQCBvYmpmcHlfbG9va3VwX29iamZpbGVfYnlfYnVpbGRfaWQgKGNvbnN0 IGNoYXIgKmJ1aWxkX2lkKQorQEAgLTU0OSw3ICs1NDksNyBAQCBvYmpmcHlfbG9va3VwX29iamZp bGVfYnlfYnVpbGRfaWQgKGNvbnN0IGNoYXIgKmJ1aWxkX2lkKQogICAgICAgIC8qIERvbid0IHJl dHVybiBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcy4gICovCiAgICAgICAgaWYgKG9iamZpbGUtPnNlcGFy YXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgIT0gTlVMTCkKICAJY29udGludWU7CkBAIC0xMDkw LDcgKzExMTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1z dnI0LmMKICAKICBzdGF0aWMgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlu a19tYXBfb2Zmc2V0cyAodm9pZCk7CiAgc3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zm c2V0cyAodm9pZCk7Ci1AQCAtMTM1Niw5ICsxMzU3LDUxIEBAIHN2cjRfcmVhZF9zb19saXN0IChD T1JFX0FERFIgbG0sIENPUkVfQUREUiBwcmV2X2xtLAorQEAgLTEzNDEsOSArMTM0Miw1MSBAQCBz dnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBDT1JFX0FERFIgcHJldl9sbSwKICAJICBj b250aW51ZTsKICAJfQogIApAQCAtMTE0OCw3ICsxMTc2LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9z b2xpYi1zdnI0LmMgYi9nZGIvc29saWItc3ZyNC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUu aCBiL2dkYi9zeW1maWxlLmgKIC0tLSBhL2dkYi9zeW1maWxlLmgKICsrKyBiL2dkYi9zeW1maWxl LmgKLUBAIC01MzcsNiArNTM3LDEwIEBAIHZvaWQgZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcKK0BA IC01MzEsNiArNTMxLDEwIEBAIHZvaWQgZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcKICB2b2lkIG1h cF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hbWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0 YSwKICAJCQkgICBpbnQgbmVlZF9mdWxsbmFtZSk7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1x dWl0LW5ldmVyLWFib3J0cy5wYXRjaCBiL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gK aW5kZXggZjM3NjVkZS4uMjlmMWI2NiAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFi b3J0cy5wYXRjaAorKysgYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCkBAIC00NSw3 ICs0NSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXh0ZW5zaW9uLmMgYi9nZGIvZXh0ZW5zaW9uLmMK IGRpZmYgLS1naXQgYS9nZGIvdG9wLmMgYi9nZGIvdG9wLmMKIC0tLSBhL2dkYi90b3AuYwogKysr IGIvZ2RiL3RvcC5jCi1AQCAtMTYxMSw3ICsxNjExLDEzIEBAIHF1aXRfZm9yY2UgKGludCAqZXhp dF9hcmcsIGludCBmcm9tX3R0eSkKK0BAIC0xNjA2LDcgKzE2MDYsMTMgQEAgcXVpdF9mb3JjZSAo aW50ICpleGl0X2FyZywgaW50IGZyb21fdHR5KQogIAogICAgcXQuZnJvbV90dHkgPSBmcm9tX3R0 eTsKICAKQEAgLTYyLDcgKzYyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90b3AuYyBiL2dkYi90b3Au YwogZGlmZiAtLWdpdCBhL2dkYi91dGlscy5jIGIvZ2RiL3V0aWxzLmMKIC0tLSBhL2dkYi91dGls cy5jCiArKysgYi9nZGIvdXRpbHMuYwotQEAgLTEwOCw2ICsxMDgsMTMgQEAgc3RhdGljIHN0ZDo6 Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0aW9uIHByb21wdF9mb3JfY29udGludWVfd2FpdF90 aW1lOworQEAgLTk4LDYgKzk4LDEzIEBAIHN0YXRpYyBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2Nr OjpkdXJhdGlvbiBwcm9tcHRfZm9yX2NvbnRpbnVlX3dhaXRfdGltZTsKICAKICBzdGF0aWMgaW50 IGRlYnVnX3RpbWVzdGFtcCA9IDA7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci1waWUtYWRk b25zLWtlZXAtZGlzYWJsZWQucGF0Y2ggYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNh YmxlZC5wYXRjaAppbmRleCA2NzI3MzRmLi4xODMzZjk4IDEwMDY0NAotLS0gYS9nZGItYXJjaGVy LXBpZS1hZGRvbnMta2VlcC1kaXNhYmxlZC5wYXRjaAorKysgYi9nZGItYXJjaGVyLXBpZS1hZGRv bnMta2VlcC1kaXNhYmxlZC5wYXRjaApAQCAtOCw3ICs4LDcgQEAgU3ViamVjdDogZ2RiLWFyY2hl ci1waWUtYWRkb25zLWtlZXAtZGlzYWJsZWQucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtw b2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIv Z2RiL2JyZWFrcG9pbnQuYwotQEAgLTE1NTE2LDYgKzE1NTE2LDUwIEBAIGluaXRpYWxpemVfYnJl YWtwb2ludF9vcHMgKHZvaWQpCitAQCAtMTU1MDYsNiArMTU1MDYsNTAgQEAgaW5pdGlhbGl6ZV9i cmVha3BvaW50X29wcyAodm9pZCkKICAKICBzdGF0aWMgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg KmVuYWJsZWJyZWFrbGlzdCA9IE5VTEw7CiAgCkBAIC02Miw3ICs2Miw3IEBAIGRpZmYgLS1naXQg YS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwogZGlmZiAtLWdpdCBhL2dkYi9i cmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCiAtLS0gYS9nZGIvYnJlYWtwb2ludC5oCiAr KysgYi9nZGIvYnJlYWtwb2ludC5oCi1AQCAtMTY3OSw2ICsxNjc5LDkgQEAgZXh0ZXJuIGNvbnN0 IGNoYXIgKmVwX3BhcnNlX29wdGlvbmFsX2lmX2NsYXVzZSAoY29uc3QgY2hhciAqKmFyZyk7CitA QCAtMTY3Niw2ICsxNjc2LDkgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmVwX3BhcnNlX29wdGlvbmFs X2lmX2NsYXVzZSAoY29uc3QgY2hhciAqKmFyZyk7CiAgICAgVUlPVVQgaWZmIGRlYnVnZ2luZyBt dWx0aXBsZSB0aHJlYWRzLiAgKi8KICBleHRlcm4gdm9pZCBtYXliZV9wcmludF90aHJlYWRfaGl0 X2JyZWFrcG9pbnQgKHN0cnVjdCB1aV9vdXQgKnVpb3V0KTsKICAKQEAgLTc1LDcgKzc1LDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCiBkaWZmIC0t Z2l0IGEvZ2RiL29iamZpbGVzLmMgYi9nZGIvb2JqZmlsZXMuYwogLS0tIGEvZ2RiL29iamZpbGVz LmMKICsrKyBiL2dkYi9vYmpmaWxlcy5jCi1AQCAtODc1LDYgKzg3NSwxMSBAQCBvYmpmaWxlX3Jl bG9jYXRlMSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtODgwLDYgKzg4MCwxMSBAQCBv YmpmaWxlX3JlbG9jYXRlMSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCQkJCW9ial9zZWN0 aW9uX2FkZHIgKHMpKTsKICAgICAgfQogIAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFk ZG9ucy5wYXRjaCBiL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaAppbmRleCA5YWVmNjE3Li44 OGRhMjJhIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2Ri LWFyY2hlci1waWUtYWRkb25zLnBhdGNoCkBAIC04LDcgKzgsNyBAQCBTdWJqZWN0OiBnZGItYXJj aGVyLXBpZS1hZGRvbnMucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9n ZGJ0eXBlcy5oCiAtLS0gYS9nZGIvZ2RidHlwZXMuaAogKysrIGIvZ2RiL2dkYnR5cGVzLmgKLUBA IC01MDUsNiArNTA1LDcgQEAgZW51bSBmaWVsZF9sb2Nfa2luZAorQEAgLTUwNiw2ICs1MDYsNyBA QCBlbnVtIGZpZWxkX2xvY19raW5kCiAgICB7CiAgICAgIEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJ LyoqPCBiaXRwb3MgKi8KICAgICAgRklFTERfTE9DX0tJTkRfRU5VTVZBTCwJLyoqPCBlbnVtdmFs ICovCkBAIC0xNiw3ICsxNiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9n ZGJ0eXBlcy5oCiAgICAgIEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkvKio8IHBoeXNhZGRyICov CiAgICAgIEZJRUxEX0xPQ19LSU5EX1BIWVNOQU1FLAkvKio8IHBoeXNuYW1lICovCiAgICAgIEZJ RUxEX0xPQ19LSU5EX0RXQVJGX0JMT0NLCS8qKjwgZHdhcmZfYmxvY2sgKi8KLUBAIC01NTYsNiAr NTU3LDcgQEAgdW5pb24gZmllbGRfbG9jYXRpb24KK0BAIC01NTcsNiArNTU4LDcgQEAgdW5pb24g ZmllbGRfbG9jYXRpb24KICAgICAgIGZpZWxkLiAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUg bWFuZ2xlZCBsYWJlbCBvZiB0aGUKICAgICAgIHN0YXRpYyBmaWVsZC4gICovCiAgCkBAIC0yNCw3 ICsyNCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAg ICBDT1JFX0FERFIgcGh5c2FkZHI7CiAgICBjb25zdCBjaGFyICpwaHlzbmFtZTsKICAKLUBAIC0x NDM4LDYgKzE0NDAsNyBAQCBleHRlcm4gdm9pZCBzZXRfdHlwZV92cHRyX2Jhc2V0eXBlIChzdHJ1 Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNDM5LDYgKzE0NDEsNyBAQCBleHRlcm4g dm9pZCBzZXRfdHlwZV92cHRyX2Jhc2V0eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAq KTsKICAjZGVmaW5lIEZJRUxEX0VOVU1WQUxfTFZBTCh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5l bnVtdmFsKQogICNkZWZpbmUgRklFTERfRU5VTVZBTCh0aGlzZmxkKSAoRklFTERfRU5VTVZBTF9M VkFMICh0aGlzZmxkKSArIDApCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc2Zs ZCkgKCh0aGlzZmxkKS5sb2MucGh5c25hbWUpCkBAIC0zMiw3ICszMiw3IEBAIGRpZmYgLS1naXQg YS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNf UEhZU0FERFIodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c2FkZHIpCiAgI2RlZmluZSBGSUVM RF9EV0FSRl9CTE9DSyh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5kd2FyZl9ibG9jaykKICAjZGVm aW5lIFNFVF9GSUVMRF9CSVRQT1ModGhpc2ZsZCwgYml0cG9zKQkJCVwKLUBAIC0xNDQ5LDYgKzE0 NTIsNyBAQCBleHRlcm4gdm9pZCBzZXRfdHlwZV92cHRyX2Jhc2V0eXBlIChzdHJ1Y3QgdHlwZSAq LCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNDUwLDYgKzE0NTMsNyBAQCBleHRlcm4gdm9pZCBzZXRf dHlwZV92cHRyX2Jhc2V0eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKICAjZGVm aW5lIFNFVF9GSUVMRF9QSFlTTkFNRSh0aGlzZmxkLCBuYW1lKQkJCVwKICAgIChGSUVMRF9MT0Nf S0lORCAodGhpc2ZsZCkgPSBGSUVMRF9MT0NfS0lORF9QSFlTTkFNRSwJCVwKICAgICBGSUVMRF9T VEFUSUNfUEhZU05BTUUgKHRoaXNmbGQpID0gKG5hbWUpKQpAQCAtNDAsNyArNDAsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgU0VUX0ZJ RUxEX1BIWVNBRERSKHRoaXNmbGQsIGFkZHIpCQkJXAogICAgKEZJRUxEX0xPQ19LSU5EICh0aGlz ZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkJXAogICAgIEZJRUxEX1NUQVRJQ19QSFlT QUREUiAodGhpc2ZsZCkgPSAoYWRkcikpCi1AQCAtMTQ2NSw2ICsxNDY5LDcgQEAgZXh0ZXJuIHZv aWQgc2V0X3R5cGVfdnB0cl9iYXNldHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7 CitAQCAtMTQ2Niw2ICsxNDcwLDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3R5cGVfdnB0cl9iYXNldHlw ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX0ZJRUxEX0JJ VFBPUyh0aGlzdHlwZSwgbikgRklFTERfQklUUE9TIChUWVBFX0ZJRUxEICh0aGlzdHlwZSwgbikp CiAgI2RlZmluZSBUWVBFX0ZJRUxEX0VOVU1WQUwodGhpc3R5cGUsIG4pIEZJRUxEX0VOVU1WQUwg KFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfU1RBVElDX1BI WVNOQU1FKHRoaXN0eXBlLCBuKSBGSUVMRF9TVEFUSUNfUEhZU05BTUUgKFRZUEVfRklFTEQgKHRo aXN0eXBlLCBuKSkKQEAgLTUxLDcgKzUxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5o IGIvZ2RiL2dkYnR5cGVzLmgKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5j CiAtLS0gYS9nZGIvdmFsdWUuYwogKysrIGIvZ2RiL3ZhbHVlLmMKLUBAIC0yODI5LDcgKzI4Mjks OCBAQCB2YWx1ZV9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRubykK K0BAIC0yODI4LDcgKzI4MjgsOCBAQCB2YWx1ZV9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0 eXBlLCBpbnQgZmllbGRubykKICAgICAgewogICAgICBjYXNlIEZJRUxEX0xPQ19LSU5EX1BIWVNB RERSOgogICAgICAgIHJldHZhbCA9IHZhbHVlX2F0X2xhenkgKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgZmllbGRubyksCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIu cGF0Y2gKaW5kZXggZGNiOTg5Yy4uODgyYjg2ZSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRj aAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0xNyw3ICsxNyw3IEBAIHRyb21leS9weXRob24K IGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KIC0tLSBhL2dk Yi9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL01ha2VmaWxlLmluCi1AQCAtMjExMiw2ICsyMTEyLDEy IEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cworQEAgLTIwOTIs NiArMjA5MiwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMK ICAJICBDT05GSUdfTElOS1M9IFwKICAJICAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAgCkBAIC03 Myw3ICs3Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9n ZGIudGV4aW5mbwogZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5 dGhvbi50ZXhpCiAtLS0gYS9nZGIvZG9jL3B5dGhvbi50ZXhpCiArKysgYi9nZGIvZG9jL3B5dGhv bi50ZXhpCi1AQCAtODgsOCArODgsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhh bXBsZToKK0BAIC05MCw4ICs5MCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFt cGxlOgogIAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRob24KQEAgLTExMiw3 ICsxMTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAjaW5jbHVk ZSAic291cmNlLmgiCiAgI2luY2x1ZGUgImNsaS9jbGktY21kcy5oIgogICNpbmNsdWRlICJvYmpm aWxlcy5oIgotQEAgLTQ3OSw3ICs0ODAsNyBAQCBleGVjX29yX2NvcmVfZmlsZV9hdHRhY2ggKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCitAQCAtNDc3LDcgKzQ3OCw3IEBAIGV4 ZWNfb3JfY29yZV9maWxlX2F0dGFjaCAoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0 eSkKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTEyMSw3ICsxMjEsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL21haW4uYyBiL2dkYi9tYWluLmMKICB7CiAgICBpbnQgYXJnYyA9IGNvbnRleHQtPmFyZ2M7 CiAgICBjaGFyICoqYXJndiA9IGNvbnRleHQtPmFyZ3Y7Ci1AQCAtNjk1LDEwICs2OTYsMTQgQEAg Y2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQorQEAg LTY5NCwxMCArNjk1LDE0IEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVkX21haW5f YXJncyAqY29udGV4dCkKICAgICAgICB7ImFyZ3MiLCBub19hcmd1bWVudCwgJnNldF9hcmdzLCAx fSwKICAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2wnfSwKICAgICAgICB7InJl dHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwgJnJldHVybl9jaGlsZF9yZXN1bHQsIDF9 LApAQCAtMTM3LDcgKzEzNyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4u YwogICAgICAgIHsKICAJaW50IG9wdGlvbl9pbmRleDsKICAKLUBAIC03MTYsNiArNzIxLDkgQEAg Y2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQorQEAg LTcxNSw2ICs3MjAsOSBAQCBjYXB0dXJlZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9tYWluX2Fy Z3MgKmNvbnRleHQpCiAgCSAgY2FzZSAwOgogIAkgICAgLyogTG9uZyBvcHRpb24gdGhhdCBqdXN0 IHNldHMgYSBmbGFnLiAgKi8KICAJICAgIGJyZWFrOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGRpZmYg LS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogIAkgIGNhc2UgT1BUX1NFOgogIAkgICAg c3ltYXJnID0gb3B0YXJnOwogIAkgICAgZXhlY2FyZyA9IG9wdGFyZzsKLUBAIC04OTAsNyArODk4 LDMxIEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4 dCkKK0BAIC04ODksNyArODk3LDMxIEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVk X21haW5fYXJncyAqY29udGV4dCkKICAKICAgIC8qIE5vdyB0aGF0IGdkYl9pbml0IGhhcyBjcmVh dGVkIHRoZSBpbml0aWFsIGluZmVyaW9yLCB3ZSdyZSBpbgogICAgICAgcG9zaXRpb24gdG8gc2V0 IGFyZ3MgZm9yIHRoYXQgaW5mZXJpb3IuICAqLwpAQCAtMTgwLDcgKzE4MCw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogICAgICB7CiAgICAgICAgLyogVGhlIHJlbWFp bmluZyBvcHRpb25zIGFyZSB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHRoZQogIAkgaW5m ZXJpb3IuICBUaGUgZmlyc3Qgb25lIGlzIHRoZSBzeW0vZXhlYyBmaWxlLCBhbmQgdGhlIHJlc3QK LUBAIC0xMTgwLDcgKzEyMTIsOCBAQCBjYXB0dXJlZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9t YWluX2FyZ3MgKmNvbnRleHQpCitAQCAtMTE5MCw3ICsxMjIyLDggQEAgY2FwdHVyZWRfbWFpbl8x IChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogIAogICAgLyogUmVhZCBpbiB0 aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZpbGVzIGhhdmUgYmVlbgogICAg ICAgcmVhZC4gICovCkBAIC0xOTAsNyArMTkwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9tYWluLmMg Yi9nZGIvbWFpbi5jCiAgCiAgICBpZiAoYmF0Y2hfZmxhZykKICAgICAgewotQEAgLTExOTMsMjQg KzEyMjYsMzcgQEAgc3RhdGljIHZvaWQKK0BAIC0xMjA2LDI0ICsxMjM5LDM3IEBAIHN0YXRpYyB2 b2lkCiAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICB7CiAgICBzdHJ1Y3QgY2FwdHVyZWRf bWFpbl9hcmdzICpjb250ZXh0ID0gKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKikgZGF0YTsK QEAgLTI0MSw3ICsyNDEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMK ICAgICAgfQogICAgLyogTm8gZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVpdF9jb21tYW5kLiAg Ki8KICB9Ci1AQCAtMTI1Myw2ICsxMjk5LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtKQorQEAgLTEyNjYsNiArMTMxMiwxMiBAQCBwcmludF9nZGJfaGVscCAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlz IHRoZSBHTlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNdIFtleGVj dXRhYmxlLWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTI1NCw3ICsyNTQs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAgICAgZ2RiIFtvcHRp b25zXSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1bWVudHMgLi4uXVxuXG5c CiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCi1AQCAtMTI5OCw2ICsx MzUwLDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAorQEAgLTEz MTEsNiArMTM2MywxMyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwK ICAjZW5kaWYKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tZGJ4ICAgICAgICAgICAg ICBEQlggY29tcGF0aWJpbGl0eSBtb2RlLlxuXApAQCAtMzY1LDcgKzM2NSw3IEBAIG5ldyBmaWxl IG1vZGUgMTAwNjQ0CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaCBi L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLWlu dGVybmFsLmgKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKLUBAIC02NDQsNiAr NjQ0LDkgQEAgY2xhc3MgZ2RicHlfZW50ZXJfdmFyb2JqIDogcHVibGljIGdkYnB5X2VudGVyCitA QCAtNjM2LDYgKzYzNiw5IEBAIGNsYXNzIGdkYnB5X2VudGVyX3Zhcm9iaiA6IHB1YmxpYyBnZGJw eV9lbnRlcgogIAogIH07CiAgCkBAIC0zNzgsNyArMzc4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmggYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiBk aWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKIC0t LSBhL2dkYi9weXRob24vcHl0aG9uLmMKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKLUBAIC05 NSw2ICs5NSw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNp b25fbGFuZ3VhZ2VfcHl0aG9uID0KK0BAIC05NCw2ICs5NCw4IEBAIGNvbnN0IHN0cnVjdCBleHRl bnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0aG9uID0KICAjaW5jbHVk ZSAibGluZXNwZWMuaCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgInZlcnNpb24u aCIKQEAgLTM4Nyw3ICszODcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBi L2dkYi9weXRob24vcHl0aG9uLmMKICAjaW5jbHVkZSAidGFyZ2V0LmgiCiAgI2luY2x1ZGUgImdk YnRocmVhZC5oIgogICNpbmNsdWRlICJpbnRlcnBzLmgiCi1AQCAtMjM3LDYgKzIzOSwyOSBAQCBn ZGJweV9lbnRlcjo6fmdkYnB5X2VudGVyICgpCitAQCAtMjM2LDYgKzIzOCwyOSBAQCBnZGJweV9l bnRlcjo6fmdkYnB5X2VudGVyICgpCiAgICByZXN0b3JlX2FjdGl2ZV9leHRfbGFuZyAobV9wcmV2 aW91c19hY3RpdmUpOwogIH0KICAKQEAgLTQxNywxMCArNDE3LDEwIEBAIGRpZmYgLS1naXQgYS9n ZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogIC8qIFNldCB0aGUgcXVp dCBmbGFnLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTEzNjcsNiArMTM5Miw5MiBAQCBnZGJw eV9wcmludF9zdGFjayAodm9pZCkKK0BAIC0xMzEyLDYgKzEzMzcsOTIgQEAgZ2RicHlfcHJpbnRf c3RhY2sgKHZvaWQpCisgCisgDAogIAotIC8qIFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2Uu Ci0gICAgVGhlcmUgYWx3YXlzIGlzIG9uZS4gICovCiArLyogVHJ1ZSBpZiAnZ2RiIC1QJyB3YXMg dXNlZCwgZmFsc2Ugb3RoZXJ3aXNlLiAgKi8KICtzdGF0aWMgaW50IHJ1bm5pbmdfcHl0aG9uX3Nj cmlwdDsKICsKQEAgLTUwNywxMCArNTA3LDEwIEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogKwogKwwKICsKKyAvKiBSZXR1cm4gYSBzZXF1 ZW5jZSBob2xkaW5nIGFsbCB0aGUgUHJvZ3NwYWNlcy4gICovCiAgCiAgc3RhdGljIFB5T2JqZWN0 ICoKLSBnZGJweV9nZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9i amVjdCAqdW51c2VkMikKLUBAIC0yMDU3LDYgKzIxNjgsOCBAQCBQeU1ldGhvZERlZiBweXRob25f R2RiTWV0aG9kc1tdID0KK0BAIC0xOTYzLDYgKzIwNzQsOCBAQCBQeU1ldGhvZERlZiBweXRob25f R2RiTWV0aG9kc1tdID0KICBFdmFsdWF0ZSBjb21tYW5kLCBhIHN0cmluZywgYXMgYSBnZGIgQ0xJ IGNvbW1hbmQuICBPcHRpb25hbGx5IHJldHVybnNcblwKICBhIFB5dGhvbiBTdHJpbmcgY29udGFp bmluZyB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIGlmIHRvX3N0cmluZyBpc1xuXAogIHNldCB0 byBUcnVlLiIgfSwKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBh dGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCBjOGIxMjY3Li42 NTlhZWM2IDEwMDY0NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisr KyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTQ1LDcgKzQ1LDcgQEAg Z2RiL2dkYnNlcnZlci8KIGRpZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5p bgogLS0tIGEvZ2RiL2NvbmZpZy5pbgogKysrIGIvZ2RiL2NvbmZpZy5pbgotQEAgLTI3Niw2ICsy NzYsOSBAQAorQEAgLTI2NCw2ICsyNjQsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFy eSBpcyBiZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtNTUsNyArNTUs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZy5pbiBiL2dkYi9jb25maWcuaW4KICAvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0Lmg+IGhlYWRlciBmaWxlLiAq LwogICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKICAKLUBAIC0zOTksNiArNDAyLDkgQEAK K0BAIC0zODcsNiArMzkwLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNj bV9uZXdfc21vYicgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0NNX05FV19TTU9CCiAgCkBA IC02OCw3ICs2OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5p bgogZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAtLS0gYS9nZGIv Y29uZmlndXJlCiArKysgYi9nZGIvY29uZmlndXJlCi1AQCAtMTU4NTQsNiArMTU4NTQsNjQgQEAg Y2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorQEAgLTE1NzkzLDYgKzE1NzkzLDY0IEBAIGNhdCA+ PmNvbmZkZWZzLmggPDxfQUNFT0YKICBfQUNFT0YKICAKICAKQEAgLTEzNiw3ICsxMzYsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQgYS9n ZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3VyZS5h YwogKysrIGIvZ2RiL2NvbmZpZ3VyZS5hYwotQEAgLTIwNTQsNiArMjA1NCwxMCBAQCBjYXNlICRo b3N0X29zIGluCitAQCAtMjAzMSw2ICsyMDMxLDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KICBlc2Fj CiAgQUNfREVGSU5FX1VOUVVPVEVEKEdEQklOSVQsIiRnZGJpbml0IixbVGhlIC5nZGJpbml0IGZp bGVuYW1lLl0pCiAgCkBAIC0xNzMsNyArMTczLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2 ZXIvY29uZmlnLmluIGIvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KIGRpZmYgLS1naXQgYS9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZSBiL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCiAtLS0gYS9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKLUBAIC04 NTM1LDYgKzg1MzUsNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorQEAgLTg1NjgsNiArODU2OCw2 NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQogIApAQCAtMjc2LDcgKzI3Niw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jIGIvZ2RiL2dkYnNlcnZl ci9saW51eC1sb3cuYwogZGlmZiAtLWdpdCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1u YXQuYwogLS0tIGEvZ2RiL2xpbnV4LW5hdC5jCiArKysgYi9nZGIvbGludXgtbmF0LmMKLUBAIC0x MDg5LDcgKzEwODksMTcgQEAgbGludXhfbmF0X3RhcmdldDo6Y3JlYXRlX2luZmVyaW9yIChjb25z dCBjaGFyICpleGVjX2ZpbGUsCitAQCAtMTA5Miw3ICsxMDkyLDE3IEBAIGxpbnV4X25hdF90YXJn ZXQ6OmNyZWF0ZV9pbmZlcmlvciAoY29uc3QgY2hhciAqZXhlY19maWxlLAogICAgLyogTWFrZSBz dXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBkdXJpbmcgc3RhcnR1cC4gICovCiAgICBwYXNzX3Np Z25hbHMgKDAsIE5VTEwpOwogIAoKZGlmZiAtLWdpdCBhL2dkYi1idHJvYnVzdC5wYXRjaCBiL2dk Yi1idHJvYnVzdC5wYXRjaAppbmRleCA0MGQ0MDZjLi5iMWE2NWM2IDEwMDY0NAotLS0gYS9nZGIt YnRyb2J1c3QucGF0Y2gKKysrIGIvZ2RiLWJ0cm9idXN0LnBhdGNoCkBAIC0xNCw3ICsxNCw3IEBA IHByaW50ZWQsIGJ1dCBhIGRlZmF1bHQgYmFja3RyYWNlIHdpbGwgb2NjdXIgaW4gdGhpcyBjYXNl LgogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYyBiL2dkYi9weXRob24v cHktZnJhbWVmaWx0ZXIuYwogLS0tIGEvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCiArKysg Yi9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMKLUBAIC0xMTUxLDYgKzExNTEsNyBAQCBnZGJw eV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVm biAqZXh0bGFuZywKK0BAIC0xMTU0LDYgKzExNTQsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0 ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKICAJCQkJ ICAgICAgIGh0YWJfZXFfcG9pbnRlciwKICAJCQkJICAgICAgIE5VTEwpKTsKICAKQEAgLTIyLDcg KzIyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYyBiL2dkYi9w eXRob24vcHktZnJhbWVmaWx0ZXIuYwogICAgd2hpbGUgKHRydWUpCiAgICAgIHsKICAgICAgICBn ZGJweV9yZWY8PiBpdGVtIChQeUl0ZXJfTmV4dCAoaXRlcmFibGUuZ2V0ICgpKSk7Ci1AQCAtMTE1 OSw4ICsxMTYwLDggQEAgZ2RicHlfYXBwbHlfZnJhbWVfZmlsdGVyIChjb25zdCBzdHJ1Y3QgZXh0 ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcsCitAQCAtMTE2Miw4ICsxMTYzLDggQEAgZ2Ri cHlfYXBwbHlfZnJhbWVfZmlsdGVyIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2Rl Zm4gKmV4dGxhbmcsCiAgCXsKICAJICBpZiAoUHlFcnJfT2NjdXJyZWQgKCkpCiAgCSAgICB7CkBA IC0zMyw3ICszMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMg Yi9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMKICAJICAgIH0KICAJICBicmVhazsKICAJfQot QEAgLTExOTMsNyArMTE5NCw4IEBAIGdkYnB5X2FwcGx5X2ZyYW1lX2ZpbHRlciAoY29uc3Qgc3Ry dWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5nLAorQEAgLTExOTYsNyArMTE5Nyw4 IEBAIGdkYnB5X2FwcGx5X2ZyYW1lX2ZpbHRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5n dWFnZV9kZWZuICpleHRsYW5nLAogICAgICAgIC8qIERvIG5vdCBleGl0IG9uIGVycm9yIHByaW50 aW5nIGEgc2luZ2xlIGZyYW1lLiAgUHJpbnQgdGhlCiAgCSBlcnJvciBhbmQgY29udGludWUgd2l0 aCBvdGhlciBmcmFtZXMuICAqLwogICAgICAgIGlmIChzdWNjZXNzID09IEVYVF9MQU5HX0JUX0VS Uk9SKQoKZGlmZiAtLWdpdCBhL2dkYi1iejEyMTk3NDctYXR0YWNoLWtpbGxzLnBhdGNoIGIvZ2Ri LWJ6MTIxOTc0Ny1hdHRhY2gta2lsbHMucGF0Y2gKaW5kZXggNmFlMTBhMi4uNDRmMzM5ZSAxMDA2 NDQKLS0tIGEvZ2RiLWJ6MTIxOTc0Ny1hdHRhY2gta2lsbHMucGF0Y2gKKysrIGIvZ2RiLWJ6MTIx OTc0Ny1hdHRhY2gta2lsbHMucGF0Y2gKQEAgLTgwLDE4ICs4MCwxOCBAQCBnZGIvdGVzdHN1aXRl L0NoYW5nZUxvZwogZGlmZiAtLWdpdCBhL2dkYi9tYWluLmMgYi9nZGIvbWFpbi5jCiAtLS0gYS9n ZGIvbWFpbi5jCiArKysgYi9nZGIvbWFpbi5jCi1AQCAtMTExNSw3ICsxMTE1LDEwIEBAIGNhcHR1 cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4dCkKLSAgICAgICBp ZiAoaXNkaWdpdCAocGlkX29yX2NvcmVfYXJnWzBdKSkKK0BAIC0xMTIwLDcgKzExMjAsMTAgQEAg Y2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogIAl7 Ci0gCSAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzIChhdHRhY2hfY29tbWFuZCwgcGlkX29yX2Nv cmVfYXJnLAotLQkJCQkgICAgIWJhdGNoX2ZsYWcpID09IDApCi0rCQkJCSAgICAhYmF0Y2hfZmxh ZykgPT0gMAorIAkgIHJldCA9IGNhdGNoX2NvbW1hbmRfZXJyb3JzIChhdHRhY2hfY29tbWFuZCwg cGlkX29yX2NvcmVfYXJnLAorIAkJCQkgICAgICAhYmF0Y2hfZmxhZyk7CistCSAgaWYgKHJldCA9 PSAwKQorKwkgIGlmIChyZXQgPT0gMAogKwkgICAgICAvKiBhdHRhY2hfY29tbWFuZCBjb3VsZCBz dWNjZWVkIHBhcnRpYWxseSBhbmQgY29yZV9maWxlX2NvbW1hbmQKICsJCSB3b3VsZCB0cnkgdG8g a2lsbCBpdC4gICovCiArCSAgICAgICYmICFoYXZlX2luZmVyaW9ycyAoKSkKLSAJICAgIGNhdGNo X2NvbW1hbmRfZXJyb3JzIChjb3JlX2ZpbGVfY29tbWFuZCwgcGlkX29yX2NvcmVfYXJnLAotIAkJ CQkgICFiYXRjaF9mbGFnKTsKLSAJfQorIAkgICAgcmV0ID0gY2F0Y2hfY29tbWFuZF9lcnJvcnMg KGNvcmVfZmlsZV9jb21tYW5kLAorIAkJCQkJcGlkX29yX2NvcmVfYXJnLAorIAkJCQkJIWJhdGNo X2ZsYWcpOwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLWtpbGxz LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC1raWxscy5jCiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAogLS0tIC9kZXYvbnVsbAoKZGlmZiAtLWdpdCBhL2dkYi1iejUzMzE3Ni1mb3J0cmFu LW9tcC1zdGVwLnBhdGNoIGIvZ2RiLWJ6NTMzMTc2LWZvcnRyYW4tb21wLXN0ZXAucGF0Y2gKaW5k ZXggYzQyYzQ1OC4uZTJmOTc5NCAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTMzMTc2LWZvcnRyYW4tb21w LXN0ZXAucGF0Y2gKKysrIGIvZ2RiLWJ6NTMzMTc2LWZvcnRyYW4tb21wLXN0ZXAucGF0Y2gKQEAg LTMwLDcgKzMwLDcgQEAgZGVidWdnaW5nIHByb2JsZW0gb2YgR09NUCBvdXRzaWRlIG9mIHRoZSBz Y29wZSBvZiB0aGlzIEJ1Zy4KIGRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVu LmMKIC0tLSBhL2dkYi9pbmZydW4uYwogKysrIGIvZ2RiL2luZnJ1bi5jCi1AQCAtNjY5NCw2ICs2 Njk0LDE2IEBAIHByb2Nlc3NfZXZlbnRfc3RvcF90ZXN0IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRy b2xfc3RhdGUgKmVjcykKK0BAIC02NjkxLDYgKzY2OTEsMTYgQEAgcHJvY2Vzc19ldmVudF9zdG9w X3Rlc3QgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQogIAogICAgICAgIGlm IChlY3MtPmV2ZW50X3RocmVhZC0+Y29udHJvbC5zdGVwX292ZXJfY2FsbHMgPT0gU1RFUF9PVkVS X0FMTCkKICAJewpAQCAtNDcsNyArNDcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2luZnJ1bi5jIGIv Z2RiL2luZnJ1bi5jCiAgCSAgLyogV2UncmUgZG9pbmcgYSAibmV4dCIuCiAgCiAgCSAgICAgTm9y bWFsIChmb3J3YXJkKSBleGVjdXRpb246IHNldCBhIGJyZWFrcG9pbnQgYXQgdGhlCi1AQCAtNjcy Nyw2ICs2NzM3LDcgQEAgcHJvY2Vzc19ldmVudF9zdG9wX3Rlc3QgKHN0cnVjdCBleGVjdXRpb25f Y29udHJvbF9zdGF0ZSAqZWNzKQorQEAgLTY3MjQsNiArNjczNCw3IEBAIHByb2Nlc3NfZXZlbnRf c3RvcF90ZXN0IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKICAKICAJICBr ZWVwX2dvaW5nIChlY3MpOwogIAkgIHJldHVybjsKCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYt cndhdGNoLWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4u cGF0Y2gKaW5kZXggOTEyYWY2NS4uYTI5N2JiZSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3 YXRjaC1iZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1 bi5wYXRjaApAQCAtMTAsNyArMTAsNyBAQCBTdWJqZWN0OiBnZGItYno1NDE4NjYtcndhdGNoLWJl Zm9yZS1ydW4ucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFr cG9pbnQuYwogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwot QEAgLTg4MDEsNyArODgwMSw3IEBAIGluaXRfYnJlYWtwb2ludF9zYWwgKHN0cnVjdCBicmVha3Bv aW50ICpiLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC04Nzg5LDcgKzg3ODksNyBAQCBp bml0X2JyZWFrcG9pbnRfc2FsIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCiAgCQkgICAgIGludCBlbmFibGVkLCBpbnQgaW50ZXJuYWwsIHVuc2lnbmVkIGZs YWdzLAogIAkJICAgICBpbnQgZGlzcGxheV9jYW5vbmljYWwpCiAgewpAQCAtMTksNyArMTksNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKICAKICAg IGlmICh0eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQpCiAgICAgIHsKLUBAIC0xNDM1MCw3 ICsxNDM1MCw3IEBAIGVuYWJsZV9icmVha3BvaW50X2Rpc3AgKHN0cnVjdCBicmVha3BvaW50ICpi cHQsIGVudW0gYnBkaXNwIGRpc3Bvc2l0aW9uLAorQEAgLTE0MzQwLDcgKzE0MzQwLDcgQEAgZW5h YmxlX2JyZWFrcG9pbnRfZGlzcCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCwgZW51bSBicGRpc3Ag ZGlzcG9zaXRpb24sCiAgCiAgICBpZiAoYnB0LT50eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9p bnQpCiAgICAgIHsKQEAgLTEwNSw3ICsxMDUsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3Vy ZS5uYXQgYi9nZGIvY29uZmlndXJlLm5hdAogIAkJTkFUREVQRklMRVM9IiR7TkFUREVQRklMRVN9 IHg4Ni1uYXQubyB4ODYtZHJlZ3MubyBcCiAgCQlpMzg2LWxpbnV4LW5hdC5vIHg4Ni1saW51eC1u YXQubyBsaW51eC1idHJhY2UubyBcCiAgCQl4ODYtbGludXgubyB4ODYtbGludXgtZHJlZ3MubyIK LUBAIC0yOTAsNiArMjkxLDcgQEAgY2FzZSAke2dkYl9ob3N0fSBpbgorQEAgLTI5NCw2ICsyOTUs NyBAQCBjYXNlICR7Z2RiX2hvc3R9IGluCiAgCWNhc2UgJHtnZGJfaG9zdF9jcHV9IGluCiAgCSAg ICBpMzg2KQogIAkJIyBIb3N0OiBHTlUvTGludXggeDg2LTY0CkBAIC0xMTYsNyArMTE2LDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUubmF0IGIvZ2RiL2NvbmZpZ3VyZS5uYXQKIGRpZmYg LS1naXQgYS9nZGIvdGFyZ2V0LmggYi9nZGIvdGFyZ2V0LmgKIC0tLSBhL2dkYi90YXJnZXQuaAog KysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMTk1Myw5ICsxOTUzLDExIEBAIGV4dGVybiBzdHJ1Y3Qg dGhyZWFkX2luZm8gKnRhcmdldF90aHJlYWRfaGFuZGxlX3RvX3RocmVhZF9pbmZvCitAQCAtMTk4 Myw5ICsxOTgzLDExIEBAIGV4dGVybiBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRhcmdldF90aHJlYWRf aGFuZGxlX3RvX3RocmVhZF9pbmZvCiAgICAgb25lLiAgT1RIRVJUWVBFIGlzIHRoZSBudW1iZXIg b2Ygd2F0Y2hwb2ludHMgb2Ygb3RoZXIgdHlwZXMgdGhhbgogICAgIHRoaXMgb25lIHVzZWQgc28g ZmFyLiAgKi8KICAKCmRpZmYgLS1naXQgYS9nZGItYno1NjgyNDgtb29tLWlzLWVycm9yLnBhdGNo IGIvZ2RiLWJ6NTY4MjQ4LW9vbS1pcy1lcnJvci5wYXRjaAppbmRleCBmM2Y2MWRhLi40OTFlN2Y1 IDEwMDY0NAotLS0gYS9nZGItYno1NjgyNDgtb29tLWlzLWVycm9yLnBhdGNoCisrKyBiL2dkYi1i ejU2ODI0OC1vb20taXMtZXJyb3IucGF0Y2gKQEAgLTUzLDcgKzUzLDcgQEAgZ2RiLwogZGlmZiAt LWdpdCBhL2dkYi91dGlscy5jIGIvZ2RiL3V0aWxzLmMKIC0tLSBhL2dkYi91dGlscy5jCiArKysg Yi9nZGIvdXRpbHMuYwotQEAgLTc0NiwxMyArNzQ2LDExIEBAIG1hbGxvY19mYWlsdXJlIChsb25n IHNpemUpCitAQCAtNzE5LDEzICs3MTksMTEgQEAgbWFsbG9jX2ZhaWx1cmUgKGxvbmcgc2l6ZSkK ICB7CiAgICBpZiAoc2l6ZSA+IDApCiAgICAgIHsKCmRpZmYgLS1naXQgYS9nZGItY29udGFpbmVy LXJoLXBrZy5wYXRjaCBiL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCmluZGV4IDJkZWZjOGQu LmI4ZTU3NmQgMTAwNjQ0Ci0tLSBhL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCisrKyBiL2dk Yi1jb250YWluZXItcmgtcGtnLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItY29u dGFpbmVyLXJoLXBrZy5wYXRjaAogZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1v dGUuYwogLS0tIGEvZ2RiL3JlbW90ZS5jCiArKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xMzkwOSw3 ICsxMzkwOSwxNyBAQCByZW1vdGVfdGFyZ2V0OjpwaWRfdG9fZXhlY19maWxlIChpbnQgcGlkKQor QEAgLTE0MDEwLDcgKzE0MDEwLDE3IEBAIHJlbW90ZV90YXJnZXQ6OnBpZF90b19leGVjX2ZpbGUg KGludCBwaWQpCiAgICBjaGFyICphbm5leCA9IE5VTEw7CiAgCiAgICBpZiAocGFja2V0X3N1cHBv cnQgKFBBQ0tFVF9xWGZlcl9leGVjX2ZpbGUpICE9IFBBQ0tFVF9FTkFCTEUpCgpkaWZmIC0tZ2l0 IGEvZ2RiLWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaCBiL2dkYi1mZWRvcmEtbGlibmN1cnNlc3cu cGF0Y2gKaW5kZXggNTAzN2UyOS4uNmIwMTkxOSAxMDA2NDQKLS0tIGEvZ2RiLWZlZG9yYS1saWJu Y3Vyc2Vzdy5wYXRjaAorKysgYi9nZGItZmVkb3JhLWxpYm5jdXJzZXN3LnBhdGNoCkBAIC0xMiw3 ICsxMiw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTI3 MDUzNAogZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAtLS0gYS9n ZGIvY29uZmlndXJlCiArKysgYi9nZGIvY29uZmlndXJlCi1AQCAtOTM5Myw2ICs5MzkzLDcgQEAg aWYgdGVzdCB4IiRwcmVmZXJfY3Vyc2VzIiA9IHh5ZXM7IHRoZW4KK0BAIC05MzYyLDYgKzkzNjIs NyBAQCBpZiB0ZXN0IHgiJHByZWZlcl9jdXJzZXMiID0geHllczsgdGhlbgogICAgIyBzZWFyY2gg L3Vzci9sb2NhbC9pbmNsdWRlLCBpZiBuY3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAvdXNyL2xvY2Fs LiAgQQogICAgIyBkZWZhdWx0IGluc3RhbGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMt b3NmKiB3aWxsIGxlYWQgdG8gc3VjaAogICAgIyBhIHNpdHVhdGlvbi4KQEAgLTIwLDcgKzIwLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAgICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNv bnRhaW5pbmcgd2FkZHN0ciIgPiY1CiAgJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkg Y29udGFpbmluZyB3YWRkc3RyLi4uICIgPiY2OyB9CiAgaWYgJHthY19jdl9zZWFyY2hfd2FkZHN0 cis6fSBmYWxzZTsgdGhlbiA6Ci1AQCAtOTQxNyw3ICs5NDE4LDcgQEAgcmV0dXJuIHdhZGRzdHIg KCk7CitAQCAtOTM4Niw3ICs5Mzg3LDcgQEAgcmV0dXJuIHdhZGRzdHIgKCk7CiAgICByZXR1cm4g MDsKICB9CiAgX0FDRU9GCkBAIC0yOSw3ICsyOSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmln dXJlIGIvZ2RiL2NvbmZpZ3VyZQogICAgaWYgdGVzdCAteiAiJGFjX2xpYiI7IHRoZW4KICAgICAg YWNfcmVzPSJub25lIHJlcXVpcmVkIgogICAgZWxzZQotQEAgLTk0OTEsNiArOTQ5Miw3IEBAIGNh c2UgJGhvc3Rfb3MgaW4KK0BAIC05NDYwLDYgKzk0NjEsNyBAQCBjYXNlICRob3N0X29zIGluCiAg ZXNhYwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBieSBSZWFkbGluZS4K QEAgLTM3LDcgKzM3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmln dXJlCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgbGlicmFyeSBjb250YWluaW5nIHRnZXRlbnQiID4mNQogICRhc19lY2hvX24gImNoZWNraW5n IGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgdGdldGVudC4uLiAiID4mNjsgfQogIGlmICR7YWNfY3Zf c2VhcmNoX3RnZXRlbnQrOn0gZmFsc2U7IHRoZW4gOgotQEAgLTk1MTUsNyArOTUxNyw3IEBAIHJl dHVybiB0Z2V0ZW50ICgpOworQEAgLTk0ODQsNyArOTQ4Niw3IEBAIHJldHVybiB0Z2V0ZW50ICgp OwogICAgcmV0dXJuIDA7CiAgfQogIF9BQ0VPRgpAQCAtNDksNyArNDksNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQgYS9nZGIvY29uZmln dXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYwogKysrIGIv Z2RiL2NvbmZpZ3VyZS5hYwotQEAgLTc2Niw3ICs3NjYsOCBAQCBpZiB0ZXN0IHgiJHByZWZlcl9j dXJzZXMiID0geHllczsgdGhlbgorQEAgLTc0Myw3ICs3NDMsOCBAQCBpZiB0ZXN0IHgiJHByZWZl cl9jdXJzZXMiID0geHllczsgdGhlbgogICAgIyBzZWFyY2ggL3Vzci9sb2NhbC9pbmNsdWRlLCBp ZiBuY3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsLiAgQQogICAgIyBkZWZhdWx0IGlu c3RhbGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMtb3NmKiB3aWxsIGxlYWQgdG8gc3Vj aAogICAgIyBhIHNpdHVhdGlvbi4KQEAgLTU5LDcgKzU5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9j b25maWd1cmUuYWMgYi9nZGIvY29uZmlndXJlLmFjCiAgCiAgICBpZiB0ZXN0ICIkYWNfY3Zfc2Vh cmNoX3dhZGRzdHIiICE9IG5vOyB0aGVuCiAgICAgIGN1cnNlc19mb3VuZD15ZXMKLUBAIC04MDgs NyArODA5LDggQEAgY2FzZSAkaG9zdF9vcyBpbgorQEAgLTc4NSw3ICs3ODYsOCBAQCBjYXNlICRo b3N0X29zIGluCiAgZXNhYwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBi eSBSZWFkbGluZS4KCmRpZmYgLS1naXQgYS9nZGItZm9sbG93LWNoaWxkLXN0YWxlLXBhcmVudC5w YXRjaCBiL2dkYi1mb2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50LnBhdGNoCmluZGV4IGFiM2E3NjUu LjliN2IwZjUgMTAwNjQ0Ci0tLSBhL2dkYi1mb2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50LnBhdGNo CisrKyBiL2dkYi1mb2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50LnBhdGNoCkBAIC0yNCw3ICsyNCw3 IEBAIHVud2luZGVycyB0cnkgdG8gYWNjZXNzIGl0LCBicmVha2luZzoKIGRpZmYgLS1naXQgYS9n ZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKIC0tLSBhL2dkYi9pbmZydW4uYwogKysrIGIvZ2Ri L2luZnJ1bi5jCi1AQCAtNzUyLDYgKzc1Miw5IEBAIGZvbGxvd19mb3JrICh2b2lkKQorQEAgLTc1 NCw2ICs3NTQsOSBAQCBmb2xsb3dfZm9yayAodm9pZCkKICAJICB9CiAgCWVsc2UKICAJICB7Cgpk aWZmIC0tZ2l0IGEvZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLWdsaWJj LXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCmluZGV4IDJmZWM3Y2YuLjYzYmM3ZTMgMTAwNjQ0Ci0t LSBhL2dkYi1nbGliYy1zdHJzdHItd29ya2Fyb3VuZC5wYXRjaAorKysgYi9nZGItZ2xpYmMtc3Ry c3RyLXdvcmthcm91bmQucGF0Y2gKQEAgLTksNyArOSw3IEBAIFN1YmplY3Q6IGdkYi1nbGliYy1z dHJzdHItd29ya2Fyb3VuZC5wYXRjaAogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9n ZGIvZHdhcmYycmVhZC5jCiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYy cmVhZC5jCi1AQCAtMjEyNzAsNiArMjEyNzAsMjYgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0y MTQ0Myw2ICsyMTQ0MywyNiBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogICAgICAgIC8qIENhY2hlIHRo aXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4g ICovCiAgICAgICAgU1lNQk9MX1NFVF9MQU5HVUFHRSAoc3ltLCBjdS0+bGFuZ3VhZ2UsICZvYmpm aWxlLT5vYmpmaWxlX29ic3RhY2spOwogICAgICAgIGxpbmthZ2VuYW1lID0gZHdhcmYyX3BoeXNu YW1lIChuYW1lLCBkaWUsIGN1KTsKCmRpZmYgLS1naXQgYS9nZGItZ25hdC1kd2FyZi1jcmFzaC0z b2YzLnBhdGNoIGIvZ2RiLWduYXQtZHdhcmYtY3Jhc2gtM29mMy5wYXRjaAppbmRleCBhMjBkYTQ2 Li5jMjI3ZjhhIDEwMDY0NAotLS0gYS9nZGItZ25hdC1kd2FyZi1jcmFzaC0zb2YzLnBhdGNoCisr KyBiL2dkYi1nbmF0LWR3YXJmLWNyYXNoLTNvZjMucGF0Y2gKQEAgLTQyLDcgKzQyLDcgQEAgZ2Ri LwogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiAtLS0g YS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMTA0OTksNiAr MTA0OTksMTMgQEAgcHJpdmF0ZToKK0BAIC0xMDU4Niw2ICsxMDU4NiwxMyBAQCBwcml2YXRlOgog IHN0YXRpYyB2b2lkCiAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICB7CkBAIC01OSw3ICs1OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdh cmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBi L2dkYi9pbmZydW4uYwogLS0tIGEvZ2RiL2luZnJ1bi5jCiArKysgYi9nZGIvaW5mcnVuLmMKLUBA IC02MDcsNiArNjA3LDEzIEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQg ZGV0YWNoLW9uLWZvcmtcIiBvciBcCitAQCAtNjA5LDYgKzYwOSwxMyBAQCBob2xkaW5nIHRoZSBj aGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0IGRldGFjaC1vbi1mb3JrXCIgb3IgXAogIAkJCQl0YXJn ZXRfcGlkX3RvX3N0ciAocHJvY2Vzc19wdGlkKSk7CiAgCSAgICB9CiAgCkBAIC04NiwxMCArODYs MTAgQEAgZGlmZiAtLWdpdCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwogKwog KyNlbmRpZgogKwotIC8qIFRoZSBzYXZlZCB0b19jbG9zZSBtZXRob2QsIGluaGVyaXRlZCBmcm9t IGluZi1wdHJhY2UuYy4KLSAgICBDYWxsZWQgYnkgb3VyIHRvX2Nsb3NlLiAgKi8KLSBzdGF0aWMg dm9pZCAoKnN1cGVyX2Nsb3NlKSAoc3RydWN0IHRhcmdldF9vcHMgKik7Ci1AQCAtMTAyNyw2ICsx MDMzLDkgQEAgbGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQgKHB0aWRfdCBwdGlkLCBpbnQgKnNp Z25hbGxlZCkKKyBzdGF0aWMgdW5zaWduZWQgaW50IGRlYnVnX2xpbnV4X25hdDsKKyBzdGF0aWMg dm9pZAorIHNob3dfZGVidWdfbGludXhfbmF0IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZy b21fdHR5LAorQEAgLTEwMzAsNiArMTAzNiw5IEBAIGxpbnV4X25hdF9wb3N0X2F0dGFjaF93YWl0 IChwdGlkX3QgcHRpZCwgaW50ICpzaWduYWxsZWQpCiAgICAgICAgaWYgKGRlYnVnX2xpbnV4X25h dCkKICAJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAiTE5QQVc6IEF0 dGFjaGluZyB0byBhIHN0b3BwZWQgcHJvY2Vzc1xuIik7CkBAIC05OSw3ICs5OSw3IEBAIGRpZmYg LS1naXQgYS9nZGIvbGludXgtbmF0LmMgYi9nZGIvbGludXgtbmF0LmMKICAKICAgICAgICAvKiBU aGUgcHJvY2VzcyBpcyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250cm9s CiAgCSBzdG9wLCB1bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVEIC8K LUBAIC0xMzU5LDYgKzEzNjgsMjUgQEAgZ2V0X2RldGFjaF9zaWduYWwgKHN0cnVjdCBsd3BfaW5m byAqbHApCitAQCAtMTM2Miw2ICsxMzcxLDI1IEBAIGdldF9kZXRhY2hfc2lnbmFsIChzdHJ1Y3Qg bHdwX2luZm8gKmxwKQogICAgICAgIHJldHVybiBnZGJfc2lnbmFsX3RvX2hvc3QgKHNpZ25vKTsK ICAgICAgfQogIApAQCAtMTI1LDcgKzEyNSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbGludXgtbmF0 LmMgYi9nZGIvbGludXgtbmF0LmMKICAgIHJldHVybiAwOwogIH0KICAKLUBAIC0xNTA3LDYgKzE1 MzUsMTAgQEAgbGludXhfbmF0X3RhcmdldDo6ZGV0YWNoIChpbmZlcmlvciAqaW5mLCBpbnQgZnJv bV90dHkpCitAQCAtMTUxMCw2ICsxNTM4LDEwIEBAIGxpbnV4X25hdF90YXJnZXQ6OmRldGFjaCAo aW5mZXJpb3IgKmluZiwgaW50IGZyb21fdHR5KQogICAgICAgIGRldGFjaF9vbmVfbHdwIChtYWlu X2x3cCwgJnNpZ25vKTsKICAKICAgICAgICBkZXRhY2hfc3VjY2VzcyAoaW5mKTsKQEAgLTEzNiw3 ICsxMzYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4LW5hdC5j CiAgICAgIH0KICB9CiAgCi1AQCAtMTc2NSw2ICsxNzk3LDE2IEBAIGxpbnV4X25hdF90YXJnZXQ6 OnJlc3VtZSAocHRpZF90IHB0aWQsIGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnbm8pCitA QCAtMTc2OCw2ICsxODAwLDE2IEBAIGxpbnV4X25hdF90YXJnZXQ6OnJlc3VtZSAocHRpZF90IHB0 aWQsIGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnbm8pCiAgICAgICAgcmV0dXJuOwogICAg ICB9CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLWppdC1yZWFkZXItbXVsdGlsaWIucGF0Y2ggYi9nZGIt aml0LXJlYWRlci1tdWx0aWxpYi5wYXRjaAppbmRleCAyYWE0MWMyLi5lNjc2YzllIDEwMDY0NAot LS0gYS9nZGItaml0LXJlYWRlci1tdWx0aWxpYi5wYXRjaAorKysgYi9nZGItaml0LXJlYWRlci1t dWx0aWxpYi5wYXRjaApAQCAtOSw3ICs5LDcgQEAgU3ViamVjdDogZ2RiLWppdC1yZWFkZXItbXVs dGlsaWIucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQog LS0tIGEvZ2RiL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQotQEAgLTk2ODAsMTAgKzk2 ODAsMTIgQEAgX0FDRU9GCitAQCAtOTY0OSwxMCArOTY0OSwxMiBAQCBfQUNFT0YKICAKICAKICAK QEAgLTI4LDcgKzI4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmln dXJlCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKIC0t LSBhL2dkYi9jb25maWd1cmUuYWMKICsrKyBiL2dkYi9jb25maWd1cmUuYWMKLUBAIC04NDMsMTAg Kzg0MywxMiBAQCBBQ19DSEVDS19TSVpFT0YodW5zaWduZWQgbG9uZyBsb25nKQorQEAgLTgyMCwx MCArODIwLDEyIEBAIEFDX0NIRUNLX1NJWkVPRih1bnNpZ25lZCBsb25nIGxvbmcpCiAgQUNfQ0hF Q0tfU0laRU9GKHVuc2lnbmVkIGxvbmcpCiAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIF9faW50 MTI4KQogIAoKZGlmZiAtLWdpdCBhL2dkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaCBiL2dkYi1s aW51eF9wZXJmLWJ1bmRsZS5wYXRjaAppbmRleCBjNzUzM2Y3Li45NWU3NTVmIDEwMDY0NAotLS0g YS9nZGItbGludXhfcGVyZi1idW5kbGUucGF0Y2gKKysrIGIvZ2RiLWxpbnV4X3BlcmYtYnVuZGxl LnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItbGludXhfcGVyZi1idW5kbGUucGF0 Y2gKIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogLS0tIGEvZ2Ri L2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQotQEAgLTEyMDU5LDcgKzEyMDU5LDcgQEAg ZWxzZQorQEAgLTEyMDI4LDcgKzEyMDI4LDcgQEAgZWxzZQogIAogICNpbmNsdWRlIDxsaW51eC9w ZXJmX2V2ZW50Lmg+CiAgI2lmbmRlZiBQRVJGX0FUVFJfU0laRV9WRVI1CkBAIC0yMSw3ICsyMSw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogZGlmZiAtLWdp dCBhL2dkYi9jb25maWd1cmUuYWMgYi9nZGIvY29uZmlndXJlLmFjCiAtLS0gYS9nZGIvY29uZmln dXJlLmFjCiArKysgYi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTQ3Nyw3ICsxNDc3LDcgQEAgZWxz ZQorQEAgLTE0NTQsNyArMTQ1NCw3IEBAIGVsc2UKICAgIEFDX1BSRVBST0NfSUZFTFNFKFtBQ19M QU5HX1NPVVJDRShbWwogICNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CiAgI2lmbmRlZiBQ RVJGX0FUVFJfU0laRV9WRVI1CgpkaWZmIC0tZ2l0IGEvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3Jr YXJvdW5kLnBhdGNoIGIvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNoCmluZGV4 IGUwMmU4M2MuLjFiMjZmN2YgMTAwNjQ0Ci0tLSBhL2dkYi1tb3JpYnVuZC11dHJhY2Utd29ya2Fy b3VuZC5wYXRjaAorKysgYi9nZGItbW9yaWJ1bmQtdXRyYWNlLXdvcmthcm91bmQucGF0Y2gKQEAg LTE0LDcgKzE0LDcgQEAgQnVnIGluIEZTRiBHREIgZXhwbG9pdGVkIGJ5IHRoZSBwdHJhY2Utb24t dXRyYWNlIGludGVyYWN0aW9uLgogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIv YnJlYWtwb2ludC5jCiAtLS0gYS9nZGIvYnJlYWtwb2ludC5jCiArKysgYi9nZGIvYnJlYWtwb2lu dC5jCi1AQCAtMTIwMTAsNiArMTIwMTAsOCBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3Qg KGVudW0gdWdsbF9pbnNlcnRfbW9kZSBpbnNlcnRfbW9kZSkKK0BAIC0xMTk5OCw2ICsxMTk5OCw4 IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoZW51bSB1Z2xsX2luc2VydF9tb2RlIGlu c2VydF9tb2RlKQogIAkJIHRyYXBzIHdlIGNhbiBubyBsb25nZXIgZXhwbGFpbi4gICovCiAgCiAg CSAgICAgIG9sZF9sb2MtPmV2ZW50c190aWxsX3JldGlyZW1lbnQgPSAzICogKHRocmVhZF9jb3Vu dCAoKSArIDEpOwpAQCAtMjIsNCArMjIsNCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQu YyBiL2dkYi9icmVha3BvaW50LmMKICsJICAgICAgb2xkX2xvYy0+ZXZlbnRzX3RpbGxfcmV0aXJl bWVudCAqPSAxMDsKICAJICAgICAgb2xkX2xvYy0+b3duZXIgPSBOVUxMOwogIAotIAkgICAgICBW RUNfc2FmZV9wdXNoIChicF9sb2NhdGlvbl9wLCBtb3JpYnVuZF9sb2NhdGlvbnMsIG9sZF9sb2Mp OworIAkgICAgICBtb3JpYnVuZF9sb2NhdGlvbnMucHVzaF9iYWNrIChvbGRfbG9jKTsKCmRpZmYg LS1naXQgYS9nZGItcHl0aG9uLWdpbC5wYXRjaCBiL2dkYi1weXRob24tZ2lsLnBhdGNoCmluZGV4 IDlmZjJlNDUuLmI4NTI4NTQgMTAwNjQ0Ci0tLSBhL2dkYi1weXRob24tZ2lsLnBhdGNoCisrKyBi L2dkYi1weXRob24tZ2lsLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItcHl0aG9u LWdpbC5wYXRjaAogZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5 dGhvbi50ZXhpCiAtLS0gYS9nZGIvZG9jL3B5dGhvbi50ZXhpCiArKysgYi9nZGIvZG9jL3B5dGhv bi50ZXhpCi1AQCAtMjMyLDYgKzIzMiwxNCBAQCByZXR1cm5lZCBhcyBhIHN0cmluZy4gIFRoZSBk ZWZhdWx0IGlzIEBjb2Rle0ZhbHNlfSwgaW4gd2hpY2ggY2FzZSB0aGUKK0BAIC0yMzQsNiArMjM0 LDE0IEBAIHJldHVybmVkIGFzIGEgc3RyaW5nLiAgVGhlIGRlZmF1bHQgaXMgQGNvZGV7RmFsc2V9 LCBpbiB3aGljaCBjYXNlIHRoZQogIHJldHVybiB2YWx1ZSBpcyBAY29kZXtOb25lfS4gIElmIEB2 YXJ7dG9fc3RyaW5nfSBpcyBAY29kZXtUcnVlfSwgdGhlCiAgQHZhbHVle0dEQk59IHZpcnR1YWwg dGVybWluYWwgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gdW5saW1pdGVkIHdpZHRoCiAgYW5k IGhlaWdodCwgYW5kIGl0cyBwYWdpbmF0aW9uIHdpbGwgYmUgZGlzYWJsZWQ7IEBweHJlZntTY3Jl ZW4gU2l6ZX0uCkBAIC0yNyw3ICsyNyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZG9jL3B5dGhvbi50 ZXhpIGIvZ2RiL2RvYy9weXRob24udGV4aQogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmggYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAtLS0gYS9nZGIvcHl0 aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5o Ci1AQCAtMTQ4LDYgKzE0OCw4IEBAIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7CitAQCAtMTQ0LDYg KzE0NCw4IEBAIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7CiAgI2RlZmluZSBQeUdJTFN0YXRlX1Jl bGVhc2UoQVJHKSAoKHZvaWQpKEFSRykpCiAgI2RlZmluZSBQeUV2YWxfSW5pdFRocmVhZHMoKQog ICNkZWZpbmUgUHlUaHJlYWRTdGF0ZV9Td2FwKEFSRykgKCh2b2lkKShBUkcpKQpAQCAtMzksNyAr MzksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmgKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5j IGIvZ2RiL3B5dGhvbi9weXRob24uYwogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYwogKysrIGIv Z2RiL3B5dGhvbi9weXRob24uYwotQEAgLTU1NiwxMiArNTU2LDE2IEBAIGV4ZWN1dGVfZ2RiX2Nv bW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQorQEAg LTU1NSwxMiArNTU1LDE2IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQ eU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQogIHsKICAgIGNvbnN0IGNoYXIgKmFyZzsKICAg IFB5T2JqZWN0ICpmcm9tX3R0eV9vYmogPSBOVUxMLCAqdG9fc3RyaW5nX29iaiA9IE5VTEw7CkBA IC02MCw3ICs2MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5 dGhvbi9weXRob24uYwogICAgICByZXR1cm4gTlVMTDsKICAKICAgIGZyb21fdHR5ID0gMDsKLUBA IC01ODIsNiArNTg2LDE1IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQ eU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQorQEAgLTU4MSw2ICs1ODUsMTUgQEAgZXhlY3V0 ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAq a3cpCiAgICAgICAgdG9fc3RyaW5nID0gY21wOwogICAgICB9CiAgCkBAIC03Niw3ICs3Niw3IEBA IGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwog ICAgc3RkOjpzdHJpbmcgdG9fc3RyaW5nX3JlczsKICAKICAgIFRSWQotQEAgLTYwMiw2ICs2MTUs MTMgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdz LCBQeU9iamVjdCAqa3cpCitAQCAtNjAxLDYgKzYxNCwxMyBAQCBleGVjdXRlX2dkYl9jb21tYW5k IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprdykKICAKICAgICAg ICBjb3VudGVkX2NvbW1hbmRfbGluZSBsaW5lcyA9IHJlYWRfY29tbWFuZF9saW5lc18xIChyZWFk ZXIsIDEsIG51bGxwdHIpOwogIApAQCAtODcsMTcgKzg3LDE5IEBAIGRpZmYgLS1naXQgYS9nZGIv cHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogKyAgICAgIGlmIChyZWxlYXNl X2dpbCkKICsJc3RhdGUgPSBQeUV2YWxfU2F2ZVRocmVhZCgpOwogKwotICAgICAgIHNjb3BlZF9y ZXN0b3JlIHNhdmVfYXN5bmMgPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmY3VycmVudF91aS0+YXN5 bmMsIDApOworICAgICAgIHsKKyAJc2NvcGVkX3Jlc3RvcmUgc2F2ZV9hc3luYyA9IG1ha2Vfc2Nv cGVkX3Jlc3RvcmUgKCZjdXJyZW50X3VpLT5hc3luYywKKyAJCQkJCQkJIDApOworQEAgLTYyMCwx MiArNjQwLDI0IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqYXJncywgUHlPYmplY3QgKmt3KQorIAkgIGV4ZWN1dGVfY29udHJvbF9jb21tYW5kcyAobGlu ZXMuZ2V0ICgpLCBmcm9tX3R0eSk7CisgICAgICAgfQogIAotICAgICAgIHNjb3BlZF9yZXN0b3Jl IHNhdmVfdWlvdXQgPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmY3VycmVudF91aW91dCk7Ci1AQCAt NjE3LDEwICs2MzcsMjIgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5 T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpCi0gCQkJCQkJCSAgICBmcm9tX3R0eSk7Ci0gICAg ICAgZWxzZQotIAlleGVjdXRlX2NvbnRyb2xfY29tbWFuZHMgKGxpbmVzLmdldCAoKSwgZnJvbV90 dHkpOwotKwogKyAgICAgIC8qIFJlYWNxdWlyZSB0aGUgR0lMIGlmIGl0IHdhcyByZWxlYXNlZCBl YXJsaWVyLiAgKi8KICsgICAgICBpZiAocmVsZWFzZV9naWwpCiArCVB5RXZhbF9SZXN0b3JlVGhy ZWFkIChzdGF0ZSk7CisrCisgICAgICAgLyogRG8gYW55IGNvbW1hbmRzIGF0dGFjaGVkIHRvIGJy ZWFrcG9pbnQgd2Ugc3RvcHBlZCBhdC4gICovCisgICAgICAgYnBzdGF0X2RvX2FjdGlvbnMgKCk7 CiAgICAgIH0KICAgIENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewoKZGlm ZiAtLWdpdCBhL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0xb2Y3LnBhdGNoIGIvZ2RiLXJo YnoxMTg3NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDI5YmQ3OTguLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdz LTFvZjcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi1Gcm9tIEZFRE9SQV9Q QVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MDk6NDgg KzAyMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0xb2Y3LnBhdGNoCi0K LTs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJ Qk0sIFJIIEJaIDExODc1ODEpLgotCi1jb21taXQgMDVhYmZjMzljNzE5ZTc0MDUzMDAwMDA1OWJi OTYzYWQzMzQ2MjQ3OQotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBlZHJvbWZj QGxpbnV4LmlibS5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0wMzAwCi0K LSAgICBGaXggaW5kZW50YXRpb24gaW4gcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2lu dAotCi0gICAgZ2RiL0NoYW5nZUxvZzoKLSAgICAyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28gZGUg Q2FydmFsaG8gIDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgotCi0gICAgICAgICAgICAqIHJlbW90 ZS5jIChyZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50KTogRml4IGluZGVudGF0aW9u Ci0gICAgICAgICAgICBpbiBmb3IgYmxvY2suCi0KLWRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMg Yi9nZGIvcmVtb3RlLmMKLS0tLSBhL2dkYi9yZW1vdGUuYwotKysrIGIvZ2RiL3JlbW90ZS5jCi1A QCAtMTI5MTIsMjQgKzEyOTEyLDI0IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9p bnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAllcnJvciAoXygiRXJyb3Igb24gdGFyZ2V0 IHdoaWxlIHNldHRpbmcgdHJhY2Vwb2ludHMuIikpOwotICAgICB9Ci0gCi0tICAgIGZvciAoYXV0 byBhY3Rpb25faXQgPSBzdGVwcGluZ19hY3Rpb25zLmJlZ2luICgpOwotLQkgYWN0aW9uX2l0ICE9 IHN0ZXBwaW5nX2FjdGlvbnMuZW5kICgpOyBhY3Rpb25faXQrKykKLS0gICAgICB7Ci0tCVFVSVQ7 CS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCi0tCi0tCWJvb2wgaXNfZmly c3QgPSBhY3Rpb25faXQgPT0gc3RlcHBpbmdfYWN0aW9ucy5iZWdpbiAoKTsKLS0JYm9vbCBoYXNf bW9yZSA9IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAoKTsKLS0KLS0JeHNucHJp bnRmIChidWYsIEJVRl9TSVpFLCAiUVREUDotJXg6JXM6JXMlcyVzIiwKLS0JCSAgIGItPm51bWJl ciwgYWRkcmJ1ZiwgLyogYWRkcmVzcyAqLwotLQkJICAgaXNfZmlyc3QgPyAiUyIgOiAiIiwKLS0J CSAgIGFjdGlvbl9pdC0+Y19zdHIgKCksCi0tCQkgICBoYXNfbW9yZSA/ICItIiA6ICIiKTsKLS0J cHV0cGt0IChidWYpOwotLQlyZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgpOwotLQlpZiAoc3RyY21w IChycy0+YnVmLCAiT0siKSkKLS0JICBlcnJvciAoXygiRXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNl dHRpbmcgdHJhY2Vwb2ludHMuIikpOwotLSAgICAgIH0KLSsgIGZvciAoYXV0byBhY3Rpb25faXQg PSBzdGVwcGluZ19hY3Rpb25zLmJlZ2luICgpOwotKyAgICAgICBhY3Rpb25faXQgIT0gc3RlcHBp bmdfYWN0aW9ucy5lbmQgKCk7IGFjdGlvbl9pdCsrKQotKyAgICB7Ci0rICAgICAgUVVJVDsJLyog QWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KLSsKLSsgICAgICBib29sIGlzX2Zp cnN0ID0gYWN0aW9uX2l0ID09IHN0ZXBwaW5nX2FjdGlvbnMuYmVnaW4gKCk7Ci0rICAgICAgYm9v bCBoYXNfbW9yZSA9IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAoKTsKLSsKLSsg ICAgICB4c25wcmludGYgKGJ1ZiwgQlVGX1NJWkUsICJRVERQOi0leDolczolcyVzJXMiLAotKwkJ IGItPm51bWJlciwgYWRkcmJ1ZiwgLyogYWRkcmVzcyAqLwotKwkJIGlzX2ZpcnN0ID8gIlMiIDog IiIsCi0rCQkgYWN0aW9uX2l0LT5jX3N0ciAoKSwKLSsJCSBoYXNfbW9yZSA/ICItIiA6ICIiKTsK LSsgICAgICBwdXRwa3QgKGJ1Zik7Ci0rICAgICAgcmVtb3RlX2dldF9ub2lzeV9yZXBseSAoKTsK LSsgICAgICBpZiAoc3RyY21wIChycy0+YnVmLCAiT0siKSkKLSsJZXJyb3IgKF8oIkVycm9yIG9u IHRhcmdldCB3aGlsZSBzZXR0aW5nIHRyYWNlcG9pbnRzLiIpKTsKLSsgICAgfQotIAotICAgaWYg KHBhY2tldF9zdXBwb3J0IChQQUNLRVRfVHJhY2Vwb2ludFNvdXJjZSkgPT0gUEFDS0VUX0VOQUJM RSkKLSAgICAgewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3 LnBhdGNoIGIvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTJvZjcucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwZDQyY2QuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTg3 NTgxLXBvd2VyOC1yZWdzLTJvZjcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA Ci1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVn IDIwMTggMTc6MTA6NDYgKzAyMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVn cy0yb2Y3LnBhdGNoCi0KLTs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dF UjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgotCi1jb21taXQgYWE2ZjM2OTRjZTg2 Nzg4NGU0M2QxYzA0MDZjNjRkZjA4ZWEyNGJkMwotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2Fy dmFsaG8gPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1 NSAyMDE4IC0wMzAwCi0KLSAgICBSZW1vdmUgdHJhaWxpbmcgJy0nIGZyb20gdGhlIGxhc3QgUVRE UCBhY3Rpb24gcGFja2V0Ci0KLSAgICBUaGUgaGFzX21vcmUgcHJlZGljYXRlIGluIHJlbW90ZV90 YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgYWx3YXlzCi0gICAgZXZhbHVhdGVzIHRvIHRydWUs IHNvIHRoZSBsYXN0IGFjdGlvbiBwYWNrZXQgd2lsbCBiZSBzZW50IHdpdGggYQotICAgIHRyYWls aW5nICctJy4gIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgcHJlZGljYXRlIHRvIHJlbW92ZSB0aGUg bGFzdAotICAgIHRyYWlsaW5nICctJy4KLQotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgMjAxOC0w OC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4K LQotICAgICAgICAgICAgKiByZW1vdGUuYyAocmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vw b2ludCk6IEZpeCB0aGUgaGFzX21vcmUKLSAgICAgICAgICAgIHByZWRpY2F0ZSBpbiB0aGUgUVRE UCBhY3Rpb24gbGlzdCBpdGVyYXRpb24uCi0KLWRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9n ZGIvcmVtb3RlLmMKLS0tLSBhL2dkYi9yZW1vdGUuYwotKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAt MTI4OTksNyArMTI4OTksNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChz dHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAgICAgewotICAgICAgIFFVSVQ7CS8qIEFsbG93IHVz ZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCi0gCi0tICAgICAgYm9vbCBoYXNfbW9yZSA9IChh Y3Rpb25faXQgIT0gdGRwX2FjdGlvbnMuZW5kICgpCi0rICAgICAgYm9vbCBoYXNfbW9yZSA9ICgo YWN0aW9uX2l0ICsgMSkgIT0gdGRwX2FjdGlvbnMuZW5kICgpCi0gCQkgICAgICAgfHwgIXN0ZXBw aW5nX2FjdGlvbnMuZW1wdHkgKCkpOwotIAotICAgICAgIHhzbnByaW50ZiAoYnVmLCBCVUZfU0la RSwgIlFURFA6LSV4OiVzOiVzJWMiLAotQEAgLTEyOTE4LDcgKzEyOTE4LDcgQEAgcmVtb3RlX3Rh cmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0gICAg ICAgUVVJVDsJLyogQWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KLSAKLSAgICAg ICBib29sIGlzX2ZpcnN0ID0gYWN0aW9uX2l0ID09IHN0ZXBwaW5nX2FjdGlvbnMuYmVnaW4gKCk7 Ci0tICAgICAgYm9vbCBoYXNfbW9yZSA9IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVu ZCAoKTsKLSsgICAgICBib29sIGhhc19tb3JlID0gKGFjdGlvbl9pdCArIDEpICE9IHN0ZXBwaW5n X2FjdGlvbnMuZW5kICgpOwotIAotICAgICAgIHhzbnByaW50ZiAoYnVmLCBCVUZfU0laRSwgIlFU RFA6LSV4OiVzOiVzJXMlcyIsCi0gCQkgYi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICov CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTNvZjcucGF0Y2ggYi9n ZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtM29mNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNTU0NmYyYi4uMDAwMDAwMAotLS0gYS9nZGItcmhiejExODc1ODEtcG93ZXI4 LXJlZ3MtM29mNy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1OCArMCwwIEBACi1Gcm9tIEZF RE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2 aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6 MTE6MDkgKzAyMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0zb2Y3LnBh dGNoCi0KLTs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0 ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgotCi1jb21taXQgM2RmM2E5ODVhNDc1ZGIwMDQ3MDZk NjRmODNkOTA4NWY5OTA1MzYxMQotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBl ZHJvbWZjQGxpbnV4LmlibS5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0w MzAwCi0KLSAgICBVc2UgZ2V0X3JlbW90ZV9wYWNrZXRfc2l6ZSBpbiBkb3dubG9hZF90cmFjZXBv aW50Ci0KLSAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIHJlbW90ZSB0YXJnZXQgdG8gdXNlIHRo ZSByZW1vdGUgcGFja2V0IHNpemUgdG8KLSAgICBidWlsZCBRVERQIHBhY2tldHMsIGFuZCB0byBj aGVjayBpZiB0aGVyZSBpcyBlbm91Z2ggcm9vbSBmb3IgdGhlCi0gICAgcGFja2V0LgotCi0gICAg SSBjaGFuZ2VkIHRoZSBmdW5jdGlvbiB0byByYWlzZSBhbiBlcnJvciBpZiB0aGUgcGFja2V0IGlz IHRvbyBzbWFsbCwKLSAgICBpbnN0ZWFkIG9mIGFib3J0aW5nIGdkYiAodGhyb3VnaCB4c25wcmlu dGYpLiAgSXQgaXNuJ3QgY2xlYXIgaWYgZ2RiCi0gICAgd2lsbCBiZSBpbiBhIGNvbnNpc3RlbnQg c3RhdGUgd2l0aCByZXNwZWN0IHRvIHRoZSBzdHViIGFmdGVyIHRoaXMsCi0gICAgc2luY2UgaXQn cyBwb3NzaWJsZSB0aGF0IHNvbWUgcGFja2V0cyB3aWxsIGJlIHNlbnQgYnV0IG5vdCBvdGhlcnMs IGFuZAotICAgIHRoZXJlIGNvdWxkIGJlIGFuIGluY29tcGxldGUgdHJhY2Vwb2ludCBvbiB0aGUg c3R1Yi4KLQotICAgIFRoZSBjaGFyIGFycmF5IHVzZWQgdG8gYnVpbGQgdGhlIHBhY2tldHMgaXMg Y2hhbmdlZCB0byBhCi0gICAgZ2RiOjpjaGFyX3ZlY3RvciBhbmQgc2l6ZWQgd2l0aCB0aGUgcmVz dWx0IGZyb20KLSAgICBnZXRfcmVtb3RlX3BhY2tldF9zaXplLgotCi0gICAgV2hlbiBjaGVja2lu ZyBpZiB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSB0cmFjZXBvaW50Ci0g ICAgY29uZGl0aW9uIGFnZW50IGV4cHJlc3Npb24sIHRoZSBsZW5ndGggb2YgdGhlIGV4cHJlc3Np b24gaXMgbXVsdGlwbGllZAotICAgIGJ5IHR3bywgc2luY2UgaXQgaXMgZW5jb2RlZCB3aXRoIHR3 byBoZXggZGlnaXRzIHBlciBleHByZXNzaW9uCi0gICAgYnl0ZS4gIEZvciBzaW1wbGljaXR5LCBJ IGFzc3VtZSB0aGF0IHRoZSByZXN1bHQgd29uJ3Qgb3ZlcmZsb3csIHdoaWNoCi0gICAgY2FuIGhh cHBlbiBmb3IgdmVyeSBsb25nIGNvbmRpdGlvbiBleHByZXNzaW9ucy4KLQotICAgIGdkYi9DaGFu Z2VMb2c6Ci0gICAgMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9t ZmNAbGludXguaWJtLmNvbT4KLQotICAgICAgICAgICAgKiByZW1vdGUuYyAocmVtb3RlX3Rhcmdl dDo6ZG93bmxvYWRfdHJhY2Vwb2ludCk6IFJlbW92ZSBCVUZfU0laRS4KLSAgICAgICAgICAgIFJl cGxhY2UgYXJyYXkgYnVmIHdpdGggZ2RiOjpjaGFyX3ZlY3RvciBidWYsIG9mIHNpemUKLSAgICAg ICAgICAgIGdldF9yZW1vdGVfcGFja2V0X3NpemUgKCkuICBSZXBsYWNlIHJlZmVyZW5jZXMgdG8g YnVmIGFuZAotICAgICAgICAgICAgQlVGX1NJWkUgdG8gYnVmLmRhdGEgKCkgYW5kIGJ1Zi5zaXpl ICgpLiAgUmVwbGFjZSBzdHJjcHksIHN0cmNhdAotICAgICAgICAgICAgYW5kIHhzbnByaW50ZiB3 aXRoIHNucHJpbnRmLiAgUmFpc2UgZXJyb3JzIGlmIHRoZSBidWZmZXIgaXMgdG9vCi0gICAgICAg ICAgICBzbWFsbC4KLQotZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwot LS0tIGEvZ2RiL3JlbW90ZS5jCi0rKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xMjc5OSwyNiArMTI3 OTksMzUgQEAgcmVtb3RlX3RhcmdldDo6cmVtb3RlX2Rvd25sb2FkX2NvbW1hbmRfc291cmNlIChp bnQgbnVtLCBVTE9OR0VTVCBhZGRyLAotIHZvaWQKLSByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90 cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSB7Ci0tI2RlZmluZSBCVUZfU0la RSAyMDQ4Ci0tCi0gICBDT1JFX0FERFIgdHBhZGRyOwotICAgY2hhciBhZGRyYnVmWzQwXTsKLS0g IGNoYXIgYnVmW0JVRl9TSVpFXTsKLSAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB0ZHBfYWN0 aW9uczsKLSAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzdGVwcGluZ19hY3Rpb25zOwotICAg Y2hhciAqcGt0OwotICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93bmVyOwotICAgc3Ry dWN0IHRyYWNlcG9pbnQgKnQgPSAoc3RydWN0IHRyYWNlcG9pbnQgKikgYjsKLSAgIHN0cnVjdCBy ZW1vdGVfc3RhdGUgKnJzID0gZ2V0X3JlbW90ZV9zdGF0ZSAoKTsKLSsgIGludCByZXQ7Ci0rICBj aGFyICplcnJfbXNnID0gXygiVHJhY2Vwb2ludCBwYWNrZXQgdG9vIGxhcmdlIGZvciB0YXJnZXQu Iik7Ci0rICBzaXplX3Qgc2l6ZV9sZWZ0OwotKwotKyAgLyogV2UgdXNlIGEgYnVmZmVyIG90aGVy IHRoYW4gcnMtPmJ1ZiBiZWNhdXNlIHdlJ2xsIGJ1aWxkIHN0cmluZ3MKLSsgICAgIGFjcm9zcyBt dWx0aXBsZSBzdGF0ZW1lbnRzLCBhbmQgb3RoZXIgc3RhdGVtZW50cyBpbiBiZXR3ZWVuIGNvdWxk Ci0rICAgICBtb2RpZnkgcnMtPmJ1Zi4gICovCi0rICBnZGI6OmNoYXJfdmVjdG9yIGJ1ZiAoZ2V0 X3JlbW90ZV9wYWNrZXRfc2l6ZSAoKSk7Ci0gCi0gICBlbmNvZGVfYWN0aW9uc19yc3AgKGxvYywg JnRkcF9hY3Rpb25zLCAmc3RlcHBpbmdfYWN0aW9ucyk7Ci0gCi0gICB0cGFkZHIgPSBsb2MtPmFk ZHJlc3M7Ci0gICBzcHJpbnRmX3ZtYSAoYWRkcmJ1ZiwgdHBhZGRyKTsKLS0gIHhzbnByaW50ZiAo YnVmLCBCVUZfU0laRSwgIlFURFA6JXg6JXM6JWM6JWx4OiV4IiwgYi0+bnVtYmVyLAotLQkgICAg IGFkZHJidWYsIC8qIGFkZHJlc3MgKi8KLS0JICAgICAoYi0+ZW5hYmxlX3N0YXRlID09IGJwX2Vu YWJsZWQgPyAnRScgOiAnRCcpLAotLQkgICAgIHQtPnN0ZXBfY291bnQsIHQtPnBhc3NfY291bnQp OwotKyAgcmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpLCBidWYuc2l6ZSAoKSwgIlFURFA6JXg6 JXM6JWM6JWx4OiV4IiwKLSsJCSAgYi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICovCi0r CQkgIChiLT5lbmFibGVfc3RhdGUgPT0gYnBfZW5hYmxlZCA/ICdFJyA6ICdEJyksCi0rCQkgIHQt PnN0ZXBfY291bnQsIHQtPnBhc3NfY291bnQpOwotKwotKyAgaWYgKHJldCA8IDAgfHwgcmV0ID49 IGJ1Zi5zaXplICgpKQotKyAgICBlcnJvciAoZXJyX21zZyk7Ci0rCi0gICAvKiBGYXN0IHRyYWNl cG9pbnRzIGFyZSBtb3N0bHkgaGFuZGxlZCBieSB0aGUgdGFyZ2V0LCBidXQgd2UgY2FuCi0gICAg ICB0ZWxsIHRoZSB0YXJnZXQgaG93IGJpZyBvZiBhbiBpbnN0cnVjdGlvbiBibG9jayBzaG91bGQg YmUgbW92ZWQKLSAgICAgIGFyb3VuZC4gICovCi1AQCAtMTI4MzAsOCArMTI4MzksMTUgQEAgcmVt b3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2Mp Ci0gCXsKLSAJICBpZiAoZ2RiYXJjaF9mYXN0X3RyYWNlcG9pbnRfdmFsaWRfYXQgKGxvYy0+Z2Ri YXJjaCwgdHBhZGRyLAotIAkJCQkJCU5VTEwpKQotLQkgICAgeHNucHJpbnRmIChidWYgKyBzdHJs ZW4gKGJ1ZiksIEJVRl9TSVpFIC0gc3RybGVuIChidWYpLCAiOkYleCIsCi0tCQkgICAgICAgZ2Ri X2luc25fbGVuZ3RoIChsb2MtPmdkYmFyY2gsIHRwYWRkcikpOwotKwkgICAgewotKwkgICAgICBz aXplX2xlZnQgPSBidWYuc2l6ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpOwotKwkgICAgICBy ZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRhICgpKSwKLSsJCQkg ICAgICBzaXplX2xlZnQsICI6RiV4IiwKLSsJCQkgICAgICBnZGJfaW5zbl9sZW5ndGggKGxvYy0+ Z2RiYXJjaCwgdHBhZGRyKSk7Ci0rCi0rCSAgICAgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBzaXpl X2xlZnQpCi0rCQllcnJvciAoZXJyX21zZyk7Ci0rCSAgICB9Ci0gCSAgZWxzZQotIAkgICAgLyog SWYgaXQgcGFzc2VkIHZhbGlkYXRpb24gYXQgZGVmaW5pdGlvbiBidXQgZmFpbHMgbm93LAotIAkg ICAgICAgc29tZXRoaW5nIGlzIHZlcnkgd3JvbmcuICAqLwotQEAgLTEyODU1LDcgKzEyODcxLDE0 IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlv biAqbG9jKQotIAkgIHN0cnVjdCBzdGF0aWNfdHJhY2Vwb2ludF9tYXJrZXIgbWFya2VyOwotIAot IAkgIGlmICh0YXJnZXRfc3RhdGljX3RyYWNlcG9pbnRfbWFya2VyX2F0ICh0cGFkZHIsICZtYXJr ZXIpKQotLQkgICAgc3RyY2F0IChidWYsICI6UyIpOwotKwkgICAgewotKwkgICAgICBzaXplX2xl ZnQgPSBidWYuc2l6ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpOwotKwkgICAgICByZXQgPSBz bnByaW50ZiAoYnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRhICgpKSwKLSsJCQkgICAgICBz aXplX2xlZnQsICI6UyIpOwotKwotKwkgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9s ZWZ0KQotKwkJZXJyb3IgKGVycl9tc2cpOwotKwkgICAgfQotIAkgIGVsc2UKLSAJICAgIGVycm9y IChfKCJTdGF0aWMgdHJhY2Vwb2ludCBub3QgdmFsaWQgZHVyaW5nIGRvd25sb2FkIikpOwotIAl9 Ci1AQCAtMTI4NzMsMTAgKzEyODk2LDI2IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNl cG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAkgY2FwYWJpbGl0aWVzIGF0IGRlZmlu aXRpb24gdGltZS4gICovCi0gICAgICAgaWYgKHJlbW90ZV9zdXBwb3J0c19jb25kX3RyYWNlcG9p bnRzICgpKQotIAl7Ci0tCSAgYWdlbnRfZXhwcl91cCBhZXhwciA9IGdlbl9ldmFsX2Zvcl9leHBy ICh0cGFkZHIsIGxvYy0+Y29uZC5nZXQgKCkpOwotLQkgIHhzbnByaW50ZiAoYnVmICsgc3RybGVu IChidWYpLCBCVUZfU0laRSAtIHN0cmxlbiAoYnVmKSwgIjpYJXgsIiwKLS0JCSAgICAgYWV4cHIt Pmxlbik7Ci0tCSAgcGt0ID0gYnVmICsgc3RybGVuIChidWYpOwotKwkgIGFnZW50X2V4cHJfdXAg YWV4cHIgPSBnZW5fZXZhbF9mb3JfZXhwciAodHBhZGRyLAotKwkJCQkJCSAgIGxvYy0+Y29uZC5n ZXQgKCkpOwotKwotKwkgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0 YSAoKSk7Ci0rCi0rCSAgcmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYu ZGF0YSAoKSksCi0rCQkJICBzaXplX2xlZnQsICI6WCV4LCIsIGFleHByLT5sZW4pOwotKwotKwkg IGlmIChyZXQgPCAwIHx8IHJldCA+PSBzaXplX2xlZnQpCi0rCSAgICBlcnJvciAoZXJyX21zZyk7 Ci0rCi0rCSAgc2l6ZV9sZWZ0ID0gYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsK LSsKLSsJICAvKiBUd28gYnl0ZXMgdG8gZW5jb2RlIGVhY2ggYWV4cHIgYnl0ZSwgcGx1cyB0aGUg dGVybWluYXRpbmcKLSsJICAgICBudWxsIGJ5dGUuICAqLwotKwkgIGlmIChhZXhwci0+bGVuICog MiArIDEgPiBzaXplX2xlZnQpCi0rCSAgICBlcnJvciAoZXJyX21zZyk7Ci0rCi0rCSAgcGt0ID0g YnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsKLSsKLSAJICBmb3IgKGludCBuZHgg PSAwOyBuZHggPCBhZXhwci0+bGVuOyArK25keCkKLSAJICAgIHBrdCA9IHBhY2tfaGV4X2J5dGUg KHBrdCwgYWV4cHItPmJ1ZltuZHhdKTsKLSAJICAqcGt0ID0gJ1wwJzsKLUBAIC0xMjg4Nyw4ICsx MjkyNiwxNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBf bG9jYXRpb24gKmxvYykKLSAgICAgfQotIAotICAgaWYgKGItPmNvbW1hbmRzIHx8ICpkZWZhdWx0 X2NvbGxlY3QpCi0tICAgIHN0cmNhdCAoYnVmLCAiLSIpOwotLSAgcHV0cGt0IChidWYpOwotKyAg ICB7Ci0rICAgICAgc2l6ZV9sZWZ0ID0gYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgp KTsKLSsKLSsgICAgICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5k YXRhICgpKSwKLSsJCSAgICAgIHNpemVfbGVmdCwgIi0iKTsKLSsKLSsgICAgICBpZiAocmV0IDwg MCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQotKwllcnJvciAoZXJyX21zZyk7Ci0rICAgIH0KLSsKLSsg IHB1dHBrdCAoYnVmLmRhdGEgKCkpOwotICAgcmVtb3RlX2dldF9ub2lzeV9yZXBseSAoKTsKLSAg IGlmIChzdHJjbXAgKHJzLT5idWYsICJPSyIpKQotICAgICBlcnJvciAoXygiVGFyZ2V0IGRvZXMg bm90IHN1cHBvcnQgdHJhY2Vwb2ludHMuIikpOwotQEAgLTEyOTAyLDExICsxMjk1MCwxNSBAQCBy ZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxv YykKLSAgICAgICBib29sIGhhc19tb3JlID0gKChhY3Rpb25faXQgKyAxKSAhPSB0ZHBfYWN0aW9u cy5lbmQgKCkKLSAJCSAgICAgICB8fCAhc3RlcHBpbmdfYWN0aW9ucy5lbXB0eSAoKSk7Ci0gCi0t ICAgICAgeHNucHJpbnRmIChidWYsIEJVRl9TSVpFLCAiUVREUDotJXg6JXM6JXMlYyIsCi0tCQkg Yi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICovCi0tCQkgYWN0aW9uX2l0LT5jX3N0ciAo KSwKLS0JCSBoYXNfbW9yZSA/ICctJyA6IDApOwotLSAgICAgIHB1dHBrdCAoYnVmKTsKLSsgICAg ICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUDotJXg6JXM6 JXMlYyIsCi0rCQkgICAgICBiLT5udW1iZXIsIGFkZHJidWYsIC8qIGFkZHJlc3MgKi8KLSsJCSAg ICAgIGFjdGlvbl9pdC0+Y19zdHIgKCksCi0rCQkgICAgICBoYXNfbW9yZSA/ICctJyA6IDApOwot KwotKyAgICAgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBidWYuc2l6ZSAoKSkKLSsJZXJyb3IgKGVy cl9tc2cpOwotKwotKyAgICAgIHB1dHBrdCAoYnVmLmRhdGEgKCkpOwotICAgICAgIHJlbW90ZV9n ZXRfbm9pc3lfcmVwbHkgKCk7Ci0gICAgICAgaWYgKHN0cmNtcCAocnMtPmJ1ZiwgIk9LIikpCi0g CWVycm9yIChfKCJFcnJvciBvbiB0YXJnZXQgd2hpbGUgc2V0dGluZyB0cmFjZXBvaW50cy4iKSk7 Ci1AQCAtMTI5MjAsMTIgKzEyOTcyLDE2IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNl cG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotICAgICAgIGJvb2wgaXNfZmlyc3QgPSBh Y3Rpb25faXQgPT0gc3RlcHBpbmdfYWN0aW9ucy5iZWdpbiAoKTsKLSAgICAgICBib29sIGhhc19t b3JlID0gKGFjdGlvbl9pdCArIDEpICE9IHN0ZXBwaW5nX2FjdGlvbnMuZW5kICgpOwotIAotLSAg ICAgIHhzbnByaW50ZiAoYnVmLCBCVUZfU0laRSwgIlFURFA6LSV4OiVzOiVzJXMlcyIsCi0tCQkg Yi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICovCi0tCQkgaXNfZmlyc3QgPyAiUyIgOiAi IiwKLS0JCSBhY3Rpb25faXQtPmNfc3RyICgpLAotLQkJIGhhc19tb3JlID8gIi0iIDogIiIpOwot LSAgICAgIHB1dHBrdCAoYnVmKTsKLSsgICAgICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCks IGJ1Zi5zaXplICgpLCAiUVREUDotJXg6JXM6JXMlcyVzIiwKLSsJCSAgICAgIGItPm51bWJlciwg YWRkcmJ1ZiwgLyogYWRkcmVzcyAqLwotKwkJICAgICAgaXNfZmlyc3QgPyAiUyIgOiAiIiwKLSsJ CSAgICAgIGFjdGlvbl9pdC0+Y19zdHIgKCksCi0rCQkgICAgICBoYXNfbW9yZSA/ICItIiA6ICIi KTsKLSsKLSsgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCi0rCWVycm9y IChlcnJfbXNnKTsKLSsKLSsgICAgICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKLSAgICAgICByZW1v dGVfZ2V0X25vaXN5X3JlcGx5ICgpOwotICAgICAgIGlmIChzdHJjbXAgKHJzLT5idWYsICJPSyIp KQotIAllcnJvciAoXygiRXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNldHRpbmcgdHJhY2Vwb2ludHMu IikpOwotQEAgLTEyOTM1LDIyICsxMjk5MSwzMiBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90 cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAgICAgewotICAgICAgIGlmIChi LT5sb2NhdGlvbiAhPSBOVUxMKQotIAl7Ci0tCSAgc3RyY3B5IChidWYsICJRVERQc3JjOiIpOwot KwkgIHJldCA9IHNucHJpbnRmIChidWYuZGF0YSAoKSwgYnVmLnNpemUgKCksICJRVERQc3JjOiIp OwotKwotKwkgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBidWYuc2l6ZSAoKSkKLSsJICAgIGVycm9y IChlcnJfbXNnKTsKLSsKLSAJICBlbmNvZGVfc291cmNlX3N0cmluZyAoYi0+bnVtYmVyLCBsb2Mt PmFkZHJlc3MsICJhdCIsCi0gCQkJCWV2ZW50X2xvY2F0aW9uX3RvX3N0cmluZyAoYi0+bG9jYXRp b24uZ2V0ICgpKSwKLS0JCQkJYnVmICsgc3RybGVuIChidWYpLCAyMDQ4IC0gc3RybGVuIChidWYp KTsKLS0JICBwdXRwa3QgKGJ1Zik7Ci0rCQkJCWJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0 YSAoKSksCi0rCQkJCWJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0YSAoKSkpOwotKwkgIHB1 dHBrdCAoYnVmLmRhdGEgKCkpOwotIAkgIHJlbW90ZV9nZXRfbm9pc3lfcmVwbHkgKCk7Ci0gCSAg aWYgKHN0cmNtcCAocnMtPmJ1ZiwgIk9LIikpCi0gCSAgICB3YXJuaW5nIChfKCJUYXJnZXQgZG9l cyBub3Qgc3VwcG9ydCBzb3VyY2UgZG93bmxvYWQuIikpOwotIAl9Ci0gICAgICAgaWYgKGItPmNv bmRfc3RyaW5nKQotIAl7Ci0tCSAgc3RyY3B5IChidWYsICJRVERQc3JjOiIpOwotKwkgIHJldCA9 IHNucHJpbnRmIChidWYuZGF0YSAoKSwgYnVmLnNpemUgKCksICJRVERQc3JjOiIpOwotKwotKwkg IGlmIChyZXQgPCAwIHx8IHJldCA+PSBidWYuc2l6ZSAoKSkKLSsJICAgIGVycm9yIChlcnJfbXNn KTsKLSsKLSAJICBlbmNvZGVfc291cmNlX3N0cmluZyAoYi0+bnVtYmVyLCBsb2MtPmFkZHJlc3Ms Ci0tCQkJCSJjb25kIiwgYi0+Y29uZF9zdHJpbmcsIGJ1ZiArIHN0cmxlbiAoYnVmKSwKLS0JCQkJ MjA0OCAtIHN0cmxlbiAoYnVmKSk7Ci0tCSAgcHV0cGt0IChidWYpOwotKwkJCQkiY29uZCIsIGIt PmNvbmRfc3RyaW5nLAotKwkJCQlidWYuZGF0YSAoKSArIHN0cmxlbiAoYnVmLmRhdGEgKCkpLAot KwkJCQlidWYuc2l6ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpKTsKLSsJICBwdXRwa3QgKGJ1 Zi5kYXRhICgpKTsKLSAJICByZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgpOwotIAkgIGlmIChzdHJj bXAgKHJzLT5idWYsICJPSyIpKQotIAkgICAgd2FybmluZyAoXygiVGFyZ2V0IGRvZXMgbm90IHN1 cHBvcnQgc291cmNlIGRvd25sb2FkLiIpKTsKCmRpZmYgLS1naXQgYS9nZGItcmhiejExODc1ODEt cG93ZXI4LXJlZ3MtNG9mNy5wYXRjaCBiL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy00b2Y3 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzU1M2E4Li4wMDAwMDAwCi0t LSBhL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy00b2Y3LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDQ5ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LURhdGU6IFRodSwgOSBBdWcgMjAxOCAxNzoxNzoxNiArMDIwMAotU3ViamVjdDogZ2RiLXJoYnox MTg3NTgxLXBvd2VyOC1yZWdzLTRvZjcucGF0Y2gKLQotOzsgQWRkIEdEQiBzdXBwb3J0IHRvIGFj Y2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCi0KLWNv bW1pdCA0Mjc3YzRiODdhZGRiNTM1NGNjNDdiOThkN2E3M2U0NGNmYWYyMmMyCi1BdXRob3I6IFBl ZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KLURhdGU6ICAg TW9uIEF1ZyA2IDE2OjI0OjU1IDIwMTggLTAzMDAKLQotICAgIFVzZSByZW1vdGUgcmVnaXN0ZXIg bnVtYmVycyBpbiB0cmFjZXBvaW50IG1hc2sKLQotICAgIEN1cnJlbnRseSwgdHJhY2Vwb2ludCBy ZWdpc3RlciBtYXNrcyBpbiB0aGUgUVREUCBwYWNrZXRzIGluY2x1ZGUgYm90aAotICAgIGludGVy bmFsIGFuZCByZW1vdGUgcmVnaXN0ZXIgbnVtYmVycywgYXMgd2VsbCBhcyBwc2V1ZG8tcmVnaXN0 ZXIKLSAgICBudW1iZXJzLgotCi0gICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoaXMgc28gdGhhdCB0 aGUgbWFzayBvbmx5IGluY2x1ZGVzIHJlbW90ZSByZWdpc3RlcgotICAgIG51bWJlcnMuCi0KLSAg ICBSZWdpc3RlciBudW1iZXJzIGZyb20gYWdlbnQgZXhwcmVzc2lvbnMgYXJlIGFscmVhZHkgc2V0 IGluIHRoZSBtYXNrCi0gICAgdXNpbmcgcmVtb3RlIG51bWJlcnMuICBPdGhlciB0cmFjZXBvaW50 IGFjdGlvbnMgdXNlZCBpbnRlcm5hbCBudW1iZXJzLAotICAgIGUuZy4gImNvbGxlY3QgJHJlZ3Mi IG9yICJjb2xsZWN0ICQ8cHNldWRvcmVnPiIuICBUbyBoYW5kbGUgcHNldWRvcmVnCi0gICAgbnVt YmVycywgYW4gZW1wdHkgYWdlbnQgZXhwcmVzc2lvbiBpcyBjcmVhdGVkIGFuZCBheF9yZWdfbWFz ayBpcwotICAgIGNhbGxlZCBmb3IgdGhpcyBleHByZXNzaW9uIGFuZCB0aGUgcHNldWRvcmVnLiAg VGhpcyB3aWxsIGNhdXNlIHRoZSBheAotICAgIHRvIHNldCBpdHMgbWFzayB3aXRoIHRoZSBjb3Jy ZXNwb25kaW5nIHJlbW90ZSByYXcgcmVnaXN0ZXIKLSAgICBudW1iZXJzICh1c2luZyBheF9yZWdz X21hc2ssIHdoaWNoIGNhbGxzCi0gICAgZ2RiYXJjaF9heF9wc2V1ZG9fcmVnaXN0ZXJfY29sbGVj dCkuCi0KLSAgICBJZiBheF9yZWdzX21hc2sgYW5kIGdkYmFyY2hfYXhfcHNldWRvX3JlZ2lzdGVy X2NvbGxlY3QgYWxzbyBnZW5lcmF0ZQotICAgIG1vcmUgYXggYnl0ZWNvZGUsIHRoZSBheCBpcyBh bHNvIGFwcGVuZGVkIHRvIHRoZSBjb2xsZWN0aW9uIGxpc3QuICBJdAotICAgIGlzbid0IGNsZWFy IHRoYXQgdGhpcyB3YXMgdGhlIG9yaWdpbmFsIGludGVudCBmb3IKLSAgICBnZGJhcmNoX2F4X3Bz ZXVkb19yZWdpc3Rlcl9jb2xsZWN0LCBhbmQgbm9uZSBvZiB0aGUgYXJjaGVzIHNlZW0gdG8gZG8K LSAgICB0aGlzLCBidXQgaWYgdGhpcyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUsIGl0IHNob3VsZCB3 b3JrLgotCi0gICAgVGhlIHBhdGNoIGFsc28gcmVmYWN0b3JzIHRoZSBjb2RlIHVzZWQgYnkgdmFs aWRhdGVfYWN0aW9uIGxpbmUgdG8KLSAgICB2YWxpZGF0ZSBheHMgaW50byBhIGZ1bmN0aW9uIHRo YXQgaXMgbm93IGNhbGxlZCBmcm9tIGV2ZXJ5IHBsYWNlIHRoYXQKLSAgICBnZW5lcmF0ZXMgYXhz LiAgUHJldmlvdXNseSwgc29tZSBwYXJ0cyBvZiB0cmFjZXBvaW50LmMgdGhhdCBnZW5lcmF0ZWQK LSAgICBheHMgZGlkbid0IGNoZWNrIGlmIHRoZSBheCBsZW5ndGggd2FzIGdyZWF0ZXIgdGhhbiBN QVhfQUdFTlRfRVhQUl9MRU4uCi0KLSAgICBnZGIvQ2hhbmdlTG9nOgotICAgIDIwMTgtMDgtMDYg IFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+Ci0KLSAg ICAgICAgICAgICogdHJhY2Vwb2ludC5oIChjbGFzcyBjb2xsZWN0aW9uX2xpc3QpIDxhZGRfcmVn aXN0ZXI+OiBSZW1vdmUuCi0gICAgICAgICAgICA8YWRkX3JlbW90ZV9yZWdpc3RlciwgYWRkX2F4 X3JlZ2lzdGVycywgYWRkX2xvY2FsX3JlZ2lzdGVyPjoKLSAgICAgICAgICAgIERlY2xhcmUuCi0g ICAgICAgICAgICA8YWRkX21lbXJhbmdlPjogQWRkIHNjb3BlIHBhcmFtZXRlci4KLSAgICAgICAg ICAgICogdHJhY2Vwb2ludC5jIChlbmNvZGVfYWN0aW9uc18xKTogTGlrZXdpc2UuCi0gICAgICAg ICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfcmVnaXN0ZXIpOiBSZW5hbWUgdG8gLi4uCi0gICAg ICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyKTogLi4uIHRoaXMu ICBVcGRhdGUKLSAgICAgICAgICAgIGNvbW1lbnQuCi0gICAgICAgICAgICAoY29sbGVjdGlvbl9s aXN0OjphZGRfYXhfcmVnaXN0ZXJzLCBhZGRfbG9jYWxfcmVnaXN0ZXIpOiBOZXcKLSAgICAgICAg ICAgIG1ldGhvZHMuCi0gICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfbWVtcmFuZ2Up OiBBZGQgc2NvcGUgcGFyYW1ldGVyLiAgQ2FsbAotICAgICAgICAgICAgYWRkX2xvY2FsX3JlZ2lz dGVyIGluc3RlYWQgb2YgYWRkX3JlZ2lzdGVyLgotICAgICAgICAgICAgKGZpbmFsaXplX3RyYWNl cG9pbnRfYWV4cHIpOiBOZXcgZnVuY3Rpb24uCi0gICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0 Ojpjb2xsZWN0X3N5bWJvbCk6IFVwZGF0ZSBjYWxscyB0byBhZGRfbWVtcmFuZ2UuCi0gICAgICAg ICAgICBDYWxsIGFkZF9sb2NhbF9yZWdpc3RlciBpbnN0ZWFkIG9mIGFkZF9yZWdpc3Rlci4gIENh bGwKLSAgICAgICAgICAgIGFkZF9heF9yZWdpc3RlcnMuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9p bnRfYWV4cHIuCi0gICAgICAgICAgICAoZW5jb2RlX2FjdGlvbnNfMSk6IEdldCByZW1vdGUgcmVn bm9zIGZvciAkcmVnIGFjdGlvbi4gIENhbGwKLSAgICAgICAgICAgIGFkZF9yZW1vdGVfcmVnaXN0 ZXIsIGFkZF9heF9yZWdpc3RlcnMsIGFuZCBhZGRfbG9jYWxfcmVnaXN0ZXIuCi0gICAgICAgICAg ICBVcGRhdGUgY2FsbCB0byBhZGRfbWVtcmFuZ2UuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9pbnRf YWV4cHIuCi0gICAgICAgICAgICAodmFsaWRhdGVfYWN0aW9ubGluZSk6IENhbGwgZmluYWxpemVf dHJhY2Vwb2ludF9hZXhwci4KLQotKzIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxo byAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+Ci0rCi0rCSogdHJhY2Vwb2ludC5oIChjbGFzcyBj b2xsZWN0aW9uX2xpc3QpIDxhZGRfcmVnaXN0ZXI+OiBSZW1vdmUuCi0rCTxhZGRfcmVtb3RlX3Jl Z2lzdGVyLCBhZGRfYXhfcmVnaXN0ZXJzLCBhZGRfbG9jYWxfcmVnaXN0ZXI+OgotKwlEZWNsYXJl LgotKwk8YWRkX21lbXJhbmdlPjogQWRkIHNjb3BlIHBhcmFtZXRlci4KLSsJKiB0cmFjZXBvaW50 LmMgKGVuY29kZV9hY3Rpb25zXzEpOiBMaWtld2lzZS4KLSsJKGNvbGxlY3Rpb25fbGlzdDo6YWRk X3JlZ2lzdGVyKTogUmVuYW1lIHRvIC4uLgotKwkoY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3Rl X3JlZ2lzdGVyKTogLi4uIHRoaXMuICBVcGRhdGUKLSsJY29tbWVudC4KLSsJKGNvbGxlY3Rpb25f bGlzdDo6YWRkX2F4X3JlZ2lzdGVycywgYWRkX2xvY2FsX3JlZ2lzdGVyKTogTmV3Ci0rCW1ldGhv ZHMuCi0rCShjb2xsZWN0aW9uX2xpc3Q6OmFkZF9tZW1yYW5nZSk6IEFkZCBzY29wZSBwYXJhbWV0 ZXIuICBDYWxsCi0rCWFkZF9sb2NhbF9yZWdpc3RlciBpbnN0ZWFkIG9mIGFkZF9yZWdpc3Rlci4K LSsJKGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIpOiBOZXcgZnVuY3Rpb24uCi0rCShjb2xsZWN0 aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sKTogVXBkYXRlIGNhbGxzIHRvIGFkZF9tZW1yYW5nZS4K LSsJQ2FsbCBhZGRfbG9jYWxfcmVnaXN0ZXIgaW5zdGVhZCBvZiBhZGRfcmVnaXN0ZXIuICBDYWxs Ci0rCWFkZF9heF9yZWdpc3RlcnMuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIuCi0r CShlbmNvZGVfYWN0aW9uc18xKTogR2V0IHJlbW90ZSByZWdub3MgZm9yICRyZWcgYWN0aW9uLiAg Q2FsbAotKwlhZGRfcmVtb3RlX3JlZ2lzdGVyLCBhZGRfYXhfcmVnaXN0ZXJzLCBhbmQgYWRkX2xv Y2FsX3JlZ2lzdGVyLgotKwlVcGRhdGUgY2FsbCB0byBhZGRfbWVtcmFuZ2UuICBDYWxsIGZpbmFs aXplX3RyYWNlcG9pbnRfYWV4cHIuCi0rCSh2YWxpZGF0ZV9hY3Rpb25saW5lKTogQ2FsbCBmaW5h bGl6ZV90cmFjZXBvaW50X2FleHByLgotKwotIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBD YXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+Ci0KLSAJKiByZW1vdGUuYyAocmVtb3Rl X3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCk6IFJlbW92ZSBCVUZfU0laRS4KLQotZGlmZiAt LWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCi0tLS0gYS9nZGIvdHJh Y2Vwb2ludC5jCi0rKysgYi9nZGIvdHJhY2Vwb2ludC5jCi1AQCAtNjE1LDYgKzYxNSwxOSBAQCBy ZXBvcnRfYWdlbnRfcmVxc19lcnJvcnMgKHN0cnVjdCBhZ2VudF9leHByICphZXhwcikKLSAgICAg ZXJyb3IgKF8oIkV4cHJlc3Npb24gaXMgdG9vIGNvbXBsaWNhdGVkLiIpKTsKLSB9Ci0gCi0rLyog Q2FsbCBheF9yZXFzIG9uIEFFWFBSIGFuZCByYWlzZSBhbiBlcnJvciBpZiBzb21ldGhpbmcgaXMg d3JvbmcuICAqLwotKwotK3N0YXRpYyB2b2lkCi0rZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAo c3RydWN0IGFnZW50X2V4cHIgKmFleHByKQotK3sKLSsgIGF4X3JlcXMgKGFleHByKTsKLSsKLSsg IGlmIChhZXhwci0+bGVuID4gTUFYX0FHRU5UX0VYUFJfTEVOKQotKyAgICBlcnJvciAoXygiRXhw cmVzc2lvbiBpcyB0b28gY29tcGxpY2F0ZWQuIikpOwotKwotKyAgcmVwb3J0X2FnZW50X3JlcXNf ZXJyb3JzIChhZXhwcik7Ci0rfQotKwotIC8qIHdvcmtlciBmdW5jdGlvbiAqLwotIHZvaWQKLSB2 YWxpZGF0ZV9hY3Rpb25saW5lIChjb25zdCBjaGFyICpsaW5lLCBzdHJ1Y3QgYnJlYWtwb2ludCAq YikKLUBAIC02OTksMTIgKzcxMiw3IEBAIHZhbGlkYXRlX2FjdGlvbmxpbmUgKGNvbnN0IGNoYXIg KmxpbmUsIHN0cnVjdCBicmVha3BvaW50ICpiKQotIAkJCQkJCQlleHAuZ2V0ICgpLAotIAkJCQkJ CQl0cmFjZV9zdHJpbmcpOwotIAotLQkgICAgICBpZiAoYWV4cHItPmxlbiA+IE1BWF9BR0VOVF9F WFBSX0xFTikKLS0JCWVycm9yIChfKCJFeHByZXNzaW9uIGlzIHRvbyBjb21wbGljYXRlZC4iKSk7 Ci0tCi0tCSAgICAgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7Ci0tCi0tCSAgICAgIHJlcG9ydF9h Z2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKLSsJICAgICAgZmluYWxpemVfdHJhY2Vw b2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSAJICAgIH0KLSAJfQotICAgICAgIHdoaWxlIChw ICYmICpwKysgPT0gJywnKTsKLUBAIC03MzEsMTEgKzczOSw3IEBAIHZhbGlkYXRlX2FjdGlvbmxp bmUgKGNvbnN0IGNoYXIgKmxpbmUsIHN0cnVjdCBicmVha3BvaW50ICpiKQotIAkJIGxvbmcuICAq LwotIAkgICAgICBhZ2VudF9leHByX3VwIGFleHByID0gZ2VuX2V2YWxfZm9yX2V4cHIgKGxvYy0+ YWRkcmVzcywgZXhwLmdldCAoKSk7Ci0gCi0tCSAgICAgIGlmIChhZXhwci0+bGVuID4gTUFYX0FH RU5UX0VYUFJfTEVOKQotLQkJZXJyb3IgKF8oIkV4cHJlc3Npb24gaXMgdG9vIGNvbXBsaWNhdGVk LiIpKTsKLS0KLS0JICAgICAgYXhfcmVxcyAoYWV4cHIuZ2V0ICgpKTsKLS0JICAgICAgcmVwb3J0 X2FnZW50X3JlcXNfZXJyb3JzIChhZXhwci5nZXQgKCkpOwotKwkgICAgICBmaW5hbGl6ZV90cmFj ZXBvaW50X2FleHByIChhZXhwci5nZXQgKCkpOwotIAkgICAgfQotIAl9Ci0gICAgICAgd2hpbGUg KHAgJiYgKnArKyA9PSAnLCcpOwotQEAgLTgxMSwxMCArODE1LDEwIEBAIG1lbXJhbmdlX3NvcnRt ZXJnZSAoc3RkOjp2ZWN0b3I8bWVtcmFuZ2U+ICZtZW1yYW5nZXMpCi0gICAgIH0KLSB9Ci0gCi0t LyogQWRkIGEgcmVnaXN0ZXIgdG8gYSBjb2xsZWN0aW9uIGxpc3QuICAqLwotKy8qIEFkZCByZW1v dGUgcmVnaXN0ZXIgbnVtYmVyIFJFR05PIHRvIHRoZSBjb2xsZWN0aW9uIGxpc3QgbWFzay4gICov Ci0gCi0gdm9pZAotLWNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQg cmVnbm8pCi0rY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyICh1bnNpZ25lZCBp bnQgcmVnbm8pCi0gewotICAgaWYgKGluZm9fdmVyYm9zZSkKLSAgICAgcHJpbnRmX2ZpbHRlcmVk ICgiY29sbGVjdCByZWdpc3RlciAlZFxuIiwgcmVnbm8pOwotQEAgLTgyNCwxMiArODI4LDc0IEBA IGNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pCi0gICBt X3JlZ3NfbWFza1tyZWdubyAvIDhdIHw9IDEgPDwgKHJlZ25vICUgOCk7Ci0gfQotIAotKy8qIEFk ZCBhbGwgdGhlIHJlZ2lzdGVycyBmcm9tIHRoZSBtYXNrIGluIEFFWFBSIHRvIHRoZSBtYXNrIGlu IHRoZQotKyAgIGNvbGxlY3Rpb24gbGlzdC4gIFJlZ2lzdGVycyBpbiB0aGUgQUVYUFIgbWFzayBh cmUgYWxyZWFkeSByZW1vdGUKLSsgICByZWdpc3RlciBudW1iZXJzLiAgKi8KLSsKLSt2b2lkCi0r Y29sbGVjdGlvbl9saXN0OjphZGRfYXhfcmVnaXN0ZXJzIChzdHJ1Y3QgYWdlbnRfZXhwciAqYWV4 cHIpCi0rewotKyAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotKyAgICB7Ci0rICAgICAg Zm9yIChpbnQgbmR4MSA9IDA7IG5keDEgPCBhZXhwci0+cmVnX21hc2tfbGVuOyBuZHgxKyspCi0r CXsKLSsJICBRVUlUOwkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdpdGggXkMuICAqLwotKwkg IGlmIChhZXhwci0+cmVnX21hc2tbbmR4MV0gIT0gMCkKLSsJICAgIHsKLSsJICAgICAgLyogQXNz dW1lIGNoYXJzIGhhdmUgOCBiaXRzLiAgKi8KLSsJICAgICAgZm9yIChpbnQgbmR4MiA9IDA7IG5k eDIgPCA4OyBuZHgyKyspCi0rCQlpZiAoYWV4cHItPnJlZ19tYXNrW25keDFdICYgKDEgPDwgbmR4 MikpCi0rCQkgIC8qIEl0J3MgdXNlZCAtLSByZWNvcmQgaXQuICAqLwotKwkJICBhZGRfcmVtb3Rl X3JlZ2lzdGVyIChuZHgxICogOCArIG5keDIpOwotKwkgICAgfQotKwl9Ci0rICAgIH0KLSt9Ci0r Ci0rLyogSWYgUkVHTk8gaXMgcmF3LCBhZGQgaXRzIGNvcnJlc3BvbmRpbmcgcmVtb3RlIHJlZ2lz dGVyIG51bWJlciB0bwotKyAgIHRoZSBtYXNrLiAgSWYgUkVHTk8gaXMgYSBwc2V1ZG8tcmVnaXN0 ZXIsIGZpZ3VyZSBvdXQgdGhlIG5lY2Vzc2FyeQotKyAgIHJlZ2lzdGVycyB1c2luZyBhIHRlbXBv cmFyeSBhZ2VudCBleHByZXNzaW9uLCBhbmQgYWRkIGl0IHRvIHRoZQotKyAgIGxpc3QgaWYgaXQg bmVlZHMgbW9yZSB0aGFuIGp1c3QgYSBtYXNrLiAgKi8KLSsKLSt2b2lkCi0rY29sbGVjdGlvbl9s aXN0OjphZGRfbG9jYWxfcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotKwkJCQkg ICAgIHVuc2lnbmVkIGludCByZWdubywKLSsJCQkJICAgICBDT1JFX0FERFIgc2NvcGUpCi0rewot KyAgaWYgKHJlZ25vIDwgZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkpCi0rICAgIHsKLSsgICAg ICBpbnQgcmVtb3RlX3JlZ25vID0gZ2RiYXJjaF9yZW1vdGVfcmVnaXN0ZXJfbnVtYmVyIChnZGJh cmNoLCByZWdubyk7Ci0rCi0rICAgICAgaWYgKHJlbW90ZV9yZWdubyA8IDApCi0rCWVycm9yIChf KCJDYW4ndCBjb2xsZWN0IHJlZ2lzdGVyICVkIiksIHJlZ25vKTsKLSsKLSsgICAgICBhZGRfcmVt b3RlX3JlZ2lzdGVyIChyZW1vdGVfcmVnbm8pOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsKLSsg ICAgICBhZ2VudF9leHByX3VwIGFleHByIChuZXcgYWdlbnRfZXhwciAoZ2RiYXJjaCwgc2NvcGUp KTsKLSsKLSsgICAgICBheF9yZWdfbWFzayAoYWV4cHIuZ2V0ICgpLCByZWdubyk7Ci0rCi0rICAg ICAgZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSsKLSsgICAgICBh ZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotKwotKyAgICAgIC8qIFVzdWFsbHkgYXhf cmVnX21hc2sgZm9yIGEgcHNldWRvLXJlZ2lzZXIgb25seSBzZXRzIHRoZQotKwkgY29ycmVzcG9u ZGluZyByYXcgcmVnaXN0ZXJzIGluIHRoZSBheCBtYXNrLCBidXQgaWYgdGhpcyBpc24ndAotKwkg dGhlIGNhc2UgYWRkIHRoZSBleHByZXNzaW9uIHRoYXQgaXMgZ2VuZXJhdGVkIHRvIHRoZQotKwkg Y29sbGVjdGlvbiBsaXN0LiAgKi8KLSsgICAgICBpZiAoYWV4cHItPmxlbiA+IDApCi0rCWFkZF9h ZXhwciAoc3RkOjptb3ZlIChhZXhwcikpOwotKyAgICB9Ci0rfQotKwotIC8qIEFkZCBhIG1lbXJh bmdlIHRvIGEgY29sbGVjdGlvbiBsaXN0LiAgKi8KLSAKLSB2b2lkCi0gY29sbGVjdGlvbl9saXN0 OjphZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotIAkJCSAgICAgICBpbnQg dHlwZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKLS0JCQkgICAgICAgVUxPTkdFU1QgbGVuKQotKwkJ CSAgICAgICBVTE9OR0VTVCBsZW4sIENPUkVfQUREUiBzY29wZSkKLSB7Ci0gICBpZiAoaW5mb192 ZXJib3NlKQotICAgICBwcmludGZfZmlsdGVyZWQgKCIoJWQsJXMsJXMpXG4iLCB0eXBlLCBwYWRk cmVzcyAoZ2RiYXJjaCwgYmFzZSksIHB1bG9uZ2VzdCAobGVuKSk7Ci1AQCAtODQwLDcgKzkwNiw3 IEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX21lbXJhbmdlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwKLSAgIG1fbWVtcmFuZ2VzLmVtcGxhY2VfYmFjayAodHlwZSwgYmFzZSwgYmFzZSArIGxlbik7 Ci0gCi0gICBpZiAodHlwZSAhPSBtZW1yYW5nZV9hYnNvbHV0ZSkgICAgLyogQmV0dGVyIGNvbGxl Y3QgdGhlIGJhc2UgcmVnaXN0ZXIhICAqLwotLSAgICBhZGRfcmVnaXN0ZXIgKHR5cGUpOwotKyAg ICBhZGRfbG9jYWxfcmVnaXN0ZXIgKGdkYmFyY2gsIHR5cGUsIHNjb3BlKTsKLSB9Ci0gCi0gLyog QWRkIGEgc3ltYm9sIHRvIGEgY29sbGVjdGlvbiBsaXN0LiAgKi8KLUBAIC04ODIsMTkgKzk0OCwx OSBAQCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0s Ci0gICAgICAgaWYgKFRZUEVfQ09ERSAoU1lNQk9MX1RZUEUgKHN5bSkpID09IFRZUEVfQ09ERV9T VFJVQ1QpCi0gCXRyZWF0X2FzX2V4cHIgPSAxOwotICAgICAgIGVsc2UKLS0JYWRkX21lbXJhbmdl IChnZGJhcmNoLCBtZW1yYW5nZV9hYnNvbHV0ZSwgb2Zmc2V0LCBsZW4pOwotKwlhZGRfbWVtcmFu Z2UgKGdkYmFyY2gsIG1lbXJhbmdlX2Fic29sdXRlLCBvZmZzZXQsIGxlbiwgc2NvcGUpOwotICAg ICAgIGJyZWFrOwotICAgICBjYXNlIExPQ19SRUdJU1RFUjoKLSAgICAgICByZWcgPSBTWU1CT0xf UkVHSVNURVJfT1BTIChzeW0pLT5yZWdpc3Rlcl9udW1iZXIgKHN5bSwgZ2RiYXJjaCk7Ci0gICAg ICAgaWYgKGluZm9fdmVyYm9zZSkKLSAJcHJpbnRmX2ZpbHRlcmVkICgiTE9DX1JFR1twYXJtXSAl czogIiwgCi0gCQkJIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pKTsKLS0gICAgICBhZGRfcmVnaXN0 ZXIgKHJlZyk7Ci0rICAgICAgYWRkX2xvY2FsX3JlZ2lzdGVyIChnZGJhcmNoLCByZWcsIHNjb3Bl KTsKLSAgICAgICAvKiBDaGVjayBmb3IgZG91YmxlcyBzdG9yZWQgaW4gdHdvIHJlZ2lzdGVycy4g ICovCi0gICAgICAgLyogRklYTUU6IGhvdyBhYm91dCBsYXJnZXIgdHlwZXMgc3RvcmVkIGluIDMg b3IgbW9yZSByZWdzPyAgKi8KLSAgICAgICBpZiAoVFlQRV9DT0RFIChTWU1CT0xfVFlQRSAoc3lt KSkgPT0gVFlQRV9DT0RFX0ZMVCAmJgotIAkgIGxlbiA+IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gs IHJlZykpCi0tCWFkZF9yZWdpc3RlciAocmVnICsgMSk7Ci0rCWFkZF9sb2NhbF9yZWdpc3RlciAo Z2RiYXJjaCwgcmVnICsgMSwgc2NvcGUpOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIExPQ19S RUZfQVJHOgotICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIlNvcnJ5LCBkb24ndCBrbm93IGhvdyB0 byBkbyBMT0NfUkVGX0FSRyB5ZXQuXG4iKTsKLUBAIC05MTEsNyArOTc3LDcgQEAgY29sbGVjdGlv bl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAotIAkJCSAgIFNZTUJP TF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbiksCi0gCQkJICAgcGFkZHJlc3MgKGdk YmFyY2gsIG9mZnNldCksIHJlZyk7Ci0gCX0KLS0gICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFyY2gs IHJlZywgb2Zmc2V0LCBsZW4pOwotKyAgICAgIGFkZF9tZW1yYW5nZSAoZ2RiYXJjaCwgcmVnLCBv ZmZzZXQsIGxlbiwgc2NvcGUpOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIExPQ19SRUdQQVJN X0FERFI6Ci0gICAgICAgcmVnID0gU1lNQk9MX1ZBTFVFIChzeW0pOwotQEAgLTkyMyw3ICs5ODks NyBAQCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0s Ci0gCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKLSAJCQkg ICBwYWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKLSAJfQotLSAgICAgIGFkZF9tZW1y YW5nZSAoZ2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbik7Ci0rICAgICAgYWRkX21lbXJhbmdlIChn ZGJhcmNoLCByZWcsIG9mZnNldCwgbGVuLCBzY29wZSk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNh c2UgTE9DX0xPQ0FMOgotICAgICAgIHJlZyA9IGZyYW1lX3JlZ25vOwotQEAgLTkzNSw3ICsxMDAx LDcgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3lt LAotIAkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbiksCi0gCQkJ ICAgcGFkZHJlc3MgKGdkYmFyY2gsIG9mZnNldCksIHJlZyk7Ci0gCX0KLS0gICAgICBhZGRfbWVt cmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4pOwotKyAgICAgIGFkZF9tZW1yYW5nZSAo Z2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbiwgc2NvcGUpOwotICAgICAgIGJyZWFrOwotIAotICAg ICBjYXNlIExPQ19VTlJFU09MVkVEOgotQEAgLTk2OCwyNiArMTAzNCwxMCBAQCBjb2xsZWN0aW9u X2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCi0gCSAgcmV0dXJuOwot IAl9Ci0gCi0tICAgICAgYXhfcmVxcyAoYWV4cHIuZ2V0ICgpKTsKLS0KLS0gICAgICByZXBvcnRf YWdlbnRfcmVxc19lcnJvcnMgKGFleHByLmdldCAoKSk7Ci0rICAgICAgZmluYWxpemVfdHJhY2Vw b2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSAKLSAgICAgICAvKiBUYWtlIGNhcmUgb2YgdGhl IHJlZ2lzdGVycy4gICovCi0tICAgICAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotLQl7 Ci0tCSAgZm9yIChpbnQgbmR4MSA9IDA7IG5keDEgPCBhZXhwci0+cmVnX21hc2tfbGVuOyBuZHgx KyspCi0tCSAgICB7Ci0tCSAgICAgIFFVSVQ7CS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0 aCBeQy4gICovCi0tCSAgICAgIGlmIChhZXhwci0+cmVnX21hc2tbbmR4MV0gIT0gMCkKLS0JCXsK LS0JCSAgLyogQXNzdW1lIGNoYXJzIGhhdmUgOCBiaXRzLiAgKi8KLS0JCSAgZm9yIChpbnQgbmR4 MiA9IDA7IG5keDIgPCA4OyBuZHgyKyspCi0tCQkgICAgaWYgKGFleHByLT5yZWdfbWFza1tuZHgx XSAmICgxIDw8IG5keDIpKQotLQkJICAgICAgLyogSXQncyB1c2VkIC0tIHJlY29yZCBpdC4gICov Ci0tCQkgICAgICBhZGRfcmVnaXN0ZXIgKG5keDEgKiA4ICsgbmR4Mik7Ci0tCQl9Ci0tCSAgICB9 Ci0tCX0KLSsgICAgICBhZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotIAotICAgICAg IGFkZF9hZXhwciAoc3RkOjptb3ZlIChhZXhwcikpOwotICAgICB9Ci1AQCAtMTI1Nyw4ICsxMzA3 LDE4IEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0cnVjdCBjb21tYW5kX2xpbmUgKmFjdGlvbiwKLSAK LSAJICAgICAgaWYgKDAgPT0gc3RybmNhc2VjbXAgKCIkcmVnIiwgYWN0aW9uX2V4cCwgNCkpCi0g CQl7Ci0tCQkgIGZvciAoaSA9IDA7IGkgPCBnZGJhcmNoX251bV9yZWdzICh0YXJnZXRfZ2RiYXJj aCAoKSk7IGkrKykKLS0JCSAgICBjb2xsZWN0LT5hZGRfcmVnaXN0ZXIgKGkpOwotKwkJICBmb3Ig KGkgPSAwOyBpIDwgZ2RiYXJjaF9udW1fcmVncyAodGFyZ2V0X2dkYmFyY2ggKCkpOwotKwkJICAg ICAgIGkrKykKLSsJCSAgICB7Ci0rCQkgICAgICBpbnQgcmVtb3RlX3JlZ25vID0gKGdkYmFyY2hf cmVtb3RlX3JlZ2lzdGVyX251bWJlcgotKwkJCQkJICAodGFyZ2V0X2dkYmFyY2ggKCksIGkpKTsK LSsKLSsJCSAgICAgIC8qIElnbm9yZSBhcmNoIHJlZ25vcyB3aXRob3V0IGEgY29ycmVzcG9uZGlu ZwotKwkJCSByZW1vdGUgcmVnbm8uICBUaGlzIGNhbiBoYXBwZW4gZm9yIHJlZ25vcyBub3QKLSsJ CQkgaW4gdGhlIHRkZXNjLiAgKi8KLSsJCSAgICAgIGlmIChyZW1vdGVfcmVnbm8gPj0gMCkKLSsJ CQljb2xsZWN0LT5hZGRfcmVtb3RlX3JlZ2lzdGVyIChyZW1vdGVfcmVnbm8pOwotKwkJICAgIH0K LSAJCSAgYWN0aW9uX2V4cCA9IHN0cmNociAoYWN0aW9uX2V4cCwgJywnKTsJLyogbW9yZT8gKi8K LSAJCX0KLSAJICAgICAgZWxzZSBpZiAoMCA9PSBzdHJuY2FzZWNtcCAoIiRhcmciLCBhY3Rpb25f ZXhwLCA0KSkKLUBAIC0xMjg4LDI3ICsxMzQ4LDEwIEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0cnVj dCBjb21tYW5kX2xpbmUgKmFjdGlvbiwKLSAJCQkJCQkgICAgdGFyZ2V0X2dkYmFyY2ggKCksCi0g CQkJCQkJICAgIHRyYWNlX3N0cmluZyk7Ci0gCi0tCQkgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7 Ci0tCQkgIHJlcG9ydF9hZ2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKLSsJCSAgZmlu YWxpemVfdHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSAKLSAJCSAgLyogdGFrZSBj YXJlIG9mIHRoZSByZWdpc3RlcnMgKi8KLS0JCSAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAw KQotLQkJICAgIHsKLS0JCSAgICAgIGZvciAoaW50IG5keDEgPSAwOyBuZHgxIDwgYWV4cHItPnJl Z19tYXNrX2xlbjsgbmR4MSsrKQotLQkJCXsKLS0JCQkgIFFVSVQ7CS8qIGFsbG93IHVzZXIgdG8g YmFpbCBvdXQgd2l0aCBeQyAqLwotLQkJCSAgaWYgKGFleHByLT5yZWdfbWFza1tuZHgxXSAhPSAw KQotLQkJCSAgICB7Ci0tCQkJICAgICAgLyogYXNzdW1lIGNoYXJzIGhhdmUgOCBiaXRzICovCi0t CQkJICAgICAgZm9yIChpbnQgbmR4MiA9IDA7IG5keDIgPCA4OyBuZHgyKyspCi0tCQkJCWlmIChh ZXhwci0+cmVnX21hc2tbbmR4MV0gJiAoMSA8PCBuZHgyKSkKLS0JCQkJICB7Ci0tCQkJCSAgICAv KiBJdCdzIHVzZWQgLS0gcmVjb3JkIGl0LiAgKi8KLS0JCQkJICAgIGNvbGxlY3QtPmFkZF9yZWdp c3RlciAobmR4MSAqIDggKyBuZHgyKTsKLS0JCQkJICB9Ci0tCQkJICAgIH0KLS0JCQl9Ci0tCQkg ICAgfQotKwkJICBjb2xsZWN0LT5hZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotIAot IAkJICBjb2xsZWN0LT5hZGRfYWV4cHIgKHN0ZDo6bW92ZSAoYWV4cHIpKTsKLSAJCSAgYWN0aW9u X2V4cCA9IHN0cmNociAoYWN0aW9uX2V4cCwgJywnKTsJLyogbW9yZT8gKi8KLUBAIC0xMzQwLDcg KzEzODMsOCBAQCBlbmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24s Ci0gCQkJCQkgIG5hbWUpOwotIAkJCWlmIChpbmZvX3ZlcmJvc2UpCi0gCQkJICBwcmludGZfZmls dGVyZWQgKCJPUF9SRUdJU1RFUjogIik7Ci0tCQkJY29sbGVjdC0+YWRkX3JlZ2lzdGVyIChpKTsK LSsJCQljb2xsZWN0LT5hZGRfbG9jYWxfcmVnaXN0ZXIgKHRhcmdldF9nZGJhcmNoICgpLAotKwkJ CQkJCSAgICAgaSwgdGxvYy0+YWRkcmVzcyk7Ci0gCQkJYnJlYWs7Ci0gCQkgICAgICB9Ci0gCi1A QCAtMTM1Miw3ICsxMzk2LDggQEAgZW5jb2RlX2FjdGlvbnNfMSAoc3RydWN0IGNvbW1hbmRfbGlu ZSAqYWN0aW9uLAotIAkJICAgICAgY2hlY2tfdHlwZWRlZiAoZXhwLT5lbHRzWzFdLnR5cGUpOwot IAkJICAgICAgY29sbGVjdC0+YWRkX21lbXJhbmdlICh0YXJnZXRfZ2RiYXJjaCAoKSwKLSAJCQkJ CSAgICAgbWVtcmFuZ2VfYWJzb2x1dGUsIGFkZHIsCi0tCQkJCQkgICAgIFRZUEVfTEVOR1RIIChl eHAtPmVsdHNbMV0udHlwZSkpOwotKwkJCQkJICAgICBUWVBFX0xFTkdUSCAoZXhwLT5lbHRzWzFd LnR5cGUpLAotKwkJCQkJICAgICB0bG9jLT5hZGRyZXNzKTsKLSAJCSAgICAgIGNvbGxlY3QtPmFw cGVuZF9leHAgKGV4cC5nZXQgKCkpOwotIAkJICAgICAgYnJlYWs7Ci0gCi1AQCAtMTM3NiwyOCAr MTQyMSwxMCBAQCBlbmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24s Ci0gCQkJCQkJCQlleHAuZ2V0ICgpLAotIAkJCQkJCQkJdHJhY2Vfc3RyaW5nKTsKLSAKLS0JCSAg ICAgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7Ci0tCi0tCQkgICAgICByZXBvcnRfYWdlbnRfcmVx c19lcnJvcnMgKGFleHByLmdldCAoKSk7Ci0rCQkgICAgICBmaW5hbGl6ZV90cmFjZXBvaW50X2Fl eHByIChhZXhwci5nZXQgKCkpOwotIAotIAkJICAgICAgLyogVGFrZSBjYXJlIG9mIHRoZSByZWdp c3RlcnMuICAqLwotLQkJICAgICAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotLQkJCXsK LS0JCQkgIGZvciAoaW50IG5keDEgPSAwOyBuZHgxIDwgYWV4cHItPnJlZ19tYXNrX2xlbjsgbmR4 MSsrKQotLQkJCSAgICB7Ci0tCQkJICAgICAgUVVJVDsJLyogQWxsb3cgdXNlciB0byBiYWlsIG91 dCB3aXRoIF5DLiAgKi8KLS0JCQkgICAgICBpZiAoYWV4cHItPnJlZ19tYXNrW25keDFdICE9IDAp Ci0tCQkJCXsKLS0JCQkJICAvKiBBc3N1bWUgY2hhcnMgaGF2ZSA4IGJpdHMuICAqLwotLQkJCQkg IGZvciAoaW50IG5keDIgPSAwOyBuZHgyIDwgODsgbmR4MisrKQotLQkJCQkgICAgaWYgKGFleHBy LT5yZWdfbWFza1tuZHgxXSAmICgxIDw8IG5keDIpKQotLQkJCQkgICAgICB7Ci0tCQkJCQkvKiBJ dCdzIHVzZWQgLS0gcmVjb3JkIGl0LiAgKi8KLS0JCQkJCWNvbGxlY3QtPmFkZF9yZWdpc3RlciAo bmR4MSAqIDggKyBuZHgyKTsKLS0JCQkJICAgICAgfQotLQkJCQl9Ci0tCQkJICAgIH0KLS0JCQl9 Ci0rCQkgICAgICBjb2xsZWN0LT5hZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotIAot IAkJICAgICAgY29sbGVjdC0+YWRkX2FleHByIChzdGQ6Om1vdmUgKGFleHByKSk7Ci0gCQkgICAg ICBjb2xsZWN0LT5hcHBlbmRfZXhwIChleHAuZ2V0ICgpKTsKLUBAIC0xNDIyLDggKzE0NDksNyBA QCBlbmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24sCi0gCQkgIGFn ZW50X2V4cHJfdXAgYWV4cHIgPSBnZW5fZXZhbF9mb3JfZXhwciAodGxvYy0+YWRkcmVzcywKLSAJ CQkJCQkJICAgZXhwLmdldCAoKSk7Ci0gCi0tCQkgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7Ci0t CQkgIHJlcG9ydF9hZ2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKLSsJCSAgZmluYWxp emVfdHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSAKLSAJCSAgLyogRXZlbiB0aG91 Z2ggd2UncmUgbm90IG9mZmljaWFsbHkgY29sbGVjdGluZywgYWRkCi0gCQkgICAgIHRvIHRoZSBj b2xsZWN0IGxpc3QgYW55d2F5LiAgKi8KLWRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5oIGIv Z2RiL3RyYWNlcG9pbnQuaAotLS0tIGEvZ2RiL3RyYWNlcG9pbnQuaAotKysrIGIvZ2RiL3RyYWNl cG9pbnQuaAotQEAgLTI2Myw5ICsyNjMsMTQgQEAgcHVibGljOgotICAgdm9pZCBhZGRfYWV4cHIg KGFnZW50X2V4cHJfdXAgYWV4cHIpOwotIAotICAgdm9pZCBhZGRfcmVnaXN0ZXIgKHVuc2lnbmVk IGludCByZWdubyk7Ci0rICB2b2lkIGFkZF9yZW1vdGVfcmVnaXN0ZXIgKHVuc2lnbmVkIGludCBy ZWdubyk7Ci0rICB2b2lkIGFkZF9heF9yZWdpc3RlcnMgKHN0cnVjdCBhZ2VudF9leHByICphZXhw cik7Ci0rICB2b2lkIGFkZF9sb2NhbF9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs Ci0rCQkJICAgdW5zaWduZWQgaW50IHJlZ25vLAotKwkJCSAgIENPUkVfQUREUiBzY29wZSk7Ci0g ICB2b2lkIGFkZF9tZW1yYW5nZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0gCQkgICAgIGlu dCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLAotLQkJICAgICBVTE9OR0VTVCBsZW4pOwotKwkJ ICAgICBVTE9OR0VTVCBsZW4sIENPUkVfQUREUiBzY29wZSk7Ci0gICB2b2lkIGNvbGxlY3Rfc3lt Ym9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCi0gCQkgICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCi0gCQkgICAgICAgbG9uZyBmcmFtZV9yZWdubywgbG9uZyBmcmFtZV9vZmZzZXQsCgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTVvZjcucGF0Y2ggYi9nZGItcmhi ejExODc1ODEtcG93ZXI4LXJlZ3MtNW9mNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZWFjYTUyZi4uMDAwMDAwMAotLS0gYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3Mt NW9mNy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxNSArMCwwIEBACi1Gcm9tIEZFRE9SQV9Q QVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTc6NDYg KzAyMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy01b2Y3LnBhdGNoCi0K LTs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJ Qk0sIFJIIEJaIDExODc1ODEpLgotCi1jb21taXQgYTA0YjlkNjJhMjM0OTIzODI2ZTQzMWEyMDlk Mzk2YTYyODY2MTU0OAotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBlZHJvbWZj QGxpbnV4LmlibS5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0wMzAwCi0K LSAgICBWYXJpYWJsZSBzaXplIGZvciByZWdzIG1hc2sgaW4gY29sbGVjdGlvbiBsaXN0Ci0KLSAg ICBUaGlzIHBhdGNoIGNoYW5nZXMgY29sbGVjdGlvbl9saXN0IHRvIGFsbG93IGxhcmdlciByZWdp c3RlciBtYXNrcy4KLQotICAgIFRoZSBtYXNrIGlzIGNoYW5nZWQgZnJvbSBhbiBhcnJheSB0byBh IHZlY3RvciBhbmQgaXMgaW5pdGlhbGl6ZWQgdG8KLSAgICBob2xkIHRoZSBtYXhpbXVtIHBvc3Np YmxlIHJlbW90ZSByZWdpc3RlciBudW1iZXIuICBUaGUgc3RyaW5naWZ5Ci0gICAgbWV0aG9kIGlz IHVwZGF0ZWQgdG8gcmVzaXplIHRlbXBfYnVmIGlmIG5lZWRlZC4KLQotICAgIGdkYi9DaGFuZ2VM b2c6Ci0gICAgMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNA bGludXguaWJtLmNvbT4KLQotICAgICAgICAgICAgKiB0cmFjZXBvaW50LmggKGNvbGxlY3Rpb25f bGlzdCkgPG1fcmVnc19tYXNrPjogQ2hhbmdlIHR5cGUgdG8KLSAgICAgICAgICAgIHN0ZDo6dmVj dG9yPHVuc2lnbmVkIGNoYXI+LgotICAgICAgICAgICAgKiB0cmFjZXBvaW50LmMgKGNvbGxlY3Rp b25fbGlzdDo6Y29sbGVjdGlvbl9saXN0KTogUmVtb3ZlCi0gICAgICAgICAgICBtX3JlZ3NfbWFz ayBpbml0aWFsaXplciBmcm9tIGluaXRpYWxpemVyIGxpc3QuICBSZXNpemUKLSAgICAgICAgICAg IG1fcmVnc19tYXNrIHVzaW5nIHRoZSBsYXJnZXN0IHJlbW90ZSByZWdpc3RlciBudW1iZXIuCi0g ICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyKTogUmVtb3Zl IHNpemUgY2hlY2sgb24KLSAgICAgICAgICAgIG1fcmVnc19tYXNrLiAgVXNlIGF0IHRvIGFjY2Vz cyBlbGVtZW50LgotICAgICAgICAgICAgKGNvbGxlY3Rpb25fbGlzdDo6c3RyaW5naWZ5KTogQ2hh bmdlIHR5cGUgb2YgdGVtcF9idWYgdG8KLSAgICAgICAgICAgIGdkYjo6Y2hhcl92ZWN0b3IuICBV cGRhdGUgdXNlcyBvZiB0ZW1wX2J1Zi4gIFJlc2l6ZSBpZiBuZWVkZWQgdG8KLSAgICAgICAgICAg IHN0cmluZ2lmeSB0aGUgcmVnaXN0ZXIgbWFzay4gIFVzZSBwYWNrX2hleF9ieXRlIGZvciB0aGUg cmVnaXN0ZXIKLSAgICAgICAgICAgIG1hc2suCi0KLSsyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28g ZGUgQ2FydmFsaG8gIDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgotKwotKwkqIHRyYWNlcG9pbnQu aCAoY29sbGVjdGlvbl9saXN0KSA8bV9yZWdzX21hc2s+OiBDaGFuZ2UgdHlwZSB0bwotKwlzdGQ6 OnZlY3Rvcjx1bnNpZ25lZCBjaGFyPi4KLSsJKiB0cmFjZXBvaW50LmMgKGNvbGxlY3Rpb25fbGlz dDo6Y29sbGVjdGlvbl9saXN0KTogUmVtb3ZlCi0rCW1fcmVnc19tYXNrIGluaXRpYWxpemVyIGZy b20gaW5pdGlhbGl6ZXIgbGlzdC4gIFJlc2l6ZQotKwltX3JlZ3NfbWFzayB1c2luZyB0aGUgbGFy Z2VzdCByZW1vdGUgcmVnaXN0ZXIgbnVtYmVyLgotKwkoY29sbGVjdGlvbl9saXN0OjphZGRfcmVt b3RlX3JlZ2lzdGVyKTogUmVtb3ZlIHNpemUgY2hlY2sgb24KLSsJbV9yZWdzX21hc2suICBVc2Ug YXQgdG8gYWNjZXNzIGVsZW1lbnQuCi0rCShjb2xsZWN0aW9uX2xpc3Q6OnN0cmluZ2lmeSk6IENo YW5nZSB0eXBlIG9mIHRlbXBfYnVmIHRvCi0rCWdkYjo6Y2hhcl92ZWN0b3IuICBVcGRhdGUgdXNl cyBvZiB0ZW1wX2J1Zi4gIFJlc2l6ZSBpZiBuZWVkZWQgdG8KLSsJc3RyaW5naWZ5IHRoZSByZWdp c3RlciBtYXNrLiAgVXNlIHBhY2tfaGV4X2J5dGUgZm9yIHRoZSByZWdpc3RlcgotKwltYXNrLgot KwotIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4 LmlibS5jb20+Ci0KLSAJKiB0cmFjZXBvaW50LmggKGNsYXNzIGNvbGxlY3Rpb25fbGlzdCkgPGFk ZF9yZWdpc3Rlcj46IFJlbW92ZS4KLQotZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9n ZGIvdHJhY2Vwb2ludC5jCi0tLS0gYS9nZGIvdHJhY2Vwb2ludC5jCi0rKysgYi9nZGIvdHJhY2Vw b2ludC5jCi1AQCAtODIyLDEwICs4MjIsOCBAQCBjb2xsZWN0aW9uX2xpc3Q6OmFkZF9yZW1vdGVf cmVnaXN0ZXIgKHVuc2lnbmVkIGludCByZWdubykKLSB7Ci0gICBpZiAoaW5mb192ZXJib3NlKQot ICAgICBwcmludGZfZmlsdGVyZWQgKCJjb2xsZWN0IHJlZ2lzdGVyICVkXG4iLCByZWdubyk7Ci0t ICBpZiAocmVnbm8gPj0gKDggKiBzaXplb2YgKG1fcmVnc19tYXNrKSkpCi0tICAgIGVycm9yIChf KCJJbnRlcm5hbDogcmVnaXN0ZXIgbnVtYmVyICVkIHRvbyBsYXJnZSBmb3IgdHJhY2Vwb2ludCIp LAotLQkgICByZWdubyk7Ci0tICBtX3JlZ3NfbWFza1tyZWdubyAvIDhdIHw9IDEgPDwgKHJlZ25v ICUgOCk7Ci0rCi0rICBtX3JlZ3NfbWFzay5hdCAocmVnbm8gLyA4KSB8PSAxIDw8IChyZWdubyAl IDgpOwotIH0KLSAKLSAvKiBBZGQgYWxsIHRoZSByZWdpc3RlcnMgZnJvbSB0aGUgbWFzayBpbiBB RVhQUiB0byB0aGUgbWFzayBpbiB0aGUKLUBAIC0xMTM2LDkgKzExMzQsMjAgQEAgY29sbGVjdGlv bl9saXN0OjphZGRfc3RhdGljX3RyYWNlX2RhdGEgKCkKLSB9Ci0gCi0gY29sbGVjdGlvbl9saXN0 Ojpjb2xsZWN0aW9uX2xpc3QgKCkKLS0gIDogbV9yZWdzX21hc2sgKCksCi0tICAgIG1fc3RyYWNl X2RhdGEgKGZhbHNlKQotKyAgOiBtX3N0cmFjZV9kYXRhIChmYWxzZSkKLSB7Ci0rICBpbnQgbWF4 X3JlbW90ZV9yZWdubyA9IDA7Ci0rICBmb3IgKGludCBpID0gMDsgaSA8IGdkYmFyY2hfbnVtX3Jl Z3MgKHRhcmdldF9nZGJhcmNoICgpKTsgaSsrKQotKyAgICB7Ci0rICAgICAgaW50IHJlbW90ZV9y ZWdubyA9IChnZGJhcmNoX3JlbW90ZV9yZWdpc3Rlcl9udW1iZXIKLSsJCQkgICh0YXJnZXRfZ2Ri YXJjaCAoKSwgaSkpOwotKwotKyAgICAgIGlmIChyZW1vdGVfcmVnbm8gPj0gMCAmJiByZW1vdGVf cmVnbm8gPiBtYXhfcmVtb3RlX3JlZ25vKQotKwltYXhfcmVtb3RlX3JlZ25vID0gcmVtb3RlX3Jl Z25vOwotKyAgICB9Ci0rCi0rICBtX3JlZ3NfbWFzay5yZXNpemUgKChtYXhfcmVtb3RlX3JlZ25v IC8gOCkgKyAxKTsKLSsKLSAgIG1fbWVtcmFuZ2VzLnJlc2VydmUgKDEyOCk7Ci0gICBtX2FleHBy cy5yZXNlcnZlICgxMjgpOwotIH0KLUBAIC0xMTQ4LDcgKzExNTcsOCBAQCBjb2xsZWN0aW9uX2xp c3Q6OmNvbGxlY3Rpb25fbGlzdCAoKQotIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPgotIGNvbGxl Y3Rpb25fbGlzdDo6c3RyaW5naWZ5ICgpCi0gewotLSAgY2hhciB0ZW1wX2J1ZlsyMDQ4XTsKLSsg IGdkYjo6Y2hhcl92ZWN0b3IgdGVtcF9idWYgKDIwNDgpOwotKwotICAgaW50IGNvdW50OwotICAg Y2hhciAqZW5kOwotICAgbG9uZyBpOwotQEAgLTExNTgsMzUgKzExNjgsNDUgQEAgY29sbGVjdGlv bl9saXN0OjpzdHJpbmdpZnkgKCkKLSAgICAgewotICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCi0g CXByaW50Zl9maWx0ZXJlZCAoIlxuQ29sbGVjdGluZyBzdGF0aWMgdHJhY2UgZGF0YVxuIik7Ci0t ICAgICAgZW5kID0gdGVtcF9idWY7Ci0rICAgICAgZW5kID0gdGVtcF9idWYuZGF0YSAoKTsKLSAg ICAgICAqZW5kKysgPSAnTCc7Ci0tICAgICAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1 ZiwgZW5kIC0gdGVtcF9idWYpOwotKyAgICAgIHN0cl9saXN0LmVtcGxhY2VfYmFjayAodGVtcF9i dWYuZGF0YSAoKSwgZW5kIC0gdGVtcF9idWYuZGF0YSAoKSk7Ci0gICAgIH0KLSAKLS0gIGZvciAo aSA9IHNpemVvZiAobV9yZWdzX21hc2spIC0gMTsgaSA+IDA7IGktLSkKLSsgIGZvciAoaSA9IG1f cmVnc19tYXNrLnNpemUgKCkgLSAxOyBpID4gMDsgaS0tKQotICAgICBpZiAobV9yZWdzX21hc2tb aV0gIT0gMCkgICAgLyogU2tpcCBsZWFkaW5nIHplcm9lcyBpbiByZWdzX21hc2suICAqLwotICAg ICAgIGJyZWFrOwotICAgaWYgKG1fcmVnc19tYXNrW2ldICE9IDApCS8qIFByZXBhcmUgdG8gc2Vu ZCByZWdzX21hc2sgdG8gdGhlIHN0dWIuICAqLwotICAgICB7Ci0gICAgICAgaWYgKGluZm9fdmVy Ym9zZSkKLSAJcHJpbnRmX2ZpbHRlcmVkICgiXG5Db2xsZWN0aW5nIHJlZ2lzdGVycyAobWFzayk6 IDB4Iik7Ci0tICAgICAgZW5kID0gdGVtcF9idWY7Ci0rCi0rICAgICAgLyogT25lIGNoYXIgZm9y ICdSJywgb25lIGZvciB0aGUgbnVsbCB0ZXJtaW5hdG9yIGFuZCB0d28gcGVyCi0rCSBtYXNrIGJ5 dGUuICAqLwotKyAgICAgIHN0ZDo6c2l6ZV90IG5ld19zaXplID0gKGkgKyAxKSAqIDIgKyAyOwot KyAgICAgIGlmIChuZXdfc2l6ZSA+IHRlbXBfYnVmLnNpemUgKCkpCi0rCXRlbXBfYnVmLnJlc2l6 ZSAobmV3X3NpemUpOwotKwotKyAgICAgIGVuZCA9IHRlbXBfYnVmLmRhdGEgKCk7Ci0gICAgICAg KmVuZCsrID0gJ1InOwotICAgICAgIGZvciAoOyBpID49IDA7IGktLSkKLSAJewotIAkgIFFVSVQ7 CQkJLyogQWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KLSAJICBpZiAoaW5mb192 ZXJib3NlKQotIAkgICAgcHJpbnRmX2ZpbHRlcmVkICgiJTAyWCIsIG1fcmVnc19tYXNrW2ldKTsK LS0JICBzcHJpbnRmIChlbmQsICIlMDJYIiwgbV9yZWdzX21hc2tbaV0pOwotLQkgIGVuZCArPSAy OwotKwotKwkgIGVuZCA9IHBhY2tfaGV4X2J5dGUgKGVuZCwgbV9yZWdzX21hc2tbaV0pOwotIAl9 Ci0tICAgICAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1Zik7Ci0rICAgICAgKmVuZCA9 ICdcMCc7Ci0rCi0rICAgICAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1Zi5kYXRhICgp KTsKLSAgICAgfQotICAgaWYgKGluZm9fdmVyYm9zZSkKLSAgICAgcHJpbnRmX2ZpbHRlcmVkICgi XG4iKTsKLSAgIGlmICghbV9tZW1yYW5nZXMuZW1wdHkgKCkgJiYgaW5mb192ZXJib3NlKQotICAg ICBwcmludGZfZmlsdGVyZWQgKCJDb2xsZWN0aW5nIG1lbXJhbmdlczogXG4iKTsKLS0gIGZvciAo aSA9IDAsIGNvdW50ID0gMCwgZW5kID0gdGVtcF9idWY7IGkgPCBtX21lbXJhbmdlcy5zaXplICgp OyBpKyspCi0rICBmb3IgKGkgPSAwLCBjb3VudCA9IDAsIGVuZCA9IHRlbXBfYnVmLmRhdGEgKCk7 Ci0rICAgICAgIGkgPCBtX21lbXJhbmdlcy5zaXplICgpOyBpKyspCi0gICAgIHsKLSAgICAgICBR VUlUOwkJCS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCi0gICAgICAgaWYg KGluZm9fdmVyYm9zZSkKLUBAIC0xMjAwLDkgKzEyMjAsOSBAQCBjb2xsZWN0aW9uX2xpc3Q6OnN0 cmluZ2lmeSAoKQotIAl9Ci0gICAgICAgaWYgKGNvdW50ICsgMjcgPiBNQVhfQUdFTlRfRVhQUl9M RU4pCi0gCXsKLS0JICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmLCBjb3VudCk7Ci0r CSAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1Zi5kYXRhICgpLCBjb3VudCk7Ci0gCSAg Y291bnQgPSAwOwotLQkgIGVuZCA9IHRlbXBfYnVmOwotKwkgIGVuZCA9IHRlbXBfYnVmLmRhdGEg KCk7Ci0gCX0KLSAKLSAgICAgICB7Ci1AQCAtMTIyMiw3ICsxMjQyLDcgQEAgY29sbGVjdGlvbl9s aXN0OjpzdHJpbmdpZnkgKCkKLSAgICAgICB9Ci0gCi0gICAgICAgY291bnQgKz0gc3RybGVuIChl bmQpOwotLSAgICAgIGVuZCA9IHRlbXBfYnVmICsgY291bnQ7Ci0rICAgICAgZW5kID0gdGVtcF9i dWYuZGF0YSAoKSArIGNvdW50OwotICAgICB9Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwgbV9hZXhw cnMuc2l6ZSAoKTsgaSsrKQotQEAgLTEyMzAsOSArMTI1MCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6 c3RyaW5naWZ5ICgpCi0gICAgICAgUVVJVDsJCQkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdp dGggXkMuICAqLwotICAgICAgIGlmICgoY291bnQgKyAxMCArIDIgKiBtX2FleHByc1tpXS0+bGVu KSA+IE1BWF9BR0VOVF9FWFBSX0xFTikKLSAJewotLQkgIHN0cl9saXN0LmVtcGxhY2VfYmFjayAo dGVtcF9idWYsIGNvdW50KTsKLSsJICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmLmRh dGEgKCksIGNvdW50KTsKLSAJICBjb3VudCA9IDA7Ci0tCSAgZW5kID0gdGVtcF9idWY7Ci0rCSAg ZW5kID0gdGVtcF9idWYuZGF0YSAoKTsKLSAJfQotICAgICAgIHNwcmludGYgKGVuZCwgIlglMDhY LCIsIG1fYWV4cHJzW2ldLT5sZW4pOwotICAgICAgIGVuZCArPSAxMDsJCS8qICdYJyArIDggaGV4 IGRpZ2l0cyArICcsJyAqLwotQEAgLTEyNDQsOSArMTI2NCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6 c3RyaW5naWZ5ICgpCi0gCi0gICBpZiAoY291bnQgIT0gMCkKLSAgICAgewotLSAgICAgIHN0cl9s aXN0LmVtcGxhY2VfYmFjayAodGVtcF9idWYsIGNvdW50KTsKLSsgICAgICBzdHJfbGlzdC5lbXBs YWNlX2JhY2sgKHRlbXBfYnVmLmRhdGEgKCksIGNvdW50KTsKLSAgICAgICBjb3VudCA9IDA7Ci0t ICAgICAgZW5kID0gdGVtcF9idWY7Ci0rICAgICAgZW5kID0gdGVtcF9idWYuZGF0YSAoKTsKLSAg ICAgfQotIAotICAgcmV0dXJuIHN0cl9saXN0OwotZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50 LmggYi9nZGIvdHJhY2Vwb2ludC5oCi0tLS0gYS9nZGIvdHJhY2Vwb2ludC5oCi0rKysgYi9nZGIv dHJhY2Vwb2ludC5oCi1AQCAtMjkzLDggKzI5Myw5IEBAIHB1YmxpYzoKLSAgIHsgcmV0dXJuIG1f Y29tcHV0ZWQ7IH0KLSAKLSBwcml2YXRlOgotLSAgLyogcm9vbSBmb3IgdXAgdG8gMjU2IHJlZ3Mg Ki8KLS0gIHVuc2lnbmVkIGNoYXIgbV9yZWdzX21hc2tbMzJdOwotKyAgLyogV2UgbmVlZCB0aGUg YWxsb2NhdG9yIHplcm8taW5pdGlhbGl6ZSB0aGUgbWFzaywgc28gd2UgZG9uJ3QgdXNlCi0rICAg ICBnZGI6OmJ5dGVfdmVjdG9yLiAgKi8KLSsgIHN0ZDo6dmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1f cmVnc19tYXNrOwotIAotICAgc3RkOjp2ZWN0b3I8bWVtcmFuZ2U+IG1fbWVtcmFuZ2VzOwotIAoK ZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy02b2Y3LnBhdGNoIGIvZ2Ri LXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTZvZjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGIwYTVlMWYuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1y ZWdzLTZvZjcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODcgKzAsMCBAQAotRnJvbSBGRURP UkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA5IEF1ZyAyMDE4IDE3OjE4 OjE1ICswMjAwCi1TdWJqZWN0OiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNm9mNy5wYXRj aAotCi07OyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4IHJlZ2lzdGVy cyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KLQotY29tbWl0IDI5Njk1NmJlZmVmMzcxMWVkNDU4Yzdj YmE4MDQxZmRlMGRhYjljNTAKLUF1dGhvcjogUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvIDxwZWRy b21mY0BsaW51eC5pYm0uY29tPgotRGF0ZTogICBNb24gQXVnIDYgMTY6MjQ6NTUgMjAxOCAtMDMw MAotCi0gICAgQWxsb3cgbGFyZ2VyIHJlZ2Jsb2NrIHNpemVzIHdoZW4gc2F2aW5nIHRyYWNlZmls ZXMKLQotICAgIFRoZSB0cmFjZWZpbGUuYzp0cmFjZV9zYXZlIGZ1bmN0aW9uIGFzc3VtZXMgdHJh Y2VfcmVnYmxvY2tfc2l6ZSB3b24ndAotICAgIGJlIGxhcmdlciB0aGFuIHRoZSBNQVhfVFJBQ0Vf VVBMT0FEIGNvbnN0YW50LCB1c2VkIHRvIHNpemUgdGhlIGJ1ZmZlcgotICAgIHdoaWNoIGhvbGRz IHRyYWNlIGRhdGEuICBUaGlzIGNhbiBjYXVzZSBidWZmZXIgb3ZlcnJ1bnMgd2hlbiB0aGlzIGlz Ci0gICAgbm90IHRoZSBjYXNlLiAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoaXMgZnVuY3Rpb24gc28g dGhhdCB0aGUgbGFyZ2VyCi0gICAgc2l6ZSBpcyB1c2VkIHRvIHNpemUgdGhlIGJ1ZmZlci4KLQot ICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZh bGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KLQotICAgICAgICAgICAgKiB0cmFjZWZpbGUu YzogSW5jbHVkZSBjb21tb24vYnl0ZS12ZWN0b3IuaC4KLSAgICAgICAgICAgICh0cmFjZV9zYXZl KTogQ2hhbmdlIHR5cGUgb2YgYnVmIHRvIGdkYjo6Ynl0ZV92ZWN0b3IuICBJbml0aWFsaXplCi0g ICAgICAgICAgICB3aXRoIHRyYWNlX3JlZ2Jsb2NrX3NpemUgaWYgbmVlZGVkLiAgVXBkYXRlIHVz ZXMgb2YgYnVmLgotCi0rMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVk cm9tZmNAbGludXguaWJtLmNvbT4KLSsKLSsJKiB0cmFjZWZpbGUuYzogSW5jbHVkZSBjb21tb24v Ynl0ZS12ZWN0b3IuaC4KLSsJKHRyYWNlX3NhdmUpOiBDaGFuZ2UgdHlwZSBvZiBidWYgdG8gZ2Ri OjpieXRlX3ZlY3Rvci4gIEluaXRpYWxpemUKLSsJd2l0aCB0cmFjZV9yZWdibG9ja19zaXplIGlm IG5lZWRlZC4gIFVwZGF0ZSB1c2VzIG9mIGJ1Zi4KLSsKLSAyMDE4LTA4LTA2ICBQZWRybyBGcmFu Y28gZGUgQ2FydmFsaG8gIDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgotCi0gCSogdHJhY2Vwb2lu dC5oIChjb2xsZWN0aW9uX2xpc3QpIDxtX3JlZ3NfbWFzaz46IENoYW5nZSB0eXBlIHRvCi0KLWRp ZmYgLS1naXQgYS9nZGIvdHJhY2VmaWxlLmMgYi9nZGIvdHJhY2VmaWxlLmMKLS0tLSBhL2dkYi90 cmFjZWZpbGUuYwotKysrIGIvZ2RiL3RyYWNlZmlsZS5jCi1AQCAtMjIsNiArMjIsNyBAQAotICNp bmNsdWRlICJjdGYuaCIKLSAjaW5jbHVkZSAiZXhlYy5oIgotICNpbmNsdWRlICJyZWdjYWNoZS5o IgotKyNpbmNsdWRlICJjb21tb24vYnl0ZS12ZWN0b3IuaCIKLSAKLSAvKiBIZWxwZXIgbWFjcm9z LiAgKi8KLSAKLUBAIC02Nyw3ICs2OCw3IEBAIHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVu YW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKLSAKLSAgIFVMT05HRVNUIG9m ZnNldCA9IDA7Ci0gI2RlZmluZSBNQVhfVFJBQ0VfVVBMT0FEIDIwMDAKLS0gIGdkYl9ieXRlIGJ1 ZltNQVhfVFJBQ0VfVVBMT0FEXTsKLSsgIGdkYjo6Ynl0ZV92ZWN0b3IgYnVmIChzdGQ6Om1heCAo TUFYX1RSQUNFX1VQTE9BRCwgdHJhY2VfcmVnYmxvY2tfc2l6ZSkpOwotICAgZW51bSBiZmRfZW5k aWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKHRhcmdldF9nZGJhcmNoICgpKTsK LSAKLSAgIC8qIElmIHRoZSB0YXJnZXQgaXMgdG8gc2F2ZSB0aGUgZGF0YSB0byBhIGZpbGUgb24g aXRzIG93biwgdGhlbiBqdXN0Ci1AQCAtMTQ0LDcgKzE0NSw3IEBAIHRyYWNlX3NhdmUgKGNvbnN0 IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKLSAJICAv KiBXZSBhc2sgZm9yIGJpZyBibG9ja3MsIGluIHRoZSBob3BlcyBvZiBlZmZpY2llbmN5LCBidXQK LSAJICAgICB3aWxsIHRha2UgbGVzcyBpZiB0aGUgdGFyZ2V0IGhhcyBwYWNrZXQgc2l6ZSBsaW1p dGF0aW9ucwotIAkgICAgIG9yIHNvbWUgc3VjaC4gICovCi0tCSAgZ290dGVuID0gdGFyZ2V0X2dl dF9yYXdfdHJhY2VfZGF0YSAoYnVmLCBvZmZzZXQsCi0rCSAgZ290dGVuID0gdGFyZ2V0X2dldF9y YXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksIG9mZnNldCwKLSAJCQkJCSAgICAgIE1BWF9UUkFD RV9VUExPQUQpOwotIAkgIGlmIChnb3R0ZW4gPCAwKQotIAkgICAgZXJyb3IgKF8oIkZhaWx1cmUg dG8gZ2V0IHJlcXVlc3RlZCB0cmFjZSBidWZmZXIgZGF0YSIpKTsKLUBAIC0xNTIsNyArMTUzLDcg QEAgdHJhY2Vfc2F2ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dy aXRlciAqd3JpdGVyLAotIAkgIGlmIChnb3R0ZW4gPT0gMCkKLSAJICAgIGJyZWFrOwotIAotLQkg IHdyaXRlci0+b3BzLT53cml0ZV90cmFjZV9idWZmZXIgKHdyaXRlciwgYnVmLCBnb3R0ZW4pOwot KwkgIHdyaXRlci0+b3BzLT53cml0ZV90cmFjZV9idWZmZXIgKHdyaXRlciwgYnVmLmRhdGEgKCks IGdvdHRlbik7Ci0gCi0gCSAgb2Zmc2V0ICs9IGdvdHRlbjsKLSAJfQotQEAgLTE2Myw3ICsxNjQs NyBAQCB0cmFjZV9zYXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVf d3JpdGVyICp3cml0ZXIsCi0gCSAgLyogUGFyc2UgdGhlIHRyYWNlIGJ1ZmZlcnMgYWNjb3JkaW5n IHRvIGhvdyBkYXRhIGFyZSBzdG9yZWQKLSAJICAgICBpbiB0cmFjZSBidWZmZXIgaW4gR0RCc2Vy dmVyLiAgKi8KLSAKLS0JICBnb3R0ZW4gPSB0YXJnZXRfZ2V0X3Jhd190cmFjZV9kYXRhIChidWYs IG9mZnNldCwgNik7Ci0rCSAgZ290dGVuID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVm LmRhdGEgKCksIG9mZnNldCwgNik7Ci0gCi0gCSAgaWYgKGdvdHRlbiA9PSAwKQotIAkgICAgYnJl YWs7Ci1AQCAtMTcxLDEwICsxNzIsMTAgQEAgdHJhY2Vfc2F2ZSAoY29uc3QgY2hhciAqZmlsZW5h bWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3JpdGVyLAotIAkgIC8qIFJlYWQgdGhlIGZp cnN0IHNpeCBieXRlcyBpbiwgd2hpY2ggaXMgdGhlIHRyYWNlcG9pbnQKLSAJICAgICBudW1iZXIg YW5kIHRyYWNlIGZyYW1lIHNpemUuICAqLwotIAkgIHRwX251bSA9ICh1aW50MTZfdCkKLS0JICAg IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoJmJ1ZlswXSwgMiwgYnl0ZV9vcmRlcik7Ci0rCSAg ICBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKCYoKGJ1Zi5kYXRhICgpKVswXSksIDIsIGJ5dGVf b3JkZXIpOwotIAotIAkgIHRmX3NpemUgPSAodWludDMyX3QpCi0tCSAgICBleHRyYWN0X3Vuc2ln bmVkX2ludGVnZXIgKCZidWZbMl0sIDQsIGJ5dGVfb3JkZXIpOwotKwkgICAgZXh0cmFjdF91bnNp Z25lZF9pbnRlZ2VyICgmKChidWYuZGF0YSAoKSlbMl0pLCA0LCBieXRlX29yZGVyKTsKLSAKLSAJ ICB3cml0ZXItPm9wcy0+ZnJhbWVfb3BzLT5zdGFydCAod3JpdGVyLCB0cF9udW0pOwotIAkgIGdv dHRlbiA9IDY7Ci1AQCAtMTkyLDcgKzE5Myw4IEBAIHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZp bGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKLSAJCSAgLyogV2UnbGwg ZmV0Y2ggb25lIGJsb2NrIGVhY2ggdGltZSwgaW4gb3JkZXIgdG8KLSAJCSAgICAgaGFuZGxlIHRo ZSBleHRyZW1lbHkgbGFyZ2UgJ00nIGJsb2NrLiAgV2UgZmlyc3QKLSAJCSAgICAgZmV0Y2ggb25l IGJ5dGUgdG8gZ2V0IHRoZSB0eXBlIG9mIHRoZSBibG9jay4gICovCi0tCQkgIGdvdHRlbiA9IHRh cmdldF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Ziwgb2Zmc2V0LCAxKTsKLSsJCSAgZ290dGVuID0g dGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksCi0rCQkJCQkJICAgICAgb2Zm c2V0LCAxKTsKLSAJCSAgaWYgKGdvdHRlbiA8IDEpCi0gCQkgICAgZXJyb3IgKF8oIkZhaWx1cmUg dG8gZ2V0IHJlcXVlc3RlZCB0cmFjZSBidWZmZXIgZGF0YSIpKTsKLSAKLUBAIC0yMDUsMTMgKzIw NywxMyBAQCB0cmFjZV9zYXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2Zp bGVfd3JpdGVyICp3cml0ZXIsCi0gCQkgICAgewotIAkJICAgIGNhc2UgJ1InOgotIAkJICAgICAg Z290dGVuCi0tCQkJPSB0YXJnZXRfZ2V0X3Jhd190cmFjZV9kYXRhIChidWYsIG9mZnNldCwKLSsJ CQk9IHRhcmdldF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Zi5kYXRhICgpLCBvZmZzZXQsCi0gCQkJ CQkJICAgICB0cmFjZV9yZWdibG9ja19zaXplKTsKLSAJCSAgICAgIGlmIChnb3R0ZW4gPCB0cmFj ZV9yZWdibG9ja19zaXplKQotIAkJCWVycm9yIChfKCJGYWlsdXJlIHRvIGdldCByZXF1ZXN0ZWQg dHJhY2UiCi0gCQkJCSAiIGJ1ZmZlciBkYXRhIikpOwotIAotLQkJICAgICAgVFJBQ0VfV1JJVEVf Ul9CTE9DSyAod3JpdGVyLCBidWYsCi0rCQkgICAgICBUUkFDRV9XUklURV9SX0JMT0NLICh3cml0 ZXIsIGJ1Zi5kYXRhICgpLAotIAkJCQkJICAgdHJhY2VfcmVnYmxvY2tfc2l6ZSk7Ci0gCQkgICAg ICBicmVhazsKLSAJCSAgICBjYXNlICdNJzoKLUBAIC0yMjEsNyArMjIzLDggQEAgdHJhY2Vfc2F2 ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3JpdGVy LAotIAkJCUxPTkdFU1QgdDsKLSAJCQlpbnQgajsKLSAKLS0JCQl0ID0gdGFyZ2V0X2dldF9yYXdf dHJhY2VfZGF0YSAoYnVmLG9mZnNldCwgMTApOwotKwkJCXQgPSB0YXJnZXRfZ2V0X3Jhd190cmFj ZV9kYXRhIChidWYuZGF0YSAoKSwKLSsJCQkJCQkgICAgICAgb2Zmc2V0LCAxMCk7Ci0gCQkJaWYg KHQgPCAxMCkKLSAJCQkgIGVycm9yIChfKCJGYWlsdXJlIHRvIGdldCByZXF1ZXN0ZWQgdHJhY2Ui Ci0gCQkJCSAgICIgYnVmZmVyIGRhdGEiKSk7Ci1AQCAtMjMxLDEwICsyMzQsMTAgQEAgdHJhY2Vf c2F2ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3Jp dGVyLAotIAotIAkJCWdvdHRlbiA9IDA7Ci0gCQkJYWRkciA9IChVTE9OR0VTVCkKLS0JCQkgIGV4 dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmLCA4LAotKwkJCSAgZXh0cmFjdF91bnNpZ25lZF9p bnRlZ2VyIChidWYuZGF0YSAoKSwgOCwKLSAJCQkJCQkgICAgYnl0ZV9vcmRlcik7Ci0gCQkJbWxl biA9ICh1bnNpZ25lZCBzaG9ydCkKLS0JCQkgIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoJmJ1 Zls4XSwgMiwKLSsJCQkgIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoJigoYnVmLmRhdGEgKCkp WzhdKSwgMiwKLSAJCQkJCQkgICAgYnl0ZV9vcmRlcik7Ci0gCi0gCQkJVFJBQ0VfV1JJVEVfTV9C TE9DS19IRUFERVIgKHdyaXRlciwgYWRkciwKLUBAIC0yNTIsMTQgKzI1NSwxNSBAQCB0cmFjZV9z YXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3cml0 ZXIsCi0gCQkJICAgIGVsc2UKLSAJCQkgICAgICByZWFkX2xlbmd0aCA9IG1sZW4gLSBqOwotIAot LQkJCSAgICB0ID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLAotKwkJCSAgICB0ID0g dGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksCi0gCQkJCQkJCSAgIG9mZnNl dCArIGosCi0gCQkJCQkJCSAgIHJlYWRfbGVuZ3RoKTsKLSAJCQkgICAgaWYgKHQgPCByZWFkX2xl bmd0aCkKLSAJCQkgICAgICBlcnJvciAoXygiRmFpbHVyZSB0byBnZXQgcmVxdWVzdGVkIgotIAkJ CQkgICAgICAgIiB0cmFjZSBidWZmZXIgZGF0YSIpKTsKLSAKLS0JCQkgICAgVFJBQ0VfV1JJVEVf TV9CTE9DS19NRU1PUlkgKHdyaXRlciwgYnVmLAotKwkJCSAgICBUUkFDRV9XUklURV9NX0JMT0NL X01FTU9SWSAod3JpdGVyLAotKwkJCQkJCQlidWYuZGF0YSAoKSwKLSAJCQkJCQkJcmVhZF9sZW5n dGgpOwotIAotIAkJCSAgICBqICs9IHJlYWRfbGVuZ3RoOwotQEAgLTI3NCwxOCArMjc4LDE4IEBA IHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0 ZXIgKndyaXRlciwKLSAJCQlMT05HRVNUIHZhbDsKLSAKLSAJCQlnb3R0ZW4KLS0JCQkgID0gdGFy Z2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLCBvZmZzZXQsCi0tCQkJCQkJICAgICAgIDEyKTsK LSsJCQkgID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksCi0rCQkJCQkJ ICAgICAgIG9mZnNldCwgMTIpOwotIAkJCWlmIChnb3R0ZW4gPCAxMikKLSAJCQkgIGVycm9yIChf KCJGYWlsdXJlIHRvIGdldCByZXF1ZXN0ZWQiCi0gCQkJCSAgICIgdHJhY2UgYnVmZmVyIGRhdGEi KSk7Ci0gCi0tCQkJdm51bSAgPSAoaW50KSBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyIChidWYsCi0r CQkJdm51bSAgPSAoaW50KSBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyIChidWYuZGF0YSAoKSwKLSAJ CQkJCQkJICAgICAgNCwKLSAJCQkJCQkJICAgICAgYnl0ZV9vcmRlcik7Ci0gCQkJdmFsCi0tCQkJ ICA9IGV4dHJhY3Rfc2lnbmVkX2ludGVnZXIgKCZidWZbNF0sIDgsCi0tCQkJCQkJICAgIGJ5dGVf b3JkZXIpOwotKwkJCSAgPSBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyICgmKChidWYuZGF0YSAoKSlb NF0pLAotKwkJCQkJCSAgICA4LCBieXRlX29yZGVyKTsKLSAKLSAJCQlUUkFDRV9XUklURV9WX0JM T0NLICh3cml0ZXIsIHZudW0sIHZhbCk7Ci0gCQkgICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoxMTg3NTgxLXBvd2VyOC1yZWdzLTdvZjcucGF0Y2ggYi9nZGItcmhiejExODc1ODEtcG93ZXI4 LXJlZ3MtN29mNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU4MjY3My4u MDAwMDAwMAotLS0gYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtN29mNy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDEyOSArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTg6NDkgKzAyMDAKLVN1YmplY3Q6 IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy03b2Y3LnBhdGNoCi0KLTs7IEFkZCBHREIgc3Vw cG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1 ODEpLgotCi1jb21taXQgYTdmMjVhODRmNGNjMWRmNTI0OGM0NjM0NjMzN2YxOWEyYTY2YWY1YQot QXV0aG9yOiBTaW1vbiBNYXJjaGkgPHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+Ci1EYXRlOiAg IE1vbiBBdWcgNiAxNjo1NDo0NyAyMDE4IC0wNDAwCi0KLSAgICBGaXggY29tcGlsYXRpb24gZmFp bHVyZSBpbiByZW1vdGUuYwotCi0gICAgQSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlZCBhIGZldyBv ZiB0aGVzZToKLQotICAgIC9ob21lL2VtYWlzaW4vc3JjL2JpbnV0aWxzLWdkYi9nZGIvcmVtb3Rl LmM6MTI4NjI6MTk6IGVycm9yOiBmb3JtYXQgbm90IGEgc3RyaW5nIGxpdGVyYWwgYW5kIG5vIGZv cm1hdCBhcmd1bWVudHMgWy1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5XQotICAgICAgICAgZXJyb3Ig KGVycl9tc2cpOwotICAgICAgICAgICAgICAgICAgICAgICBeCi0KLSAgICBGaXggdGhlbSBieSBy ZXBsYWNpbmcgdGhlIGNhbGwgdG8gZXJyb3Igd2l0aAotCi0gICAgICBlcnJvciAoIiVzIiwgZXJy X21zZyk7Ci0KLSAgICBnZGIvQ2hhbmdlTG9nOgotCi0gICAgICAgICAgICAqIHJlbW90ZS5jIChy ZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50KTogRml4IGZvcm1hdAotICAgICAgICAg ICAgc3RyaW5nIGVycm9ycy4KLQotKzIwMTgtMDgtMDYgIFNpbW9uIE1hcmNoaSAgPHNpbW9uLm1h cmNoaUBlcmljc3Nvbi5jb20+Ci0rCi0rCSogcmVtb3RlLmMgKHJlbW90ZV90YXJnZXQ6OmRvd25s b2FkX3RyYWNlcG9pbnQpOiBGaXggZm9ybWF0Ci0rCXN0cmluZyBlcnJvcnMuCi0rCi0gMjAxOC0w OC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4K LQotIAkqIHRyYWNlZmlsZS5jOiBJbmNsdWRlIGNvbW1vbi9ieXRlLXZlY3Rvci5oLgotCi1kaWZm IC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90ZS5jCi0tLS0gYS9nZGIvcmVtb3RlLmMK LSsrKyBiL2dkYi9yZW1vdGUuYwotQEAgLTEyODI2LDcgKzEyODI2LDcgQEAgcmVtb3RlX3Rhcmdl dDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0gCQkgIHQt PnN0ZXBfY291bnQsIHQtPnBhc3NfY291bnQpOwotIAotICAgaWYgKHJldCA8IDAgfHwgcmV0ID49 IGJ1Zi5zaXplICgpKQotLSAgICBlcnJvciAoZXJyX21zZyk7Ci0rICAgIGVycm9yICgiJXMiLCBl cnJfbXNnKTsKLSAKLSAgIC8qIEZhc3QgdHJhY2Vwb2ludHMgYXJlIG1vc3RseSBoYW5kbGVkIGJ5 IHRoZSB0YXJnZXQsIGJ1dCB3ZSBjYW4KLSAgICAgIHRlbGwgdGhlIHRhcmdldCBob3cgYmlnIG9m IGFuIGluc3RydWN0aW9uIGJsb2NrIHNob3VsZCBiZSBtb3ZlZAotQEAgLTEyODQ2LDcgKzEyODQ2 LDcgQEAgcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0 aW9uICpsb2MpCi0gCQkJICAgICAgZ2RiX2luc25fbGVuZ3RoIChsb2MtPmdkYmFyY2gsIHRwYWRk cikpOwotIAotIAkgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQotLQkJZXJy b3IgKGVycl9tc2cpOwotKwkJZXJyb3IgKCIlcyIsIGVycl9tc2cpOwotIAkgICAgfQotIAkgIGVs c2UKLSAJICAgIC8qIElmIGl0IHBhc3NlZCB2YWxpZGF0aW9uIGF0IGRlZmluaXRpb24gYnV0IGZh aWxzIG5vdywKLUBAIC0xMjg3Nyw3ICsxMjg3Nyw3IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2Fk X3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAkJCSAgICAgIHNpemVfbGVm dCwgIjpTIik7Ci0gCi0gCSAgICAgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBzaXplX2xlZnQpCi0t CQllcnJvciAoZXJyX21zZyk7Ci0rCQllcnJvciAoIiVzIiwgZXJyX21zZyk7Ci0gCSAgICB9Ci0g CSAgZWxzZQotIAkgICAgZXJyb3IgKF8oIlN0YXRpYyB0cmFjZXBvaW50IG5vdCB2YWxpZCBkdXJp bmcgZG93bmxvYWQiKSk7Ci1AQCAtMTI5MDUsMTQgKzEyOTA1LDE0IEBAIHJlbW90ZV90YXJnZXQ6 OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAkJCSAgc2l6 ZV9sZWZ0LCAiOlgleCwiLCBhZXhwci0+bGVuKTsKLSAKLSAJICBpZiAocmV0IDwgMCB8fCByZXQg Pj0gc2l6ZV9sZWZ0KQotLQkgICAgZXJyb3IgKGVycl9tc2cpOwotKwkgICAgZXJyb3IgKCIlcyIs IGVycl9tc2cpOwotIAotIAkgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYu ZGF0YSAoKSk7Ci0gCi0gCSAgLyogVHdvIGJ5dGVzIHRvIGVuY29kZSBlYWNoIGFleHByIGJ5dGUs IHBsdXMgdGhlIHRlcm1pbmF0aW5nCi0gCSAgICAgbnVsbCBieXRlLiAgKi8KLSAJICBpZiAoYWV4 cHItPmxlbiAqIDIgKyAxID4gc2l6ZV9sZWZ0KQotLQkgICAgZXJyb3IgKGVycl9tc2cpOwotKwkg ICAgZXJyb3IgKCIlcyIsIGVycl9tc2cpOwotIAotIAkgIHBrdCA9IGJ1Zi5kYXRhICgpICsgc3Ry bGVuIChidWYuZGF0YSAoKSk7Ci0gCi1AQCAtMTI5MzMsNyArMTI5MzMsNyBAQCByZW1vdGVfdGFy Z2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAJCSAg ICAgIHNpemVfbGVmdCwgIi0iKTsKLSAKLSAgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6 ZV9sZWZ0KQotLQllcnJvciAoZXJyX21zZyk7Ci0rCWVycm9yICgiJXMiLCBlcnJfbXNnKTsKLSAg ICAgfQotIAotICAgcHV0cGt0IChidWYuZGF0YSAoKSk7Ci1AQCAtMTI5NTYsNyArMTI5NTYsNyBA QCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24g KmxvYykKLSAJCSAgICAgIGhhc19tb3JlID8gJy0nIDogMCk7Ci0gCi0gICAgICAgaWYgKHJldCA8 IDAgfHwgcmV0ID49IGJ1Zi5zaXplICgpKQotLQllcnJvciAoZXJyX21zZyk7Ci0rCWVycm9yICgi JXMiLCBlcnJfbXNnKTsKLSAKLSAgICAgICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKLSAgICAgICBy ZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgpOwotQEAgLTEyOTc5LDcgKzEyOTc5LDcgQEAgcmVtb3Rl X3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0g CQkgICAgICBoYXNfbW9yZSA/ICItIiA6ICIiKTsKLSAKLSAgICAgICBpZiAocmV0IDwgMCB8fCBy ZXQgPj0gYnVmLnNpemUgKCkpCi0tCWVycm9yIChlcnJfbXNnKTsKLSsJZXJyb3IgKCIlcyIsIGVy cl9tc2cpOwotIAotICAgICAgIHB1dHBrdCAoYnVmLmRhdGEgKCkpOwotICAgICAgIHJlbW90ZV9n ZXRfbm9pc3lfcmVwbHkgKCk7Ci1AQCAtMTI5OTQsNyArMTI5OTQsNyBAQCByZW1vdGVfdGFyZ2V0 Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAJICByZXQg PSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUHNyYzoiKTsKLSAKLSAJ ICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCi0tCSAgICBlcnJvciAoZXJyX21z Zyk7Ci0rCSAgICBlcnJvciAoIiVzIiwgZXJyX21zZyk7Ci0gCi0gCSAgZW5jb2RlX3NvdXJjZV9z dHJpbmcgKGItPm51bWJlciwgbG9jLT5hZGRyZXNzLCAiYXQiLAotIAkJCQlldmVudF9sb2NhdGlv bl90b19zdHJpbmcgKGItPmxvY2F0aW9uLmdldCAoKSksCi1AQCAtMTMwMTAsNyArMTMwMTAsNyBA QCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24g KmxvYykKLSAJICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVRE UHNyYzoiKTsKLSAKLSAJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCi0tCSAg ICBlcnJvciAoZXJyX21zZyk7Ci0rCSAgICBlcnJvciAoIiVzIiwgZXJyX21zZyk7Ci0gCi0gCSAg ZW5jb2RlX3NvdXJjZV9zdHJpbmcgKGItPm51bWJlciwgbG9jLT5hZGRyZXNzLAotIAkJCQkiY29u ZCIsIGItPmNvbmRfc3RyaW5nLAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y MG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCmluZGV4IGUy YzJmNDguLmFkMmRhZjQgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUu cGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAtNTU3LDcg KzU1Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAg CQkJCQkgICAgIHN0cnVjdCB0eXBlICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFzc2ln bl9hZ2dyZWdhdGUgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgCi1AQCAtNjk3LDcg KzY5OCw3IEBAIGNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBz dHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC02OTIsNyArNjkzLDcgQEAgY29lcmNlX3Vuc3BlY192YWxf dG9fdHlwZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB0eXBlICp0eXBlKQogIH0KICAKICBz dGF0aWMgY29uc3QgZ2RiX2J5dGUgKgpAQCAtNTY2LDcgKzU2Niw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAgewogICAgaWYgKHZhbGFkZHIgPT0gTlVM TCkKICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtNzA2LDcgKzcwNyw3IEBAIGNvbmRfb2Zmc2V0X2hv c3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBsb25nIG9mZnNldCkKK0BAIC03MDEsNyArNzAy LDcgQEAgY29uZF9vZmZzZXRfaG9zdCAoY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGxvbmcgb2Zm c2V0KQogIH0KICAKICBzdGF0aWMgQ09SRV9BRERSCkBAIC02ODQsNyArNjg0LDcgQEAgZGlmZiAt LWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAKICAgIHZhbCA9IHZhbHVl X2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBvbmVudCksIHZhbCk7CiAgCi1AQCAtNDQ2Miw3ICs0NDY0 LDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTQ1MDIsNyArNDUwNCw3 IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgIGlmIChWQUxVRV9MVkFMICh2 YWwpID09IG5vdF9sdmFsCiAgICAgICAgfHwgVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2ludGVy bmFsdmFyKQogICAgICB7CkBAIC02OTMsNyArNjkzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEt bGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JFX0FERFIgYWRkciA9CiAg ICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAo bGVuKSk7CiAgCi1AQCAtNDU0Niw3ICs0NTQ4LDcgQEAgc3RhdGljIENPUkVfQUREUgorQEAgLTQ1 ODYsNyArNDU4OCw3IEBAIHN0YXRpYyBDT1JFX0FERFIKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwpAQCAtNzAyLDcgKzcwMiw3IEBAIGRpZmYg LS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAgICBnZGJfYnl0ZSAqYnVm ID0gKGdkYl9ieXRlICopIGFsbG9jYSAobGVuKTsKICAgIENPUkVfQUREUiBhZGRyOwogIAotQEAg LTY2NTcsNyArNjY1OSw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02Njk0LDcgKzY2OTYsNyBAQCB2YWx1ZV90YWdfZnJvbV9j b250ZW50c19hbmRfYWRkcmVzcyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJCSAgICAgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENPUkVfQUREUiBhZGRyZXNzKQogIHsKQEAgLTcxMSw3ICs3MTEsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwogICAgc3RydWN0IHR5cGUgKnRhZ190eXBl OwogIAogICAgaWYgKGZpbmRfc3RydWN0X2ZpZWxkICgiX3RhZyIsIHR5cGUsIDAsICZ0YWdfdHlw ZSwgJnRhZ19ieXRlX29mZnNldCwKLUBAIC03MTUwLDcgKzcxNTIsNyBAQCBhZGFfaW5fdmFyaWFu dCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRfbnVtKQorQEAgLTcx ODcsNyArNzE4OSw3IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3RydWN0IHR5cGUg KnR5cGUsIGludCBmaWVsZF9udW0pCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFj a2VkIHZhbHVlcyBvZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1 ZSAqCkBAIC03MjAsNyArNzIwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2Ri L2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJn X3R5cGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNzE2Miw3ICs3MTY0LDcgQEAg YWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQgb2Zmc2V0 LCBpbnQgZmllbGRubywKK0BAIC03MTk5LDcgKzcyMDEsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZl X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsIGludCBmaWVsZG5vLAogIAog ICAgaWYgKFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pICE9IDApCiAgICAg IHsKQEAgLTcyOSw3ICs3MjksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIv YWRhLWxhbmcuYwogICAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAoYXJn X3R5cGUsIGZpZWxkbm8pOwogIAogICAgICAgIHJldHVybiBhZGFfdmFsdWVfcHJpbWl0aXZlX3Bh Y2tlZF92YWwgKGFyZzEsIHZhbHVlX2NvbnRlbnRzIChhcmcxKSwKLUBAIC03MjM5LDkgKzcyNDEs OSBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBv ZmZzZXQsIGludCBmaWVsZG5vLAorQEAgLTcyNzYsOSArNzI3OCw5IEBAIGFkYV92YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwgaW50IGZpZWxkbm8s CiAgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGlu dApAQCAtNzQxLDcgKzc0MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9h ZGEtbGFuZy5jCiAgCQkgICBpbnQgKmluZGV4X3ApCiAgewogICAgaW50IGk7Ci1AQCAtNzI2MCw4 ICs3MjYyLDggQEAgZmluZF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBpbnQgb2Zmc2V0LAorQEAgLTcyOTcsOCArNzI5OSw4IEBAIGZpbmRfc3RydWN0 X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCwK ICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAg IHsKQEAgLTc1Miw3ICs3NTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIv YWRhLWxhbmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERf TkFNRSAodHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAg LTczNjMsNyArNzM2NSw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUp CitAQCAtNzQwMCw3ICs3NDAyLDcgQEAgbnVtX3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAq dHlwZSkKICAgICBsb25nIGV4cGxhbmF0aW9uIGluIGZpbmRfc3RydWN0X2ZpZWxkJ3MgZnVuY3Rp b24gZG9jdW1lbnRhdGlvbi4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NjEs NyArNzYxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50 IGk7Ci1AQCAtNzQxMSw3ICs3NDEzLDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBpbnQgb2Zmc2V0LAorQEAgLTc0NDgsNyAr NzQ1MCw3IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3QgdmFsdWUgKmFyZywgaW50IG9mZnNldCwKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAg IHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERf VFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NzAsNyArNzcwLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICAgICAgZm9yIChq ID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkKICAgICAgICAgICAg ICB7Ci1AQCAtNzQ0Myw4ICs3NDQ1LDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBpbnQgb2Zmc2V0LAorQEAgLTc0ODAsOCAr NzQ4Miw4IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3QgdmFsdWUgKmFyZywgaW50IG9mZnNldCwKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc4 MSw3ICs3ODEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcu YwogIAogIAogIC8qIFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVyZSB0aGUgaW5kZXgg aXMgdGhhdCByZXR1cm5lZCBieQotQEAgLTc0NTMsNyArNzQ1NSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoaW50ICosIHN0cnVjdCB2YWx1ZSAqLAor QEAgLTc0OTAsNyArNzQ5Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1 Y3RfZmllbGRfMSAoaW50ICosIHN0cnVjdCB2YWx1ZSAqLAogICAqIElmIGZvdW5kLCByZXR1cm4g dmFsdWUsIGVsc2UgcmV0dXJuIE5VTEwuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpA QCAtNzkwLDcgKzc5MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEt bGFuZy5jCiAgCQkJc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIGFkYV9pbmRleF9z dHJ1Y3RfZmllbGRfMSAoJmluZGV4LCBhcmcsIG9mZnNldCwgdHlwZSk7Ci1AQCAtNzQ2NSw3ICs3 NDY3LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1Y3QgdmFsdWUg KmFyZywgaW50IG9mZnNldCwKK0BAIC03NTAyLDcgKzc1MDQsNyBAQCBhZGFfaW5kZXhfc3RydWN0 X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjdCB2YWx1ZSAqYXJnLCBpbnQgb2Zmc2V0LAogICAqICpJ TkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5OSw3ICs3OTksNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3Ry dWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzU1NSw3ICs3NTU3LDggQEAgYWRh X3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLCBjb25zdCBjaGFyICpuYW1lLCBp bnQgbm9fZXJyKQorQEAgLTc1OTMsNyArNzU5NSw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChz dHJ1Y3QgdmFsdWUgKmFyZywgY29uc3QgY2hhciAqbmFtZSwgaW50IG5vX2VycikKICAgICAgdiA9 IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAg ICB7CkBAIC04MDksNyArODA5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2Ri L2FkYS1sYW5nLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAgICBDT1JF X0FERFIgYWRkcmVzczsKICAKLUBAIC03ODk5LDggKzc5MDIsOCBAQCBhZGFfY29lcmNlX3JlZiAo c3RydWN0IHZhbHVlICp2YWwwKQorQEAgLTc5NDIsOCArNzk0NSw4IEBAIGFkYV9jb2VyY2VfcmVm IChzdHJ1Y3QgdmFsdWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2FyZCBpZiBu ZWNlc3NhcnkgdG8gYSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBvZiAyKS4g ICovCiAgCkBAIC04MjAsNyArODIwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIv Z2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYgfihh bGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtODI5MCwxMCArODI5Myw5IEBAIGFkYV90ZW1wbGF0ZV90 b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC04MzMzLDEwICs4 MzM2LDkgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cnVjdCB0eXBl ICp0eXBlLAogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVj dCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgzMyw3ICs4MzMsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwogICAgaW50IGY7 CiAgCiAgICAvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5 cGUgdGhhdCBhcmUgZ29pbmcKLUBAIC04MzcwLDcgKzgzNzIsNyBAQCBhZGFfdGVtcGxhdGVfdG9f Zml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtODQxMyw3ICs4NDE1 LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cnVjdCB0eXBlICp0 eXBlLAogIAkgICAgIHRoYXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2Fs aWduZXJfdHlwZSAoZmllbGRfdHlwZSkpCiAgCSAgICB7CkBAIC04NDIsNyArODQyLDcgQEAgZGlm ZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmll bGRfdmFsYWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNl dCk7CiAgCSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2Fk ZHJlc3MsIGZpZWxkX29mZnNldCk7Ci1AQCAtODUwNiwxMSArODUwOCwxMSBAQCBhZGFfdGVtcGxh dGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtODU0OSwx MSArODU1MSwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RydWN0 IHR5cGUgKnR5cGUsCiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDApCiAgICAgIHsKICAg ICAgICBpZiAoVFlQRV9OQU1FIChydHlwZSkpCkBAIC04NTgsNyArODU4LDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxzZQogICAg ICB7Ci1AQCAtODk3NCw3ICs4OTc2LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUwLCBzdHJ1Y3QgdmFsdWUgKmR2YWwsCitAQCAtOTAxNyw3ICs5MDE5LDggQEAgdG9f Zml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBzdHJ1Y3QgdmFsdWUgKmR2YWws CiAgCSB0eXBlIHdhcyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5cGUuICBBcyBhIHJl c3VsdCwgdGhlCiAgCSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBuZWVkcyB0byBiZSBz ZXQgYWdhaW4sIGFuZCB0aGUgYXJyYXkKICAJIGxlbmd0aCBuZWVkcyB0byBiZSByZWNvbXB1dGVk IGJhc2VkIG9uIHRoYXQgYml0c2l6ZS4gICovCkBAIC04ODksNyArODg5LDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9hZGEtbGFuZy5oIGIvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0 dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNjEsNyArMjYxLDcgQEAgZXh0ZXJuIGlu dCBhZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwor QEAgLTI2Myw3ICsyNjMsNyBAQCBleHRlcm4gaW50IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRf YXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWRh X3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCQkgICAg IGNvbnN0IGdkYl9ieXRlICosCkBAIC05MDEsNyArOTAxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9h ZGEtbGFuZy5oIGIvZ2RiL2FkYS1sYW5nLmgKIGRpZmYgLS1naXQgYS9nZGIvYWRhLXR5cGVwcmlu dC5jIGIvZ2RiL2FkYS10eXBlcHJpbnQuYwogLS0tIGEvZ2RiL2FkYS10eXBlcHJpbnQuYwogKysr IGIvZ2RiL2FkYS10eXBlcHJpbnQuYwotQEAgLTg5Niw4ICs4OTYsOCBAQCBhZGFfcHJpbnRfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zdCBjaGFyICp2YXJzdHJpbmcsCitAQCAtODkxLDgg Kzg5MSw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnN0IGNoYXIg KnZhcnN0cmluZywKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0eXBl KTsKICAKICAJICAgIGlmICghYWRhX2lzX3JhbmdlX3R5cGVfbmFtZSAobmFtZSkpCkBAIC05MTIs NyArOTEyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtdHlwZXByaW50LmMgYi9nZGIvYWRhLXR5 cGVwcmludC5jCiAgCSAgICBlbHNlCiAgCSAgICAgIHsKICAJCWZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgInJhbmdlICIpOwotQEAgLTkxOCw3ICs5MTgsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3Ry dWN0IHR5cGUgKnR5cGUwLCBjb25zdCBjaGFyICp2YXJzdHJpbmcsCitAQCAtOTEzLDcgKzkxMyw4 IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnN0IGNoYXIgKnZhcnN0 cmluZywKICAJICB9CiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0ZMVDoKQEAgLTEx NDAsNyArMTE0MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYW5ub3RhdGUuaCBiL2dkYi9hbm5vdGF0 ZS5oCiBkaWZmIC0tZ2l0IGEvZ2RiL2FyY2gtdXRpbHMuYyBiL2dkYi9hcmNoLXV0aWxzLmMKIC0t LSBhL2dkYi9hcmNoLXV0aWxzLmMKICsrKyBiL2dkYi9hcmNoLXV0aWxzLmMKLUBAIC0yMjgsNyAr MjI4LDcgQEAgbGVnYWN5X3ZpcnR1YWxfZnJhbWVfcG9pbnRlciAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCitAQCAtMjI3LDcgKzIyNyw3IEBAIGxlZ2FjeV92aXJ0dWFsX2ZyYW1lX3BvaW50ZXIg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAogIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAq KgogIGRlZmF1bHRfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LApAQCAtMTE2NCw3ICsxMTY0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hcmNoLXV0aWxzLmggYi9n ZGIvYXJjaC11dGlscy5oCiBkaWZmIC0tZ2l0IGEvZ2RiL2FybS1saW51eC1uYXQuYyBiL2dkYi9h cm0tbGludXgtbmF0LmMKIC0tLSBhL2dkYi9hcm0tbGludXgtbmF0LmMKICsrKyBiL2dkYi9hcm0t bGludXgtbmF0LmMKLUBAIC0xMDk4LDcgKzEwOTgsNyBAQCBhcm1fbGludXhfbmF0X3RhcmdldDo6 cmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTEwOTYs NyArMTA5Niw3IEBAIGFybV9saW51eF9uYXRfdGFyZ2V0OjpyZW1vdmVfaHdfYnJlYWtwb2ludCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgLyogQXJlIHdlIGFibGUgdG8gdXNlIGEgaGFyZHdh cmUgd2F0Y2hwb2ludCBmb3IgdGhlIExFTiBieXRlcyBzdGFydGluZyBhdCAKICAgICBBRERSPyAg Ki8KICBpbnQKQEAgLTEyOTksNyArMTI5OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYXguaCBiL2dk Yi9heC5oCiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMK IC0tLSBhL2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBAIC0yMDUz LDkgKzIwNTMsOSBAQCBzaG91bGRfYmVfaW5zZXJ0ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYmwp CitAQCAtMjA1Nyw5ICsyMDU3LDkgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9j YXRpb24gKmJsKQogIAl7CiAgCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJ CSAgICAgICJpbmZydW46IHN0ZXBwaW5nIHBhc3Qgbm9uLXN0ZXBwYWJsZSB3YXRjaHBvaW50LiAi CkBAIC0xMzExLDcgKzEzMTEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dk Yi9icmVha3BvaW50LmMKICAJfQogICAgICAgIHJldHVybiAwOwogICAgICB9Ci1AQCAtNjgxNiw3 ICs2ODE2LDcgQEAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoIChjb25zdCBhZGRyZXNzX3NwYWNl ICphc3BhY2UxLCBDT1JFX0FERFIgYWRkcjEsCitAQCAtNjgwNSw3ICs2ODA1LDcgQEAgYnJlYWtw b2ludF9hZGRyZXNzX21hdGNoIChjb25zdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBDT1JFX0FE RFIgYWRkcjEsCiAgc3RhdGljIGludAogIGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSAo Y29uc3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlMSwKICAJCQkJQ09SRV9BRERSIGFkZHIxLApAQCAt MTMyMCw3ICsxMzIwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJl YWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAgICByZXR1cm4gKChnZGJhcmNo X2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoICgpKQotQEAgLTEwODk5LDcg KzEwODk5LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChjb25zdCBzdGQ6OnZlY3Rv cjx2YWx1ZV9yZWZfcHRyPiAmdmFscykKK0BAIC0xMDg4Nyw3ICsxMDg4Nyw3IEBAIGNhbl91c2Vf aGFyZHdhcmVfd2F0Y2hwb2ludCAoY29uc3Qgc3RkOjp2ZWN0b3I8dmFsdWVfcmVmX3B0cj4gJnZh bHMpCiAgCQkgICAgICAmJiBUWVBFX0NPREUgKHZ0eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQog IAkJewogIAkJICBDT1JFX0FERFIgdmFkZHIgPSB2YWx1ZV9hZGRyZXNzICh2KTsKQEAgLTE0NDUs NyArMTQ0NSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYy12YWxwcmludC5jIGIvZ2RiL2MtdmFscHJp bnQuYwogZGlmZiAtLWdpdCBhL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMgYi9nZGIv Y29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiAtLS0gYS9nZGIvY29tcGlsZS9jb21waWxlLWMt c3VwcG9ydC5jCiArKysgYi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCi1AQCAtMzA3 LDExICszMDcsMTEgQEAgZ2VuZXJhdGVfcmVnaXN0ZXJfc3RydWN0IChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0yNzAsMTEgKzI3MCwxMSBAQCBn ZW5lcmF0ZV9yZWdpc3Rlcl9zdHJ1Y3QgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLAogIAogIAkgICAgICBkZWZhdWx0OgogIAkJZnByaW50Zl91bmZpbHRl cmVkIChzdHJlYW0sCkBAIC0xNTcxLDcgKzE1NzEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2QtdmFs cHJpbnQuYyBiL2dkYi9kLXZhbHByaW50LmMKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMg Yi9nZGIvZHdhcmYybG9jLmMKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJm MmxvYy5jCi1AQCAtMTgxNyw3ICsxODE3LDcgQEAgcndfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnYsIHN0cnVjdCB2YWx1ZSAqZnJvbSkKK0BAIC0xODU1LDcgKzE4NTUsNyBAQCByd19waWVj ZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0IHZhbHVlICpmcm9tKQogICAgZm9yICg7 IGkgPCBjLT5waWVjZXMuc2l6ZSAoKSAmJiBvZmZzZXQgPCBtYXhfb2Zmc2V0OyBpKyspCiAgICAg IHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBA IC0xNTgwLDcgKzE1ODAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3 YXJmMmxvYy5jCiAgCiAgICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplIC0gYml0c190b19z a2lwOwogICAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCi1A QCAtMjA2NCw3ICsyMDY0LDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRv LCBzdHJ1Y3QgdmFsdWUgKmZyb20pCitAQCAtMjEwMiw3ICsyMTAyLDcgQEAgd3JpdGVfcGllY2Vk X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCiAgCiAgc3RhdGlj IGludAogIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVl ICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0LApAQCAtMTU4OSw3ICsxNTg5LDcgQEAgZGlmZiAt LWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogIHsKICAgIHN0cnVjdCBw aWVjZV9jbG9zdXJlICpjCiAgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2Nv bXB1dGVkX2Nsb3N1cmUgKHZhbHVlKTsKLUBAIC0yMDc3LDcgKzIwNzcsNyBAQCBjaGVja19waWVj ZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qg Yml0X29mZnNldCwKK0BAIC0yMTE1LDcgKzIxMTUsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGlj X3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwK ICAgIGZvciAoaSA9IDA7IGkgPCBjLT5waWVjZXMuc2l6ZSAoKSAmJiBiaXRfbGVuZ3RoID4gMDsg aSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGll Y2VzW2ldOwpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2Mu YyBiL2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewot QEAgLTIxNzksOCArMjE3OSw4IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVl ICp2YWx1ZSkKK0BAIC0yMjE5LDggKzIyMTksOCBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUpCiAgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVl X2NvbXB1dGVkX2Nsb3N1cmUgKHZhbHVlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lOwpAQCAtMTYwOSw3ICsxNjA5LDcgQEAgZGlmZiAtLWdpdCBh L2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogICAgc3RydWN0IGR3YXJmX2V4cHJf cGllY2UgKnBpZWNlID0gTlVMTDsKICAgIExPTkdFU1QgYnl0ZV9vZmZzZXQ7CiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0yMTk3LDcgKzIxOTcsNyBAQCBpbmRpcmVjdF9waWVj ZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCitAQCAtMjIzNyw3ICsyMjM3LDcgQEAgaW5k aXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogICAgZm9yIChpID0gMDsg aSA8IGMtPnBpZWNlcy5zaXplICgpICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAg ICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNjE4 LDcgKzE2MTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxv Yy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjQ4Niw5ICsyNDg2 LDkgQEAgaWYgKGZyYW1lICE9IE5VTEwpIHNlbGVjdF9mcmFtZSAoZnJhbWUpOworQEAgLTI1MjYs OSArMjUyNiw5IEBAIGlmIChmcmFtZSAhPSBOVUxMKSBzZWxlY3RfZnJhbWUgKGZyYW1lKTsKICAJ Y2FzZSBEV0FSRl9WQUxVRV9TVEFDSzoKICAJICB7CiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVl ID0gY3R4LmZldGNoICgwKTsKQEAgLTE2MzQsNyArMTYzNCw3IEBAIGRpZmYgLS1naXQgYS9nZGIv ZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVh ZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwogKysrIGIvZ2Ri L2R3YXJmMnJlYWQuYwotQEAgLTIwMjEsMTEgKzIwMjEsMTEgQEAgZHdhcmYyX2NvbXBsZXhfbG9j YXRpb25fZXhwcl9jb21wbGFpbnQgKHZvaWQpCitAQCAtMjAzMSwxMSArMjAzMSwxMSBAQCBkd2Fy ZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAodm9pZCkKICB9CiAgCiAgc3RhdGlj IHZvaWQKQEAgLTE2NTAsNyArMTY1MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5j IGIvZ2RiL2R3YXJmMnJlYWQuYwogIH0KICAKICBzdGF0aWMgdm9pZAotQEAgLTE0OTQ5LDggKzE0 OTQ5LDggQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0 IGRpZV9pbmZvICpkaWUsCitAQCAtMTUwNzcsOCArMTUwNzcsOCBAQCBkd2FyZjJfYWRkX2ZpZWxk IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJICAgICAg ICAgb2JqZWN0LCBhbmQgdGhlbiBzdWJ0cmFjdCBvZmYgdGhlIG51bWJlciBvZiBiaXRzIG9mCiAg CSAgICAgICAgIHRoZSBmaWVsZCBpdHNlbGYuICBUaGUgcmVzdWx0IGlzIHRoZSBiaXQgb2Zmc2V0 IG9mCiAgCSAgICAgICAgIHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE2ODMsNyArMTY4 Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4 cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC04MDAsMTEg KzgwMSwxMSBAQCBiaW5vcF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFu Z3VhZ2UsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTc5OSwxMSArODAwLDExIEBAIGJp bm9wX3Byb21vdGUgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSwgc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCiAgICAgIC8qIEZJWE1FOiBBbHNvIG1peGVkIGludGVncmFsL2Jv b2xlYW5zLCB3aXRoIHJlc3VsdCBhbiBpbnRlZ2VyLiAgKi8KICAgICAgewogICAgICAgIGNvbnN0 IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ1aWx0aW4gPSBidWlsdGluX3R5cGUgKGdkYmFyY2gpOwpA QCAtMTY5OCw3ICsxNjk4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5j CiAgICAgICAgaW50IHVuc2lnbmVkX29wZXJhdGlvbjsKICAKICAgICAgICAvKiBEZXRlcm1pbmUg dHlwZSBsZW5ndGggYW5kIHNpZ25lZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZvcgotQEAgLTE1NDYs NyArMTU0Nyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAorQEAgLTE1NDksNyArMTU1MCw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAo c3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgc3RydWN0IHZhbHVlICoqYXJndmVjOwogICAg aW50IGNvZGU7CiAgICBpbnQgaXg7CkBAIC0xNzA3LDcgKzE3MDcsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKICAgIHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzOwogIAog ICAgcGMgPSAoKnBvcykrKzsKLUBAIC0xNzI5LDcgKzE3MzAsNyBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xNzMyLDcgKzE3MzMsNyBA QCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJ ICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCSAg c3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwogIAkg IHN0cnVjdCB2YWx1ZSAqYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZSAoZXhwZWN0X3R5cGUpOwpAQCAt MTgwMiw3ICsxODAyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9mLXZhbHByaW50LmMgYi9nZGIvZi12 YWxwcmludC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKIC0t LSBhL2dkYi9maW5kdmFyLmMKICsrKyBiL2dkYi9maW5kdmFyLmMKLUBAIC04MjEsNyArODIxLDcg QEAgc3RydWN0IHZhbHVlICoKK0BAIC04MjMsNyArODIzLDcgQEAgc3RydWN0IHZhbHVlICoKICBk ZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0s IHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0xODExLDcgKzE4MTEsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKICAgIHN0cnVjdCB2YWx1ZSAq dmFsdWUgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7CiAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWU7CiAgCi1AQCAtODY1LDcgKzg2NSw3IEBAIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC04NjcsNyAr ODY3LDcgQEAgcmVhZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogICAgTE9OR0VTVCBvZmZzZXQgPSAwOwogICAgTE9O R0VTVCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVnbnVtID0g VkFMVUVfUkVHTlVNICh2YWx1ZSk7CkBAIC0xODIwLDcgKzE4MjAsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKICAKICAgIGdkYl9hc3NlcnQgKFZBTFVFX0xW QUwgKHZhbHVlKSA9PSBsdmFsX3JlZ2lzdGVyKTsKICAKLUBAIC04ODAsNyArODgwLDcgQEAgcmVh ZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lKQorQEAgLTg4Miw3ICs4ODIsNyBAQCByZWFkX2ZyYW1lX3JlZ2lzdGVyX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCiAgICB3 aGlsZSAobGVuID4gMCkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqcmVndmFsID0gZ2V0 X2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChmcmFtZSwgcmVnbnVtKTsKQEAgLTE4MzIsNyArMTgzMiw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvZmluZHZhci5jIGIvZ2RiL2ZpbmR2YXIuYwogZGlmZiAtLWdp dCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMKIC0tLSBhL2dkYi9mcmFtZS5jCiArKysgYi9n ZGIvZnJhbWUuYwotQEAgLTEzOTYsNyArMTM5Niw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0 ZXJfcmVhZCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAorQEAgLTEzOTgs NyArMTM5OCw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogIAogIGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9i eXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLApAQCAtMTg0MSw3ICsx ODQxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMKICAJCQkgIGlu dCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApCiAgewogICAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotQEAgLTE0MjUsNyArMTQyNSw3IEBA IGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQg cmVnbnVtLAorQEAgLTE0MjcsNyArMTQyNyw3IEBAIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAo c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogICAgICB9CiAgICBpZiAobGVu ID4gbWF4c2l6ZSkKICAgICAgZXJyb3IgKF8oIkJhZCBkZWJ1ZyBpbmZvcm1hdGlvbiBkZXRlY3Rl ZDogIgpAQCAtMTg3Nyw3ICsxODc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLmMgYi9n ZGIvZ2RiYXJjaC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYmFyY2guaCBiL2dkYi9nZGJhcmNoLmgK IC0tLSBhL2dkYi9nZGJhcmNoLmgKICsrKyBiL2dkYi9nZGJhcmNoLmgKLUBAIC0xOTMsOCArMTkz LDggQEAgZXh0ZXJuIHZvaWQgc2V0X2dkYmFyY2hfd2NoYXJfc2lnbmVkIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgaW50IHdjaGFyX3NpZ25lZCkKK0BAIC0xOTUsOCArMTk1LDggQEAgZXh0ZXJu IHZvaWQgc2V0X2dkYmFyY2hfd2NoYXJfc2lnbmVkIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwg aW50IHdjaGFyX3NpZ25lZCkKICAgICBOQU1FLCBpZiBub24tTlVMTCwgaXMgdGhlIHR5cGUgbmFt ZSwgd2hpY2ggbWF5IGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2gKICAgICBkaWZmZXJlbnQgdGFyZ2V0 IGZvcm1hdHMgb2YgdGhlIHNhbWUgbGVuZ3RoLiAqLwogIApAQCAtMTkwMyw3ICsxOTAzLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLnNoIGIvZ2RiL2dkYmFyY2guc2gKIGRpZmYgLS1naXQg YS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAtLS0gYS9nZGIvZ2RidHlwZXMuYwog KysrIGIvZ2RiL2dkYnR5cGVzLmMKLUBAIC0yOTA2LDcgKzI5MDYsNyBAQCBmbG9hdGZvcm1hdF9m cm9tX3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTI5MTUsNyArMjkxNSw3IEBA IGZsb2F0Zm9ybWF0X2Zyb21fdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAgICAgbGVh c3QgYXMgbG9uZyBhcyBPQkpGSUxFLiAgKi8KICAKICBzdHJ1Y3QgdHlwZSAqCkBAIC0xOTEyLDcg KzE5MTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwog IAkgICBjb25zdCBjaGFyICpuYW1lKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwotQEAgLTMz NjAsOCArMzM2MCw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0 cnVjdCB0eXBlICpkY2xhc3MpCitAQCAtMzM2OSw4ICszMzY5LDggQEAgaXNfcHVibGljX2FuY2Vz dG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHR5cGUgKmRjbGFzcykKICAKICBzdGF0aWMg aW50CiAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVj dCB0eXBlICpkY2xhc3MsCkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dk YnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1 Y3QgdmFsdWUgKnZhbCkKICB7CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTMzNzIsNyArMzM3 Miw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1 Y3QgdHlwZSAqZGNsYXNzLAorQEAgLTMzODEsNyArMzM4MSw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rv cl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLAogICAgZm9y IChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNsYXNzKSAmJiBjb3VudCA8IDI7ICsr aSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVyOwpAQCAtMTkzMiw3ICsxOTMyLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKICAKICAgICAg ICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKGRjbGFzcywgaSkpOwogIAot QEAgLTM0MTMsNyArMzQxMyw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0 eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLAorQEAgLTM0MjIsNyArMzQyMiw3IEBAIGlz X3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAq ZGNsYXNzLAogIGludAogIGlzX3VuaXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0 cnVjdCB2YWx1ZSAqdmFsKQogIHsKQEAgLTE5NDEsNyArMTk0MSw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gaXNfdW5pcXVlX2Fu Y2VzdG9yX3dvcmtlciAoYmFzZSwgdmFsdWVfdHlwZSAodmFsKSwgJm9mZnNldCwKICAJCQkJICAg IHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAodmFsKSwKLUBAIC00NjQyLDcgKzQ2NDIsNyBA QCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHNwYWNlcykKK0BA IC00NjUxLDcgKzQ2NTEsNyBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgaW50IHNwYWNlcykKICAgICAgICBicmVhazsKICAgICAgfQogICAgcHV0c19maWx0ZXJlZCAo IlxuIik7CkBAIC0xOTUwLDcgKzE5NTAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMg Yi9nZGIvZ2RidHlwZXMuYwogICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkpCiAgICAg IHsKICAgICAgICBwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOwotQEAgLTUw ODUsNyArNTA4NSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCitAQCAt NTA5Niw3ICs1MDk2LDcgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAK ICBzdHJ1Y3QgdHlwZSAqCiAgYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKQEAg LTE5NjIsNyArMTk2Miw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0 eXBlcy5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAogLS0t IGEvZ2RiL2dkYnR5cGVzLmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5oCi1AQCAtODYyLDcgKzg2Miw3 IEBAIHN0cnVjdCB0eXBlCitAQCAtODYzLDcgKzg2Myw3IEBAIHN0cnVjdCB0eXBlCiAgICAgICB0 eXBlX2xlbmd0aF91bml0cyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBpbiBvcmRlciB0byBnZXQg dGhlIGxlbmd0aAogICAgICAgZXhwcmVzc2VkIGluIHRhcmdldCBhZGRyZXNzYWJsZSBtZW1vcnkg dW5pdHMuICAqLwogIApAQCAtMTk3MSw3ICsxOTcxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0 eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBlLCBzaGFyZWQgYnkg YSBncm91cCBvZiBxdWFsaWZpZWQgdHlwZXMuICAqLwogIAotQEAgLTE3ODMsNyArMTc4Myw3IEBA IGV4dGVybiB1bnNpZ25lZCBpbnQgdHlwZV9sZW5ndGhfdW5pdHMgKHN0cnVjdCB0eXBlICp0eXBl KTsKK0BAIC0xNzkwLDcgKzE3OTAsNyBAQCBleHRlcm4gdW5zaWduZWQgaW50IHR5cGVfbGVuZ3Ro X3VuaXRzIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgCiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8g Y29uc3RydWN0IG9iamZpbGUtb3duZWQgdHlwZXMuICAqLwogIApAQCAtMTk4MCw3ICsxOTgwLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKICAJCQkgICAg ICAgY29uc3QgY2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmluaXRfaW50ZWdlcl90eXBl IChzdHJ1Y3Qgb2JqZmlsZSAqLCBpbnQsIGludCwKICAJCQkJICAgICAgIGNvbnN0IGNoYXIgKik7 Ci1AQCAtMTgwMCw3ICsxODAwLDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICppbml0X3BvaW50ZXJf dHlwZSAoc3RydWN0IG9iamZpbGUgKiwgaW50LCBjb25zdCBjaGFyICosCitAQCAtMTgwNyw3ICsx ODA3LDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICppbml0X3BvaW50ZXJfdHlwZSAoc3RydWN0IG9i amZpbGUgKiwgaW50LCBjb25zdCBjaGFyICosCiAgCQkJCSAgICAgICBzdHJ1Y3QgdHlwZSAqKTsK ICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBhcmNoaXRlY3R1cmUtb3duZWQg dHlwZXMuICAqLwpAQCAtMjEyMiw3ICsyMTIyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nby12YWxw cmludC5jIGIvZ2RiL2dvLXZhbHByaW50LmMKIGRpZmYgLS1naXQgYS9nZGIvaTM4Ni10ZGVwLmMg Yi9nZGIvaTM4Ni10ZGVwLmMKIC0tLSBhL2dkYi9pMzg2LXRkZXAuYwogKysrIGIvZ2RiL2kzODYt dGRlcC5jCi1AQCAtODE1Myw3ICs4MTUzLDcgQEAgaTM4Nl9mYXN0X3RyYWNlcG9pbnRfdmFsaWRf YXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYWRkciwKK0BAIC04MTU1LDcg KzgxNTUsNyBAQCBpMzg2X2Zhc3RfdHJhY2Vwb2ludF92YWxpZF9hdCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIENPUkVfQUREUiBhZGRyLAogIAogIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAq KgogIGkzODZfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApA QCAtMjM2MCw3ICsyMzYwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9tZW1yYW5nZS5oIGIvZ2RiL21l bXJhbmdlLmgKIGRpZmYgLS1naXQgYS9nZGIvbWlwcy1saW51eC1uYXQuYyBiL2dkYi9taXBzLWxp bnV4LW5hdC5jCiAtLS0gYS9nZGIvbWlwcy1saW51eC1uYXQuYwogKysrIGIvZ2RiL21pcHMtbGlu dXgtbmF0LmMKLUBAIC02MTQsNyArNjE0LDcgQEAgbWlwc19saW51eF9uYXRfdGFyZ2V0OjpzdG9w cGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICpwYWRkcikKK0BAIC02MTAsNyArNjEwLDcgQEAg bWlwc19saW51eF9uYXRfdGFyZ2V0OjpzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICpw YWRkcikKICAgICB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBjYW4gYmUgY292ZXJlZCBieSB0aGUgd2F0 Y2ggcmVnaXN0ZXJzLiAgKi8KICAKICBpbnQKQEAgLTI1NzcsNyArMjU3Nyw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvcC12YWxwcmludC5jIGIvZ2RiL3AtdmFscHJpbnQuYwogZGlmZiAtLWdpdCBhL2dk Yi9wcGMtbGludXgtbmF0LmMgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCiAtLS0gYS9nZGIvcHBjLWxp bnV4LW5hdC5jCiArKysgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCi1AQCAtMTMwOCw3ICsxMzA4LDcg QEAgcHBjX2xpbnV4X25hdF90YXJnZXQ6OmNhbl91c2VfaHdfYnJlYWtwb2ludCAoZW51bSBicHR5 cGUgdHlwZSwgaW50IGNudCwgaW50IG90KQorQEAgLTEzMDAsNyArMTMwMCw3IEBAIHBwY19saW51 eF9uYXRfdGFyZ2V0OjpjYW5fdXNlX2h3X2JyZWFrcG9pbnQgKGVudW0gYnB0eXBlIHR5cGUsIGlu dCBjbnQsIGludCBvdCkKICB9CiAgCiAgaW50CkBAIC0yNjIyLDcgKzI2MjIsNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwogZGlmZiAtLWdpdCBhL2dkYi9w cm9jZnMuYyBiL2dkYi9wcm9jZnMuYwogLS0tIGEvZ2RiL3Byb2Nmcy5jCiArKysgYi9nZGIvcHJv Y2ZzLmMKLUBAIC0zMzU4LDcgKzMzNTgsNyBAQCBwcm9jZnNfdGFyZ2V0OjpyZW1vdmVfd2F0Y2hw b2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCitAQCAtMzM2MSw3ICszMzYxLDcgQEAgcHJv Y2ZzX3RhcmdldDo6cmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLAog IH0KICAKICBpbnQKQEAgLTI2OTEsNyArMjY5MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcmVnY2Fj aGUuYyBiL2dkYi9yZWdjYWNoZS5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3JlZ2NhY2hlLmggYi9nZGIv cmVnY2FjaGUuaAogLS0tIGEvZ2RiL3JlZ2NhY2hlLmgKICsrKyBiL2dkYi9yZWdjYWNoZS5oCi1A QCAtMjQ0LDggKzI0NCw4IEBAIHB1YmxpYzoKK0BAIC0yNTYsOCArMjU2LDggQEAgcHVibGljOgog ICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgcmF3X3JlYWQgKGludCByZWdudW0sIFQgKnZhbCk7CiAg CiAgICAvKiBQYXJ0aWFsIHRyYW5zZmVyIG9mIHJhdyByZWdpc3RlcnMuICBSZXR1cm4gdGhlIHN0 YXR1cyBvZiB0aGUgcmVnaXN0ZXIuICAqLwpAQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9yZWdjYWNoZS5oIGIvZ2RiL3JlZ2NhY2hlLmgKICAKICAgIC8qIE1ha2UgY2VydGFp biB0aGF0IHRoZSByZWdpc3RlciBSRUdOVU0gaXMgdXAtdG8tZGF0ZS4gICovCiAgICB2aXJ0dWFs IHZvaWQgcmF3X3VwZGF0ZSAoaW50IHJlZ251bSkgPSAwOwotQEAgLTI1Nyw4ICsyNTcsOCBAQCBw dWJsaWM6CitAQCAtMjY5LDggKzI2OSw4IEBAIHB1YmxpYzoKICAgIGVudW0gcmVnaXN0ZXJfc3Rh dHVzIGNvb2tlZF9yZWFkIChpbnQgcmVnbnVtLCBUICp2YWwpOwogIAogICAgLyogUGFydGlhbCB0 cmFuc2ZlciBvZiBhIGNvb2tlZCByZWdpc3Rlci4gICovCkBAIC0yNzEzLDcgKzI3MTMsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL3JlZ2NhY2hlLmggYi9nZGIvcmVnY2FjaGUuaAogIAogICAgLyogUmVh ZCByZWdpc3RlciBSRUdOVU0gZnJvbSB0aGUgcmVnY2FjaGUgYW5kIHJldHVybiBhIG5ldyB2YWx1 ZS4gIFRoaXMKICAgICAgIHdpbGwgY2FsbCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIGFz IGFwcHJvcHJpYXRlLiAgKi8KLUBAIC0yNjgsNyArMjY4LDcgQEAgcHJvdGVjdGVkOgorQEAgLTI4 MCw3ICsyODAsNyBAQCBwcm90ZWN0ZWQ6CiAgCiAgICAvKiBQZXJmb3JtIGEgcGFydGlhbCByZWdp c3RlciB0cmFuc2ZlciB1c2luZyBhIHJlYWQsIG1vZGlmeSwgd3JpdGUKICAgICAgIG9wZXJhdGlv bi4gIFdpbGwgZmFpbCBpZiByZWdpc3RlciBpcyBjdXJyZW50bHkgaW52YWxpZC4gICovCkBAIC0y NzIyLDcgKzI3MjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlZ2NhY2hlLmggYi9nZGIvcmVnY2Fj aGUuaAogIAkJCQkgIGdkYl9ieXRlICpvdXQsIGJvb2wgaXNfcmF3KTsKICB9OwogIAotQEAgLTMy NiwxMSArMzI2LDEyIEBAIHB1YmxpYzoKK0BAIC0zMzgsMTEgKzMzOCwxMiBAQCBwdWJsaWM6CiAg CiAgICAvKiBQYXJ0aWFsIHRyYW5zZmVyIG9mIHJhdyByZWdpc3RlcnMuICBQZXJmb3JtIHJlYWQs IG1vZGlmeSwgd3JpdGUgc3R5bGUKICAgICAgIG9wZXJhdGlvbnMuICAqLwpAQCAtMjczNyw3ICsy NzM3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZWdjYWNoZS5oIGIvZ2RiL3JlZ2NhY2hlLmgKICAJ CQkgIGNvbnN0IGdkYl9ieXRlICpidWYpOwogIAogICAgdm9pZCBzdXBwbHlfcmVnc2V0IChjb25z dCBzdHJ1Y3QgcmVnc2V0ICpyZWdzZXQsCi1AQCAtMzgxLDcgKzM4Miw3IEBAIHByaXZhdGU6CitA QCAtMzkzLDcgKzM5NCw3IEBAIHByaXZhdGU6CiAgCiAgICAvKiBQZXJmb3JtIGEgcGFydGlhbCBy ZWdpc3RlciB0cmFuc2ZlciB1c2luZyBhIHJlYWQsIG1vZGlmeSwgd3JpdGUKICAgICAgIG9wZXJh dGlvbi4gICovCkBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5j IGIvZ2RiL3JlbW90ZS5jCiAgCiAgICBpbnQgaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiwg aW50LCBlbnVtIHRhcmdldF9od19icF90eXBlLAogIAkJCSBzdHJ1Y3QgZXhwcmVzc2lvbiAqKSBv dmVycmlkZTsKLUBAIC0xMDQxMyw3ICsxMDQxMyw3IEBAIGludCByZW1vdGVfaHdfd2F0Y2hwb2lu dF9sZW5ndGhfbGltaXQgPSAtMTsKK0BAIC0xMDQ0Niw3ICsxMDQ0Niw3IEBAIGludCByZW1vdGVf aHdfd2F0Y2hwb2ludF9sZW5ndGhfbGltaXQgPSAtMTsKICBpbnQgcmVtb3RlX2h3X2JyZWFrcG9p bnRfbGltaXQgPSAtMTsKICAKICBpbnQKQEAgLTI3NzAsNyArMjc3MCw3IEBAIGRpZmYgLS1naXQg YS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKIGRpZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5n LmMgYi9nZGIvcnVzdC1sYW5nLmMKIC0tLSBhL2dkYi9ydXN0LWxhbmcuYwogKysrIGIvZ2RiL3J1 c3QtbGFuZy5jCi1AQCAtMjg4LDcgKzI4OCw3IEBAIHJ1c3RfcHJpbnRjaGFyIChpbnQgYywgc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCitAQCAtMzAxLDcgKzMwMSw3 IEBAIHJ1c3RfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0pCiAgCiAgc3RhdGljIHZvaWQKICBydXN0X3ByaW50c3RyIChzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI3NzksNyArMjc3OSw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMKICAJICAgICAgIGNv bnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC00OTcsNyAr NDk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZWNvcmF0aW9u cyBydXN0X2RlY29yYXRpb25zID0KK0BAIC01MTcsNyArNTE3LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZWNvcmF0aW9ucyBydXN0X2RlY29yYXRpb25zID0KICAv KiBsYV92YWxfcHJpbnQgaW1wbGVtZW50YXRpb24gZm9yIFJ1c3QuICAqLwogIAogIHN0YXRpYyB2 b2lkCkBAIC0yNzkxLDcgKzI3OTEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIv Z2RiL3J1c3QtbGFuZy5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3MzOTAtbGludXgtbmF0LmMgYi9nZGIv czM5MC1saW51eC1uYXQuYwogLS0tIGEvZ2RiL3MzOTAtbGludXgtbmF0LmMKICsrKyBiL2dkYi9z MzkwLWxpbnV4LW5hdC5jCi1AQCAtOTUyLDcgKzk1Miw4IEBAIHMzOTBfbGludXhfbmF0X3Rhcmdl dDo6cmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTk1 MSw3ICs5NTEsOCBAQCBzMzkwX2xpbnV4X25hdF90YXJnZXQ6OnJlbW92ZV9od19icmVha3BvaW50 IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICB9CiAgCiAgaW50CkBAIC0yODg0LDggKzI4ODQs OCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3N5bW1pc2MuYyBiL2dkYi9zeW1taXNjLmMKIGRpZmYgLS1n aXQgYS9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogLS0t IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogKysrIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwot QEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IGR1bW15X3RhcmdldCA6IHB1YmxpYyB0YXJnZXRfb3Bz Ci0gICBib29sIGhhdmVfY29udGludWFibGVfd2F0Y2hwb2ludCAoKSBvdmVycmlkZTsKK0BAIC0z OCw3ICszOCw3IEBAIHN0cnVjdCBkdW1teV90YXJnZXQgOiBwdWJsaWMgdGFyZ2V0X29wcworICAg aW50IGhhdmVfc3RlcHBhYmxlX3dhdGNocG9pbnQgKCkgb3ZlcnJpZGU7CiAgICBib29sIHN0b3Bw ZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIgKmFyZzApIG92ZXJyaWRlOwogICAgYm9vbCB3YXRj aHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChDT1JFX0FERFIgYXJnMCwgQ09SRV9BRERSIGFyZzEs IGludCBhcmcyKSBvdmVycmlkZTsKIC0gIGludCByZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KENPUkVfQUREUiBhcmcwLCBpbnQgYXJnMSkgb3ZlcnJpZGU7CkBAIC0yODkzLDggKzI4OTMsOCBA QCBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdh dGVzLmMKICAgIGJvb2wgY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FERFIg YXJnMCwgaW50IGFyZzEsIGludCBhcmcyLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqYXJnMykgb3ZlcnJp ZGU7CiAgICBpbnQgbWFza2VkX3dhdGNoX251bV9yZWdpc3RlcnMgKENPUkVfQUREUiBhcmcwLCBD T1JFX0FERFIgYXJnMSkgb3ZlcnJpZGU7CiAgICBpbnQgY2FuX2RvX3NpbmdsZV9zdGVwICgpIG92 ZXJyaWRlOwotQEAgLTIwNyw3ICsyMDcsNyBAQCBzdHJ1Y3QgZGVidWdfdGFyZ2V0IDogcHVibGlj IHRhcmdldF9vcHMKLSAgIGJvb2wgaGF2ZV9jb250aW51YWJsZV93YXRjaHBvaW50ICgpIG92ZXJy aWRlOworQEAgLTIwNSw3ICsyMDUsNyBAQCBzdHJ1Y3QgZGVidWdfdGFyZ2V0IDogcHVibGljIHRh cmdldF9vcHMKKyAgIGludCBoYXZlX3N0ZXBwYWJsZV93YXRjaHBvaW50ICgpIG92ZXJyaWRlOwog ICAgYm9vbCBzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICphcmcwKSBvdmVycmlkZTsK ICAgIGJvb2wgd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENP UkVfQUREUiBhcmcxLCBpbnQgYXJnMikgb3ZlcnJpZGU7CiAtICBpbnQgcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50IChDT1JFX0FERFIgYXJnMCwgaW50IGFyZzEpIG92ZXJyaWRlOwpAQCAtMjkw Miw3ICsyOTAyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMgYi9nZGIv dGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBib29sIGNhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlv biAoQ09SRV9BRERSIGFyZzAsIGludCBhcmcxLCBpbnQgYXJnMiwgc3RydWN0IGV4cHJlc3Npb24g KmFyZzMpIG92ZXJyaWRlOwogICAgaW50IG1hc2tlZF93YXRjaF9udW1fcmVnaXN0ZXJzIChDT1JF X0FERFIgYXJnMCwgQ09SRV9BRERSIGFyZzEpIG92ZXJyaWRlOwogICAgaW50IGNhbl9kb19zaW5n bGVfc3RlcCAoKSBvdmVycmlkZTsKLUBAIC0xMDk4LDE5ICsxMDk4LDE5IEBAIGRlYnVnX3Rhcmdl dDo6d2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQURE UiBhcmcxLCBpbnQKK0BAIC0xMDcxLDE5ICsxMDcxLDE5IEBAIGRlYnVnX3RhcmdldDo6d2F0Y2hw b2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxLCBp bnQKICB9CiAgCiAgaW50CkBAIC0yOTI1LDcgKzI5MjUsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rh cmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVz dWx0OwogICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnJlZ2lvbl9v a19mb3JfaHdfd2F0Y2hwb2ludCAoLi4uKVxuIiwgdGhpcy0+YmVuZWF0aCAoKS0+c2hvcnRuYW1l ICgpKTsKLUBAIC0xMTE4LDcgKzExMTgsNyBAQCBkZWJ1Z190YXJnZXQ6OnJlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFyZzAsIGludCBhcmcxKQorQEAgLTEwOTEsNyArMTA5 MSw3IEBAIGRlYnVnX3RhcmdldDo6cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FE RFIgYXJnMCwgaW50IGFyZzEpCiAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csICI8 LSAlcy0+cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50ICgiLCB0aGlzLT5iZW5lYXRoICgpLT5z aG9ydG5hbWUgKCkpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMCk7CiAg ICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKQEAgLTI5NDYsNyArMjk0Niw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMg dm9pZCBkZWZhdWx0X3JjbWQgKHN0cnVjdCB0YXJnZXRfb3BzICosIGNvbnN0IGNoYXIgKiwgc3Ry dWN0IHVpX2ZpbGUgKik7CiAgCi1AQCAtMzE4MSw3ICszMTgxLDcgQEAgdGFyZ2V0X2ZpbGVpb19y ZWFkX3N0cmFsbG9jIChzdHJ1Y3QgaW5mZXJpb3IgKmluZiwgY29uc3QgY2hhciAqZmlsZW5hbWUp CitAQCAtMzE4NCw3ICszMTg0LDcgQEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIChzdHJ1 Y3QgaW5mZXJpb3IgKmluZiwgY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgCiAgc3RhdGljIGludAog IGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAq c2VsZiwKQEAgLTI5NTgsNyArMjk1OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9n ZGIvdGFyZ2V0LmMKIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmggYi9nZGIvdGFyZ2V0LmgKIC0t LSBhL2dkYi90YXJnZXQuaAogKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtNTYyLDcgKzU2Miw3IEBA IHN0cnVjdCB0YXJnZXRfb3BzCitAQCAtNTYzLDcgKzU2Myw3IEBAIHN0cnVjdCB0YXJnZXRfb3Bz CiAgCiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdp dGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLwpAQCAtMjk3 MCwxMiArMjk3MCwxMiBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC5oIGIvZ2RiL3RhcmdldC5o CiBkaWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dkYi90cmFjZXBvaW50LmMKIC0tLSBh L2dkYi90cmFjZXBvaW50LmMKICsrKyBiL2dkYi90cmFjZXBvaW50LmMKLUBAIC04MjksMTAgKzgy OSwxMCBAQCBjb2xsZWN0aW9uX2xpc3Q6OmFkZF9yZWdpc3RlciAodW5zaWduZWQgaW50IHJlZ25v KQorQEAgLTg5MywxMCArODkzLDEwIEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX2xvY2FsX3JlZ2lz dGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICB2b2lkCiAgY29sbGVjdGlvbl9saXN0Ojph ZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSAgICAgICBpbnQgdHlw ZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKLS0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBsZW4pCi0r CQkJICAgICAgIFVMT05HRVNUIGxlbikKKy0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBsZW4sIENP UkVfQUREUiBzY29wZSkKKysJCQkgICAgICAgVUxPTkdFU1QgbGVuLCBDT1JFX0FERFIgc2NvcGUp CiAgewogICAgaWYgKGluZm9fdmVyYm9zZSkKIC0gICAgcHJpbnRmX2ZpbHRlcmVkICgiKCVkLCVz LCVsZClcbiIsIHR5cGUsIHBhZGRyZXNzIChnZGJhcmNoLCBiYXNlKSwgbGVuKTsKQEAgLTI5ODMs NyArMjk4Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3RyYWNlcG9p bnQuYwogIAogICAgLyogdHlwZTogbWVtcmFuZ2VfYWJzb2x1dGUgPT0gbWVtb3J5LCBvdGhlciBu ID09IGJhc2VyZWcgKi8KICAgIC8qIGJhc2U6IGFkZHIgaWYgbWVtb3J5LCBvZmZzZXQgaWYgcmVn IHJlbGF0aXZlLiAgKi8KLUBAIC04NTIsNyArODUyLDcgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xs ZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTkxNiw3ICs5MTYsNyBAQCBjb2xs ZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgCQkJCSBD T1JFX0FERFIgc2NvcGUsCiAgCQkJCSBpbnQgdHJhY2Vfc3RyaW5nKQogIHsKQEAgLTI5OTIsNyAr Mjk5Miw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3RyYWNlcG9pbnQu YwogICAgdW5zaWduZWQgaW50IHJlZzsKICAgIGJmZF9zaWduZWRfdm1hIG9mZnNldDsKICAgIGlu dCB0cmVhdF9hc19leHByID0gMDsKLUBAIC04NzMsOCArODczLDggQEAgY29sbGVjdGlvbl9saXN0 Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTkzNyw4ICs5MzcsOCBA QCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAg ICAgICAgb2Zmc2V0ID0gU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHN5bSk7CiAgICAgICAgaWYgKGlu Zm9fdmVyYm9zZSkKICAJewpAQCAtMzAwMyw3ICszMDAzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90 cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAgcGFkZHJlc3MgKGdkYmFyY2gs IG9mZnNldCkpOwogIAl9CiAgICAgICAgLyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysrIGNsYXNzIHdp dGggc3RhdGljIGZpZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAgLTkwNiw5ICs5MDYsOSBAQCBjb2xs ZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtOTcw LDkgKzk3MCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6Y29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1i b2wgKnN5bSwKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5 bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzAxNCw4ICszMDE0LDggQEAg ZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCiArCQkJICAg U1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKICAJCQkgICBwYWRkcmVz cyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKICAJfQotICAgICAgIGFkZF9tZW1yYW5nZSAoZ2Ri YXJjaCwgcmVnLCBvZmZzZXQsIGxlbik7Ci1AQCAtOTE4LDkgKzkxOCw5IEBAIGNvbGxlY3Rpb25f bGlzdDo6Y29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1ib2wgKnN5bSwKKyAgICAgICBhZGRfbWVt cmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4sIHNjb3BlKTsKK0BAIC05ODIsOSArOTgy LDkgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3lt LAogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAt MzAyNiw4ICszMDI2LDggQEAgZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJh Y2Vwb2ludC5jCiArCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVu KSwKICAJCQkgICBwYWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKICAJfQotICAgICAg IGFkZF9tZW1yYW5nZSAoZ2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbik7Ci1AQCAtOTMwLDkgKzkz MCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6Y29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1ib2wgKnN5 bSwKKyAgICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4sIHNjb3Bl KTsKK0BAIC05OTQsOSArOTk0LDkgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAo c3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJP TF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMDM4LDgg KzMwMzgsOCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dkYi90cmFjZXBvaW50 LmMKICsJCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pLAogIAkJ CSAgIHBhZGRyZXNzIChnZGJhcmNoLCBvZmZzZXQpLCByZWcpOwogIAl9Ci0gICAgICAgYWRkX21l bXJhbmdlIChnZGJhcmNoLCByZWcsIG9mZnNldCwgbGVuKTsKLUBAIC0yNDQ3LDcgKzI0NDcsOCBA QCBpbmZvX3Njb3BlX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3NfaW4sIGludCBmcm9tX3R0eSkK KyAgICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4sIHNjb3BlKTsK K0BAIC0yNDkyLDcgKzI0OTIsOCBAQCBpbmZvX3Njb3BlX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFy Z3NfaW4sIGludCBmcm9tX3R0eSkKICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CiAgICBjb25zdCBj aGFyICpzYXZlX2FyZ3MgPSBhcmdzX2luOwogICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7 CkBAIC0zMDQ5LDcgKzMwNDksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dk Yi90cmFjZXBvaW50LmMKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgaW50IHJlZ25v OwogICAgY29uc3QgY2hhciAqYXJncyA9IGFyZ3NfaW47Ci1AQCAtMjU5MSw4ICsyNTkyLDExIEBA IGluZm9fc2NvcGVfY29tbWFuZCAoY29uc3QgY2hhciAqYXJnc19pbiwgaW50IGZyb21fdHR5KQor QEAgLTI2MzYsOCArMjYzNywxMSBAQCBpbmZvX3Njb3BlX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFy Z3NfaW4sIGludCBmcm9tX3R0eSkKICAJCX0KICAJICAgIH0KICAJICBpZiAoU1lNQk9MX1RZUEUg KHN5bSkpCkBAIC0zMDY2LDEyICszMDY2LDEyIEBAIGRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2lu dC5jIGIvZ2RiL3RyYWNlcG9pbnQuYwogZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmggYi9n ZGIvdHJhY2Vwb2ludC5oCiAtLS0gYS9nZGIvdHJhY2Vwb2ludC5oCiArKysgYi9nZGIvdHJhY2Vw b2ludC5oCi1AQCAtMjY1LDcgKzI2NSw3IEBAIHB1YmxpYzoKLSAgIHZvaWQgYWRkX3JlZ2lzdGVy ICh1bnNpZ25lZCBpbnQgcmVnbm8pOworQEAgLTI2OSw3ICsyNjksNyBAQCBwdWJsaWM6CisgCQkJ ICAgQ09SRV9BRERSIHNjb3BlKTsKICAgIHZvaWQgYWRkX21lbXJhbmdlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwKICAJCSAgICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCi0tCQkg ICAgIHVuc2lnbmVkIGxvbmcgbGVuKTsKLSsJCSAgICAgVUxPTkdFU1QgbGVuKTsKKy0JCSAgICAg dW5zaWduZWQgbG9uZyBsZW4sIENPUkVfQUREUiBzY29wZSk7CisrCQkgICAgIFVMT05HRVNUIGxl biwgQ09SRV9BRERSIHNjb3BlKTsKICAgIHZvaWQgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1i b2wgKnN5bSwKICAJCSAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCSAgICAgICBs b25nIGZyYW1lX3JlZ25vLCBsb25nIGZyYW1lX29mZnNldCwKQEAgLTMxMTEsNyArMzExMSw3IEBA IGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiAgewogICAgc3Ry dWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkp OwogICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRf VFlQRSAoYXJyYXlfdHlwZSkpOwotQEAgLTY1OSw3ICs2NTksNyBAQCB2YWx1ZV9jb25jYXQgKHN0 cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0IHZhbHVlICphcmcyKQorQEAgLTY1Nyw3ICs2NTcsNyBA QCB2YWx1ZV9jb25jYXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0IHZhbHVlICphcmcyKQog ICAgc3RydWN0IHZhbHVlICppbnZhbDE7CiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMjsKICAgIHN0 cnVjdCB2YWx1ZSAqb3V0dmFsID0gTlVMTDsKQEAgLTMxMjAsNyArMzEyMCw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291bnQsIGlkeDsK ICAgIGNoYXIgaW5jaGFyOwogICAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTE0MTksNyArMTQxOSw3IEBAIHZhbHVlX2Jpbm9wIChz dHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMiwgZW51bSBleHBfb3Bjb2RlIG9w KQorQEAgLTE0MTcsNyArMTQxNyw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEs IHN0cnVjdCB2YWx1ZSAqYXJnMiwgZW51bSBleHBfb3Bjb2RlIG9wKQogIGludAogIHZhbHVlX2xv Z2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewpAQCAtMzEyOSw3ICszMTI5LDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKICAgIGNvbnN0IGdk Yl9ieXRlICpwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxOwogIAotQEAgLTE0NDcsMTEgKzE0NDcs MTEgQEAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNDQ1LDEx ICsxNDQ1LDExIEBAIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgc3Rh dGljIGludAogIHZhbHVlX3N0cmNtcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUg KmFyZzIpCiAgewpAQCAtMzE4OSw3ICszMTg5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMu YyBiL2dkYi92YWxvcHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VT VCldOwogIAogIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTMzNTcsNyArMzM1Nyw3 IEBAIGNvbXBhcmVfcGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKnQxLCBzdHJ1Y3QgdHlwZSAqdDIs IGludCBza2lwX2FydGlmaWNpYWwpCitAQCAtMzM1Niw3ICszMzU2LDcgQEAgY29tcGFyZV9wYXJh bWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEsIHN0cnVjdCB0eXBlICp0MiwgaW50IHNraXBfYXJ0aWZp Y2lhbCkKICAgICB0aGUgZm9ybSAiRE9NQUlOOjpOQU1FIi4gICovCiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqCkBAIC0zMTk4LDcgKzMxOTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5j IGIvZ2RiL3ZhbG9wcy5jCiAgCQkJCXN0cnVjdCB0eXBlICpjdXJ0eXBlLCBjb25zdCBjaGFyICpu YW1lLAogIAkJCQlzdHJ1Y3QgdHlwZSAqaW50eXBlLCAKICAJCQkJaW50IHdhbnRfYWRkcmVzcywK LUBAIC0zMzkxLDcgKzMzOTEsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0 cnVjdCB0eXBlICpkb21haW4sIGludCBvZmZzZXQsCitAQCAtMzM5MCw3ICszMzkwLDcgQEAgdmFs dWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBpbnQgb2Zm c2V0LAogIAkgIGlmICh3YW50X2FkZHJlc3MpCiAgCSAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25n ZXN0CiAgCSAgICAgIChsb29rdXBfbWVtYmVycHRyX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodCwg aSksIGRvbWFpbiksCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9w cy5jIGIvZ2RiL3ZhbG9wcy5jCiAgCSAgZWxzZSBpZiAobm9zaWRlICE9IEVWQUxfTk9STUFMKQog IAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpKTsKICAJ ICBlbHNlCi1AQCAtMzU2NCw3ICszNTY0LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJl bmNlIChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBpbnQgb2Zmc2V0LAorQEAgLTM1NjMsNyArMzU2Myw3 IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKmRvbWFpbiwg aW50IG9mZnNldCwKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49 IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKQEAgLTMyMTYsNyArMzIx Niw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKICAKICAgICAg ICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHQsIGkpKQogIAliYXNlX29mZnNldCA9IDA7Ci1A QCAtMzcxMyw3ICszNzEzLDcgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFs dWUgKnYsIGludCAqZnVsbCwKK0BAIC0zNzEyLDcgKzM3MTIsNyBAQCB2YWx1ZV9ydHRpX2luZGly ZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAogIHN0cnVjdCB2YWx1ZSAqCiAg dmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlw ZSAqcnR5cGUsIApAQCAtMzI3OCw3ICszMjc4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi92YWxwcmlu dC5jIGIvZ2RiL3ZhbHByaW50LmMKICAJICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJ ICBpID0gcmVwMSAtIDE7Ci1AQCAtMjY2OSw3ICsyNjY5LDcgQEAgcHJpbnRfY29udmVydGVkX2No YXJzX3RvX29ic3RhY2sgKHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrLAorQEAgLTI2NjgsNyArMjY2 OCw3IEBAIHByaW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0YWNrIChzdHJ1Y3Qgb2JzdGFjayAq b2JzdGFjaywKICAKICB2b2lkCiAgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMzQ0Myw3ICszNDQzLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi94ODYtbmF0LmggYi9nZGIveDg2LW5hdC5oCiAgZXh0ZXJuIGludCB4ODZfc3RvcHBl ZF9ieV93YXRjaHBvaW50ICgpOwogIGV4dGVybiBpbnQgeDg2X3N0b3BwZWRfZGF0YV9hZGRyZXNz IChDT1JFX0FERFIgKmFkZHJfcCk7CiAgZXh0ZXJuIGludCB4ODZfaW5zZXJ0X3dhdGNocG9pbnQg KENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLAotQEAgLTgyLDcgKzgyLDcgQEAgc3RydWN0IHg4Nl9u YXRfdGFyZ2V0IDogcHVibGljIEJhc2VUYXJnZXQKK0BAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCB4 ODZfbmF0X3RhcmdldCA6IHB1YmxpYyBCYXNlVGFyZ2V0CiAgICBpbnQgY2FuX3VzZV9od19icmVh a3BvaW50IChlbnVtIGJwdHlwZSB0eXBlLCBpbnQgY250LCBpbnQgb3RoZXJ0eXBlKSBvdmVycmlk ZQogICAgeyByZXR1cm4geDg2X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAodHlwZSwgY250LCBvdGhl cnR5cGUpOyB9CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5w YXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gKaW5kZXggNTYxN2E1MC4u YTcwMjU0ZiAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaAor KysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoCkBAIC0xMTEsNyArMTExLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9wLXZhbHByaW50LmMgYi9nZGIvcC12YWxwcmludC5jCiBkaWZm IC0tZ2l0IGEvZ2RiL3V0aWxzLmMgYi9nZGIvdXRpbHMuYwogLS0tIGEvZ2RiL3V0aWxzLmMKICsr KyBiL2dkYi91dGlscy5jCi1AQCAtMjgzNCw2ICsyODM0LDE3IEBAIHN0cmluZ190b19jb3JlX2Fk ZHIgKGNvbnN0IGNoYXIgKm15X3N0cmluZykKK0BAIC0yODA3LDYgKzI4MDcsMTcgQEAgc3RyaW5n X3RvX2NvcmVfYWRkciAoY29uc3QgY2hhciAqbXlfc3RyaW5nKQogICAgcmV0dXJuIGFkZHI7CiAg fQogIApAQCAtMTMyLDcgKzEzMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dkYi91 dGlscy5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCiAtLS0gYS9n ZGIvdmFsb3BzLmMKICsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTIwODgsNiArMjA4OCw3IEBAIHNl YXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcx cCwKK0BAIC0yMDg3LDYgKzIwODcsNyBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hh ciAqbmFtZSwgc3RydWN0IHZhbHVlICoqYXJnMXAsCiAgCSAgICB7CiAgCSAgICAgIENPUkVfQURE UiBhZGRyZXNzOwogIApAQCAtMTYwLDcgKzE2MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUu YyBiL2dkYi92YWx1ZS5jCiAgICBpZiAoIXZhbC0+Y29udGVudHMpCiAgICAgIHsKICAgICAgICBj aGVja190eXBlX2xlbmd0aF9iZWZvcmVfYWxsb2MgKHZhbC0+ZW5jbG9zaW5nX3R5cGUpOwotQEAg LTI4NzYsNiArMjg3OSw3IEBAIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVl ICp2YWwsIHN0cnVjdCB0eXBlICpuZXdfZW5jbF90eXBlKQorQEAgLTI4NzUsNiArMjg3OCw3IEBA IHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB0eXBl ICpuZXdfZW5jbF90eXBlKQogICAgaWYgKFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSA+IFRZ UEVfTEVOR1RIICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSkpCiAgICAgIHsKICAgICAgICBj aGVja190eXBlX2xlbmd0aF9iZWZvcmVfYWxsb2MgKG5ld19lbmNsX3R5cGUpOwoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtMjJvZjI1LnBhdGNoCmluZGV4IDgwNzJmNzcuLjllNjg4MmMgMTAwNjQ0Ci0tLSBhL2dk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0 cG9zLTIyb2YyNS5wYXRjaApAQCAtMTU0LDcgKzE1NCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYXJt LWxpbnV4LW5hdC5jIGIvZ2RiL2FybS1saW51eC1uYXQuYwogIAogICAgY29uc3Qgc3RydWN0IHRh cmdldF9kZXNjICpyZWFkX2Rlc2NyaXB0aW9uICgpIG92ZXJyaWRlOwogIAotQEAgLTEyMDcsNyAr MTIwNyw3IEBAIGFybV9saW51eF9uYXRfdGFyZ2V0OjpzdG9wcGVkX2J5X3dhdGNocG9pbnQgKCkK K0BAIC0xMjAzLDcgKzEyMDMsNyBAQCBhcm1fbGludXhfbmF0X3RhcmdldDo6c3RvcHBlZF9ieV93 YXRjaHBvaW50ICgpCiAgYm9vbAogIGFybV9saW51eF9uYXRfdGFyZ2V0Ojp3YXRjaHBvaW50X2Fk ZHJfd2l0aGluX3JhbmdlIChDT1JFX0FERFIgYWRkciwKICAJCQkJCQkgICAgQ09SRV9BRERSIHN0 YXJ0LApAQCAtMjk5LDcgKzI5OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5j IGIvZ2RiL3BwYy1saW51eC1uYXQuYwogICAgICBvdmVycmlkZTsKICAKICAgIGludCBtYXNrZWRf d2F0Y2hfbnVtX3JlZ2lzdGVycyAoQ09SRV9BRERSLCBDT1JFX0FERFIpIG92ZXJyaWRlOwotQEAg LTE2NTksMTEgKzE2NTksMTEgQEAgY2FuX3VzZV93YXRjaHBvaW50X2NvbmRfYWNjZWwgKHZvaWQp CitAQCAtMTY0OSwxMSArMTY0OSwxMSBAQCBjYW5fdXNlX3dhdGNocG9pbnRfY29uZF9hY2NlbCAo dm9pZCkKICAgICBDT05ESVRJT05fVkFMVUUgd2lsbCBob2xkIHRoZSB2YWx1ZSB3aGljaCBzaG91 bGQgYmUgcHV0IGluIHRoZQogICAgIERWQyByZWdpc3Rlci4gICovCiAgc3RhdGljIHZvaWQKQEAg LTMxNCw3ICszMTQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3BwYy1saW51eC1uYXQuYyBiL2dkYi9w cGMtbGludXgtbmF0LmMKICAgIENPUkVfQUREUiBhZGRyX2VuZF9kYXRhLCBhZGRyX2VuZF9kdmM7 CiAgCiAgICAvKiBUaGUgRFZDIHJlZ2lzdGVyIGNvbXBhcmVzIGJ5dGVzIHdpdGhpbiBmaXhlZC1s ZW5ndGggd2luZG93cyB3aGljaAotQEAgLTE3NTEsNyArMTc1MSw3IEBAIG51bV9tZW1vcnlfYWNj ZXNzZXMgKGNvbnN0IHN0ZDo6dmVjdG9yPHZhbHVlX3JlZl9wdHI+ICZjaGFpbikKK0BAIC0xNzQx LDcgKzE3NDEsNyBAQCBudW1fbWVtb3J5X2FjY2Vzc2VzIChjb25zdCBzdGQ6OnZlY3Rvcjx2YWx1 ZV9yZWZfcHRyPiAmY2hhaW4pCiAgICAgb2YgdGhlIGNvbnN0YW50LiAgKi8KICBzdGF0aWMgaW50 CiAgY2hlY2tfY29uZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hfYWRkciwgc3RydWN0IGV4cHJlc3Np b24gKmNvbmQsCkBAIC0zMjMsNyArMzIzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9wcGMtbGludXgt bmF0LmMgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAgaW50IHBjID0gMSwgbnVtX2FjY2Vz c2VzX2xlZnQsIG51bV9hY2Nlc3Nlc19yaWdodDsKICAgIHN0cnVjdCB2YWx1ZSAqbGVmdF92YWws ICpyaWdodF92YWw7Ci1AQCAtMTgwMiw3ICsxODAyLDggQEAgY2hlY2tfY29uZGl0aW9uIChDT1JF X0FERFIgd2F0Y2hfYWRkciwgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCitAQCAtMTc5Miw3ICsx NzkyLDggQEAgY2hlY2tfY29uZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hfYWRkciwgc3RydWN0IGV4 cHJlc3Npb24gKmNvbmQsCiAgICAgdGhlIGNvbmRpdGlvbiBleHByZXNzaW9uLCB0aHVzIG9ubHkg dHJpZ2dlcmluZyB0aGUgd2F0Y2hwb2ludCB3aGVuIGl0IGlzCiAgICAgdHJ1ZS4gICovCiAgYm9v bApAQCAtMzMzLDcgKzMzMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIv Z2RiL3BwYy1saW51eC1uYXQuYwogIAkJCQkJCSAgICAgIGludCBydywKICAJCQkJCQkgICAgICBz dHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKICB7Ci1AQCAtMTgyMCw3ICsxODIxLDcgQEAgcHBjX2xp bnV4X25hdF90YXJnZXQ6OmNhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERS IGFkZHIsIGludCBsZW4sCitAQCAtMTgxMCw3ICsxODExLDcgQEAgcHBjX2xpbnV4X25hdF90YXJn ZXQ6OmNhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSIGFkZHIsIGludCBs ZW4sCiAgCiAgc3RhdGljIHZvaWQKICBjcmVhdGVfd2F0Y2hwb2ludF9yZXF1ZXN0IChzdHJ1Y3Qg cHBjX2h3X2JyZWFrcG9pbnQgKnAsIENPUkVfQUREUiBhZGRyLApAQCAtMzQyLDcgKzM0Miw3IEBA IGRpZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51eC1uYXQuYwog IAkJCSAgIHN0cnVjdCBleHByZXNzaW9uICpjb25kLCBpbnQgaW5zZXJ0KQogIHsKICAgIGlmIChs ZW4gPT0gMQotQEAgLTIwODYsNyArMjA4Nyw3IEBAIHBwY19saW51eF9uYXRfdGFyZ2V0OjpzdG9w cGVkX2J5X3dhdGNocG9pbnQgKCkKK0BAIC0yMDc2LDcgKzIwNzcsNyBAQCBwcGNfbGludXhfbmF0 X3RhcmdldDo6c3RvcHBlZF9ieV93YXRjaHBvaW50ICgpCiAgYm9vbAogIHBwY19saW51eF9uYXRf dGFyZ2V0Ojp3YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChDT1JFX0FERFIgYWRkciwKICAJ CQkJCQkgICAgQ09SRV9BRERSIHN0YXJ0LApAQCAtMzU0LDcgKzM1NCw3IEBAIGRpZmYgLS1naXQg YS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51eC1uYXQuYwogZGlmZiAtLWdpdCBh L2dkYi9wcm9jZnMuYyBiL2dkYi9wcm9jZnMuYwogLS0tIGEvZ2RiL3Byb2Nmcy5jCiArKysgYi9n ZGIvcHJvY2ZzLmMKLUBAIC0xNTYxLDcgKzE1NjEsNyBAQCBwcm9jZnNfYWRkcmVzc190b19ob3N0 X3BvaW50ZXIgKENPUkVfQUREUiBhZGRyKQorQEAgLTE1NjUsNyArMTU2NSw3IEBAIHByb2Nmc19h ZGRyZXNzX3RvX2hvc3RfcG9pbnRlciAoQ09SRV9BRERSIGFkZHIpCiAgfQogIAogIHN0YXRpYyBp bnQKQEAgLTM2Myw3ICszNjMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Byb2Nmcy5jIGIvZ2RiL3By b2Nmcy5jCiAgewogICAgc3RydWN0IHsKICAgICAgcHJvY2ZzX2N0bF90IGNtZDsKLUBAIC0zMjE0 LDcgKzMyMTQsNyBAQCBwcm9jZnNfdGFyZ2V0OjpwaWRfdG9fc3RyIChwdGlkX3QgcHRpZCkKK0BA IC0zMjE3LDcgKzMyMTcsNyBAQCBwcm9jZnNfdGFyZ2V0OjpwaWRfdG9fc3RyIChwdGlkX3QgcHRp ZCkKICAvKiBJbnNlcnQgYSB3YXRjaHBvaW50LiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC0zODQs NyArMzg0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwogIAog ICAgaW50IGNhbl91c2VfaHdfYnJlYWtwb2ludCAoZW51bSBicHR5cGUsIGludCwgaW50KSBvdmVy cmlkZTsKICAKLUBAIC0xMDM0Miw3ICsxMDM0Miw3IEBAIHJlbW90ZV90YXJnZXQ6Omluc2VydF93 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKK0BAIC0xMDM3NSw3ICsxMDM3NSw3 IEBAIHJlbW90ZV90YXJnZXQ6Omluc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50 IGxlbiwKICAgIHAgPSBzdHJjaHIgKHJzLT5idWYsICdcMCcpOwogICAgYWRkciA9IHJlbW90ZV9h ZGRyZXNzX21hc2tlZCAoYWRkcik7CiAgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBh ZGRyKTsKQEAgLTM5Myw3ICszOTMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2Ri L3JlbW90ZS5jCiAgCiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0ICgmcnMtPmJ1Ziwg JnJzLT5idWZfc2l6ZSwgMCk7Ci1AQCAtMTAzNjIsNyArMTAzNjIsNyBAQCByZW1vdGVfdGFyZ2V0 OjppbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCitAQCAtMTAzOTUs NyArMTAzOTUsNyBAQCByZW1vdGVfdGFyZ2V0OjppbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIGludCBsZW4sCiAgCiAgYm9vbAogIHJlbW90ZV90YXJnZXQ6OndhdGNocG9pbnRfYWRk cl93aXRoaW5fcmFuZ2UgKENPUkVfQUREUiBhZGRyLApAQCAtNDAyLDcgKzQwMiw3IEBAIGRpZmYg LS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKICB7CiAgICBDT1JFX0FERFIgZGlm ZiA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkciAtIHN0YXJ0KTsKICAKLUBAIC0xMDM5MSw3 ICsxMDM5MSw3IEBAIHJlbW90ZV90YXJnZXQ6OnJlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgaW50IGxlbiwKK0BAIC0xMDQyNCw3ICsxMDQyNCw3IEBAIHJlbW90ZV90YXJnZXQ6OnJl bW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKICAgIHAgPSBzdHJjaHIg KHJzLT5idWYsICdcMCcpOwogICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkcik7 CiAgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKQEAgLTQyMCwxNSArNDIw LDE1IEBAIGRpZmYgLS1naXQgYS9nZGIvczM5MC1saW51eC1uYXQuYyBiL2dkYi9zMzkwLWxpbnV4 LW5hdC5jCiAgICAgIG92ZXJyaWRlOwogLSAgaW50IHJlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCAoQ09SRV9BRERSLCBpbnQpIG92ZXJyaWRlOwogKyAgaW50IHJlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCAoQ09SRV9BRERSLCBMT05HRVNUKSBvdmVycmlkZTsKLSAgIGJvb2wgaGF2ZV9jb250 aW51YWJsZV93YXRjaHBvaW50ICgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgIGJvb2wg c3RvcHBlZF9ieV93YXRjaHBvaW50ICgpIG92ZXJyaWRlOwogICAgaW50IGluc2VydF93YXRjaHBv aW50IChDT1JFX0FERFIsIGludCwgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSwKKyAJCQkgc3RydWN0 IGV4cHJlc3Npb24gKikgb3ZlcnJpZGU7CiBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0 ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKIC0tLSBhL2dkYi90YXJnZXQtZGVsZWdhdGVz LmMKICsrKyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKLUBAIC0zOCw5ICszOCw5IEBAIHN0cnVj dCBkdW1teV90YXJnZXQgOiBwdWJsaWMgdGFyZ2V0X29wcworQEAgLTM3LDkgKzM3LDkgQEAgc3Ry dWN0IGR1bW15X3RhcmdldCA6IHB1YmxpYyB0YXJnZXRfb3BzCisgICBib29sIHN0b3BwZWRfYnlf d2F0Y2hwb2ludCAoKSBvdmVycmlkZTsKICAgIGludCBoYXZlX3N0ZXBwYWJsZV93YXRjaHBvaW50 ICgpIG92ZXJyaWRlOwotICAgYm9vbCBoYXZlX2NvbnRpbnVhYmxlX3dhdGNocG9pbnQgKCkgb3Zl cnJpZGU7CiAgICBib29sIHN0b3BwZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIgKmFyZzApIG92 ZXJyaWRlOwogLSAgYm9vbCB3YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChDT1JFX0FERFIg YXJnMCwgQ09SRV9BRERSIGFyZzEsIGludCBhcmcyKSBvdmVycmlkZTsKICsgIGJvb2wgd2F0Y2hw b2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxLCBM T05HRVNUIGFyZzIpIG92ZXJyaWRlOwpAQCAtNDM4LDkgKzQzOCw5IEBAIGRpZmYgLS1naXQgYS9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgaW50IG1h c2tlZF93YXRjaF9udW1fcmVnaXN0ZXJzIChDT1JFX0FERFIgYXJnMCwgQ09SRV9BRERSIGFyZzEp IG92ZXJyaWRlOwogICAgaW50IGNhbl9kb19zaW5nbGVfc3RlcCAoKSBvdmVycmlkZTsKICAgIGJv b2wgc3VwcG9ydHNfdGVybWluYWxfb3VycyAoKSBvdmVycmlkZTsKLUBAIC0yMDYsOSArMjA2LDkg QEAgc3RydWN0IGRlYnVnX3RhcmdldCA6IHB1YmxpYyB0YXJnZXRfb3BzCitAQCAtMjA0LDkgKzIw NCw5IEBAIHN0cnVjdCBkZWJ1Z190YXJnZXQgOiBwdWJsaWMgdGFyZ2V0X29wcworICAgYm9vbCBz dG9wcGVkX2J5X3dhdGNocG9pbnQgKCkgb3ZlcnJpZGU7CiAgICBpbnQgaGF2ZV9zdGVwcGFibGVf d2F0Y2hwb2ludCAoKSBvdmVycmlkZTsKLSAgIGJvb2wgaGF2ZV9jb250aW51YWJsZV93YXRjaHBv aW50ICgpIG92ZXJyaWRlOwogICAgYm9vbCBzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERS ICphcmcwKSBvdmVycmlkZTsKIC0gIGJvb2wgd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAo Q09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxLCBpbnQgYXJnMikgb3ZlcnJpZGU7CiArICBi b29sIHdhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKENPUkVfQUREUiBhcmcwLCBDT1JFX0FE RFIgYXJnMSwgTE9OR0VTVCBhcmcyKSBvdmVycmlkZTsKQEAgLTQ1MCw3ICs0NTAsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMK ICAgIGludCBtYXNrZWRfd2F0Y2hfbnVtX3JlZ2lzdGVycyAoQ09SRV9BRERSIGFyZzAsIENPUkVf QUREUiBhcmcxKSBvdmVycmlkZTsKICAgIGludCBjYW5fZG9fc2luZ2xlX3N0ZXAgKCkgb3ZlcnJp ZGU7CiAgICBib29sIHN1cHBvcnRzX3Rlcm1pbmFsX291cnMgKCkgb3ZlcnJpZGU7Ci1AQCAtMTA2 OCwxOSArMTA2OCwxOSBAQCBkZWJ1Z190YXJnZXQ6OnN0b3BwZWRfZGF0YV9hZGRyZXNzIChDT1JF X0FERFIgKmFyZzApCitAQCAtMTA0MSwxOSArMTA0MSwxOSBAQCBkZWJ1Z190YXJnZXQ6OnN0b3Bw ZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIgKmFyZzApCiAgfQogIAogIGJvb2wKQEAgLTQ3Myw3 ICs0NzMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJn ZXQtZGVsZWdhdGVzLmMKICB7CiAgICBib29sIHJlc3VsdDsKICAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT53YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlICguLi4p XG4iLCB0aGlzLT5iZW5lYXRoICgpLT5zaG9ydG5hbWUgKCkpOwotQEAgLTEwOTAsNyArMTA5MCw3 IEBAIGRlYnVnX3RhcmdldDo6d2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERS IGFyZzAsIENPUkVfQUREUiBhcmcxLCBpbnQKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQCBkZWJ1Z190 YXJnZXQ6OndhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKENPUkVfQUREUiBhcmcwLCBDT1JF X0FERFIgYXJnMSwgaW50CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsK ICAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzEpOwogICAgZnB1dHNfdW5maWx0 ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC00ODIsNyArNDgyLDcgQEAgZGlmZiAtLWdpdCBh L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMgYi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBmcHV0 c191bmZpbHRlcmVkICgiKSA9ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50 X2Jvb2wgKHJlc3VsdCk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsK LUBAIC0xMTI2LDE5ICsxMTI2LDE5IEBAIGRlYnVnX3RhcmdldDo6cmVnaW9uX29rX2Zvcl9od193 YXRjaHBvaW50IChDT1JFX0FERFIgYXJnMCwgTE9OR0VTVCBhcmcxKQorQEAgLTEwOTksMTkgKzEw OTksMTkgQEAgZGVidWdfdGFyZ2V0OjpyZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVf QUREUiBhcmcwLCBMT05HRVNUIGFyZzEpCiAgfQogIAogIGJvb2wKQEAgLTUwNSw3ICs1MDUsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdh dGVzLmMKICB7CiAgICBib29sIHJlc3VsdDsKICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0 ZGxvZywgIi0+ICVzLT5jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKC4uLilcbiIsIHRo aXMtPmJlbmVhdGggKCktPnNob3J0bmFtZSAoKSk7Ci1AQCAtMTE0Niw3ICsxMTQ2LDcgQEAgZGVi dWdfdGFyZ2V0OjpjYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKENPUkVfQUREUiBhcmcw LCBpbnQgYXJnMSwgaW50IGFyZzIKK0BAIC0xMTE5LDcgKzExMTksNyBAQCBkZWJ1Z190YXJnZXQ6 OmNhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSIGFyZzAsIGludCBhcmcx LCBpbnQgYXJnMgogICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiPC0gJXMtPmNh bl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoIiwgdGhpcy0+YmVuZWF0aCAoKS0+c2hvcnRu YW1lICgpKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzApOwogICAgZnB1 dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC01MjYsNyArNTI2LDcgQEAgZGlm ZiAtLWdpdCBhL2dkYi90YXJnZXQuYyBiL2dkYi90YXJnZXQuYwogIAogIHN0YXRpYyBpbnQgZGVm YXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCiAg CQkJCQkJQ09SRV9BRERSLCBMT05HRVNUKTsKLUBAIC0zMTg5LDcgKzMxODksNyBAQCBkZWZhdWx0 X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCitA QCAtMzE5Miw3ICszMTkyLDcgQEAgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLAogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3dhdGNocG9p bnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCSAg ICAgIENPUkVfQUREUiBhZGRyLApAQCAtNTM4LDcgKzUzOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIv dGFyZ2V0LmMgYi9nZGIvdGFyZ2V0LmMKIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmggYi9nZGIv dGFyZ2V0LmgKIC0tLSBhL2dkYi90YXJnZXQuaAogKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtNTU3 LDcgKzU1Nyw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCitAQCAtNTU4LDcgKzU1OCw3IEBAIHN0cnVj dCB0YXJnZXRfb3BzCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfUkVUVVJOIChmYWxzZSk7CiAgICAg IHZpcnR1YWwgYm9vbCBzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICopCiAgICAgICAg VEFSR0VUX0RFRkFVTFRfUkVUVVJOIChmYWxzZSk7CkBAIC01NDcsNyArNTQ3LDcgQEAgZGlmZiAt LWdpdCBhL2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQuaAogICAgICAgIFRBUkdFVF9ERUZBVUxU X0ZVTkMgKGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk7CiAgCiAgICAgIC8q IERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJl c3BvbmRpbmcKLUBAIC01NjUsNyArNTY1LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKK0BAIC01NjYs NyArNTY2LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAgdmlydHVhbCBpbnQgcmVnaW9uX29r X2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIsIExPTkdFU1QpCiAgICAgICAgVEFSR0VUX0RF RkFVTFRfRlVOQyAoZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOwogIAoKZGlm ZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5 NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCmluZGV4IGViYmU2OTYuLmQ4Nzg5NWMgMTAwNjQ0Ci0t LSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0 MjQtYml0cG9zLTIzb2YyNS5wYXRjaApAQCAtMzU3LDggKzM1Nyw4IEBAIGRpZmYgLS1naXQgYS9n ZGIvYmZpbi10ZGVwLmMgYi9nZGIvYmZpbi10ZGVwLmMKICAgICAgewogICAgICAgIHN0cnVjdCB0 eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOwogICAgICAg IHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUpOwotLSAg ICAgIGludCBjb250YWluZXJfbGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYg fjM7Ci0rICAgICAgc3NpemVfdCBjb250YWluZXJfbGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90 eXBlKSArIDMpICYgfjM7CistICAgICAgaW50IGNvbnRhaW5lcl9sZW4gPSAoVFlQRV9MRU5HVEgg KGFyZ190eXBlKSArIDMpICYgfjM7CisrICAgICAgc3NpemVfdCBjb250YWluZXJfbGVuID0gKFRZ UEVfTEVOR1RIIChhcmdfdHlwZSkgKyAzKSAmIH4zOwogIAogICAgICAgIHNwIC09IGNvbnRhaW5l cl9sZW47CiAgICAgICAgd3JpdGVfbWVtb3J5IChzcCwgdmFsdWVfY29udGVudHMgKGFyZ3NbaV0p LCBjb250YWluZXJfbGVuKTsKQEAgLTYyMCw3ICs2MjAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21p cHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCiAgICBpZiAobWlwc19kZWJ1ZyAmJiBvdXQgIT0g TlVMTCkKICAgICAgewogICAgICAgIGludCBpOwotQEAgLTQ1NDMsMTMgKzQ1NDMsMTMgQEAgbWlw c19lYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2 YWx1ZSAqZnVuY3Rpb24sCitAQCAtNDU2MSwxMyArNDU2MSwxMyBAQCBtaXBzX2VhYmlfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlv biwKICAgICAgICBnZGJfYnl0ZSByZWZfdmFsYnVmW01BWF9NSVBTX0FCSV9SRUdTSVpFXTsKICAg ICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlw ZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTYzNyw3 ICs2MzcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5j CiAgCiAgICAgICAgLyogVGhlIEVBQkkgcGFzc2VzIHN0cnVjdHVyZXMgdGhhdCBkbyBub3QgZml0 IGluIGEgcmVnaXN0ZXIgYnkKICAgICAgICAgICByZWZlcmVuY2UuICAqLwotQEAgLTQ4MTksNyAr NDgxOSw3IEBAIG1pcHNfZWFiaV9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAorQEAgLTQ4MzcsNyArNDgzNyw3IEBAIG1pcHNfZWFi aV9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1 bmN0aW9uLAogIAogIHN0YXRpYyBpbnQKICBtaXBzX24zMm42NF9mcF9hcmdfY2h1bmtfcCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICphcmdfdHlwZSwKQEAgLTY0Niw3ICs2 NDYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCiAg ewogICAgaW50IGk7CiAgCi1AQCAtNDgzNCw3ICs0ODM0LDcgQEAgbWlwc19uMzJuNjRfZnBfYXJn X2NodW5rX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUs CitAQCAtNDg1Miw3ICs0ODUyLDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUsCiAgCiAgICBmb3IgKGkg PSAwOyBpIDwgVFlQRV9ORklFTERTIChhcmdfdHlwZSk7IGkrKykKICAgICAgewpAQCAtNjU1LDcg KzY1NSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMK ICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAKICAgICAgICAvKiBXZSdyZSBvbmx5 IGxvb2tpbmcgYXQgbm9ybWFsIGZpZWxkcy4gICovCi1AQCAtNDg3Niw3ICs0ODc2LDcgQEAgbWlw c19uMzJuNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0 IHZhbHVlICpmdW5jdGlvbiwKK0BAIC00ODk0LDcgKzQ4OTQsNyBAQCBtaXBzX24zMm42NF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0 aW9uLAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVt OwpAQCAtNjY0LDcgKzY2NCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIv bWlwcy10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERS IGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTUy MjcsMTEgKzUyMjcsMTEgQEAgbWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlvbiwKK0BAIC01MjQ1LDExICs1MjQ1LDEx IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0 cnVjdCB2YWx1ZSAqZnVuY3Rpb24sCiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVs ZCA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQogIAl7CkBAIC02 ODAsNyArNjgwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9taXBzLXRkZXAuYyBiL2dkYi9taXBzLXRk ZXAuYwogIAkgIGlmIChUWVBFX0xFTkdUSCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZCkp ID09IDE2KQogIAkgICAgewogIAkgICAgICAvKiBBIDE2LWJ5dGUgbG9uZyBkb3VibGUgZmllbGQg Z29lcyBpbiB0d28gY29uc2VjdXRpdmUKLUBAIC01MjczLDggKzUyNzMsOCBAQCBtaXBzX24zMm42 NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1 bmN0aW9uLAorQEAgLTUyOTEsOCArNTI5MSw4IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqZnVuY3Rpb24sCiAgCSAgaWYg KG9mZnNldCArIHhmZXIgPiBUWVBFX0xFTkdUSCAodHlwZSkpCiAgCSAgICB4ZmVyID0gVFlQRV9M RU5HVEggKHR5cGUpIC0gb2Zmc2V0OwogIAkgIGlmIChtaXBzX2RlYnVnKQpAQCAtNjkxLDcgKzY5 MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKICAJ ICBtaXBzX3hmZXJfcmVnaXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJCSAgICAgIGdkYmFy Y2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhmZXIsIEJGRF9FTkRJ QU5fVU5LTk9XTiwgcmVhZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTMzMiw3ICs1MzMyLDcgQEAgbWlw c19vMzJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZh bHVlICpmdW5jdGlvbiwKK0BAIC01MzUwLDcgKzUzNTAsNyBAQCBtaXBzX28zMl9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAog ICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAt NzAwLDcgKzcwMCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10 ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNf YWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTUzOTYsMTMg KzUzOTYsMTMgQEAgbWlwc19vMzJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlvbiwKK0BAIC01NDE0LDEzICs1NDE0LDEzIEBAIG1p cHNfbzMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2 YWx1ZSAqZnVuY3Rpb24sCiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1 Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTcxNyw3ICs3MTcsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAg ICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1AQCAtNTg1Niw4ICs1ODU2LDggQEAg bWlwc19vNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0 IHZhbHVlICpmdW5jdGlvbiwKK0BAIC01ODc0LDggKzU4NzQsOCBAQCBtaXBzX282NF9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9u LAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpA QCAtNzI4LDcgKzcyOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlw cy10ZGVwLmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29y ZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2Fk ZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAKLUBAIC01OTE3LDEzICs1OTE3LDEzIEBAIG1pcHNfbzY0 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAq ZnVuY3Rpb24sCitAQCAtNTkzNSwxMyArNTkzNSwxMyBAQCBtaXBzX282NF9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogICAg ICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdz W2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJnKSk7CkBAIC05NDQsNyArOTQ0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9z aC10ZGVwLmMgYi9nZGIvc2gtdGRlcC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3NwYXJjNjQtdGRlcC5j IGIvZ2RiL3NwYXJjNjQtdGRlcC5jCiAtLS0gYS9nZGIvc3BhcmM2NC10ZGVwLmMKICsrKyBiL2dk Yi9zcGFyYzY0LXRkZXAuYwotQEAgLTEyMDUsNyArMTIwNSw3IEBAIHNwYXJjNjRfMTZfYnl0ZV9h bGlnbl9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC0xMjA2LDcgKzEyMDYsNyBAQCBzcGFyYzY0 XzE2X2J5dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RhdGljIHZvaWQKICBz cGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwg c3RydWN0IHR5cGUgKnR5cGUsCkBAIC05NTMsNyArOTUzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9z cGFyYzY0LXRkZXAuYyBiL2dkYi9zcGFyYzY0LXRkZXAuYwogIHsKICAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7CiAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEgg KHR5cGUpOwotQEAgLTEyNjUsNyArMTI2NSw3IEBAIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmll bGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC0x MjY2LDcgKzEyNjYsNyBAQCBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgZm9yIChpID0gMDsg aSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkrKykKICAJewogIAkgIHN0cnVjdCB0eXBlICpzdWJ0 eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7CkBAIC05NjIs NyArOTYyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9zcGFyYzY0LXRkZXAuYyBiL2dkYi9zcGFyYzY0 LXRkZXAuYwogIAogIAkgIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChyZWdjYWNoZSwg c3VidHlwZSwgdmFsYnVmLAogIAkJCQkJIGVsZW1lbnQsIHN1YnBvcyk7Ci1AQCAtMTI5Nyw3ICsx Mjk3LDcgQEAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTEyOTgsNyArMTI5OCw3IEBAIHNwYXJj NjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9pZAogIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGlu Z19maWVsZHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLApA QCAtOTcxLDcgKzk3MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvc3BhcmM2NC10ZGVwLmMgYi9nZGIv c3BhcmM2NC10ZGVwLmMKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHJlZ2NhY2hl LT5hcmNoICgpOwogIAotQEAgLTEzNTMsNyArMTM1Myw3IEBAIHNwYXJjNjRfZXh0cmFjdF9mbG9h dGluZ19maWVsZHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBl LAorQEAgLTEzNTQsNyArMTM1NCw3IEBAIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgIGZv ciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpKyspCiAgCXsKICAJICBzdHJ1Y3Qg dHlwZSAqc3VidHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkp OwpAQCAtOTgwLDcgKzk4MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvc3BhcmM2NC10ZGVwLmMgYi9n ZGIvc3BhcmM2NC10ZGVwLmMKICAKICAJICBzcGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRz IChyZWdjYWNoZSwgc3VidHlwZSwgdmFsYnVmLCBzdWJwb3MpOwogIAl9Ci1AQCAtMTM4Niw3ICsx Mzg2LDcgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsIGludCBuYXJncywKK0BAIC0xMzg3LDcgKzEzODcsNyBAQCBzcGFyYzY0X3N0b3JlX2FyZ3Vt ZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IG5hcmdzLAogICAgZm9yIChpID0g MDsgaSA8IG5hcmdzOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZh bHVlX3R5cGUgKGFyZ3NbaV0pOwpAQCAtOTg5LDcgKzk4OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIv c3BhcmM2NC10ZGVwLmMgYi9nZGIvc3BhcmM2NC10ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmM2 NF9zdHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmM2NF9jb21wbGV4X2Zs b2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAzMikpCi1AQCAtMTQ4Niw3ICsxNDg2LDcgQEAgc3Bh cmM2NF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCBuYXJn cywKK0BAIC0xNDg3LDcgKzE0ODcsNyBAQCBzcGFyYzY0X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IG5hcmdzLAogICAgICB7CiAgICAgICAgY29uc3QgZ2Ri X2J5dGUgKnZhbGJ1ZiA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3Qg dHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwpAQCAtMTAyOCwxMCArMTAyOCwxMCBA QCBkaWZmIC0tZ2l0IGEvZ2RiL3RpYzZ4LXRkZXAuYyBiL2dkYi90aWM2eC10ZGVwLmMKICAgIGlu dCBzdGFja19vZmZzZXQgPSA0OwogLSAgaW50IHJlZmVyZW5jZXNfb2Zmc2V0ID0gNDsKICsgIExP TkdFU1QgcmVmZXJlbmNlc19vZmZzZXQgPSA0OwotICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZp bmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5 dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgc3RydWN0IHR5cGUg KmZ1bmNfdHlwZSA9IHZhbHVlX3R5cGUgKGZ1bmN0aW9uKTsKLUBAIC05MTUsNyArOTE1LDcgQEAg dGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZh bHVlICpmdW5jdGlvbiwKKyAgIC8qIFRoZSBmaXJzdCBhcmcgcGFzc2VkIG9uIHN0YWNrLiAgTW9z dGx5IHRoZSBmaXJzdCAxMCBhcmdzIGFyZSBwYXNzZWQgYnkKK0BAIC05MTQsNyArOTE0LDcgQEAg dGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZh bHVlICpmdW5jdGlvbiwKICAgIC8qIE5vdyBtYWtlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhl IGFyZ3MuICAqLwogICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKysp CiAgICAgIHsKQEAgLTEwNDAsNyArMTA0MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGljNngtdGRl cC5jIGIvZ2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcp CiAgCXJlZmVyZW5jZXNfb2Zmc2V0ICs9IGxlbjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVu OwotQEAgLTkzNCw3ICs5MzQsNyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAorQEAgLTkzMyw3ICs5MzMsNyBA QCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3Qg dmFsdWUgKmZ1bmN0aW9uLAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3Ry dWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190 eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMDQ5LDcgKzEwNDks NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RpYzZ4LXRkZXAuYyBiL2dkYi90aWM2eC10ZGVwLmMKICAg ICAgICBlbnVtIHR5cGVfY29kZSB0eXBlY29kZSA9IFRZUEVfQ09ERSAoYXJnX3R5cGUpOwogIAog ICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwotQEAgLTEwOTAsNyArMTA5MCw4IEBA IHRpYzZ4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2 YWx1ZSAqZnVuY3Rpb24sCitAQCAtMTA4OSw3ICsxMDg5LDggQEAgdGljNnhfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlvbiwKICAJ ICAgIH0KICAJICBlbHNlCiAgCSAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9f LApAQCAtMTEzMSw3ICsxMTMxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi94c3Rvcm15MTYtdGRlcC5j IGIvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKIGRpZmYgLS1naXQgYS9nZGIveHRlbnNhLXRkZXAuYyBi L2dkYi94dGVuc2EtdGRlcC5jCiAtLS0gYS9nZGIveHRlbnNhLXRkZXAuYwogKysrIGIvZ2RiL3h0 ZW5zYS10ZGVwLmMKLUBAIC0xNjI2LDggKzE2MjYsNyBAQCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3Zh bHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC0xNjI1LDggKzE2MjUsNyBAQCB4dGVuc2Ffc3Rv cmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICAgICAgICBpZiAobGVuID4g KGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19M SU5FX18sCkBAIC0xMTQxLDcgKzExNDEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3h0ZW5zYS10ZGVw LmMgYi9nZGIveHRlbnNhLXRkZXAuYwogICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFy Y2gsCiAgCQkJICAgZ2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6 ZSwgd2IpOwogIAotQEAgLTE3MDEsMTggKzE3MDAsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTcwMCwxOCArMTY5OSwxOCBAQCB4dGVu c2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICB7CiAgICBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAg ICBpbnQgaTsKQEAgLTExNjMsNyArMTE2Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIveHRlbnNhLXRk ZXAuYyBiL2dkYi94dGVuc2EtdGRlcC5jCiAgICAgICAgaW50IHJlZ25vOwkJLyogcmVnbm8gaWYg aW4gcmVnaXN0ZXIuICAqLwogICAgICB9IHU7CiAgICB9OwotQEAgLTE3MzYsOSArMTczNSwxMCBA QCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0x NzM1LDkgKzE3MzQsMTAgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCiAgICAgICAgICB7CiAgCSAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwog IAkgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy ZykpOwpAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi94dGVuc2EtdGRlcC5j IGIvZ2RiL3h0ZW5zYS10ZGVwLmMKICAJICBzd2l0Y2ggKFRZUEVfQ09ERSAoYXJnX3R5cGUpKQog IAkgICAgewogIAkgICAgY2FzZSBUWVBFX0NPREVfSU5UOgotQEAgLTE4MDgsOCArMTgwOCw4IEBA IHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTE4 MDcsOCArMTgwNyw4IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAogIAkgIGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZSAoZ2Ri YXJjaCktPmJ1aWx0aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTExODcsNyArMTE4Nyw3 IEBAIGRpZmYgLS1naXQgYS9nZGIveHRlbnNhLXRkZXAuYyBiL2dkYi94dGVuc2EtdGRlcC5jCiAg CiAgICAgICAgLyogQWxpZ24gc2l6ZSBhbmQgb25zdGFja19zaXplLiAgKi8KICAgICAgICBzaXpl ID0gKHNpemUgKyBpbmZvLT5hbGlnbiAtIDEpICYgfihpbmZvLT5hbGlnbiAtIDEpOwotQEAgLTE4 NTQsNyArMTg1NCw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAorQEAgLTE4NTMsNyArMTg1Myw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAogICAgICAgIGlmIChpbmZvLT5vbnN0YWNrKQogIAl7 CkBAIC0xMTk2LDcgKzExOTYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3h0ZW5zYS10ZGVwLmMgYi9n ZGIveHRlbnNhLXRkZXAuYwogIAkgIENPUkVfQUREUiBvZmZzZXQgPSBzcCArIGluZm8tPnUub2Zm c2V0OwogIAogIAkgIC8qIE9kZC1zaXplZCBzdHJ1Y3RzIGFyZSBhbGlnbmVkIHRvIHRoZSBsb3dl ciBzaWRlIG9mIGEgbWVtb3J5Ci1AQCAtMTg3MCw3ICsxODcwLDcgQEAgeHRlbnNhX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTg2OSw3ICsxODY5LDcgQEAg eHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgCX0KICAg ICAgICBlbHNlCiAgCXsKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtYXJyYXl2 aWV3LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDNhNDc1Ci0tLSAvZGV2L251bGwKKysrIGIv Z2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaApAQCAtMCwwICsxLDYwIEBACitG cm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2VyZ2lv IER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAxMiBTZXAg MjAxOCAwMDowMjoxNyAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5 dmlldy5wYXRjaAorCis7OyBUaGlzIHBhdGNoIGlzIG5lZWRlZCB0byBjb21waWxlIEdEQiBhZnRl ciAtV2Vycm9yPW5hcnJvd2luZyBoYXMKKzs7IGJlZW4gZW5hYmxlZCBieSBkZWZhdWx0LgorOzsg QXV0aG9yOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IuCisKK2RpZmYgLS1naXQgYS9nZGIvY29tbW9u L2FycmF5LXZpZXcuaCBiL2dkYi9jb21tb24vYXJyYXktdmlldy5oCistLS0gYS9nZGIvY29tbW9u L2FycmF5LXZpZXcuaAorKysrIGIvZ2RiL2NvbW1vbi9hcnJheS12aWV3LmgKK0BAIC04NSw3ICs4 NSw3IEBAIHB1YmxpYzoKKyAgIHVzaW5nIHZhbHVlX3R5cGUgPSBUOworICAgdXNpbmcgcmVmZXJl bmNlID0gVCAmOworICAgdXNpbmcgY29uc3RfcmVmZXJlbmNlID0gY29uc3QgVCAmOworLSAgdXNp bmcgc2l6ZV90eXBlID0gc2l6ZV90OworKyAgdXNpbmcgc2l6ZV90eXBlID0gVUxPTkdFU1Q7Cisg CisgICAvKiBEZWZhdWx0IGNvbnN0cnVjdGlvbiBjcmVhdGVzIGFuIGVtcHR5IHZpZXcuICAqLwor ICAgY29uc3RleHByIGFycmF5X3ZpZXcgKCkgbm9leGNlcHQKK0BAIC0xMTQsNyArMTE0LDcgQEAg cHVibGljOgorICAgICAgY291bnQuICAqLworICAgdGVtcGxhdGU8dHlwZW5hbWUgVSwKKyAJICAg dHlwZW5hbWUgPSBSZXF1aXJlczxEZWNheWVkQ29udmVydGlibGU8VT4+PgorLSAgY29uc3RleHBy IGFycmF5X3ZpZXcgKFUgKmFycmF5LCBzaXplX3Qgc2l6ZSkgbm9leGNlcHQKKysgIGNvbnN0ZXhw ciBhcnJheV92aWV3IChVICphcnJheSwgVUxPTkdFU1Qgc2l6ZSkgbm9leGNlcHQKKyAgICAgOiBt X2FycmF5IChhcnJheSksIG1fc2l6ZSAoc2l6ZSkKKyAgIHt9CisgCitAQCAtMTI4LDcgKzEyOCw3 IEBAIHB1YmxpYzoKKyAgIHt9CisgCisgICAvKiBDcmVhdGUgYW4gYXJyYXkgdmlldyBmcm9tIGFu IGFycmF5LiAgKi8KKy0gIHRlbXBsYXRlPHR5cGVuYW1lIFUsIHNpemVfdCBTaXplLAorKyAgdGVt cGxhdGU8dHlwZW5hbWUgVSwgVUxPTkdFU1QgU2l6ZSwKKyAJICAgdHlwZW5hbWUgPSBSZXF1aXJl czxEZWNheWVkQ29udmVydGlibGU8VT4+PgorICAgY29uc3RleHByIGFycmF5X3ZpZXcgKFUgKCZh cnJheSlbU2l6ZV0pIG5vZXhjZXB0CisgICAgIDogbV9hcnJheSAoYXJyYXkpLCBtX3NpemUgKFNp emUpCitAQCAtMTYxLDkgKzE2MSw5IEBAIHB1YmxpYzoKKyAgIC8qY29uc3RleHByMTQqLyBUICpl bmQgKCkgbm9leGNlcHQgeyByZXR1cm4gbV9hcnJheSArIG1fc2l6ZTsgfQorICAgY29uc3RleHBy IGNvbnN0IFQgKmVuZCAoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiBtX2FycmF5ICsgbV9zaXpl OyB9CisgCistICAvKmNvbnN0ZXhwcjE0Ki8gcmVmZXJlbmNlIG9wZXJhdG9yW10gKHNpemVfdCBp bmRleCkgbm9leGNlcHQKKysgIC8qY29uc3RleHByMTQqLyByZWZlcmVuY2Ugb3BlcmF0b3JbXSAo VUxPTkdFU1QgaW5kZXgpIG5vZXhjZXB0CisgICB7IHJldHVybiBtX2FycmF5W2luZGV4XTsgfQor LSAgY29uc3RleHByIGNvbnN0X3JlZmVyZW5jZSBvcGVyYXRvcltdIChzaXplX3QgaW5kZXgpIGNv bnN0IG5vZXhjZXB0CisrICBjb25zdGV4cHIgY29uc3RfcmVmZXJlbmNlIG9wZXJhdG9yW10gKFVM T05HRVNUIGluZGV4KSBjb25zdCBub2V4Y2VwdAorICAgeyByZXR1cm4gbV9hcnJheVtpbmRleF07 IH0KKyAKKyAgIGNvbnN0ZXhwciBzaXplX3R5cGUgc2l6ZSAoKSBjb25zdCBub2V4Y2VwdCB7IHJl dHVybiBtX3NpemU7IH0KK0BAIC0xODUsNyArMTg1LDcgQEAgb3BlcmF0b3I9PSAoY29uc3QgZ2Ri OjphcnJheV92aWV3PFQ+ICZsaHMsIGNvbnN0IGdkYjo6YXJyYXlfdmlldzxUPiAmcmhzKQorICAg aWYgKGxocy5zaXplICgpICE9IHJocy5zaXplICgpKQorICAgICByZXR1cm4gZmFsc2U7CisgCist ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxocy5zaXplICgpOyBpKyspCisrICBmb3IgKFVMT05H RVNUIGkgPSAwOyBpIDwgbGhzLnNpemUgKCk7IGkrKykKKyAgICAgaWYgKCEobGhzW2ldID09IHJo c1tpXSkpCisgICAgICAgcmV0dXJuIGZhbHNlOworIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6ODgx ODQ5LWlwdjYtMW9mMy5wYXRjaCBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2MzYTY2NC4uMDAwMDAwMAotLS0gYS9nZGItcmhi ejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTM0ICswLDAgQEAK LUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJn aW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDE4IE1h eSAyMDE4IDAxOjI5OjI0IC0wNDAwCi1TdWJqZWN0OiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjMu cGF0Y2gKLQotOzsgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dkYnNlcnZlciAoUkgg QlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgotCi1JbXBsZW1lbnQgSVB2NiBzdXBw b3J0IGZvciBHREIvZ2Ric2VydmVyCi0KLVRoaXMgcGF0Y2ggaW1wbGVtZW50cyBJUHY2IHN1cHBv cnQgZm9yIGJvdGggR0RCIGFuZCBnZGJzZXJ2ZXIuICBCYXNlZAotb24gbXkgcmVzZWFyY2gsIGl0 IGlzIHRoZSBmb3VydGggYXR0ZW1wdCB0byBkbyB0aGF0IHNpbmNlIDIwMDYuICBTaW5jZQotSSB1 c2VkIGlkZWFzIGZyb20gYWxsIG9mIHRoZSBwcmV2aW91cyBwYXRjaGVzLCBJIGFsc28gYWRkZWQg dGhlaXIKLWF1dGhvcnMncyBuYW1lcyBvbiB0aGUgQ2hhbmdlTG9ncyBhcyBhIHdheSB0byByZWNv Z25pemUgdGhlaXIKLWVmZm9ydHMuICBGb3IgcmVmZXJlbmNlIHNha2UsIHlvdSBjYW4gZmluZCB0 aGUgcHJldmlvdXMgYXR0ZW1wdHMgYXQ6Ci0KLSAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDA2LTA5L21zZzAwMTkyLmh0bWwKLQotICBodHRwczovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDIvbXNnMDAyNDguaHRtbAotCi0gIGh0dHBzOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDIyNi5odG1sCi0KLVRoZSBi YXNpYyBpZGVhIGJlaGluZCB0aGUgcGF0Y2ggaXMgdG8gc3RhcnQgdXNpbmcgdGhlIG5ldwotJ2dl dGFkZHJpbmZvJy8nZ2V0bmFtZWluZm8nIGNhbGxzLCB3aGljaCBhcmUgcmVzcG9uc2libGUgZm9y Ci10cmFuc2xhdGluZyBuYW1lcyBhbmQgYWRkcmVzc2VzIGluIGEgcHJvdG9jb2wtaW5kZXBlbmRl bnQgd2F5LiAgVGhpcwotbWVhbnMgdGhhdCBpZiB3ZSBldmVyIGhhdmUgYSBuZXcgdmVyc2lvbiBv ZiB0aGUgSVAgcHJvdG9jb2wsIHdlIHdvbid0Ci1uZWVkIHRvIGNoYW5nZSB0aGUgY29kZSBhZ2Fp biAob3IsIGF0IGxlYXN0LCB3b24ndCBoYXZlIHRvIGNoYW5nZSB0aGUKLW1ham9yaXR5IG9mIHRo ZSBjb2RlKS4KLQotVGhlIGZ1bmN0aW9uICdnZXRhZGRyaW5mbycgcmV0dXJucyBhIGxpbmtlZCBs aXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcwotdG8gY29ubmVjdCB0by4gIERlYWxpbmcgd2l0aCBt dWx0aXBsZSBhZGRyZXNzZXMgcHJvdmVkIHRvIGJlIGEgaGFyZAotdGFzayB3aXRoIHRoZSBjdXJy ZW50IFRDUCBhdXRvLXJldHJ5IG1lY2hhbmlzbSBpbXBsZW1lbnRlZCBvbgotc2VyLXRjcDpuZXRf b3Blbi4gIEZvciBleGFtcGxlLCB3aGVuIGdkYnNlcnZlciBsaXN0ZW5lZCBvbmx5IG9uIGFuCi1J UHY0IHNvY2tldDoKLQotICAkIC4vZ2Ric2VydmVyIC0tb25jZSAxMjcuMC4wLjE6MTIzNCAuL2Eu b3V0Ci0KLWFuZCBHREIgd2FzIGluc3RydWN0ZWQgdG8gdHJ5IHRvIGNvbm5lY3QgdG8gYm90aCBJ UHY2IGFuZCBJUHY0Ci1zb2NrZXRzOgotCi0gICQgLi9nZGIgLWV4ICd0YXJnZXQgZXh0ZW5kZWQt cmVtb3RlIGxvY2FsaG9zdDoxMjM0JyAuL2Eub3V0Ci0KLXRoZSB1c2VyIHdvdWxkIG5vdGljZSBh IHNvbWV3aGF0IGJpZyBkZWxheSBiZWZvcmUgR0RCIHdhcyBhYmxlIHRvCi1jb25uZWN0IHRvIHRo ZSBJUHY0IHNvY2tldC4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSBHREIgd2FzIHRyeWluZyB0bwot Y29ubmVjdCB0byB0aGUgSVB2NiBzb2NrZXQgZmlyc3QsIGFuZCBoYWQgdG8gd2FpdCB1bnRpbCB0 aGUgY29ubmVjdGlvbgotdGltZWQgb3V0IGJlZm9yZSBpdCB0cmllZCB0byBjb25uZWN0IHRvIHRo ZSBJUHY0IHNvY2tldC4KLQotRm9yIHRoYXQgcmVhc29uLCBJIGhhZCB0byByZXdyaXRlIHRoZSBt YWluIGxvb3AgYW5kIGltcGxlbWVudCBhIG5ldwotbWV0aG9kIGZvciBoYW5kbGluZyBtdWx0aXBs ZSBjb25uZWN0aW9ucy4gIEFmdGVyIHNvbWUgZGlzY3Vzc2lvbiwKLVBlZHJvIGFuZCBJIGFncmVl ZCBvbiB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToKLQotICAxKSBGb3IgZWFjaCBlbnRyeSByZXR1 cm5lZCBieSAnZ2V0YWRkcmluZm8nLCB3ZSB0cnkgdG8gb3BlbiBhIHNvY2tldAotICBhbmQgY29u bmVjdCB0byBpdC4KLQotICAyLmEpIElmIHdlIGhhdmUgYSBzdWNjZXNzZnVsICdjb25uZWN0Jywg d2UganVzdCB1c2UgdGhhdCBjb25uZWN0aW9uLgotCi0gIDIuYikgSWYgd2UgZG9uJ3QgaGF2ZSBh IHN1Y2Nlc3NmdWxsICdjb25uZWN0JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCi0gIEVDT05OUkVGVVNF RCAobWVhbmluZyB0aGUgdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQpLCB3ZSBrZWVwIHRyYWNr Ci0gIG9mIHRoaXMgZmFjdCBieSB1c2luZyBhIGZsYWcuCi0KLSAgMi5jKSBJZiB3ZSBkb24ndCBo YXZlIGEgc3VjY2Vzc2Z1bGwgJ2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290IGEKLSAgRUlOUFJP R1JFU1MgKG1lYW5pbmcgdGhhdCB0aGUgY29ubmVjdGlvbiBpcyBpbiBwcm9ncmVzcyksIHdlIHBl cmZvcm0KLSAgYSAnc2VsZWN0JyBjYWxsIG9uIHRoZSBzb2NrZXQgdW50aWwgd2UgaGF2ZSBhIHJl c3VsdCAoZWl0aGVyIGEKLSAgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLCBvciBhbiBlcnJvciBvbiB0 aGUgc29ja2V0KS4KLQotICAzKSBJZiB0Y3BfYXV0b19yZXRyeSBpcyB0cnVlLCBhbmQgd2UgaGF2 ZW4ndCBnb3R0ZW4gYSBzdWNjZXNzZnVsCi0gIGNvbm5lY3Rpb24sIGFuZCBhdCBsZWFzdCBvbmUg b2Ygb3VyIGF0dGVtcHRzIGZhaWxlZCB3aXRoCi0gIEVDT05OUkVGVVNFRCwgdGhlbiB3ZSB3YWl0 IGEgbGl0dGxlIGJpdCAoaS5lLiwgY2FsbAotICAnd2FpdF9mb3JfY29ubmVjdCcpLCBjaGVjayB0 byBzZWUgaWYgdGhlcmUgd2FzIGEKLSAgdGltZW91dC9pbnRlcnJ1cHRpb24gKGluIHdoaWNoIGNh c2Ugd2UgYmFpbCBvdXQpLCBhbmQgdGhlbiBnbyBiYWNrCi0gIHRvICgxKS4KLQotQWZ0ZXIgbXVs dGlwbGUgdGVzdHMsIEkgd2FzIGFibGUgdG8gY29ubmVjdCB3aXRob3V0IGRlbGF5IG9uIHRoZQot c2NlbmFyaW8gZGVzY3JpYmVkIGFib3ZlLCBhbmQgd2FzIGFsc28gYWJsZSB0byBjb25uZWN0IGlu IGFsbCBvdGhlcgotdHlwZXMgb2Ygc2NlbmFyaW9zLgotCi1JIGFsc28gaW1wbGVtZW50ZWQgc29t ZSBob3N0bmFtZSBwYXJzaW5nIGZ1bmN0aW9ucyAoYWxvbmcgd2l0aCB0aGVpcgotY29ycmVzcG9u ZGluZyB1bml0IHRlc3RzKSB3aGljaCBhcmUgdXNlZCB0byBoZWxwIEdEQiBhbmQgZ2Ric2VydmVy IHRvCi1wYXJzZSBob3N0bmFtZSBzdHJpbmdzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiAgVGhlc2Ug bmV3IGZ1bmN0aW9ucyBhcmUKLWxpdmluZyBpbnNpZGUgY29tbW9uL25ldHN0dWZmLltjaF0uICBJ J3ZlIGhhZCB0byBkbyB0aGF0IHNpbmNlIElQdjYKLWludHJvZHVjZXMgYSBuZXcgVVJMIHNjaGVt ZSwgd2hpY2ggZGVmaW5lcyB0aGF0IHNxdWFyZSBicmFja2V0cyBjYW4gYmUKLXVzZWQgdG8gZW5j bG9zZSB0aGUgaG9zdCBwYXJ0IGFuZCBkaWZmZXJlbnRpYXRlIGl0IGZyb20gdGhlCi1wb3J0IChl LmcuLCAiWzo6MV06MTIzNCIgbWVhbnMgImhvc3QgOjoxLCBwb3J0IDEyMzQiKS4gIEkgc3BlbnQg c29tZQotdGltZSB0aGlua2luZyBhYm91dCBhIHJlYXNvbmFibGUgd2F5IHRvIGludGVycHJldCB3 aGF0IHRoZSB1c2VyIHdhbnRzLAotYW5kIEkgY2FtZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmc6Ci0K LSAgLSBJZiB0aGUgdXNlciBoYXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBkb2Vzbid0IHNwZWNp ZnkgdGhlIHByb3RvY29sCi0gICAgdmVyc2lvbiAoaS5lLiwgInRjcDoiIG9yICJ1ZHA6IiksIG9y IGlmIHRoZSB1c2VyIGhhcyBub3QgcHJvdmlkZWQKLSAgICBhbnkgcHJlZml4LCBkb24ndCBtYWtl IGFueSBhc3N1bXB0aW9ucyAoaS5lLiwgYXNzdW1lIEFGX1VOU1BFQyB3aGVuCi0gICAgZGVhbGlu ZyB3aXRoICdnZXRhZGRyaW5mbycpICp1bmxlc3MqIHRoZSBob3N0IHN0YXJ0cyB3aXRoICJbIiAo aW4KLSAgICB3aGljaCBjYXNlLCBhc3N1bWUgaXQncyBhbiBJUHY2IGhvc3QpLgotCi0gIC0gSWYg dGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEgcHJlZml4IHRoYXQgZG9lcyBzcGVjaWZ5IHRoZSBwcm90 b2NvbAotICAgIHZlcnNpb24gKGkuZS4sICJ0Y3A0OiIsICJ0Y3A2OiIsICJ1ZHA0OiIgb3IgInVk cDY6IiksIHRoZW4gcmVzcGVjdAotICAgIHRoYXQuCi0KLVRoaXMgbWV0aG9kIGRvZXNuJ3QgZm9s bG93IHN0cmljdGx5IHdoYXQgUkZDIDI3MzIgcHJvcG9zZXMgKHRoYXQKLWxpdGVyYWwgSVB2NiBh ZGRyZXNzZXMgc2hvdWxkIGJlIHByb3ZpZGVkIGVuY2xvc2VkIGluICJbIiBhbmQgIl0iKQotYmVj YXVzZSBJUHY2IGFkZHJlc3NlcyBzdGlsbCBjYW4gYmUgcHJvdmlkZWQgd2l0aG91dCBzcXVhcmUg YnJhY2tldHMKLWluIG91ciBjYXNlLCBidXQgc2luY2Ugd2UgaGF2ZSBwcmVmaXhlcyB0byBzcGVj aWZ5IHByb3RvY29sIHZlcnNpb25zIEkKLXRoaW5rIHRoaXMgaXMgbm90IGFuIGlzc3VlLgotCi1B bm90aGVyIHRoaW5nIHdvcnRoIG1lbnRpb25pbmcgaXMgdGhlIG5ldyAnR0RCX1RFU1RfU09DS0VU SE9TVCcKLXRlc3RjYXNlIHBhcmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgcG9zc2libGUgdG8gc3Bl Y2lmeSB0aGUKLWhvc3RuYW1lICh3aXRob3V0IHRoZSBwb3J0KSB0byBiZSB1c2VkIHdoZW4gdGVz dGluZyBHREIgYW5kCi1nZGJzZXJ2ZXIuICBGb3IgZXhhbXBsZSwgdG8gcnVuIElQdjYgdGVzdHM6 Ci0KLSAgJCBtYWtlIGNoZWNrLWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9 dGNwNjpbOjoxXScKLQotT3IsIHRvIHJ1biBJUHY0IHRlc3RzOgotCi0gICQgbWFrZSBjaGVjay1n ZGIgUlVOVEVTVEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDQ6MTI3LjAuMC4xJwotCi1U aGlzIHJlcXVpcmVkIGEgZmV3IGNoYW5nZXMgb24gdGhlIGdkYnNlcnZlci1iYXNlLmV4cCwgYW5k IGFsc28gYQotbWluaW1hbCBhZGp1c3RtZW50IG9uIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9j YWwtYmluYXJ5LmV4cC4KLQotRmluYWxseSwgSSd2ZSBpbXBsZW1lbnRlZCBhIG5ldyB0ZXN0Y2Fz ZSwKLWdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwLCB3aGljaCBpcyBzdXBwb3NlZCB0byBy dW4gb24gdGhlIG5hdGl2ZQotaG9zdCBhbmQgcGVyZm9ybSB2YXJpb3VzICJzbW9rZSB0ZXN0cyIg dXNpbmcgZGlmZmVyZW50IGNvbm5lY3Rpb24KLW1ldGhvZHMuCi0KLVRoaXMgcGF0Y2ggaGFzIGJl ZW4gcmVncmVzc2lvbi10ZXN0ZWQgb24gQnVpbGRCb3QgYW5kIGxvY2FsbHksIGFuZAotYWxzbyBi dWlsdCB1c2luZyBhIHg4Nl82NC13NjQtbWluZ3czMiBHQ0MsIGFuZCBubyBwcm9ibGVtcyB3ZXJl IGZvdW5kLgotCi1nZGIvQ2hhbmdlTG9nOgotMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVu aW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgotCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwu Y29tPgotCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0JICAgIFBlZHJv IEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmluIChTVUJESVJfVU5J VFRFU1RTX1NSQ1MpOiBBZGQKLQkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxm dGVzdHMuYycuCi0JKENPTU1PTl9TRklMRVMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5jJy4KLQko SEZJTEVTX05PX1NSQ0RJUik6IEFkZCAnY29tbW9uL25ldHN0dWZmLmgnLgotCSogTkVXUyAoQ2hh bmdlcyBzaW5jZSBHREIgOC4yKTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCi0JKiBjb21tb24vbmV0 c3R1ZmYuYzogTmV3IGZpbGUuCi0JKiBjb21tb24vbmV0c3R1ZmYuaDogTmV3IGZpbGUuCi0JKiBz ZXItdGNwLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5oJy4KLQkod2FpdF9m b3JfY29ubmVjdCk6IFVwZGF0ZSBjb21tZW50LiAgTmV3IHBhcmFtZXRlcgotCSdnZGI6Om9wdGlv bmFsPGludD4gc29jaycgaW5zdGVhZCBvZiAnc3RydWN0IHNlcmlhbCAqc2NiJy4KLQlVc2UgJ3Nv Y2snIGRpcmVjdGx5IGluc3RlYWQgb2YgJ3NjYi0+ZmQnLgotCSh0cnlfY29ubmVjdCk6IE5ldyBm dW5jdGlvbiwgd2l0aCBjb2RlIGZyb20gJ25ldF9vcGVuJy4KLQkobmV0X29wZW4pOiBSZXdyaXRl IG1haW4gbG9vcCB0byBkZWFsIHdpdGggbXVsdGlwbGUKLQlzb2NrZXRzL2FkZHJlc3Nlcy4gIEhh bmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBj b25uZWN0aW9ucy4KLQkqIHVuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3Rz LmM6IE5ldyBmaWxlLgotCi1nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNl cmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8 ZmVyY2VycGF2QGdtYWlsLmNvbT4KLQkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwu Y29tPgotCi0JKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkICckKHNyY2RpcikvY29tbW9uL25l dHN0dWZmLmMnLgotCShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4KLQkoR0RCUkVQTEFZ X09CUyk6IExpa2V3aXNlLgotCSogZ2RicmVwbGF5LmM6IEluY2x1ZGUgJ3dzcGlhcGkuaCcgYW5k ICduZXRzdHVmZi5oJy4KLQkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2 NgotCWNvbm5lY3Rpb25zLgotCSogcmVtb3RlLXV0aWxzLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgn LCAnZmlsZXN0dWZmLmgnCi0JYW5kICd3c3BpYXBpLmgnLgotCShoYW5kbGVfYWNjZXB0X2V2ZW50 KTogQWNjZXB0IGNvbm5lY3Rpb25zIGZyb20gSVB2NiBzb3VyY2VzLgotCShyZW1vdGVfcHJlcGFy ZSk6IEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3Ig SVB2NiBjb25uZWN0aW9ucy4KLQkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig cHJpbnRpbmcgY29ubmVjdGlvbnMgZnJvbQotCUlQdjYgc291cmNlcy4KLQotZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6Ci0yMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9k akByZWRoYXQuY29tPgotCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0JICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0JICAgIFRz dXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KLQotCSogUkVBRE1FIChUZXN0c3VpdGUg UGFyYW1ldGVycyk6IE1lbnRpb24gbmV3ICdHREJfVEVTVF9TT0NLRVRIT1NUJwotCXBhcmFtZXRl ci4KLQkqIGJvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAn c29ja2V0aG9zdCcKLQlieSBkZWZhdWx0LgotCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhw OiBMaWtld2lzZS4KLQkqIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cDog SW1wcm92ZSByZWdleHAgdXNlZAotCWZvciBkZXRlY3Rpbmcgd2hlbiBhIHJlbW90ZSBkZWJ1Z2dp bmcgY29ubmVjdGlvbiBzdWNjZWVkcy4KLQkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhw OiBOZXcgZmlsZS4KLQkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZlcl9kZWZh dWx0X2dldF9jb21tX3BvcnQpOgotCURvIG5vdCBwcmVmaXggdGhlIHBvcnQgbnVtYmVyIHdpdGgg IjoiLgotCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1Qu ICBJbXBsZW1lbnQKLQlzdXBwb3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5nIGl0LiAgQWRkICck ZGVidWdob3N0X2dkYnNlcnZlcicKLQl0byB0aGUgbGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBz dGFydCBnZGJzZXJ2ZXIuICBIYW5kbGUgY2FzZQotCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNv bHZlIGEgbmV0d29yayBuYW1lLgotCi1nZGIvZG9jL0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNl cmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8 ZmVyY2VycGF2QGdtYWlsLmNvbT4KLQkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwu Y29tPgotCi0JKiBnZGIudGV4aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29tbWFuZHMpOiBBZGQg ZXhwbGFuYXRpb24KLQlhYm91dCBuZXcgSVB2NiBzdXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9u IHByZWZpeGVzLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxl LmluCi0tLS0gYS9nZGIvTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTQz MCw2ICs0MzAsNyBAQCBTVUJESVJfVU5JVFRFU1RTX1NSQ1MgPSBcCi0gCXVuaXR0ZXN0cy9vZmZz ZXQtdHlwZS1zZWxmdGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9vYnNlcnZhYmxlLXNlbGZ0ZXN0cy5j IFwKLSAJdW5pdHRlc3RzL29wdGlvbmFsLXNlbGZ0ZXN0cy5jIFwKLSsJdW5pdHRlc3RzL3BhcnNl LWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9wdGlkLXNlbGZ0ZXN0 cy5jIFwKLSAJdW5pdHRlc3RzL3JzcC1sb3ctc2VsZnRlc3RzLmMgXAotIAl1bml0dGVzdHMvc2Nv cGVkX2ZkLXNlbGZ0ZXN0cy5jIFwKLUBAIC05NjcsNiArOTY4LDcgQEAgQ09NTU9OX1NGSUxFUyA9 IFwKLSAJY29tbW9uL2pvYi1jb250cm9sLmMgXAotIAljb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5j IFwKLSAJY29tbW9uL2dkYl92ZWNzLmMgXAotKwljb21tb24vbmV0c3R1ZmYuYyBcCi0gCWNvbW1v bi9uZXctb3AuYyBcCi0gCWNvbW1vbi9wYXRoc3R1ZmYuYyBcCi0gCWNvbW1vbi9wcmludC11dGls cy5jIFwKLUBAIC0xNDQ4LDYgKzE0NTAsNyBAQCBIRklMRVNfTk9fU1JDRElSID0gXAotIAljb21t b24vZ2RiX3ZlY3MuaCBcCi0gCWNvbW1vbi9nZGJfd2FpdC5oIFwKLSAJY29tbW9uL2NvbW1vbi1p bmZlcmlvci5oIFwKLSsJY29tbW9uL25ldHN0dWZmLmggXAotIAljb21tb24vaG9zdC1kZWZzLmgg XAotIAljb21tb24vcGF0aHN0dWZmLmggXAotIAljb21tb24vcHJpbnQtdXRpbHMuaCBcCi1kaWZm IC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUwotLS0tIGEvZ2RiL05FV1MKLSsrKyBiL2dkYi9O RVdTCi1AQCAtMSw2ICsxLDEyIEBACi0gCQlXaGF0IGhhcyBjaGFuZ2VkIGluIEdEQj8KLSAJICAg ICAoT3JnYW5pemVkIHJlbGVhc2UgYnkgcmVsZWFzZSkKLSAKLSsqKiogQ2hhbmdlcyBzaW5jZSBH REIgOC4yCi0rCi0rKiBHREIgYW5kIEdEQnNlcnZlciBub3cgc3VwcG9ydCBJUHY2IGNvbm5lY3Rp b25zLiAgSVB2NiBhZGRyZXNzZXMKLSsgIGNhbiBiZSBwYXNzZWQgdXNpbmcgdGhlICdbQUREUkVT U106UE9SVCcgbm90YXRpb24sIG9yIHRoZSByZWd1bGFyCi0rICAnQUREUkVTUzpQT1JUJyBtZXRo b2QuCi0rCi0gKioqIENoYW5nZXMgaW4gR0RCIDguMgotIAotICogVGhlICdzZXQgZGlzYXNzZW1i bGVyLW9wdGlvbnMnIGNvbW1hbmQgbm93IHN1cHBvcnRzIHNwZWNpZnlpbmcgb3B0aW9ucwotZGlm ZiAtLWdpdCBhL2dkYi9jb21tb24vbmV0c3R1ZmYuYyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9jb21tb24vbmV0 c3R1ZmYuYwotQEAgLTAsMCArMSwxNTUgQEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1 ZmYuCi0rICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQot KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgImNvbW1vbi1kZWZzLmgiCi0r I2luY2x1ZGUgIm5ldHN0dWZmLmgiCi0rI2luY2x1ZGUgPGFsZ29yaXRobT4KLSsKLSsjaWZkZWYg VVNFX1dJTjMyQVBJCi0rI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGku aD4KLSsjZWxzZQotKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0rI2luY2x1ZGUgPGFycGEvaW5l dC5oPgotKyNpbmNsdWRlIDxuZXRkYi5oPgotKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0rI2lu Y2x1ZGUgPG5ldGluZXQvdGNwLmg+Ci0rI2VuZGlmCi0rCi0rLyogU2VlIGNvbW1vbi9uZXRzdHVm Zi5oLiAgKi8KLSsKLStzY29wZWRfZnJlZV9hZGRyaW5mbzo6fnNjb3BlZF9mcmVlX2FkZHJpbmZv ICgpCi0rewotKyAgZnJlZWFkZHJpbmZvIChtX3Jlcyk7Ci0rfQotKwotKy8qIFNlZSBjb21tb24v bmV0c3R1ZmYuaC4gICovCi0rCi0rcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYwotK3BhcnNlX2Nvbm5l Y3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAoc3RkOjpzdHJpbmcgc3BlYywgc3RydWN0IGFkZHJp bmZvICpoaW50KQotK3sKLSsgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0OwotKyAgc2l6ZV90 IGxhc3RfY29sb25fcG9zID0gMDsKLSsgIC8qIFdlJ3JlIGRlYWxpbmcgd2l0aCBJUHY2IGlmOgot KwotKyAgICAgLSBhaV9mYW1pbHkgaXMgQUZfSU5FVDYsIG9yCi0rICAgICAtIGFpX2ZhbWlseSBp cyBub3QgQUZfSU5FVCwgYW5kCi0rICAgICAgIC0gc3BlY1swXSBpcyAnWycsIG9yCi0rICAgICAg IC0gdGhlIG51bWJlciBvZiAnOicgb24gc3BlYyBpcyBncmVhdGVyIHRoYW4gMS4gICovCi0rICBi b29sIGlzX2lwdjYgPSAoaGludC0+YWlfZmFtaWx5ID09IEFGX0lORVQ2Ci0rCQkgIHx8IChoaW50 LT5haV9mYW1pbHkgIT0gQUZfSU5FVAotKwkJICAgICAgJiYgKHNwZWNbMF0gPT0gJ1snCi0rCQkJ ICB8fCBzdGQ6OmNvdW50IChzcGVjLmJlZ2luICgpLAotKwkJCQkJIHNwZWMuZW5kICgpLCAnOicp ID4gMSkpKTsKLSsKLSsgIGlmIChpc19pcHY2KQotKyAgICB7Ci0rICAgICAgaWYgKHNwZWNbMF0g PT0gJ1snKQotKwl7Ci0rCSAgLyogSVB2NiBhZGRyZXNzZXMgY2FuIGJlIHdyaXR0ZW4gYXMgJ1tB RERSXTpQT1JUJywgYW5kIHdlCi0rCSAgICAgc3VwcG9ydCB0aGlzIG5vdGF0aW9uLiAgKi8KLSsJ ICBzaXplX3QgY2xvc2VfYnJhY2tldF9wb3MgPSBzcGVjLmZpbmRfZmlyc3Rfb2YgKCddJyk7Ci0r Ci0rCSAgaWYgKGNsb3NlX2JyYWNrZXRfcG9zID09IHN0ZDo6c3RyaW5nOjpucG9zKQotKwkgICAg ZXJyb3IgKF8oIk1pc3NpbmcgY2xvc2UgYnJhY2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCQkg ICBzcGVjLmNfc3RyICgpKTsKLSsKLSsJICBoaW50LT5haV9mYW1pbHkgPSBBRl9JTkVUNjsKLSsK LSsJICBjb25zdCBjaGFyIGMgPSBzcGVjW2Nsb3NlX2JyYWNrZXRfcG9zICsgMV07Ci0rCi0rCSAg aWYgKGMgPT0gJ1wwJykKLSsJICAgIGxhc3RfY29sb25fcG9zID0gc3RkOjpzdHJpbmc6Om5wb3M7 Ci0rCSAgZWxzZSBpZiAoYyAhPSAnOicpCi0rCSAgICBlcnJvciAoXygiSW52YWxpZCBjcnVmdCBh ZnRlciBjbG9zZSBicmFja2V0IGluICclcyciKSwKLSsJCSAgIHNwZWMuY19zdHIgKCkpOwotKwot KwkgIC8qIEVyYXNlIGJvdGggJ1snIGFuZCAnXScuICAqLwotKwkgIHNwZWMuZXJhc2UgKDAsIDEp OwotKwkgIHNwZWMuZXJhc2UgKGNsb3NlX2JyYWNrZXRfcG9zIC0gMSwgMSk7Ci0rCX0KLSsgICAg ICBlbHNlIGlmIChzcGVjLmZpbmRfZmlyc3Rfb2YgKCddJykgIT0gc3RkOjpzdHJpbmc6Om5wb3Mp Ci0rCWVycm9yIChfKCJNaXNzaW5nIG9wZW4gYnJhY2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0r CSAgICAgICBzcGVjLmNfc3RyICgpKTsKLSsgICAgfQotKwotKyAgaWYgKGxhc3RfY29sb25fcG9z ID09IDApCi0rICAgIGxhc3RfY29sb25fcG9zID0gc3BlYy5maW5kX2xhc3Rfb2YgKCc6Jyk7Ci0r Ci0rICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBob3N0bmFtZSBwYXJ0LiAgKi8KLSsgIHNpemVfdCBo b3N0X2xlbjsKLSsKLSsgIGlmIChsYXN0X2NvbG9uX3BvcyAhPSBzdGQ6OnN0cmluZzo6bnBvcykK LSsgICAgewotKyAgICAgIC8qIFRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHBvcnQuICAqLwotKyAg ICAgIGhvc3RfbGVuID0gbGFzdF9jb2xvbl9wb3M7Ci0rICAgICAgcmV0LnBvcnRfc3RyID0gc3Bl Yy5zdWJzdHIgKGxhc3RfY29sb25fcG9zICsgMSk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgaG9z dF9sZW4gPSBzcGVjLnNpemUgKCk7Ci0rCi0rICByZXQuaG9zdF9zdHIgPSBzcGVjLnN1YnN0ciAo MCwgaG9zdF9sZW4pOwotKwotKyAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAq LwotKyAgaWYgKHJldC5ob3N0X3N0ci5lbXB0eSAoKSkKLSsgICAgcmV0Lmhvc3Rfc3RyID0gImxv Y2FsaG9zdCI7Ci0rCi0rICByZXR1cm4gcmV0OwotK30KLSsKLSsvKiBTZWUgY29tbW9uL25ldHN0 dWZmLmguICAqLwotKwotK3BhcnNlZF9jb25uZWN0aW9uX3NwZWMKLStwYXJzZV9jb25uZWN0aW9u X3NwZWMgKGNvbnN0IGNoYXIgKnNwZWMsIHN0cnVjdCBhZGRyaW5mbyAqaGludCkKLSt7Ci0rICAv KiBTdHJ1Y3QgdG8gaG9sZCB0aGUgYXNzb2NpYXRpb24gYmV0d2VlbiB2YWxpZCBwcmVmaXhlcywg dGhlaXIKLSsgICAgIGZhbWlseSBhbmQgc29ja3R5cGUuICAqLwotKyAgc3RydWN0IGhvc3RfcHJl Zml4Ci0rICAgIHsKLSsgICAgICAvKiBUaGUgcHJlZml4LiAgKi8KLSsgICAgICBjb25zdCBjaGFy ICpwcmVmaXg7Ci0rCi0rICAgICAgLyogVGhlICdhaV9mYW1pbHknLiAgKi8KLSsgICAgICBpbnQg ZmFtaWx5OwotKwotKyAgICAgIC8qIFRoZSAnYWlfc29ja3R5cGUnLiAgKi8KLSsgICAgICBpbnQg c29ja3R5cGU7Ci0rICAgIH07Ci0rICBzdGF0aWMgY29uc3Qgc3RydWN0IGhvc3RfcHJlZml4IHBy ZWZpeGVzW10gPQotKyAgICB7Ci0rICAgICAgeyAidWRwOiIsICBBRl9VTlNQRUMsIFNPQ0tfREdS QU0gfSwKLSsgICAgICB7ICJ0Y3A6IiwgIEFGX1VOU1BFQywgU09DS19TVFJFQU0gfSwKLSsgICAg ICB7ICJ1ZHA0OiIsIEFGX0lORVQsICAgU09DS19ER1JBTSB9LAotKyAgICAgIHsgInRjcDQ6Iiwg QUZfSU5FVCwgICBTT0NLX1NUUkVBTSB9LAotKyAgICAgIHsgInVkcDY6IiwgQUZfSU5FVDYsICBT T0NLX0RHUkFNIH0sCi0rICAgICAgeyAidGNwNjoiLCBBRl9JTkVUNiwgIFNPQ0tfU1RSRUFNIH0s Ci0rICAgIH07Ci0rCi0rICBmb3IgKGNvbnN0IGhvc3RfcHJlZml4IHByZWZpeCA6IHByZWZpeGVz KQotKyAgICBpZiAoc3RhcnRzd2l0aCAoc3BlYywgcHJlZml4LnByZWZpeCkpCi0rICAgICAgewot KwlzcGVjICs9IHN0cmxlbiAocHJlZml4LnByZWZpeCk7Ci0rCWhpbnQtPmFpX2ZhbWlseSA9IHBy ZWZpeC5mYW1pbHk7Ci0rCWhpbnQtPmFpX3NvY2t0eXBlID0gcHJlZml4LnNvY2t0eXBlOwotKwlo aW50LT5haV9wcm90b2NvbAotKwkgID0gaGludC0+YWlfc29ja3R5cGUgPT0gU09DS19ER1JBTSA/ IElQUFJPVE9fVURQIDogSVBQUk9UT19UQ1A7Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsKLSsgIHJl dHVybiBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHNwZWMsIGhpbnQpOwot K30KLWRpZmYgLS1naXQgYS9nZGIvY29tbW9uL25ldHN0dWZmLmggYi9nZGIvY29tbW9uL25ldHN0 dWZmLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvY29t bW9uL25ldHN0dWZmLmgKLUBAIC0wLDAgKzEsNzYgQEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdv cmsgc3R1ZmYuCi0rICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQot KyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2lmbmRlZiBORVRTVFVGRl9ICi0r I2RlZmluZSBORVRTVFVGRl9ICi0rCi0rI2luY2x1ZGUgPHN0cmluZz4KLSsKLSsvKiBMaWtlIE5J X01BWEhPU1QvTklfTUFYU0VSViwgYnV0IGVub3VnaCBmb3IgbnVtZXJpYyBmb3Jtcy4gICovCi0r I2RlZmluZSBHREJfTklfTUFYX0FERFIgNjQKLSsjZGVmaW5lIEdEQl9OSV9NQVhfUE9SVCAxNgot KwotKy8qIEhlbHBlciBjbGFzcyB0byBndWFyYW50ZWUgdGhhdCB3ZSBhbHdheXMgY2FsbCAnZnJl ZWFkZHJpbmZvJy4gICovCi0rCi0rY2xhc3Mgc2NvcGVkX2ZyZWVfYWRkcmluZm8KLSt7Ci0rcHVi bGljOgotKyAgLyogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gICovCi0rICBleHBsaWNpdCBzY29wZWRf ZnJlZV9hZGRyaW5mbyAoc3RydWN0IGFkZHJpbmZvICphaW5mbykKLSsgICAgOiBtX3JlcyAoYWlu Zm8pCi0rICB7Ci0rICB9Ci0rCi0rICAvKiBEZXN0cnVjdG9yIHJlc3BvbnNpYmxlIGZvciBmcmVl J2luZyBNX1JFUyBieSBjYWxsaW5nCi0rICAgICAnZnJlZWFkZHJpbmZvJy4gICovCi0rICB+c2Nv cGVkX2ZyZWVfYWRkcmluZm8gKCk7Ci0rCi0rICBESVNBQkxFX0NPUFlfQU5EX0FTU0lHTiAoc2Nv cGVkX2ZyZWVfYWRkcmluZm8pOwotKwotK3ByaXZhdGU6Ci0rICAvKiBUaGUgYWRkcmluZm8gcmVz b3VyY2UuICAqLwotKyAgc3RydWN0IGFkZHJpbmZvICptX3JlczsKLSt9OwotKwotKy8qIFRoZSBz dHJ1Y3Qgd2UgcmV0dXJuIGFmdGVyIHBhcnNpbmcgdGhlIGNvbm5lY3Rpb24gc3BlYy4gICovCi0r Ci0rc3RydWN0IHBhcnNlZF9jb25uZWN0aW9uX3NwZWMKLSt7Ci0rICAvKiBUaGUgaG9zdG5hbWUu ICAqLwotKyAgc3RkOjpzdHJpbmcgaG9zdF9zdHI7Ci0rCi0rICAvKiBUaGUgcG9ydCwgaWYgYW55 LiAgKi8KLSsgIHN0ZDo6c3RyaW5nIHBvcnRfc3RyOwotK307Ci0rCi0rCi0rLyogUGFyc2UgU1BF QyAod2hpY2ggaXMgYSBzdHJpbmcgaW4gdGhlIGZvcm0gb2YgIkFERFI6UE9SVCIpIGFuZAotKyAg IHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9zcGVjJyBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJv cGVyIGZpZWxkcwotKyAgIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQgYWNjb3JkaW5nbHku ICAqLwotK2V4dGVybiBwYXJzZWRfY29ubmVjdGlvbl9zcGVjCi0rICBwYXJzZV9jb25uZWN0aW9u X3NwZWNfd2l0aG91dF9wcmVmaXggKHN0ZDo6c3RyaW5nIHNwZWMsCi0rCQkJCQlzdHJ1Y3QgYWRk cmluZm8gKmhpbnQpOwotKwotKy8qIFBhcnNlIFNQRUMgKHdoaWNoIGlzIGEgc3RyaW5nIGluIHRo ZSBmb3JtIG9mCi0rICAgIlt0Y3BbNl06fHVkcFs2XTpdQUREUjpQT1JUIikgYW5kIHJldHVybiBh ICdwYXJzZWRfY29ubmVjdGlvbl9zcGVjJwotKyAgIHN0cnVjdHVyZSB3aXRoIHRoZSBwcm9wZXIg ZmllbGRzIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQKLSsgICBhY2NvcmRpbmdseS4gICov Ci0rZXh0ZXJuIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VfY29ubmVjdGlvbl9zcGVjIChj b25zdCBjaGFyICpzcGVjLAotKwkJCQkJCSAgICAgc3RydWN0IGFkZHJpbmZvICpoaW50KTsKLSsK LSsjZW5kaWYgLyogISBORVRTVFVGRl9IICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9DaGFuZ2VM b2cgYi9nZGIvZG9jL0NoYW5nZUxvZwotLS0tIGEvZ2RiL2RvYy9DaGFuZ2VMb2cKLSsrKyBiL2dk Yi9kb2MvQ2hhbmdlTG9nCi1AQCAtMSwzICsxLDExIEBACi0rMjAxOC0wNy0xMSAgU2VyZ2lvIER1 cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLSsJICAgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsJICAgIFBhdWwgRmVydHNlciAgPGZlcmNl cnBhdkBnbWFpbC5jb20+Ci0rCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+ Ci0rCi0rCSogZ2RiLnRleGluZm8gKFJlbW90ZSBDb25uZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4 cGxhbmF0aW9uCi0rCWFib3V0IG5ldyBJUHY2IHN1cHBvcnQuICBBZGQgbmV3IGNvbm5lY3Rpb24g cHJlZml4ZXMuCi0rCi0gMjAxOC0wNy0wMiAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BtaXBz LmNvbT4KLSAKLSAJUFIgdGRlcC84MjgyCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5m byBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLS0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KLSsrKyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KLUBAIC0yMDU0OCwxNiArMjA1NDgsMjcgQEAgSWYgeW91J3Jl IHVzaW5nIGEgc2VyaWFsIGxpbmUsIHlvdSBtYXkgd2FudCB0byBnaXZlIEB2YWx1ZXtHREJOfSB0 aGUKLSBAY29kZXt0YXJnZXR9IGNvbW1hbmQuCi0gCi0gQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29k ZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7QHZh cntbaG9zdF19OkB2YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwOkB2 YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A6QHZh cntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNDpA dmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpA dmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpA dmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBA Y29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1v dGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdldCBleHRlbmRl ZC1yZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0 IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0 ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9y dH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9 OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpA dmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAY2luZGV4IEBhY3Jvbnlte1RDUH0gcG9ydCwgQGNv ZGV7dGFyZ2V0IHJlbW90ZX0KLSBEZWJ1ZyB1c2luZyBhIEBhY3Jvbnlte1RDUH0gY29ubmVjdGlv biB0byBAdmFye3BvcnR9IG9uIEB2YXJ7aG9zdH0uCi0tVGhlIEB2YXJ7aG9zdH0gbWF5IGJlIGVp dGhlciBhIGhvc3QgbmFtZSBvciBhIG51bWVyaWMgQGFjcm9ueW17SVB9Ci0tYWRkcmVzczsgQHZh cntwb3J0fSBtdXN0IGJlIGEgZGVjaW1hbCBudW1iZXIuICBUaGUgQHZhcntob3N0fSBjb3VsZCBi ZQotLXRoZSB0YXJnZXQgbWFjaGluZSBpdHNlbGYsIGlmIGl0IGlzIGRpcmVjdGx5IGNvbm5lY3Rl ZCB0byB0aGUgbmV0LCBvcgotLWl0IG1pZ2h0IGJlIGEgdGVybWluYWwgc2VydmVyIHdoaWNoIGlu IHR1cm4gaGFzIGEgc2VyaWFsIGxpbmUgdG8gdGhlCi0tdGFyZ2V0LgotK1RoZSBAdmFye2hvc3R9 IG1heSBiZSBlaXRoZXIgYSBob3N0IG5hbWUsIGEgbnVtZXJpYyBAYWNyb255bXtJUHY0fQotK2Fk ZHJlc3MsIG9yIGEgbnVtZXJpYyBAYWNyb255bXtJUHY2fSBhZGRyZXNzICh3aXRoIG9yIHdpdGhv dXQgdGhlCi0rc3F1YXJlIGJyYWNrZXRzIHRvIHNlcGFyYXRlIHRoZSBhZGRyZXNzIGZyb20gdGhl IHBvcnQpOyBAdmFye3BvcnR9Ci0rbXVzdCBiZSBhIGRlY2ltYWwgbnVtYmVyLiAgVGhlIEB2YXJ7 aG9zdH0gY291bGQgYmUgdGhlIHRhcmdldCBtYWNoaW5lCi0raXRzZWxmLCBpZiBpdCBpcyBkaXJl Y3RseSBjb25uZWN0ZWQgdG8gdGhlIG5ldCwgb3IgaXQgbWlnaHQgYmUgYQotK3Rlcm1pbmFsIHNl cnZlciB3aGljaCBpbiB0dXJuIGhhcyBhIHNlcmlhbCBsaW5lIHRvIHRoZSB0YXJnZXQuCi0gCi0g Rm9yIGV4YW1wbGUsIHRvIGNvbm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVy IG5hbWVkCi0gQGNvZGV7bWFueWZhcm1zfToKLUBAIC0yMDU2Niw2ICsyMDU3NywyOCBAQCBGb3Ig ZXhhbXBsZSwgdG8gY29ubmVjdCB0byBwb3J0IDI4Mjggb24gYSB0ZXJtaW5hbCBzZXJ2ZXIgbmFt ZWQKLSB0YXJnZXQgcmVtb3RlIG1hbnlmYXJtczoyODI4Ci0gQGVuZCBzbWFsbGV4YW1wbGUKLSAK LStUbyBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciB3aG9zZSBhZGRy ZXNzIGlzCi0rQGNvZGV7MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0fSwg eW91IGNhbiBlaXRoZXIgdXNlIHRoZQotK3NxdWFyZSBicmFja2V0IHN5bnRheDoKLSsKLStAc21h bGxleGFtcGxlCi0rdGFyZ2V0IHJlbW90ZSBbMjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6 MDM3MDo3MzM0XToyODI4Ci0rQGVuZCBzbWFsbGV4YW1wbGUKLSsKLStAbm9pbmRlbnQKLStvciBl eHBsaWNpdGx5IHNwZWNpZnkgdGhlIEBhY3Jvbnlte0lQdjZ9IHByb3RvY29sOgotKwotK0BzbWFs bGV4YW1wbGUKLSt0YXJnZXQgcmVtb3RlIHRjcDY6MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhh MmU6MDM3MDo3MzM0OjI4MjgKLStAZW5kIHNtYWxsZXhhbXBsZQotKwotK1RoaXMgbGFzdCBleGFt cGxlIG1heSBiZSBjb25mdXNpbmcgdG8gdGhlIHJlYWRlciwgYmVjYXVzZSB0aGVyZSBpcyBubwot K3Zpc2libGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHRoZSBob3N0bmFtZSBhbmQgdGhlIHBvcnQgbnVt YmVyLgotK1RoZXJlZm9yZSwgd2UgcmVjb21tZW5kIHRoZSB1c2VyIHRvIHByb3ZpZGUgQGFjcm9u eW17SVB2Nn0gYWRkcmVzc2VzCi0rdXNpbmcgc3F1YXJlIGJyYWNrZXRzIGZvciBjbGFyaXR5LiAg SG93ZXZlciwgaXQgaXMgaW1wb3J0YW50IHRvCi0rbWVudGlvbiB0aGF0IGZvciBAdmFsdWV7R0RC Tn0gdGhlcmUgaXMgbm8gYW1iaWd1aXR5OiB0aGUgbnVtYmVyIGFmdGVyCi0rdGhlIGxhc3QgY29s b24gaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgcG9ydCBudW1iZXIuCi0rCi0gSWYgeW91ciByZW1v dGUgdGFyZ2V0IGlzIGFjdHVhbGx5IHJ1bm5pbmcgb24gdGhlIHNhbWUgbWFjaGluZSBhcyB5b3Vy Ci0gZGVidWdnZXIgc2Vzc2lvbiAoZS5nLkA6IGEgc2ltdWxhdG9yIGZvciB5b3VyIHRhcmdldCBy dW5uaW5nIG9uIHRoZQotIHNhbWUgaG9zdCksIHlvdSBjYW4gb21pdCB0aGUgaG9zdG5hbWUuICBG b3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0bwotQEAgLTIwNTc5LDcgKzIwNjEyLDE1IEBAIHRhcmdl dCByZW1vdGUgOjEyMzQKLSBOb3RlIHRoYXQgdGhlIGNvbG9uIGlzIHN0aWxsIHJlcXVpcmVkIGhl cmUuCi0gCi0gQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA6QHZhcntob3N0fTpAdmFye3Bv cnR9fQotK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDpAdmFye1tob3N0XX06QHZhcntw b3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntw b3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7W2hvc3RdfTpAdmFy e3BvcnR9fQotK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFye2hv c3R9OkB2YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRw OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBA Y29kZXt1ZHA6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRl ZC1yZW1vdGUgQGNvZGV7dWRwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdl dCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0 ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFye1tob3N0XX06QHZhcntw b3J0fX0KLSBAY2luZGV4IEBhY3Jvbnlte1VEUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0K LSBEZWJ1ZyB1c2luZyBAYWNyb255bXtVRFB9IHBhY2tldHMgdG8gQHZhcntwb3J0fSBvbiBAdmFy e2hvc3R9LiAgRm9yIGV4YW1wbGUsIHRvCi0gY29ubmVjdCB0byBAYWNyb255bXtVRFB9IHBvcnQg MjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBuYW1lZCBAY29kZXttYW55ZmFybXN9OgotZGlmZiAt LWdpdCBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nIGIvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cK LS0tLSBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0rKysgYi9nZGIvZ2Ric2VydmVyL0NoYW5n ZUxvZwotQEAgLTEsMyArMSwyMiBAQAotKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0rCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+Ci0rCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwu Y29tPgotKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotKwotKwkqIE1h a2VmaWxlLmluIChTRklMRVMpOiBBZGQgJyQoc3JjZGlyKS9jb21tb24vbmV0c3R1ZmYuYycuCi0r CShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4KLSsJKEdEQlJFUExBWV9PQlMpOiBMaWtl d2lzZS4KLSsJKiBnZGJyZXBsYXkuYzogSW5jbHVkZSAnd3NwaWFwaS5oJyBhbmQgJ25ldHN0dWZm LmgnLgotKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2NgotKwljb25u ZWN0aW9ucy4KLSsJKiByZW1vdGUtdXRpbHMuYzogSW5jbHVkZSAnbmV0c3R1ZmYuaCcsICdmaWxl c3R1ZmYuaCcKLSsJYW5kICd3c3BpYXBpLmgnLgotKwkoaGFuZGxlX2FjY2VwdF9ldmVudCk6IEFj Y2VwdCBjb25uZWN0aW9ucyBmcm9tIElQdjYgc291cmNlcy4KLSsJKHJlbW90ZV9wcmVwYXJlKTog SGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQKLSsJc3VwcG9ydCBmb3IgSVB2 NiBjb25uZWN0aW9ucy4KLSsJKHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHBy aW50aW5nIGNvbm5lY3Rpb25zIGZyb20KLSsJSVB2NiBzb3VyY2VzLgotKwotIDIwMTgtMDctMTEg IFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gCi0gCVBSIGdkYi8yMzM3NwotZGlm ZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvTWFrZWZpbGUuaW4gYi9nZGIvZ2Ric2VydmVyL01ha2Vm aWxlLmluCi0tLS0gYS9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi0rKysgYi9nZGIvZ2Ric2Vy dmVyL01ha2VmaWxlLmluCi1AQCAtMjExLDYgKzIxMSw3IEBAIFNGSUxFUyA9IFwKLSAJJChzcmNk aXIpL2NvbW1vbi9qb2ItY29udHJvbC5jIFwKLSAJJChzcmNkaXIpL2NvbW1vbi9nZGJfdGlsZGVf ZXhwYW5kLmMgXAotIAkkKHNyY2RpcikvY29tbW9uL2dkYl92ZWNzLmMgXAotKwkkKHNyY2Rpcikv Y29tbW9uL25ldHN0dWZmLmMgXAotIAkkKHNyY2RpcikvY29tbW9uL25ldy1vcC5jIFwKLSAJJChz cmNkaXIpL2NvbW1vbi9wYXRoc3R1ZmYuYyBcCi0gCSQoc3JjZGlyKS9jb21tb24vcHJpbnQtdXRp bHMuYyBcCi1AQCAtMjU0LDYgKzI1NSw3IEBAIE9CUyA9IFwKLSAJY29tbW9uL2Zvcm1hdC5vIFwK LSAJY29tbW9uL2dkYl90aWxkZV9leHBhbmQubyBcCi0gCWNvbW1vbi9nZGJfdmVjcy5vIFwKLSsJ Y29tbW9uL25ldHN0dWZmLm8gXAotIAljb21tb24vbmV3LW9wLm8gXAotIAljb21tb24vcGF0aHN0 dWZmLm8gXAotIAljb21tb24vcHJpbnQtdXRpbHMubyBcCi1AQCAtMjkwLDYgKzI5Miw3IEBAIEdE QlJFUExBWV9PQlMgPSBcCi0gCWNvbW1vbi9jb21tb24tZXhjZXB0aW9ucy5vIFwKLSAJY29tbW9u L2NvbW1vbi11dGlscy5vIFwKLSAJY29tbW9uL2Vycm9ycy5vIFwKLSsJY29tbW9uL25ldHN0dWZm Lm8gXAotIAljb21tb24vcHJpbnQtdXRpbHMubyBcCi0gCWdkYnJlcGxheS5vIFwKLSAJdXRpbHMu byBcCi1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYyBiL2dkYi9nZGJzZXJ2 ZXIvZ2RicmVwbGF5LmMKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLSsrKyBiL2dk Yi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLUBAIC00Niw4ICs0NiwxMSBAQAotIAotICNpZiBVU0Vf V0lOMzJBUEkKLSAjaW5jbHVkZSA8d2luc29jazIuaD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgot ICNlbmRpZgotIAotKyNpbmNsdWRlICJuZXRzdHVmZi5oIgotKwotICNpZm5kZWYgSEFWRV9TT0NL TEVOX1QKLSB0eXBlZGVmIGludCBzb2NrbGVuX3Q7Ci0gI2VuZGlmCi1AQCAtMTQyLDU2ICsxNDUs MTA4IEBAIHJlbW90ZV9jbG9zZSAodm9pZCkKLSBzdGF0aWMgdm9pZAotIHJlbW90ZV9vcGVuIChj aGFyICpuYW1lKQotIHsKLS0gIGlmICghc3RyY2hyIChuYW1lLCAnOicpKQotKyAgY2hhciAqbGFz dF9jb2xvbiA9IHN0cnJjaHIgKG5hbWUsICc6Jyk7Ci0rCi0rICBpZiAobGFzdF9jb2xvbiA9PSBO VUxMKQotICAgICB7Ci0gICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IE11c3Qgc3BlY2lmeSB0 Y3AgY29ubmVjdGlvbiBhcyBob3N0OmFkZHJcbiIsIG5hbWUpOwotICAgICAgIGZmbHVzaCAoc3Rk ZXJyKTsKLSAgICAgICBleGl0ICgxKTsKLSAgICAgfQotLSAgZWxzZQotLSAgICB7Ci0rCi0gI2lm ZGVmIFVTRV9XSU4zMkFQSQotLSAgICAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsK LSsgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKLSAjZW5kaWYKLS0gICAgICBjaGFy ICpwb3J0X3N0cjsKLS0gICAgICBpbnQgcG9ydDsKLS0gICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4g c29ja2FkZHI7Ci0tICAgICAgc29ja2xlbl90IHRtcDsKLS0gICAgICBpbnQgdG1wX2Rlc2M7Ci0r ICBjaGFyICpwb3J0X3N0cjsKLSsgIGludCB0bXA7Ci0rICBpbnQgdG1wX2Rlc2M7Ci0rICBzdHJ1 Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0gCi0tICAgICAg cG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7Ci0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXpl b2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJl Zm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9VTlNQRUMuICAqLwotKyAgaGludC5haV9mYW1p bHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBo aW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Ci0gCi0tICAgICAgcG9ydCA9IGF0b2kgKHBv cnRfc3RyICsgMSk7Ci0rICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nv bm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5l bXB0eSAoKSkKLSsgICAgZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiks IG5hbWUpOwotIAotICNpZmRlZiBVU0VfV0lOMzJBUEkKLS0gICAgICBpZiAoIXdpbnNvY2tfaW5p dGlhbGl6ZWQpCi0tCXsKLS0JICBXU0FEQVRBIHdzYWQ7Ci0rICBpZiAoIXdpbnNvY2tfaW5pdGlh bGl6ZWQpCi0rICAgIHsKLSsgICAgICBXU0FEQVRBIHdzYWQ7Ci0gCi0tCSAgV1NBU3RhcnR1cCAo TUFLRVdPUkQgKDEsIDApLCAmd3NhZCk7Ci0tCSAgd2luc29ja19pbml0aWFsaXplZCA9IDE7Ci0t CX0KLSsgICAgICBXU0FTdGFydHVwIChNQUtFV09SRCAoMSwgMCksICZ3c2FkKTsKLSsgICAgICB3 aW5zb2NrX2luaXRpYWxpemVkID0gMTsKLSsgICAgfQotICNlbmRpZgotIAotLSAgICAgIHRtcF9k ZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7Ci0tICAgICAgaWYgKHRtcF9k ZXNjID09IC0xKQotLQlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3Qgb3BlbiBzb2NrZXQiKTsKLSsg IGludCByID0gZ2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBv cnRfc3RyLmNfc3RyICgpLAotKwkJICAgICAgICZoaW50LCAmYWluZm8pOwotIAotLSAgICAgIC8q IEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMgcG9ydC4gKi8KLS0gICAgICB0bXAgPSAxOwotLSAg ICAgIHNldHNvY2tvcHQgKHRtcF9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIChjaGFy ICopICZ0bXAsCi0tCQkgIHNpemVvZiAodG1wKSk7Ci0rICBpZiAociAhPSAwKQotKyAgICB7Ci0r ICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzXG4i LAotKwkgICAgICAgcGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19z dHIgKCksCi0rCSAgICAgICBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBmZmx1c2ggKHN0ZGVy cik7Ci0rICAgICAgZXhpdCAoMSk7Ci0rICAgIH0KLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZv IGZyZWVfYWluZm8gKGFpbmZvKTsKLSsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqcDsKLSsKLSsgIGZv ciAocCA9IGFpbmZvOyBwICE9IE5VTEw7IHAgPSBwLT5haV9uZXh0KQotKyAgICB7Ci0rICAgICAg dG1wX2Rlc2MgPSBzb2NrZXQgKHAtPmFpX2ZhbWlseSwgcC0+YWlfc29ja3R5cGUsIHAtPmFpX3By b3RvY29sKTsKLSAKLS0gICAgICBzb2NrYWRkci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKLS0gICAg ICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gICAgICBzb2NrYWRkci5zaW5f YWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOwotKyAgICAgIGlmICh0bXBfZGVzYyA+PSAwKQotKwli cmVhazsKLSsgICAgfQotKwotKyAgaWYgKHAgPT0gTlVMTCkKLSsgICAgcGVycm9yX3dpdGhfbmFt ZSAoIkNhbm5vdCBvcGVuIHNvY2tldCIpOwotIAotLSAgICAgIGlmIChiaW5kICh0bXBfZGVzYywg KHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQotLQkgIHx8 IGxpc3RlbiAodG1wX2Rlc2MsIDEpKQotLQlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBh ZGRyZXNzIik7Ci0rICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCi0rICB0 bXAgPSAxOwotKyAgc2V0c29ja29wdCAodG1wX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQURE UiwgKGNoYXIgKikgJnRtcCwKLSsJICAgICAgc2l6ZW9mICh0bXApKTsKLSsKLSsgIHN3aXRjaCAo cC0+YWlfZmFtaWx5KQotKyAgICB7Ci0rICAgIGNhc2UgQUZfSU5FVDoKLSsgICAgICAoKHN0cnVj dCBzb2NrYWRkcl9pbiAqKSBwLT5haV9hZGRyKS0+c2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FO WTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBBRl9JTkVUNjoKLSsgICAgICAoKHN0cnVjdCBz b2NrYWRkcl9pbjYgKikgcC0+YWlfYWRkciktPnNpbjZfYWRkciA9IGluNmFkZHJfYW55OwotKyAg ICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIkludmFs aWQgJ2FpX2ZhbWlseScgJWRcbiIsIHAtPmFpX2ZhbWlseSk7Ci0rICAgICAgZXhpdCAoMSk7Ci0r ICAgIH0KLSsKLSsgIGlmIChiaW5kICh0bXBfZGVzYywgcC0+YWlfYWRkciwgcC0+YWlfYWRkcmxl bikgIT0gMCkKLSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQgYWRkcmVzcyIpOwot KwotKyAgaWYgKHAtPmFpX3NvY2t0eXBlID09IFNPQ0tfREdSQU0pCi0rICAgIHJlbW90ZV9kZXNj ID0gdG1wX2Rlc2M7Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3Rv cmFnZSBzb2NrYWRkcjsKLSsgICAgICBzb2NrbGVuX3Qgc29ja2FkZHJzaXplID0gc2l6ZW9mIChz b2NrYWRkcik7Ci0rICAgICAgY2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19w b3J0W0dEQl9OSV9NQVhfUE9SVF07Ci0rCi0rICAgICAgaWYgKGxpc3RlbiAodG1wX2Rlc2MsIDEp ICE9IDApCi0rCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBsaXN0ZW4gb24gc29ja2V0Iik7Ci0r Ci0rICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRy ICopICZzb2NrYWRkciwKLSsJCQkgICAgJnNvY2thZGRyc2l6ZSk7Ci0gCi0tICAgICAgdG1wID0g c2l6ZW9mIChzb2NrYWRkcik7Ci0tICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNj LCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgJnRtcCk7Ci0gICAgICAgaWYgKHJlbW90 ZV9kZXNjID09IC0xKQotIAlwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOwotIAot QEAgLTIwNiw2ICsyNjEsMTYgQEAgcmVtb3RlX29wZW4gKGNoYXIgKm5hbWUpCi0gICAgICAgc2V0 c29ja29wdCAocmVtb3RlX2Rlc2MsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwKLSAJCSAgKGNo YXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKLSAKLSsgICAgICBpZiAoZ2V0bmFtZWluZm8gKChz dHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzb2NrYWRkcnNpemUsCi0rCQkgICAgICAgb3Jp Z19ob3N0LCBzaXplb2YgKG9yaWdfaG9zdCksCi0rCQkgICAgICAgb3JpZ19wb3J0LCBzaXplb2Yg KG9yaWdfcG9ydCksCi0rCQkgICAgICAgTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVikg PT0gMCkKLSsJewotKwkgIGZwcmludGYgKHN0ZGVyciwgIlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBo b3N0ICVzLCBwb3J0ICVzXG4iLAotKwkJICAgb3JpZ19ob3N0LCBvcmlnX3BvcnQpOwotKwkgIGZm bHVzaCAoc3RkZXJyKTsKLSsJfQotKwotICNpZm5kZWYgVVNFX1dJTjMyQVBJCi0gICAgICAgY2xv c2UgKHRtcF9kZXNjKTsJCS8qIE5vIGxvbmdlciBuZWVkIHRoaXMgKi8KLSAKLWRpZmYgLS1naXQg YS9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRp bHMuYwotLS0tIGEvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotKysrIGIvZ2RiL2dkYnNl cnZlci9yZW1vdGUtdXRpbHMuYwotQEAgLTI2LDYgKzI2LDggQEAKLSAjaW5jbHVkZSAiZGxsLmgi Ci0gI2luY2x1ZGUgInJzcC1sb3cuaCIKLSAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCi0rI2luY2x1 ZGUgIm5ldHN0dWZmLmgiCi0rI2luY2x1ZGUgImZpbGVzdHVmZi5oIgotICNpbmNsdWRlIDxjdHlw ZS5oPgotICNpZiBIQVZFX1NZU19JT0NUTF9ICi0gI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotQEAg LTYzLDYgKzY1LDcgQEAKLSAKLSAjaWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2sy Lmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSAjZW5kaWYKLSAKLSAjaWYgX19RTlhfXwotQEAg LTE1MSwxOSArMTU0LDE4IEBAIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKGludCBmZCkKLSBz dGF0aWMgaW50Ci0gaGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRh IGNsaWVudF9kYXRhKQotIHsKLS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0gIHNv Y2tsZW5fdCB0bXA7Ci0rICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgIHNv Y2tsZW5fdCBsZW4gPSBzaXplb2YgKHNvY2thZGRyKTsKLSAKLSAgIGlmIChkZWJ1Z190aHJlYWRz KQotICAgICBkZWJ1Z19wcmludGYgKCJoYW5kbGluZyBwb3NzaWJsZSBhY2NlcHQgZXZlbnRcbiIp OwotIAotLSAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0tICByZW1vdGVfZGVzYyA9IGFjY2Vw dCAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmdG1wKTsKLSsg IHJlbW90ZV9kZXNjID0gYWNjZXB0IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAm c29ja2FkZHIsICZsZW4pOwotICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQotICAgICBwZXJyb3Jf d2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOwotIAotICAgLyogRW5hYmxlIFRDUCBrZWVwIGFs aXZlIHByb2Nlc3MuICovCi0tICB0bXAgPSAxOwotKyAgc29ja2xlbl90IHRtcCA9IDE7Ci0gICBz ZXRzb2Nrb3B0IChyZW1vdGVfZGVzYywgU09MX1NPQ0tFVCwgU09fS0VFUEFMSVZFLAotIAkgICAg ICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOwotIAotQEAgLTE5Miw4ICsxOTQsMTkgQEAg aGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRh KQotICAgZGVsZXRlX2ZpbGVfaGFuZGxlciAobGlzdGVuX2Rlc2MpOwotIAotICAgLyogQ29udmVy dCBJUCBhZGRyZXNzIHRvIHN0cmluZy4gICovCi0tICBmcHJpbnRmIChzdGRlcnIsICJSZW1vdGUg ZGVidWdnaW5nIGZyb20gaG9zdCAlc1xuIiwKLS0JICAgaW5ldF9udG9hIChzb2NrYWRkci5zaW5f YWRkcikpOwotKyAgY2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dE Ql9OSV9NQVhfUE9SVF07Ci0rCi0rICBpbnQgciA9IGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2th ZGRyICopICZzb2NrYWRkciwgbGVuLAotKwkJICAgICAgIG9yaWdfaG9zdCwgc2l6ZW9mIChvcmln X2hvc3QpLAotKwkJICAgICAgIG9yaWdfcG9ydCwgc2l6ZW9mIChvcmlnX3BvcnQpLAotKwkJICAg ICAgIE5JX05VTUVSSUNIT1NUIHwgTklfTlVNRVJJQ1NFUlYpOwotKwotKyAgaWYgKHIgIT0gMCkK LSsgICAgZnByaW50ZiAoc3RkZXJyLCBfKCJDb3VsZCBub3Qgb2J0YWluIHJlbW90ZSBhZGRyZXNz OiAlc1xuIiksCi0rCSAgICAgZ2FpX3N0cmVycm9yIChyKSk7Ci0rICBlbHNlCi0rICAgIGZwcmlu dGYgKHN0ZGVyciwgXygiUmVtb3RlIGRlYnVnZ2luZyBmcm9tIGhvc3QgJXMsIHBvcnQgJXNcbiIp LAotKwkgICAgIG9yaWdfaG9zdCwgb3JpZ19wb3J0KTsKLSAKLSAgIGVuYWJsZV9hc3luY19ub3Rp ZmljYXRpb24gKHJlbW90ZV9kZXNjKTsKLSAKLUBAIC0yMjIsMTAgKzIzNSw3IEBAIHJlbW90ZV9w cmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQotICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAgIHN0YXRp YyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKLSAjZW5kaWYKLS0gIGludCBwb3J0OwotLSAgc3Ry dWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotICAgc29ja2xlbl90IHRtcDsKLS0gIGNoYXIgKnBv cnRfZW5kOwotIAotICAgcmVtb3RlX2lzX3N0ZGlvID0gMDsKLSAgIGlmIChzdHJjbXAgKG5hbWUs IFNURElPX0NPTk5FQ1RJT05fTkFNRSkgPT0gMCkKLUBAIC0yMzgsMTcgKzI0OCwyNSBAQCByZW1v dGVfcHJlcGFyZSAoY29uc3QgY2hhciAqbmFtZSkKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAK LS0gIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAnOicpOwotLSAgaWYgKHBvcnRfc3RyID09IE5V TEwpCi0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87 Ci0rCi0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBu byBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBB Rl9VTlNQRUMuICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFp X3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19U Q1A7Ci0rCi0rICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZAotKyAgICA9IHBhcnNlX2Nv bm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBh cnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSAgICAgewotICAgICAgIGNzLnRyYW5zcG9ydF9pc19y ZWxpYWJsZSA9IDA7Ci0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBwb3J0ID0gc3RydG91 bCAocG9ydF9zdHIgKyAxLCAmcG9ydF9lbmQsIDEwKTsKLS0gIGlmIChwb3J0X3N0clsxXSA9PSAn XDAnIHx8ICpwb3J0X2VuZCAhPSAnXDAnKQotLSAgICBlcnJvciAoIkJhZCBwb3J0IGFyZ3VtZW50 OiAlcyIsIG5hbWUpOwotLQotICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAgIGlmICghd2luc29ja19p bml0aWFsaXplZCkKLSAgICAgewotQEAgLTI1OSw4ICsyNzcsMjYgQEAgcmVtb3RlX3ByZXBhcmUg KGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgIH0KLSAjZW5kaWYKLSAKLS0gIGxpc3Rlbl9kZXNjID0g c29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwotLSAgaWYgKGxpc3Rl bl9kZXNjID09IC0xKQotKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNf c3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCi0rCQkgICAgICAgJmhpbnQsICZhaW5m byk7Ci0rCi0rICBpZiAociAhPSAwKQotKyAgICBlcnJvciAoXygiJXM6IGNhbm5vdCByZXNvbHZl IG5hbWU6ICVzIiksIG5hbWUsIGdhaV9zdHJlcnJvciAocikpOwotKwotKyAgc2NvcGVkX2ZyZWVf YWRkcmluZm8gZnJlZWFkZHJpbmZvIChhaW5mbyk7Ci0rCi0rICBzdHJ1Y3QgYWRkcmluZm8gKml0 ZXI7Ci0rCi0rICBmb3IgKGl0ZXIgPSBhaW5mbzsgaXRlciAhPSBOVUxMOyBpdGVyID0gaXRlci0+ YWlfbmV4dCkKLSsgICAgewotKyAgICAgIGxpc3Rlbl9kZXNjID0gZ2RiX3NvY2tldF9jbG9leGVj IChpdGVyLT5haV9mYW1pbHksIGl0ZXItPmFpX3NvY2t0eXBlLAotKwkJCQkJaXRlci0+YWlfcHJv dG9jb2wpOwotKwotKyAgICAgIGlmIChsaXN0ZW5fZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAg fQotKwotKyAgaWYgKGl0ZXIgPT0gTlVMTCkKLSAgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0 IG9wZW4gc29ja2V0Iik7Ci0gCi0gICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQu ICovCi1AQCAtMjY4LDE0ICszMDQsMjUgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5h bWUpCi0gICBzZXRzb2Nrb3B0IChsaXN0ZW5fZGVzYywgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERS LCAoY2hhciAqKSAmdG1wLAotIAkgICAgICBzaXplb2YgKHRtcCkpOwotIAotLSAgc29ja2FkZHIu c2luX2ZhbWlseSA9IFBGX0lORVQ7Ci0tICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0 KTsKLS0gIHNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0rICBzd2l0Y2gg KGl0ZXItPmFpX2ZhbWlseSkKLSsgICAgewotKyAgICBjYXNlIEFGX0lORVQ6Ci0rICAgICAgKChz dHJ1Y3Qgc29ja2FkZHJfaW4gKikgaXRlci0+YWlfYWRkciktPnNpbl9hZGRyLnNfYWRkciA9IElO QUREUl9BTlk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgQUZfSU5FVDY6Ci0rICAgICAgKChz dHJ1Y3Qgc29ja2FkZHJfaW42ICopIGl0ZXItPmFpX2FkZHIpLT5zaW42X2FkZHIgPSBpbjZhZGRy X2FueTsKLSsgICAgICBicmVhazsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLAotKwkJICAgICAgXygiSW52YWxpZCAnYWlfZmFtaWx5JyAl ZFxuIiksIGl0ZXItPmFpX2ZhbWlseSk7Ci0rICAgIH0KLSAKLS0gIGlmIChiaW5kIChsaXN0ZW5f ZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQot LSAgICAgIHx8IGxpc3RlbiAobGlzdGVuX2Rlc2MsIDEpKQotKyAgaWYgKGJpbmQgKGxpc3Rlbl9k ZXNjLCBpdGVyLT5haV9hZGRyLCBpdGVyLT5haV9hZGRybGVuKSAhPSAwKQotICAgICBwZXJyb3Jf d2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7Ci0gCi0rICBpZiAobGlzdGVuIChsaXN0 ZW5fZGVzYywgMSkgIT0gMCkKLSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGxpc3RlbiBv biBzb2NrZXQiKTsKLSsKLSAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDE7Ci0gfQotIAot QEAgLTM1MCwxOCArMzk3LDI0IEBAIHJlbW90ZV9vcGVuIChjb25zdCBjaGFyICpuYW1lKQotICNl bmRpZiAvKiBVU0VfV0lOMzJBUEkgKi8KLSAgIGVsc2UKLSAgICAgewotLSAgICAgIGludCBwb3J0 OwotLSAgICAgIHNvY2tsZW5fdCBsZW47Ci0tICAgICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2th ZGRyOwotLQotLSAgICAgIGxlbiA9IHNpemVvZiAoc29ja2FkZHIpOwotLSAgICAgIGlmIChnZXRz b2NrbmFtZSAobGlzdGVuX2Rlc2MsCi0tCQkgICAgICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29j a2FkZHIsICZsZW4pIDwgMAotLQkgIHx8IGxlbiA8IHNpemVvZiAoc29ja2FkZHIpKQotKyAgICAg IGNoYXIgbGlzdGVuX3BvcnRbR0RCX05JX01BWF9QT1JUXTsKLSsgICAgICBzdHJ1Y3Qgc29ja2Fk ZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgICAgICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChzb2Nr YWRkcik7Ci0rCi0rICAgICAgaWYgKGdldHNvY2tuYW1lIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBz b2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMCkKLSAJcGVycm9yX3dpdGhfbmFtZSAoIkNh bid0IGRldGVybWluZSBwb3J0Iik7Ci0tICAgICAgcG9ydCA9IG50b2hzIChzb2NrYWRkci5zaW5f cG9ydCk7Ci0gCi0tICAgICAgZnByaW50ZiAoc3RkZXJyLCAiTGlzdGVuaW5nIG9uIHBvcnQgJWRc biIsIHBvcnQpOwotKyAgICAgIGludCByID0gZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIg KikgJnNvY2thZGRyLCBsZW4sCi0rCQkJICAgTlVMTCwgMCwKLSsJCQkgICBsaXN0ZW5fcG9ydCwg c2l6ZW9mIChsaXN0ZW5fcG9ydCksCi0rCQkJICAgTklfTlVNRVJJQ1NFUlYpOwotKwotKyAgICAg IGlmIChyICE9IDApCi0rCWZwcmludGYgKHN0ZGVyciwgXygiQ2FuJ3Qgb2J0YWluIHBvcnQgd2hl cmUgd2UgYXJlIGxpc3RlbmluZzogJXMiKSwKLSsJCSBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAg ICBlbHNlCi0rCWZwcmludGYgKHN0ZGVyciwgXygiTGlzdGVuaW5nIG9uIHBvcnQgJXNcbiIpLCBs aXN0ZW5fcG9ydCk7Ci0rCi0gICAgICAgZmZsdXNoIChzdGRlcnIpOwotIAotICAgICAgIC8qIFJl Z2lzdGVyIHRoZSBldmVudCBsb29wIGhhbmRsZXIuICAqLwotZGlmZiAtLWdpdCBhL2dkYi9zZXIt dGNwLmMgYi9nZGIvc2VyLXRjcC5jCi0tLS0gYS9nZGIvc2VyLXRjcC5jCi0rKysgYi9nZGIvc2Vy LXRjcC5jCi1AQCAtMjUsNiArMjUsNyBAQAotICNpbmNsdWRlICJjbGkvY2xpLWRlY29kZS5oIgot ICNpbmNsdWRlICJjbGkvY2xpLXNldHNob3cuaCIKLSAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCi0r I2luY2x1ZGUgIm5ldHN0dWZmLmgiCi0gCi0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotIAotQEAg LTM5LDYgKzQwLDcgQEAKLSAKLSAjaWZkZWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNv Y2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSAjaWZuZGVmIEVUSU1FRE9VVAotICNkZWZp bmUgRVRJTUVET1VUIFdTQUVUSU1FRE9VVAotICNlbmRpZgotQEAgLTgxLDEyICs4MywxMyBAQCBz dGF0aWMgdW5zaWduZWQgaW50IHRjcF9yZXRyeV9saW1pdCA9IDE1OwotIAotICNkZWZpbmUgUE9M TF9JTlRFUlZBTCA1Ci0gCi0tLyogSGVscGVyIGZ1bmN0aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElm IFNDQiBpcyBub24tbnVsbCwgd2FpdCBvbiBpdHMKLS0gICBmaWxlIGRlc2NyaXB0b3IuICBPdGhl cndpc2UganVzdCB3YWl0IG9uIGEgdGltZW91dCwgdXBkYXRpbmcgKlBPTExTLgotLSAgIFJldHVy bnMgLTEgb24gdGltZW91dCBvciBpbnRlcnJ1cHQsIG90aGVyd2lzZSB0aGUgdmFsdWUgb2Ygc2Vs ZWN0LiAgKi8KLSsvKiBIZWxwZXIgZnVuY3Rpb24gdG8gd2FpdCBhIHdoaWxlLiAgSWYgU09DSyBp cyBub3QgLTEsIHdhaXQgb24gaXRzCi0rICAgZmlsZSBkZXNjcmlwdG9yLiAgT3RoZXJ3aXNlIGp1 c3Qgd2FpdCBvbiBhIHRpbWVvdXQsIHVwZGF0aW5nCi0rICAgKlBPTExTLiAgUmV0dXJucyAtMSBv biB0aW1lb3V0IG9yIGludGVycnVwdCwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBvZgotKyAgIHNlbGVj dC4gICovCi0gCi0gc3RhdGljIGludAotLXdhaXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwg KnNjYiwgdW5zaWduZWQgaW50ICpwb2xscykKLSt3YWl0X2Zvcl9jb25uZWN0IChpbnQgc29jaywg dW5zaWduZWQgaW50ICpwb2xscykKLSB7Ci0gICBzdHJ1Y3QgdGltZXZhbCB0OwotICAgaW50IG47 Ci1AQCAtMTIwLDI0ICsxMjMsMjQgQEAgd2FpdF9mb3JfY29ubmVjdCAoc3RydWN0IHNlcmlhbCAq c2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQotICAgICAgIHQudHZfdXNlYyA9IDA7Ci0gICAgIH0K LSAKLS0gIGlmIChzY2IpCi0rICBpZiAoc29jayA+PSAwKQotICAgICB7Ci0gICAgICAgZmRfc2V0 IHJzZXQsIHdzZXQsIGVzZXQ7Ci0gCi0gICAgICAgRkRfWkVSTyAoJnJzZXQpOwotLSAgICAgIEZE X1NFVCAoc2NiLT5mZCwgJnJzZXQpOwotKyAgICAgIEZEX1NFVCAoc29jaywgJnJzZXQpOwotICAg ICAgIHdzZXQgPSByc2V0OwotICAgICAgIGVzZXQgPSByc2V0OwotLQkgIAotKwotICAgICAgIC8q IFBPU0lYIHN5c3RlbXMgcmV0dXJuIGNvbm5lY3Rpb24gc3VjY2VzcyBvciBmYWlsdXJlIGJ5IHNp Z25hbGxpbmcKLSAJIHdzZXQuICBXaW5kb3dzIHN5c3RlbXMgcmV0dXJuIHN1Y2Nlc3MgaW4gd3Nl dCBhbmQgZmFpbHVyZSBpbgotIAkgZXNldC4KLS0gICAgIAotKwotIAkgV2UgbXVzdCBjYWxsIHNl bGVjdCBoZXJlLCByYXRoZXIgdGhhbiBnZGJfc2VsZWN0LCBiZWNhdXNlCi0gCSB0aGUgc2VyaWFs IHN0cnVjdHVyZSBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkIC0gdGhlCi0gCSBNaW5HVyBz ZWxlY3Qgd3JhcHBlciB3aWxsIG5vdCBrbm93IHRoYXQgdGhpcyBGRCByZWZlcnMKLSAJIHRvIGEg c29ja2V0LiAgKi8KLS0gICAgICBuID0gc2VsZWN0IChzY2ItPmZkICsgMSwgJnJzZXQsICZ3c2V0 LCAmZXNldCwgJnQpOwotKyAgICAgIG4gPSBzZWxlY3QgKHNvY2sgKyAxLCAmcnNldCwgJndzZXQs ICZlc2V0LCAmdCk7Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAgLyogVXNlIGdkYl9zZWxlY3QgaGVy ZSwgc2luY2Ugd2UgaGF2ZSBubyBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgb24KLUBAIC0xNTMsODAg KzE1NiwyOCBAQCB3YWl0X2Zvcl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVk IGludCAqcG9sbHMpCi0gICByZXR1cm4gbjsKLSB9Ci0gCi0tLyogT3BlbiBhIHRjcCBzb2NrZXQu ICAqLwotKy8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBob3N0IHJlcHJlc2VudGVkIGJ5IEFJTkZP LiAgSWYgdGhlIGNvbm5lY3Rpb24KLSsgICBzdWNjZWVkcywgcmV0dXJuIGl0cyBzb2NrZXQuICBP dGhlcndpc2UsIHJldHVybiAtMSBhbmQgc2V0IEVSUk5PCi0rICAgYWNjb3JkaW5nbHkuICBQT0xM UyBpcyB1c2VkIHdoZW4gJ2Nvbm5lY3QnIHJldHVybnMgRUlOUFJPR1JFU1MsIGFuZAotKyAgIHdl IG5lZWQgdG8gaW52b2tlICd3YWl0X2Zvcl9jb25uZWN0JyB0byBvYnRhaW4gdGhlIHN0YXR1cy4g ICovCi0gCi0taW50Ci0tbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAq bmFtZSkKLStzdGF0aWMgaW50Ci0rdHJ5X2Nvbm5lY3QgKGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAq YWluZm8sIHVuc2lnbmVkIGludCAqcG9sbHMpCi0gewotLSAgY2hhciBob3N0bmFtZVsxMDBdOwot LSAgY29uc3QgY2hhciAqcG9ydF9zdHI7Ci0tICBpbnQgbiwgcG9ydCwgdG1wOwotLSAgaW50IHVz ZV91ZHA7Ci0tICBzdHJ1Y3QgaG9zdGVudCAqaG9zdGVudDsKLS0gIHN0cnVjdCBzb2NrYWRkcl9p biBzb2NrYWRkcjsKLS0jaWZkZWYgVVNFX1dJTjMyQVBJCi0tICB1X2xvbmcgaW9hcmc7Ci0tI2Vs c2UKLS0gIGludCBpb2FyZzsKLS0jZW5kaWYKLS0gIHVuc2lnbmVkIGludCBwb2xscyA9IDA7Ci0t Ci0tICB1c2VfdWRwID0gMDsKLS0gIGlmIChzdGFydHN3aXRoIChuYW1lLCAidWRwOiIpKQotLSAg ICB7Ci0tICAgICAgdXNlX3VkcCA9IDE7Ci0tICAgICAgbmFtZSA9IG5hbWUgKyA0OwotLSAgICB9 Ci0tICBlbHNlIGlmIChzdGFydHN3aXRoIChuYW1lLCAidGNwOiIpKQotLSAgICBuYW1lID0gbmFt ZSArIDQ7Ci0tCi0tICBwb3J0X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsKLS0KLS0gIGlmICgh cG9ydF9zdHIpCi0tICAgIGVycm9yIChfKCJuZXRfb3BlbjogTm8gY29sb24gaW4gaG9zdCBuYW1l ISIpKTsgIC8qIFNob3VsZG4ndCBldmVyCi0tCQkJCQkJICAgICAgIGhhcHBlbi4gICovCi0tCi0t ICB0bXAgPSBzdGQ6Om1pbiAocG9ydF9zdHIgLSBuYW1lLCAocHRyZGlmZl90KSBzaXplb2YgaG9z dG5hbWUgLSAxKTsKLS0gIHN0cm5jcHkgKGhvc3RuYW1lLCBuYW1lLCB0bXApOwkvKiBEb24ndCB3 YW50IGNvbG9uLiAgKi8KLS0gIGhvc3RuYW1lW3RtcF0gPSAnXDAwMCc7CS8qIFRpZSBvZmYgaG9z dCBuYW1lLiAgKi8KLS0gIHBvcnQgPSBhdG9pIChwb3J0X3N0ciArIDEpOwotLQotLSAgLyogRGVm YXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLwotLSAgaWYgKCFob3N0bmFtZVswXSkKLS0g ICAgc3RyY3B5IChob3N0bmFtZSwgImxvY2FsaG9zdCIpOwotLQotLSAgaG9zdGVudCA9IGdldGhv c3RieW5hbWUgKGhvc3RuYW1lKTsKLS0gIGlmICghaG9zdGVudCkKLS0gICAgewotLSAgICAgIGZw cmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIiVzOiB1bmtub3duIGhvc3RcbiIsIGhvc3Ru YW1lKTsKLS0gICAgICBlcnJubyA9IEVOT0VOVDsKLS0gICAgICByZXR1cm4gLTE7Ci0tICAgIH0K LSsgIGludCBzb2NrID0gZ2RiX3NvY2tldF9jbG9leGVjIChhaW5mby0+YWlfZmFtaWx5LCBhaW5m by0+YWlfc29ja3R5cGUsCi0rCQkJCSBhaW5mby0+YWlfcHJvdG9jb2wpOwotIAotLSAgc29ja2Fk ZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7Ci0tICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChw b3J0KTsKLS0gIG1lbWNweSAoJnNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciwgaG9zdGVudC0+aF9h ZGRyLAotLQkgIHNpemVvZiAoc3RydWN0IGluX2FkZHIpKTsKLS0KLS0gcmV0cnk6Ci0tCi0tICBp ZiAodXNlX3VkcCkKLS0gICAgc2NiLT5mZCA9IGdkYl9zb2NrZXRfY2xvZXhlYyAoUEZfSU5FVCwg U09DS19ER1JBTSwgMCk7Ci0tICBlbHNlCi0tICAgIHNjYi0+ZmQgPSBnZGJfc29ja2V0X2Nsb2V4 ZWMgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKLS0KLS0gIGlmIChzY2ItPmZkID09IC0xKQot KyAgaWYgKHNvY2sgPCAwKQotICAgICByZXR1cm4gLTE7Ci0tICAKLSsKLSAgIC8qIFNldCBzb2Nr ZXQgbm9uYmxvY2tpbmcuICAqLwotLSAgaW9hcmcgPSAxOwotLSAgaW9jdGwgKHNjYi0+ZmQsIEZJ T05CSU8sICZpb2FyZyk7Ci0rICBpbnQgaW9hcmcgPSAxOwotKwotKyAgaW9jdGwgKHNvY2ssIEZJ T05CSU8sICZpb2FyZyk7Ci0gCi0gICAvKiBVc2UgTm9uLWJsb2NraW5nIGNvbm5lY3QuICBjb25u ZWN0KCkgd2lsbCByZXR1cm4gMCBpZiBjb25uZWN0ZWQKLSAgICAgIGFscmVhZHkuICAqLwotLSAg biA9IGNvbm5lY3QgKHNjYi0+ZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzaXpl b2YgKHNvY2thZGRyKSk7Ci0tCi0tICBpZiAobiA8IDApCi0rICBpZiAoY29ubmVjdCAoc29jaywg YWluZm8tPmFpX2FkZHIsIGFpbmZvLT5haV9hZGRybGVuKSA8IDApCi0gICAgIHsKLSAjaWZkZWYg VVNFX1dJTjMyQVBJCi0gICAgICAgaW50IGVyciA9IFdTQUdldExhc3RFcnJvcigpOwotQEAgLTIz NCwyMSArMTg1LDI2IEBAIG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIg Km5hbWUpCi0gICAgICAgaW50IGVyciA9IGVycm5vOwotICNlbmRpZgotIAotLSAgICAgIC8qIE1h eWJlIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSByZW1vdGUgdGFyZ2V0IHRvIGJlY29tZSByZWFkeSB0 bwotLQkgYWNjZXB0IGNvbm5lY3Rpb25zLiAgKi8KLS0gICAgICBpZiAodGNwX2F1dG9fcmV0cnkK LSsgICAgICAvKiBJZiB3ZSd2ZSBnb3QgYSAiY29ubmVjdGlvbiByZWZ1c2VkIiBlcnJvciwganVz dCByZXR1cm4KLSsJIC0xLiAgVGhlIGNhbGxlciB3aWxsIGtub3cgd2hhdCB0byBkby4gICovCi0r ICAgICAgaWYgKAotICNpZmRlZiBVU0VfV0lOMzJBUEkKLS0JICAmJiBlcnIgPT0gV1NBRUNPTk5S RUZVU0VECi0rCSAgZXJyID09IFdTQUVDT05OUkVGVVNFRAotICNlbHNlCi0tCSAgJiYgZXJyID09 IEVDT05OUkVGVVNFRAotKwkgIGVyciA9PSBFQ09OTlJFRlVTRUQKLSAjZW5kaWYKLS0JICAmJiB3 YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49IDApCi0rCSAgKQotIAl7Ci0tCSAgY2xv c2UgKHNjYi0+ZmQpOwotLQkgIGdvdG8gcmV0cnk7Ci0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVy cm5vID0gZXJyOwotKwkgIHJldHVybiAtMTsKLSAJfQotIAotICAgICAgIGlmICgKLSsJICAvKiBB bnkgb3RoZXIgZXJyb3IgKGV4Y2VwdCBFSU5QUk9HUkVTUykgd2lsbCBiZSAic3dhbGxvd2VkIgot KwkgICAgIGhlcmUuICBXZSByZXR1cm4gd2l0aG91dCBzcGVjaWZ5aW5nIGEgcmV0dXJuIHZhbHVl LCBhbmQKLSsJICAgICBzZXQgZXJybm8gaWYgdGhlIGNhbGxlciB3YW50cyB0byBpbnNwZWN0IHdo YXQKLSsJICAgICBoYXBwZW5lZC4gICovCi0gI2lmZGVmIFVTRV9XSU4zMkFQSQotIAkgIC8qIFVu ZGVyIFdpbmRvd3MsIGNhbGxpbmcgImNvbm5lY3QiIHdpdGggYSBub24tYmxvY2tpbmcgc29ja2V0 Ci0gCSAgICAgcmVzdWx0cyBpbiBXU0FFV09VTERCTE9DSywgbm90IFdTQUVJTlBST0dSRVNTLiAg Ki8KLUBAIC0yNTgsNjYgKzIxNCwxNjYgQEAgbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwg Y29uc3QgY2hhciAqbmFtZSkKLSAjZW5kaWYKLSAJICApCi0gCXsKLSsJICBjbG9zZSAoc29jayk7 Ci0gCSAgZXJybm8gPSBlcnI7Ci0tCSAgbmV0X2Nsb3NlIChzY2IpOwotIAkgIHJldHVybiAtMTsK LSAJfQotIAotICAgICAgIC8qIExvb2tzIGxpa2Ugd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgY29u bmVjdC4gICovCi0tICAgICAgZG8gCi0tCXsKLS0JICBuID0gd2FpdF9mb3JfY29ubmVjdCAoc2Ni LCAmcG9sbHMpOwotLQl9IAotKyAgICAgIGludCBuOwotKwotKyAgICAgIGRvCi0rCW4gPSB3YWl0 X2Zvcl9jb25uZWN0IChzb2NrLCBwb2xscyk7Ci0gICAgICAgd2hpbGUgKG4gPT0gMCk7Ci0rCi0g ICAgICAgaWYgKG4gPCAwKQotIAl7Ci0tCSAgbmV0X2Nsb3NlIChzY2IpOwotKwkgIGludCBzYXZl ZF9lcnJubyA9IGVycm5vOwotKwotKwkgIC8qIEEgbmVnYXRpdmUgdmFsdWUgaGVyZSBtZWFucyB0 aGF0IHdlIGVpdGhlciB0aW1lZCBvdXQgb3IKLSsJICAgICBnb3QgaW50ZXJydXB0ZWQgYnkgdGhl IHVzZXIuICBKdXN0IHJldHVybi4gICovCi0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0g c2F2ZWRfZXJybm87Ci0gCSAgcmV0dXJuIC0xOwotIAl9Ci0gICAgIH0KLSAKLSAgIC8qIEdvdCBz b21ldGhpbmcuICBJcyBpdCBhbiBlcnJvcj8gICovCi0tICB7Ci0tICAgIGludCByZXMsIGVycjsK LS0gICAgc29ja2xlbl90IGxlbjsKLS0KLS0gICAgbGVuID0gc2l6ZW9mIChlcnIpOwotLSAgICAv KiBPbiBXaW5kb3dzLCB0aGUgZm91cnRoIHBhcmFtZXRlciB0byBnZXRzb2Nrb3B0IGlzIGEgImNo YXIgKiI7Ci0tICAgICAgIG9uIFVOSVggc3lzdGVtcyBpdCBpcyBnZW5lcmFsbHkgInZvaWQgKiIu ICBUaGUgY2FzdCB0byAiY2hhciAqIgotLSAgICAgICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBp biBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBiZQotLSAgICAgICBpbXBsaWNpdGx5IGNv bnZlcnRlZCB0byAidm9pZCAqIi4gICovCi0tICAgIHJlcyA9IGdldHNvY2tvcHQgKHNjYi0+ZmQs IFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsKLS0gICAgaWYgKHJl cyA8IDAgfHwgZXJyKQotLSAgICAgIHsKLS0JLyogTWF5YmUgdGhlIHRhcmdldCBzdGlsbCBpc24n dCByZWFkeSB0byBhY2NlcHQgdGhlIGNvbm5lY3Rpb24uICAqLwotLQlpZiAodGNwX2F1dG9fcmV0 cnkKLSsgIGludCBlcnI7Ci0rICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChlcnIpOwotKwotKyAg LyogT24gV2luZG93cywgdGhlIGZvdXJ0aCBwYXJhbWV0ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJj aGFyICoiOwotKyAgICAgb24gVU5JWCBzeXN0ZW1zIGl0IGlzIGdlbmVyYWxseSAidm9pZCAqIi4g IFRoZSBjYXN0IHRvICJjaGFyICoiCi0rICAgICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBD KysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBiZQotKyAgICAgaW1wbGljaXRseSBjb252ZXJ0 ZWQgdG8gInZvaWQgKiIuICAqLwotKyAgaW50IHJldCA9IGdldHNvY2tvcHQgKHNvY2ssIFNPTF9T T0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsKLSsKLSsgIGlmIChyZXQgPCAw KQotKyAgICB7Ci0rICAgICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87Ci0rCi0rICAgICAgY2xv c2UgKHNvY2spOwotKyAgICAgIGVycm5vID0gc2F2ZWRfZXJybm87Ci0rICAgICAgcmV0dXJuIC0x OwotKyAgICB9Ci0rICBlbHNlIGlmIChyZXQgPT0gMCAmJiBlcnIgIT0gMCkKLSsgICAgewotKyAg ICAgIGNsb3NlIChzb2NrKTsKLSsgICAgICBlcnJubyA9IGVycjsKLSsgICAgICByZXR1cm4gLTE7 Ci0rICAgIH0KLSsKLSsgIC8qIFRoZSBjb25uZWN0aW9uIHN1Y2NlZWRlZC4gIFJldHVybiB0aGUg c29ja2V0LiAgKi8KLSsgIHJldHVybiBzb2NrOwotK30KLSsKLSsvKiBPcGVuIGEgdGNwIHNvY2tl dC4gICovCi0rCi0raW50Ci0rbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hh ciAqbmFtZSkKLSt7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5m byAqYWluZm87Ci0rCi0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8q IEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNl Ci0rICAgICBBRl9VTlNQRUMuICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0r ICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0g SVBQUk9UT19UQ1A7Ci0rCi0rICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNl X2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0 ci5lbXB0eSAoKSkKLSsgICAgZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMn IiksIG5hbWUpOwotKwotKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNf c3RyICgpLAotKwkJICAgICAgIHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwKLSsJCSAgICAgICAm aGludCwgJmFpbmZvKTsKLSsKLSsgIGlmIChyICE9IDApCi0rICAgIHsKLSsgICAgICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsIF8oIiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xu IiksCi0rCQkJICBuYW1lLCBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBlcnJubyA9IEVOT0VO VDsKLSsgICAgICByZXR1cm4gLTE7Ci0rICAgIH0KLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZv IGZyZWVfYWluZm8gKGFpbmZvKTsKLSsKLSsgIC8qIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB3 ZSd2ZSBnb3QgYSBjb25uZWN0aW9uIHJlZnVzZWQuICBJdCB3aWxsCi0rICAgICBiZSB0cnVlIGlm IGFueSBvZiB0aGUgY29ubmVjdGlvbnMgdHJpZWQgd2FzIHJlZnVzZWQuICAqLwotKyAgYm9vbCBn b3RfY29ubnJlZnVzZWQ7Ci0rICAvKiBJZiBhIGNvbm5lY3Rpb24gc3VjY2VlZWRzLCBTVUNDRVNT X0FJTkZPIHdpbGwgcG9pbnQgdG8gdGhlCi0rICAgICAnc3RydWN0IGFkZHJpbmZvJyB0aGF0IHN1 Y2NlZWQuICAqLwotKyAgc3RydWN0IGFkZHJpbmZvICpzdWNjZXNzX2FpbmZvID0gTlVMTDsKLSsg IHVuc2lnbmVkIGludCBwb2xscyA9IDA7Ci0rCi0rICAvKiBBc3N1bWUgdGhlIHdvcnN0LiAgKi8K LSsgIHNjYi0+ZmQgPSAtMTsKLSsKLSsgIGRvCi0rICAgIHsKLSsgICAgICBnb3RfY29ubnJlZnVz ZWQgPSBmYWxzZTsKLSsKLSsgICAgICBmb3IgKHN0cnVjdCBhZGRyaW5mbyAqaXRlciA9IGFpbmZv OyBpdGVyICE9IE5VTEw7IGl0ZXIgPSBpdGVyLT5haV9uZXh0KQotKwl7Ci0rCSAgLyogSXRlcmF0 ZSBvdmVyIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcyB0byBjb25uZWN0Ci0rCSAgICAg dG8uICBGb3IgZWFjaCwgd2UnbGwgdHJ5IHRvIGNvbm5lY3QgYW5kIHNlZSBpZiBpdAotKwkgICAg IHN1Y2NlZWRzLiAgKi8KLSsJICBpbnQgc29jayA9IHRyeV9jb25uZWN0IChpdGVyLCAmcG9sbHMp OwotKwotKwkgIGlmIChzb2NrID49IDApCi0rCSAgICB7Ci0rCSAgICAgIC8qIFdlJ3ZlIGdvdHRl biBhIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbi4gIFNhdmUgaXRzCi0rCQkgJ3N0cnVjdCBhZGRyaW5m bycsIHRoZSBzb2NrZXQsIGFuZCBicmVhay4gICovCi0rCSAgICAgIHN1Y2Nlc3NfYWluZm8gPSBp dGVyOwotKwkgICAgICBzY2ItPmZkID0gc29jazsKLSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0r CSAgZWxzZSBpZiAoCi0gI2lmZGVmIFVTRV9XSU4zMkFQSQotLQkgICAgJiYgZXJyID09IFdTQUVD T05OUkVGVVNFRAotKwkgIGVycm5vID09IFdTQUVDT05OUkVGVVNFRAotICNlbHNlCi0tCSAgICAm JiBlcnIgPT0gRUNPTk5SRUZVU0VECi0rCSAgZXJybm8gPT0gRUNPTk5SRUZVU0VECi0gI2VuZGlm Ci0tCSAgICAmJiB3YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49IDApCi0tCSAgewot LQkgICAgY2xvc2UgKHNjYi0+ZmQpOwotLQkgICAgZ290byByZXRyeTsKLS0JICB9Ci0tCWlmIChl cnIpCi0tCSAgZXJybm8gPSBlcnI7Ci0tCW5ldF9jbG9zZSAoc2NiKTsKLS0JcmV0dXJuIC0xOwot LSAgICAgIH0KLS0gIH0gCi0rCQkgICApCi0rCSAgICBnb3RfY29ubnJlZnVzZWQgPSB0cnVlOwot Kwl9Ci0rICAgIH0KLSsgIC8qIEp1c3QgcmV0cnkgaWY6Ci0rCi0rICAgICAtIHRjcF9hdXRvX3Jl dHJ5IGlzIHRydWUsIGFuZAotKyAgICAgLSBXZSBoYXZlbid0IGdvdHRlbiBhIGNvbm5lY3Rpb24g eWV0LCBhbmQKLSsgICAgIC0gQW55IG9mIG91ciBjb25uZWN0aW9uIGF0dGVtcHRzIHJldHVybmVk IHdpdGggRUNPTk5SRUZVU0VELCBhbmQKLSsgICAgIC0gd2FpdF9mb3JfY29ubmVjdCBzaWduYWxz IHRoYXQgd2UgY2FuIGtlZXAgZ29pbmcuICAqLwotKyAgd2hpbGUgKHRjcF9hdXRvX3JldHJ5Ci0r CSAmJiBzdWNjZXNzX2FpbmZvID09IE5VTEwKLSsJICYmIGdvdF9jb25ucmVmdXNlZAotKwkgJiYg d2FpdF9mb3JfY29ubmVjdCAoLTEsICZwb2xscykgPj0gMCk7Ci0rCi0rICBpZiAoc3VjY2Vzc19h aW5mbyA9PSBOVUxMKQotKyAgICB7Ci0rICAgICAgbmV0X2Nsb3NlIChzY2IpOwotKyAgICAgIHJl dHVybiAtMTsKLSsgICAgfQotIAotICAgLyogVHVybiBvZmYgbm9uYmxvY2tpbmcuICAqLwotLSAg aW9hcmcgPSAwOwotKyNpZmRlZiBVU0VfV0lOMzJBUEkKLSsgIHVfbG9uZyBpb2FyZyA9IDA7Ci0r I2Vsc2UKLSsgIGludCBpb2FyZyA9IDA7Ci0rI2VuZGlmCi0rCi0gICBpb2N0bCAoc2NiLT5mZCwg RklPTkJJTywgJmlvYXJnKTsKLSAKLS0gIGlmICh1c2VfdWRwID09IDApCi0rICBpZiAoc3VjY2Vz c19haW5mby0+YWlfc29ja3R5cGUgPT0gSVBQUk9UT19UQ1ApCi0gICAgIHsKLSAgICAgICAvKiBE aXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2VzLiAgKi8KLS0gICAg ICB0bXAgPSAxOwotKyAgICAgIGludCB0bXAgPSAxOwotKwotICAgICAgIHNldHNvY2tvcHQgKHNj Yi0+ZmQsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwKLS0JCSAgKGNoYXIgKikmdG1wLCBzaXpl b2YgKHRtcCkpOwotKwkJICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOwotICAgICB9Ci0g Ci0gI2lmZGVmIFNJR1BJUEUKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBi L2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0tLS0gYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwot KysrIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLUBAIC0xLDMgKzEsMjMgQEAKLSsyMDE4LTA3 LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotKwkgICAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwkgICAgUGF1bCBG ZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KLSsJICAgIFRzdXRvbXUgU2VraSAgPHNla2ly aWtpQGdtYWlsLmNvbT4KLSsKLSsJKiBSRUFETUUgKFRlc3RzdWl0ZSBQYXJhbWV0ZXJzKTogTWVu dGlvbiBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1QnCi0rCXBhcmFtZXRlci4KLSsJKiBib2FyZHMv bmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHA6IERvIG5vdCBzZXQgJ3NvY2tldGhvc3QnCi0r CWJ5IGRlZmF1bHQuCi0rCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4K LSsJKiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHA6IEltcHJvdmUgcmVn ZXhwIHVzZWQKLSsJZm9yIGRldGVjdGluZyB3aGVuIGEgcmVtb3RlIGRlYnVnZ2luZyBjb25uZWN0 aW9uIHN1Y2NlZWRzLgotKwkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmls ZS4KLSsJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRf Y29tbV9wb3J0KToKLSsJRG8gbm90IHByZWZpeCB0aGUgcG9ydCBudW1iZXIgd2l0aCAiOiIuCi0r CShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBs ZW1lbnQKLSsJc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIGFuZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVn aG9zdF9nZGJzZXJ2ZXInCi0rCXRvIHRoZSBsaXN0IG9mIGFyZ3VtZW50cyB1c2VkIHRvIHN0YXJ0 IGdkYnNlcnZlci4gIEhhbmRsZSBjYXNlCi0rCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZl IGEgbmV0d29yayBuYW1lLgotKwotIDIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAg PHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0gCi0gCVBSIGMrKy8yMzM3MwotZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvUkVBRE1FIGIvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUKLS0tLSBhL2dkYi90ZXN0 c3VpdGUvUkVBRE1FCi0rKysgYi9nZGIvdGVzdHN1aXRlL1JFQURNRQotQEAgLTI1OSw2ICsyNTks MjAgQEAgVGhpcyBtYWtlIChub3QgcnVudGVzdCkgdmFyaWFibGUgaXMgdXNlZCB0byBzcGVjaWZ5 IHdoZXRoZXIgdGhlCi0gdGVzdHN1aXRlIHByZWxvYWRzIHRoZSByZWFkMS5zbyBsaWJyYXJ5IGlu dG8gZXhwZWN0LiAgQW55IG5vbi1lbXB0eQotIHZhbHVlIG1lYW5zIHRydWUuICBTZWUgIlJhY2Ug ZGV0ZWN0aW9uIiBiZWxvdy4KLSAKLStHREJfVEVTVF9TT0NLRVRIT1NUCi0rCi0rVGhpcyB2YXJp YWJsZSBjYW4gcHJvdmlkZSB0aGUgaG9zdG5hbWUvYWRkcmVzcyB0aGF0IHNob3VsZCBiZSB1c2Vk Ci0rd2hlbiBwZXJmb3JtaW5nIEdEQnNlcnZlci1yZWxhdGVkIHRlc3RzLiAgVGhpcyBpcyB1c2Vm dWwgaW4gc29tZQotK3NpdHVhdGlvbnMsIGUuZy4sIHdoZW4geW91IHdhbnQgdG8gdGVzdCB0aGUg SVB2NiBjb25uZWN0aXZpdHkgb2YgR0RCCi0rYW5kIEdEQnNlcnZlciwgb3Igd2hlbiB1c2luZyBh IGRpZmZlcmVudCBob3N0bmFtZS9hZGRyZXNzIGlzIG5lZWRlZC4KLStGb3IgZXhhbXBsZSwgdG8g bWFrZSBHREIgYW5kIEdEQnNlcnZlciB1c2UgSVB2Ni1vbmx5IGNvbm5lY3Rpb25zLCB5b3UKLStj YW4gZG86Ci0rCi0rCW1ha2UgY2hlY2sgVEVTVFM9ImdkYi5zZXJ2ZXIvKi5leHAiIFJVTlRFU1RG TEFHUz0nR0RCX1RFU1RfU09DS0VUSE9TVD10Y3A2Ols6OjFdJwotKwotK05vdGUgdGhhdCBvbmx5 IGEgaG9zdG5hbWUvYWRkcmVzcyBjYW4gYmUgcHJvdmlkZWQsIHdpdGhvdXQgYSBwb3J0Ci0rbnVt YmVyLgotKwotIFJhY2UgZGV0ZWN0aW9uCi0gKioqKioqKioqKioqKioKLSAKLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cCBiL2dk Yi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9n ZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cAotKysrIGIv Z2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAKLUBAIC0y NCw4ICsyNCw2IEBAIGxvYWRfZ2VuZXJpY19jb25maWcgImV4dGVuZGVkLWdkYnNlcnZlciIKLSBs b2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJnZGJzZXJ2ZXItYmFzZSIKLSBsb2FkX2JvYXJkX2Rlc2Ny aXB0aW9uICJsb2NhbC1ib2FyZCIKLSAKLS1zZXRfYm9hcmRfaW5mbyBzb2NrZXRob3N0ICJsb2Nh bGhvc3Q6IgotLQotICMgV2Ugd2lsbCBiZSB1c2luZyB0aGUgZXh0ZW5kZWQgR0RCIHJlbW90ZSBw cm90b2NvbC4KLSBzZXRfYm9hcmRfaW5mbyBnZGJfcHJvdG9jb2wgImV4dGVuZGVkLXJlbW90ZSIK LSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4 cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIv dGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAKLUBAIC0zMCw3ICszMCw2IEBAIHNldF9ib2Fy ZF9pbmZvIGdkYixkb19yZWxvYWRfb25fcnVuIDEKLSAjIFRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3Ig YXJndW1lbnQtcGFzc2luZyAoeWV0KS4KLSBzZXRfYm9hcmRfaW5mbyBub2FyZ3MgMQotIAotLXNl dF9ib2FyZF9pbmZvIHNvY2tldGhvc3QgImxvY2FsaG9zdDoiCi0gc2V0X2JvYXJkX2luZm8gdXNl X2dkYl9zdHViIDEKLSBzZXRfYm9hcmRfaW5mbyBleGl0X2lzX3JlbGlhYmxlIDEKLSAKLWRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5 LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnku ZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmlu YXJ5LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2Fs LWJpbmFyeS5leHAKLUBAIC01Myw3ICs1Myw3IEBAIHNhdmVfdmFycyB7IEdEQkZMQUdTIH0gewot ICAgICBzZXQgdXNlX2dkYl9zdHViIDAKLSAKLSAgICAgZ2RiX3Rlc3QgInRhcmdldCAke2dkYnNl cnZlcl9wcm90b2NvbH0gJHtnZGJzZXJ2ZXJfZ2RicG9ydH0iIFwKLS0JIlJlbW90ZSBkZWJ1Z2dp bmcgdXNpbmcgJGdkYnNlcnZlcl9nZGJwb3J0IiBcCi0rCSJSZW1vdGUgZGVidWdnaW5nIHVzaW5n IFtzdHJpbmdfdG9fcmVnZXhwICRnZGJzZXJ2ZXJfZ2RicG9ydF0iIFwKLSAJImNvbm5lY3QgdG8g Z2Ric2VydmVyIgotIAotICAgICBnZGJfdGVzdCAicnVuIiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rl di9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhw Ci1AQCAtMCwwICsxLDExMSBAQAotKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhl IEdOVSBkZWJ1Z2dlci4KLSsjCi0rIyBDb3B5cmlnaHQgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVz dCBtdWx0aXBsZSB0eXBlcyBvZiBjb25uZWN0aW9uIChJUHY0LCBJUHY2LCBUQ1AsIFVEUCkgYW5k IG1ha2UKLSsjIHN1cmUgYm90aCBnZGJzZXJ2ZXIgYW5kIEdEQiB3b3JrLgotKwotK2xvYWRfbGli IGdkYnNlcnZlci1zdXBwb3J0LmV4cAotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIG5vcm1hbC5jCi0r Ci0raWYge1tza2lwX2dkYnNlcnZlcl90ZXN0c119IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0r IyBXZSB3YW50IHRvIGhhdmUgY29udHJvbCBvdmVyIHdoZXJlIHdlIHN0YXJ0IGdkYnNlcnZlci4K LStpZiB7IFtpc19yZW1vdGUgdGFyZ2V0XSB9IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0raWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3Jj ZmlsZSBkZWJ1Z10gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjIE1ha2Ugc3VyZSB3ZSdy ZSBkaXNjb25uZWN0ZWQsIGluIGNhc2Ugd2UncmUgdGVzdGluZyB3aXRoIGFuCi0rIyBleHRlbmRl ZC1yZW1vdGUgYm9hcmQsIHRoZXJlZm9yZSBhbHJlYWR5IGNvbm5lY3RlZC4KLStnZGJfdGVzdCAi ZGlzY29ubmVjdCIgIi4qIgotKwotK3NldCB0YXJnZXRfZXhlYyBbZ2Ric2VydmVyX2Rvd25sb2Fk X2N1cnJlbnRfcHJvZ10KLSsKLSsjIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHRlc3QgaW5zdHJ1 Y3Rpb25zIGZvciBlYWNoIHNjZW5hcmlvLiAgVGhlCi0rIyBkZXNjcmlwdGlvbiBvZiBlYWNoIGZp ZWxkIGlzIGFzIGZvbGxvd3M6Ci0rIwotKyMgLSBUaGUgY29ubmVjdGlvbiBzcGVjaWZpY2F0aW9u IHRvIGJlIHVzZWQgd2hlbiBzdGFydGluZwotKyMgICBnZGJzZXJ2ZXIvR0RCLiAgVGhpcyBzdHJp bmcgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGUKLSsjICAgR0RCX1RFU1RfU09DS0VUSE9TVCB3aGVu IGNhbGxpbmcgZ2Ric2VydmVyX3N0YXJ0LgotKyMKLSsjIC0gQSBmbGFnIGluZGljYXRpbmcgd2hl dGhlciBnZGJzZXJ2ZXIgc2hvdWxkIGZhaWwgd2hlbiB3ZSBhdHRlbXB0IHRvCi0rIyAgIHN0YXJ0 IGl0LiAgVXNlZnVsIHdoZW4gdGVzdGluZyBlcnJvbmVvdXMgY29ubmVjdGlvbiBzcGVjcyBzdWNo IGFzCi0rIyAgICJ0Y3A4OiIuCi0rIwotKyMgLSBUaGUgcHJlZml4IHRoYXQgc2hvdWxkIGJlIHBy ZXBlbmRlZCB0byB0aGUgdGVzdCBtZXNzYWdlcy4KLStzZXQgdGVzdF9wYXJhbXMgXAotKyAgICB7 IFwKLSsJICB7ICJ0Y3A0OjEyNy4wLjAuMSIgMCAidGNwNCIgfSBcCi0rCSAgeyAidGNwNjo6OjEi ICAgICAgIDAgInRjcDYiIH0gXAotKwkgIHsgInRjcDY6Wzo6MV0iICAgICAwICJ0Y3A2LXdpdGgt YnJhY2tldHMiIH0gXAotKwkgIHsgInRjcDpsb2NhbGhvc3QiICAwICJ0Y3AiIH0gXAotKwkgIHsg InVkcDQ6MTI3LjAuMC4xIiAwICJ1ZHA0IiB9IFwKLSsJICB7ICJ1ZHA2Ojo6MSIgICAgICAgMCAi dWRwNiIgfSBcCi0rCSAgeyAidWRwNjpbOjoxXSIgICAgIDAgInVkcDYtd2l0aC1icmFja2V0cyIg fSBcCi0rCSAgeyAidGNwODoxMjMiICAgICAgIDEgInRjcDgiIH0gXAotKwkgIHsgInVkcDEyMzo6 OiIgICAgICAxICJ1ZHAxMjMiIH0gXAotKwkgIHsgImdhcmJhZ2U6MTIzNCIgICAxICJnYXJiYWdl OjEyMzQiIH0gXAotKyAgICB9Ci0rCi0rIyBUaGUgYmVzdCB3YXkgdG8gdGVzdCBkaWZmZXJlbnQg dHlwZXMgb2YgY29ubmVjdGlvbnMgaXMgdG8gc2V0IHRoZQotKyMgR0RCX1RFU1RfU09DS0VUSE9T VCB2YXJpYWJsZSBhY2NvcmRpbmdseS4KLStzYXZlX3ZhcnMgeyBHREJfVEVTVF9TT0NLRVRIT1NU IH0gewotKyAgICBmb3JlYWNoIGxpbmUgJHRlc3RfcGFyYW1zIHsKLSsJc2V0IHNvY2tob3N0IFts aW5kZXggJGxpbmUgMF0KLSsJc2V0IGdkYnNlcnZlcl9zaG91bGRfZmFpbCBbbGluZGV4ICRsaW5l IDFdCi0rCXNldCBwcmVmaXggW2xpbmRleCAkbGluZSAyXQotKwotKwl3aXRoX3Rlc3RfcHJlZml4 ICRwcmVmaXggewotKwkgICAgc2V0IEdEQl9URVNUX1NPQ0tFVEhPU1QgJHNvY2tob3N0Ci0rCSAg ICBzZXQgdGVzdCAic3RhcnQgZ2Ric2VydmVyIgotKwotKwkgICAgIyBUcnkgdG8gc3RhcnQgZ2Ri c2VydmVyLgotKwkgICAgc2V0IGNhdGNocmVzIFtjYXRjaCB7c2V0IHJlcyBbZ2Ric2VydmVyX3N0 YXJ0ICIiICR0YXJnZXRfZXhlY119IGVycm1zZ10KLSsKLSsJICAgIGlmIHsgJGNhdGNocmVzICE9 IDAgfSB7Ci0rCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7Ci0rCQkgICAgcGFzcyAi JHRlc3Q6IGdkYnNlcnZlciBmYWlsZWQgYXMgZXhwZWN0ZWQiCi0rCQl9IGVsc2UgewotKwkJICAg IGZhaWwgIiR0ZXN0OiAkZXJybXNnIgotKwkJfQotKwkJY29udGludWUKLSsJICAgIH0gZWxzZSB7 Ci0rCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7Ci0rCQkgICAgZmFpbCAiJHRlc3Q6 IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlkIG5vdCIKLSsJCX0gZWxzZSB7Ci0rCQkgICAg cGFzcyAiJHRlc3QiCi0rCQl9Ci0rCSAgICB9Ci0rCi0rCSAgICBzZXQgZ2Ric2VydmVyX3Byb3Rv Y29sIFtsaW5kZXggJHJlcyAwXQotKwkgICAgc2V0IGdkYnNlcnZlcl9nZGJwb3J0IFtsaW5kZXgg JHJlcyAxXQotKwkgICAgc2V0IHRlc3QgImNvbm5lY3QgdG8gZ2Ric2VydmVyIHVzaW5nICRzb2Nr aG9zdCIKLSsKLSsJICAgIGlmIHsgW2dkYl90YXJnZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wg JGdkYnNlcnZlcl9nZGJwb3J0XSA9PSAwIH0gewotKwkJcGFzcyAkdGVzdAotKwkgICAgfSBlbHNl IHsKLSsJCWZhaWwgJHRlc3QKLSsJICAgIH0KLSsJfQotKyAgICB9Ci0rfQotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUv bGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2Vy dmVyLXN1cHBvcnQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9y dC5leHAKLUBAIC0yMTEsNyArMjExLDcgQEAgcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfcmVt b3RlX2FkZHJlc3MgeyBob3N0IHBvcnQgfSB7Ci0gIyBEZWZhdWx0IHJvdXRpbmUgdG8gY29tcHV0 ZSB0aGUgImNvbW0iIGFyZ3VtZW50IGZvciBnZGJzZXJ2ZXIuCi0gCi0gcHJvYyBnZGJzZXJ2ZXJf ZGVmYXVsdF9nZXRfY29tbV9wb3J0IHsgcG9ydCB9IHsKLS0gICAgcmV0dXJuICI6JHBvcnQiCi0r ICAgIHJldHVybiAiJHBvcnQiCi0gfQotIAotICMgU3RhcnQgYSBnZGJzZXJ2ZXIgcHJvY2VzcyB3 aXRoIGluaXRpYWwgT1BUSU9OUyBhbmQgdHJhaWxpbmcgQVJHVU1FTlRTLgotQEAgLTIyMSw2ICsy MjEsNyBAQCBwcm9jIGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQgeyBwb3J0IH0gewot IAotIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0gICAgIGds b2JhbCBwb3J0bnVtCi0rICAgIGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NUCi0gCi0gICAgICMg UG9ydCBpZCAtLSBlaXRoZXIgc3BlY2lmaWVkIGluIGJhc2Vib2FyZCBmaWxlLCBvciBtYW5hZ2Vk IGhlcmUuCi0gICAgIGlmIFt0YXJnZXRfaW5mbyBleGlzdHMgZ2RiLHNvY2tldHBvcnRdIHsKLUBA IC0yMzEsMTAgKzIzMiwyMiBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1l bnRzIH0gewotICAgICB9Ci0gCi0gICAgICMgRXh0cmFjdCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBo b3N0IGlkcyBmcm9tIHRoZSB0YXJnZXQgYm9hcmQgc3RydWN0LgotLSAgICBpZiBbdGFyZ2V0X2lu Zm8gZXhpc3RzIHNvY2tldGhvc3RdIHsKLSsgICAgaWYgeyBbaW5mbyBleGlzdHMgR0RCX1RFU1Rf U09DS0VUSE9TVF0gfSB7Ci0rCSMgVGhlIHVzZXIgaXMgbm90IHN1cHBvc2VkIHRvIHByb3ZpZGUg YSBwb3J0IG51bWJlciwganVzdCBhCi0rCSMgaG9zdG5hbWUvYWRkcmVzcywgdGhlcmVmb3JlIHdl IGFkZCB0aGUgdHJhaWxpbmcgIjoiIGhlcmUuCi0rCXNldCBkZWJ1Z2hvc3QgIiR7R0RCX1RFU1Rf U09DS0VUSE9TVH06IgotKwkjIEVzY2FwZSBvcGVuIGFuZCBjbG9zZSBzcXVhcmUgYnJhY2tldHMu Ci0rCXNldCBkZWJ1Z2hvc3RfdG1wIFtzdHJpbmcgbWFwIHsgWyBcXFsgXSBcXF0gfSAkZGVidWdo b3N0XQotKwkjIFdlIG5lZWQgYSAiZ2Ric2VydmVyIiB2ZXJzaW9uIG9mIHRoZSBkZWJ1Z2hvc3Qs IHdoaWNoIHdpbGwKLSsJIyBoYXZlIHRoZSBwb3NzaWJsZSBjb25uZWN0aW9uIHByZWZpeCBzdHJp cHBlZC4gIFRoaXMgaXMKLSsJIyBiZWNhdXNlIGdkYnNlcnZlciBjdXJyZW50bHkgZG9lc24ndCBy ZWNvZ25pemUgdGhlIHByZWZpeGVzLgotKwlyZWdzdWIgLWFsbCAiXlwodGNwOnx1ZHA6fHRjcDQ6 fHVkcDQ6fHRjcDY6fHVkcDY6XCkiICRkZWJ1Z2hvc3RfdG1wICIiIGRlYnVnaG9zdF9nZGJzZXJ2 ZXIKLSsgICAgfSBlbHNlaWYgW3RhcmdldF9pbmZvIGV4aXN0cyBzb2NrZXRob3N0XSB7Ci0gCXNl dCBkZWJ1Z2hvc3QgW3RhcmdldF9pbmZvIHNvY2tldGhvc3RdCi0rCXNldCBkZWJ1Z2hvc3RfZ2Ri c2VydmVyICRkZWJ1Z2hvc3QKLSAgICAgfSBlbHNlIHsKLSAJc2V0IGRlYnVnaG9zdCAibG9jYWxo b3N0OiIKLSsJc2V0IGRlYnVnaG9zdF9nZGJzZXJ2ZXIgJGRlYnVnaG9zdAotICAgICB9Ci0gCi0g ICAgICMgU29tZSBib2FyZHMgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciB0aGUgcG9ydCB0aGF0 IGlzIHBhc3NlZCB0bwotQEAgLTI3Nyw4ICsyOTAsMTQgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQg eyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKLSAJaWYgeyAkb3B0aW9ucyAhPSAiIiB9IHsKLSAJICAg IGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICRvcHRpb25zIgotIAl9Ci0rCWlmIHsgJGRlYnVn aG9zdF9nZGJzZXJ2ZXIgIT0gIiIgfSB7Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQg IiAkZGVidWdob3N0X2dkYnNlcnZlciIKLSsJfQotIAlpZiB7ICRwb3J0bnVtICE9ICIiIH0gewot LQkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgWyRnZXRfY29tbV9wb3J0ICRwb3J0bnVt XSIKLSsJICAgIGlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgPT0gIiIgfSB7Ci0rCQlhcHBlbmQg Z2Ric2VydmVyX2NvbW1hbmQgIiAiCi0rCSAgICB9Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2Nv bW1hbmQgIlskZ2V0X2NvbW1fcG9ydCAkcG9ydG51bV0iCi0gCX0KLSAJaWYgeyAkYXJndW1lbnRz ICE9ICIiIH0gewotIAkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJGFyZ3VtZW50cyIK LUBAIC0zMDcsNiArMzI2LDkgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3Vt ZW50cyB9IHsKLSAJCSAgICBjb250aW51ZQotIAkJfQotIAkgICAgfQotKwkgICAgLXJlICIuKjog Y2Fubm90IHJlc29sdmUgbmFtZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKLSsJ CWVycm9yICJnZGJzZXJ2ZXIgY2Fubm90IHJlc29sdmUgbmFtZS4iCi0rCSAgICB9Ci0gCSAgICB0 aW1lb3V0IHsKLSAJCWVycm9yICJUaW1lb3V0IHdhaXRpbmcgZm9yIGdkYnNlcnZlciByZXNwb25z ZS4iCi0gCSAgICB9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9u LXNwZWMtc2VsZnRlc3RzLmMgYi9nZGIvdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1z ZWxmdGVzdHMuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dk Yi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jCi1AQCAtMCwwICsx LDI0OSBAQAotKy8qIFNlbGYgdGVzdHMgZm9yIHBhcnNpbmcgY29ubmVjdGlvbiBzcGVjcyBmb3Ig R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIu Ci0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNs dWRlICJkZWZzLmgiCi0rI2luY2x1ZGUgInNlbGZ0ZXN0LmgiCi0rI2luY2x1ZGUgImNvbW1vbi9u ZXRzdHVmZi5oIgotKyNpbmNsdWRlICJkaWFnbm9zdGljcy5oIgotKyNpZmRlZiBVU0VfV0lOMzJB UEkKLSsjaW5jbHVkZSA8d2luc29jazIuaD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgotKyNlbHNl Ci0rI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLSsjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2lu Y2x1ZGUgPG5ldGRiLmg+Ci0rI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8bmV0 aW5ldC90Y3AuaD4KLSsjZW5kaWYKLSsKLStuYW1lc3BhY2Ugc2VsZnRlc3RzIHsKLStuYW1lc3Bh Y2UgcGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzIHsKLSsKLSsvKiBBdXhpbGlhcnkgc3RydWN0 IHRoYXQgaG9sZHMgaW5mbyBhYm91dCBhIHNwZWNpZmljIHRlc3QgZm9yIGEKLSsgICBjb25uZWN0 aW9uIHNwZWMuICAqLwotKwotK3N0cnVjdCBwYXJzZV9jb25uX3Rlc3QKLSt7Ci0rICAvKiBUaGUg Y29ubmVjdGlvbiBzcGVjLiAgKi8KLSsgIGNvbnN0IGNoYXIgKmNvbm5zcGVjOwotKwotKyAgLyog RXhwZWN0ZWQgcmVzdWx0IGZyb20gJ3BhcnNlX2Nvbm5lY3Rpb25fc3BlYycuICAqLwotKyAgcGFy c2VkX2Nvbm5lY3Rpb25fc3BlYyBleHBlY3RlZF9yZXN1bHQ7Ci0rCi0rICAvKiBUcnVlIGlmIHRo aXMgdGVzdCBzaG91bGQgZmFpbCwgZmFsc2Ugb3RoZXJ3aXNlLiAgSWYgdHJ1ZSwgb25seQotKyAg ICAgdGhlIENPTk5TUEVDIGZpZWxkIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHZhbGlkLiAgKi8K LSsgIGJvb2wgc2hvdWxkX2ZhaWw7Ci0rCi0rICAvKiBUaGUgZXhwZWN0ZWQgQUlfRkFNSUxZIHRv IGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJwotKyAgICAgSElOVC4gICovCi0rICBp bnQgZXhwX2FpX2ZhbWlseTsKLSsKLSsgIC8qIFRoZSBleHBlY3RlZCBBSV9TT0NLVFlQRSB0byBi ZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50 IGV4cF9haV9zb2NrdHlwZTsKLSsKLSsgIC8qIFRoZSBleHBlY3RlZCBBSV9QUk9UT0NPTCB0byBi ZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50 IGV4cF9haV9wcm90b2NvbDsKLSt9OwotKwotKy8qIFNvbWUgZGVmaW5lcyB0byBoZWxwIHVzIGZp bGwgYSAnc3RydWN0IHBhcnNlX2Nvbm5fdGVzdCcuICAqLwotKwotKy8qIEluaXRpYWxpemUgYSBm dWxsIGVudHJ5LiAgKi8KLSsjZGVmaW5lIElOSVRfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9Q T1JULCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwgXAotKwkJICAgRVhQX0FJX1NPQ0tUWVBF LCBFWFBfQUlfUFJPVE9DT0wpCQkJXAotKyAgeyBBRERSLCB7IEVYUF9IT1NULCBFWFBfUE9SVCB9 LCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwgXAotKyAgICBFWFBfQUlfU09DS1RZUEUsIEVY UF9BSV9QUk9UT0NPTCB9Ci0rCi0rLyogSW5pdGlhbGl6ZSBhbiB1bnByZWZpeGVkIGVudHJ5LiAg SW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBleHBlY3QKLSsgICBhbnl0aGluZyBvbiB0aGUgJ3N0cnVj dCBhZGRyaW5mbycgSElOVC4gICovCi0rI2RlZmluZSBJTklUX1VOUFJFRklYRURfRU5UUlkoQURE UiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwg RVhQX1BPUlQsIGZhbHNlLCAwLCAwLCAwKQotKwotKy8qIEluaXRpYWxpemVkIGFuIHVucHJlZml4 ZWQgSVB2NiBlbnRyeS4gIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3QKLSsgICBleHBlY3QgYW55dGhp bmcgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nIEhJTlQuICAqLwotKyNkZWZpbmUgSU5JVF9VTlBS RUZJWEVEX0lQVjZfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCi0rICBJTklUX0VO VFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCBBRl9JTkVUNiwgMCwgMCkKLSsK LSsvKiBJbml0aWFsaXplIGEgcHJlZml4ZWQgZW50cnkuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVG SVhFRF9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEVYUF9BSV9GQU1JTFksIFwKLSsJ CQkgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpIFwKLSsgIElOSVRfRU5UUlkg KEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFsc2UsIEVYUF9BSV9GQU1JTFksIFwKLSsJICAg ICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpCi0rCi0rLyogSW5pdGlhbGl6ZSBh biBlbnRyeSBwcmVmaXhlZCB3aXRoICJ0Y3A0OiIuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhF RF9JUFY0X1RDUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJFRklYRURf RU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVCwgU09DS19TVFJFQU0sIFwK LSsJCSAgICAgICBJUFBST1RPX1RDUCkKLSsKLSsvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZp eGVkIHdpdGggInRjcDY6Ii4gICovCi0rI2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjZfVENQKEFE RFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAotKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwg RVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVUNiwgU09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJ UFBST1RPX1RDUCkKLSsKLSsvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInVk cDQ6Ii4gICovCi0rI2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjRfVURQKEFERFIsIEVYUF9IT1NU LCBFWFBfUE9SVCkgXAotKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVY UF9QT1JULCBBRl9JTkVULCBTT0NLX0RHUkFNLCBcCi0rCQkgICAgICAgSVBQUk9UT19VRFApCi0r Ci0rLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ1ZHA2OiIuICAqLwotKyNk ZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwK LSsgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5F VDYsIFNPQ0tfREdSQU0sIFwKLSsJCSAgICAgICBJUFBST1RPX1VEUCkKLSsKLSsvKiBJbml0aWFs aXplIGEgYm9ndXMgZW50cnksIGkuZS4sIGEgY29ubmVjdGlvbiBzcGVjIHRoYXQgc2hvdWxkCi0r ICAgZmFpbC4gICovCi0rI2RlZmluZSBJTklUX0JPR1VTX0VOVFJZKEFERFIpIFwKLSsgIElOSVRf RU5UUlkgKEFERFIsICIiLCAiIiwgdHJ1ZSwgMCwgMCwgMCkKLSsKLSsvKiBUaGUgdmFyaWFibGUg d2hpY2ggaG9sZHMgYWxsIG9mIG91ciB0ZXN0cy4gICovCi0rCi0rc3RhdGljIGNvbnN0IHBhcnNl X2Nvbm5fdGVzdCBjb25uX3Rlc3RbXSA9Ci0rICB7Ci0rICAgIC8qIFVucHJlZml4ZWQgYWRkcmVz c2VzLiAgKi8KLSsKLSsgICAgLyogSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsg ICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwg IjEyMzQiKSwKLSsgICAgLyogSVB2NCwgb25seSBob3N0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJ WEVEX0VOVFJZICgiMTI3LjAuMC4xIiwgIjEyNy4wLjAuMSIsICIiKSwKLSsgICAgLyogSVB2NCwg bWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4x OiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rICAgIC8qIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJl c2VudCwgbm8gYnJhY2tldHMuICAqLwotKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCI6OjE6 MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAvKiBJUHY2LCBtaXNzaW5nIHBvcnQsIG5vIGJy YWNrZXRzLiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjoxOiIsICI6OjEiLCAi IiksCi0rICAgIC8qIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgd2l0aCBicmFja2V0cy4g ICovCi0rICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6MV06MTIzNCIsICI6OjEi LCAiMTIzNCIpLAotKyAgICAvKiBJUHY2LCBvbmx5IGhvc3QsIHdpdGggYnJhY2tldHMuICAqLwot KyAgICBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRSWSAoIls6OjFdIiwgIjo6MSIsICIiKSwKLSsg ICAgLyogSVB2NiwgbWlzc2luZyBwb3J0LCB3aXRoIGJyYWNrZXRzLiAgKi8KLSsgICAgSU5JVF9V TlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjoxXToiLCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBV bnNwZWNpZmllZCwgb25seSBwb3J0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgi OjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgYWRkcmVz c2VzLiAgKi8KLSsKLSsgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0 IHByZXNlbnRzLiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAu MC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDQ6 IiBJUHY0LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNw NDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNDoi IElQdjQsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0 OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIg SVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRj cDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rICAgIC8qIFByZWZpeGVkICJ1 ZHA0OiIgSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhF RF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwK LSsgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklU X1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAot KyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRf UFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCi0r ICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5J VF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiks Ci0rCi0rCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVz ZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxOjEyMzQiLCAi OjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBvbmx5IHBvcnQu ICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6MTIzNCIsICJsb2NhbGhv c3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIG9ubHkgaG9zdC4g ICovCi0rICAgIC8vSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxIiwgIjo6MSIsICIi KSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBtaXNzaW5nIHBvcnQuICAqLwotKyAg ICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6OjE6IiwgIjo6MSIsICIiKSwKLSsKLSsg ICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLwot KyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6OjE6MTIzNCIsICI6OjEiLCAiMTIz NCIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG9ubHkgcG9ydC4gICovCi0rICAg IElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0 IiksCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2Niwgb25seSBob3N0LiAgKi8KLSsgICAg Ly9JTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6OjEiLCAiOjoxIiwgIiIpLAotKyAgICAv KiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJF RklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MToiLCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBQcmVm aXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAg Ki8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06MTIzNCIsICI6OjEi LCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywg b25seSBob3N0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV0i LCAiOjoxIiwgIiIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0 cywgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6 Wzo6MV06IiwgIjo6MSIsICIiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdp dGggYnJhY2tldHMsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCi0rICAgIElOSVRfUFJFRklY RURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyog UHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG9ubHkgaG9zdC4gICovCi0rICAg IElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAg LyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG1pc3NpbmcgcG9ydC4gICov Ci0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOiIsICI6OjEiLCAiIiks Ci0rCi0rCi0rICAgIC8qIEJvZ3VzIGFkZHJlc3Nlcy4gICovCi0rICAgIElOSVRfQk9HVVNfRU5U UlkgKCJ0Y3A2Ols6OjFdMTIzOjQ0IiksCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJbOjoxIiks Ci0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ojo6MV06IiksCi0rICB9OwotKwotKy8qIFRl c3QgYSBjb25uZWN0aW9uIHNwZWMgQy4gICovCi0rCi0rc3RhdGljIHZvaWQKLSt0ZXN0X2Nvbm4g KGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCAmYykKLSt7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsK LSsgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0OwotKwotKyAgbWVtc2V0ICgmaGludCwgMCwg c2l6ZW9mIChoaW50KSk7Ci0rCi0rICBUUlkKLSsgICAgewotKyAgICAgIHJldCA9IHBhcnNlX2Nv bm5lY3Rpb25fc3BlYyAoYy5jb25uc3BlYywgJmhpbnQpOwotKyAgICB9Ci0rICBDQVRDSCAoZXgs IFJFVFVSTl9NQVNLX0VSUk9SKQotKyAgICB7Ci0rICAgICAgLyogSWYgd2UgY2F1Z2h0IGFuIGVy cm9yLCB3ZSBzaG91bGQgY2hlY2sgaWYgdGhpcyBjb25uZWN0aW9uCi0rCSBzcGVjIHdhcyBzdXBw b3NlZCB0byBmYWlsLiAgKi8KLSsgICAgICBTRUxGX0NIRUNLIChjLnNob3VsZF9mYWlsKTsKLSsg ICAgICByZXR1cm47Ci0rICAgIH0KLSsgIEVORF9DQVRDSAotKwotKyAgU0VMRl9DSEVDSyAoIWMu c2hvdWxkX2ZhaWwpOwotKyAgU0VMRl9DSEVDSyAocmV0Lmhvc3Rfc3RyID09IGMuZXhwZWN0ZWRf cmVzdWx0Lmhvc3Rfc3RyKTsKLSsgIFNFTEZfQ0hFQ0sgKHJldC5wb3J0X3N0ciA9PSBjLmV4cGVj dGVkX3Jlc3VsdC5wb3J0X3N0cik7Ci0rICBTRUxGX0NIRUNLIChoaW50LmFpX2ZhbWlseSA9PSBj LmV4cF9haV9mYW1pbHkpOwotKyAgU0VMRl9DSEVDSyAoaGludC5haV9zb2NrdHlwZSA9PSBjLmV4 cF9haV9zb2NrdHlwZSk7Ci0rICBTRUxGX0NIRUNLIChoaW50LmFpX3Byb3RvY29sID09IGMuZXhw X2FpX3Byb3RvY29sKTsKLSt9Ci0rCi0rLyogUnVuIHRoZSB0ZXN0cyBhc3NvY2lhdGVkIHdpdGgg cGFyc2luZyBjb25uZWN0aW9uIHNwZWNzLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK3J1bl90ZXN0 cyAoKQotK3sKLSsgIGZvciAoY29uc3QgcGFyc2VfY29ubl90ZXN0ICZjIDogY29ubl90ZXN0KQot KyAgICB0ZXN0X2Nvbm4gKGMpOwotK30KLSt9IC8qIG5hbWVzcGFjZSBwYXJzZV9jb25uZWN0aW9u X3NwZWNfdGVzdHMgKi8KLSt9IC8qIG5hbWVzcGFjZSBzZWxmdGVzdHMgKi8KLSsKLSt2b2lkCi0r X2luaXRpYWxpemVfcGFyc2VfY29ubmVjdGlvbl9zcGVjX3NlbGZ0ZXN0cyAoKQotK3sKLSsgIHNl bGZ0ZXN0czo6cmVnaXN0ZXJfdGVzdCAoInBhcnNlX2Nvbm5lY3Rpb25fc3BlYyIsCi0rCQkJICAg IHNlbGZ0ZXN0czo6cGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzOjpydW5fdGVzdHMpOwotK30K CmRpZmYgLS1naXQgYS9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2ggYi9nZGItcmhiejg4 MTg0OS1pcHY2LTJvZjMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MGJl MGYuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTQgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0 LmNvbT4KLURhdGU6IE1vbiwgMzAgSnVsIDIwMTggMTU6MjM6MjcgLTA0MDAKLVN1YmplY3Q6IGdk Yi1yaGJ6ODgxODQ5LWlwdjYtMm9mMy5wYXRjaAotCi1NYXRjaCBhbnkga2luZCBvZiBlcnJvciBh ZnRlciAiY2Fubm90IHJlc29sdmUgbmFtZSIgb24gbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cDpn ZGJzZXJ2ZXJfc3RhcnQKLQotT24gY29tbWl0OgotCi1jb21taXQgN2YxZjdlMjM5MzlhZGM3ZDcx MDM2YTE3ZmM2MDgxZTNhZjdjYTU4NQotQXV0aG9yOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNl cmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiAgIEZyaSBKdWwgMTMgMTY6MjA6MzQgMjAxOCAtMDQw MAotCi0gICAgRXhwZWN0IGZvciBhbm90aGVyIHZhcmlhbnQgb2YgZXJyb3IgbWVzc2FnZSB3aGVu IGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBob3N0bmFtZQotCi1JIGV4dGVuZGVkIHRoZSByZWd1 bGFyIGV4cHJlc3Npb24gYmVpbmcgdXNlZCB0byBpZGVudGlmeSB3aGV0aGVyCi1nZGJzZXJ2ZXIg Y291bGQgbm90IHJlc29sdmUgYSAoaG9zdCluYW1lLiAgVGhpcyB3YXMgbmVlZGVkIGJlY2F1c2Ug dGhlCi1lcnJvciBtZXNzYWdlIGJlaW5nIHByaW50ZWQgaGFkIGEgZGlmZmVyZW50IHZhcmlhdGlv biBhY3Jvc3Mgc29tZQotc3lzdGVtcy4gIEhvd2V2ZXIsIGFzIGl0IHR1cm5zIG91dCwgSSd2ZSBq dXN0IG5vdGljZWQgdGhhdCB0aGUgbWVzc2FnZQotaGFzIHlldCBhbm90aGVyIHZhcmlhdGlvbjoK LQotICB0YXJnZXQgcmVtb3RlIHRjcDg6MTIzOjIzNTMKLSAgdGNwODoxMjM6MjM1MzogY2Fubm90 IHJlc29sdmUgbmFtZTogU3lzdGVtIGVycm9yCi0gICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXgotICB0Y3A4OjEyMzoyMzUzOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5LgotICAoZ2RiKSBGQUlMOiBnZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cDog dGNwODogY29ubmVjdCB0byBnZGJzZXJ2ZXIgdXNpbmcgdGNwODoxMjMKLQotd2hpY2ggaXMgY2F1 c2luZyBGQUlMcyBvbiBzb21lIHN5c3RlbXMgKG5hbWVseSwgRmVkb3JhLWk2ODYgb24KLUJ1aWxk Qm90KS4KLQotU28gaW5zdGVhZCBvZiB0cnlpbmcgdG8gcHJlZGljdCBldmVyeXRoaW5nIHRoYXQg Y2FuIGJlIHByaW50ZWQsIEkKLWRlY2lkZWQgdG8ganVzdCBtYXRjaCBhbnl0aGluZyBhZnRlciB0 aGUgImNhbm5vdCByZXNvbHZlIG5hbWU6ICIgcGFydC4KLVRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0 aGF0LgotCi1SZWdyZXNzaW9uIHRlc3RlZCBvbiB0aGUgQnVpbGRCb3QuCi0KLWdkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nOgotMjAxOC0wNy0zMCAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lv ZGpAcmVkaGF0LmNvbT4KLQotCSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCAoZ2Ric2VydmVy X3N0YXJ0KTogTWF0Y2ggYW55IGtpbmQgb2YKLQllcnJvciBhZnRlciAiY2Fubm90IHJlc29sdmUg bmFtZSIgc3RyaW5nLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVy LXN1cHBvcnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi0t LS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAotQEAgLTMyNiw3ICszMjYsNyBAQCBw cm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0gewotIAkJICAgIGNvbnRp bnVlCi0gCQl9Ci0gCSAgICB9Ci0tCSAgICAtcmUgIi4qOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiBO YW1lIG9yIHNlcnZpY2Ugbm90IGtub3duXHJcbiIgewotKwkgICAgLXJlICIuKjogY2Fubm90IHJl c29sdmUgbmFtZTogLipcclxuIiB7Ci0gCQllcnJvciAiZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZl IG5hbWUuIgotIAkgICAgfQotIAkgICAgdGltZW91dCB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno4 ODE4NDktaXB2Ni0zb2YzLnBhdGNoIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODljYjE4Li4wMDAwMDAwCi0tLSBhL2dkYi1y aGJ6ODgxODQ5LWlwdjYtM29mMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAK LUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJn aW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDMgQXVn IDIwMTggMTg6MDQ6MzggLTA0MDAKLVN1YmplY3Q6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtM29mMy5w YXRjaAotCi1GaXggdGhpbmtvIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0byBkaXNhYmxlIFRDUCdz IE5hZ2xlIGFsZ29yaXRobQotCi1UaGlzIHBhdGNoIGZpeGVzIGEgdGhpbmtvIHRoYXQgaGFwcGVu ZWQgd2hlbiBJIHdhcyBpbXBsZW1lbnRpbmcgdGhlCi1JUHY2IHN1cHBvcnQgb24gR0RCL2dkYnNl cnZlci4gIE9uIGNlcnRhaW4gc2l0dWF0aW9ucywgaXQgaXMgbmVjZXNzYXJ5Ci10byBkaXNhYmxl IFRDUCdzIE5hZ2xlIGFsZ29yaXRobSAoTk9ERUxBWSkuICBGb3Igb2J2aW91cyByZWFzb25zLCB0 aGlzCi1vbmx5IGFwcGxpZXMgd2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgVENQIGNvbm5lY3Rp b24uCi0KLVdoaWxlIGltcGxlbWVudGluZyB0aGUgSVB2NiBwYXRjaCwgSSBub3RpY2VkIHRoYXQg dGhlIG5ldF9vcGVuCi1mdW5jdGlvbiAob24gZ2RiL3Nlci10Y3AuYykga2VwdCBhIGZsYWcgaW5k aWNhdGluZyB3aGV0aGVyIHRoZQotY29ubmVjdGlvbiB0eXBlIHdhcyBVRFAgb3IgVENQLiAgSSBl bGltaW5hdGVkIHRoYXQgZmxhZywgYW5kIHN0YXJ0ZWQKLXVzaW5nIHRoZSAnc3RydWN0IGFkZHJp bmZvIConIHJlbGF0ZWQgdG8gdGhlIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbgotZGlyZWN0bHkuICBI b3dldmVyLCBJIG1hZGUgYSBtaXN0YWtlOgotCi0gIGlmIChzdWNjZXNzX2FpbmZvLT5haV9zb2Nr dHlwZSA9PSBJUFBST1RPX1RDUCkKLSAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eCi0g ICAgewotICAgICAgLyogRGlzYWJsZSBOYWdsZSBhbGdvcml0aG0uICBOZWVkZWQgaW4gc29tZSBj YXNlcy4gICovCi0gICAgICBpbnQgdG1wID0gMTsKLQotICAgICAgc2V0c29ja29wdCAoc2NiLT5m ZCwgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLAotCQkgIChjaGFyICopICZ0bXAsIHNpemVvZiAo dG1wKSk7Ci0gICAgfQotCi1UaGUgJ2FpX3NvY2t0eXBlJyBmaWVsZCBzcGVjaWZpZXMgdGhlIHNv Y2tldCB0eXBlIChTT0NLX1NUUkVBTSBvcgotU09DS19ER1JBTSksIGFuZCBub3QgdGhlIHByb3Rv Y29sLiAgVGhpcyB0ZXN0IHdhcyBhbHdheXMgZmFpbGluZywgYW5kCi10aGUgTmFnbGUgYWxnb3Jp dGhtIHdhcyBuZXZlciBiZWluZyBkaXNhYmxlZC4KLQotVGhlIG9idmlvdXMgZml4IGlzIHRvIHVz ZSB0aGUgJ2FpX3Byb3RvY29sJyBmaWVsZC4gIFRoaXMgaXMgd2hhdCB0aGlzCi1wYXRjaCBkb2Vz LgotCi1IdWdlICJ0aGFuayB5b3UiIHRvIEpvZWwgQnJvYmVja2VyIHdobyByZXBvcnRlZCB0aGUg cmVncmVzc2lvbiAoaGUgd2FzCi1leHBlcmllbmNpbmcgYW4gdW51c3VhbCBkZWxheSB3aGlsZSBk ZWJ1Z2dpbmcgYSBiYXJlLW1ldGFsIHByb2dyYW0KLXJ1bm5pbmcgdW5kZXIgUUVNVSkgYW5kIGhl bHBlZCBtZSBzZXQgdXAgYSBwcm9wZXIgcmVwcm9kdWNlciBmb3IgdGhlCi1idWcuCi0KLWdkYi9D aGFuZ2VMb2c6Ci0yMDE4LTA4LTAzICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakBy ZWRoYXQuY29tPgotCi0JKiBzZXItdGNwLmMgKG5ldF9vcGVuKTogRml4IHRoaW5rbyB3aGVuIGRl Y2lkaW5nIHdoZXRoZXIgdG8KLQlkaXNhYmxlIFRDUCdzIE5hZ2xlIGFsZ29yaXRobSAodXNlICJh aV9wcm90b2NvbCIgaW5zdGVhZCBvZgotCSJhaV9zb2NrdHlwZSIpLgotCi1kaWZmIC0tZ2l0IGEv Z2RiL0NoYW5nZUxvZyBiL2dkYi9DaGFuZ2VMb2cKLS0tLSBhL2dkYi9DaGFuZ2VMb2cKLSsrKyBi L2dkYi9DaGFuZ2VMb2cKLUBAIC0xLDMgKzEsOSBAQAotKzIwMTgtMDgtMDMgIFNlcmdpbyBEdXJp Z2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0rCi0rCSogc2VyLXRjcC5jIChuZXRf b3Blbik6IEZpeCB0aGlua28gd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvCi0rCWRpc2FibGUgVENQ J3MgTmFnbGUgYWxnb3JpdGhtICh1c2UgImFpX3Byb3RvY29sIiBpbnN0ZWFkIG9mCi0rCSJhaV9z b2NrdHlwZSIpLgotKwotIDIwMTgtMDctMjUgIEFsYW4gSGF5d2FyZCAgPGFsYW4uaGF5d2FyZEBh cm0uY29tPgotIAotIAkqIHRhcmdldC1kZXNjcmlwdGlvbnMuYyAodGRlc2NfcmVnaXN0ZXJfYml0 c2l6ZSk6IFJlbmFtZS4KLWRpZmYgLS1naXQgYS9nZGIvc2VyLXRjcC5jIGIvZ2RiL3Nlci10Y3Au YwotLS0tIGEvZ2RiL3Nlci10Y3AuYwotKysrIGIvZ2RiL3Nlci10Y3AuYwotQEAgLTM2Nyw3ICsz NjcsNyBAQCBuZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAqc2NiLCBjb25zdCBjaGFyICpuYW1lKQot IAotICAgaW9jdGwgKHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7Ci0gCi0tICBpZiAoc3VjY2Vz c19haW5mby0+YWlfc29ja3R5cGUgPT0gSVBQUk9UT19UQ1ApCi0rICBpZiAoc3VjY2Vzc19haW5m by0+YWlfcHJvdG9jb2wgPT0gSVBQUk9UT19UQ1ApCi0gICAgIHsKLSAgICAgICAvKiBEaXNhYmxl IE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2VzLiAgKi8KLSAgICAgICBpbnQg dG1wID0gMTsKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLWZvcnRyYW4tc3RyaWRlcy5wYXRj aCBiL2dkYi12bGEtaW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoCmluZGV4IGZhZjgzNmMuLjYw NTRhNGMgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoCisr KyBiL2dkYi12bGEtaW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoCkBAIC0zNyw3ICszNyw3IEBA IGRiZmQ3MTQwYmY0YzA1MDBkMWY1ZDE5MmJlNzgxZjgzZjc4Zjc5MjIKIGRpZmYgLS1naXQgYS9n ZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwog KysrIGIvZ2RiL2R3YXJmMmxvYy5jCi1AQCAtMjYwMCwxMSArMjYwMCwxNCBAQCBkd2FyZjJfbG9j ZXhwcl9iYXRvbl9ldmFsIChjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0 b24sCitAQCAtMjY1OSwxMSArMjY1OSwxNCBAQCBkd2FyZjJfbG9jZXhwcl9iYXRvbl9ldmFsIChj b25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24sCiAgLyogU2VlIGR3YXJm MmxvYy5oLiAgKi8KICAKICBpbnQKQEAgLTU0LDcgKzU0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9k d2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogICAgaWYgKHByb3AgPT0gTlVMTCkKICAgICAg cmV0dXJuIDA7CiAgCi1AQCAtMjYyOCw3ICsyNjMxLDcgQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3Bl cnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAorQEAgLTI2ODcsNyArMjY5MCw3 IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAq cHJvcCwKICAKICAJCSp2YWx1ZSA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7CiAgCSAgICAgIH0K QEAgLTYzLDcgKzYzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2Fy ZjJsb2MuYwogIAkgIH0KICAgICAgICB9CiAgICAgICAgYnJlYWs7Ci1AQCAtMjY1MCw3ICsyNjUz LDcgQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9w ICpwcm9wLAorQEAgLTI3MDksNyArMjcxMiw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAo Y29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKICAJICAgIGlmICghdmFsdWVfb3B0aW1p emVkX291dCAodmFsKSkKICAJICAgICAgewogIAkJKnZhbHVlID0gdmFsdWVfYXNfYWRkcmVzcyAo dmFsKTsKQEAgLTcyLDcgKzcyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dk Yi9kd2FyZjJsb2MuYwogIAkgICAgICB9CiAgCSAgfQogICAgICAgIH0KLUBAIC0yNjU4LDggKzI2 NjEsOCBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnVjdCBkeW5hbWljX3By b3AgKnByb3AsCitAQCAtMjcxNyw4ICsyNzIwLDggQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAogIAogICAgICBjYXNlIFBST1BfQ09O U1Q6CiAgICAgICAgKnZhbHVlID0gcHJvcC0+ZGF0YS5jb25zdF92YWw7CkBAIC04Myw3ICs4Myw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKICAgICAg Y2FzZSBQUk9QX0FERFJfT0ZGU0VUOgogICAgICAgIHsKICAJc3RydWN0IGR3YXJmMl9wcm9wZXJ0 eV9iYXRvbiAqYmF0b24KLUBAIC0yNjgwLDExICsyNjgzLDM4IEBAIGR3YXJmMl9ldmFsdWF0ZV9w cm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKK0BAIC0yNzM5LDExICsy NzQyLDM4IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNf cHJvcCAqcHJvcCwKICAJICB2YWwgPSB2YWx1ZV9hdCAoYmF0b24tPm9mZnNldF9pbmZvLnR5cGUs CiAgCQkJICBwaW5mby0+YWRkciArIGJhdG9uLT5vZmZzZXRfaW5mby5vZmZzZXQpOwogIAkqdmFs dWUgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvZHdhcmYybG9jLmggYi9nZGIvZHdhcmYybG9jLmgKIGRpZmYgLS1naXQgYS9nZGIv ZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwog KysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE3NTUwLDcgKzE3NTUwLDcgQEAgcmVhZF9zdWJy YW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtMTc3MDUsNyArMTc3MDUsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGUs ICpvcmlnX2Jhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTE1Miw3ICsxNTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3 YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAgIGludCBsb3dfZGVmYXVsdF9pc192YWxp ZDsKICAgIGludCBoaWdoX2JvdW5kX2lzX2NvdW50ID0gMDsKICAgIGNvbnN0IGNoYXIgKm5hbWU7 Ci1AQCAtMTc1NzAsNyArMTc1NzAsOSBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNzcyNSw3ICsxNzcyNSw5IEBA IHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogIAogICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJP UF9DT05TVDsKQEAgLTE2Miw3ICsxNjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQu YyBiL2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIC8qIFNldCBMT1dfREVGQVVMVF9JU19WQUxJRCBp ZiBjdXJyZW50IGxhbmd1YWdlIGFuZCBEV0FSRiB2ZXJzaW9uIGFsbG93CiAgICAgICBvbWl0dGlu ZyBEV19BVF9sb3dlcl9ib3VuZC4gICovCi1AQCAtMTc2MDMsNiArMTc2MDUsMTQgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMTc3NTgsNiArMTc3NjAsMTQgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgYnJlYWs7CiAgICAgIH0K ICAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dk Yi9kd2FyZjJyZWFkLmMKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dlcl9i b3VuZCwgY3UpOwogICAgaWYgKGF0dHIpCiAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRy LCBkaWUsIGN1LCAmbG93KTsKLUBAIC0xNzY4MCw3ICsxNzY5MCw3IEBAIHJlYWRfc3VicmFuZ2Vf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE3 ODUwLDcgKzE3ODYwLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKGJhc2Vf dHlwZSkgJiYgKGhpZ2guZGF0YS5jb25zdF92YWwgJiBuZWdhdGl2ZV9tYXNrKSkKICAgICAgaGln aC5kYXRhLmNvbnN0X3ZhbCB8PSBuZWdhdGl2ZV9tYXNrOwogIApAQCAtMTg5LDcgKzE4OSw3IEBA IGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogZGlmZiAt LWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiAtLS0gYS9nZGIvZXZhbC5jCiArKysgYi9n ZGIvZXZhbC5jCi1AQCAtMzc3LDI5ICszNzcsMzI1IEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3Ry dWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAorQEAgLTM3NywyOSArMzc3 LDMyNCBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCB2 YWx1ZSAqZWxlbWVudCwKICAgIHJldHVybiBpbmRleDsKICB9CiAgCkBAIC0yMDcsOCArMjA3LDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiArCQkgICAgaW50ICpwb3Ms IGludCBuYXJncywgZW51bSBub3NpZGUgbm9zaWRlKQogIHsKIC0gIGludCBwYyA9ICgqcG9zKSAr IDE7Ci0rICBpbnQgaSwgZGltX2NvdW50ID0gMDsKLSAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdo X2JvdW5kOworLSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAtICBzdHJ1Y3QgdHlw ZSAqcmFuZ2UgPSBjaGVja190eXBlZGVmIChUWVBFX0lOREVYX1RZUEUgKHZhbHVlX3R5cGUgKGFy cmF5KSkpOwogLSAgZW51bSByYW5nZV90eXBlIHJhbmdlX3R5cGUKIC0gICAgPSAoZW51bSByYW5n ZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwpAQCAtMjE5 LDYgKzIxOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwogLSAgICBs b3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2UpOwogLSAgZWxzZQogLSAgICBsb3dfYm91 bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3Ms IG5vc2lkZSkpOworKyAgaW50IGksIGRpbV9jb3VudCA9IDA7CiArICBzdHJ1Y3QgdmFsdWUgKm5l d19hcnJheSA9IGFycmF5OwogKyAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKICsgIHN0cnVjdCB0eXBlICplbHRfdHlwZTsK QEAgLTUzMyw3ICs1MzMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMK ICB9CiAgCiAgCi1AQCAtMTkyNiwxOSArMjIyMiw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE5MzAsMTkgKzIyMjUsOCBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgICBz d2l0Y2ggKGNvZGUpCiAgCXsKICAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CkBAIC01NTQsNyArNTU0 LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiAgCiAgCWNhc2UgVFlQ RV9DT0RFX1BUUjoKICAJY2FzZSBUWVBFX0NPREVfRlVOQzoKLUBAIC0yMzM0LDQ5ICsyNjE5LDYg QEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitA QCAtMjMzOCw0OSArMjYyMiw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmV4cGVjdF90eXBlLAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcxKTsKICAKQEAgLTYwNCw3 ICs2MDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKICAgICAgY2Fz ZSBCSU5PUF9MT0dJQ0FMX0FORDoKICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxM X1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwogICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQ KQotQEAgLTMyOTMsNiArMzUzNSw5IEBAIGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBl ICphcnJheV90eXBlKQorQEAgLTMzMDEsNiArMzU0Miw5IEBAIGNhbGNfZjc3X2FycmF5X2RpbXMg KHN0cnVjdCB0eXBlICphcnJheV90eXBlKQogICAgaW50IG5kaW1lbiA9IDE7CiAgICBzdHJ1Y3Qg dHlwZSAqdG1wX3R5cGU7CiAgCkBAIC04MzIsNyArODMyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9m LXZhbHByaW50LmMgYi9nZGIvZi12YWxwcmludC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVz LmMgYi9nZGIvZ2RidHlwZXMuYwogLS0tIGEvZ2RiL2dkYnR5cGVzLmMKICsrKyBiL2dkYi9nZGJ0 eXBlcy5jCi1AQCAtOTAyLDcgKzkwMiw4IEBAIG9wZXJhdG9yPT0gKGNvbnN0IHJhbmdlX2JvdW5k cyAmbCwgY29uc3QgcmFuZ2VfYm91bmRzICZyKQorQEAgLTkxMSw3ICs5MTEsOCBAQCBvcGVyYXRv cj09IChjb25zdCByYW5nZV9ib3VuZHMgJmwsIGNvbnN0IHJhbmdlX2JvdW5kcyAmcikKICBzdHJ1 Y3QgdHlwZSAqCiAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwg c3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9w ICpsb3dfYm91bmQsCkBAIC04NDIsNyArODQyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBl cy5jIGIvZ2RiL2dkYnR5cGVzLmMKICB7CiAgICBpZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKICAg ICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOwotQEAgLTkxNyw2 ICs5MTgsNyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBz dHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKK0BAIC05MjYsNiArOTI3LDcgQEAgY3JlYXRlX3Jhbmdl X3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUs CiAgICAgIFRZUEVfWkFMTE9DIChyZXN1bHRfdHlwZSwgc2l6ZW9mIChzdHJ1Y3QgcmFuZ2VfYm91 bmRzKSk7CiAgICBUWVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+bG93ID0gKmxvd19ib3Vu ZDsKICAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5oaWdoID0gKmhpZ2hfYm91bmQ7 CkBAIC04NTAsNyArODUwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dk YnR5cGVzLmMKICAKICAgIGlmIChsb3dfYm91bmQtPmtpbmQgPT0gUFJPUF9DT05TVCAmJiBsb3df Ym91bmQtPmRhdGEuY29uc3RfdmFsID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90 eXBlKSA9IDE7Ci1AQCAtOTQ1LDcgKzk0Nyw3IEBAIHN0cnVjdCB0eXBlICoKK0BAIC05NTQsNyAr OTU2LDcgQEAgc3RydWN0IHR5cGUgKgogIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0 IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCQkgIExPTkdF U1QgbG93X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCiAgewpAQCAtODU5LDcgKzg1OSw3IEBA IGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBsb3cu a2luZCA9IFBST1BfQ09OU1Q7CiAgICBsb3cuZGF0YS5jb25zdF92YWwgPSBsb3dfYm91bmQ7Ci1A QCAtOTUzLDcgKzk1NSwxMSBAQCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBl ICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCitAQCAtOTYyLDcgKzk2NCwx MSBAQCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwg c3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwogICAg aGlnaC5kYXRhLmNvbnN0X3ZhbCA9IGhpZ2hfYm91bmQ7CiAgCkBAIC04NzIsNyArODcyLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKICAKICAgIHJldHVy biByZXN1bHRfdHlwZTsKICB9Ci1AQCAtMTE3MSwxNiArMTE3NywyMCBAQCBjcmVhdGVfYXJyYXlf dHlwZV93aXRoX3N0cmlkZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLAorQEAgLTExODAsMTYg KzExODYsMjAgQEAgY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eXBlICpy ZXN1bHRfdHlwZSwKICAgICAgICAmJiAoIXR5cGVfbm90X2Fzc29jaWF0ZWQgKHJlc3VsdF90eXBl KQogIAkgICYmICF0eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBlKSkpCiAgICAgIHsKQEAg LTg5NCw3ICs4OTQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlw ZXMuYwogICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQogIAlUWVBFX0xFTkdUSCAocmVz dWx0X3R5cGUpID0KICAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsg MSkgKyA3KSAvIDg7Ci1AQCAtMTk4MSwxMiArMTk5MSwxMiBAQCByZXNvbHZlX2R5bmFtaWNfcmFu Z2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKK0BAIC0xOTkwLDEyICsyMDAwLDEyIEBA IHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlLAogICAg Q09SRV9BRERSIHZhbHVlOwogICAgc3RydWN0IHR5cGUgKnN0YXRpY19yYW5nZV90eXBlLCAqc3Rh dGljX3RhcmdldF90eXBlOwogICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKQEAg LTkwOSw3ICs5MDksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlw ZXMuYwogICAgICB7CiAgICAgICAgbG93X2JvdW5kLmtpbmQgPSBQUk9QX0NPTlNUOwogICAgICAg IGxvd19ib3VuZC5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVlOwotQEAgLTE5OTgsNyArMjAwOCw3IEBA IHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlLAorQEAg LTIwMDcsNyArMjAxNyw3IEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5 bl9yYW5nZV90eXBlLAogICAgICB9CiAgCiAgICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHlu X3JhbmdlX3R5cGUpLT5oaWdoOwpAQCAtOTE4LDcgKzkxOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIv Z2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgICAgIHsKICAgICAgICBoaWdoX2JvdW5kLmtp bmQgPSBQUk9QX0NPTlNUOwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSB2YWx1 ZTsKLUBAIC0yMDEzLDEyICsyMDIzLDIwIEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0 IHR5cGUgKmR5bl9yYW5nZV90eXBlLAorQEAgLTIwMjIsMTIgKzIwMzIsMjAgQEAgcmVzb2x2ZV9k eW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUsCiAgICAgICAgaGlnaF9i b3VuZC5kYXRhLmNvbnN0X3ZhbCA9IDA7CiAgICAgIH0KICAKQEAgLTk0Myw3ICs5NDMsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogZGlmZiAtLWdpdCBh L2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKIC0tLSBhL2dkYi9nZGJ0eXBlcy5oCiAr KysgYi9nZGIvZ2RidHlwZXMuaAotQEAgLTYxMiw2ICs2MTIsMTAgQEAgc3RydWN0IHJhbmdlX2Jv dW5kcworQEAgLTYxMyw2ICs2MTMsMTAgQEAgc3RydWN0IHJhbmdlX2JvdW5kcwogIAogICAgc3Ry dWN0IGR5bmFtaWNfcHJvcCBoaWdoOwogIApAQCAtOTU0LDcgKzk1NCw3IEBAIGRpZmYgLS1naXQg YS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgICAvKiBUcnVlIGlmIEhJR0ggcmFu Z2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUKICAgICAgIHN1 YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRl ZC4gICovCiAgCi1AQCAtNzc2LDcgKzc4MCw2IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC03Nzcs NyArNzgxLDYgQEAgc3RydWN0IG1haW5fdHlwZQogICAgICAvKiAqIFVuaW9uIG1lbWJlciB1c2Vk IGZvciByYW5nZSB0eXBlcy4gICovCiAgCiAgICAgIHN0cnVjdCByYW5nZV9ib3VuZHMgKmJvdW5k czsKQEAgLTk2Miw3ICs5NjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIv Z2RidHlwZXMuaAogICAgfSBmbGRzX2JuZHM7CiAgCiAgICAvKiAqIFNsb3QgdG8gcG9pbnQgdG8g YWRkaXRpb25hbCBsYW5ndWFnZS1zcGVjaWZpYyBmaWVsZHMgb2YgdGhpcwotQEAgLTEzMjksNiAr MTMzMiwxNSBAQCBleHRlcm4gYm9vbCBzZXRfdHlwZV9hbGlnbiAoc3RydWN0IHR5cGUgKiwgVUxP TkdFU1QpOworQEAgLTEzMzAsNiArMTMzMywxNSBAQCBleHRlcm4gYm9vbCBzZXRfdHlwZV9hbGln biAoc3RydWN0IHR5cGUgKiwgVUxPTkdFU1QpOwogICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5 cGUpLT5oaWdoLmtpbmQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX0tJTkQocmFuZ2VfdHlwZSkg XAogICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cua2luZApAQCAtOTc4LDcgKzk3 OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgCiAg LyogUHJvcGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KICAj ZGVmaW5lIFRZUEVfREFUQV9MT0NBVElPTih0aGlzdHlwZSkgXAotQEAgLTEzNjMsNiArMTM3NSw5 IEBAIGV4dGVybiBib29sIHNldF90eXBlX2FsaWduIChzdHJ1Y3QgdHlwZSAqLCBVTE9OR0VTVCk7 CitAQCAtMTM2NCw2ICsxMzc2LDkgQEAgZXh0ZXJuIGJvb2wgc2V0X3R5cGVfYWxpZ24gKHN0cnVj dCB0eXBlICosIFVMT05HRVNUKTsKICAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVf SU5ERVhfVFlQRShhcnJheXR5cGUpKQogICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9J U19VTkRFRklORUQoYXJyYXl0eXBlKSBcCiAgICAgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZ UEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQpAQCAtOTg4LDcgKzk4OCw3IEBAIGRpZmYgLS1naXQg YS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgCiAgI2RlZmluZSBUWVBFX0FSUkFZ X1VQUEVSX0JPVU5EX1ZBTFVFKGFycmF5dHlwZSkgXAogICAgIChUWVBFX0hJR0hfQk9VTkQoVFlQ RV9JTkRFWF9UWVBFKChhcnJheXR5cGUpKSkpCi1AQCAtMTg5Miw2ICsxOTA3LDcgQEAgZXh0ZXJu IHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZQorQEAgLTE4OTksNiAr MTkxNCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJp ZGUKICAgICBzdHJ1Y3QgZHluYW1pY19wcm9wICosIHVuc2lnbmVkIGludCk7CiAgCiAgZXh0ZXJu IHN0cnVjdCB0eXBlICpjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5 cGUgKiwKQEAgLTk5OSw3ICs5OTksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9n ZGIvZ2RidHlwZXMuaAogZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKIC0t LSBhL2dkYi9wYXJzZS5jCiArKysgYi9nZGIvcGFyc2UuYwotQEAgLTk4OSwyNCArOTg5LDIwIEBA IG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIs IGludCBlbmRwb3MsCitAQCAtOTg4LDI0ICs5ODgsMjAgQEAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5k YXJkIChjb25zdCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgaW50IGVuZHBvcywKICAKICAgICAg Y2FzZSBPUF9SQU5HRToKICAgICAgICBvcGxlbiA9IDM7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwogZGlmZiAtLWdpdCBhL2dkYi9y dXN0LWV4cC55IGIvZ2RiL3J1c3QtZXhwLnkKIC0tLSBhL2dkYi9ydXN0LWV4cC55CiArKysgYi9n ZGIvcnVzdC1leHAueQotQEAgLTI0NzgsMjQgKzI0NzgsMjggQEAgY29udmVydF9hc3RfdG9fZXhw cmVzc2lvbiAoc3RydWN0IHBhcnNlcl9zdGF0ZSAqc3RhdGUsCitAQCAtMjQ3NSwyNCArMjQ3NSwy OCBAQCBydXN0X3BhcnNlcjo6Y29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoY29uc3Qgc3RydWN0 IHJ1c3Rfb3AgKm9wZXJhdGlvbiwKICAKICAgICAgY2FzZSBPUF9SQU5HRToKICAgICAgICB7CkBA IC0xMDQ3LDEzICsxMDQ3LDEzIEBAIGRpZmYgLS1naXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9y dXN0LWV4cC55CiAgCiAgCWlmIChvcGVyYXRpb24tPmxlZnQub3AgIT0gTlVMTCkKICAJICB7Ci0g CSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0aW9uLT5sZWZ0Lm9w LCB0b3ApOworIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAob3BlcmF0aW9uLT5sZWZ0 Lm9wLCB0b3ApOwogLQkgICAga2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKICsJICAgIGtpbmQg PSBTVUJBUlJBWV9MT1dfQk9VTkQ7CiAgCSAgfQogIAlpZiAob3BlcmF0aW9uLT5yaWdodC5vcCAh PSBOVUxMKQogIAkgIHsKLSAJICAgIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKHN0YXRlLCBv cGVyYXRpb24tPnJpZ2h0Lm9wLCB0b3ApOworIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lv biAob3BlcmF0aW9uLT5yaWdodC5vcCwgdG9wKTsKIC0JICAgIGlmIChraW5kID09IEJPVEhfQk9V TkRfREVGQVVMVCkKIC0JICAgICAga2luZCA9IChvcGVyYXRpb24tPmluY2x1c2l2ZQogLQkJICAg ICAgPyBMT1dfQk9VTkRfREVGQVVMVCA6IExPV19CT1VORF9ERUZBVUxUX0VYQ0xVU0lWRSk7CkBA IC0xMDc4LDcgKzEwNzgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtZXhwLnkgYi9nZGIvcnVz dC1leHAueQogZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwog LS0tIGEvZ2RiL3J1c3QtbGFuZy5jCiArKysgYi9nZGIvcnVzdC1sYW5nLmMKLUBAIC0xMTQ5LDEz ICsxMTQ5LDExIEBAIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LCBlbnVtIG5vc2lkZSBub3NpZGUpCitAQCAtMTE4MSwxMyArMTE4MSwxMSBAQCBydXN0X3Jhbmdl IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQog ICAga2luZCA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbKnBv cyArIDFdLmxvbmdjb25zdCk7CiAgICAqcG9zICs9IDM7CiAgCkBAIC0xMDk1LDcgKzEwOTUsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5jCiAgCiAgICBp ZiAobm9zaWRlID09IEVWQUxfU0tJUCkKICAgICAgcmV0dXJuIHZhbHVlX2Zyb21fbG9uZ2VzdCAo YnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5idWlsdGluX2ludCwgMSk7Ci1AQCAtMTI0NCw3 ICsxMjQyLDcgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0 IHZhbHVlICpyYW5nZSwKK0BAIC0xMjc2LDcgKzEyNzQsNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2Ug KHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAogIAogICAgKmxvdyA9IDA7 CiAgICAqaGlnaCA9IDA7CkBAIC0xMTA0LDcgKzExMDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3J1 c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5jCiAgCiAgICBpZiAoVFlQRV9ORklFTERTICh0eXBl KSA9PSAwKQogICAgICByZXR1cm47Ci1AQCAtMTI1MiwxNSArMTI1MCwxNCBAQCBydXN0X2NvbXB1 dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorQEAgLTEy ODQsMTUgKzEyODIsMTQgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHZhbHVlICpyYW5nZSwKICAgIGkgPSAwOwogICAgaWYgKHN0cmNtcCAoVFlQRV9GSUVM RF9OQU1FICh0eXBlLCAwKSwgInN0YXJ0IikgPT0gMCkKICAgICAgewpAQCAtMTEyMiw3ICsxMTIy LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwogICAg ICAgICpoaWdoID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCBpKSk7CiAgCiAg ICAgICAgaWYgKHJ1c3RfaW5jbHVzaXZlX3JhbmdlX3R5cGVfcCAodHlwZSkpCi1AQCAtMTI3OCw3 ICsxMjc1LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAq cG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCitAQCAtMTMxMCw3ICsxMzA3LDcgQEAgcnVzdF9zdWJz Y3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3Np ZGUsCiAgICBzdHJ1Y3QgdHlwZSAqcmhzdHlwZTsKICAgIExPTkdFU1QgbG93LCBoaWdoX2JvdW5k OwogICAgLyogSW5pdGlhbGl6ZWQgdG8gYXBwZWFzZSB0aGUgY29tcGlsZXIuICAqLwpAQCAtMTEz MSw3ICsxMTMxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxh bmcuYwogICAgTE9OR0VTVCBoaWdoID0gMDsKICAgIGludCB3YW50X3NsaWNlID0gMDsKICAKLUBA IC0xMzc2LDcgKzEzNzMsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKK0BAIC0xNDA4LDcgKzE0MDUsNyBAQCBy dXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9z aWRlIG5vc2lkZSwKICAJZXJyb3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUi KSk7CiAgCiAgICAgICAgaWYgKHdhbnRfc2xpY2UKQEAgLTExNDAsNyArMTE0MCw3IEBAIGRpZmYg LS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMKICAJbG93ID0gbG93X2Jv dW5kOwogICAgICAgIGlmIChsb3cgPCAwKQogIAllcnJvciAoXygiSW5kZXggbGVzcyB0aGFuIHpl cm8iKSk7Ci1AQCAtMTM5NCw3ICsxMzkxLDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCitAQCAtMTQyNiw3ICsx NDIzLDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LCBlbnVtIG5vc2lkZSBub3NpZGUsCiAgCSAgQ09SRV9BRERSIGFkZHI7CiAgCSAgc3RydWN0IHZh bHVlICphZGRydmFsLCAqdGVtOwogIApAQCAtMTc2MSw3ICsxNzYxLDcgQEAgZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLmYKIGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5j CiAtLS0gYS9nZGIvdmFsYXJpdGguYwogKysrIGIvZ2RiL3ZhbGFyaXRoLmMKLUBAIC0xODcsMTAg KzE4NywxNiBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKQorQEAgLTE4NywxMSArMTg3LDE3IEBAIHZh bHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRl eCwgaW50IGxvd2VyYm91bmQpCiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBj aGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CiAgICBVTE9OR0VT VCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7CkBAIC0xNzc0LDE2ICsx Nzc0LDE3IEBAIGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiAr ICBlbHNlCiArICAgIGVsdF9vZmZzICo9IGVsdF9zaXplOwogIAotICAgaWYgKGluZGV4IDwgbG93 ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90 eXBlKQotLQkJCSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5 cGUpKSkKLSsJCQkgICAgICYmIGFicyAoZWx0X29mZnMpID49IHR5cGVfbGVuZ3RoX3VuaXRzIChh cnJheV90eXBlKSkpCisgICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kCisgICAgICAgfHwgKCFUWVBF X0FSUkFZX1VQUEVSX0JPVU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKKy0gICAgICAgICAg JiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKQorKyAgICAgICAg ICAmJiBhYnMgKGVsdF9vZmZzKSA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpCisg ICAgICAgfHwgKFZBTFVFX0xWQUwgKGFycmF5KSAhPSBsdmFsX21lbW9yeQorICAgICAgICAgICAm JiBUWVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkpKQogICAg ICB7Ci0gICAgICAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKGFycmF5X3R5cGUpKQotICAgICAg ICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgKHZlY3RvciBub3QgYXNzb2NpYXRl ZCkiKSk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCiAtLS0gYS9n ZGIvdmFsb3BzLmMKICsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTM4MDgsNTYgKzM4MDgsMTk1IEBA IHZhbHVlX29mX3RoaXNfc2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZykK K0BAIC0zODA3LDU2ICszODA3LDE5NSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3Ry dWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCiAgCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9zbGlj ZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQoKZGlmZiAt LWdpdCBhL2dkYi12bGEtaW50ZWwtZm9ydHJhbi12bGEtc3RyaW5ncy5wYXRjaCBiL2dkYi12bGEt aW50ZWwtZm9ydHJhbi12bGEtc3RyaW5ncy5wYXRjaAppbmRleCA4YzE1MTIxLi4xNjQ2YmQzIDEw MDY0NAotLS0gYS9nZGItdmxhLWludGVsLWZvcnRyYW4tdmxhLXN0cmluZ3MucGF0Y2gKKysrIGIv Z2RiLXZsYS1pbnRlbC1mb3J0cmFuLXZsYS1zdHJpbmdzLnBhdGNoCkBAIC0zMyw3ICszMyw3IEBA IGdpdCBkaWZmIC0tc3RhdCAtcCBnZGIvbWFzdGVyLi4uZ2RiL3VzZXJzL2JoZWNrZWwvZm9ydHJh bi12bGEtc3RyaW5ncwogZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKIC0tLSBhL2dk Yi9ORVdTCiArKysgYi9nZGIvTkVXUwotQEAgLTEwNiw2ICsxMDYsOCBAQCBTSC01L1NINjQgcnVu bmluZyBPcGVuQlNEIAlTSC01L1NINjQgc3VwcG9ydCBpbiBzaCotKi1vcGVuYnNkKgorQEAgLTIw Myw2ICsyMDMsOCBAQCBTSC01L1NINjQgcnVubmluZyBPcGVuQlNEIAlTSC01L1NINjQgc3VwcG9y dCBpbiBzaCotKi1vcGVuYnNkKgogIAogICoqKiBDaGFuZ2VzIGluIEdEQiA4LjEKICAKQEAgLTc3 LDcgKzc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jLXZhbHByaW50LmMgYi9nZGIvYy12YWxwcmlu dC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKIC0t LSBhL2dkYi9kd2FyZjJyZWFkLmMKICsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNzg5LDcg KzE3ODksOCBAQCBzdGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IHNpZ25h dHVyZWRfdHlwZSAqKTsKK0BAIC0xNzk5LDcgKzE3OTksOCBAQCBzdGF0aWMgdm9pZCByZWFkX3Np Z25hdHVyZWRfdHlwZSAoc3RydWN0IHNpZ25hdHVyZWRfdHlwZSAqKTsKICAKICBzdGF0aWMgaW50 IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogIAkJ CQkgc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LApAQCAtODcsNyAr ODcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMK ICAKICAvKiBtZW1vcnkgYWxsb2NhdGlvbiBpbnRlcmZhY2UgKi8KICAKLUBAIC0xMzY0OCw3ICsx MzY0OSw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTEzNzQ4LDcgKzEzNzQ5LDcgQEAgcmVhZF9mdW5jX3Njb3BlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIHsKICAgICAg ICBuZXdvYmotPnN0YXRpY19saW5rCiAgCT0gWE9CTkVXICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0 YWNrLCBzdHJ1Y3QgZHluYW1pY19wcm9wKTsKQEAgLTk1LDggKzk1LDggQEAgZGlmZiAtLWdpdCBh L2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgYXR0cl90b19keW5h bWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmssIE5VTEwsIDApOwog ICAgICB9CiAgCi0gICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1ib2xzOwotQEAgLTE2 MzEzLDcgKzE2MzE0LDggQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBjdS0+bGlzdF9pbl9zY29wZSA9IGN1LT5idWlsZGVy LT5nZXRfbG9jYWxfc3ltYm9scyAoKTsKK0BAIC0xNjQ2OCw3ICsxNjQ2OSw4IEBAIHJlYWRfYXJy YXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAog ICAgICAgIGJ5dGVfc3RyaWRlX3Byb3AKICAJPSAoc3RydWN0IGR5bmFtaWNfcHJvcCAqKSBhbGxv Y2EgKHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgIGlm ICghc3RyaWRlX29rKQogIAl7CiAgCSAgY29tcGxhaW50IChfKCJ1bmFibGUgdG8gcmVhZCBhcnJh eSBEV19BVF9ieXRlX3N0cmlkZSAiCi1AQCAtMTcwNzQsMjkgKzE3MDc2LDkwIEBAIHJlYWRfdGFn X3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMTcyMjksMjkgKzE3MjMxLDkwIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5 cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHI7CkBAIC0xNTAsNyArMTUwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJy ZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiArCQkgICBvcGVyYW5kLiAgKi8KICsJCURXX09QX2Rl cmVmX3NpemUsCiArCQkvKiBPcGVyYW5kIGZvciBEV19PUF9kZXJlZl9zaXplLiAgKi8KLSsJCURX X1VOU05EKGJ5dGVfc2l6ZSkgfTsKKysJCShnZGJfYnl0ZSkgRFdfVU5TTkQoYnl0ZV9zaXplKSB9 OwogKwogKwkgICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm aGlnaCwgYXBwZW5kX29wcywKICsJCQkJCSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkKQEAgLTIw OCw3ICsyMDgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJy ZWFkLmMKICAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5n dWFnZV9kZWZuLCBnZGJhcmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEws IGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7CiAgCi1AQCAtMTc0NDQsNyArMTc1MDcsOCBAQCByZWFk X2Jhc2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTE3NTk5LDcgKzE3NjYyLDggQEAgcmVhZF9iYXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICBzdGF0aWMgaW50CiAgYXR0cl90b19keW5h bWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAq ZGllLApAQCAtMjE4LDcgKzIxOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIv Z2RiL2R3YXJmMnJlYWQuYwogIHsKICAgIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJh dG9uOwogICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2sKLUBAIC0xNzQ1NSwxNCArMTc1MTksMzMg QEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0 cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTE3NjEwLDE0ICsxNzY3NCwzMyBAQCBhdHRyX3RvX2R5 bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZv ICpkaWUsCiAgCiAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICAgICAgewpAQCAt MjU2LDcgKzI1Niw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJm MnJlYWQuYwogICAgICB9CiAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfcmVmIChhdHRyKSkKICAg ICAgewotQEAgLTE3NDk1LDggKzE3NTc4LDI4IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25z dCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC0xNzY1 MCw4ICsxNzczMywyOCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJp YnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgCQliYXRvbiA9IFhPQk5FVyAob2Jz dGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+cmVmZXJlbmNl ZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQliYXRvbi0+bG9j ZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwpAQCAtMjg3LDcgKzI4Nyw3IEBAIGRpZmYgLS1naXQg YS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogIAkJcHJvcC0+ZGF0YS5iYXRv biA9IGJhdG9uOwogIAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAJCWdkYl9hc3NlcnQg KHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTc2MDcsNyArMTc3MTAsNyBAQCByZWFk X3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC0xNzc2Miw3ICsxNzg2NSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7CiAgICBpZiAoYXR0cikKQEAgLTI5Niw3 ICsyOTYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFk LmMKICAgICAgICAgIGNvbXBsYWludCAoXygiTWlzc2luZyBEV19BVF9ieXRlX3N0cmlkZSAiCiAg CQkgICAgICItIERJRSBhdCAweCVzIFtpbiBtb2R1bGUgJXNdIiksCiAgCQkgICBzZWN0X29mZnNl dF9zdHIgKGRpZS0+c2VjdF9vZmYpLAotQEAgLTE3NjE1LDcgKzE3NzE4LDcgQEAgcmVhZF9zdWJy YW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtMTc3NzAsNyArMTc4NzMsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAo ZGllLCBEV19BVF9sb3dlcl9ib3VuZCwgY3UpOwogICAgaWYgKGF0dHIpCkBAIC0zMDUsMjAgKzMw NSwyMCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMK ICAgIGVsc2UgaWYgKCFsb3dfZGVmYXVsdF9pc192YWxpZCkKICAgICAgY29tcGxhaW50IChfKCJN aXNzaW5nIERXX0FUX2xvd2VyX2JvdW5kICIKICAJCQkJICAgICAgIi0gRElFIGF0ICVzIFtpbiBt b2R1bGUgJXNdIiksCi1AQCAtMTc2MjMsMTAgKzE3NzI2LDEwIEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAkgICAgICAg b2JqZmlsZV9uYW1lIChjdS0+cGVyX2N1LT5kd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGUpKTsK K0BAIC0xNzc3OSwxMCArMTc4ODIsMTAgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCi0gICBhdHRyID0gZHdhcmYyX2F0 dHIgKGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKKyAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHJfdWIsICphdHRyX2NvdW50OworICAgYXR0ciA9IGF0dHJfdWIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF91cHBlcl9ib3VuZCwgY3UpOwogLSAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAo YXR0ciwgZGllLCBjdSwgJmhpZ2gpKQogKyAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0 ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQogICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJm Ml9hdHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7CisgICAgICAgYXR0ciA9IGF0dHJfY291bnQg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOwogLSAgICAgIGlmIChhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQogKyAgICAgIGlmIChhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQogIAl7CiAgCSAg LyogSWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4g ICovCiAgCSAgaWYgKGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5raW5kID09IFBST1Bf Q09OU1QpCi1AQCAtMjUxMjcsNyArMjUyMzAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt MjUzMzcsNyArMjU0NDAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBjdSk7CiAgICBpZiAoYXR0cl9mb3JtX2lzX2Js b2NrIChhdHRyKSkKICAgICAgewpAQCAtMzI3LDcgKzMyNyw3IEBAIGRpZmYgLS1naXQgYS9nZGIv ZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgICAgYWRkX2R5bl9wcm9wIChE WU5fUFJPUF9BTExPQ0FURUQsIHByb3AsIHR5cGUpOwogICAgICB9CiAgICBlbHNlIGlmIChhdHRy ICE9IE5VTEwpCi1AQCAtMjUxNDEsNyArMjUyNDQsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtMjUzNTEsNyArMjU0NTQsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOwogICAgaWYgKGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikpCiAgICAgIHsKQEAgLTMzNiw3ICszMzYsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICAgIGFkZF9keW5fcHJv cCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSk7CiAgICAgIH0KICAgIGVsc2UgaWYg KGF0dHIgIT0gTlVMTCkKLUBAIC0yNTE1Myw3ICsyNTI1Niw3IEBAIHNldF9kaWVfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC0yNTM2Myw3ICsyNTQ2Niw3IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIC8q IFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLwogICAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKQEAgLTUwMCw3ICs1 MDAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2YtdHlwZXByaW50LmMgYi9nZGIvZi10eXBlcHJpbnQu YwogZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKIC0tLSBhL2dk Yi9nZGJ0eXBlcy5jCiArKysgYi9nZGIvZ2RidHlwZXMuYwotQEAgLTE5MDQsNyArMTkwNCw4IEBA IGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2 ZWwpCitAQCAtMTkxMyw3ICsxOTEzLDggQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKICAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0 eXBlKTsKICAKICAgIC8qIFdlIG9ubHkgd2FudCB0byByZWNvZ25pemUgcmVmZXJlbmNlcyBhdCB0 aGUgb3V0ZXJtb3N0IGxldmVsLiAgKi8KQEAgLTUxMCw3ICs1MTAsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogICAgICB0eXBlID0gY2hlY2tfdHlwZWRl ZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOwogIAogICAgLyogVHlwZXMgdGhhdCBoYXZlIGEg ZHluYW1pYyBUWVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKLUBAIC0xOTM4LDYgKzE5 MzksNyBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg dG9wX2xldmVsKQorQEAgLTE5NDcsNiArMTk0OCw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5h bCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCiAgICAgICAgfQogIAogICAgICBj YXNlIFRZUEVfQ09ERV9BUlJBWToKQEAgLTUxOCw3ICs1MTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2Ri L2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogICAgICAgIHsKICAJZ2RiX2Fzc2VydCAoVFlQ RV9ORklFTERTICh0eXBlKSA9PSAxKTsKICAKLUBAIC0yMDU2LDcgKzIwNTgsOCBAQCByZXNvbHZl X2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTIwNjUsNyArMjA2Nyw4IEBA IHJlc29sdmVfZHluYW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICBzdHJ1Y3QgZHlu YW1pY19wcm9wICpwcm9wOwogICAgdW5zaWduZWQgaW50IGJpdF9zdHJpZGUgPSAwOwogIApAQCAt NTI4LDcgKzUyOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBl cy5jCiAgCiAgICB0eXBlID0gY29weV90eXBlICh0eXBlKTsKICAKLUBAIC0yMDgxLDExICsyMDg0 LDE1IEBAIHJlc29sdmVfZHluYW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMjA5 MCwxMSArMjA5MywxNSBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl LAogIAogICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGVsdF90 eXBlKSk7CiAgCkBAIC01NDUsNyArNTQ1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5j IGIvZ2RiL2dkYnR5cGVzLmMKICAgIHByb3AgPSBnZXRfZHluX3Byb3AgKERZTl9QUk9QX0JZVEVf U1RSSURFLCB0eXBlKTsKICAgIGlmIChwcm9wICE9IE5VTEwpCiAgICAgIHsKLUBAIC0yMjQwLDYg KzIyNDcsMjggQEAgcmVzb2x2ZV9keW5hbWljX3N0cnVjdCAoc3RydWN0IHR5cGUgKnR5cGUsCitA QCAtMjI0OSw2ICsyMjU2LDI4IEBAIHJlc29sdmVfZHluYW1pY19zdHJ1Y3QgKHN0cnVjdCB0eXBl ICp0eXBlLAogICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7CiAgfQogIApAQCAtNTc0LDcgKzU3NCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgLyogV29y a2VyIGZvciByZXNvbHZlZF9keW5hbWljX3R5cGUuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlw ZSAqCi1AQCAtMjI4OCw3ICsyMzE3LDEyIEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFs IChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC0yMjk3LDcgKzIzMjYsMTIgQEAgcmVzb2x2ZV9keW5h bWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAogIAkgICAgYnJlYWs7CiAgCSAg fQogIAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoIGIvZ2Ri LXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKaW5kZXggYjIxNzBmNC4uN2I0MjBhYiAxMDA2 NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKKysrIGIvZ2RiLXZsYS1p bnRlbC1zdHJpbmdidC1maXgucGF0Y2gKQEAgLTM4LDcgKzM4LDcgQEAgZGlmZiAtLWdpdCBhL2dk Yi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogICNpbmNsdWRlICJjb21tb24vdW5kZXJs eWluZy5oIgogICNpbmNsdWRlICJjb21tb24vYnl0ZS12ZWN0b3IuaCIKICAKLUBAIC0yMzQ4LDYg KzIzNDksMjAgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCitAQCAtMjM4OCw2ICsyMzg5LDIwIEBAIGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lLAogICAgY3R4LnBlcl9jdSA9IHBlcl9jdTsKICAgIGN0eC5vYmpfYWRk cmVzcyA9IDA7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA0OTk3 ZjBjLi45MThmOWQ5IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTgs MTUgKzE4LDE1IEBACiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVu IEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxODA3MjcKKyVnbG9iYWwg c25hcHNyYyAgICAyMDE4MDkxNwogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5z dGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTYxMTE1CiAl Z2xvYmFsIHRhcm5hbWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDguMS45MC4le3NuYXBzcmN9 CitWZXJzaW9uOiA4LjIuNTAuJXtzbmFwc3JjfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250 YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJl YW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2ll cyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDQ1JXs/ZGlzdH0KK1JlbGVh c2U6IDElez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlv bnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQ THYyKyBhbmQgTEdQTHYzKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91 cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0xMDIyLDYgKzEwMjIsMTAgQEAgZmkKICVlbmRp ZgogCiAlY2hhbmdlbG9nCisqIE1vbiBTZXAgMTcgMjAxOCBTZXJnaW8gRHVyaWdhbiBKdW5pb3Ig PHNlcmdpb2RqQHJlZGhhdC5jb20+IC0gOC4yLjUwLjIwMTgwOTE3LTEuZmMzMAorLSBSZWJhc2Ug dG8gRlNGIEdEQiA4LjIuNTAuMjAxODA5MTcgKDguM3ByZSkuCistIEFkZCAnZ2RiLXJoYno3OTU0 MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaCcuCisKICogVHVlIEF1ZyAyMSAyMDE4IFNlcmdpbyBE dXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4gLSA4LjEuOTAuMjAxODA3MjctNDUu ZmMzMAogLSBFbmFibGUgdmVyYm9zZSBvdXRwdXQgd2hlbiBydW5uaW5nICJtYWtlIi4KIAoKZGlm ZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDVkOGI4NTMuLmMxN2ZmN2QgMTAwNjQ0 Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwzICsxLDMgQEAKIFNIQTUxMiAoZ2Ri LWxpYnN0ZGMrKy12My1weXRob24tOC4xLjEtMjAxODA2MjYudGFyLnh6KSA9IGE4YjFjNTRkZDM0 OGNmZWIzN2RhNzNmOTY4NzQyODk2YmUzZGQxM2E0MjE1ZjhkODUxOTg3MGMyYWJlYTkxNWY1MTc2 YzNmYTY5ODlkZGQxMGYyMDAyMGExNmYwZmFiMjBjYmFlNjhlZThkNThhODIyMzRkODc3ODAyMzUy MGY4Ci1TSEE1MTIgKGdkYi04LjEuOTAuMjAxODA3MjcudGFyLnh6KSA9IDBmOGU5Y2ZhZWFmOWYy MjM2MWIzYjhkNWQ0OTBkMGE4YmVhM2VlYWFhMGM2ODEzZDVkZjBhNmQ1MjY3ZmYzZjU5Nzc0N2Nj MGU5N2Q3MGM0MTk2ZDc4ZWUzMmUwZTgyZDU4OTMyODNkNzFiNDQ5ZDg5NzAzODkzYmYxYWUwMDE0 CiBTSEE1MTIgKHYyLjAudGFyLmd6KSA9IGVjNjMxNTFlODQyYzgxY2M3M2VhMTFiYTU2MGI2M2Uw MDVjZWZiZTE5ZDk4ZGUyNGFlNWM4Y2FhNGRlN2M5YzFkNzFkMWVjNWI2MjE0YTM0NzU5MmVhYzY3 NWI3NWEzZDJiMjZkNDY5MWNhODZmOTEwMjBlYmZlYThlOTEyOTM5CitTSEE1MTIgKGdkYi04LjIu NTAuMjAxODA5MTcudGFyLnh6KSA9IDkyZjA3ZmMwNjJmZjlkN2NiNTY4MzUwN2EyNTZmNjVhZTlk MjliN2Q2MzY4ZDIyZjQ3NDA0MTIwMWMxMjliMWQzZjY4N2YwMmU4OWU1MDlkNWZkOGU5YzA4ZGJj OGJiZjlkOWFhZDU2ZDlkYmRjMmY2ZTJiYWVmMjIzY2M5MGVmCg==