From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v2 9/9] xen: Convert __page_to_mfn and __mfn_to_page to use typesafe MFN Date: Thu, 5 Oct 2017 18:42:22 +0100 Message-ID: <20171005174222.29161-10-julien.grall@linaro.org> References: <20171005174222.29161-1-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171005174222.29161-1-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Jun Nakajima , Kevin Tian , Stefano Stabellini , Wei Liu , Suravee Suthikulpanit , Razvan Cojocaru , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Julien Grall , Ian Jackson , Tim Deegan , Julien Grall , Tamas K Lengyel , Jan Beulich , Shane Wang , Boris Ostrovsky , Gang Wei , Paul Durrant List-Id: xen-devel@lists.xenproject.org TW9zdCBvZiB0aGUgdXNlcnMgb2YgcGFnZV90b19tZm4gYW5kIG1mbl90b19wYWdlIGFyZSBlaXRo ZXIgb3ZlcnJpZGluZwp0aGUgbWFjcm9zIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3Qgb3Ig dXNlIG1mbl94L19tZm4gYmVjYXVzZSB0aGUKcmVzdCBvZiB0aGUgZnVuY3Rpb24gdXNlIG1mbl90 LgoKU28gbWFrZSBfX3BhZ2VfdG9fbWZuIGFuZCBfX21mbl90b19wYWdlIHJldHVybiBtZm5fdCBi eSBkZWZhdWx0LgoKT25seSByZWFzb25hYmxlIGNsZWFuLXVwcyBhcmUgZG9uZSBpbiB0aGlzIHBh dGNoIGJlY2F1c2UgaXQgaXMKYWxyZWFkeSBxdWl0ZSBiaWcuIFNvIHNvbWUgb2YgdGhlIGZpbGVz IG5vdyBvdmVycmlkZSBwYWdlX3RvX21mbiBhbmQKbWZuX3RvX3BhZ2UgdG8gYXZvaWQgdXNpbmcg bWZuX3QuCgpMYXN0bHksIGRvbWFpbl9wYWdlX3RvX21mbiBpcyBhbHNvIGNvbnZlcnRlZCB0byB1 c2UgbWZuX3QgZ2l2ZW4gdGhhdAptb3N0IG9mIHRoZSBjYWxsZXJzIGFyZSBub3cgc3dpdGNoZWQg dG8gX21mbihkb21haW5fcGFnZV90b19tZm4oLi4uKSkuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4g R3JhbGwgPGp1bGllbi5ncmFsbEBsaW5hcm8ub3JnPgoKLS0tCgpBbmRyZXcgc3VnZ2VzdGVkIHRv IGRyb3AgSVNfVkFMSURfUEFHRSBpbiB4ZW4vdG1lbV94ZW4uaC4gSGlzIGNvbW1lbnQKd2FzOgoK Ii9zaWdoICBUaGlzIGlzIHRhdXRvbG9naWNhbC4gIFRoZSBkZWZpbml0aW9uIG9mIGEgInZhbGlk IG1mbiIgaW4gdGhpcwpjYXNlIGlzIG9uZSBmb3Igd2hpY2ggd2UgaGF2ZSBmcmFtZXRhYmxlIGVu dHJ5LCBhbmQgYnkgaGF2aW5nIGEgc3RydWN0CnBhZ2VfaW5mbyBpbiBvdXIgaGFuZHMsIHRoaXMg aXMgYnkgZGVmaW5pdGlvbiB0cnVlICh1bmxlc3MgeW91IGhhdmUgYQp3aWxkIHBvaW50ZXIsIGF0 IHdoaWNoIHBvaW50IHlvdXIgYnVnIGlzIGVsc2V3aGVyZSkuCgpJU19WQUxJRF9QQUdFKCkgaXMg b25seSBldmVyIHVzZWQgaW4gYXNzZXJ0aW9ucyBhbmQgbmV2ZXIgdXNlZnVsbHksIHNvCmluc3Rl YWQgSSB3b3VsZCByZW1vdmUgaXQgZW50aXJlbHkgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGZpeCBp dCB1cC4iCgpJIGNhbiByZW1vdmUgdGhlIGZ1bmN0aW9uIGluIGEgc2VwYXJhdGUgcGF0Y2ggYXQg dGhlIGJlZ2luaW5nIG9mIHRoZQpzZXJpZXMgaWYgS29ucmFkIChUTUVNIG1haW50YWluZXIpIGlz IGhhcHB5IHdpdGggdGhhdC4KCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtl cm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAg PEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3Nv bkBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzog S29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogVGltIERl ZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzog UmF6dmFuIENvam9jYXJ1IDxyY29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPgpDYzogVGFtYXMgSyBM ZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29tPgpDYzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJh bnRAY2l0cml4LmNvbT4KQ2M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNs ZS5jb20+CkNjOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBh bWQuY29tPgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpDYzogS2V2 aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2Uu ZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBHYW5nIFdlaSA8Z2FuZy53ZWlAaW50ZWwuY29tPgpD YzogU2hhbmUgV2FuZyA8c2hhbmUud2FuZ0BpbnRlbC5jb20+CgogICAgQ2hhbmdlcyBpbiB2MjoK ICAgICAgICAtIFNvbWUgcGFydCBoYXZlIGJlZW4gbW92ZWQgaW4gc2VwYXJhdGUgcGF0Y2gKICAg ICAgICAtIFJlbW92ZSBvbmUgc3B1cmlvdXMgY29tbWVudAogICAgICAgIC0gQ29udmVydCBkb21h aW5fcGFnZV90b19tZm4gdG8gdXNlIG1mbl90Ci0tLQogeGVuL2FyY2gvYXJtL2RvbWFpbl9idWls ZC5jICAgICAgICAgICAgIHwgIDIgLS0KIHhlbi9hcmNoL2FybS9rZXJuZWwuYyAgICAgICAgICAg ICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5jICAgICAgICAgICAgICAg fCAgMiArLQogeGVuL2FyY2gvYXJtL21tLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysr Ky0tLS0KIHhlbi9hcmNoL2FybS9wMm0uYyAgICAgICAgICAgICAgICAgICAgICB8ICA4ICstLS0t LS0tCiB4ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYyAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiB4 ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICAgICAgfCAyMSArKysrKysrKysrKy0t LS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jICAgICAgICAgICAgICB8ICA2ICsr Ky0tLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhl bi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94 ODYvaHZtL2RvbTBfYnVpbGQuYyAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9o dm0vaHZtLmMgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tCiB4ZW4vYXJjaC94 ODYvaHZtL2lvcmVxLmMgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9o dm0vc3RkdmdhLmMgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9z dm0uYyAgICAgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMg ICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAgICAg ICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAgICAgICAgICAg fCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMgICAgICAgICAgICAg fCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2 IC0tLS0tLQogeGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYyAgICAgICAgICAgIHwgIDYgKysr LS0tCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYyAgICAgICAgfCAgMiArLQogeGVu L2FyY2gveDg2L21tL2hhcC9oYXAuYyAgICAgICAgICAgICAgIHwgIDYgLS0tLS0tCiB4ZW4vYXJj aC94ODYvbW0vaGFwL25lc3RlZF9lcHQuYyAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21t L21lbV9zaGFyaW5nLmMgICAgICAgICAgIHwgIDUgLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0t ZXB0LmMgICAgICAgICAgICAgICB8ICA0ICsrKysKIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMg ICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAg ICAgICAgICAgIHwgIDYgLS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMgICAgICAgICAg ICAgICAgfCAgNiAtLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvcHJpdmF0ZS5oICAgICAg ICB8IDE2ICsrLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9udW1hLmMgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvcGh5c2Rldi5jICAgICAgICAgICAgICAgICAg fCAgMiArLQogeGVuL2FyY2gveDg2L3B2L2NhbGxiYWNrLmMgICAgICAgICAgICAgIHwgIDYgLS0t LS0tCiB4ZW4vYXJjaC94ODYvcHYvZGVzY3JpcHRvci10YWJsZXMuYyAgICAgfCAxMCAtLS0tLS0t LS0tCiB4ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jICAgICAgICAgICAgfCAgNiArKysrKysK IHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVu L2FyY2gveDg2L3B2L2VtdWwtZ2F0ZS1vcC5jICAgICAgICAgIHwgIDYgLS0tLS0tCiB4ZW4vYXJj aC94ODYvcHYvZW11bC1wcml2LW9wLmMgICAgICAgICAgfCAxMCAtLS0tLS0tLS0tCiB4ZW4vYXJj aC94ODYvcHYvZ3JhbnRfdGFibGUuYyAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9hcmNoL3g4 Ni9wdi9tbS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvcHYvcm8t cGFnZS1mYXVsdC5jICAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMg ICAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2FyY2gveDg2L3Rib290LmMgICAgICAg ICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyAgICAgICAgICAgICAgICB8 ICA2ICsrKysrKwogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgICAgICAgICAgIHwgIDQg KystLQogeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jICAgICAgICAgICAgICAgIHwgIDYgKysrKysr CiB4ZW4vY29tbW9uL2tpbWFnZS5jICAgICAgICAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhl bi9jb21tb24vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKysrKwogeGVuL2Nv bW1vbi9wYWdlX2FsbG9jLmMgICAgICAgICAgICAgICAgIHwgIDYgKysrKysrCiB4ZW4vY29tbW9u L3RtZW0uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2NvbW1vbi90bWVtX3hl bi5jICAgICAgICAgICAgICAgICAgIHwgIDQgLS0tLQogeGVuL2NvbW1vbi90cmFjZS5jICAgICAg ICAgICAgICAgICAgICAgIHwgIDYgKysrKysrCiB4ZW4vY29tbW9uL3ZtYXAuYyAgICAgICAgICAg ICAgICAgICAgICAgfCAgOSArKysrKy0tLS0KIHhlbi9jb21tb24veGVub3Byb2YuYyAgICAgICAg ICAgICAgICAgICB8ICAyIC0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFw LmMgfCAgNiArKysrKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgICAgICB8 ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyAgICAgfCAgMiArLQog eGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrLS0t LS0tLQogeGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCAgICAgICAgICAgICAgIHwgIDQgKystLQog eGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0t CiB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9kb21haW5fcGFnZS5oICAgICAgICAgICB8 ICA4ICsrKystLS0tCiB4ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaCAgICAgICAgICAgICAgfCAg MiArLQogNjUgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMoKyksIDIzNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9h cm0vZG9tYWluX2J1aWxkLmMKaW5kZXggMTY3NzExYjRmYS4uYTZiNDcxZTJmNiAxMDA2NDQKLS0t IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5f YnVpbGQuYwpAQCAtNTAsOCArNTAsNiBAQCBzdHJ1Y3QgbWFwX3JhbmdlX2RhdGEKIC8qIE92ZXJy aWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAq LwogI3VuZGVmIHZpcnRfdG9fbWZuCiAjZGVmaW5lIHZpcnRfdG9fbWZuKHZhKSBfbWZuKF9fdmly dF90b19tZm4odmEpKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKHBn KSBfbWZuKF9fcGFnZV90b19tZm4ocGcpKQogCiAvLyNkZWZpbmUgREVCVUdfMTFfQUxMT0NBVElP TgogI2lmZGVmIERFQlVHXzExX0FMTE9DQVRJT04KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9r ZXJuZWwuYyBiL3hlbi9hcmNoL2FybS9rZXJuZWwuYwppbmRleCA5YzE4M2Y5NmRhLi5mMzkxOTM4 NjQwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0va2VybmVsLmMKKysrIGIveGVuL2FyY2gvYXJt L2tlcm5lbC5jCkBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIF9faW5pdCBpbnQga2VybmVsX2Rl Y29tcHJlc3Moc3RydWN0IGJvb3Rtb2R1bGUgKm1vZCkKICAgICAgICAgaW91bm1hcChpbnB1dCk7 CiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIH0KLSAgICBtZm4gPSBfbWZuKHBhZ2VfdG9f bWZuKHBhZ2VzKSk7CisgICAgbWZuID0gcGFnZV90b19tZm4ocGFnZXMpOwogICAgIG91dHB1dCA9 IF9fdm1hcCgmbWZuLCAxIDw8IGtlcm5lbF9vcmRlcl9vdXQsIDEsIDEsIFBBR0VfSFlQRVJWSVNP UiwgVk1BUF9ERUZBVUxUKTsKIAogICAgIHJjID0gcGVyZm9ybV9ndW56aXAob3V0cHV0LCBpbnB1 dCwgc2l6ZSk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5jIGIveGVuL2Fy Y2gvYXJtL21lbV9hY2Nlc3MuYwppbmRleCAwZjJjYmI4MWQzLi4xMTJlMjkxY2JhIDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5jCisrKyBiL3hlbi9hcmNoL2FybS9tZW1fYWNj ZXNzLmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBwMm1fbWVtX2FjY2Vzc19jaGVja19hbmRfZ2V0X3Bh Z2UodmFkZHJfdCBndmEsIHVuc2lnbmVkIGxvbmcgZmxhZywKICAgICBpZiAoIHQgIT0gcDJtX3Jh bV9ydyApCiAgICAgICAgIGdvdG8gZXJyOwogCi0gICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbl94 KG1mbikpOworICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwogCiAgICAgaWYgKCB1bmxpa2Vs eSghZ2V0X3BhZ2UocGFnZSwgdi0+ZG9tYWluKSkgKQogICAgICAgICBwYWdlID0gTlVMTDsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9tbS5jIGIveGVuL2FyY2gvYXJtL21tLmMKaW5kZXggOWEz N2YyOWNlNi4uZWJjZTIzMjBlYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL21tLmMKKysrIGIv eGVuL2FyY2gvYXJtL21tLmMKQEAgLTQ3Nyw3ICs0NzcsNyBAQCB2b2lkIHVubWFwX2RvbWFpbl9w YWdlKGNvbnN0IHZvaWQgKnZhKQogICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAot dW5zaWduZWQgbG9uZyBkb21haW5fcGFnZV9tYXBfdG9fbWZuKGNvbnN0IHZvaWQgKnB0cikKK21m bl90IGRvbWFpbl9wYWdlX21hcF90b19tZm4oY29uc3Qgdm9pZCAqcHRyKQogewogICAgIHVuc2ln bmVkIGxvbmcgdmEgPSAodW5zaWduZWQgbG9uZylwdHI7CiAgICAgbHBhZV90ICptYXAgPSB0aGlz X2NwdSh4ZW5fZG9tbWFwKTsKQEAgLTQ4NSwxMiArNDg1LDEyIEBAIHVuc2lnbmVkIGxvbmcgZG9t YWluX3BhZ2VfbWFwX3RvX21mbihjb25zdCB2b2lkICpwdHIpCiAgICAgdW5zaWduZWQgbG9uZyBv ZmZzZXQgPSAodmE+PlRISVJEX1NISUZUKSAmIExQQUVfRU5UUllfTUFTSzsKIAogICAgIGlmICgg dmEgPj0gVk1BUF9WSVJUX1NUQVJUICYmIHZhIDwgVk1BUF9WSVJUX0VORCApCi0gICAgICAgIHJl dHVybiBfX3ZpcnRfdG9fbWZuKHZhKTsKKyAgICAgICAgcmV0dXJuIHZpcnRfdG9fbWZuKHZhKTsK IAogICAgIEFTU0VSVChzbG90ID49IDAgJiYgc2xvdCA8IERPTUhFQVBfRU5UUklFUyk7CiAgICAg QVNTRVJUKG1hcFtzbG90XS5wdC5hdmFpbCAhPSAwKTsKIAotICAgIHJldHVybiBtYXBbc2xvdF0u cHQuYmFzZSArIG9mZnNldDsKKyAgICByZXR1cm4gX21mbihtYXBbc2xvdF0ucHQuYmFzZSArIG9m ZnNldCk7CiB9CiAjZW5kaWYKIApAQCAtMTI4Niw3ICsxMjg2LDcgQEAgaW50IHhlbm1lbV9hZGRf dG9fcGh5c21hcF9vbmUoCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQog Ci0gICAgICAgIG1mbiA9IF9tZm4ocGFnZV90b19tZm4ocGFnZSkpOworICAgICAgICBtZm4gPSBw YWdlX3RvX21mbihwYWdlKTsKICAgICAgICAgdCA9IHAybV9tYXBfZm9yZWlnbjsKIAogICAgICAg ICByY3VfdW5sb2NrX2RvbWFpbihvZCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMg Yi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggMDQxMGIxZTg2Yi4uMWU3YTBjNmM0MCAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtMzgs MTIgKzM4LDYgQEAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IG1heF92bWlkID0g TUFYX1ZNSURfOF9CSVQ7CiAKICNkZWZpbmUgUDJNX1JPT1RfUEFHRVMgICAgKDE8PFAyTV9ST09U X09SREVSKQogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vbW0uaCB0byBtYWtlIHRoZW0g d29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3Bh Z2UobWZuKSBfX21mbl90b19wYWdlKG1mbl94KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNk ZWZpbmUgcGFnZV90b19tZm4ocGcpIF9tZm4oX19wYWdlX3RvX21mbihwZykpCi0KIHVuc2lnbmVk IGludCBfX3JlYWRfbW9zdGx5IHAybV9pcGFfYml0czsKIAogLyogSGVscGVycyB0byBsb29rdXAg dGhlIHByb3BlcnRpZXMgb2YgZWFjaCBsZXZlbCAqLwpAQCAtOTgsNyArOTIsNyBAQCB2b2lkIGR1 bXBfcDJtX2xvb2t1cChzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IGFkZHIpCiAgICAgcHJpbnRr KCJkb20lZCBJUEEgMHglIlBSSXBhZGRyIlxuIiwgZC0+ZG9tYWluX2lkLCBhZGRyKTsKIAogICAg IHByaW50aygiUDJNIEAgJXAgbWZuOjB4JWx4XG4iLAotICAgICAgICAgICBwMm0tPnJvb3QsIF9f cGFnZV90b19tZm4ocDJtLT5yb290KSk7CisgICAgICAgICAgIHAybS0+cm9vdCwgbWZuX3gocGFn ZV90b19tZm4ocDJtLT5yb290KSkpOwogCiAgICAgZHVtcF9wdF93YWxrKHBhZ2VfdG9fbWFkZHIo cDJtLT5yb290KSwgYWRkciwKICAgICAgICAgICAgICAgICAgUDJNX1JPT1RfTEVWRUwsIFAyTV9S T09UX1BBR0VTKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jIGIveGVuL2Fy Y2gveDg2L2NwdS92cG11LmMKaW5kZXggZmQyZmNhY2MyNi4uMzc2ZTgwYjZjNyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2NwdS92cG11LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS92cG11LmMK QEAgLTY1Nyw3ICs2NTcsNyBAQCBzdGF0aWMgdm9pZCBwdnBtdV9maW5pc2goc3RydWN0IGRvbWFp biAqZCwgeGVuX3BtdV9wYXJhbXNfdCAqcGFyYW1zKQogewogICAgIHN0cnVjdCB2Y3B1ICp2Owog ICAgIHN0cnVjdCB2cG11X3N0cnVjdCAqdnBtdTsKLSAgICB1aW50NjRfdCBtZm47CisgICAgbWZu X3QgbWZuOwogICAgIHZvaWQgKnhlbnBtdV9kYXRhOwogCiAgICAgaWYgKCAocGFyYW1zLT52Y3B1 ID49IGQtPm1heF92Y3B1cykgfHwgKGQtPnZjcHVbcGFyYW1zLT52Y3B1XSA9PSBOVUxMKSApCkBA IC02NzksNyArNjc5LDcgQEAgc3RhdGljIHZvaWQgcHZwbXVfZmluaXNoKHN0cnVjdCBkb21haW4g KmQsIHhlbl9wbXVfcGFyYW1zX3QgKnBhcmFtcykKICAgICBpZiAoIHhlbnBtdV9kYXRhICkKICAg ICB7CiAgICAgICAgIG1mbiA9IGRvbWFpbl9wYWdlX21hcF90b19tZm4oeGVucG11X2RhdGEpOwot ICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKF9tZm4obWZuKSkpOworICAgICAgICBBU1NFUlQobWZu X3ZhbGlkKG1mbikpOwogICAgICAgICB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoeGVucG11X2Rh dGEpOwogICAgICAgICBwdXRfcGFnZV9hbmRfdHlwZShtZm5fdG9fcGFnZShtZm4pKTsKICAgICB9 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWlu LmMKaW5kZXggYmIxZmZhMzIyMi4uMzk1ZWY2MTQ1YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMTg2LDcgKzE4Niw3IEBA IHZvaWQgZHVtcF9wYWdlZnJhbWVfaW5mbyhzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByaW50aygiICAgIERvbVBhZ2UgJXA6 IGNhZj0lMDhseCwgdGFmPSUiIFBSdHlwZV9pbmZvICJcbiIsCi0gICAgICAgICAgICAgICAgICAg X3AocGFnZV90b19tZm4ocGFnZSkpLAorICAgICAgICAgICAgICAgICAgIF9wKG1mbl94KHBhZ2Vf dG9fbWZuKHBhZ2UpKSksCiAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y291bnRfaW5mbywgcGFn ZS0+dS5pbnVzZS50eXBlX2luZm8pOwogICAgICAgICB9CiAgICAgICAgIHNwaW5fdW5sb2NrKCZk LT5wYWdlX2FsbG9jX2xvY2spOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgZHVtcF9wYWdlZnJh bWVfaW5mbyhzdHJ1Y3QgZG9tYWluICpkKQogICAgIHBhZ2VfbGlzdF9mb3JfZWFjaCAoIHBhZ2Us ICZkLT54ZW5wYWdlX2xpc3QgKQogICAgIHsKICAgICAgICAgcHJpbnRrKCIgICAgWGVuUGFnZSAl cDogY2FmPSUwOGx4LCB0YWY9JSIgUFJ0eXBlX2luZm8gIlxuIiwKLSAgICAgICAgICAgICAgIF9w KHBhZ2VfdG9fbWZuKHBhZ2UpKSwKKyAgICAgICAgICAgICAgIF9wKG1mbl94KHBhZ2VfdG9fbWZu KHBhZ2UpKSksCiAgICAgICAgICAgICAgICBwYWdlLT5jb3VudF9pbmZvLCBwYWdlLT51LmludXNl LnR5cGVfaW5mbyk7CiAgICAgfQogICAgIHNwaW5fdW5sb2NrKCZkLT5wYWdlX2FsbG9jX2xvY2sp OwpAQCAtNjIxLDcgKzYyMSw4IEBAIGludCBhcmNoX2RvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVjdCBk b21haW4gKmQpCiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IHZpcnRfdG9fcGFnZShkLT5z aGFyZWRfaW5mbyksICpuZXdfcGFnZTsKICAgICBpbnQgcmV0ID0gMDsKICAgICBzdHJ1Y3QgZG9t YWluICpvd25lcjsKLSAgICB1bnNpZ25lZCBsb25nIG1mbiwgZ2ZuOworICAgIG1mbl90IG1mbjsK KyAgICB1bnNpZ25lZCBsb25nIGdmbjsKICAgICBwMm1fdHlwZV90IHAybXQ7CiAgICAgdW5zaWdu ZWQgaW50IGk7CiAKQEAgLTY1NSw3ICs2NTYsNyBAQCBpbnQgYXJjaF9kb21haW5fc29mdF9yZXNl dChzdHJ1Y3QgZG9tYWluICpkKQogICAgIEFTU0VSVCggb3duZXIgPT0gZCApOwogCiAgICAgbWZu ID0gcGFnZV90b19tZm4ocGFnZSk7Ci0gICAgZ2ZuID0gbWZuX3RvX2dtZm4oZCwgbWZuKTsKKyAg ICBnZm4gPSBtZm5fdG9fZ21mbihkLCBtZm5feChtZm4pKTsKIAogICAgIC8qCiAgICAgICogZ2Zu ID09IElOVkFMSURfR0ZOIGluZGljYXRlcyB0aGF0IHRoZSBzaGFyZWRfaW5mbyBwYWdlIHdhcyBu ZXZlciBtYXBwZWQKQEAgLTY2NCw3ICs2NjUsNyBAQCBpbnQgYXJjaF9kb21haW5fc29mdF9yZXNl dChzdHJ1Y3QgZG9tYWluICpkKQogICAgIGlmICggZ2ZuID09IGdmbl94KElOVkFMSURfR0ZOKSAp CiAgICAgICAgIGdvdG8gZXhpdF9wdXRfcGFnZTsKIAotICAgIGlmICggbWZuX3goZ2V0X2dmbl9x dWVyeShkLCBnZm4sICZwMm10KSkgIT0gbWZuICkKKyAgICBpZiAoICFtZm5fZXEoZ2V0X2dmbl9x dWVyeShkLCBnZm4sICZwMm10KSwgbWZuKSApCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9H X0dfRVJSICJGYWlsZWQgdG8gZ2V0IERvbSVkJ3Mgc2hhcmVkX2luZm8gR0ZOICglbHgpXG4iLAog ICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4pOwpAQCAtNjgxLDcgKzY4Miw3IEBAIGlu dCBhcmNoX2RvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIGdvdG8g ZXhpdF9wdXRfZ2ZuOwogICAgIH0KIAotICAgIHJldCA9IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3Bh Z2UoZCwgX2dmbihnZm4pLCBfbWZuKG1mbiksIFBBR0VfT1JERVJfNEspOworICAgIHJldCA9IGd1 ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBtZm4sIFBBR0VfT1JERVJfNEsp OwogICAgIGlmICggcmV0ICkKICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIkZh aWxlZCB0byByZW1vdmUgRG9tJWQncyBzaGFyZWRfaW5mbyBmcmFtZSAlbHhcbiIsCkBAIC02OTAs NyArNjkxLDcgQEAgaW50IGFyY2hfZG9tYWluX3NvZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkK ICAgICAgICAgZ290byBleGl0X3B1dF9nZm47CiAgICAgfQogCi0gICAgcmV0ID0gZ3Vlc3RfcGh5 c21hcF9hZGRfcGFnZShkLCBfZ2ZuKGdmbiksIF9tZm4ocGFnZV90b19tZm4obmV3X3BhZ2UpKSwK KyAgICByZXQgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIF9nZm4oZ2ZuKSwgcGFnZV90b19t Zm4obmV3X3BhZ2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9PUkRF Ul80Syk7CiAgICAgaWYgKCByZXQgKQogICAgIHsKQEAgLTk4OCw3ICs5ODksNyBAQCBpbnQgYXJj aF9zZXRfaW5mb19ndWVzdCgKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IGlmICggKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzaykgPT0KICAgICAg ICAgICAgICAgICAgICAgICAgICBQR1RfbDRfcGFnZV90YWJsZSApCi0gICAgICAgICAgICAgICAg ICAgICAgICBkb25lID0gIWZpbGxfcm9fbXB0KF9tZm4ocGFnZV90b19tZm4ocGFnZSkpKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPSAhZmlsbF9yb19tcHQocGFnZV90b19tZm4ocGFn ZSkpOwogCiAgICAgICAgICAgICAgICAgICAgIHBhZ2VfdW5sb2NrKHBhZ2UpOwogICAgICAgICAg ICAgICAgIH0KQEAgLTExMTQsNyArMTExNSw3IEBAIGludCBhcmNoX3NldF9pbmZvX2d1ZXN0KAog ICAgICAgICBsNF9wZ2VudHJ5X3QgKmw0dGFiOwogCiAgICAgICAgIGw0dGFiID0gbWFwX2RvbWFp bl9wYWdlKF9tZm4ocGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5ndWVzdF90YWJsZSkpKTsKLSAg ICAgICAgKmw0dGFiID0gbDRlX2Zyb21fcGZuKHBhZ2VfdG9fbWZuKGNyM19wYWdlKSwKKyAgICAg ICAgKmw0dGFiID0gbDRlX2Zyb21fcGZuKG1mbl94KHBhZ2VfdG9fbWZuKGNyM19wYWdlKSksCiAg ICAgICAgICAgICBfUEFHRV9QUkVTRU5UfF9QQUdFX1JXfF9QQUdFX1VTRVJ8X1BBR0VfQUNDRVNT RUQpOwogICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsNHRhYik7CiAgICAgfQpAQCAtMTk0MSw3 ICsxOTQyLDcgQEAgaW50IGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNlcyhzdHJ1Y3QgZG9tYWlu ICpkKQogICAgICAgICBpZiAoIGQtPmFyY2gucGlycV9lb2lfbWFwICE9IE5VTEwgKQogICAgICAg ICB7CiAgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoZC0+YXJjaC5waXJxX2Vv aV9tYXApOwotICAgICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUobWZuX3RvX3BhZ2UoZC0+YXJj aC5waXJxX2VvaV9tYXBfbWZuKSk7CisgICAgICAgICAgICBwdXRfcGFnZV9hbmRfdHlwZShtZm5f dG9fcGFnZShfbWZuKGQtPmFyY2gucGlycV9lb2lfbWFwX21mbikpKTsKICAgICAgICAgICAgIGQt PmFyY2gucGlycV9lb2lfbWFwID0gTlVMTDsKICAgICAgICAgICAgIGQtPmFyY2guYXV0b191bm1h c2sgPSAwOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2Uu YyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IDM0MzJhODU0ZGQuLjg4MDQ2YjM5 YzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9kb21haW5fcGFnZS5jCkBAIC0zMzEsMTMgKzMzMSwxMyBAQCB2b2lkIHVubWFwX2RvbWFp bl9wYWdlX2dsb2JhbChjb25zdCB2b2lkICpwdHIpCiB9CiAKIC8qIFRyYW5zbGF0ZSBhIG1hcC1k b21haW4tcGFnZSdkIGFkZHJlc3MgdG8gdGhlIHVuZGVybHlpbmcgTUZOICovCi11bnNpZ25lZCBs b25nIGRvbWFpbl9wYWdlX21hcF90b19tZm4oY29uc3Qgdm9pZCAqcHRyKQorbWZuX3QgZG9tYWlu X3BhZ2VfbWFwX3RvX21mbihjb25zdCB2b2lkICpwdHIpCiB7CiAgICAgdW5zaWduZWQgbG9uZyB2 YSA9ICh1bnNpZ25lZCBsb25nKXB0cjsKICAgICBjb25zdCBsMV9wZ2VudHJ5X3QgKnBsMWU7CiAK ICAgICBpZiAoIHZhID49IERJUkVDVE1BUF9WSVJUX1NUQVJUICkKLSAgICAgICAgcmV0dXJuIHZp cnRfdG9fbWZuKHB0cik7CisgICAgICAgIHJldHVybiBfbWZuKHZpcnRfdG9fbWZuKHB0cikpOwog CiAgICAgaWYgKCB2YSA+PSBWTUFQX1ZJUlRfU1RBUlQgJiYgdmEgPCBWTUFQX1ZJUlRfRU5EICkK ICAgICB7CkBAIC0zNTAsNSArMzUwLDUgQEAgdW5zaWduZWQgbG9uZyBkb21haW5fcGFnZV9tYXBf dG9fbWZuKGNvbnN0IHZvaWQgKnB0cikKICAgICAgICAgcGwxZSA9ICZfX2xpbmVhcl9sMV90YWJs ZVtsMV9saW5lYXJfb2Zmc2V0KHZhKV07CiAgICAgfQogCi0gICAgcmV0dXJuIGwxZV9nZXRfcGZu KCpwbDFlKTsKKyAgICByZXR1cm4gbDFlX2dldF9tZm4oKnBsMWUpOwogfQpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4IDU0MGJh MDg5ZDcuLjkyOTJhZTUxMTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysg Yi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTQyOSw3ICs0MjksNyBAQCBsb25nIGFyY2hfZG9f ZG9tY3RsKAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIGkgPj0gbWF4X3BmbnMgKQogICAg ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7 CisgICAgICAgICAgICBtZm4gPSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7CiAgICAgICAgICAg ICBpZiAoIGNvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KGRvbWN0bC0+dS5nZXRtZW1saXN0LmJ1ZmZlciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgJm1mbiwgMSkgKQogICAg ICAgICAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gv eDg2L2h2bS9kbS5jCmluZGV4IDljZjUzYjU1MWMuLjFhODNmMjdjMGIgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTIxOSw3 ICsyMTksNyBAQCBzdGF0aWMgaW50IG1vZGlmaWVkX21lbW9yeShzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIHBmbiwgTlVMTCwgUDJNX1VO U0hBUkUpOwogICAgICAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICBtZm5fdCBnbWZuID0gX21mbihwYWdlX3RvX21mbihwYWdlKSk7CisgICAgICAgICAg ICAgICAgbWZuX3QgZ21mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCiAgICAgICAgICAgICAgICAg cGFnaW5nX21hcmtfZGlydHkoZCwgZ21mbik7CiAgICAgICAgICAgICAgICAgLyoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L2h2bS9kb20w X2J1aWxkLmMKaW5kZXggZThmNzQ2YzcwYi4uNzc4OWY2ZTU3MSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9kb20wX2J1aWxkLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxk LmMKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwdmhfcG9wdWxhdGVfbWVt b3J5X3JhbmdlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg ICAgfQogCi0gICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBfZ2ZuKHN0YXJ0 KSwgX21mbihwYWdlX3RvX21mbihwYWdlKSksCisgICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9h ZGRfcGFnZShkLCBfZ2ZuKHN0YXJ0KSwgcGFnZV90b19tZm4ocGFnZSksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcmRlcik7CiAgICAgICAgIGlmICggcmMgIT0gMCApCiAg ICAgICAgIHsKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwdmhfc2V0dXBf dm14X3JlYWxtb2RlX2hlbHBlcnMoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiAgICAgd3JpdGVf MzJiaXRfcHNlX2lkZW50bWFwKGlkZW50X3B0KTsKICAgICB1bm1hcF9kb21haW5fcGFnZShpZGVu dF9wdCk7Ci0gICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UobWZuX3gobWZuKSkpOworICAgIHB1dF9w YWdlKG1mbl90b19wYWdlKG1mbikpOwogICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZN X1BBUkFNX0lERU5UX1BUXSA9IGdhZGRyOwogICAgIGlmICggcHZoX2FkZF9tZW1fcmFuZ2UoZCwg Z2FkZHIsIGdhZGRyICsgUEFHRV9TSVpFLCBFODIwX1JFU0VSVkVEKSApCiAgICAgICAgICAgICBw cmludGsoIlVuYWJsZSB0byBzZXQgaWRlbnRpdHkgcGFnZSB0YWJsZXMgYXMgcmVzZXJ2ZWQgaW4g dGhlIG1lbW9yeSBtYXBcbiIpOwpAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyB2b2lkIF9faW5p dCBwdmhfc3RlYWxfbG93X3JhbShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHN0YXJ0 LAogCiAgICAgZm9yICggbWZuID0gc3RhcnQ7IG1mbiA8IHN0YXJ0ICsgbnJfcGFnZXM7IG1mbisr ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnID0gbWZuX3RvX3BhZ2UobWZu KTsKKyAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcgPSBtZm5fdG9fcGFnZShfbWZuKG1mbikp OwogICAgICAgICBpbnQgcmM7CiAKICAgICAgICAgcmMgPSB1bnNoYXJlX3hlbl9wYWdlX3dpdGhf Z3Vlc3QocGcsIGRvbV9pbyk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAyMDViNGNiNjg1Li5kYzdhMDE4ZDFkIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKQEAgLTIyMTEsNyArMjIxMSw3IEBAIGludCBodm1fc2V0X2NyMCh1bnNpZ25lZCBsb25nIHZh bHVlLCBib29sX3QgbWF5X2RlZmVyKQogICAgICAgICAgICAgdi0+YXJjaC5ndWVzdF90YWJsZSA9 IHBhZ2V0YWJsZV9mcm9tX3BhZ2UocGFnZSk7CiAKICAgICAgICAgICAgIEhWTV9EQkdfTE9HKERC R19MRVZFTF9WTU1VLCAiVXBkYXRlIENSMyB2YWx1ZSA9ICVseCwgbWZuID0gJWx4IiwKLSAgICAg ICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbM10sIHBhZ2VfdG9f bWZuKHBhZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbM10sIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CiAgICAgICAgIH0KICAgICB9CiAg ICAgZWxzZSBpZiAoICEodmFsdWUgJiBYODZfQ1IwX1BHKSAmJiAob2xkX3ZhbHVlICYgWDg2X0NS MF9QRykgKQpAQCAtMjU0Niw3ICsyNTQ2LDcgQEAgc3RhdGljIHZvaWQgKl9odm1fbWFwX2d1ZXN0 X2ZyYW1lKHVuc2lnbmVkIGxvbmcgZ2ZuLCBib29sX3QgcGVybWFuZW50LAogICAgICAgICBpZiAo IHVubGlrZWx5KHAybV9pc19kaXNjYXJkX3dyaXRlKHAybXQpKSApCiAgICAgICAgICAgICAqd3Jp dGFibGUgPSAwOwogICAgICAgICBlbHNlIGlmICggIXBlcm1hbmVudCApCi0gICAgICAgICAgICBw YWdpbmdfbWFya19kaXJ0eShkLCBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CisgICAgICAgICAg ICBwYWdpbmdfbWFya19kaXJ0eShkLCBwYWdlX3RvX21mbihwYWdlKSk7CiAgICAgfQogCiAgICAg aWYgKCAhcGVybWFuZW50ICkKQEAgLTI1ODgsNyArMjU4OCw3IEBAIHZvaWQgKmh2bV9tYXBfZ3Vl c3RfZnJhbWVfcm8odW5zaWduZWQgbG9uZyBnZm4sIGJvb2xfdCBwZXJtYW5lbnQpCiAKIHZvaWQg aHZtX3VubWFwX2d1ZXN0X2ZyYW1lKHZvaWQgKnAsIGJvb2xfdCBwZXJtYW5lbnQpCiB7Ci0gICAg dW5zaWduZWQgbG9uZyBtZm47CisgICAgbWZuX3QgbWZuOwogICAgIHN0cnVjdCBwYWdlX2luZm8g KnBhZ2U7CiAKICAgICBpZiAoICFwICkKQEAgLTI2MDksNyArMjYwOSw3IEBAIHZvaWQgaHZtX3Vu bWFwX2d1ZXN0X2ZyYW1lKHZvaWQgKnAsIGJvb2xfdCBwZXJtYW5lbnQpCiAgICAgICAgIGxpc3Rf Zm9yX2VhY2hfZW50cnkodHJhY2ssICZkLT5hcmNoLmh2bV9kb21haW4ud3JpdGVfbWFwLmxpc3Qs IGxpc3QpCiAgICAgICAgICAgICBpZiAoIHRyYWNrLT5wYWdlID09IHBhZ2UgKQogICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIF9tZm4obWZuKSk7Cisg ICAgICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgbWZuKTsKICAgICAgICAgICAgICAg ICBsaXN0X2RlbCgmdHJhY2stPmxpc3QpOwogICAgICAgICAgICAgICAgIHhmcmVlKHRyYWNrKTsK ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2MjYsNyArMjYyNiw3IEBAIHZvaWQgaHZtX21h cHBlZF9ndWVzdF9mcmFtZXNfbWFya19kaXJ0eShzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgc3Bp bl9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4ud3JpdGVfbWFwLmxvY2spOwogICAgIGxpc3RfZm9y X2VhY2hfZW50cnkodHJhY2ssICZkLT5hcmNoLmh2bV9kb21haW4ud3JpdGVfbWFwLmxpc3QsIGxp c3QpCi0gICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIF9tZm4ocGFnZV90b19tZm4odHJhY2st PnBhZ2UpKSk7CisgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIHBhZ2VfdG9fbWZuKHRyYWNr LT5wYWdlKSk7CiAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi53cml0ZV9tYXAu bG9jayk7CiB9CiAKQEAgLTMyMDEsNyArMzIwMSw3IEBAIHN0YXRpYyBlbnVtIGh2bV90cmFuc2xh dGlvbl9yZXN1bHQgX19odm1fY29weSgKICAgICAgICAgICAgICAgICBpZiAoIHhjaGcoJmxhc3Rw YWdlLCBnZm5feChnZm4pKSAhPSBnZm5feChnZm4pICkKICAgICAgICAgICAgICAgICAgICAgZHBy aW50ayhYRU5MT0dfR19ERUJVRywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXB2IGF0 dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgZ2ZuICUjbHggKG1mbj0lI2x4KVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2LCBnZm5feChnZm4pLCBwYWdlX3RvX21mbihwYWdlKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwgZ2ZuX3goZ2ZuKSwgbWZuX3gocGFnZV90 b19tZm4ocGFnZSkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgIHsKQEAgLTMyMDksNyArMzIwOSw3IEBAIHN0YXRpYyBlbnVtIGh2bV90cmFuc2xhdGlvbl9y ZXN1bHQgX19odm1fY29weSgKICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHAsIGJ1ZiwgY291 bnQpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KHAs IDAsIGNvdW50KTsKLSAgICAgICAgICAgICAgICBwYWdpbmdfbWFya19kaXJ0eSh2LT5kb21haW4s IF9tZm4ocGFnZV90b19tZm4ocGFnZSkpKTsKKyAgICAgICAgICAgICAgICBwYWdpbmdfbWFya19k aXJ0eSh2LT5kb21haW4sIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKICAgICAgICAgICAgIH0KICAgICAg ICAgfQogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKaW5kZXggZjJlMGIzZjc0YS4uNWJkNWNkNzg4ZSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vaW9yZXEuYwpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyB2b2lkIGh2bV9yZW1vdmVfaW9y ZXFfZ2ZuKAogICAgIHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9y cCkKIHsKICAgICBpZiAoIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihpb3JwLT5n Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKHBhZ2VfdG9fbWZu KGlvcnAtPnBhZ2UpKSwgMCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YWdlX3RvX21mbihpb3JwLT5wYWdlKSwgMCkgKQogICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAg ICAgY2xlYXJfcGFnZShpb3JwLT52YSk7CiB9CkBAIC0yODEsOSArMjgxLDkgQEAgc3RhdGljIGlu dCBodm1fYWRkX2lvcmVxX2dmbigKICAgICBjbGVhcl9wYWdlKGlvcnAtPnZhKTsKIAogICAgIHJj ID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBfZ2ZuKGlvcnAtPmdmbiksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9tZm4ocGFnZV90b19tZm4oaW9ycC0+cGFnZSkpLCAwKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV90b19tZm4oaW9ycC0+cGFnZSks IDApOwogICAgIGlmICggcmMgPT0gMCApCi0gICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIF9t Zm4ocGFnZV90b19tZm4oaW9ycC0+cGFnZSkpKTsKKyAgICAgICAgcGFnaW5nX21hcmtfZGlydHko ZCwgcGFnZV90b19tZm4oaW9ycC0+cGFnZSkpOwogCiAgICAgcmV0dXJuIHJjOwogfQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3Rkdmdh LmMKaW5kZXggMDg4ZmJkZjhjZS4uOTI1YmFiMjQzOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9zdGR2Z2EuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBAIC01OTAsNyAr NTkwLDcgQEAgdm9pZCBzdGR2Z2FfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBpZiAo IHBnID09IE5VTEwgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHMtPnZyYW1fcGFnZVtp XSA9IHBnOwotICAgICAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKHBhZ2VfdG9fbWZuKHBnKSkp OworICAgICAgICBjbGVhcl9kb21haW5fcGFnZShwYWdlX3RvX21mbihwZykpOwogICAgIH0KIAog ICAgIGlmICggaSA9PSBBUlJBWV9TSVpFKHMtPnZyYW1fcGFnZSkgKQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRl eCBiOWNmNDIzZmQ5Li5mNTBmOTMxNTk4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2 bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMTUyMSw3ICsxNTIx LDcgQEAgc3RhdGljIGludCBzdm1fY3B1X3VwX3ByZXBhcmUodW5zaWduZWQgaW50IGNwdSkKICAg ICAgICAgaWYgKCAhcGcgKQogICAgICAgICAgICAgZ290byBlcnI7CiAKLSAgICAgICAgY2xlYXJf ZG9tYWluX3BhZ2UoX21mbihwYWdlX3RvX21mbihwZykpKTsKKyAgICAgICAgY2xlYXJfZG9tYWlu X3BhZ2UocGFnZV90b19tZm4ocGcpKTsKICAgICAgICAgKnRoaXNfaHNhID0gcGFnZV90b19tYWRk cihwZyk7CiAgICAgfQogCkBAIC0xNTMxLDcgKzE1MzEsNyBAQCBzdGF0aWMgaW50IHN2bV9jcHVf dXBfcHJlcGFyZSh1bnNpZ25lZCBpbnQgY3B1KQogICAgICAgICBpZiAoICFwZyApCiAgICAgICAg ICAgICBnb3RvIGVycjsKIAotICAgICAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKHBhZ2VfdG9f bWZuKHBnKSkpOworICAgICAgICBjbGVhcl9kb21haW5fcGFnZShwYWdlX3RvX21mbihwZykpOwog ICAgICAgICAqdGhpc192bWNiID0gcGFnZV90b19tYWRkcihwZyk7CiAgICAgfQogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zpcmlk aWFuLmMKaW5kZXggZjBmYTU5ZDdkNS4uMDcwNTUxZTFhYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92aXJpZGlhbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwpAQCAt MzU0LDcgKzM1NCw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZV9oeXBlcmNhbGxfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkKQogICAgICAgICBpZiAoIHBhZ2UgKQogICAgICAgICAgICAgcHV0X3BhZ2UocGFn ZSk7CiAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFkIEdNRk4gJSMiUFJJX2dm biIgKE1GTiAlIyJQUklfbWZuIilcbiIsCi0gICAgICAgICAgICAgICAgIGdtZm4sIHBhZ2UgPyBw YWdlX3RvX21mbihwYWdlKSA6IG1mbl94KElOVkFMSURfTUZOKSk7CisgICAgICAgICAgICAgICAg IGdtZm4sIG1mbl94KHBhZ2UgPyBwYWdlX3RvX21mbihwYWdlKSA6IElOVkFMSURfTUZOKSk7CiAg ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgdm9pZCBp bml0aWFsaXplX3ZwX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKIAogIGZhaWw6CiAgICAgZ2Rwcmlu dGsoWEVOTE9HX1dBUk5JTkcsICJCYWQgR01GTiAlIyJQUklfZ2ZuIiAoTUZOICUjIlBSSV9tZm4i KVxuIiwgZ21mbiwKLSAgICAgICAgICAgICBwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBtZm5f eChJTlZBTElEX01GTikpOworICAgICAgICAgICAgIG1mbl94KHBhZ2UgPyBwYWdlX3RvX21mbihw YWdlKSA6IElOVkFMSURfTUZOKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlYXJkb3duX3ZwX2Fzc2lz dChzdHJ1Y3QgdmNwdSAqdikKQEAgLTQ5NCw3ICs0OTQsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVf cmVmZXJlbmNlX3RzYyhzdHJ1Y3QgZG9tYWluICpkLCBib29sX3QgaW5pdGlhbGl6ZSkKICAgICAg ICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICBnZHBy aW50ayhYRU5MT0dfV0FSTklORywgIkJhZCBHTUZOICUjIlBSSV9nZm4iIChNRk4gJSMiUFJJX21m biIpXG4iLAotICAgICAgICAgICAgICAgICBnbWZuLCBwYWdlID8gcGFnZV90b19tZm4ocGFnZSkg OiBtZm5feChJTlZBTElEX01GTikpOworICAgICAgICAgICAgICAgICBnbWZuLCBtZm5feChwYWdl ID8gcGFnZV90b19tZm4ocGFnZSkgOiBJTlZBTElEX01GTikpOwogICAgICAgICByZXR1cm47CiAg ICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgYi94ZW4vYXJj aC94ODYvaHZtL3ZteC92bWNzLmMKaW5kZXggZjYyZmU3ZTIxNy4uNDcxZDIyNDUzOSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZtY3MuYwpAQCAtMTQ0MSw3ICsxNDQxLDcgQEAgaW50IHZteF92Y3B1X2VuYWJsZV9wbWwo c3RydWN0IHZjcHUgKnYpCiAKICAgICB2bXhfdm1jc19lbnRlcih2KTsKIAotICAgIF9fdm13cml0 ZShQTUxfQUREUkVTUywgcGFnZV90b19tZm4odi0+YXJjaC5odm1fdm14LnBtbF9wZykgPDwgUEFH RV9TSElGVCk7CisgICAgX192bXdyaXRlKFBNTF9BRERSRVNTLCBwYWdlX3RvX21hZGRyKHYtPmFy Y2guaHZtX3ZteC5wbWxfcGcpKTsKICAgICBfX3Ztd3JpdGUoR1VFU1RfUE1MX0lOREVYLCBOUl9Q TUxfRU5UUklFUyAtIDEpOwogCiAgICAgdi0+YXJjaC5odm1fdm14LnNlY29uZGFyeV9leGVjX2Nv bnRyb2wgfD0gU0VDT05EQVJZX0VYRUNfRU5BQkxFX1BNTDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggOWNm YTliNjk2NS4uNDBiOTE5MzNiZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14 LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTI5NTEsNyArMjk1MSw3IEBA IGdwX2ZhdWx0Ogogc3RhdGljIGludCB2bXhfYWxsb2NfdmxhcGljX21hcHBpbmcoc3RydWN0IGRv bWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICB1bnNpZ25lZCBsb25n IG1mbjsKKyAgICBtZm5fdCBtZm47CiAKICAgICBpZiAoICFjcHVfaGFzX3ZteF92aXJ0dWFsaXpl X2FwaWNfYWNjZXNzZXMgKQogICAgICAgICByZXR1cm4gMDsKQEAgLTI5NjAsMTAgKzI5NjAsMTAg QEAgc3RhdGljIGludCB2bXhfYWxsb2NfdmxhcGljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkK ICAgICBpZiAoICFwZyApCiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIG1mbiA9IHBhZ2Vf dG9fbWZuKHBnKTsKLSAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKG1mbikpOworICAgIGNsZWFy X2RvbWFpbl9wYWdlKG1mbik7CiAgICAgc2hhcmVfeGVuX3BhZ2Vfd2l0aF9ndWVzdChwZywgZCwg WEVOU0hBUkVfd3JpdGFibGUpOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXguYXBpY19hY2Nl c3NfbWZuID0gbWZuOwotICAgIHNldF9tbWlvX3AybV9lbnRyeShkLCBwYWRkcl90b19wZm4oQVBJ Q19ERUZBVUxUX1BIWVNfQkFTRSksIF9tZm4obWZuKSwKKyAgICBkLT5hcmNoLmh2bV9kb21haW4u dm14LmFwaWNfYWNjZXNzX21mbiA9IG1mbl94KG1mbik7CisgICAgc2V0X21taW9fcDJtX2VudHJ5 KGQsIHBhZGRyX3RvX3BmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSwgbWZuLAogICAgICAgICAg ICAgICAgICAgICAgICBQQUdFX09SREVSXzRLLCBwMm1fZ2V0X2hvc3RwMm0oZCktPmRlZmF1bHRf YWNjZXNzKTsKIAogICAgIHJldHVybiAwOwpAQCAtMjk3NCw3ICsyOTc0LDcgQEAgc3RhdGljIHZv aWQgdm14X2ZyZWVfdmxhcGljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKICAgICB1bnNpZ25l ZCBsb25nIG1mbiA9IGQtPmFyY2guaHZtX2RvbWFpbi52bXguYXBpY19hY2Nlc3NfbWZuOwogCiAg ICAgaWYgKCBtZm4gIT0gMCApCi0gICAgICAgIGZyZWVfc2hhcmVkX2RvbWhlYXBfcGFnZShtZm5f dG9fcGFnZShtZm4pKTsKKyAgICAgICAgZnJlZV9zaGFyZWRfZG9taGVhcF9wYWdlKG1mbl90b19w YWdlKF9tZm4obWZuKSkpOwogfQogCiBzdGF0aWMgdm9pZCB2bXhfaW5zdGFsbF92bGFwaWNfbWFw cGluZyhzdHJ1Y3QgdmNwdSAqdikKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2 bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYwppbmRleCBjZDBlZTBhMzA3Li4zNWY3 Y2RlODFhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS92bXgvdnZteC5jCkBAIC04NCw3ICs4NCw3IEBAIGludCBudm14X3ZjcHVf aW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgfQogICAgICAgICB2LT5hcmNoLmh2 bV92bXgudm1yZWFkX2JpdG1hcCA9IHZtcmVhZF9iaXRtYXA7CiAKLSAgICAgICAgY2xlYXJfZG9t YWluX3BhZ2UoX21mbihwYWdlX3RvX21mbih2bXJlYWRfYml0bWFwKSkpOworICAgICAgICBjbGVh cl9kb21haW5fcGFnZShwYWdlX3RvX21mbih2bXJlYWRfYml0bWFwKSk7CiAKICAgICAgICAgdm13 cml0ZV9iaXRtYXAgPSBhbGxvY19kb21oZWFwX3BhZ2UoTlVMTCwgMCk7CiAgICAgICAgIGlmICgg IXZtd3JpdGVfYml0bWFwICkKQEAgLTE3MDQsNyArMTcwNCw3IEBAIGludCBudm14X2hhbmRsZV92 bXB0cmxkKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAgIG52Y3B1 LT5udl92dm1jeCA9IHZ2bWN4OwogICAgICAgICAgICAgICAgIG52Y3B1LT5udl92dm1jeGFkZHIg PSBncGE7CiAgICAgICAgICAgICAgICAgdi0+YXJjaC5odm1fdm14LnZtY3Nfc2hhZG93X21hZGRy ID0KLSAgICAgICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKGRvbWFpbl9wYWdlX21hcF90b19t Zm4odnZtY3gpKTsKKyAgICAgICAgICAgICAgICAgICAgbWZuX3RvX21hZGRyKGRvbWFpbl9wYWdl X21hcF90b19tZm4odnZtY3gpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgIHsKQEAgLTE3OTAsNyArMTc5MCw3IEBAIGludCBudm14X2hhbmRsZV92bWNsZWFy KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo IHdyaXRhYmxlICkKICAgICAgICAgICAgICAgICBjbGVhcl92dm1jc19sYXVuY2hlZCgmbnZteC0+ bGF1bmNoZWRfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21h aW5fcGFnZV9tYXBfdG9fbWZuKHZ2bWNzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWZuX3goZG9tYWluX3BhZ2VfbWFwX3RvX21mbih2dm1jcykpKTsKICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICByYyA9IFZNRkFJTF9WQUxJRDsKICAgICAgICAgICAg IGh2bV91bm1hcF9ndWVzdF9mcmFtZSh2dm1jcywgMCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IGQ5ZGY1Y2E2OWYuLjM5MDM4NzIzY2Ug MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBA IC0xMjksMTIgKzEyOSw2IEBACiAKICNpbmNsdWRlICJwdi9tbS5oIgogCi0vKiBPdmVycmlkZSBt YWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1 bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShtZm4pIF9fbWZuX3RvX3BhZ2Uo bWZuX3gobWZuKSkKLSN1bmRlZiBwYWdlX3RvX21mbgotI2RlZmluZSBwYWdlX3RvX21mbihwZykg X21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQogLyogTWFwcGluZyBvZiB0aGUgZml4bWFwIHNwYWNl IG5lZWRlZCBlYXJseS4gKi8KIGwxX3BnZW50cnlfdCBfX3NlY3Rpb24oIi5ic3MucGFnZV9hbGln bmVkIikgX19hbGlnbmVkKFBBR0VfU0laRSkKICAgICBsMV9maXhtYXBbTDFfUEFHRVRBQkxFX0VO VFJJRVNdOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYyBiL3hlbi9h cmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMKaW5kZXggNjA1NWZlYzFhZC4uZjY3YWVkYTNkMCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYworKysgYi94ZW4vYXJjaC94ODYv bW0vZ3Vlc3Rfd2Fsay5jCkBAIC00NjksMjAgKzQ2OSwyMCBAQCBndWVzdF93YWxrX3RhYmxlcyhz dHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICBpZiAoIGwzcCApCiAg ICAgewogICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsM3ApOwotICAgICAgICBwdXRfcGFnZSht Zm5fdG9fcGFnZShtZm5feChndy0+bDNtZm4pKSk7CisgICAgICAgIHB1dF9wYWdlKG1mbl90b19w YWdlKGd3LT5sM21mbikpOwogICAgIH0KICNlbmRpZgogI2lmIEdVRVNUX1BBR0lOR19MRVZFTFMg Pj0gMwogICAgIGlmICggbDJwICkKICAgICB7CiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwy cCk7Ci0gICAgICAgIHB1dF9wYWdlKG1mbl90b19wYWdlKG1mbl94KGd3LT5sMm1mbikpKTsKKyAg ICAgICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UoZ3ctPmwybWZuKSk7CiAgICAgfQogI2VuZGlmCiAg ICAgaWYgKCBsMXAgKQogICAgIHsKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDFwKTsKLSAg ICAgICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UobWZuX3goZ3ctPmwxbWZuKSkpOworICAgICAgICBw dXRfcGFnZShtZm5fdG9fcGFnZShndy0+bDFtZm4pKTsKICAgICB9CiAKICAgICByZXR1cm4gd2Fs a19vazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvZ3Vlc3Rfd2Fsay5jIGIveGVu L2FyY2gveDg2L21tL2hhcC9ndWVzdF93YWxrLmMKaW5kZXggYzU1MDAxN2JhNC4uY2IzZjljZWJl NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2hhcC9ndWVzdF93YWxrLmMKKysrIGIveGVu L2FyY2gveDg2L21tL2hhcC9ndWVzdF93YWxrLmMKQEAgLTgzLDcgKzgzLDcgQEAgdW5zaWduZWQg bG9uZyBoYXBfcDJtX2dhX3RvX2dmbihHVUVTVF9QQUdJTkdfTEVWRUxTKSgKICAgICAgICAgKnBm ZWMgJj0gflBGRUNfcGFnZV9wcmVzZW50OwogICAgICAgICBnb3RvIG91dF90d2Vha19wZmVjOwog ICAgIH0KLSAgICB0b3BfbWZuID0gX21mbihwYWdlX3RvX21mbih0b3BfcGFnZSkpOworICAgIHRv cF9tZm4gPSBwYWdlX3RvX21mbih0b3BfcGFnZSk7CiAKICAgICAvKiBNYXAgdGhlIHRvcC1sZXZl bCB0YWJsZSBhbmQgY2FsbCB0aGUgdHJlZS13YWxrZXIgKi8KICAgICBBU1NFUlQobWZuX3ZhbGlk KHRvcF9tZm4pKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4v YXJjaC94ODYvbW0vaGFwL2hhcC5jCmluZGV4IGRjODVlODI4Y2QuLmU0NWMxYTE5MTMgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hh cC9oYXAuYwpAQCAtNDIsMTIgKzQyLDYgQEAKIAogI2luY2x1ZGUgInByaXZhdGUuaCIKIAotLyog T3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1m bl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UoX20pIF9fbWZu X3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9f bWZuKF9wZykgX21mbihfX3BhZ2VfdG9fbWZuKF9wZykpCi0KIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgICAgICAgICBIQVAgVlJBTSBUUkFD S0lORyBTVVBQT1JUICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvbmVz dGVkX2VwdC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfZXB0LmMKaW5kZXggMTRiMWJi MDFlOS4uMTczOGRmNjlmNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRf ZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfZXB0LmMKQEAgLTE3Myw3ICsx NzMsNyBAQCBuZXB0X3dhbGtfdGFibGVzKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGwy Z2EsIGVwdF93YWxrX3QgKmd3KQogICAgICAgICAgICAgZ290byBtYXBfZXJyOwogICAgICAgICBn dy0+bHhlW2x2bF0gPSBseHBbZXB0X2x2bF90YWJsZV9vZmZzZXQobDJnYSwgbHZsKV07CiAgICAg ICAgIHVubWFwX2RvbWFpbl9wYWdlKGx4cCk7Ci0gICAgICAgIHB1dF9wYWdlKG1mbl90b19wYWdl KG1mbl94KGx4bWZuKSkpOworICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZShseG1mbikpOwog CiAgICAgICAgIGlmICggbmVwdF9ub25fcHJlc2VudF9jaGVjayhndy0+bHhlW2x2bF0pICkKICAg ICAgICAgICAgIGdvdG8gbm9uX3ByZXNlbnQ7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0v bWVtX3NoYXJpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCmluZGV4IDZmNGJl OTU1MTUuLjZlY2YwYjI3ZDUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmlu Zy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCkBAIC0xNTIsMTEgKzE1Miw2 IEBAIHN0YXRpYyBpbmxpbmUgc2hyX2hhbmRsZV90IGdldF9uZXh0X2hhbmRsZSh2b2lkKQogI2Rl ZmluZSBtZW1fc2hhcmluZ19lbmFibGVkKGQpIFwKICAgICAoaXNfaHZtX2RvbWFpbihkKSAmJiAo ZCktPmFyY2guaHZtX2RvbWFpbi5tZW1fc2hhcmluZ19lbmFibGVkKQogCi0jdW5kZWYgbWZuX3Rv X3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UoX20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQot I3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKF9wZykgX21mbihfX3BhZ2Vf dG9fbWZuKF9wZykpCi0KIHN0YXRpYyBhdG9taWNfdCBucl9zYXZlZF9tZm5zICAgPSBBVE9NSUNf SU5JVCgwKTsgCiBzdGF0aWMgYXRvbWljX3QgbnJfc2hhcmVkX21mbnMgID0gQVRPTUlDX0lOSVQo MCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLWVwdC5jCmluZGV4IDA1NDgyN2FhODguLjI0ZGUyMDJhMWIgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQu YwpAQCAtMzMsNiArMzMsMTAgQEAKIAogI2luY2x1ZGUgIm1tLWxvY2tzLmgiCiAKKy8qIE92ZXJy aWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gYXZvaWQgdXNpbmcgdHlwZXNhZmUgbWZuX3Qu ICovCisjdW5kZWYgbWZuX3RvX3BhZ2UKKyNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90 b19wYWdlKF9tZm4obWZuKSkKKwogI2RlZmluZSBhdG9taWNfcmVhZF9lcHRfZW50cnkoX19wZXB0 ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgKCAoZXB0X2VudHJ5X3QpIHsg LmVwdGUgPSByZWFkX2F0b21pYygmKF9fcGVwdGUpLT5lcHRlKSB9ICkKIApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L21tL3AybS1wb2QuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMKaW5k ZXggMGE4MTFjY2YyOC4uN2E4ODA3NGMzMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3Ay bS1wb2QuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jCkBAIC0yOSwxMiArMjksNiBA QAogCiAjaW5jbHVkZSAibW0tbG9ja3MuaCIKIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNt L3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3Bh Z2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UoX20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3Vu ZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKF9wZykgX21mbihfX3BhZ2VfdG9f bWZuKF9wZykpCi0KICNkZWZpbmUgc3VwZXJwYWdlX2FsaWduZWQoX3gpICAoKChfeCkmKFNVUEVS UEFHRV9QQUdFUy0xKSk9PTApCiAKIC8qIEVuZm9yY2UgbG9jayBvcmRlcmluZyB3aGVuIGdyYWJi aW5nIHRoZSAiZXh0ZXJuYWwiIHBhZ2VfYWxsb2MgbG9jayAqLwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IDNmYmM1MzdkYTYu LjIxOTRiMzViYzcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4v YXJjaC94ODYvbW0vcDJtLmMKQEAgLTQ3LDEyICs0Nyw2IEBAIGJvb2xfdCBfX2luaXRkYXRhIG9w dF9oYXBfMWdiID0gMSwgX19pbml0ZGF0YSBvcHRfaGFwXzJtYiA9IDE7CiBib29sZWFuX3BhcmFt KCJoYXBfMWdiIiwgb3B0X2hhcF8xZ2IpOwogYm9vbGVhbl9wYXJhbSgiaGFwXzJtYiIsIG9wdF9o YXBfMm1iKTsKIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRo ZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3Rv X3BhZ2UoX20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0j ZGVmaW5lIHBhZ2VfdG9fbWZuKF9wZykgX21mbihfX3BhZ2VfdG9fbWZuKF9wZykpCi0KIERFRklO RV9QRVJDUFVfUldMT0NLX0dMT0JBTChwMm1fcGVyY3B1X3J3bG9jayk7CiAKIC8qIEluaXQgdGhl IGRhdGFzdHJ1Y3R1cmVzIGZvciBsYXRlciB1c2UgYnkgdGhlIHAybSBjb2RlICovCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMgYi94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMK aW5kZXggMWUyYzliYTRjYy4uY2I5NzY0MmNiYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21t L3BhZ2luZy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwpAQCAtNDcsMTIgKzQ3LDYg QEAKIC8qIFBlci1DUFUgdmFyaWFibGUgZm9yIGVuZm9yY2luZyB0aGUgbG9jayBvcmRlcmluZyAq LwogREVGSU5FX1BFUl9DUFUoaW50LCBtbV9sb2NrX2xldmVsKTsKIAotLyogT3ZlcnJpZGUgbWFj cm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5k ZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UoX20pIF9fbWZuX3RvX3BhZ2UobWZu X3goX20pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKF9wZykgX21m bihfX3BhZ2VfdG9fbWZuKF9wZykpCi0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCiAvKiAgICAgICAgICAgICAgTE9HIERJUlRZIFNVUFBPUlQgICAg ICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvcHJpdmF0ZS5oIGIv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmgKaW5kZXggNmEwMzM3MDQwMi4uYjljYzY4 MGY0ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmgKKysrIGIv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmgKQEAgLTMxNSw3ICszMTUsNyBAQCBzdGF0 aWMgaW5saW5lIGludCBwYWdlX2lzX291dF9vZl9zeW5jKHN0cnVjdCBwYWdlX2luZm8gKnApCiAK IHN0YXRpYyBpbmxpbmUgaW50IG1mbl9pc19vdXRfb2Zfc3luYyhtZm5fdCBnbWZuKQogewotICAg IHJldHVybiBwYWdlX2lzX291dF9vZl9zeW5jKG1mbl90b19wYWdlKG1mbl94KGdtZm4pKSk7Cisg ICAgcmV0dXJuIHBhZ2VfaXNfb3V0X29mX3N5bmMobWZuX3RvX3BhZ2UoZ21mbikpOwogfQogCiBz dGF0aWMgaW5saW5lIGludCBwYWdlX29vc19tYXlfd3JpdGUoc3RydWN0IHBhZ2VfaW5mbyAqcCkK QEAgLTMyNiw3ICszMjYsNyBAQCBzdGF0aWMgaW5saW5lIGludCBwYWdlX29vc19tYXlfd3JpdGUo c3RydWN0IHBhZ2VfaW5mbyAqcCkKIAogc3RhdGljIGlubGluZSBpbnQgbWZuX29vc19tYXlfd3Jp dGUobWZuX3QgZ21mbikKIHsKLSAgICByZXR1cm4gcGFnZV9vb3NfbWF5X3dyaXRlKG1mbl90b19w YWdlKG1mbl94KGdtZm4pKSk7CisgICAgcmV0dXJuIHBhZ2Vfb29zX21heV93cml0ZShtZm5fdG9f cGFnZShnbWZuKSk7CiB9CiAjZW5kaWYgLyogKFNIQURPV19PUFRJTUlaQVRJT05TICYgU0hPUFRf T1VUX09GX1NZTkMpICovCiAKQEAgLTQ2NSwxOCArNDY1LDYgQEAgdm9pZCBzaF9yZXNldF9sM191 cF9wb2ludGVycyhzdHJ1Y3QgdmNwdSAqdik7CiAgKiBNRk4vcGFnZS1pbmZvIGhhbmRsaW5nCiAg Ki8KIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29y ayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2Uo X20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5l IHBhZ2VfdG9fbWZuKF9wZykgX21mbihfX3BhZ2VfdG9fbWZuKF9wZykpCi0KLS8qIE92ZXJyaWRl IHBhZ2V0YWJsZV90IDwtPiBzdHJ1Y3QgcGFnZV9pbmZvIGNvbnZlcnNpb25zIHRvIHdvcmsgd2l0 aCBtZm5fdCAqLwotI3VuZGVmIHBhZ2V0YWJsZV9nZXRfcGFnZQotI2RlZmluZSBwYWdldGFibGVf Z2V0X3BhZ2UoeCkgICBtZm5fdG9fcGFnZShwYWdldGFibGVfZ2V0X21mbih4KSkKLSN1bmRlZiBw YWdldGFibGVfZnJvbV9wYWdlCi0jZGVmaW5lIHBhZ2V0YWJsZV9mcm9tX3BhZ2UocGcpIHBhZ2V0 YWJsZV9mcm9tX21mbihwYWdlX3RvX21mbihwZykpCi0KICNkZWZpbmUgYmFja3BvaW50ZXIoc3Ap IF9tZm4ocGR4X3RvX3BmbigodW5zaWduZWQgbG9uZykoc3ApLT52LnNoLmJhY2spKQogc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nIF9fYmFja3BvaW50ZXIoY29uc3Qgc3RydWN0IHBhZ2VfaW5m byAqc3ApCiB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbnVtYS5jIGIveGVuL2FyY2gveDg2 L251bWEuYwppbmRleCA0ZmM5NjdmODkzLi5hODc5ODdkYTZmIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbnVtYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9udW1hLmMKQEAgLTQzMCw3ICs0MzAsNyBA QCBzdGF0aWMgdm9pZCBkdW1wX251bWEodW5zaWduZWQgY2hhciBrZXkpCiAgICAgICAgIHNwaW5f bG9jaygmZC0+cGFnZV9hbGxvY19sb2NrKTsKICAgICAgICAgcGFnZV9saXN0X2Zvcl9lYWNoKHBh Z2UsICZkLT5wYWdlX2xpc3QpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGkgPSBwaHlzX3RvX25p ZCgocGFkZHJfdClwYWdlX3RvX21mbihwYWdlKSA8PCBQQUdFX1NISUZUKTsKKyAgICAgICAgICAg IGkgPSBwaHlzX3RvX25pZChwYWdlX3RvX21hZGRyKHBhZ2UpKTsKICAgICAgICAgICAgIHBhZ2Vf bnVtX25vZGVbaV0rKzsKICAgICAgICAgfQogICAgICAgICBzcGluX3VubG9jaygmZC0+cGFnZV9h bGxvY19sb2NrKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJj aC94ODYvcGh5c2Rldi5jCmluZGV4IDBlYjQwOTc1OGYuLmJhOTUwYWY0YTggMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMKKysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYuYwpAQCAt MjQxLDcgKzI0MSw3IEBAIHJldF90IGRvX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIGNtcHhjaGco JmN1cnJkLT5hcmNoLnBpcnFfZW9pX21hcF9tZm4sCi0gICAgICAgICAgICAgICAgICAgICAwLCBw YWdlX3RvX21mbihwYWdlKSkgIT0gMCApCisgICAgICAgICAgICAgICAgICAgICAwLCBtZm5feChw YWdlX3RvX21mbihwYWdlKSkpICE9IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICBwdXRfcGFn ZV9hbmRfdHlwZShwYWdlKTsKICAgICAgICAgICAgIHJldCA9IC1FQlVTWTsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9wdi9jYWxsYmFjay5jIGIveGVuL2FyY2gveDg2L3B2L2NhbGxiYWNrLmMK aW5kZXggOTdkODQzODYwMC4uNTk1N2NiNTA4NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2 L2NhbGxiYWNrLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2NhbGxiYWNrLmMKQEAgLTMxLDEyICsz MSw2IEBACiAKICNpbmNsdWRlIDxwdWJsaWMvY2FsbGJhY2suaD4KIAotLyogT3ZlcnJpZGUgbWFj cm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5k ZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKG1m bl94KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4ocGcpIF9t Zm4oX19wYWdlX3RvX21mbihwZykpCi0KIHN0YXRpYyBpbnQgcmVnaXN0ZXJfZ3Vlc3Rfbm1pX2Nh bGxiYWNrKHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9 IGN1cnJlbnQ7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZGVzY3JpcHRvci10YWJsZXMu YyBiL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5jCmluZGV4IDgxOTczYWYxMjQu LmYyYjIwZjk5MTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxl cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5jCkBAIC0yNSwxNiAr MjUsNiBAQAogI2luY2x1ZGUgPGFzbS9wMm0uaD4KICNpbmNsdWRlIDxhc20vcHYvbW0uaD4KIAot LyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRo IG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBf X21mbl90b19wYWdlKG1mbl94KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFn ZV90b19tZm4ocGcpIF9tZm4oX19wYWdlX3RvX21mbihwZykpCi0KLS8qKioqKioqKioqKioqKioq KioqCi0gKiBEZXNjcmlwdG9yIFRhYmxlcwotICovCi0KIHZvaWQgcHZfZGVzdHJveV9nZHQoc3Ry dWN0IHZjcHUgKnYpCiB7CiAgICAgbDFfcGdlbnRyeV90ICpwbDFlOwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMK aW5kZXggZGNiZWU0M2U4Zi4uZTlhODkzYmE0NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2 L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCkBAIC0yMiw2 ICsyMiwxMiBAQAogCiAjaW5jbHVkZSAibW0uaCIKIAorLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20g YXNtL3BhZ2UuaCB0byBhdm9pZCB1c2luZyB0eXBlc2FmZSBtZm5fdC4gKi8KKyN1bmRlZiBwYWdl X3RvX21mbgorI2RlZmluZSBwYWdlX3RvX21mbihwZykgbWZuX3goX19wYWdlX3RvX21mbihwZykp CisjdW5kZWYgbWZuX3RvX3BhZ2UKKyNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19w YWdlKF9tZm4obWZuKSkKKwogLyogQWxsb3cgcmluZy0zIGFjY2VzcyBpbiBsb25nIG1vZGUgYXMg Z3Vlc3QgY2Fubm90IHVzZSByaW5nIDEgLi4uICovCiAjZGVmaW5lIEJBU0VfUFJPVCAoX1BBR0Vf UFJFU0VOVHxfUEFHRV9SV3xfUEFHRV9BQ0NFU1NFRHxfUEFHRV9VU0VSKQogI2RlZmluZSBMMV9Q Uk9UIChCQVNFX1BST1R8X1BBR0VfR1VFU1RfS0VSTkVMKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3B2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCmluZGV4IDkwZDU1Njli ZTEuLjRjYTMyMDU4MjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYworKysg Yi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKQEAgLTE2LDEyICsxNiw2IEBACiAKICNpbmNsdWRl ICJtbS5oIgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhl bSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9f cGFnZShtZm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKLSN1bmRlZiBwYWdlX3RvX21mbgot I2RlZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQogc3RhdGlj IHZvaWQgbm9yZXR1cm4gY29udGludWVfbm9uaWRsZV9kb21haW4oc3RydWN0IHZjcHUgKnYpCiB7 CiAgICAgY2hlY2tfd2FrZXVwX2Zyb21fd2FpdCgpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3B2L2VtdWwtZ2F0ZS1vcC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtZ2F0ZS1vcC5jCmluZGV4 IDBmODljOTFkZmYuLjVjZGI1NGM5MzcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVs LWdhdGUtb3AuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZW11bC1nYXRlLW9wLmMKQEAgLTQxLDEy ICs0MSw2IEBACiAKICNpbmNsdWRlICJlbXVsYXRlLmgiCiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBm cm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIG1m bl90b19wYWdlCi0jZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feCht Zm4pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKHBnKSBfbWZuKF9f cGFnZV90b19tZm4ocGcpKQotCiBzdGF0aWMgaW50IHJlYWRfZ2F0ZV9kZXNjcmlwdG9yKHVuc2ln bmVkIGludCBnYXRlX3NlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCAqc2VsLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jIGIv eGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCmluZGV4IGRkOTA3MTNhY2YuLjljY2JkMDIx ZWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysgYi94ZW4v YXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTQzLDE2ICs0Myw2IEBACiAjaW5jbHVkZSAi ZW11bGF0ZS5oIgogI2luY2x1ZGUgIm1tLmgiCiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFz bS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIG1mbl90b19w YWdlCi0jZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feChtZm4pKQot I3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKHBnKSBfbWZuKF9fcGFnZV90 b19tZm4ocGcpKQotCi0vKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEkvTyBlbXVsYXRpb24g c3VwcG9ydAotICovCi0KIHN0cnVjdCBwcml2X29wX2N0eHQgewogICAgIHN0cnVjdCB4ODZfZW11 bGF0ZV9jdHh0IGN0eHQ7CiAgICAgc3RydWN0IHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9w di9ncmFudF90YWJsZS5jIGIveGVuL2FyY2gveDg2L3B2L2dyYW50X3RhYmxlLmMKaW5kZXggYWFj YTIyOGM2Yi4uOTczMjMzNjdjNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2dyYW50X3Rh YmxlLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2dyYW50X3RhYmxlLmMKQEAgLTI3LDEyICsyNyw2 IEBACiAKICNpbmNsdWRlICJtbS5oIgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFn ZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQot I2RlZmluZSBtZm5fdG9fcGFnZShtZm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKLSN1bmRl ZiBwYWdlX3RvX21mbgotI2RlZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZu KHBnKSkKLQogc3RhdGljIHVuc2lnbmVkIGludCBncmFudF90b19wdGVfZmxhZ3ModW5zaWduZWQg aW50IGdyYW50X2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGNhY2hlX2ZsYWdzKQogewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2 L21tLmMgYi94ZW4vYXJjaC94ODYvcHYvbW0uYwppbmRleCBlNDVkNjI4ZGViLi5iZGIwOWJmYTc1 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvcHYv bW0uYwpAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgaW5pdF9ndWVzdF9sNF90YWJsZShsNF9wZ2Vu dHJ5X3QgbDR0YWJbXSwgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKICAgICBCVUlMRF9CVUdfT04o cm9vdF9wZ3RfcHZfeGVuX3Nsb3RzICE9IFJPT1RfUEFHRVRBQkxFX1BWX1hFTl9TTE9UUyk7CiAj ZW5kaWYKICAgICBsNHRhYltsNF90YWJsZV9vZmZzZXQoTElORUFSX1BUX1ZJUlRfU1RBUlQpXSA9 Ci0gICAgICAgIGw0ZV9mcm9tX3Bmbihkb21haW5fcGFnZV9tYXBfdG9fbWZuKGw0dGFiKSwgX19Q QUdFX0hZUEVSVklTT1JfUlcpOworICAgICAgICBsNGVfZnJvbV9tZm4oZG9tYWluX3BhZ2VfbWFw X3RvX21mbihsNHRhYiksIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKICAgICBsNHRhYltsNF90YWJs ZV9vZmZzZXQoUEVSRE9NQUlOX1ZJUlRfU1RBUlQpXSA9CiAgICAgICAgIGw0ZV9mcm9tX3BhZ2Uo ZC0+YXJjaC5wZXJkb21haW5fbDNfcGcsIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKICAgICBpZiAo IHphcF9yb19tcHQgfHwgaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9wdi9yby1wYWdlLWZhdWx0LmMgYi94ZW4vYXJjaC94ODYvcHYvcm8tcGFnZS1mYXVs dC5jCmluZGV4IDZiMjk3NmQzZGYuLmE3YjdlYjUxMTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9wdi9yby1wYWdlLWZhdWx0LmMKKysrIGIveGVuL2FyY2gveDg2L3B2L3JvLXBhZ2UtZmF1bHQu YwpAQCAtMzMsMTIgKzMzLDYgQEAKICNpbmNsdWRlICJlbXVsYXRlLmgiCiAjaW5jbHVkZSAibW0u aCIKIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29y ayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2Uo bWZuKSBfX21mbl90b19wYWdlKG1mbl94KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZp bmUgcGFnZV90b19tZm4ocGcpIF9tZm4oX19wYWdlX3RvX21mbihwZykpCi0KIC8qKioqKioqKioq KioqKioqKioqKioKICAqIFdyaXRhYmxlIFBhZ2V0YWJsZXMKICAqLwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKaW5kZXggM2NhNzE2 YzU5Zi4uNjYzOTY2YmM3NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYworKysg Yi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCkBAIC00NiwxMiArNDYsNiBAQAogI2luY2x1ZGUgPG1h Y2hfd2FrZWNwdS5oPgogI2luY2x1ZGUgPHNtcGJvb3RfaG9va3MuaD4KIAotLyogT3ZlcnJpZGUg bWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0j dW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdl KG1mbl94KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4ocGcp IF9tZm4oX19wYWdlX3RvX21mbihwZykpCi0KICNkZWZpbmUgc2V0dXBfdHJhbXBvbGluZSgpICAg IChib290c3ltX3BoeXModHJhbXBvbGluZV9yZWFsbW9kZV9lbnRyeSkpCiAKIHVuc2lnbmVkIGxv bmcgX19yZWFkX21vc3RseSB0cmFtcG9saW5lX3BoeXM7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvdGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni90Ym9vdC5jCmluZGV4IDU5ZDdjNDc3ZjQuLmU5NTIy ZjA2ZWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90Ym9vdC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni90Ym9vdC5jCkBAIC0xODQsNyArMTg0LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3BhZ2V0YWJs ZV9tYWModm1hY19jdHhfdCAqY3R4KQogCiAgICAgZm9yICggbWZuID0gMDsgbWZuIDwgbWF4X3Bh Z2U7IG1mbisrICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBtZm5f dG9fcGFnZShtZm4pOworICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gbWZuX3RvX3Bh Z2UoX21mbihtZm4pKTsKIAogICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAg ICAgICAgICAgICBjb250aW51ZTsKQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgdm9pZCB0Ym9v dF9nZW5feGVuaGVhcF9pbnRlZ3JpdHkoY29uc3QgdWludDhfdCBrZXlbVEJfS0VZX1NJWkVdLAog ICAgIHZtYWNfc2V0X2tleSgodWludDhfdCAqKWtleSwgJmN0eCk7CiAgICAgZm9yICggbWZuID0g MDsgbWZuIDwgbWF4X3BhZ2U7IG1mbisrICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2lu Zm8gKnBhZ2UgPSBfX21mbl90b19wYWdlKG1mbik7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8g KnBhZ2UgPSBtZm5fdG9fcGFnZShfbWZuKG1mbikpOwogCiAgICAgICAgIGlmICggIW1mbl92YWxp ZChfbWZuKG1mbikpICkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCA4NjUwNmYzNzQ3Li5i ODUzOTRkMWY5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJj aC94ODYvdHJhcHMuYwpAQCAtODExLDcgKzgxMSw3IEBAIGludCB3cm1zcl9oeXBlcnZpc29yX3Jl Z3ModWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiAKICAgICAgICAgICAgIGdkcHJpbnRrKFhF TkxPR19XQVJOSU5HLAogICAgICAgICAgICAgICAgICAgICAgIkJhZCBHTUZOICVseCAoTUZOICVs eCkgdG8gTVNSICUwOHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICBnbWZuLCBwYWdlID8gcGFn ZV90b19tZm4ocGFnZSkgOiAtMVVMLCBiYXNlKTsKKyAgICAgICAgICAgICAgICAgICAgIGdtZm4s IHBhZ2UgPyBtZm5feChwYWdlX3RvX21mbihwYWdlKSkgOiAtMVVMLCBiYXNlKTsKICAgICAgICAg ICAgIHJldHVybiAwOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf NjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCAxMTc0NjczMGI0Li45NzFj Y2ZjYmJlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2Fy Y2gveDg2L3g4Nl82NC9tbS5jCkBAIC00MCw2ICs0MCwxMiBAQCBhc20oIi5maWxlIFwiIiBfX0ZJ TEVfXyAiXCIiKTsKICNpbmNsdWRlIDxhc20vbWVtX3NoYXJpbmcuaD4KICNpbmNsdWRlIDxwdWJs aWMvbWVtb3J5Lmg+CiAKKy8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gYXZv aWQgdXNpbmcgdHlwZXNhZmUgbWZuX3QuICovCisjdW5kZWYgcGFnZV90b19tZm4KKyNkZWZpbmUg cGFnZV90b19tZm4ocGcpIG1mbl94KF9fcGFnZV90b19tZm4ocGcpKQorI3VuZGVmIG1mbl90b19w YWdlCisjZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShfbWZuKG1mbikpCisK IHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IG0ycF9jb21wYXRfdnN0YXJ0ID0gX19IWVBFUlZJ U09SX0NPTVBBVF9WSVJUX1NUQVJUOwogCiBsMl9wZ2VudHJ5X3QgKmNvbXBhdF9pZGxlX3BnX3Rh YmxlX2wyOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9t YWluLmMKaW5kZXggNWFlYmNmMjY1Zi4uZTgzMDJlOGUxYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1v bi9kb21haW4uYworKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCkBAIC0xMTkyLDcgKzExOTIsNyBA QCBpbnQgbWFwX3ZjcHVfaW5mbyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBnZm4sIHVu c2lnbmVkIG9mZnNldCkKICAgICB9CiAKICAgICB2LT52Y3B1X2luZm8gPSBuZXdfaW5mbzsKLSAg ICB2LT52Y3B1X2luZm9fbWZuID0gX21mbihwYWdlX3RvX21mbihwYWdlKSk7CisgICAgdi0+dmNw dV9pbmZvX21mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCiAgICAgLyogU2V0IG5ldyB2Y3B1X2lu Zm8gcG9pbnRlciAvYmVmb3JlLyBzZXR0aW5nIHBlbmRpbmcgZmxhZ3MuICovCiAgICAgc21wX3dt YigpOwpAQCAtMTIyNSw3ICsxMjI1LDcgQEAgdm9pZCB1bm1hcF92Y3B1X2luZm8oc3RydWN0IHZj cHUgKnYpCiAKICAgICB2Y3B1X2luZm9fcmVzZXQodik7IC8qIE5COiBDbG9iYmVycyB2LT52Y3B1 X2luZm9fbWZuICovCiAKLSAgICBwdXRfcGFnZV9hbmRfdHlwZShtZm5fdG9fcGFnZShtZm5feCht Zm4pKSk7CisgICAgcHV0X3BhZ2VfYW5kX3R5cGUobWZuX3RvX3BhZ2UobWZuKSk7CiB9CiAKIGlu dCBkZWZhdWx0X2luaXRpYWxpc2VfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBhcmcpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMg Yi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggNmQyMGIxNzczOS4uMmFmZGU1OTZkOSAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3Jh bnRfdGFibGUuYwpAQCAtNDAsNiArNDAsMTIgQEAKICNpbmNsdWRlIDx4c20veHNtLmg+CiAjaW5j bHVkZSA8YXNtL2ZsdXNodGxiLmg+CiAKKy8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdl LmggdG8gYXZvaWQgdXNpbmcgdHlwZXNhZmUgbWZuX3QuICovCisjdW5kZWYgcGFnZV90b19tZm4K KyNkZWZpbmUgcGFnZV90b19tZm4ocGcpIG1mbl94KF9fcGFnZV90b19tZm4ocGcpKQorI3VuZGVm IG1mbl90b19wYWdlCisjZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShfbWZu KG1mbikpCisKIC8qIFBlci1kb21haW4gZ3JhbnQgaW5mb3JtYXRpb24uICovCiBzdHJ1Y3QgZ3Jh bnRfdGFibGUgewogICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2tpbWFnZS5jIGIveGVu L2NvbW1vbi9raW1hZ2UuYwppbmRleCBhZmQ4MjkyY2MxLi4yMTAyNDFkZmI3IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL2tpbWFnZS5jCisrKyBiL3hlbi9jb21tb24va2ltYWdlLmMKQEAgLTIzLDEy ICsyMyw2IEBACiAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCi0vKiBPdmVycmlkZSBtYWNyb3Mg ZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBt Zm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShtZm4pIF9fbWZuX3RvX3BhZ2UobWZuX3go bWZuKSkKLSN1bmRlZiBwYWdlX3RvX21mbgotI2RlZmluZSBwYWdlX3RvX21mbihwZykgIF9tZm4o X19wYWdlX3RvX21mbihwZykpCi0KIC8qCiAgKiBXaGVuIGtleGVjIHRyYW5zaXRpb25zIHRvIHRo ZSBuZXcga2VybmVsIHRoZXJlIGlzIGEgb25lLXRvLW9uZQogICogbWFwcGluZyBiZXR3ZWVuIHBo eXNpY2FsIGFuZCB2aXJ0dWFsIGFkZHJlc3Nlcy4gIE9uIHByb2Nlc3NvcnMKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IGFkOTg3ZTBm MjkuLmU0NjdmMjcxYzcgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVu L2NvbW1vbi9tZW1vcnkuYwpAQCAtMjksNiArMjksMTIgQEAKICNpbmNsdWRlIDxwdWJsaWMvbWVt b3J5Lmg+CiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogCisvKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBh c20vcGFnZS5oIHRvIGF2b2lkIHVzaW5nIHR5cGVzYWZlIG1mbl90LiAqLworI3VuZGVmIHBhZ2Vf dG9fbWZuCisjZGVmaW5lIHBhZ2VfdG9fbWZuKHBnKSBtZm5feChfX3BhZ2VfdG9fbWZuKHBnKSkK KyN1bmRlZiBtZm5fdG9fcGFnZQorI2RlZmluZSBtZm5fdG9fcGFnZShtZm4pIF9fbWZuX3RvX3Bh Z2UoX21mbihtZm4pKQorCiBzdHJ1Y3QgbWVtb3BfYXJncyB7CiAgICAgLyogSU5QVVQgKi8KICAg ICBzdHJ1Y3QgZG9tYWluICpkb21haW47ICAgICAvKiBEb21haW4gdG8gYmUgYWZmZWN0ZWQuICov CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9h bGxvYy5jCmluZGV4IDQ3MmM2ZmUzMjkuLjVlN2Q3NGUyNzQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21t b24vcGFnZV9hbGxvYy5jCisrKyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC0xNTAsNiAr MTUwLDEyIEBACiAjZGVmaW5lIHAybV9wb2Rfb2ZmbGluZV9vcl9icm9rZW5fcmVwbGFjZShwZykg QlVHX09OKHBnICE9IE5VTEwpCiAjZW5kaWYKIAorLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNt L3BhZ2UuaCB0byBhdm9pZCB1c2luZyB0eXBlc2FmZSBtZm5fdC4gKi8KKyN1bmRlZiBwYWdlX3Rv X21mbgorI2RlZmluZSBwYWdlX3RvX21mbihwZykgbWZuX3goX19wYWdlX3RvX21mbihwZykpCisj dW5kZWYgbWZuX3RvX3BhZ2UKKyNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdl KF9tZm4obWZuKSkKKwogLyoKICAqIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGhleGFkZWNpbWFs IHBhZ2UgbnVtYmVycyBjb250YWluaW5nIGJhZCBieXRlcy4KICAqIGUuZy4gJ2JhZHBhZ2U9MHgz ZjQ1LDB4OGEzMjEnLgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi90bWVtLmMgYi94ZW4vY29tbW9u L3RtZW0uYwppbmRleCBjOTU1Y2Y3MTY3Li4xYWRiOTZmMDBjIDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL3RtZW0uYworKysgYi94ZW4vY29tbW9uL3RtZW0uYwpAQCAtMjQzLDcgKzI0Myw3IEBAIHN0 YXRpYyB2b2lkIHRtZW1fcGVyc2lzdGVudF9wb29sX3BhZ2VfcHV0KHZvaWQgKnBhZ2VfdmEpCiAg ICAgc3RydWN0IHBhZ2VfaW5mbyAqcGk7CiAKICAgICBBU1NFUlQoSVNfUEFHRV9BTElHTkVEKHBh Z2VfdmEpKTsKLSAgICBwaSA9IG1mbl90b19wYWdlKHZpcnRfdG9fbWZuKHBhZ2VfdmEpKTsKKyAg ICBwaSA9IG1mbl90b19wYWdlKF9tZm4odmlydF90b19tZm4ocGFnZV92YSkpKTsKICAgICBBU1NF UlQoSVNfVkFMSURfUEFHRShwaSkpOwogICAgIF9fdG1lbV9mcmVlX3BhZ2VfdGhpc3Bvb2wocGkp OwogfQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi90bWVtX3hlbi5jIGIveGVuL2NvbW1vbi90bWVt X3hlbi5jCmluZGV4IGJkNTJlNDRmYWYuLmJmN2IxNGY3OWEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21t b24vdG1lbV94ZW4uYworKysgYi94ZW4vY29tbW9uL3RtZW1feGVuLmMKQEAgLTE0LDEwICsxNCw2 IEBACiAjaW5jbHVkZSA8eGVuL2NwdS5oPgogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CiAKLS8qIE92 ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5f dCAqLwotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKHBnKSBfbWZuKF9f cGFnZV90b19tZm4ocGcpKQotCiBib29sIF9fcmVhZF9tb3N0bHkgb3B0X3RtZW07CiBib29sZWFu X3BhcmFtKCJ0bWVtIiwgb3B0X3RtZW0pOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3RyYWNl LmMgYi94ZW4vY29tbW9uL3RyYWNlLmMKaW5kZXggMmUxODcwMjMxNy4uY2Y4ZjhiMDk5NyAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi90cmFjZS5jCisrKyBiL3hlbi9jb21tb24vdHJhY2UuYwpAQCAt NDIsNiArNDIsMTIgQEAgQ0hFQ0tfdF9idWY7CiAjZGVmaW5lIGNvbXBhdF90X3JlYyB0X3JlYwog I2VuZGlmCiAKKy8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gYXZvaWQgdXNp bmcgdHlwZXNhZmUgbWZuX3QuICovCisjdW5kZWYgcGFnZV90b19tZm4KKyNkZWZpbmUgcGFnZV90 b19tZm4ocGcpIG1mbl94KF9fcGFnZV90b19tZm4ocGcpKQorI3VuZGVmIG1mbl90b19wYWdlCisj ZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShfbWZuKG1mbikpCisKIC8qIG9w dF90YnVmX3NpemU6IHRyYWNlIGJ1ZmZlciBzaXplIChpbiBwYWdlcykgZm9yIGVhY2ggY3B1ICov CiBzdGF0aWMgdW5zaWduZWQgaW50IG9wdF90YnVmX3NpemU7CiBzdGF0aWMgdW5zaWduZWQgaW50 IG9wdF90ZXZ0X21hc2s7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZtYXAuYyBiL3hlbi9jb21t b24vdm1hcC5jCmluZGV4IDBiMjNmOGZiOTcuLjEwZjMyYjI5ZTAgMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24vdm1hcC5jCisrKyBiL3hlbi9jb21tb24vdm1hcC5jCkBAIC0zNiw3ICszNiw3IEBAIHZv aWQgX19pbml0IHZtX2luaXRfdHlwZShlbnVtIHZtYXBfcmVnaW9uIHR5cGUsIHZvaWQgKnN0YXJ0 LCB2b2lkICplbmQpCiAgICAgewogICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IGFsbG9j X2RvbWhlYXBfcGFnZShOVUxMLCAwKTsKIAotICAgICAgICBtYXBfcGFnZXNfdG9feGVuKHZhLCBw YWdlX3RvX21mbihwZyksIDEsIFBBR0VfSFlQRVJWSVNPUik7CisgICAgICAgIG1hcF9wYWdlc190 b194ZW4odmEsIG1mbl94KHBhZ2VfdG9fbWZuKHBnKSksIDEsIFBBR0VfSFlQRVJWSVNPUik7CiAg ICAgICAgIGNsZWFyX3BhZ2UoKHZvaWQgKil2YSk7CiAgICAgfQogICAgIGJpdG1hcF9maWxsKHZt X2JpdG1hcCh0eXBlKSwgdm1fbG93W3R5cGVdKTsKQEAgLTEwNyw3ICsxMDcsOCBAQCBzdGF0aWMg dm9pZCAqdm1fYWxsb2ModW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgYWxpZ24sCiAgICAg ICAgIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdmEgPSAodW5zaWduZWQgbG9uZyl2bV9i aXRtYXAodCkgKyB2bV90b3BbdF0gLyA4OwogCi0gICAgICAgICAgICBpZiAoICFtYXBfcGFnZXNf dG9feGVuKHZhLCBwYWdlX3RvX21mbihwZyksIDEsIFBBR0VfSFlQRVJWSVNPUikgKQorICAgICAg ICAgICAgaWYgKCAhbWFwX3BhZ2VzX3RvX3hlbih2YSwgbWZuX3gocGFnZV90b19tZm4ocGcpKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgUEFHRV9IWVBFUlZJU09SKSAp CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xlYXJfcGFnZSgodm9pZCAqKXZhKTsK ICAgICAgICAgICAgICAgICB2bV90b3BbdF0gKz0gUEFHRV9TSVpFICogODsKQEAgLTI1OCw3ICsy NTksNyBAQCBzdGF0aWMgdm9pZCAqdm1hbGxvY190eXBlKHNpemVfdCBzaXplLCBlbnVtIHZtYXBf cmVnaW9uIHR5cGUpCiAgICAgICAgIHBnID0gYWxsb2NfZG9taGVhcF9wYWdlKE5VTEwsIDApOwog ICAgICAgICBpZiAoIHBnID09IE5VTEwgKQogICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAg ICAgbWZuW2ldID0gX21mbihwYWdlX3RvX21mbihwZykpOworICAgICAgICBtZm5baV0gPSBwYWdl X3RvX21mbihwZyk7CiAgICAgfQogCiAgICAgdmEgPSBfX3ZtYXAobWZuLCAxLCBwYWdlcywgMSwg UEFHRV9IWVBFUlZJU09SLCB0eXBlKTsKQEAgLTI3MCw3ICsyNzEsNyBAQCBzdGF0aWMgdm9pZCAq dm1hbGxvY190eXBlKHNpemVfdCBzaXplLCBlbnVtIHZtYXBfcmVnaW9uIHR5cGUpCiAKICBlcnJv cjoKICAgICB3aGlsZSAoIGktLSApCi0gICAgICAgIGZyZWVfZG9taGVhcF9wYWdlKG1mbl90b19w YWdlKG1mbl94KG1mbltpXSkpKTsKKyAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2UobWZuX3RvX3Bh Z2UobWZuW2ldKSk7CiAgICAgeGZyZWUobWZuKTsKICAgICByZXR1cm4gTlVMTDsKIH0KZGlmZiAt LWdpdCBhL3hlbi9jb21tb24veGVub3Byb2YuYyBiL3hlbi9jb21tb24veGVub3Byb2YuYwppbmRl eCA1YWNkZGU1NjkxLi5mZWNkZmIzNjk3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hlbm9wcm9m LmMKKysrIGIveGVuL2NvbW1vbi94ZW5vcHJvZi5jCkBAIC0yMiw4ICsyMiw2IEBACiAvKiBPdmVy cmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3Qg Ki8KICN1bmRlZiB2aXJ0X3RvX21mbgogI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgX21mbihfX3Zp cnRfdG9fbWZuKHZhKSkKLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZSht Zm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKIAogLyogTGltaXQgYW1vdW50IG9mIHBhZ2Vz IHVzZWQgZm9yIHNoYXJlZCBidWZmZXIgKHBlciBkb21haW4pICovCiAjZGVmaW5lIE1BWF9PUFJP Rl9TSEFSRURfUEFHRVMgMzIKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdV9tYXAuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpp bmRleCBmZDIzMjdkM2U1Li5iZDYyYzJjZTkwIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X21hcC5jCkBAIC0yNSw2ICsyNSwxMiBAQAogI2luY2x1ZGUgIi4uL2F0cy5oIgogI2lu Y2x1ZGUgPHhlbi9wY2kuaD4KIAorLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0 byBhdm9pZCB1c2luZyB0eXBlc2FmZSBtZm5fdC4gKi8KKyN1bmRlZiBwYWdlX3RvX21mbgorI2Rl ZmluZSBwYWdlX3RvX21mbihwZykgbWZuX3goX19wYWdlX3RvX21mbihwZykpCisjdW5kZWYgbWZu X3RvX3BhZ2UKKyNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKF9tZm4obWZu KSkKKwogLyogR2l2ZW4gcGZuIGFuZCBwYWdlIHRhYmxlIGxldmVsLCByZXR1cm4gcGRlIGluZGV4 ICovCiBzdGF0aWMgdW5zaWduZWQgaW50IHBmbl90b19wZGVfaWR4KHVuc2lnbmVkIGxvbmcgcGZu LCB1bnNpZ25lZCBpbnQgbGV2ZWwpCiB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCAxYWVj ZjdjZjM0Li4yYzQ0ZmFiZjk5IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9p b21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE4NCw3ICsx ODQsNyBAQCB2b2lkIF9faHdkb21faW5pdCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4g KmQpCiAKICAgICAgICAgcGFnZV9saXN0X2Zvcl9lYWNoICggcGFnZSwgJmQtPnBhZ2VfbGlzdCAp CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gcGFnZV90b19tZm4o cGFnZSk7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiA9IG1mbl94KHBhZ2VfdG9fbWZu KHBhZ2UpKTsKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gbWZuX3RvX2dtZm4oZCwg bWZuKTsKICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXBwaW5nID0gSU9NTVVGX3JlYWRhYmxl OwogICAgICAgICAgICAgaW50IHJldDsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKaW5k ZXggMDI1MzgyMzE3My4uNjgxODJhZmQ5MSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11 LmMKQEAgLTU4LDcgKzU4LDcgQEAgaW50IGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZShz dHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgfHwKICAgICAg ICAgICAgIChwYWdlLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF90eXBlX21hc2spID09IFBHVF93 cml0YWJsZV9wYWdlICkKICAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4g PSBwYWdlX3RvX21mbihwYWdlKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gbWZu X3gocGFnZV90b19tZm4ocGFnZSkpOwogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4gPSBt Zm5fdG9fZ21mbihkLCBtZm4pOwogCiAgICAgICAgICAgICBpZiAoIGdmbiAhPSBnZm5feChJTlZB TElEX0dGTikgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9tbS5oCmluZGV4IDczN2E0Mjk0MDkuLjNlYjRiNjg3NjEgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL21t LmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBleHRlcm4gdmFkZHJfdCB4ZW5oZWFwX3ZpcnRfc3RhcnQ7 CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19BUk1fMzIKLSNkZWZpbmUgaXNfeGVuX2hlYXBfcGFn ZShwYWdlKSBpc194ZW5faGVhcF9tZm4ocGFnZV90b19tZm4ocGFnZSkpCisjZGVmaW5lIGlzX3hl bl9oZWFwX3BhZ2UocGFnZSkgaXNfeGVuX2hlYXBfbWZuKG1mbl94KF9fcGFnZV90b19tZm4ocGFn ZSkpKQogI2RlZmluZSBpc194ZW5faGVhcF9tZm4obWZuKSAoeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICB1bnNpZ25lZCBsb25nIG1mbl8gPSAobWZuKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgKG1mbl8gPj0gbWZuX3goeGVuaGVhcF9tZm5f c3RhcnQpICYmICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjIwLDEyICsyMjAsMTQgQEAg c3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmlvcmVtYXBfd2MocGFkZHJfdCBzdGFydCwgc2l6 ZV90IGxlbikKIH0pCiAKIC8qIENvbnZlcnQgYmV0d2VlbiBtYWNoaW5lIGZyYW1lIG51bWJlcnMg YW5kIHBhZ2UtaW5mbyBzdHJ1Y3R1cmVzLiAqLwotI2RlZmluZSBfX21mbl90b19wYWdlKG1mbikg IChmcmFtZV90YWJsZSArIChwZm5fdG9fcGR4KG1mbikgLSBmcmFtZXRhYmxlX2Jhc2VfcGR4KSkK LSNkZWZpbmUgX19wYWdlX3RvX21mbihwZykgICBwZHhfdG9fcGZuKCh1bnNpZ25lZCBsb25nKSgo cGcpIC0gZnJhbWVfdGFibGUpICsgZnJhbWV0YWJsZV9iYXNlX3BkeCkKKyNkZWZpbmUgX19tZm5f dG9fcGFnZShtZm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgIChmcmFtZV90YWJsZSArIChwZm5fdG9fcGR4KG1mbl94KG1mbikpIC0gZnJhbWV0YWJsZV9i YXNlX3BkeCkpCisjZGVmaW5lIF9fcGFnZV90b19tZm4ocGcpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBfbWZuKHBkeF90b19wZm4oKHVuc2lnbmVkIGxv bmcpKChwZykgLSBmcmFtZV90YWJsZSkgKyBmcmFtZXRhYmxlX2Jhc2VfcGR4KSkKIAogLyogQ29u dmVydCBiZXR3ZWVuIG1hY2hpbmUgYWRkcmVzc2VzIGFuZCBwYWdlLWluZm8gc3RydWN0dXJlcy4g Ki8KLSNkZWZpbmUgbWFkZHJfdG9fcGFnZShtYSkgX19tZm5fdG9fcGFnZSgobWEpID4+IFBBR0Vf U0hJRlQpCi0jZGVmaW5lIHBhZ2VfdG9fbWFkZHIocGcpICgocGFkZHJfdClfX3BhZ2VfdG9fbWZu KHBnKSA8PCBQQUdFX1NISUZUKQorI2RlZmluZSBtYWRkcl90b19wYWdlKG1hKSBfX21mbl90b19w YWdlKG1hZGRyX3RvX21mbihtYSkpCisjZGVmaW5lIHBhZ2VfdG9fbWFkZHIocGcpIChtZm5fdG9f bWFkZHIoX19wYWdlX3RvX21mbihwZykpKQogCiAvKiBDb252ZXJ0IGJldHdlZW4gZnJhbWUgbnVt YmVyIGFuZCBhZGRyZXNzIGZvcm1hdHMuICAqLwogI2RlZmluZSBwZm5fdG9fcGFkZHIocGZuKSAo KHBhZGRyX3QpKHBmbikgPDwgUEFHRV9TSElGVCkKQEAgLTIzNSw3ICsyMzcsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgX19pb21lbSAqaW9yZW1hcF93YyhwYWRkcl90IHN0YXJ0LCBzaXplX3QgbGVu KQogI2RlZmluZSBnYWRkcl90b19nZm4oZ2EpICAgIF9nZm4ocGFkZHJfdG9fcGZuKGdhKSkKICNk ZWZpbmUgbWZuX3RvX21hZGRyKG1mbikgICBwZm5fdG9fcGFkZHIobWZuX3gobWZuKSkKICNkZWZp bmUgbWFkZHJfdG9fbWZuKG1hKSAgICBfbWZuKHBhZGRyX3RvX3BmbihtYSkpCi0jZGVmaW5lIHZt YXBfdG9fbWZuKHZhKSAgICAgcGFkZHJfdG9fcGZuKHZpcnRfdG9fbWFkZHIoKHZhZGRyX3QpdmEp KQorI2RlZmluZSB2bWFwX3RvX21mbih2YSkgICAgIG1hZGRyX3RvX21mbih2aXJ0X3RvX21hZGRy KCh2YWRkcl90KXZhKSkKICNkZWZpbmUgdm1hcF90b19wYWdlKHZhKSAgICBtZm5fdG9fcGFnZSh2 bWFwX3RvX21mbih2YSkpCiAKIC8qIFBhZ2UtYWxpZ24gYWRkcmVzcyBhbmQgY29udmVydCB0byBm cmFtZSBudW1iZXIgZm9ybWF0ICovCkBAIC0zMDksNyArMzExLDcgQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgcGFnZV9pbmZvICp2aXJ0X3RvX3BhZ2UoY29uc3Qgdm9pZCAqdikKIAogc3RhdGljIGlu bGluZSB2b2lkICpwYWdlX3RvX3ZpcnQoY29uc3Qgc3RydWN0IHBhZ2VfaW5mbyAqcGcpCiB7Ci0g ICAgcmV0dXJuIG1mbl90b192aXJ0KHBhZ2VfdG9fbWZuKHBnKSk7CisgICAgcmV0dXJuIG1mbl90 b192aXJ0KG1mbl94KF9fcGFnZV90b19tZm4ocGcpKSk7CiB9CiAKIHN0cnVjdCBwYWdlX2luZm8g KmdldF9wYWdlX2Zyb21fZ3ZhKHN0cnVjdCB2Y3B1ICp2LCB2YWRkcl90IHZhLApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgK aW5kZXggZmFhZGNmZThmZS4uODdjOTk5NDk3NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LWFybS9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCkBAIC0yNzYsNyArMjc2 LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigK IHsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogICAgIHAybV90eXBlX3QgcDJtdDsKLSAg ICB1bnNpZ25lZCBsb25nIG1mbiA9IG1mbl94KHAybV9sb29rdXAoZCwgX2dmbihnZm4pLCAmcDJt dCkpOworICAgIG1mbl90IG1mbiA9IHAybV9sb29rdXAoZCwgX2dmbihnZm4pLCAmcDJtdCk7CiAK ICAgICBpZiAodCkKICAgICAgICAgKnQgPSBwMm10OwpAQCAtMjg0LDcgKzI4NCw3IEBAIHN0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgaWYgKCAh cDJtX2lzX2FueV9yYW0ocDJtdCkgKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICgg IW1mbl92YWxpZChfbWZuKG1mbikpICkKKyAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCiAgICAg ICAgIHJldHVybiBOVUxMOwogICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwogCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgK aW5kZXggZjJlMGY0OThjNC4uOTg0ZjU0YzNmYSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtMjU5LDcgKzI1OSw3 IEBAIHN0cnVjdCBwYWdlX2luZm8KIAogI2RlZmluZSBpc194ZW5faGVhcF9wYWdlKHBhZ2UpICgo cGFnZSktPmNvdW50X2luZm8gJiBQR0NfeGVuX2hlYXApCiAjZGVmaW5lIGlzX3hlbl9oZWFwX21m bihtZm4pIFwKLSAgICAoX19tZm5fdmFsaWQobWZuKSAmJiBpc194ZW5faGVhcF9wYWdlKF9fbWZu X3RvX3BhZ2UobWZuKSkpCisgICAgKF9fbWZuX3ZhbGlkKG1mbikgJiYgaXNfeGVuX2hlYXBfcGFn ZShfX21mbl90b19wYWdlKF9tZm4obWZuKSkpKQogI2RlZmluZSBpc194ZW5fZml4ZWRfbWZuKG1m bikgICAgICAgICAgICAgICAgICAgICBcCiAgICAgKCgoKG1mbikgPDwgUEFHRV9TSElGVCkgPj0g X19wYSgmX3N0ZXh0KSkgJiYgIFwKICAgICAgKCgobWZuKSA8PCBQQUdFX1NISUZUKSA8PSBfX3Bh KCZfXzJNX3J3ZGF0YV9lbmQpKSkKQEAgLTM2OSw3ICszNjksNyBAQCB2b2lkIHB1dF9wYWdlX2Zy b21fbDFlKGwxX3BnZW50cnlfdCBsMWUsIHN0cnVjdCBkb21haW4gKmwxZV9vd25lcik7CiAKIHN0 YXRpYyBpbmxpbmUgYm9vbCBnZXRfcGFnZV9mcm9tX21mbihtZm5fdCBtZm4sIHN0cnVjdCBkb21h aW4gKmQpCiB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IF9fbWZuX3RvX3BhZ2UobWZu X3gobWZuKSk7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IF9fbWZuX3RvX3BhZ2UobWZu KTsKIAogICAgIGlmICggdW5saWtlbHkoIW1mbl92YWxpZChtZm4pKSB8fCB1bmxpa2VseSghZ2V0 X3BhZ2UocGFnZSwgZCkpICkKICAgICB7CkBAIC00NjMsMTAgKzQ2MywxMCBAQCBleHRlcm4gcGFk ZHJfdCBtZW1faG90cGx1ZzsKICNkZWZpbmUgU0hBUkVEX00yUChfZSkgICAgICAgICAgICgoX2Up ID09IFNIQVJFRF9NMlBfRU5UUlkpCiAKICNkZWZpbmUgY29tcGF0X21hY2hpbmVfdG9fcGh5c19t YXBwaW5nICgodW5zaWduZWQgaW50ICopUkRXUl9DT01QQVRfTVBUX1ZJUlRfU1RBUlQpCi0jZGVm aW5lIF9zZXRfZ3Bmbl9mcm9tX21mbihtZm4sIHBmbikgKHsgICAgICAgICAgICAgICAgICAgICAg ICBcCi0gICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKF9fbWZuX3RvX3BhZ2Uo bWZuKSk7ICAgICBcCi0gICAgdW5zaWduZWQgbG9uZyBlbnRyeSA9IChkICYmIChkID09IGRvbV9j b3cpKSA/ICAgICAgICAgICAgICBcCi0gICAgICAgIFNIQVJFRF9NMlBfRU5UUlkgOiAocGZuKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIF9zZXRfZ3Bmbl9mcm9tX21m bihtZm4sIHBmbikgKHsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBkb21h aW4gKmQgPSBwYWdlX2dldF9vd25lcihfX21mbl90b19wYWdlKF9tZm4obWZuKSkpOyAgICBcCisg ICAgdW5zaWduZWQgbG9uZyBlbnRyeSA9IChkICYmIChkID09IGRvbV9jb3cpKSA/ICAgICAgICAg ICAgICAgXAorICAgICAgICBTSEFSRURfTTJQX0VOVFJZIDogKHBmbik7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAoKHZvaWQpKChtZm4pID49IChSRFdSX0NPTVBBVF9NUFRf VklSVF9FTkQgLSBSRFdSX0NPTVBBVF9NUFRfVklSVF9TVEFSVCkgLyA0IHx8IFwKICAgICAgICAg ICAgIChjb21wYXRfbWFjaGluZV90b19waHlzX21hcHBpbmdbKG1mbildID0gKHVuc2lnbmVkIGlu dCkoZW50cnkpKSksIFwKICAgICAgbWFjaGluZV90b19waHlzX21hcHBpbmdbKG1mbildID0gKGVu dHJ5KSk7ICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv cDJtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCmluZGV4IDcwZjAwYzMzMmYuLjE4ZWFj NTM3YzkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wMm0uaApAQCAtNDgwLDcgKzQ4MCw3IEBAIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgLyogTm9uLXRyYW5zbGF0ZWQg Z3Vlc3RzIHNlZSAxLTEgUkFNIC8gTU1JTyBtYXBwaW5ncyBldmVyeXdoZXJlICovCiAgICAgaWYg KCB0ICkKICAgICAgICAgKnQgPSBsaWtlbHkoZCAhPSBkb21faW8pID8gcDJtX3JhbV9ydyA6IHAy bV9tbWlvX2RpcmVjdDsKLSAgICBwYWdlID0gX19tZm5fdG9fcGFnZShnZm4pOworICAgIHBhZ2Ug PSBfX21mbl90b19wYWdlKF9tZm4oZ2ZuKSk7CiAgICAgcmV0dXJuIG1mbl92YWxpZChfbWZuKGdm bikpICYmIGdldF9wYWdlKHBhZ2UsIGQpID8gcGFnZSA6IE5VTEw7CiB9CiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgK aW5kZXggNDVjYTc0MjY3OC4uODczN2VmMTZmZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKQEAgLTg4LDEwICs4 OCwxMCBAQAogICAgICgocGFkZHJfdCkoKCh4KS5sNCAmIChQQUREUl9NQVNLJlBBR0VfTUFTSykp KSkKIAogLyogR2V0IHBvaW50ZXIgdG8gaW5mbyBzdHJ1Y3R1cmUgb2YgcGFnZSBtYXBwZWQgYnkg cHRlIChzdHJ1Y3QgcGFnZV9pbmZvICopLiAqLwotI2RlZmluZSBsMWVfZ2V0X3BhZ2UoeCkgICAg ICAgICAgIChfX21mbl90b19wYWdlKGwxZV9nZXRfcGZuKHgpKSkKLSNkZWZpbmUgbDJlX2dldF9w YWdlKHgpICAgICAgICAgICAoX19tZm5fdG9fcGFnZShsMmVfZ2V0X3Bmbih4KSkpCi0jZGVmaW5l IGwzZV9nZXRfcGFnZSh4KSAgICAgICAgICAgKF9fbWZuX3RvX3BhZ2UobDNlX2dldF9wZm4oeCkp KQotI2RlZmluZSBsNGVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIChfX21mbl90b19wYWdlKGw0ZV9n ZXRfcGZuKHgpKSkKKyNkZWZpbmUgbDFlX2dldF9wYWdlKHgpICAgICAgICAgICAoX19tZm5fdG9f cGFnZShsMWVfZ2V0X21mbih4KSkpCisjZGVmaW5lIGwyZV9nZXRfcGFnZSh4KSAgICAgICAgICAg KF9fbWZuX3RvX3BhZ2UobDJlX2dldF9tZm4oeCkpKQorI2RlZmluZSBsM2VfZ2V0X3BhZ2UoeCkg ICAgICAgICAgIChfX21mbl90b19wYWdlKGwzZV9nZXRfbWZuKHgpKSkKKyNkZWZpbmUgbDRlX2dl dF9wYWdlKHgpICAgICAgICAgICAoX19tZm5fdG9fcGFnZShsNGVfZ2V0X21mbih4KSkpCiAKIC8q IEdldCBwdGUgYWNjZXNzIGZsYWdzICh1bnNpZ25lZCBpbnQpLiAqLwogI2RlZmluZSBsMWVfZ2V0 X2ZsYWdzKHgpICAgICAgICAgICAoZ2V0X3B0ZV9mbGFncygoeCkubDEpKQpAQCAtMTU3LDEwICsx NTcsMTAgQEAgc3RhdGljIGlubGluZSBsNF9wZ2VudHJ5X3QgbDRlX2Zyb21fcGFkZHIocGFkZHJf dCBwYSwgdW5zaWduZWQgaW50IGZsYWdzKQogI2RlZmluZSBsNGVfZnJvbV9pbnRwdGUoaW50cHRl KSAgICAoKGw0X3BnZW50cnlfdCkgeyAoaW50cHRlX3QpKGludHB0ZSkgfSkKIAogLyogQ29uc3Ry dWN0IGEgcHRlIGZyb20gYSBwYWdlIHBvaW50ZXIgYW5kIGFjY2VzcyBmbGFncy4gKi8KLSNkZWZp bmUgbDFlX2Zyb21fcGFnZShwYWdlLCBmbGFncykgbDFlX2Zyb21fcGZuKF9fcGFnZV90b19tZm4o cGFnZSksIChmbGFncykpCi0jZGVmaW5lIGwyZV9mcm9tX3BhZ2UocGFnZSwgZmxhZ3MpIGwyZV9m cm9tX3BmbihfX3BhZ2VfdG9fbWZuKHBhZ2UpLCAoZmxhZ3MpKQotI2RlZmluZSBsM2VfZnJvbV9w YWdlKHBhZ2UsIGZsYWdzKSBsM2VfZnJvbV9wZm4oX19wYWdlX3RvX21mbihwYWdlKSwgKGZsYWdz KSkKLSNkZWZpbmUgbDRlX2Zyb21fcGFnZShwYWdlLCBmbGFncykgbDRlX2Zyb21fcGZuKF9fcGFn ZV90b19tZm4ocGFnZSksIChmbGFncykpCisjZGVmaW5lIGwxZV9mcm9tX3BhZ2UocGFnZSwgZmxh Z3MpIGwxZV9mcm9tX21mbihfX3BhZ2VfdG9fbWZuKHBhZ2UpLCAoZmxhZ3MpKQorI2RlZmluZSBs MmVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSBsMmVfZnJvbV9tZm4oX19wYWdlX3RvX21mbihwYWdl KSwgKGZsYWdzKSkKKyNkZWZpbmUgbDNlX2Zyb21fcGFnZShwYWdlLCBmbGFncykgbDNlX2Zyb21f bWZuKF9fcGFnZV90b19tZm4ocGFnZSksIChmbGFncykpCisjZGVmaW5lIGw0ZV9mcm9tX3BhZ2Uo cGFnZSwgZmxhZ3MpIGw0ZV9mcm9tX21mbihfX3BhZ2VfdG9fbWZuKHBhZ2UpLCAoZmxhZ3MpKQog CiAvKiBBZGQgZXh0cmEgZmxhZ3MgdG8gYW4gZXhpc3RpbmcgcHRlLiAqLwogI2RlZmluZSBsMWVf YWRkX2ZsYWdzKHgsIGZsYWdzKSAgICAoKHgpLmwxIHw9IHB1dF9wdGVfZmxhZ3MoZmxhZ3MpKQpA QCAtMjE1LDEzICsyMTUsMTMgQEAgc3RhdGljIGlubGluZSBsNF9wZ2VudHJ5X3QgbDRlX2Zyb21f cGFkZHIocGFkZHJfdCBwYSwgdW5zaWduZWQgaW50IGZsYWdzKQogLyogUGFnZS10YWJsZSB0eXBl LiAqLwogdHlwZWRlZiBzdHJ1Y3QgeyB1NjQgcGZuOyB9IHBhZ2V0YWJsZV90OwogI2RlZmluZSBw YWdldGFibGVfZ2V0X3BhZGRyKHgpICAoKHBhZGRyX3QpKHgpLnBmbiA8PCBQQUdFX1NISUZUKQot I2RlZmluZSBwYWdldGFibGVfZ2V0X3BhZ2UoeCkgICBfX21mbl90b19wYWdlKCh4KS5wZm4pCisj ZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGFnZSh4KSAgIF9fbWZuX3RvX3BhZ2UocGFnZXRhYmxlX2dl dF9tZm4oeCkpCiAjZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGZuKHgpICAgICgoeCkucGZuKQogI2Rl ZmluZSBwYWdldGFibGVfZ2V0X21mbih4KSAgICBfbWZuKCgoeCkucGZuKSkKICNkZWZpbmUgcGFn ZXRhYmxlX2lzX251bGwoeCkgICAgKCh4KS5wZm4gPT0gMCkKICNkZWZpbmUgcGFnZXRhYmxlX2Zy b21fcGZuKHBmbikgKChwYWdldGFibGVfdCkgeyAocGZuKSB9KQogI2RlZmluZSBwYWdldGFibGVf ZnJvbV9tZm4obWZuKSAoKHBhZ2V0YWJsZV90KSB7IG1mbl94KG1mbikgfSkKLSNkZWZpbmUgcGFn ZXRhYmxlX2Zyb21fcGFnZShwZykgcGFnZXRhYmxlX2Zyb21fcGZuKF9fcGFnZV90b19tZm4ocGcp KQorI2RlZmluZSBwYWdldGFibGVfZnJvbV9wYWdlKHBnKSBwYWdldGFibGVfZnJvbV9tZm4oX19w YWdlX3RvX21mbihwZykpCiAjZGVmaW5lIHBhZ2V0YWJsZV9mcm9tX3BhZGRyKHApIHBhZ2V0YWJs ZV9mcm9tX3BmbigocCk+PlBBR0VfU0hJRlQpCiAjZGVmaW5lIHBhZ2V0YWJsZV9udWxsKCkgICAg ICAgIHBhZ2V0YWJsZV9mcm9tX3BmbigwKQogCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCB2b2lkIGNv cHlfcGFnZV9zc2UyKHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKICNkZWZpbmUgX19tZm5fdG9fdmly dChtZm4pICAobWFkZHJfdG9fdmlydCgocGFkZHJfdCkobWZuKSA8PCBQQUdFX1NISUZUKSkKIAog LyogQ29udmVydCBiZXR3ZWVuIG1hY2hpbmUgZnJhbWUgbnVtYmVycyBhbmQgcGFnZS1pbmZvIHN0 cnVjdHVyZXMuICovCi0jZGVmaW5lIF9fbWZuX3RvX3BhZ2UobWZuKSAgKGZyYW1lX3RhYmxlICsg cGZuX3RvX3BkeChtZm4pKQotI2RlZmluZSBfX3BhZ2VfdG9fbWZuKHBnKSAgIHBkeF90b19wZm4o KHVuc2lnbmVkIGxvbmcpKChwZykgLSBmcmFtZV90YWJsZSkpCisjZGVmaW5lIF9fbWZuX3RvX3Bh Z2UobWZuKSAgKGZyYW1lX3RhYmxlICsgcGZuX3RvX3BkeChtZm5feChtZm4pKSkKKyNkZWZpbmUg X19wYWdlX3RvX21mbihwZykgICBfbWZuKHBkeF90b19wZm4oKHVuc2lnbmVkIGxvbmcpKChwZykg LSBmcmFtZV90YWJsZSkpKQogCiAvKiBDb252ZXJ0IGJldHdlZW4gbWFjaGluZSBhZGRyZXNzZXMg YW5kIHBhZ2UtaW5mbyBzdHJ1Y3R1cmVzLiAqLwotI2RlZmluZSBfX21hZGRyX3RvX3BhZ2UobWEp IF9fbWZuX3RvX3BhZ2UoKG1hKSA+PiBQQUdFX1NISUZUKQotI2RlZmluZSBfX3BhZ2VfdG9fbWFk ZHIocGcpICgocGFkZHJfdClfX3BhZ2VfdG9fbWZuKHBnKSA8PCBQQUdFX1NISUZUKQorI2RlZmlu ZSBfX21hZGRyX3RvX3BhZ2UobWEpIF9fbWZuX3RvX3BhZ2UobWFkZHJfdG9fbWZuKG1hKSkKKyNk ZWZpbmUgX19wYWdlX3RvX21hZGRyKHBnKSAobWZuX3RvX21hZGRyKF9fcGFnZV90b19tZm4ocGcp KSkKIAogLyogQ29udmVydCBiZXR3ZWVuIGZyYW1lIG51bWJlciBhbmQgYWRkcmVzcyBmb3JtYXRz LiAgKi8KICNkZWZpbmUgX19wZm5fdG9fcGFkZHIocGZuKSAoKHBhZGRyX3QpKHBmbikgPDwgUEFH RV9TSElGVCkKQEAgLTI3Myw4ICsyNzMsOCBAQCB2b2lkIGNvcHlfcGFnZV9zc2UyKHZvaWQgKiwg Y29uc3Qgdm9pZCAqKTsKICNkZWZpbmUgcGZuX3RvX3BhZGRyKHBmbikgICBfX3Bmbl90b19wYWRk cihwZm4pCiAjZGVmaW5lIHBhZGRyX3RvX3BmbihwYSkgICAgX19wYWRkcl90b19wZm4ocGEpCiAj ZGVmaW5lIHBhZGRyX3RvX3BkeChwYSkgICAgcGZuX3RvX3BkeChwYWRkcl90b19wZm4ocGEpKQot I2RlZmluZSB2bWFwX3RvX21mbih2YSkgICAgIGwxZV9nZXRfcGZuKCp2aXJ0X3RvX3hlbl9sMWUo KHVuc2lnbmVkIGxvbmcpKHZhKSkpCi0jZGVmaW5lIHZtYXBfdG9fcGFnZSh2YSkgICAgbWZuX3Rv X3BhZ2Uodm1hcF90b19tZm4odmEpKQorI2RlZmluZSB2bWFwX3RvX21mbih2YSkgICAgIF9tZm4o bDFlX2dldF9wZm4oKnZpcnRfdG9feGVuX2wxZSgodW5zaWduZWQgbG9uZykodmEpKSkpCisjZGVm aW5lIHZtYXBfdG9fcGFnZSh2YSkgICAgX19tZm5fdG9fcGFnZSh2bWFwX3RvX21mbih2YSkpCiAK ICNlbmRpZiAvKiAhZGVmaW5lZChfX0FTU0VNQkxZX18pICovCiAKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi9kb21haW5fcGFnZS5oIGIveGVuL2luY2x1ZGUveGVuL2RvbWFpbl9wYWdlLmgK aW5kZXggODkwYmFlNWI5Yy4uMjJhYjY1YmExNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu L2RvbWFpbl9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2RvbWFpbl9wYWdlLmgKQEAgLTM0 LDcgKzM0LDcgQEAgdm9pZCB1bm1hcF9kb21haW5fcGFnZShjb25zdCB2b2lkICp2YSk7CiAvKiAK ICAqIEdpdmVuIGEgVkEgZnJvbSBtYXBfZG9tYWluX3BhZ2UoKSwgcmV0dXJuIGl0cyB1bmRlcmx5 aW5nIE1GTi4KICAqLwotdW5zaWduZWQgbG9uZyBkb21haW5fcGFnZV9tYXBfdG9fbWZuKGNvbnN0 IHZvaWQgKnZhKTsKK21mbl90IGRvbWFpbl9wYWdlX21hcF90b19tZm4oY29uc3Qgdm9pZCAqdmEp OwogCiAvKgogICogU2ltaWxhciB0byB0aGUgYWJvdmUgY2FsbHMsIGV4Y2VwdCB0aGUgbWFwcGlu ZyBpcyBhY2Nlc3NpYmxlIGluIGFsbApAQCAtNDQsMTEgKzQ0LDExIEBAIHVuc2lnbmVkIGxvbmcg ZG9tYWluX3BhZ2VfbWFwX3RvX21mbihjb25zdCB2b2lkICp2YSk7CiB2b2lkICptYXBfZG9tYWlu X3BhZ2VfZ2xvYmFsKG1mbl90IG1mbik7CiB2b2lkIHVubWFwX2RvbWFpbl9wYWdlX2dsb2JhbChj b25zdCB2b2lkICp2YSk7CiAKLSNkZWZpbmUgX19tYXBfZG9tYWluX3BhZ2UocGcpICAgICAgICBt YXBfZG9tYWluX3BhZ2UoX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkpCisjZGVmaW5lIF9fbWFwX2Rv bWFpbl9wYWdlKHBnKSAgICAgICAgbWFwX2RvbWFpbl9wYWdlKF9fcGFnZV90b19tZm4ocGcpKQog CiBzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChjb25zdCBzdHJ1 Y3QgcGFnZV9pbmZvICpwZykKIHsKLSAgICByZXR1cm4gbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChf bWZuKF9fcGFnZV90b19tZm4ocGcpKSk7CisgICAgcmV0dXJuIG1hcF9kb21haW5fcGFnZV9nbG9i YWwocGFnZV90b19tZm4ocGcpKTsKIH0KIAogI2Vsc2UgLyogIUNPTkZJR19ET01BSU5fUEFHRSAq LwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWFwX2RvbWFpbl9wYWdl X2dsb2JhbChjb25zdCBzdHJ1Y3QgcGFnZV9pbmZvICpwZykKICNkZWZpbmUgbWFwX2RvbWFpbl9w YWdlKG1mbikgICAgICAgICAgICAgICAgX19tZm5fdG9fdmlydChtZm5feChtZm4pKQogI2RlZmlu ZSBfX21hcF9kb21haW5fcGFnZShwZykgICAgICAgICAgICAgICBwYWdlX3RvX3ZpcnQocGcpCiAj ZGVmaW5lIHVubWFwX2RvbWFpbl9wYWdlKHZhKSAgICAgICAgICAgICAgICgodm9pZCkodmEpKQot I2RlZmluZSBkb21haW5fcGFnZV9tYXBfdG9fbWZuKHZhKSAgICAgICAgICB2aXJ0X3RvX21mbigo dW5zaWduZWQgbG9uZykodmEpKQorI2RlZmluZSBkb21haW5fcGFnZV9tYXBfdG9fbWZuKHZhKSAg ICAgICAgICBfbWZuKHZpcnRfdG9fbWZuKCh1bnNpZ25lZCBsb25nKSh2YSkpKQogCiBzdGF0aWMg aW5saW5lIHZvaWQgKm1hcF9kb21haW5fcGFnZV9nbG9iYWwobWZuX3QgbWZuKQogewpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL3RtZW1feGVuLmggYi94ZW4vaW5jbHVkZS94ZW4vdG1lbV94 ZW4uaAppbmRleCA1NDJjMGIzZjIwLi44NTE2YTBiMTMxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vdG1lbV94ZW4uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaApAQCAtMjUs NyArMjUsNyBAQAogdHlwZWRlZiB1aW50MzJfdCBwYWdlc2l6ZV90OyAgLyogbGlrZSBzaXplX3Qs IG11c3QgaGFuZGxlIGxhcmdlc3QgUEFHRV9TSVpFICovCiAKICNkZWZpbmUgSVNfUEFHRV9BTElH TkVEKGFkZHIpIElTX0FMSUdORUQoKHVuc2lnbmVkIGxvbmcpKGFkZHIpLCBQQUdFX1NJWkUpCi0j ZGVmaW5lIElTX1ZBTElEX1BBR0UoX3BpKSAgICBtZm5fdmFsaWQoX21mbihwYWdlX3RvX21mbihf cGkpKSkKKyNkZWZpbmUgSVNfVkFMSURfUEFHRShfcGkpICAgIG1mbl92YWxpZChwYWdlX3RvX21m bihfcGkpKQogCiBleHRlcm4gc3RydWN0IHBhZ2VfbGlzdF9oZWFkIHRtZW1fcGFnZV9saXN0Owog ZXh0ZXJuIHNwaW5sb2NrX3QgdG1lbV9wYWdlX2xpc3RfbG9jazsKLS0gCjIuMTEuMAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=