From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v4 16/16] xen: Convert page_to_mfn and mfn_to_page to use typesafe MFN Date: Wed, 21 Feb 2018 14:02:59 +0000 Message-ID: <20180221140259.29360-17-julien.grall@arm.com> References: <20180221140259.29360-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180221140259.29360-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Jun Nakajima , Kevin Tian , Stefano Stabellini , Wei Liu , Suravee Suthikulpanit , Razvan Cojocaru , George Dunlap , Andrew Cooper , 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 LgoKU28gbWFrZSBwYWdlX3RvX21mbiBhbmQgbWZuX3RvX3BhZ2UgcmV0dXJuIG1mbl90IGJ5IGRl ZmF1bHQuIFRoZSBfXyoKdmVyc2lvbiBhcmUgbm93IGRyb3BwZWQgYXMgdGhpcyBwYXRjaCB3aWxs IGNvbnZlcnQgYWxsIHRoZSByZW1haW5pbmcKbm9uLXR5cGVzYWZlIGNhbGxlcnMuCgpPbmx5IHJl YXNvbmFibGUgY2xlYW4tdXBzIGFyZSBkb25lIGluIHRoaXMgcGF0Y2guIFRoZSByZXN0IHdpbGwg dXNlCl9tZm4vbWZuX3ggZm9yIHRoZSB0aW1lIGJlaW5nLgoKTGFzdGx5LCBkb21haW5fcGFnZV90 b19tZm4gaXMgYWxzbyBjb252ZXJ0ZWQgdG8gdXNlIG1mbl90IGdpdmVuIHRoYXQKbW9zdCBvZiB0 aGUgY2FsbGVycyBhcmUgbm93IHN3aXRjaGVkIHRvIF9tZm4oZG9tYWluX3BhZ2VfdG9fbWZuKC4u LikpLgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4K Ci0tLQoKQW5kcmV3IHN1Z2dlc3RlZCB0byBkcm9wIElTX1ZBTElEX1BBR0UgaW4geGVuL3RtZW1f eGVuLmguIEhpcyBjb21tZW50CndhczoKCiIvc2lnaCAgVGhpcyBpcyB0YXV0b2xvZ2ljYWwuICBU aGUgZGVmaW5pdGlvbiBvZiBhICJ2YWxpZCBtZm4iIGluIHRoaXMKY2FzZSBpcyBvbmUgZm9yIHdo aWNoIHdlIGhhdmUgZnJhbWV0YWJsZSBlbnRyeSwgYW5kIGJ5IGhhdmluZyBhIHN0cnVjdApwYWdl X2luZm8gaW4gb3VyIGhhbmRzLCB0aGlzIGlzIGJ5IGRlZmluaXRpb24gdHJ1ZSAodW5sZXNzIHlv dSBoYXZlIGEKd2lsZCBwb2ludGVyLCBhdCB3aGljaCBwb2ludCB5b3VyIGJ1ZyBpcyBlbHNld2hl cmUpLgoKSVNfVkFMSURfUEFHRSgpIGlzIG9ubHkgZXZlciB1c2VkIGluIGFzc2VydGlvbnMgYW5k IG5ldmVyIHVzZWZ1bGx5LCBzbwppbnN0ZWFkIEkgd291bGQgcmVtb3ZlIGl0IGVudGlyZWx5IHJh dGhlciB0aGFuIHRyeWluZyB0byBmaXggaXQgdXAuIgoKSSBjYW4gcmVtb3ZlIHRoZSBmdW5jdGlv biBpbiBhIHNlcGFyYXRlIHBhdGNoIGF0IHRoZSBiZWdpbmluZyBvZiB0aGUKc2VyaWVzIGlmIEtv bnJhZCAoVE1FTSBtYWludGFpbmVyKSBpcyBoYXBweSB3aXRoIHRoYXQuCgpDYzogU3RlZmFubyBT dGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxp ZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNj OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndp bGtAb3JhY2xlLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRl ZmVuZGVyLmNvbT4KQ2M6IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGtsZW5neWVsLmNvbT4KQ2M6 IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CkNjOiBCb3JpcyBPc3Ryb3Zz a3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDYzogU3VyYXZlZSBTdXRoaWt1bHBhbml0 IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KQ2M6IEp1biBOYWthamltYSA8anVuLm5h a2FqaW1hQGludGVsLmNvbT4KQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpD YzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogR2FuZyBX ZWkgPGdhbmcud2VpQGludGVsLmNvbT4KQ2M6IFNoYW5lIFdhbmcgPHNoYW5lLndhbmdAaW50ZWwu Y29tPgoKICAgIENoYW5nZXMgaW4gdjQ6CiAgICAgICAgLSBEcm9wIF9fcGFnZV90b19tZm4gYW5k IF9fbWZuX3RvX3BhZ2UuIFJld29yZCB0aGUgY29tbWl0CiAgICAgICAgdGl0bGUvbWVzc2FnZSB0 byByZWZsZWN0IHRoYXQuCgogICAgQ2hhbmdlcyBpbiB2MzoKICAgICAgICAtIFJlYmFzZSBvbiB0 aGUgbGF0ZXN0IHN0YWdpbmcgYW5kIGZpeCBzb21lIGNvbmZsaWN0cy4gVGFncwogICAgICAgIGhh dmVuJ3QgYmUgcmV0YWluZWQuCiAgICAgICAgLSBTd2l0Y2ggdGhlIHByaW50ZiBmb3JtYXQgdG8g UFJJX21mbgoKICAgIENoYW5nZXMgaW4gdjI6CiAgICAgICAgLSBTb21lIHBhcnQgaGF2ZSBiZWVu IG1vdmVkIGluIHNlcGFyYXRlIHBhdGNoCiAgICAgICAgLSBSZW1vdmUgb25lIHNwdXJpb3VzIGNv bW1lbnQKICAgICAgICAtIENvbnZlcnQgZG9tYWluX3BhZ2VfdG9fbWZuIHRvIHVzZSBtZm5fdAot LS0KIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyAgICAgICAgICAgICB8ICAyIC0tCiB4ZW4v YXJjaC9hcm0va2VybmVsLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gvYXJt L21lbV9hY2Nlc3MuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL2FybS9tbS5jICAg ICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC9hcm0vcDJtLmMgICAg ICAgICAgICAgICAgICAgICAgfCAxMCArKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvY3B1L3ZwbXUu YyAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAg ICAgICAgICAgICAgfCAyMSArKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9kb21h aW5fcGFnZS5jICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L2h2bS9kbS5j ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5j ICAgICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAg ICAgICAgIHwgIDYgKysrLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAg ICAgfCAxMiArKysrKystLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAgICAg ICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMgICAgICAgICAgICAgICB8 ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICAgICAgICAgICAgfCAgNCArKy0t CiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMgICAgICAgICAgICAgfCAgNiArKystLS0KIHhl bi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYyAgICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94 ODYvaHZtL3ZteC92dm14LmMgICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9t bS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0IC0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9ndWVz dF93YWxrLmMgICAgICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L21tL2hhcC9ndWVz dF93YWxrLmMgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAgICAg ICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfZXB0LmMgICAg ICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jICAgICAgICAgICB8ICA1 IC0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAgICAgICAgICAgfCAgOCArKysr LS0tLQogeGVuL2FyY2gveDg2L21tL3AybS1wb2QuYyAgICAgICAgICAgICAgIHwgIDYgLS0tLS0t CiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhl bi9hcmNoL3g4Ni9tbS9wYWdpbmcuYyAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmggICAgICAgIHwgMTYgKystLS0tLS0tLS0tLS0tLQog eGVuL2FyY2gveDg2L251bWEuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNo L3g4Ni9waHlzZGV2LmMgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvcHYv Y2FsbGJhY2suYyAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9hcmNoL3g4Ni9wdi9kZXNj cmlwdG9yLXRhYmxlcy5jICAgICB8ICA2IC0tLS0tLQogeGVuL2FyY2gveDg2L3B2L2RvbTBfYnVp bGQuYyAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9wdi9kb21h aW4uYyAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2FyY2gveDg2L3B2L2VtdWwtZ2F0 ZS1vcC5jICAgICAgICAgIHwgIDYgLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9w LmMgICAgICAgICAgfCAxMCAtLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvZ3JhbnRfdGFibGUu YyAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9hcmNoL3g4Ni9wdi9yby1wYWdlLWZhdWx0LmMg ICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2FyY2gveDg2L3B2L3NoaW0uYyAgICAgICAgICAgICAg ICAgIHwgIDQgKy0tLQogeGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgICAgICAgIHwg IDYgLS0tLS0tCiB4ZW4vYXJjaC94ODYvdGJvb3QuYyAgICAgICAgICAgICAgICAgICAgfCAgNCAr Ky0tCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiB4 ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgICAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9j b21tb24vZG9tYWluLmMgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9jb21tb24v Z3JhbnRfdGFibGUuYyAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2NvbW1vbi9raW1h Z2UuYyAgICAgICAgICAgICAgICAgICAgIHwgIDYgLS0tLS0tCiB4ZW4vY29tbW9uL21lbW9yeS5j ICAgICAgICAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5j ICAgICAgICAgICAgICAgICB8ICA2IC0tLS0tLQogeGVuL2NvbW1vbi90bWVtLmMgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9jb21tb24vdG1lbV94ZW4uYyAgICAgICAgICAgICAg ICAgICB8ICA0IC0tLS0KIHhlbi9jb21tb24vdHJhY2UuYyAgICAgICAgICAgICAgICAgICAgICB8 ICA0ICsrLS0KIHhlbi9jb21tb24vdm1hcC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICst LS0tLQogeGVuL2NvbW1vbi94ZW5vcHJvZi5jICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYyB8IDEyICsrKysrKy0tLS0tLQog eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgICAgIHwgIDIgKy0KIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20t YXJtL21tLmggICAgICAgICAgICAgICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2lu Y2x1ZGUvYXNtLWFybS9wMm0uaCAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2luY2x1ZGUv YXNtLXg4Ni9tbS5oICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiB4ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9wYWdlLmggICAgICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0KIHhlbi9pbmNsdWRlL3hlbi9kb21haW5fcGFnZS5oICAgICAgICAgICB8ICA4ICsrKystLS0t CiB4ZW4vaW5jbHVkZS94ZW4vbW0uaCAgICAgICAgICAgICAgICAgICAgfCAgNSAtLS0tLQogeGVu L2luY2x1ZGUveGVuL3RtZW1feGVuLmggICAgICAgICAgICAgIHwgIDIgKy0KIDY2IGZpbGVzIGNo YW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAyODUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j CmluZGV4IDE1NWM5NTIzNDkuLmZkNmMyNDgyZGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9k b21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKQEAgLTQ5LDgg KzQ5LDYgQEAgc3RydWN0IG1hcF9yYW5nZV9kYXRhCiAvKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBh c20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KICN1bmRlZiB2aXJ0X3Rv X21mbgogI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgX21mbihfX3ZpcnRfdG9fbWZuKHZhKSkKLSN1 bmRlZiBwYWdlX3RvX21mbgotI2RlZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9f bWZuKHBnKSkKIAogLy8jZGVmaW5lIERFQlVHXzExX0FMTE9DQVRJT04KICNpZmRlZiBERUJVR18x MV9BTExPQ0FUSU9OCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0va2VybmVsLmMgYi94ZW4vYXJj aC9hcm0va2VybmVsLmMKaW5kZXggMmZiMGI5Njg0ZC4uOGZkZmQ5MTU0MyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2tlcm5lbC5jCisrKyBiL3hlbi9hcmNoL2FybS9rZXJuZWwuYwpAQCAtMjg2 LDcgKzI4Niw3IEBAIHN0YXRpYyBfX2luaXQgaW50IGtlcm5lbF9kZWNvbXByZXNzKHN0cnVjdCBi b290bW9kdWxlICptb2QpCiAgICAgICAgIGlvdW5tYXAoaW5wdXQpOwogICAgICAgICByZXR1cm4g LUVOT01FTTsKICAgICB9Ci0gICAgbWZuID0gX21mbihwYWdlX3RvX21mbihwYWdlcykpOworICAg IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2VzKTsKICAgICBvdXRwdXQgPSBfX3ZtYXAoJm1mbiwgMSA8 PCBrZXJuZWxfb3JkZXJfb3V0LCAxLCAxLCBQQUdFX0hZUEVSVklTT1IsIFZNQVBfREVGQVVMVCk7 CiAKICAgICByYyA9IHBlcmZvcm1fZ3VuemlwKG91dHB1dCwgaW5wdXQsIHNpemUpOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL21lbV9hY2Nlc3MuYyBiL3hlbi9hcmNoL2FybS9tZW1fYWNjZXNz LmMKaW5kZXggMGYyY2JiODFkMy4uMTEyZTI5MWNiYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJt L21lbV9hY2Nlc3MuYworKysgYi94ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5jCkBAIC0yMTAsNyAr MjEwLDcgQEAgcDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dldF9wYWdlKHZhZGRyX3QgZ3ZhLCB1 bnNpZ25lZCBsb25nIGZsYWcsCiAgICAgaWYgKCB0ICE9IHAybV9yYW1fcncgKQogICAgICAgICBn b3RvIGVycjsKIAotICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm5feChtZm4pKTsKKyAgICBwYWdl ID0gbWZuX3RvX3BhZ2UobWZuKTsKIAogICAgIGlmICggdW5saWtlbHkoIWdldF9wYWdlKHBhZ2Us IHYtPmRvbWFpbikpICkKICAgICAgICAgcGFnZSA9IE5VTEw7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vbW0uYyBiL3hlbi9hcmNoL2FybS9tbS5jCmluZGV4IGRiNzQ0NjZhMTYuLjUxMGE1YTIw NTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9tbS5jCisrKyBiL3hlbi9hcmNoL2FybS9tbS5j CkBAIC00NzcsNyArNDc3LDcgQEAgdm9pZCB1bm1hcF9kb21haW5fcGFnZShjb25zdCB2b2lkICp2 YSkKICAgICBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgZG9t YWluX3BhZ2VfbWFwX3RvX21mbihjb25zdCB2b2lkICpwdHIpCittZm5fdCBkb21haW5fcGFnZV9t YXBfdG9fbWZuKGNvbnN0IHZvaWQgKnB0cikKIHsKICAgICB1bnNpZ25lZCBsb25nIHZhID0gKHVu c2lnbmVkIGxvbmcpcHRyOwogICAgIGxwYWVfdCAqbWFwID0gdGhpc19jcHUoeGVuX2RvbW1hcCk7 CkBAIC00ODUsMTIgKzQ4NSwxMiBAQCB1bnNpZ25lZCBsb25nIGRvbWFpbl9wYWdlX21hcF90b19t Zm4oY29uc3Qgdm9pZCAqcHRyKQogICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gKHZhPj5USElS RF9TSElGVCkgJiBMUEFFX0VOVFJZX01BU0s7CiAKICAgICBpZiAoIHZhID49IFZNQVBfVklSVF9T VEFSVCAmJiB2YSA8IFZNQVBfVklSVF9FTkQgKQotICAgICAgICByZXR1cm4gX192aXJ0X3RvX21m bih2YSk7CisgICAgICAgIHJldHVybiB2aXJ0X3RvX21mbih2YSk7CiAKICAgICBBU1NFUlQoc2xv dCA+PSAwICYmIHNsb3QgPCBET01IRUFQX0VOVFJJRVMpOwogICAgIEFTU0VSVChtYXBbc2xvdF0u cHQuYXZhaWwgIT0gMCk7CiAKLSAgICByZXR1cm4gbWFwW3Nsb3RdLnB0LmJhc2UgKyBvZmZzZXQ7 CisgICAgcmV0dXJuIF9tZm4obWFwW3Nsb3RdLnB0LmJhc2UgKyBvZmZzZXQpOwogfQogI2VuZGlm CiAKQEAgLTEyODcsNyArMTI4Nyw3IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKAog ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAotICAgICAgICBtZm4gPSBf bWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKTsKKyAgICAgICAgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7 CiAgICAgICAgIHQgPSBwMm1fbWFwX2ZvcmVpZ247CiAKICAgICAgICAgcmN1X3VubG9ja19kb21h aW4ob2QpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3Ay bS5jCmluZGV4IDY1ZThiOWM2ZWEuLjhiMTZjODMyMmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9wMm0uYworKysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTM3LDEyICszNyw2IEBAIHN0YXRp YyB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBtYXhfdm1pZCA9IE1BWF9WTUlEXzhfQklUOwog CiAjZGVmaW5lIFAyTV9ST09UX1BBR0VTICAgICgxPDxQMk1fUk9PVF9PUkRFUikKIAotLyogT3Zl cnJpZGUgbWFjcm9zIGZyb20gYXNtL21tLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAq LwotI3VuZGVmIG1mbl90b19wYWdlCi0jZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9f cGFnZShtZm5feChtZm4pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZu KHBnKSBfbWZuKF9fcGFnZV90b19tZm4ocGcpKQotCiB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3Rs eSBwMm1faXBhX2JpdHM7CiAKIC8qIEhlbHBlcnMgdG8gbG9va3VwIHRoZSBwcm9wZXJ0aWVzIG9m IGVhY2ggbGV2ZWwgKi8KQEAgLTkwLDggKzg0LDggQEAgdm9pZCBkdW1wX3AybV9sb29rdXAoc3Ry dWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBhZGRyKQogCiAgICAgcHJpbnRrKCJkb20lZCBJUEEgMHgl IlBSSXBhZGRyIlxuIiwgZC0+ZG9tYWluX2lkLCBhZGRyKTsKIAotICAgIHByaW50aygiUDJNIEAg JXAgbWZuOjB4JWx4XG4iLAotICAgICAgICAgICBwMm0tPnJvb3QsIF9fcGFnZV90b19tZm4ocDJt LT5yb290KSk7CisgICAgcHJpbnRrKCJQMk0gQCAlcCBtZm46JSMiUFJJX21mbiJcbiIsCisgICAg ICAgICAgIHAybS0+cm9vdCwgbWZuX3gocGFnZV90b19tZm4ocDJtLT5yb290KSkpOwogCiAgICAg ZHVtcF9wdF93YWxrKHBhZ2VfdG9fbWFkZHIocDJtLT5yb290KSwgYWRkciwKICAgICAgICAgICAg ICAgICAgUDJNX1JPT1RfTEVWRUwsIFAyTV9ST09UX1BBR0VTKTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9jcHUvdnBtdS5jIGIveGVuL2FyY2gveDg2L2NwdS92cG11LmMKaW5kZXggN2JhZjQ2 MTRiZS4uYjk3OGUwNTYxMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS92cG11LmMKKysr IGIveGVuL2FyY2gveDg2L2NwdS92cG11LmMKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgdm9p ZCBwdnBtdV9maW5pc2goc3RydWN0IGRvbWFpbiAqZCwgeGVuX3BtdV9wYXJhbXNfdCAqcGFyYW1z KQogewogICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgIHN0cnVjdCB2cG11X3N0cnVjdCAqdnBtdTsK LSAgICB1aW50NjRfdCBtZm47CisgICAgbWZuX3QgbWZuOwogICAgIHZvaWQgKnhlbnBtdV9kYXRh OwogCiAgICAgaWYgKCAocGFyYW1zLT52Y3B1ID49IGQtPm1heF92Y3B1cykgfHwgKGQtPnZjcHVb cGFyYW1zLT52Y3B1XSA9PSBOVUxMKSApCkBAIC02NzUsNyArNjc1LDcgQEAgc3RhdGljIHZvaWQg cHZwbXVfZmluaXNoKHN0cnVjdCBkb21haW4gKmQsIHhlbl9wbXVfcGFyYW1zX3QgKnBhcmFtcykK ICAgICBpZiAoIHhlbnBtdV9kYXRhICkKICAgICB7CiAgICAgICAgIG1mbiA9IGRvbWFpbl9wYWdl X21hcF90b19tZm4oeGVucG11X2RhdGEpOwotICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKF9tZm4o bWZuKSkpOworICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbikpOwogICAgICAgICB1bm1hcF9k b21haW5fcGFnZV9nbG9iYWwoeGVucG11X2RhdGEpOwogICAgICAgICBwdXRfcGFnZV9hbmRfdHlw ZShtZm5fdG9fcGFnZShtZm4pKTsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9t YWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXggZjkzMzI3YjBhMi4uNDRiYTUyYjdi YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9k b21haW4uYwpAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgZHVtcF9wYWdlZnJhbWVfaW5mbyhzdHJ1 Y3QgZG9tYWluICpkKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg ICAgIHByaW50aygiICAgIERvbVBhZ2UgJXA6IGNhZj0lMDhseCwgdGFmPSUiIFBSdHlwZV9pbmZv ICJcbiIsCi0gICAgICAgICAgICAgICAgICAgX3AocGFnZV90b19tZm4ocGFnZSkpLAorICAgICAg ICAgICAgICAgICAgIF9wKG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSksCiAgICAgICAgICAgICAg ICAgICAgcGFnZS0+Y291bnRfaW5mbywgcGFnZS0+dS5pbnVzZS50eXBlX2luZm8pOwogICAgICAg ICB9CiAgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5wYWdlX2FsbG9jX2xvY2spOwpAQCAtMjA4LDcg KzIwOCw3IEBAIHZvaWQgZHVtcF9wYWdlZnJhbWVfaW5mbyhzdHJ1Y3QgZG9tYWluICpkKQogICAg IHBhZ2VfbGlzdF9mb3JfZWFjaCAoIHBhZ2UsICZkLT54ZW5wYWdlX2xpc3QgKQogICAgIHsKICAg ICAgICAgcHJpbnRrKCIgICAgWGVuUGFnZSAlcDogY2FmPSUwOGx4LCB0YWY9JSIgUFJ0eXBlX2lu Zm8gIlxuIiwKLSAgICAgICAgICAgICAgIF9wKHBhZ2VfdG9fbWZuKHBhZ2UpKSwKKyAgICAgICAg ICAgICAgIF9wKG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSksCiAgICAgICAgICAgICAgICBwYWdl LT5jb3VudF9pbmZvLCBwYWdlLT51LmludXNlLnR5cGVfaW5mbyk7CiAgICAgfQogICAgIHNwaW5f dW5sb2NrKCZkLT5wYWdlX2FsbG9jX2xvY2spOwpAQCAtNjM1LDcgKzYzNSw4IEBAIGludCBhcmNo X2RvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgc3RydWN0IHBhZ2VfaW5m byAqcGFnZSA9IHZpcnRfdG9fcGFnZShkLT5zaGFyZWRfaW5mbyksICpuZXdfcGFnZTsKICAgICBp bnQgcmV0ID0gMDsKICAgICBzdHJ1Y3QgZG9tYWluICpvd25lcjsKLSAgICB1bnNpZ25lZCBsb25n IG1mbiwgZ2ZuOworICAgIG1mbl90IG1mbjsKKyAgICB1bnNpZ25lZCBsb25nIGdmbjsKICAgICBw Mm1fdHlwZV90IHAybXQ7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKQEAgLTY2OSw3ICs2NzAsNyBA QCBpbnQgYXJjaF9kb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpkKQogICAgIEFTU0VS VCggb3duZXIgPT0gZCApOwogCiAgICAgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7Ci0gICAgZ2Zu ID0gbWZuX3RvX2dtZm4oZCwgbWZuKTsKKyAgICBnZm4gPSBtZm5fdG9fZ21mbihkLCBtZm5feCht Zm4pKTsKIAogICAgIC8qCiAgICAgICogZ2ZuID09IElOVkFMSURfR0ZOIGluZGljYXRlcyB0aGF0 IHRoZSBzaGFyZWRfaW5mbyBwYWdlIHdhcyBuZXZlciBtYXBwZWQKQEAgLTY3OCw3ICs2NzksNyBA QCBpbnQgYXJjaF9kb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpkKQogICAgIGlmICgg Z2ZuID09IGdmbl94KElOVkFMSURfR0ZOKSApCiAgICAgICAgIGdvdG8gZXhpdF9wdXRfcGFnZTsK IAotICAgIGlmICggbWZuX3goZ2V0X2dmbl9xdWVyeShkLCBnZm4sICZwMm10KSkgIT0gbWZuICkK KyAgICBpZiAoICFtZm5fZXEoZ2V0X2dmbl9xdWVyeShkLCBnZm4sICZwMm10KSwgbWZuKSApCiAg ICAgewogICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJGYWlsZWQgdG8gZ2V0IERvbSVkJ3Mg c2hhcmVkX2luZm8gR0ZOICglbHgpXG4iLAogICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBn Zm4pOwpAQCAtNjk1LDcgKzY5Niw3IEBAIGludCBhcmNoX2RvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVj dCBkb21haW4gKmQpCiAgICAgICAgIGdvdG8gZXhpdF9wdXRfZ2ZuOwogICAgIH0KIAotICAgIHJl dCA9IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKG1mbiksIFBB R0VfT1JERVJfNEspOworICAgIHJldCA9IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dm bihnZm4pLCBtZm4sIFBBR0VfT1JERVJfNEspOwogICAgIGlmICggcmV0ICkKICAgICB7CiAgICAg ICAgIHByaW50ayhYRU5MT0dfR19FUlIgIkZhaWxlZCB0byByZW1vdmUgRG9tJWQncyBzaGFyZWRf aW5mbyBmcmFtZSAlbHhcbiIsCkBAIC03MDQsNyArNzA1LDcgQEAgaW50IGFyY2hfZG9tYWluX3Nv ZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgZ290byBleGl0X3B1dF9nZm47CiAg ICAgfQogCi0gICAgcmV0ID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBfZ2ZuKGdmbiksIF9t Zm4ocGFnZV90b19tZm4obmV3X3BhZ2UpKSwKKyAgICByZXQgPSBndWVzdF9waHlzbWFwX2FkZF9w YWdlKGQsIF9nZm4oZ2ZuKSwgcGFnZV90b19tZm4obmV3X3BhZ2UpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUEFHRV9PUkRFUl80Syk7CiAgICAgaWYgKCByZXQgKQogICAgIHsK QEAgLTEwMDIsNyArMTAwMyw3IEBAIGludCBhcmNoX3NldF9pbmZvX2d1ZXN0KAogICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCAocGFnZS0+dS5pbnVzZS50eXBlX2lu Zm8gJiBQR1RfdHlwZV9tYXNrKSA9PQogICAgICAgICAgICAgICAgICAgICAgICAgIFBHVF9sNF9w YWdlX3RhYmxlICkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPSAhZmlsbF9yb19tcHQo X21mbihwYWdlX3RvX21mbihwYWdlKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9 ICFmaWxsX3JvX21wdChwYWdlX3RvX21mbihwYWdlKSk7CiAKICAgICAgICAgICAgICAgICAgICAg cGFnZV91bmxvY2socGFnZSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTEzMSw3ICsxMTMyLDcg QEAgaW50IGFyY2hfc2V0X2luZm9fZ3Vlc3QoCiAgICAgICAgIGw0X3BnZW50cnlfdCAqbDR0YWI7 CiAKICAgICAgICAgbDR0YWIgPSBtYXBfZG9tYWluX3BhZ2UocGFnZXRhYmxlX2dldF9tZm4odi0+ YXJjaC5ndWVzdF90YWJsZSkpOwotICAgICAgICAqbDR0YWIgPSBsNGVfZnJvbV9wZm4ocGFnZV90 b19tZm4oY3IzX3BhZ2UpLAorICAgICAgICAqbDR0YWIgPSBsNGVfZnJvbV9tZm4ocGFnZV90b19t Zm4oY3IzX3BhZ2UpLAogICAgICAgICAgICAgX1BBR0VfUFJFU0VOVHxfUEFHRV9SV3xfUEFHRV9V U0VSfF9QQUdFX0FDQ0VTU0VEKTsKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDR0YWIpOwog ICAgIH0KQEAgLTE5OTcsNyArMTk5OCw3IEBAIGludCBkb21haW5fcmVsaW5xdWlzaF9yZXNvdXJj ZXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgaWYgKCBkLT5hcmNoLnBpcnFfZW9pX21hcCAh PSBOVUxMICkKICAgICAgICAgewogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2VfZ2xvYmFs KGQtPmFyY2gucGlycV9lb2lfbWFwKTsKLSAgICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKG1m bl90b19wYWdlKGQtPmFyY2gucGlycV9lb2lfbWFwX21mbikpOworICAgICAgICAgICAgcHV0X3Bh Z2VfYW5kX3R5cGUobWZuX3RvX3BhZ2UoX21mbihkLT5hcmNoLnBpcnFfZW9pX21hcF9tZm4pKSk7 CiAgICAgICAgICAgICBkLT5hcmNoLnBpcnFfZW9pX21hcCA9IE5VTEw7CiAgICAgICAgICAgICBk LT5hcmNoLmF1dG9fdW5tYXNrID0gMDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2RvbWFpbl9wYWdlLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwppbmRleCAzNDMy YTg1NGRkLi44ODA0NmIzOWM5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2Uu YworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwpAQCAtMzMxLDEzICszMzEsMTMgQEAg dm9pZCB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoY29uc3Qgdm9pZCAqcHRyKQogfQogCiAvKiBU cmFuc2xhdGUgYSBtYXAtZG9tYWluLXBhZ2UnZCBhZGRyZXNzIHRvIHRoZSB1bmRlcmx5aW5nIE1G TiAqLwotdW5zaWduZWQgbG9uZyBkb21haW5fcGFnZV9tYXBfdG9fbWZuKGNvbnN0IHZvaWQgKnB0 cikKK21mbl90IGRvbWFpbl9wYWdlX21hcF90b19tZm4oY29uc3Qgdm9pZCAqcHRyKQogewogICAg IHVuc2lnbmVkIGxvbmcgdmEgPSAodW5zaWduZWQgbG9uZylwdHI7CiAgICAgY29uc3QgbDFfcGdl bnRyeV90ICpwbDFlOwogCiAgICAgaWYgKCB2YSA+PSBESVJFQ1RNQVBfVklSVF9TVEFSVCApCi0g ICAgICAgIHJldHVybiB2aXJ0X3RvX21mbihwdHIpOworICAgICAgICByZXR1cm4gX21mbih2aXJ0 X3RvX21mbihwdHIpKTsKIAogICAgIGlmICggdmEgPj0gVk1BUF9WSVJUX1NUQVJUICYmIHZhIDwg Vk1BUF9WSVJUX0VORCApCiAgICAgewpAQCAtMzUwLDUgKzM1MCw1IEBAIHVuc2lnbmVkIGxvbmcg ZG9tYWluX3BhZ2VfbWFwX3RvX21mbihjb25zdCB2b2lkICpwdHIpCiAgICAgICAgIHBsMWUgPSAm X19saW5lYXJfbDFfdGFibGVbbDFfbGluZWFyX29mZnNldCh2YSldOwogICAgIH0KIAotICAgIHJl dHVybiBsMWVfZ2V0X3BmbigqcGwxZSk7CisgICAgcmV0dXJuIGwxZV9nZXRfbWZuKCpwbDFlKTsK IH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0v ZG0uYwppbmRleCA3Nzg4NTc3YTczLi5jZjFlNjAwOTk4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0xOTMsNyArMTkzLDcg QEAgc3RhdGljIGludCBtb2RpZmllZF9tZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAg ICAgICAgICAgKiBUaGVzZSBhcmUgbW9zdCBwcm9iYWJseSBub3QgcGFnZSB0YWJsZXMgYW55IG1v cmUKICAgICAgICAgICAgICAgICAgKiBkb24ndCB0YWtlIGEgbG9uZyB0aW1lIGFuZCBkb24ndCBk aWUgZWl0aGVyLgogICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIHNoX3JlbW92 ZV9zaGFkb3dzKGQsIF9tZm4ocGFnZV90b19tZm4ocGFnZSkpLCAxLCAwKTsKKyAgICAgICAgICAg ICAgICBzaF9yZW1vdmVfc2hhZG93cyhkLCBwYWdlX3RvX21mbihwYWdlKSwgMSwgMCk7CiAgICAg ICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L2h2 bS9kb20wX2J1aWxkLmMKaW5kZXggYWZlYmFlYzcwYi4uNzE3ZmZmZjU4NCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxkLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kb20w X2J1aWxkLmMKQEAgLTExOSw3ICsxMTksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwdmhfcG9wdWxh dGVfbWVtb3J5X3JhbmdlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICBjb250aW51ZTsK ICAgICAgICAgfQogCi0gICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBfZ2Zu KHN0YXJ0KSwgX21mbihwYWdlX3RvX21mbihwYWdlKSksCisgICAgICAgIHJjID0gZ3Vlc3RfcGh5 c21hcF9hZGRfcGFnZShkLCBfZ2ZuKHN0YXJ0KSwgcGFnZV90b19tZm4ocGFnZSksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcik7CiAgICAgICAgIGlmICggcmMgIT0g MCApCiAgICAgICAgIHsKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwdmhf c2V0dXBfdm14X3JlYWxtb2RlX2hlbHBlcnMoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiAgICAg d3JpdGVfMzJiaXRfcHNlX2lkZW50bWFwKGlkZW50X3B0KTsKICAgICB1bm1hcF9kb21haW5fcGFn ZShpZGVudF9wdCk7Ci0gICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UobWZuX3gobWZuKSkpOworICAg IHB1dF9wYWdlKG1mbl90b19wYWdlKG1mbikpOwogICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJh bXNbSFZNX1BBUkFNX0lERU5UX1BUXSA9IGdhZGRyOwogICAgIGlmICggcHZoX2FkZF9tZW1fcmFu Z2UoZCwgZ2FkZHIsIGdhZGRyICsgUEFHRV9TSVpFLCBFODIwX1JFU0VSVkVEKSApCiAgICAgICAg ICAgICBwcmludGsoIlVuYWJsZSB0byBzZXQgaWRlbnRpdHkgcGFnZSB0YWJsZXMgYXMgcmVzZXJ2 ZWQgaW4gdGhlIG1lbW9yeSBtYXBcbiIpOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBwdmhfc3RlYWxfbG93X3JhbShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IHN0YXJ0LAogCiAgICAgZm9yICggbWZuID0gc3RhcnQ7IG1mbiA8IHN0YXJ0ICsgbnJfcGFnZXM7 IG1mbisrICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnID0gbWZuX3RvX3Bh Z2UobWZuKTsKKyAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcgPSBtZm5fdG9fcGFnZShfbWZu KG1mbikpOwogICAgICAgICBpbnQgcmM7CiAKICAgICAgICAgcmMgPSB1bnNoYXJlX3hlbl9wYWdl X3dpdGhfZ3Vlc3QocGcsIGRvbV9pbyk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2Vt dWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCmluZGV4IDNiODI0NTUzYWIuLmZk ZDcxNzczMDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCkBAIC01OTEsNyArNTkxLDcgQEAgc3RhdGljIHZvaWQg Kmh2bWVtdWxfbWFwX2xpbmVhcl9hZGRyKAogICAgICAgICAgICAgZ290byB1bmhhbmRsZWFibGU7 CiAgICAgICAgIH0KIAotICAgICAgICAqbWZuKysgPSBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKTsK KyAgICAgICAgKm1mbisrID0gcGFnZV90b19tZm4ocGFnZSk7CiAKICAgICAgICAgaWYgKCBwMm1f aXNfZGlzY2FyZF93cml0ZShwMm10KSApCiAgICAgICAgIHsKQEAgLTYyMyw3ICs2MjMsNyBAQCBz dGF0aWMgdm9pZCAqaHZtZW11bF9tYXBfbGluZWFyX2FkZHIoCiAgb3V0OgogICAgIC8qIERyb3Ag YWxsIGhlbGQgcmVmZXJlbmNlcy4gKi8KICAgICB3aGlsZSAoIG1mbi0tID4gaHZtZW11bF9jdHh0 LT5tZm4gKQotICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZShtZm5feCgqbWZuKSkpOworICAg ICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZSgqbWZuKSk7CiAKICAgICByZXR1cm4gZXJyOwogfQpA QCAtNjQ5LDcgKzY0OSw3IEBAIHN0YXRpYyB2b2lkIGh2bWVtdWxfdW5tYXBfbGluZWFyX2FkZHIo CiAgICAgewogICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKCptZm4pKTsKICAgICAgICAgcGFnaW5n X21hcmtfZGlydHkoY3VycmQsICptZm4pOwotICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZSht Zm5feCgqbWZuKSkpOworICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZSgqbWZuKSk7CiAKICAg ICAgICAgKm1mbisrID0gX21mbigwKTsgLyogQ2xlYW4gc2xvdCBmb3IgbWFwKCkncyBlcnJvciBj aGVja2luZy4gKi8KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA5MWJjM2U4YjI3Li43NGRlOTY4MzE1IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIGludCBodm1fc2V0X2NyMCh1bnNpZ25lZCBsb25nIHZh bHVlLCBib29sX3QgbWF5X2RlZmVyKQogICAgICAgICAgICAgdi0+YXJjaC5ndWVzdF90YWJsZSA9 IHBhZ2V0YWJsZV9mcm9tX3BhZ2UocGFnZSk7CiAKICAgICAgICAgICAgIEhWTV9EQkdfTE9HKERC R19MRVZFTF9WTU1VLCAiVXBkYXRlIENSMyB2YWx1ZSA9ICVseCwgbWZuID0gJWx4IiwKLSAgICAg ICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbM10sIHBhZ2VfdG9f bWZuKHBhZ2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbM10sIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CiAgICAgICAgIH0KICAgICB9CiAg ICAgZWxzZSBpZiAoICEodmFsdWUgJiBYODZfQ1IwX1BHKSAmJiAob2xkX3ZhbHVlICYgWDg2X0NS MF9QRykgKQpAQCAtMjYyNCw3ICsyNjI0LDcgQEAgdm9pZCAqaHZtX21hcF9ndWVzdF9mcmFtZV9y byh1bnNpZ25lZCBsb25nIGdmbiwgYm9vbF90IHBlcm1hbmVudCkKIAogdm9pZCBodm1fdW5tYXBf Z3Vlc3RfZnJhbWUodm9pZCAqcCwgYm9vbF90IHBlcm1hbmVudCkKIHsKLSAgICB1bnNpZ25lZCBs b25nIG1mbjsKKyAgICBtZm5fdCBtZm47CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKIAog ICAgIGlmICggIXAgKQpAQCAtMjY0NSw3ICsyNjQ1LDcgQEAgdm9pZCBodm1fdW5tYXBfZ3Vlc3Rf ZnJhbWUodm9pZCAqcCwgYm9vbF90IHBlcm1hbmVudCkKICAgICAgICAgbGlzdF9mb3JfZWFjaF9l bnRyeSh0cmFjaywgJmQtPmFyY2guaHZtX2RvbWFpbi53cml0ZV9tYXAubGlzdCwgbGlzdCkKICAg ICAgICAgICAgIGlmICggdHJhY2stPnBhZ2UgPT0gcGFnZSApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgX21mbihtZm4pKTsKKyAgICAgICAgICAg ICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBtZm4pOwogICAgICAgICAgICAgICAgIGxpc3RfZGVs KCZ0cmFjay0+bGlzdCk7CiAgICAgICAgICAgICAgICAgeGZyZWUodHJhY2spOwogICAgICAgICAg ICAgICAgIGJyZWFrOwpAQCAtMjY2Miw3ICsyNjYyLDcgQEAgdm9pZCBodm1fbWFwcGVkX2d1ZXN0 X2ZyYW1lc19tYXJrX2RpcnR5KHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBzcGluX2xvY2soJmQt PmFyY2guaHZtX2RvbWFpbi53cml0ZV9tYXAubG9jayk7CiAgICAgbGlzdF9mb3JfZWFjaF9lbnRy eSh0cmFjaywgJmQtPmFyY2guaHZtX2RvbWFpbi53cml0ZV9tYXAubGlzdCwgbGlzdCkKLSAgICAg ICAgcGFnaW5nX21hcmtfZGlydHkoZCwgX21mbihwYWdlX3RvX21mbih0cmFjay0+cGFnZSkpKTsK KyAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgcGFnZV90b19tZm4odHJhY2stPnBhZ2UpKTsK ICAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21hcC5sb2NrKTsKIH0K IApAQCAtMzIzNiw4ICszMjM2LDggQEAgc3RhdGljIGVudW0gaHZtX3RyYW5zbGF0aW9uX3Jlc3Vs dCBfX2h2bV9jb3B5KAogCiAgICAgICAgICAgICAgICAgaWYgKCB4Y2hnKCZsYXN0cGFnZSwgZ2Zu X3goZ2ZuKSkgIT0gZ2ZuX3goZ2ZuKSApCiAgICAgICAgICAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0dfREVCVUcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVwdiBhdHRlbXB0ZWQg d3JpdGUgdG8gcmVhZC1vbmx5IGdmbiAlI2x4IChtZm49JSNseClcbiIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiwgZ2ZuX3goZ2ZuKSwgcGFnZV90b19tZm4ocGFnZSkpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIlcHYgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBn Zm4gJSNseCAobWZuPSUjIlBSSV9tZm4iKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2LCBnZm5feChnZm4pLCBtZm5feChwYWdlX3RvX21mbihwYWdlKSkpOwogICAgICAgICAgICAg fQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCmluZGV4IDdlNjY5NjVi Y2QuLmExYzIyMThmZGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgdm9p ZCBodm1fcmVtb3ZlX2lvcmVxX2dmbigKICAgICBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgaHZt X2lvcmVxX3BhZ2UgKmlvcnApCiB7CiAgICAgaWYgKCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdl KGQsIF9nZm4oaW9ycC0+Z2ZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X21mbihwYWdlX3RvX21mbihpb3JwLT5wYWdlKSksIDApICkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFnZV90b19tZm4oaW9ycC0+cGFnZSksIDApICkKICAgICAgICAgZG9t YWluX2NyYXNoKGQpOwogICAgIGNsZWFyX3BhZ2UoaW9ycC0+dmEpOwogfQpAQCAtMjgxLDcgKzI4 MSw3IEBAIHN0YXRpYyBpbnQgaHZtX2FkZF9pb3JlcV9nZm4oCiAgICAgY2xlYXJfcGFnZShpb3Jw LT52YSk7CiAKICAgICByYyA9IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgX2dmbihpb3JwLT5n Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKHBhZ2VfdG9fbWZuKGlv cnAtPnBhZ2UpKSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9f bWZuKGlvcnAtPnBhZ2UpLCAwKTsKICAgICBpZiAoIHJjID09IDAgKQogICAgICAgICBwYWdpbmdf bWFya19wZm5fZGlydHkoZCwgX3Bmbihpb3JwLT5nZm4pKTsKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2h2bS9zdGR2Z2EuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMKaW5kZXggMDg4 ZmJkZjhjZS4uOTI1YmFiMjQzOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2Eu YworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCkBAIC01OTAsNyArNTkwLDcgQEAgdm9p ZCBzdGR2Z2FfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBpZiAoIHBnID09IE5VTEwg KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHMtPnZyYW1fcGFnZVtpXSA9IHBnOwotICAg ICAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKHBhZ2VfdG9fbWZuKHBnKSkpOworICAgICAgICBj bGVhcl9kb21haW5fcGFnZShwYWdlX3RvX21mbihwZykpOwogICAgIH0KIAogICAgIGlmICggaSA9 PSBBUlJBWV9TSVpFKHMtPnZyYW1fcGFnZSkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCA5ZjU4YWZjMmQ4 Li4zMGU5NTEwMzllIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMTU0Myw3ICsxNTQzLDcgQEAgc3RhdGlj IGludCBzdm1fY3B1X3VwX3ByZXBhcmUodW5zaWduZWQgaW50IGNwdSkKICAgICAgICAgaWYgKCAh cGcgKQogICAgICAgICAgICAgZ290byBlcnI7CiAKLSAgICAgICAgY2xlYXJfZG9tYWluX3BhZ2Uo X21mbihwYWdlX3RvX21mbihwZykpKTsKKyAgICAgICAgY2xlYXJfZG9tYWluX3BhZ2UocGFnZV90 b19tZm4ocGcpKTsKICAgICAgICAgKnRoaXNfaHNhID0gcGFnZV90b19tYWRkcihwZyk7CiAgICAg fQogCkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBzdGF0aWMgaW50IHN2bV9jcHVfdXBfcHJlcGFyZSh1 bnNpZ25lZCBpbnQgY3B1KQogICAgICAgICBpZiAoICFwZyApCiAgICAgICAgICAgICBnb3RvIGVy cjsKIAotICAgICAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKHBhZ2VfdG9fbWZuKHBnKSkpOwor ICAgICAgICBjbGVhcl9kb21haW5fcGFnZShwYWdlX3RvX21mbihwZykpOwogICAgICAgICAqdGhp c192bWNiID0gcGFnZV90b19tYWRkcihwZyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL3ZpcmlkaWFuLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKaW5kZXgg NzBhYWI1MjBiYy4uZDZhYTg5ZDBiNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJp ZGlhbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwpAQCAtMzU0LDcgKzM1NCw3 IEBAIHN0YXRpYyB2b2lkIGVuYWJsZV9oeXBlcmNhbGxfcGFnZShzdHJ1Y3QgZG9tYWluICpkKQog ICAgICAgICBpZiAoIHBhZ2UgKQogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAgICAgICAg IGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFkIEdNRk4gJSMiUFJJX2dmbiIgKE1GTiAlIyJQ UklfbWZuIilcbiIsCi0gICAgICAgICAgICAgICAgIGdtZm4sIHBhZ2UgPyBwYWdlX3RvX21mbihw YWdlKSA6IG1mbl94KElOVkFMSURfTUZOKSk7CisgICAgICAgICAgICAgICAgIGdtZm4sIG1mbl94 KHBhZ2UgPyBwYWdlX3RvX21mbihwYWdlKSA6IElOVkFMSURfTUZOKSk7CiAgICAgICAgIHJldHVy bjsKICAgICB9CiAKQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplX3Zw X2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKIAogIGZhaWw6CiAgICAgZ2RwcmludGsoWEVOTE9HX1dB Uk5JTkcsICJCYWQgR01GTiAlIyJQUklfZ2ZuIiAoTUZOICUjIlBSSV9tZm4iKVxuIiwgZ21mbiwK LSAgICAgICAgICAgICBwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBtZm5feChJTlZBTElEX01G TikpOworICAgICAgICAgICAgIG1mbl94KHBhZ2UgPyBwYWdlX3RvX21mbihwYWdlKSA6IElOVkFM SURfTUZOKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlYXJkb3duX3ZwX2Fzc2lzdChzdHJ1Y3QgdmNw dSAqdikKQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcmVmZXJlbmNlX3Rz YyhzdHJ1Y3QgZG9tYWluICpkLCBib29sX3QgaW5pdGlhbGl6ZSkKICAgICAgICAgaWYgKCBwYWdl ICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICBnZHByaW50ayhYRU5MT0df V0FSTklORywgIkJhZCBHTUZOICUjIlBSSV9nZm4iIChNRk4gJSMiUFJJX21mbiIpXG4iLAotICAg ICAgICAgICAgICAgICBnbWZuLCBwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBtZm5feChJTlZB TElEX01GTikpOworICAgICAgICAgICAgICAgICBnbWZuLCBtZm5feChwYWdlID8gcGFnZV90b19t Zm4ocGFnZSkgOiBJTlZBTElEX01GTikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zt eC92bWNzLmMKaW5kZXggZTc4MThjYWVkMC4uYTVhMTYwNzQ2YSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS92bXgvdm1jcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwpA QCAtMTQzMyw3ICsxNDMzLDcgQEAgaW50IHZteF92Y3B1X2VuYWJsZV9wbWwoc3RydWN0IHZjcHUg KnYpCiAKICAgICB2bXhfdm1jc19lbnRlcih2KTsKIAotICAgIF9fdm13cml0ZShQTUxfQUREUkVT UywgcGFnZV90b19tZm4odi0+YXJjaC5odm1fdm14LnBtbF9wZykgPDwgUEFHRV9TSElGVCk7Cisg ICAgX192bXdyaXRlKFBNTF9BRERSRVNTLCBwYWdlX3RvX21hZGRyKHYtPmFyY2guaHZtX3ZteC5w bWxfcGcpKTsKICAgICBfX3Ztd3JpdGUoR1VFU1RfUE1MX0lOREVYLCBOUl9QTUxfRU5UUklFUyAt IDEpOwogCiAgICAgdi0+YXJjaC5odm1fdm14LnNlY29uZGFyeV9leGVjX2NvbnRyb2wgfD0gU0VD T05EQVJZX0VYRUNfRU5BQkxFX1BNTDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggNWNkNjg5ZTgyMy4uY2Y3 ZjdlMWJiNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTI5NjgsNyArMjk2OCw3IEBAIGdwX2ZhdWx0Ogog c3RhdGljIGludCB2bXhfYWxsb2NfdmxhcGljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKIHsK ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICB1bnNpZ25lZCBsb25nIG1mbjsKKyAgICBt Zm5fdCBtZm47CiAKICAgICBpZiAoICFjcHVfaGFzX3ZteF92aXJ0dWFsaXplX2FwaWNfYWNjZXNz ZXMgKQogICAgICAgICByZXR1cm4gMDsKQEAgLTI5NzcsMTAgKzI5NzcsMTAgQEAgc3RhdGljIGlu dCB2bXhfYWxsb2NfdmxhcGljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKICAgICBpZiAoICFw ZyApCiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIG1mbiA9IHBhZ2VfdG9fbWZuKHBnKTsK LSAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKG1mbikpOworICAgIGNsZWFyX2RvbWFpbl9wYWdl KG1mbik7CiAgICAgc2hhcmVfeGVuX3BhZ2Vfd2l0aF9ndWVzdChwZywgZCwgWEVOU0hBUkVfd3Jp dGFibGUpOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXguYXBpY19hY2Nlc3NfbWZuID0gbWZu OwotICAgIHNldF9tbWlvX3AybV9lbnRyeShkLCBwYWRkcl90b19wZm4oQVBJQ19ERUZBVUxUX1BI WVNfQkFTRSksIF9tZm4obWZuKSwKKyAgICBkLT5hcmNoLmh2bV9kb21haW4udm14LmFwaWNfYWNj ZXNzX21mbiA9IG1mbl94KG1mbik7CisgICAgc2V0X21taW9fcDJtX2VudHJ5KGQsIHBhZGRyX3Rv X3BmbihBUElDX0RFRkFVTFRfUEhZU19CQVNFKSwgbWZuLAogICAgICAgICAgICAgICAgICAgICAg ICBQQUdFX09SREVSXzRLLCBwMm1fZ2V0X2hvc3RwMm0oZCktPmRlZmF1bHRfYWNjZXNzKTsKIAog ICAgIHJldHVybiAwOwpAQCAtMjk5MSw3ICsyOTkxLDcgQEAgc3RhdGljIHZvaWQgdm14X2ZyZWVf dmxhcGljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKICAgICB1bnNpZ25lZCBsb25nIG1mbiA9 IGQtPmFyY2guaHZtX2RvbWFpbi52bXguYXBpY19hY2Nlc3NfbWZuOwogCiAgICAgaWYgKCBtZm4g IT0gMCApCi0gICAgICAgIGZyZWVfc2hhcmVkX2RvbWhlYXBfcGFnZShtZm5fdG9fcGFnZShtZm4p KTsKKyAgICAgICAgZnJlZV9zaGFyZWRfZG9taGVhcF9wYWdlKG1mbl90b19wYWdlKF9tZm4obWZu KSkpOwogfQogCiBzdGF0aWMgdm9pZCB2bXhfaW5zdGFsbF92bGFwaWNfbWFwcGluZyhzdHJ1Y3Qg dmNwdSAqdikKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyBiL3hlbi9h cmNoL3g4Ni9odm0vdm14L3Z2bXguYwppbmRleCBkZmU5N2I5NzA1Li5kYjkyYWU2NjYwIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS92bXgvdnZteC5jCkBAIC04NCw3ICs4NCw3IEBAIGludCBudm14X3ZjcHVfaW5pdGlhbGlzZShz dHJ1Y3QgdmNwdSAqdikKICAgICAgICAgfQogICAgICAgICB2LT5hcmNoLmh2bV92bXgudm1yZWFk X2JpdG1hcCA9IHZtcmVhZF9iaXRtYXA7CiAKLSAgICAgICAgY2xlYXJfZG9tYWluX3BhZ2UoX21m bihwYWdlX3RvX21mbih2bXJlYWRfYml0bWFwKSkpOworICAgICAgICBjbGVhcl9kb21haW5fcGFn ZShwYWdlX3RvX21mbih2bXJlYWRfYml0bWFwKSk7CiAKICAgICAgICAgdm13cml0ZV9iaXRtYXAg PSBhbGxvY19kb21oZWFwX3BhZ2UoTlVMTCwgMCk7CiAgICAgICAgIGlmICggIXZtd3JpdGVfYml0 bWFwICkKQEAgLTE3MjYsNyArMTcyNiw3IEBAIGludCBudm14X2hhbmRsZV92bXB0cmxkKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAgIG52Y3B1LT5udl92dm1jeCA9 IHZ2bWN4OwogICAgICAgICAgICAgICAgIG52Y3B1LT5udl92dm1jeGFkZHIgPSBncGE7CiAgICAg ICAgICAgICAgICAgdi0+YXJjaC5odm1fdm14LnZtY3Nfc2hhZG93X21hZGRyID0KLSAgICAgICAg ICAgICAgICAgICAgcGZuX3RvX3BhZGRyKGRvbWFpbl9wYWdlX21hcF90b19tZm4odnZtY3gpKTsK KyAgICAgICAgICAgICAgICAgICAgbWZuX3RvX21hZGRyKGRvbWFpbl9wYWdlX21hcF90b19tZm4o dnZtY3gpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsK QEAgLTE4MTIsNyArMTgxMiw3IEBAIGludCBudm14X2hhbmRsZV92bWNsZWFyKHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIHdyaXRhYmxlICkK ICAgICAgICAgICAgICAgICBjbGVhcl92dm1jc19sYXVuY2hlZCgmbnZteC0+bGF1bmNoZWRfbGlz dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5fcGFnZV9tYXBf dG9fbWZuKHZ2bWNzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZu X3goZG9tYWluX3BhZ2VfbWFwX3RvX21mbih2dm1jcykpKTsKICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICAgICByYyA9IFZNRkFJTF9WQUxJRDsKICAgICAgICAgICAgIGh2bV91bm1hcF9n dWVzdF9mcmFtZSh2dm1jcywgMCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hl bi9hcmNoL3g4Ni9tbS5jCmluZGV4IGQzM2I2YmZhOWQuLmVlYWYwM2ViNDkgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0xMzEsMTAgKzEz MSw2IEBACiAjaW5jbHVkZSAicHYvbW0uaCIKIAogLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNt L3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3Bh Z2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKG1mbl94KG1mbikpCi0j dW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4ocGcpIF9tZm4oX19wYWdlX3Rv X21mbihwZykpCiAjdW5kZWYgdmlydF90b19tZm4KICNkZWZpbmUgdmlydF90b19tZm4odikgX21m bihfX3ZpcnRfdG9fbWZuKHYpKQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rf d2Fsay5jIGIveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYwppbmRleCA2MDU1ZmVjMWFkLi5m NjdhZWRhM2QwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMKQEAgLTQ2OSwyMCArNDY5LDIwIEBAIGd1ZXN0 X3dhbGtfdGFibGVzKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogICAg IGlmICggbDNwICkKICAgICB7CiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwzcCk7Ci0gICAg ICAgIHB1dF9wYWdlKG1mbl90b19wYWdlKG1mbl94KGd3LT5sM21mbikpKTsKKyAgICAgICAgcHV0 X3BhZ2UobWZuX3RvX3BhZ2UoZ3ctPmwzbWZuKSk7CiAgICAgfQogI2VuZGlmCiAjaWYgR1VFU1Rf UEFHSU5HX0xFVkVMUyA+PSAzCiAgICAgaWYgKCBsMnAgKQogICAgIHsKICAgICAgICAgdW5tYXBf ZG9tYWluX3BhZ2UobDJwKTsKLSAgICAgICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UobWZuX3goZ3ct PmwybWZuKSkpOworICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZShndy0+bDJtZm4pKTsKICAg ICB9CiAjZW5kaWYKICAgICBpZiAoIGwxcCApCiAgICAgewogICAgICAgICB1bm1hcF9kb21haW5f cGFnZShsMXApOwotICAgICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZShtZm5feChndy0+bDFtZm4p KSk7CisgICAgICAgIHB1dF9wYWdlKG1mbl90b19wYWdlKGd3LT5sMW1mbikpOwogICAgIH0KIAog ICAgIHJldHVybiB3YWxrX29rOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2hhcC9ndWVz dF93YWxrLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYwppbmRleCBjNTUwMDE3 YmE0Li5jYjNmOWNlYmU3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dh bGsuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYwpAQCAtODMsNyArODMs NyBAQCB1bnNpZ25lZCBsb25nIGhhcF9wMm1fZ2FfdG9fZ2ZuKEdVRVNUX1BBR0lOR19MRVZFTFMp KAogICAgICAgICAqcGZlYyAmPSB+UEZFQ19wYWdlX3ByZXNlbnQ7CiAgICAgICAgIGdvdG8gb3V0 X3R3ZWFrX3BmZWM7CiAgICAgfQotICAgIHRvcF9tZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHRvcF9w YWdlKSk7CisgICAgdG9wX21mbiA9IHBhZ2VfdG9fbWZuKHRvcF9wYWdlKTsKIAogICAgIC8qIE1h cCB0aGUgdG9wLWxldmVsIHRhYmxlIGFuZCBjYWxsIHRoZSB0cmVlLXdhbGtlciAqLwogICAgIEFT U0VSVChtZm5fdmFsaWQodG9wX21mbikpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2hh cC9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKaW5kZXggMDAzYzJkODg5Ni4uMzcw YTQ5MGFhZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYworKysgYi94ZW4v YXJjaC94ODYvbW0vaGFwL2hhcC5jCkBAIC00MiwxMiArNDIsNiBAQAogCiAjaW5jbHVkZSAicHJp dmF0ZS5oIgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhl bSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9f cGFnZShfbSkgX19tZm5fdG9fcGFnZShtZm5feChfbSkpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNk ZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKLQogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICAgICAgICAg IEhBUCBWUkFNIFRSQUNLSU5HIFNVUFBPUlQgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L21tL2hhcC9uZXN0ZWRfZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL25lc3RlZF9lcHQu YwppbmRleCAxNGIxYmIwMWU5Li4xNzM4ZGY2OWY2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bW0vaGFwL25lc3RlZF9lcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL25lc3RlZF9lcHQu YwpAQCAtMTczLDcgKzE3Myw3IEBAIG5lcHRfd2Fsa190YWJsZXMoc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGxvbmcgbDJnYSwgZXB0X3dhbGtfdCAqZ3cpCiAgICAgICAgICAgICBnb3RvIG1hcF9l cnI7CiAgICAgICAgIGd3LT5seGVbbHZsXSA9IGx4cFtlcHRfbHZsX3RhYmxlX29mZnNldChsMmdh LCBsdmwpXTsKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobHhwKTsKLSAgICAgICAgcHV0X3Bh Z2UobWZuX3RvX3BhZ2UobWZuX3gobHhtZm4pKSk7CisgICAgICAgIHB1dF9wYWdlKG1mbl90b19w YWdlKGx4bWZuKSk7CiAKICAgICAgICAgaWYgKCBuZXB0X25vbl9wcmVzZW50X2NoZWNrKGd3LT5s eGVbbHZsXSkgKQogICAgICAgICAgICAgZ290byBub25fcHJlc2VudDsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jIGIveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5n LmMKaW5kZXggNTdmNTRjNTVjOC4uZmFkOGE5ZGYxMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L21tL21lbV9zaGFyaW5nLmMKKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKQEAg LTE1MiwxMSArMTUyLDYgQEAgc3RhdGljIGlubGluZSBzaHJfaGFuZGxlX3QgZ2V0X25leHRfaGFu ZGxlKHZvaWQpCiAjZGVmaW5lIG1lbV9zaGFyaW5nX2VuYWJsZWQoZCkgXAogICAgIChpc19odm1f ZG9tYWluKGQpICYmIChkKS0+YXJjaC5odm1fZG9tYWluLm1lbV9zaGFyaW5nX2VuYWJsZWQpCiAK LSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShfbSkgX19tZm5fdG9fcGFn ZShtZm5feChfbSkpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4oX3Bn KSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKLQogc3RhdGljIGF0b21pY190IG5yX3NhdmVkX21m bnMgICA9IEFUT01JQ19JTklUKDApOyAKIHN0YXRpYyBhdG9taWNfdCBucl9zaGFyZWRfbWZucyAg PSBBVE9NSUNfSU5JVCgwKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQu YyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXggNjZkYmIzZTgzYS4uMTRiNTkzOTIz YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYworKysgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLWVwdC5jCkBAIC03NCwxMyArNzQsMTMgQEAgc3RhdGljIGludCBhdG9taWNfd3Jp dGVfZXB0X2VudHJ5KGVwdF9lbnRyeV90ICplbnRyeXB0ciwgZXB0X2VudHJ5X3QgbmV3LAogICAg ICAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgICAgICAgICByYyA9IC1FU1JDSDsKLSAgICAg ICAgICAgIGZkb20gPSBwYWdlX2dldF9vd25lcihtZm5fdG9fcGFnZShuZXcubWZuKSk7CisgICAg ICAgICAgICBmZG9tID0gcGFnZV9nZXRfb3duZXIobWZuX3RvX3BhZ2UoX21mbihuZXcubWZuKSkp OwogICAgICAgICAgICAgaWYgKCBmZG9tID09IE5VTEwgKQogICAgICAgICAgICAgICAgIGdvdG8g b3V0OwogCiAgICAgICAgICAgICAvKiBnZXQgcmVmY291bnQgb24gdGhlIHBhZ2UgKi8KICAgICAg ICAgICAgIHJjID0gLUVCVVNZOwotICAgICAgICAgICAgaWYgKCAhZ2V0X3BhZ2UobWZuX3RvX3Bh Z2UobmV3Lm1mbiksIGZkb20pICkKKyAgICAgICAgICAgIGlmICggIWdldF9wYWdlKG1mbl90b19w YWdlKF9tZm4obmV3Lm1mbikpLCBmZG9tKSApCiAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAg ICAgICAgIH0KICAgICB9CkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBpbnQgYXRvbWljX3dyaXRl X2VwdF9lbnRyeShlcHRfZW50cnlfdCAqZW50cnlwdHIsIGVwdF9lbnRyeV90IG5ldywKICAgICB3 cml0ZV9hdG9taWMoJmVudHJ5cHRyLT5lcHRlLCBuZXcuZXB0ZSk7CiAKICAgICBpZiAoIHVubGlr ZWx5KG9sZG1mbiAhPSBtZm5feChJTlZBTElEX01GTikpICkKLSAgICAgICAgcHV0X3BhZ2UobWZu X3RvX3BhZ2Uob2xkbWZuKSk7CisgICAgICAgIHB1dF9wYWdlKG1mbl90b19wYWdlKF9tZm4ob2xk bWZuKSkpOwogCiAgICAgcmMgPSAwOwogCkBAIC0yNzAsNyArMjcwLDcgQEAgc3RhdGljIHZvaWQg ZXB0X2ZyZWVfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgZXB0X2VudHJ5X3QgKmVwdF9l bnRyeSwgaW50IGwKICAgICB9CiAgICAgCiAgICAgcDJtX3RsYl9mbHVzaF9zeW5jKHAybSk7Ci0g ICAgcDJtX2ZyZWVfcHRwKHAybSwgbWZuX3RvX3BhZ2UoZXB0X2VudHJ5LT5tZm4pKTsKKyAgICBw Mm1fZnJlZV9wdHAocDJtLCBtZm5fdG9fcGFnZShfbWZuKGVwdF9lbnRyeS0+bWZuKSkpOwogfQog CiBzdGF0aWMgYm9vbF90IGVwdF9zcGxpdF9zdXBlcl9wYWdlKHN0cnVjdCBwMm1fZG9tYWluICpw Mm0sCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jIGIveGVuL2FyY2gveDg2 L21tL3AybS1wb2QuYwppbmRleCBmYTEzZTA3ZjdjLi42MzFlOWFlYzMzIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vcDJtLXBvZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMK QEAgLTI5LDEyICsyOSw2IEBACiAKICNpbmNsdWRlICJtbS1sb2Nrcy5oIgogCi0vKiBPdmVycmlk ZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8K LSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShfbSkgX19tZm5fdG9fcGFn ZShtZm5feChfbSkpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4oX3Bn KSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKLQogI2RlZmluZSBzdXBlcnBhZ2VfYWxpZ25lZChf eCkgICgoKF94KSYoU1VQRVJQQUdFX1BBR0VTLTEpKT09MCkKIAogLyogRW5mb3JjZSBsb2NrIG9y ZGVyaW5nIHdoZW4gZ3JhYmJpbmcgdGhlICJleHRlcm5hbCIgcGFnZV9hbGxvYyBsb2NrICovCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMK aW5kZXggNDhlNTBmYjVkOC4uOWNlMGE1YzllMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21t L3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpAQCAtNDcsMTIgKzQ3LDYgQEAgYm9v bF90IF9faW5pdGRhdGEgb3B0X2hhcF8xZ2IgPSAxLCBfX2luaXRkYXRhIG9wdF9oYXBfMm1iID0g MTsKIGJvb2xlYW5fcGFyYW0oImhhcF8xZ2IiLCBvcHRfaGFwXzFnYik7CiBib29sZWFuX3BhcmFt KCJoYXBfMm1iIiwgb3B0X2hhcF8ybWIpOwogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20v cGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFn ZQotI2RlZmluZSBtZm5fdG9fcGFnZShfbSkgX19tZm5fdG9fcGFnZShtZm5feChfbSkpCi0jdW5k ZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19t Zm4oX3BnKSkKLQogREVGSU5FX1BFUkNQVV9SV0xPQ0tfR0xPQkFMKHAybV9wZXJjcHVfcndsb2Nr KTsKIAogLyogSW5pdCB0aGUgZGF0YXN0cnVjdHVyZXMgZm9yIGxhdGVyIHVzZSBieSB0aGUgcDJt IGNvZGUgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYyBiL3hlbi9hcmNo L3g4Ni9tbS9wYWdpbmcuYwppbmRleCA4YTY1OGI5MTE4Li4yYjA0NDVmZmU5IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5j CkBAIC00NywxMiArNDcsNiBAQAogLyogUGVyLUNQVSB2YXJpYWJsZSBmb3IgZW5mb3JjaW5nIHRo ZSBsb2NrIG9yZGVyaW5nICovCiBERUZJTkVfUEVSX0NQVShpbnQsIG1tX2xvY2tfbGV2ZWwpOwog Ci0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdp dGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShfbSkg X19tZm5fdG9fcGFnZShtZm5feChfbSkpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFn ZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKLQogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICAgICAgICAgICAgICBMT0cg RElSVFkgU1VQUE9SVCAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3No YWRvdy9wcml2YXRlLmggYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L3ByaXZhdGUuaAppbmRleCA4 NDU1NDFmZThhLi5lYTBhZDI4YzA1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93 L3ByaXZhdGUuaAorKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L3ByaXZhdGUuaApAQCAtMzE1 LDcgKzMxNSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBhZ2VfaXNfb3V0X29mX3N5bmMoc3RydWN0 IHBhZ2VfaW5mbyAqcCkKIAogc3RhdGljIGlubGluZSBpbnQgbWZuX2lzX291dF9vZl9zeW5jKG1m bl90IGdtZm4pCiB7Ci0gICAgcmV0dXJuIHBhZ2VfaXNfb3V0X29mX3N5bmMobWZuX3RvX3BhZ2Uo bWZuX3goZ21mbikpKTsKKyAgICByZXR1cm4gcGFnZV9pc19vdXRfb2Zfc3luYyhtZm5fdG9fcGFn ZShnbWZuKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHBhZ2Vfb29zX21heV93cml0ZShzdHJ1 Y3QgcGFnZV9pbmZvICpwKQpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBh Z2Vfb29zX21heV93cml0ZShzdHJ1Y3QgcGFnZV9pbmZvICpwKQogCiBzdGF0aWMgaW5saW5lIGlu dCBtZm5fb29zX21heV93cml0ZShtZm5fdCBnbWZuKQogewotICAgIHJldHVybiBwYWdlX29vc19t YXlfd3JpdGUobWZuX3RvX3BhZ2UobWZuX3goZ21mbikpKTsKKyAgICByZXR1cm4gcGFnZV9vb3Nf bWF5X3dyaXRlKG1mbl90b19wYWdlKGdtZm4pKTsKIH0KICNlbmRpZiAvKiAoU0hBRE9XX09QVElN SVpBVElPTlMgJiBTSE9QVF9PVVRfT0ZfU1lOQykgKi8KIApAQCAtNDY1LDE4ICs0NjUsNiBAQCB2 b2lkIHNoX3Jlc2V0X2wzX3VwX3BvaW50ZXJzKHN0cnVjdCB2Y3B1ICp2KTsKICAqIE1GTi9wYWdl LWluZm8gaGFuZGxpbmcKICAqLwogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5o IHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2Rl ZmluZSBtZm5fdG9fcGFnZShfbSkgX19tZm5fdG9fcGFnZShtZm5feChfbSkpCi0jdW5kZWYgcGFn ZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19tZm4oX3Bn KSkKLQotLyogT3ZlcnJpZGUgcGFnZXRhYmxlX3QgPC0+IHN0cnVjdCBwYWdlX2luZm8gY29udmVy c2lvbnMgdG8gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgcGFnZXRhYmxlX2dldF9wYWdlCi0j ZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGFnZSh4KSAgIG1mbl90b19wYWdlKHBhZ2V0YWJsZV9nZXRf bWZuKHgpKQotI3VuZGVmIHBhZ2V0YWJsZV9mcm9tX3BhZ2UKLSNkZWZpbmUgcGFnZXRhYmxlX2Zy b21fcGFnZShwZykgcGFnZXRhYmxlX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBnKSkKLQogI2RlZmlu ZSBiYWNrcG9pbnRlcihzcCkgX21mbihwZHhfdG9fcGZuKCh1bnNpZ25lZCBsb25nKShzcCktPnYu c2guYmFjaykpCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgX19iYWNrcG9pbnRlcihjb25z dCBzdHJ1Y3QgcGFnZV9pbmZvICpzcCkKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9udW1h LmMgYi94ZW4vYXJjaC94ODYvbnVtYS5jCmluZGV4IDRmYzk2N2Y4OTMuLmE4Nzk4N2RhNmYgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9udW1hLmMKKysrIGIveGVuL2FyY2gveDg2L251bWEuYwpA QCAtNDMwLDcgKzQzMCw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfbnVtYSh1bnNpZ25lZCBjaGFyIGtl eSkKICAgICAgICAgc3Bpbl9sb2NrKCZkLT5wYWdlX2FsbG9jX2xvY2spOwogICAgICAgICBwYWdl X2xpc3RfZm9yX2VhY2gocGFnZSwgJmQtPnBhZ2VfbGlzdCkKICAgICAgICAgewotICAgICAgICAg ICAgaSA9IHBoeXNfdG9fbmlkKChwYWRkcl90KXBhZ2VfdG9fbWZuKHBhZ2UpIDw8IFBBR0VfU0hJ RlQpOworICAgICAgICAgICAgaSA9IHBoeXNfdG9fbmlkKHBhZ2VfdG9fbWFkZHIocGFnZSkpOwog ICAgICAgICAgICAgcGFnZV9udW1fbm9kZVtpXSsrOwogICAgICAgICB9CiAgICAgICAgIHNwaW5f dW5sb2NrKCZkLT5wYWdlX2FsbG9jX2xvY2spOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bo eXNkZXYuYyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMKaW5kZXggMzgwZDM2ZjZiOS4uN2JmYTBm MjNmMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYworKysgYi94ZW4vYXJjaC94 ODYvcGh5c2Rldi5jCkBAIC0yMzksNyArMjM5LDcgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQg Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgfQogCiAgICAg ICAgIGlmICggY21weGNoZygmY3VycmQtPmFyY2gucGlycV9lb2lfbWFwX21mbiwKLSAgICAgICAg ICAgICAgICAgICAgIDAsIHBhZ2VfdG9fbWZuKHBhZ2UpKSAhPSAwICkKKyAgICAgICAgICAgICAg ICAgICAgIDAsIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSkgIT0gMCApCiAgICAgICAgIHsKICAg ICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKHBhZ2UpOwogICAgICAgICAgICAgcmV0ID0gLUVC VVNZOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2NhbGxiYWNrLmMgYi94ZW4vYXJjaC94 ODYvcHYvY2FsbGJhY2suYwppbmRleCA5N2Q4NDM4NjAwLi41OTU3Y2I1MDg1IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYworKysgYi94ZW4vYXJjaC94ODYvcHYvY2FsbGJh Y2suYwpAQCAtMzEsMTIgKzMxLDYgQEAKIAogI2luY2x1ZGUgPHB1YmxpYy9jYWxsYmFjay5oPgog Ci0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdp dGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShtZm4p IF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKLSN1bmRlZiBwYWdlX3RvX21mbgotI2RlZmluZSBw YWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQogc3RhdGljIGludCByZWdp c3Rlcl9ndWVzdF9ubWlfY2FsbGJhY2sodW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewogICAgIHN0 cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9k ZXNjcmlwdG9yLXRhYmxlcy5jIGIveGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMK aW5kZXggYjQxOGJiYjU4MS4uNzFiZjkyNzEzZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2 L2Rlc2NyaXB0b3ItdGFibGVzLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFi bGVzLmMKQEAgLTI1LDEyICsyNSw2IEBACiAjaW5jbHVkZSA8YXNtL3AybS5oPgogI2luY2x1ZGUg PGFzbS9wdi9tbS5oPgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1h a2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBt Zm5fdG9fcGFnZShtZm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKLSN1bmRlZiBwYWdlX3Rv X21mbgotI2RlZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQog LyoKICAqIEZsdXNoIHRoZSBMRFQsIGRyb3BwaW5nIGFueSB0eXBlcmVmcy4gIFJldHVybnMgYSBi b29sZWFuIGluZGljYXRpbmcgd2hldGhlcgogICogbWFwcGluZ3MgaGF2ZSBiZWVuIHJlbW92ZWQg KGkuZS4gYSBUTEIgZmx1c2ggaXMgbmVlZGVkKS4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9w di9kb20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCmluZGV4IDBiZDJm MWJmOTAuLjViNDMyNWI4N2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxk LmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwpAQCAtNjQsNyArNjQsNyBAQCBz dGF0aWMgX19pbml0IHZvaWQgbWFya19wdl9wdF9wYWdlc19yZG9ubHkoc3RydWN0IGRvbWFpbiAq ZCwKICAgICBmb3IgKCBjb3VudCA9IDA7IGNvdW50IDwgbnJfcHRfcGFnZXM7IGNvdW50KysgKQog ICAgIHsKICAgICAgICAgbDFlX3JlbW92ZV9mbGFncygqcGwxZSwgX1BBR0VfUlcpOwotICAgICAg ICBwYWdlID0gbWZuX3RvX3BhZ2UobDFlX2dldF9wZm4oKnBsMWUpKTsKKyAgICAgICAgcGFnZSA9 IG1mbl90b19wYWdlKGwxZV9nZXRfbWZuKCpwbDFlKSk7CiAKICAgICAgICAgLyogUmVhZC1vbmx5 IG1hcHBpbmcgKyBQR0NfYWxsb2NhdGVkICsgcGFnZS10YWJsZSBwYWdlLiAqLwogICAgICAgICBw YWdlLT5jb3VudF9pbmZvICAgICAgICAgPSBQR0NfYWxsb2NhdGVkIHwgMzsKQEAgLTQ5Niw3ICs0 OTYsNyBAQCBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21haW4gKmQsCiAg ICAgcGFnZSA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoZCwgb3JkZXIsIDApOwogICAgIGlmICggcGFn ZSA9PSBOVUxMICkKICAgICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggUkFNIGZvciBkb21haW4gMCBh bGxvY2F0aW9uIik7Ci0gICAgYWxsb2Nfc3BmbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOworICAgIGFs bG9jX3NwZm4gPSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7CiAgICAgYWxsb2NfZXBmbiA9IGFs bG9jX3NwZm4gKyBkLT50b3RfcGFnZXM7CiAKICAgICBpZiAoIGluaXRyZF9sZW4gKQpAQCAtNTI0 LDEyICs1MjQsMTIgQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1Y3QgZG9tYWlu ICpkLAogICAgICAgICAgICAgbXB0X2FsbG9jID0gKHBhZGRyX3QpaW5pdHJkLT5tb2Rfc3RhcnQg PDwgUEFHRV9TSElGVDsKICAgICAgICAgICAgIGluaXRfZG9taGVhcF9wYWdlcyhtcHRfYWxsb2Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXB0X2FsbG9jICsgUEFHRV9BTElHTihp bml0cmRfbGVuKSk7Ci0gICAgICAgICAgICBpbml0cmQtPm1vZF9zdGFydCA9IGluaXRyZF9tZm4g PSBwYWdlX3RvX21mbihwYWdlKTsKKyAgICAgICAgICAgIGluaXRyZC0+bW9kX3N0YXJ0ID0gaW5p dHJkX21mbiA9IG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKTsKICAgICAgICAgfQogICAgICAgICBl bHNlCiAgICAgICAgIHsKICAgICAgICAgICAgIHdoaWxlICggY291bnQtLSApCi0gICAgICAgICAg ICAgICAgaWYgKCBhc3NpZ25fcGFnZXMoZCwgbWZuX3RvX3BhZ2UobWZuKyspLCAwLCAwKSApCisg ICAgICAgICAgICAgICAgaWYgKCBhc3NpZ25fcGFnZXMoZCwgbWZuX3RvX3BhZ2UoX21mbihtZm4r KykpLCAwLCAwKSApCiAgICAgICAgICAgICAgICAgICAgIEJVRygpOwogICAgICAgICB9CiAgICAg ICAgIGluaXRyZC0+bW9kX2VuZCA9IDA7CkBAIC02NjEsNyArNjYxLDcgQEAgaW50IF9faW5pdCBk b20wX2NvbnN0cnVjdF9wdihzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTDFfUFJPVCA6IENPTVBBVF9MMV9QUk9UKSk7CiAgICAgICAgIGwxdGFi Kys7CiAKLSAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbik7CisgICAgICAgIHBhZ2UgPSBt Zm5fdG9fcGFnZShfbWZuKG1mbikpOwogICAgICAgICBpZiAoICFwYWdlLT51LmludXNlLnR5cGVf aW5mbyAmJgogICAgICAgICAgICAgICFnZXRfcGFnZV9hbmRfdHlwZShwYWdlLCBkLCBQR1Rfd3Jp dGFibGVfcGFnZSkgKQogICAgICAgICAgICAgQlVHKCk7CkBAIC04MDEsNyArODAxLDcgQEAgaW50 IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1Y3QgZG9tYWluICpkLAogICAgIHNpLT5ucl9w Mm1fZnJhbWVzID0gZC0+dG90X3BhZ2VzIC0gY291bnQ7CiAgICAgcGFnZV9saXN0X2Zvcl9lYWNo ICggcGFnZSwgJmQtPnBhZ2VfbGlzdCApCiAgICAgewotICAgICAgICBtZm4gPSBwYWdlX3RvX21m bihwYWdlKTsKKyAgICAgICAgbWZuID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkpOwogICAgICAg ICBCVUdfT04oU0hBUkVEX00yUChnZXRfZ3Bmbl9mcm9tX21mbihtZm4pKSk7CiAgICAgICAgIGlm ICggZ2V0X2dwZm5fZnJvbV9tZm4obWZuKSA+PSBjb3VudCApCiAgICAgICAgIHsKQEAgLTgyNiw3 ICs4MjYsNyBAQCBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21haW4gKmQs CiAgICAgICAgICAgICBwYW5pYygiTm90IGVub3VnaCBSQU0gZm9yIERPTTAgcmVzZXJ2YXRpb24i KTsKICAgICAgICAgd2hpbGUgKCBwZm4gPCBkLT50b3RfcGFnZXMgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBtZm4gPSBwYWdlX3RvX21mbihwYWdlKTsKKyAgICAgICAgICAgIG1mbiA9IG1mbl94 KHBhZ2VfdG9fbWZuKHBhZ2UpKTsKICNpZm5kZWYgTkRFQlVHCiAjZGVmaW5lIHBmbiAobnJfcGFn ZXMgLSAxIC0gKHBmbiAtIChhbGxvY19lcGZuIC0gYWxsb2Nfc3BmbikpKQogI2VuZGlmCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWlu LmMKaW5kZXggMmM3ODRmYjNjYy4uNTU2NWU2OWY0NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3B2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwpAQCAtMTEsMTIgKzEx LDYgQEAKIAogI2luY2x1ZGUgPGFzbS9wdi9kb21haW4uaD4KIAotLyogT3ZlcnJpZGUgbWFjcm9z IGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYg bWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKG1mbl94 KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4ocGcpIF9tZm4o X19wYWdlX3RvX21mbihwZykpCi0KIHN0YXRpYyB2b2lkIG5vcmV0dXJuIGNvbnRpbnVlX25vbmlk bGVfZG9tYWluKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIGNoZWNrX3dha2V1cF9mcm9tX3dhaXQo KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLWdhdGUtb3AuYyBiL3hlbi9hcmNo L3g4Ni9wdi9lbXVsLWdhdGUtb3AuYwppbmRleCAxNGNlOTVlMjZlLi44MTBjNGY3ZDhjIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvZW11bC1nYXRlLW9wLmMKKysrIGIveGVuL2FyY2gveDg2 L3B2L2VtdWwtZ2F0ZS1vcC5jCkBAIC00MSwxMiArNDEsNiBAQAogCiAjaW5jbHVkZSAiZW11bGF0 ZS5oIgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3 b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFn ZShtZm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKLSN1bmRlZiBwYWdlX3RvX21mbgotI2Rl ZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQogc3RhdGljIGlu dCByZWFkX2dhdGVfZGVzY3JpcHRvcih1bnNpZ25lZCBpbnQgZ2F0ZV9zZWwsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnNlbCwKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3Au YwppbmRleCAxN2FhZjk3ZjEwLi5iNDRiMjQxNWE2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv cHYvZW11bC1wcml2LW9wLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCkBA IC00MywxNiArNDMsNiBAQAogI2luY2x1ZGUgImVtdWxhdGUuaCIKICNpbmNsdWRlICJtbS5oIgog Ci0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdp dGggbWZuX3QgKi8KLSN1bmRlZiBtZm5fdG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShtZm4p IF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKLSN1bmRlZiBwYWdlX3RvX21mbgotI2RlZmluZSBw YWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQotLyoqKioqKioqKioqKioq KioqKioqKioqCi0gKiBJL08gZW11bGF0aW9uIHN1cHBvcnQKLSAqLwotCiBzdHJ1Y3QgcHJpdl9v cF9jdHh0IHsKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCBjdHh0OwogICAgIHN0cnVjdCB7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZ3JhbnRfdGFibGUuYyBiL3hlbi9hcmNoL3g4 Ni9wdi9ncmFudF90YWJsZS5jCmluZGV4IDQ1ODA4NWUxYjYuLjZiN2Q4NTVjOGEgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9wdi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9n cmFudF90YWJsZS5jCkBAIC0yNywxMiArMjcsNiBAQAogCiAjaW5jbHVkZSAibW0uaCIKIAotLyog T3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1m bl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21m bl90b19wYWdlKG1mbl94KG1mbikpCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90 b19tZm4ocGcpIF9tZm4oX19wYWdlX3RvX21mbihwZykpCi0KIHN0YXRpYyB1bnNpZ25lZCBpbnQg Z3JhbnRfdG9fcHRlX2ZsYWdzKHVuc2lnbmVkIGludCBncmFudF9mbGFncywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjYWNoZV9mbGFncykKIHsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9yby1wYWdlLWZhdWx0LmMgYi94ZW4vYXJjaC94 ODYvcHYvcm8tcGFnZS1mYXVsdC5jCmluZGV4IDdlMGU3ZThkZmMuLjE3YTA4MzQ1ZDEgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9yby1wYWdlLWZhdWx0LmMKKysrIGIveGVuL2FyY2gveDg2 L3B2L3JvLXBhZ2UtZmF1bHQuYwpAQCAtMzMsMTIgKzMzLDYgQEAKICNpbmNsdWRlICJlbXVsYXRl LmgiCiAjaW5jbHVkZSAibW0uaCIKIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2Uu aCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNk ZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKG1mbl94KG1mbikpCi0jdW5kZWYg cGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4ocGcpIF9tZm4oX19wYWdlX3RvX21mbihw ZykpCi0KIC8qKioqKioqKioqKioqKioqKioqKioKICAqIFdyaXRhYmxlIFBhZ2V0YWJsZXMKICAq LwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L3NoaW0uYyBiL3hlbi9hcmNoL3g4Ni9wdi9z aGltLmMKaW5kZXggNTM0OTY1YzkyYS4uNTE5Mjc4Zjc4YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3B2L3NoaW0uYworKysgYi94ZW4vYXJjaC94ODYvcHYvc2hpbS5jCkBAIC0zNyw4ICszNyw2 IEBACiAKICNpbmNsdWRlIDxjb21wYXQvZ3JhbnRfdGFibGUuaD4KIAotI3VuZGVmIG1mbl90b19w YWdlCi0jZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feChtZm4pKQog I3VuZGVmIHZpcnRfdG9fbWZuCiAjZGVmaW5lIHZpcnRfdG9fbWZuKHZhKSBfbWZuKF9fdmlydF90 b19tZm4odmEpKQogCkBAIC04NDgsNyArODQ2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgYmF0 Y2hfbWVtb3J5X29wKHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGludCBvcmRlciwKICAgICBz ZXRfeGVuX2d1ZXN0X2hhbmRsZSh4bXIuZXh0ZW50X3N0YXJ0LCBwZm5zKTsKICAgICBwYWdlX2xp c3RfZm9yX2VhY2ggKCBwZywgbGlzdCApCiAgICAgewotICAgICAgICBwZm5zW3htci5ucl9leHRl bnRzKytdID0gcGFnZV90b19tZm4ocGcpOworICAgICAgICBwZm5zW3htci5ucl9leHRlbnRzKytd ID0gbWZuX3gocGFnZV90b19tZm4ocGcpKTsKICAgICAgICAgaWYgKCB4bXIubnJfZXh0ZW50cyA9 PSBBUlJBWV9TSVpFKHBmbnMpIHx8ICFwYWdlX2xpc3RfbmV4dChwZywgbGlzdCkgKQogICAgICAg ICB7CiAgICAgICAgICAgICBsb25nIG5yID0geGVuX2h5cGVyY2FsbF9tZW1vcnlfb3AoY21kLCAm eG1yKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94ODYv c21wYm9vdC5jCmluZGV4IDUyYWQ0M2UwZWQuLjQ4YzhjZGI3MzQgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9zbXBib290LmMKKysrIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtNDgsMTIg KzQ4LDYgQEAKICNpbmNsdWRlIDxtYWNoX3dha2VjcHUuaD4KICNpbmNsdWRlIDxzbXBib290X2hv b2tzLmg+CiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVt IHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIG1mbl90b19wYWdlCi0jZGVmaW5lIG1mbl90b19w YWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feChtZm4pKQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0j ZGVmaW5lIHBhZ2VfdG9fbWZuKHBnKSBfbWZuKF9fcGFnZV90b19tZm4ocGcpKQotCiAjZGVmaW5l IHNldHVwX3RyYW1wb2xpbmUoKSAgICAoYm9vdHN5bV9waHlzKHRyYW1wb2xpbmVfcmVhbG1vZGVf ZW50cnkpKQogCiB1bnNpZ25lZCBsb25nIF9fcmVhZF9tb3N0bHkgdHJhbXBvbGluZV9waHlzOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rib290LmMgYi94ZW4vYXJjaC94ODYvdGJvb3QuYwpp bmRleCA3MWU3NTdjNTUzLi5mYjQ2MTZhZTgzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGJv b3QuYworKysgYi94ZW4vYXJjaC94ODYvdGJvb3QuYwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRp YyB2b2lkIHVwZGF0ZV9wYWdldGFibGVfbWFjKHZtYWNfY3R4X3QgKmN0eCkKIAogICAgIGZvciAo IG1mbiA9IDA7IG1mbiA8IG1heF9wYWdlOyBtZm4rKyApCiAgICAgewotICAgICAgICBzdHJ1Y3Qg cGFnZV9pbmZvICpwYWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKKyAgICAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqcGFnZSA9IG1mbl90b19wYWdlKF9tZm4obWZuKSk7CiAKICAgICAgICAgaWYgKCAhbWZu X3ZhbGlkKF9tZm4obWZuKSkgKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0yNzYsNyArMjc2 LDcgQEAgc3RhdGljIHZvaWQgdGJvb3RfZ2VuX3hlbmhlYXBfaW50ZWdyaXR5KGNvbnN0IHVpbnQ4 X3Qga2V5W1RCX0tFWV9TSVpFXSwKICAgICB2bWFjX3NldF9rZXkoKHVpbnQ4X3QgKilrZXksICZj dHgpOwogICAgIGZvciAoIG1mbiA9IDA7IG1mbiA8IG1heF9wYWdlOyBtZm4rKyApCiAgICAgewot ICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gX19tZm5fdG9fcGFnZShtZm4pOworICAg ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsKIAog ICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgICAgICAgICBjb250aW51 ZTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3RyYXBz LmMKaW5kZXggMjcxOTBlMDQyMy4uNTcxNzk2YjEyMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTgzNCw4ICs4MzQsOCBAQCBp bnQgd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKHVpbnQzMl90IGlkeCwgdWludDY0X3QgdmFsKQogICAg ICAgICAgICAgfQogCiAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKLSAgICAg ICAgICAgICAgICAgICAgICJCYWQgR01GTiAlbHggKE1GTiAlbHgpIHRvIE1TUiAlMDh4XG4iLAot ICAgICAgICAgICAgICAgICAgICAgZ21mbiwgcGFnZSA/IHBhZ2VfdG9fbWZuKHBhZ2UpIDogLTFV TCwgYmFzZSk7CisgICAgICAgICAgICAgICAgICAgICAiQmFkIEdNRk4gJWx4IChNRk4gJSMiUFJJ X21mbiIpIHRvIE1TUiAlMDh4XG4iLAorICAgICAgICAgICAgICAgICAgICAgZ21mbiwgbWZuX3go cGFnZSA/IHBhZ2VfdG9fbWZuKHBhZ2UpIDogSU5WQUxJRF9NRk4pLCBiYXNlKTsKICAgICAgICAg ICAgIHJldHVybiAwOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf NjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCA2YjY3OTg4MmQ2Li5mZjhh NmRlMjNmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2Fy Y2gveDg2L3g4Nl82NC9tbS5jCkBAIC00MCwxMiArNDAsNiBAQCBhc20oIi5maWxlIFwiIiBfX0ZJ TEVfXyAiXCIiKTsKICNpbmNsdWRlIDxhc20vbWVtX3NoYXJpbmcuaD4KICNpbmNsdWRlIDxwdWJs aWMvbWVtb3J5Lmg+CiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFr ZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBh Z2VfdG9fbWZuKHBnKSBfbWZuKF9fcGFnZV90b19tZm4ocGcpKQotI3VuZGVmIG1mbl90b19wYWdl Ci0jZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feChtZm4pKQotCiB1 bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBtMnBfY29tcGF0X3ZzdGFydCA9IF9fSFlQRVJWSVNP Ul9DT01QQVRfVklSVF9TVEFSVDsKIAogbDJfcGdlbnRyeV90ICpjb21wYXRfaWRsZV9wZ190YWJs ZV9sMjsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFp bi5jCmluZGV4IGUxYzAwM2Q3MWUuLmUyYWNmZWZmODAgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v ZG9tYWluLmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtMTIxNyw3ICsxMjE3LDcgQEAg aW50IG1hcF92Y3B1X2luZm8oc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNp Z25lZCBvZmZzZXQpCiAgICAgfQogCiAgICAgdi0+dmNwdV9pbmZvID0gbmV3X2luZm87Ci0gICAg di0+dmNwdV9pbmZvX21mbiA9IF9tZm4ocGFnZV90b19tZm4ocGFnZSkpOworICAgIHYtPnZjcHVf aW5mb19tZm4gPSBwYWdlX3RvX21mbihwYWdlKTsKIAogICAgIC8qIFNldCBuZXcgdmNwdV9pbmZv IHBvaW50ZXIgL2JlZm9yZS8gc2V0dGluZyBwZW5kaW5nIGZsYWdzLiAqLwogICAgIHNtcF93bWIo KTsKQEAgLTEyNTAsNyArMTI1MCw3IEBAIHZvaWQgdW5tYXBfdmNwdV9pbmZvKHN0cnVjdCB2Y3B1 ICp2KQogCiAgICAgdmNwdV9pbmZvX3Jlc2V0KHYpOyAvKiBOQjogQ2xvYmJlcnMgdi0+dmNwdV9p bmZvX21mbiAqLwogCi0gICAgcHV0X3BhZ2VfYW5kX3R5cGUobWZuX3RvX3BhZ2UobWZuX3gobWZu KSkpOworICAgIHB1dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdlKG1mbikpOwogfQogCiBpbnQg ZGVmYXVsdF9pbml0aWFsaXNlX3ZjcHUoc3RydWN0IHZjcHUgKnYsIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgYXJnKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIv eGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IGU5YTgxYjY2YmUuLjk1OWI3YzY0YjIgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50 X3RhYmxlLmMKQEAgLTQwLDEyICs0MCw2IEBACiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogI2luY2x1 ZGUgPGFzbS9mbHVzaHRsYi5oPgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5o IHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBwYWdlX3RvX21mbgotI2Rl ZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLSN1bmRlZiBtZm5f dG9fcGFnZQotI2RlZmluZSBtZm5fdG9fcGFnZShtZm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZu KSkKLQogLyogUGVyLWRvbWFpbiBncmFudCBpbmZvcm1hdGlvbi4gKi8KIHN0cnVjdCBncmFudF90 YWJsZSB7CiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24va2ltYWdlLmMgYi94ZW4vY29t bW9uL2tpbWFnZS5jCmluZGV4IGFmZDgyOTJjYzEuLjIxMDI0MWRmYjcgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24va2ltYWdlLmMKKysrIGIveGVuL2NvbW1vbi9raW1hZ2UuYwpAQCAtMjMsMTIgKzIz LDYgQEAKIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9t IGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIG1mbl90 b19wYWdlCi0jZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feChtZm4p KQotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9fbWZuKHBnKSAgX21mbihfX3Bh Z2VfdG9fbWZuKHBnKSkKLQogLyoKICAqIFdoZW4ga2V4ZWMgdHJhbnNpdGlvbnMgdG8gdGhlIG5l dyBrZXJuZWwgdGhlcmUgaXMgYSBvbmUtdG8tb25lCiAgKiBtYXBwaW5nIGJldHdlZW4gcGh5c2lj YWwgYW5kIHZpcnR1YWwgYWRkcmVzc2VzLiAgT24gcHJvY2Vzc29ycwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggOTNkODU2ZGYwMi4u NGM2YjM2YjI5NyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29t bW9uL21lbW9yeS5jCkBAIC0zMywxMiArMzMsNiBAQAogI2luY2x1ZGUgPGFzbS9ndWVzdC5oPgog I2VuZGlmCiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVt IHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIHBhZ2VfdG9fbWZuCi0jZGVmaW5lIHBhZ2VfdG9f bWZuKHBnKSBfbWZuKF9fcGFnZV90b19tZm4ocGcpKQotI3VuZGVmIG1mbl90b19wYWdlCi0jZGVm aW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9fcGFnZShtZm5feChtZm4pKQotCiBzdHJ1Y3Qg bWVtb3BfYXJncyB7CiAgICAgLyogSU5QVVQgKi8KICAgICBzdHJ1Y3QgZG9tYWluICpkb21haW47 ICAgICAvKiBEb21haW4gdG8gYmUgYWZmZWN0ZWQuICovCmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IGIwZGI0MWZlZWEu LjdmYTg0N2M5YTEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hl bi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC0xNTEsMTIgKzE1MSw2IEBACiAjZGVmaW5lIHAybV9w b2Rfb2ZmbGluZV9vcl9icm9rZW5fcmVwbGFjZShwZykgQlVHX09OKHBnICE9IE5VTEwpCiAjZW5k aWYKIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29y ayB3aXRoIG1mbl90ICovCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4o cGcpIF9tZm4oX19wYWdlX3RvX21mbihwZykpCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNkZWZpbmUg bWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKG1mbl94KG1mbikpCi0KIC8qCiAgKiBDb21t YS1zZXBhcmF0ZWQgbGlzdCBvZiBoZXhhZGVjaW1hbCBwYWdlIG51bWJlcnMgY29udGFpbmluZyBi YWQgYnl0ZXMuCiAgKiBlLmcuICdiYWRwYWdlPTB4M2Y0NSwweDhhMzIxJy4KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vdG1lbS5jIGIveGVuL2NvbW1vbi90bWVtLmMKaW5kZXggMzI0ZjQyYTZmOS4u YzA3N2Y4N2U3NyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi90bWVtLmMKKysrIGIveGVuL2NvbW1v bi90bWVtLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCB0bWVtX3BlcnNpc3RlbnRf cG9vbF9wYWdlX3B1dCh2b2lkICpwYWdlX3ZhKQogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBpOwog CiAgICAgQVNTRVJUKElTX1BBR0VfQUxJR05FRChwYWdlX3ZhKSk7Ci0gICAgcGkgPSBtZm5fdG9f cGFnZSh2aXJ0X3RvX21mbihwYWdlX3ZhKSk7CisgICAgcGkgPSBtZm5fdG9fcGFnZShfbWZuKHZp cnRfdG9fbWZuKHBhZ2VfdmEpKSk7CiAgICAgQVNTRVJUKElTX1ZBTElEX1BBR0UocGkpKTsKICAg ICBfX3RtZW1fZnJlZV9wYWdlX3RoaXNwb29sKHBpKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vdG1lbV94ZW4uYyBiL3hlbi9jb21tb24vdG1lbV94ZW4uYwppbmRleCBiZDUyZTQ0ZmFmLi5i ZjdiMTRmNzlhIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3RtZW1feGVuLmMKKysrIGIveGVuL2Nv bW1vbi90bWVtX3hlbi5jCkBAIC0xNCwxMCArMTQsNiBAQAogI2luY2x1ZGUgPHhlbi9jcHUuaD4K ICNpbmNsdWRlIDx4ZW4vaW5pdC5oPgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFn ZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiBwYWdlX3RvX21mbgot I2RlZmluZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKLQogYm9vbCBf X3JlYWRfbW9zdGx5IG9wdF90bWVtOwogYm9vbGVhbl9wYXJhbSgidG1lbSIsIG9wdF90bWVtKTsK IApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi90cmFjZS5jIGIveGVuL2NvbW1vbi90cmFjZS5jCmlu ZGV4IDJlMTg3MDIzMTcuLjFmMTliN2E2MDQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdHJhY2Uu YworKysgYi94ZW4vY29tbW9uL3RyYWNlLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgaW50 IGFsbG9jX3RyYWNlX2J1ZnModW5zaWduZWQgaW50IHBhZ2VzKQogICAgICAgICAvKiBOb3cgc2hh cmUgdGhlIHRyYWNlIHBhZ2VzICovCiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgcGFnZXM7IGkr KyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHBnID0gbWZuX3RvX3BhZ2UodF9pbmZvX21mbl9s aXN0W29mZnNldCArIGldKTsKKyAgICAgICAgICAgIHBnID0gbWZuX3RvX3BhZ2UoX21mbih0X2lu Zm9fbWZuX2xpc3Rbb2Zmc2V0ICsgaV0pKTsKICAgICAgICAgICAgIHNoYXJlX3hlbl9wYWdlX3dp dGhfcHJpdmlsZWdlZF9ndWVzdHMocGcsIFhFTlNIQVJFX3dyaXRhYmxlKTsKICAgICAgICAgfQog ICAgIH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBvdXRfZGVhbGxvYzoKICAgICAgICAgICAgIHVpbnQz Ml90IG1mbiA9IHRfaW5mb19tZm5fbGlzdFtvZmZzZXQgKyBpXTsKICAgICAgICAgICAgIGlmICgg IW1mbiApCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBBU1NFUlQoIShtZm5f dG9fcGFnZShtZm4pLT5jb3VudF9pbmZvICYgUEdDX2FsbG9jYXRlZCkpOworICAgICAgICAgICAg QVNTRVJUKCEobWZuX3RvX3BhZ2UoX21mbihtZm4pKS0+Y291bnRfaW5mbyAmIFBHQ19hbGxvY2F0 ZWQpKTsKICAgICAgICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhtZm5fdG9fdmlydChtZm4pLCAw KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdm1hcC5jIGIveGVu L2NvbW1vbi92bWFwLmMKaW5kZXggMWY1MGM5MTc4OS4uNmUyOTU4NjJmYiAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi92bWFwLmMKKysrIGIveGVuL2NvbW1vbi92bWFwLmMKQEAgLTksMTAgKzksNiBA QAogI2luY2x1ZGUgPHhlbi92bWFwLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAotLyogT3Zl cnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90 ICovCi0jdW5kZWYgcGFnZV90b19tZm4KLSNkZWZpbmUgcGFnZV90b19tZm4ocGcpIF9tZm4oX19w YWdlX3RvX21mbihwZykpCi0KIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodm1fbG9jayk7CiBzdGF0 aWMgdm9pZCAqX19yZWFkX21vc3RseSB2bV9iYXNlW1ZNQVBfUkVHSU9OX05SXTsKICNkZWZpbmUg dm1fYml0bWFwKHgpICgodW5zaWduZWQgbG9uZyAqKXZtX2Jhc2VbeF0pCkBAIC0yNzQsNyArMjcw LDcgQEAgc3RhdGljIHZvaWQgKnZtYWxsb2NfdHlwZShzaXplX3Qgc2l6ZSwgZW51bSB2bWFwX3Jl Z2lvbiB0eXBlKQogCiAgZXJyb3I6CiAgICAgd2hpbGUgKCBpLS0gKQotICAgICAgICBmcmVlX2Rv bWhlYXBfcGFnZShtZm5fdG9fcGFnZShtZm5feChtZm5baV0pKSk7CisgICAgICAgIGZyZWVfZG9t aGVhcF9wYWdlKG1mbl90b19wYWdlKG1mbltpXSkpOwogICAgIHhmcmVlKG1mbik7CiAgICAgcmV0 dXJuIE5VTEw7CiB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3hlbm9wcm9mLmMgYi94ZW4vY29t bW9uL3hlbm9wcm9mLmMKaW5kZXggNWFjZGRlNTY5MS4uZmVjZGZiMzY5NyAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi94ZW5vcHJvZi5jCisrKyBiL3hlbi9jb21tb24veGVub3Byb2YuYwpAQCAtMjIs OCArMjIsNiBAQAogLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRo ZW0gd29yayB3aXRoIG1mbl90ICovCiAjdW5kZWYgdmlydF90b19tZm4KICNkZWZpbmUgdmlydF90 b19tZm4odmEpIF9tZm4oX192aXJ0X3RvX21mbih2YSkpCi0jdW5kZWYgbWZuX3RvX3BhZ2UKLSNk ZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSBfX21mbl90b19wYWdlKG1mbl94KG1mbikpCiAKIC8qIExp bWl0IGFtb3VudCBvZiBwYWdlcyB1c2VkIGZvciBzaGFyZWQgYnVmZmVyIChwZXIgZG9tYWluKSAq LwogI2RlZmluZSBNQVhfT1BST0ZfU0hBUkVEX1BBR0VTIDMyCmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfbWFwLmMKaW5kZXggZmQyMzI3ZDNlNS4uNzBiNDM0NWIzNyAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRp YyBpbnQgaW9tbXVfcGRlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg cGZuLAogICAgIEJVR19PTiggdGFibGUgPT0gTlVMTCB8fCBsZXZlbCA8IElPTU1VX1BBR0lOR19N T0RFX0xFVkVMXzEgfHwgCiAgICAgICAgICAgICBsZXZlbCA+IElPTU1VX1BBR0lOR19NT0RFX0xF VkVMXzYgKTsKIAotICAgIG5leHRfdGFibGVfbWZuID0gcGFnZV90b19tZm4odGFibGUpOworICAg IG5leHRfdGFibGVfbWZuID0gbWZuX3gocGFnZV90b19tZm4odGFibGUpKTsKIAogICAgIGlmICgg bGV2ZWwgPT0gSU9NTVVfUEFHSU5HX01PREVfTEVWRUxfMSApCiAgICAgewpAQCAtNDkzLDcgKzQ5 Myw3IEBAIHN0YXRpYyBpbnQgaW9tbXVfcGRlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgcGZuLAogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAg fQogCi0gICAgICAgICAgICBuZXh0X3RhYmxlX21mbiA9IHBhZ2VfdG9fbWZuKHRhYmxlKTsKKyAg ICAgICAgICAgIG5leHRfdGFibGVfbWZuID0gbWZuX3gocGFnZV90b19tZm4odGFibGUpKTsKICAg ICAgICAgICAgIHNldF9pb21tdV9wZGVfcHJlc2VudCgodTMyKilwZGUsIG5leHRfdGFibGVfbWZu LCBuZXh0X2xldmVsLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIUlPTU1V Rl93cml0YWJsZSwgISFJT01NVUZfcmVhZGFibGUpOwogCkBAIC01MjAsNyArNTIwLDcgQEAgc3Rh dGljIGludCBpb21tdV9wZGVfZnJvbV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBwZm4sCiAgICAgICAgICAgICAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKG5leHRfdGFibGVf dmFkZHIpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgbmV4dF90YWJsZV9tZm4gPSBwYWdlX3RvX21mbih0YWJsZSk7Cisg ICAgICAgICAgICAgICAgbmV4dF90YWJsZV9tZm4gPSBtZm5feChwYWdlX3RvX21mbih0YWJsZSkp OwogICAgICAgICAgICAgICAgIHNldF9pb21tdV9wZGVfcHJlc2VudCgodTMyKilwZGUsIG5leHRf dGFibGVfbWZuLCBuZXh0X2xldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAhIUlPTU1VRl93cml0YWJsZSwgISFJT01NVUZfcmVhZGFibGUpOwogICAgICAgICAgICAg fQpAQCAtNTc3LDcgKzU3Nyw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3BhZ2luZ19tb2RlKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAgICAgICB9CiAKICAgICAgICAgbmV3 X3Jvb3RfdmFkZHIgPSBfX21hcF9kb21haW5fcGFnZShuZXdfcm9vdCk7Ci0gICAgICAgIG9sZF9y b290X21mbiA9IHBhZ2VfdG9fbWZuKG9sZF9yb290KTsKKyAgICAgICAgb2xkX3Jvb3RfbWZuID0g bWZuX3gocGFnZV90b19tZm4ob2xkX3Jvb3QpKTsKICAgICAgICAgc2V0X2lvbW11X3BkZV9wcmVz ZW50KG5ld19yb290X3ZhZGRyLCBvbGRfcm9vdF9tZm4sIGxldmVsLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgISFJT01NVUZfd3JpdGFibGUsICEhSU9NTVVGX3JlYWRhYmxlKTsKICAg ICAgICAgbGV2ZWwrKzsKQEAgLTcxMiw3ICs3MTIsNyBAQCBpbnQgYW1kX2lvbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwK ICAgICAgICAgfQogCiAgICAgICAgIC8qIERlYWxsb2NhdGUgbG93ZXIgbGV2ZWwgcGFnZSB0YWJs ZSAqLwotICAgICAgICBmcmVlX2FtZF9pb21tdV9wZ3RhYmxlKG1mbl90b19wYWdlKHB0X21mbltt ZXJnZV9sZXZlbCAtIDFdKSk7CisgICAgICAgIGZyZWVfYW1kX2lvbW11X3BndGFibGUobWZuX3Rv X3BhZ2UoX21mbihwdF9tZm5bbWVyZ2VfbGV2ZWwgLSAxXSkpKTsKICAgICB9CiAKIG91dDoKQEAg LTgwMiw3ICs4MDIsNyBAQCB2b2lkIGFtZF9pb21tdV9zaGFyZV9wMm0oc3RydWN0IGRvbWFpbiAq ZCkKICAgICBtZm5fdCBwZ2RfbWZuOwogCiAgICAgcGdkX21mbiA9IHBhZ2V0YWJsZV9nZXRfbWZu KHAybV9nZXRfcGFnZXRhYmxlKHAybV9nZXRfaG9zdHAybShkKSkpOwotICAgIHAybV90YWJsZSA9 IG1mbl90b19wYWdlKG1mbl94KHBnZF9tZm4pKTsKKyAgICBwMm1fdGFibGUgPSBtZm5fdG9fcGFn ZShwZ2RfbWZuKTsKIAogICAgIGlmICggaGQtPmFyY2gucm9vdF90YWJsZSAhPSBwMm1fdGFibGUg KQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDFhZWNmN2NmMzQuLjJjNDRmYWJm OTkgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgX19o d2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIAogICAgICAgICBw YWdlX2xpc3RfZm9yX2VhY2ggKCBwYWdlLCAmZC0+cGFnZV9saXN0ICkKICAgICAgICAgewotICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwYWdlX3RvX21mbihwYWdlKTsKKyAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkpOwogICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBnZm4gPSBtZm5fdG9fZ21mbihkLCBtZm4pOwogICAgICAgICAg ICAgdW5zaWduZWQgaW50IG1hcHBpbmcgPSBJT01NVUZfcmVhZGFibGU7CiAgICAgICAgICAgICBp bnQgcmV0OwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCAwMjUzODIzMTczLi42 ODE4MmFmZDkxIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAtNTgsNyArNTgs NyBAQCBpbnQgYXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQp CiAgICAgICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSB8fAogICAgICAgICAgICAgKHBhZ2UtPnUu aW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzaykgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQog ICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiA9IHBhZ2VfdG9fbWZuKHBh Z2UpOworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBtZm5feChwYWdlX3RvX21mbihw YWdlKSk7CiAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdmbiA9IG1mbl90b19nbWZuKGQsIG1m bik7CiAKICAgICAgICAgICAgIGlmICggZ2ZuICE9IGdmbl94KElOVkFMSURfR0ZOKSApCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL21t LmgKaW5kZXggMDIzZTJlYjIxMy4uYjFkOTQ4MDVkNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLWFybS9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaApAQCAtMTM4LDcgKzEz OCw3IEBAIGV4dGVybiB2YWRkcl90IHhlbmhlYXBfdmlydF9zdGFydDsKICNlbmRpZgogCiAjaWZk ZWYgQ09ORklHX0FSTV8zMgotI2RlZmluZSBpc194ZW5faGVhcF9wYWdlKHBhZ2UpIGlzX3hlbl9o ZWFwX21mbihfX3BhZ2VfdG9fbWZuKHBhZ2UpKQorI2RlZmluZSBpc194ZW5faGVhcF9wYWdlKHBh Z2UpIGlzX3hlbl9oZWFwX21mbihtZm5feChwYWdlX3RvX21mbihwYWdlKSkpCiAjZGVmaW5lIGlz X3hlbl9oZWFwX21mbihtZm4pICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIHVuc2lnbmVkIGxvbmcgbWZuXyA9IChtZm4pOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAobWZuXyA+PSBtZm5feCh4ZW5oZWFwX21mbl9zdGFydCkgJiYgICAgICAg ICAgICAgICAgICAgICAgICBcCkBAIC0xNDcsNyArMTQ3LDcgQEAgZXh0ZXJuIHZhZGRyX3QgeGVu aGVhcF92aXJ0X3N0YXJ0OwogI2Vsc2UKICNkZWZpbmUgaXNfeGVuX2hlYXBfcGFnZShwYWdlKSAo KHBhZ2UpLT5jb3VudF9pbmZvICYgUEdDX3hlbl9oZWFwKQogI2RlZmluZSBpc194ZW5faGVhcF9t Zm4obWZuKSBcCi0gICAgKG1mbl92YWxpZChfbWZuKG1mbikpICYmIGlzX3hlbl9oZWFwX3BhZ2Uo X19tZm5fdG9fcGFnZShtZm4pKSkKKyAgICAobWZuX3ZhbGlkKF9tZm4obWZuKSkgJiYgaXNfeGVu X2hlYXBfcGFnZShtZm5fdG9fcGFnZShfbWZuKG1mbikpKSkKICNlbmRpZgogCiAjZGVmaW5lIGlz X3hlbl9maXhlZF9tZm4obWZuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApA QCAtMjIwLDEyICsyMjAsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmlvcmVtYXBf d2MocGFkZHJfdCBzdGFydCwgc2l6ZV90IGxlbikKIH0pCiAKIC8qIENvbnZlcnQgYmV0d2VlbiBt YWNoaW5lIGZyYW1lIG51bWJlcnMgYW5kIHBhZ2UtaW5mbyBzdHJ1Y3R1cmVzLiAqLwotI2RlZmlu ZSBfX21mbl90b19wYWdlKG1mbikgIChmcmFtZV90YWJsZSArIChwZm5fdG9fcGR4KG1mbikgLSBm cmFtZXRhYmxlX2Jhc2VfcGR4KSkKLSNkZWZpbmUgX19wYWdlX3RvX21mbihwZykgICBwZHhfdG9f cGZuKCh1bnNpZ25lZCBsb25nKSgocGcpIC0gZnJhbWVfdGFibGUpICsgZnJhbWV0YWJsZV9iYXNl X3BkeCkKKyNkZWZpbmUgbWZuX3RvX3BhZ2UobWZuKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIChmcmFtZV90YWJsZSArIChtZm5fdG9fcGR4KG1mbikg LSBmcmFtZXRhYmxlX2Jhc2VfcGR4KSkKKyNkZWZpbmUgcGFnZV90b19tZm4ocGcpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHBkeF90b19tZm4oKHVu c2lnbmVkIGxvbmcpKChwZykgLSBmcmFtZV90YWJsZSkgKyBmcmFtZXRhYmxlX2Jhc2VfcGR4KQog CiAvKiBDb252ZXJ0IGJldHdlZW4gbWFjaGluZSBhZGRyZXNzZXMgYW5kIHBhZ2UtaW5mbyBzdHJ1 Y3R1cmVzLiAqLwotI2RlZmluZSBtYWRkcl90b19wYWdlKG1hKSBfX21mbl90b19wYWdlKChtYSkg Pj4gUEFHRV9TSElGVCkKLSNkZWZpbmUgcGFnZV90b19tYWRkcihwZykgKChwYWRkcl90KV9fcGFn ZV90b19tZm4ocGcpIDw8IFBBR0VfU0hJRlQpCisjZGVmaW5lIG1hZGRyX3RvX3BhZ2UobWEpIG1m bl90b19wYWdlKG1hZGRyX3RvX21mbihtYSkpCisjZGVmaW5lIHBhZ2VfdG9fbWFkZHIocGcpICht Zm5fdG9fbWFkZHIocGFnZV90b19tZm4ocGcpKSkKIAogLyogQ29udmVydCBiZXR3ZWVuIGZyYW1l IG51bWJlciBhbmQgYWRkcmVzcyBmb3JtYXRzLiAgKi8KICNkZWZpbmUgcGZuX3RvX3BhZGRyKHBm bikgKChwYWRkcl90KShwZm4pIDw8IFBBR0VfU0hJRlQpCkBAIC0yMzUsNyArMjM3LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIF9faW9tZW0gKmlvcmVtYXBfd2MocGFkZHJfdCBzdGFydCwgc2l6ZV90 IGxlbikKICNkZWZpbmUgZ2FkZHJfdG9fZ2ZuKGdhKSAgICBfZ2ZuKHBhZGRyX3RvX3BmbihnYSkp CiAjZGVmaW5lIG1mbl90b19tYWRkcihtZm4pICAgcGZuX3RvX3BhZGRyKG1mbl94KG1mbikpCiAj ZGVmaW5lIG1hZGRyX3RvX21mbihtYSkgICAgX21mbihwYWRkcl90b19wZm4obWEpKQotI2RlZmlu ZSB2bWFwX3RvX21mbih2YSkgICAgIHBhZGRyX3RvX3Bmbih2aXJ0X3RvX21hZGRyKCh2YWRkcl90 KXZhKSkKKyNkZWZpbmUgdm1hcF90b19tZm4odmEpICAgICBtYWRkcl90b19tZm4odmlydF90b19t YWRkcigodmFkZHJfdCl2YSkpCiAjZGVmaW5lIHZtYXBfdG9fcGFnZSh2YSkgICAgbWZuX3RvX3Bh Z2Uodm1hcF90b19tZm4odmEpKQogCiAvKiBQYWdlLWFsaWduIGFkZHJlc3MgYW5kIGNvbnZlcnQg dG8gZnJhbWUgbnVtYmVyIGZvcm1hdCAqLwpAQCAtMjkzLDggKzI5NSw2IEBAIHN0YXRpYyBpbmxp bmUgdWludDY0X3QgZ3ZpcnRfdG9fbWFkZHIodmFkZHJfdCB2YSwgcGFkZHJfdCAqcGEsCiAgKiBU aGVzZSBhcmUgb3ZlcnJpZGVuIGluIHZhcmlvdXMgc291cmNlIGZpbGVzIHdoaWxlIHVuZGVyc2Nv cmVkIHZlcnNpb24KICAqIHJlbWFpbiBpbnRhY3QuCiAgKi8KLSNkZWZpbmUgbWZuX3RvX3BhZ2Uo bWZuKSAgICBfX21mbl90b19wYWdlKG1mbikKLSNkZWZpbmUgcGFnZV90b19tZm4ocGcpICAgICBf X3BhZ2VfdG9fbWZuKHBnKQogI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgICAgIF9fdmlydF90b19t Zm4odmEpCiAjZGVmaW5lIG1mbl90b192aXJ0KG1mbikgICAgX19tZm5fdG9fdmlydChtZm4pCiAK QEAgLTMxNCw3ICszMTQsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKnZpcnRf dG9fcGFnZShjb25zdCB2b2lkICp2KQogCiBzdGF0aWMgaW5saW5lIHZvaWQgKnBhZ2VfdG9fdmly dChjb25zdCBzdHJ1Y3QgcGFnZV9pbmZvICpwZykKIHsKLSAgICByZXR1cm4gbWZuX3RvX3ZpcnQo cGFnZV90b19tZm4ocGcpKTsKKyAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gocGFnZV90b19t Zm4ocGcpKSk7CiB9CiAKIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ3ZhKHN0cnVj dCB2Y3B1ICp2LCB2YWRkcl90IHZhLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9w Mm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKaW5kZXggYTBhYmM4NGVkOC4uYmNhYzE0 MWZkNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAorKysgYi94ZW4vaW5j bHVkZS9hc20tYXJtL3AybS5oCkBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigKIHsKICAgICBzdHJ1Y3QgcGFnZV9pbmZv ICpwYWdlOwogICAgIHAybV90eXBlX3QgcDJtdDsKLSAgICB1bnNpZ25lZCBsb25nIG1mbiA9IG1m bl94KHAybV9sb29rdXAoZCwgX2dmbihnZm4pLCAmcDJtdCkpOworICAgIG1mbl90IG1mbiA9IHAy bV9sb29rdXAoZCwgX2dmbihnZm4pLCAmcDJtdCk7CiAKICAgICBpZiAodCkKICAgICAgICAgKnQg PSBwMm10OwpAQCAtMjg2LDcgKzI4Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2VfaW5m byAqZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgaWYgKCAhcDJtX2lzX2FueV9yYW0ocDJtdCkgKQog ICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICggIW1mbl92YWxpZChfbWZuKG1mbikpICkK KyAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIHBh Z2UgPSBtZm5fdG9fcGFnZShtZm4pOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2 L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXggMzAxM2MyNjZmZS4uOGRjMzgy MWU5NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvbW0uaApAQCAtMjcxLDcgKzI3MSw3IEBAIHN0cnVjdCBwYWdlX2luZm8KIAog I2RlZmluZSBpc194ZW5faGVhcF9wYWdlKHBhZ2UpICgocGFnZSktPmNvdW50X2luZm8gJiBQR0Nf eGVuX2hlYXApCiAjZGVmaW5lIGlzX3hlbl9oZWFwX21mbihtZm4pIFwKLSAgICAoX19tZm5fdmFs aWQobWZuKSAmJiBpc194ZW5faGVhcF9wYWdlKF9fbWZuX3RvX3BhZ2UobWZuKSkpCisgICAgKF9f bWZuX3ZhbGlkKG1mbikgJiYgaXNfeGVuX2hlYXBfcGFnZShtZm5fdG9fcGFnZShfbWZuKG1mbikp KSkKICNkZWZpbmUgaXNfeGVuX2ZpeGVkX21mbihtZm4pICAgICAgICAgICAgICAgICAgICAgXAog ICAgICgoKChtZm4pIDw8IFBBR0VfU0hJRlQpID49IF9fcGEoJl9zdGV4dCkpICYmICBcCiAgICAg ICgoKG1mbikgPDwgUEFHRV9TSElGVCkgPD0gX19wYSgmX18yTV9yd2RhdGFfZW5kKSkpCkBAIC0z ODQsNyArMzg0LDcgQEAgdm9pZCBwdXRfcGFnZV9mcm9tX2wxZShsMV9wZ2VudHJ5X3QgbDFlLCBz dHJ1Y3QgZG9tYWluICpsMWVfb3duZXIpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2lu Zm8gKmdldF9wYWdlX2Zyb21fbWZuKG1mbl90IG1mbiwgc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gX19tZm5fdG9fcGFnZShtZm5feChtZm4pKTsKKyAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKIAogICAgIGlmICgg dW5saWtlbHkoIW1mbl92YWxpZChtZm4pKSB8fCB1bmxpa2VseSghZ2V0X3BhZ2UocGFnZSwgZCkp ICkKICAgICB7CkBAIC00NzgsMTAgKzQ3OCwxMCBAQCBleHRlcm4gcGFkZHJfdCBtZW1faG90cGx1 ZzsKICNkZWZpbmUgU0hBUkVEX00yUChfZSkgICAgICAgICAgICgoX2UpID09IFNIQVJFRF9NMlBf RU5UUlkpCiAKICNkZWZpbmUgY29tcGF0X21hY2hpbmVfdG9fcGh5c19tYXBwaW5nICgodW5zaWdu ZWQgaW50ICopUkRXUl9DT01QQVRfTVBUX1ZJUlRfU1RBUlQpCi0jZGVmaW5lIF9zZXRfZ3Bmbl9m cm9tX21mbihtZm4sIHBmbikgKHsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgc3RydWN0 IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKF9fbWZuX3RvX3BhZ2UobWZuKSk7ICAgICBcCi0g ICAgdW5zaWduZWQgbG9uZyBlbnRyeSA9IChkICYmIChkID09IGRvbV9jb3cpKSA/ICAgICAgICAg ICAgICBcCi0gICAgICAgIFNIQVJFRF9NMlBfRU5UUlkgOiAocGZuKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisjZGVmaW5lIF9zZXRfZ3Bmbl9mcm9tX21mbihtZm4sIHBmbikgKHsg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBkb21haW4gKmQgPSBwYWdlX2dl dF9vd25lcihtZm5fdG9fcGFnZShfbWZuKG1mbikpKTsgICAgXAorICAgIHVuc2lnbmVkIGxvbmcg ZW50cnkgPSAoZCAmJiAoZCA9PSBkb21fY293KSkgPyAgICAgICAgICAgICAgIFwKKyAgICAgICAg U0hBUkVEX00yUF9FTlRSWSA6IChwZm4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgKCh2b2lkKSgobWZuKSA+PSAoUkRXUl9DT01QQVRfTVBUX1ZJUlRfRU5EIC0gUkRXUl9D T01QQVRfTVBUX1ZJUlRfU1RBUlQpIC8gNCB8fCBcCiAgICAgICAgICAgICAoY29tcGF0X21hY2hp bmVfdG9fcGh5c19tYXBwaW5nWyhtZm4pXSA9ICh1bnNpZ25lZCBpbnQpKGVudHJ5KSkpLCBcCiAg ICAgIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nWyhtZm4pXSA9IChlbnRyeSkpOyAgICAgICAgICAg ICAgICBcCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCAyZTdhYThmYzc5Li5jNDg2YjZmOGYwIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJt LmgKQEAgLTQ4OCw3ICs0ODgsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKmdl dF9wYWdlX2Zyb21fZ2ZuKAogICAgIC8qIE5vbi10cmFuc2xhdGVkIGd1ZXN0cyBzZWUgMS0xIFJB TSAvIE1NSU8gbWFwcGluZ3MgZXZlcnl3aGVyZSAqLwogICAgIGlmICggdCApCiAgICAgICAgICp0 ID0gbGlrZWx5KGQgIT0gZG9tX2lvKSA/IHAybV9yYW1fcncgOiBwMm1fbW1pb19kaXJlY3Q7Ci0g ICAgcGFnZSA9IF9fbWZuX3RvX3BhZ2UoZ2ZuKTsKKyAgICBwYWdlID0gbWZuX3RvX3BhZ2UoX21m bihnZm4pKTsKICAgICByZXR1cm4gbWZuX3ZhbGlkKF9tZm4oZ2ZuKSkgJiYgZ2V0X3BhZ2UocGFn ZSwgZCkgPyBwYWdlIDogTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9wYWdlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCA0NWNhNzQyNjc4Li43 ZTJhMTU0NmMzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAorKysgYi94 ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaApAQCAtODgsMTAgKzg4LDEwIEBACiAgICAgKChwYWRk cl90KSgoKHgpLmw0ICYgKFBBRERSX01BU0smUEFHRV9NQVNLKSkpKQogCiAvKiBHZXQgcG9pbnRl ciB0byBpbmZvIHN0cnVjdHVyZSBvZiBwYWdlIG1hcHBlZCBieSBwdGUgKHN0cnVjdCBwYWdlX2lu Zm8gKikuICovCi0jZGVmaW5lIGwxZV9nZXRfcGFnZSh4KSAgICAgICAgICAgKF9fbWZuX3RvX3Bh Z2UobDFlX2dldF9wZm4oeCkpKQotI2RlZmluZSBsMmVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIChf X21mbl90b19wYWdlKGwyZV9nZXRfcGZuKHgpKSkKLSNkZWZpbmUgbDNlX2dldF9wYWdlKHgpICAg ICAgICAgICAoX19tZm5fdG9fcGFnZShsM2VfZ2V0X3Bmbih4KSkpCi0jZGVmaW5lIGw0ZV9nZXRf cGFnZSh4KSAgICAgICAgICAgKF9fbWZuX3RvX3BhZ2UobDRlX2dldF9wZm4oeCkpKQorI2RlZmlu ZSBsMWVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIG1mbl90b19wYWdlKGwxZV9nZXRfbWZuKHgpKQor I2RlZmluZSBsMmVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIG1mbl90b19wYWdlKGwyZV9nZXRfbWZu KHgpKQorI2RlZmluZSBsM2VfZ2V0X3BhZ2UoeCkgICAgICAgICAgIG1mbl90b19wYWdlKGwzZV9n ZXRfbWZuKHgpKQorI2RlZmluZSBsNGVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIG1mbl90b19wYWdl KGw0ZV9nZXRfbWZuKHgpKQogCiAvKiBHZXQgcHRlIGFjY2VzcyBmbGFncyAodW5zaWduZWQgaW50 KS4gKi8KICNkZWZpbmUgbDFlX2dldF9mbGFncyh4KSAgICAgICAgICAgKGdldF9wdGVfZmxhZ3Mo KHgpLmwxKSkKQEAgLTE1NywxMCArMTU3LDEwIEBAIHN0YXRpYyBpbmxpbmUgbDRfcGdlbnRyeV90 IGw0ZV9mcm9tX3BhZGRyKHBhZGRyX3QgcGEsIHVuc2lnbmVkIGludCBmbGFncykKICNkZWZpbmUg bDRlX2Zyb21faW50cHRlKGludHB0ZSkgICAgKChsNF9wZ2VudHJ5X3QpIHsgKGludHB0ZV90KShp bnRwdGUpIH0pCiAKIC8qIENvbnN0cnVjdCBhIHB0ZSBmcm9tIGEgcGFnZSBwb2ludGVyIGFuZCBh Y2Nlc3MgZmxhZ3MuICovCi0jZGVmaW5lIGwxZV9mcm9tX3BhZ2UocGFnZSwgZmxhZ3MpIGwxZV9m cm9tX3BmbihfX3BhZ2VfdG9fbWZuKHBhZ2UpLCAoZmxhZ3MpKQotI2RlZmluZSBsMmVfZnJvbV9w YWdlKHBhZ2UsIGZsYWdzKSBsMmVfZnJvbV9wZm4oX19wYWdlX3RvX21mbihwYWdlKSwgKGZsYWdz KSkKLSNkZWZpbmUgbDNlX2Zyb21fcGFnZShwYWdlLCBmbGFncykgbDNlX2Zyb21fcGZuKF9fcGFn ZV90b19tZm4ocGFnZSksIChmbGFncykpCi0jZGVmaW5lIGw0ZV9mcm9tX3BhZ2UocGFnZSwgZmxh Z3MpIGw0ZV9mcm9tX3BmbihfX3BhZ2VfdG9fbWZuKHBhZ2UpLCAoZmxhZ3MpKQorI2RlZmluZSBs MWVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSBsMWVfZnJvbV9tZm4ocGFnZV90b19tZm4ocGFnZSks IChmbGFncykpCisjZGVmaW5lIGwyZV9mcm9tX3BhZ2UocGFnZSwgZmxhZ3MpIGwyZV9mcm9tX21m bihwYWdlX3RvX21mbihwYWdlKSwgKGZsYWdzKSkKKyNkZWZpbmUgbDNlX2Zyb21fcGFnZShwYWdl LCBmbGFncykgbDNlX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpLCAoZmxhZ3MpKQorI2RlZmlu ZSBsNGVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSBsNGVfZnJvbV9tZm4ocGFnZV90b19tZm4ocGFn ZSksIChmbGFncykpCiAKIC8qIEFkZCBleHRyYSBmbGFncyB0byBhbiBleGlzdGluZyBwdGUuICov CiAjZGVmaW5lIGwxZV9hZGRfZmxhZ3MoeCwgZmxhZ3MpICAgICgoeCkubDEgfD0gcHV0X3B0ZV9m bGFncyhmbGFncykpCkBAIC0yMTUsMTMgKzIxNSwxMyBAQCBzdGF0aWMgaW5saW5lIGw0X3BnZW50 cnlfdCBsNGVfZnJvbV9wYWRkcihwYWRkcl90IHBhLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAvKiBQ YWdlLXRhYmxlIHR5cGUuICovCiB0eXBlZGVmIHN0cnVjdCB7IHU2NCBwZm47IH0gcGFnZXRhYmxl X3Q7CiAjZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGFkZHIoeCkgICgocGFkZHJfdCkoeCkucGZuIDw8 IFBBR0VfU0hJRlQpCi0jZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGFnZSh4KSAgIF9fbWZuX3RvX3Bh Z2UoKHgpLnBmbikKKyNkZWZpbmUgcGFnZXRhYmxlX2dldF9wYWdlKHgpICAgbWZuX3RvX3BhZ2Uo cGFnZXRhYmxlX2dldF9tZm4oeCkpCiAjZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGZuKHgpICAgICgo eCkucGZuKQogI2RlZmluZSBwYWdldGFibGVfZ2V0X21mbih4KSAgICBfbWZuKCgoeCkucGZuKSkK ICNkZWZpbmUgcGFnZXRhYmxlX2lzX251bGwoeCkgICAgKCh4KS5wZm4gPT0gMCkKICNkZWZpbmUg cGFnZXRhYmxlX2Zyb21fcGZuKHBmbikgKChwYWdldGFibGVfdCkgeyAocGZuKSB9KQogI2RlZmlu ZSBwYWdldGFibGVfZnJvbV9tZm4obWZuKSAoKHBhZ2V0YWJsZV90KSB7IG1mbl94KG1mbikgfSkK LSNkZWZpbmUgcGFnZXRhYmxlX2Zyb21fcGFnZShwZykgcGFnZXRhYmxlX2Zyb21fcGZuKF9fcGFn ZV90b19tZm4ocGcpKQorI2RlZmluZSBwYWdldGFibGVfZnJvbV9wYWdlKHBnKSBwYWdldGFibGVf ZnJvbV9tZm4ocGFnZV90b19tZm4ocGcpKQogI2RlZmluZSBwYWdldGFibGVfZnJvbV9wYWRkcihw KSBwYWdldGFibGVfZnJvbV9wZm4oKHApPj5QQUdFX1NISUZUKQogI2RlZmluZSBwYWdldGFibGVf bnVsbCgpICAgICAgICBwYWdldGFibGVfZnJvbV9wZm4oMCkKIApAQCAtMjQwLDEyICsyNDAsMTIg QEAgdm9pZCBjb3B5X3BhZ2Vfc3NlMih2b2lkICosIGNvbnN0IHZvaWQgKik7CiAjZGVmaW5lIF9f bWZuX3RvX3ZpcnQobWZuKSAgKG1hZGRyX3RvX3ZpcnQoKHBhZGRyX3QpKG1mbikgPDwgUEFHRV9T SElGVCkpCiAKIC8qIENvbnZlcnQgYmV0d2VlbiBtYWNoaW5lIGZyYW1lIG51bWJlcnMgYW5kIHBh Z2UtaW5mbyBzdHJ1Y3R1cmVzLiAqLwotI2RlZmluZSBfX21mbl90b19wYWdlKG1mbikgIChmcmFt ZV90YWJsZSArIHBmbl90b19wZHgobWZuKSkKLSNkZWZpbmUgX19wYWdlX3RvX21mbihwZykgICBw ZHhfdG9fcGZuKCh1bnNpZ25lZCBsb25nKSgocGcpIC0gZnJhbWVfdGFibGUpKQorI2RlZmluZSBt Zm5fdG9fcGFnZShtZm4pICAgIChmcmFtZV90YWJsZSArIG1mbl90b19wZHgobWZuKSkKKyNkZWZp bmUgcGFnZV90b19tZm4ocGcpICAgICBwZHhfdG9fbWZuKCh1bnNpZ25lZCBsb25nKSgocGcpIC0g ZnJhbWVfdGFibGUpKQogCiAvKiBDb252ZXJ0IGJldHdlZW4gbWFjaGluZSBhZGRyZXNzZXMgYW5k IHBhZ2UtaW5mbyBzdHJ1Y3R1cmVzLiAqLwotI2RlZmluZSBfX21hZGRyX3RvX3BhZ2UobWEpIF9f bWZuX3RvX3BhZ2UoKG1hKSA+PiBQQUdFX1NISUZUKQotI2RlZmluZSBfX3BhZ2VfdG9fbWFkZHIo cGcpICgocGFkZHJfdClfX3BhZ2VfdG9fbWZuKHBnKSA8PCBQQUdFX1NISUZUKQorI2RlZmluZSBf X21hZGRyX3RvX3BhZ2UobWEpIG1mbl90b19wYWdlKG1hZGRyX3RvX21mbihtYSkpCisjZGVmaW5l IF9fcGFnZV90b19tYWRkcihwZykgKG1mbl90b19tYWRkcihwYWdlX3RvX21mbihwZykpKQogCiAv KiBDb252ZXJ0IGJldHdlZW4gZnJhbWUgbnVtYmVyIGFuZCBhZGRyZXNzIGZvcm1hdHMuICAqLwog I2RlZmluZSBfX3Bmbl90b19wYWRkcihwZm4pICgocGFkZHJfdCkocGZuKSA8PCBQQUdFX1NISUZU KQpAQCAtMjY0LDggKzI2NCw2IEBAIHZvaWQgY29weV9wYWdlX3NzZTIodm9pZCAqLCBjb25zdCB2 b2lkICopOwogI2RlZmluZSBtZm5fdG9fdmlydChtZm4pICAgIF9fbWZuX3RvX3ZpcnQobWZuKQog I2RlZmluZSB2aXJ0X3RvX21hZGRyKHZhKSAgIF9fdmlydF90b19tYWRkcigodW5zaWduZWQgbG9u ZykodmEpKQogI2RlZmluZSBtYWRkcl90b192aXJ0KG1hKSAgIF9fbWFkZHJfdG9fdmlydCgodW5z aWduZWQgbG9uZykobWEpKQotI2RlZmluZSBtZm5fdG9fcGFnZShtZm4pICAgIF9fbWZuX3RvX3Bh Z2UobWZuKQotI2RlZmluZSBwYWdlX3RvX21mbihwZykgICAgIF9fcGFnZV90b19tZm4ocGcpCiAj ZGVmaW5lIG1hZGRyX3RvX3BhZ2UobWEpICAgX19tYWRkcl90b19wYWdlKG1hKQogI2RlZmluZSBw YWdlX3RvX21hZGRyKHBnKSAgIF9fcGFnZV90b19tYWRkcihwZykKICNkZWZpbmUgdmlydF90b19w YWdlKHZhKSAgICBfX3ZpcnRfdG9fcGFnZSh2YSkKQEAgLTI3Myw3ICsyNzEsNyBAQCB2b2lkIGNv cHlfcGFnZV9zc2UyKHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKICNkZWZpbmUgcGZuX3RvX3BhZGRy KHBmbikgICBfX3Bmbl90b19wYWRkcihwZm4pCiAjZGVmaW5lIHBhZGRyX3RvX3BmbihwYSkgICAg X19wYWRkcl90b19wZm4ocGEpCiAjZGVmaW5lIHBhZGRyX3RvX3BkeChwYSkgICAgcGZuX3RvX3Bk eChwYWRkcl90b19wZm4ocGEpKQotI2RlZmluZSB2bWFwX3RvX21mbih2YSkgICAgIGwxZV9nZXRf cGZuKCp2aXJ0X3RvX3hlbl9sMWUoKHVuc2lnbmVkIGxvbmcpKHZhKSkpCisjZGVmaW5lIHZtYXBf dG9fbWZuKHZhKSAgICAgX21mbihsMWVfZ2V0X3BmbigqdmlydF90b194ZW5fbDFlKCh1bnNpZ25l ZCBsb25nKSh2YSkpKSkKICNkZWZpbmUgdm1hcF90b19wYWdlKHZhKSAgICBtZm5fdG9fcGFnZSh2 bWFwX3RvX21mbih2YSkpCiAKICNlbmRpZiAvKiAhZGVmaW5lZChfX0FTU0VNQkxZX18pICovCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZG9tYWluX3BhZ2UuaCBiL3hlbi9pbmNsdWRlL3hl bi9kb21haW5fcGFnZS5oCmluZGV4IDg5MGJhZTViOWMuLjMyNjY5YTMzMzkgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hlbi9kb21haW5fcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9kb21h aW5fcGFnZS5oCkBAIC0zNCw3ICszNCw3IEBAIHZvaWQgdW5tYXBfZG9tYWluX3BhZ2UoY29uc3Qg dm9pZCAqdmEpOwogLyogCiAgKiBHaXZlbiBhIFZBIGZyb20gbWFwX2RvbWFpbl9wYWdlKCksIHJl dHVybiBpdHMgdW5kZXJseWluZyBNRk4uCiAgKi8KLXVuc2lnbmVkIGxvbmcgZG9tYWluX3BhZ2Vf bWFwX3RvX21mbihjb25zdCB2b2lkICp2YSk7CittZm5fdCBkb21haW5fcGFnZV9tYXBfdG9fbWZu KGNvbnN0IHZvaWQgKnZhKTsKIAogLyoKICAqIFNpbWlsYXIgdG8gdGhlIGFib3ZlIGNhbGxzLCBl eGNlcHQgdGhlIG1hcHBpbmcgaXMgYWNjZXNzaWJsZSBpbiBhbGwKQEAgLTQ0LDExICs0NCwxMSBA QCB1bnNpZ25lZCBsb25nIGRvbWFpbl9wYWdlX21hcF90b19tZm4oY29uc3Qgdm9pZCAqdmEpOwog dm9pZCAqbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChtZm5fdCBtZm4pOwogdm9pZCB1bm1hcF9kb21h aW5fcGFnZV9nbG9iYWwoY29uc3Qgdm9pZCAqdmEpOwogCi0jZGVmaW5lIF9fbWFwX2RvbWFpbl9w YWdlKHBnKSAgICAgICAgbWFwX2RvbWFpbl9wYWdlKF9tZm4oX19wYWdlX3RvX21mbihwZykpKQor I2RlZmluZSBfX21hcF9kb21haW5fcGFnZShwZykgICAgICAgIG1hcF9kb21haW5fcGFnZShwYWdl X3RvX21mbihwZykpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqX19tYXBfZG9tYWluX3BhZ2VfZ2xv YmFsKGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnBnKQogewotICAgIHJldHVybiBtYXBfZG9tYWlu X3BhZ2VfZ2xvYmFsKF9tZm4oX19wYWdlX3RvX21mbihwZykpKTsKKyAgICByZXR1cm4gbWFwX2Rv bWFpbl9wYWdlX2dsb2JhbChwYWdlX3RvX21mbihwZykpOwogfQogCiAjZWxzZSAvKiAhQ09ORklH X0RPTUFJTl9QQUdFICovCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqX19t YXBfZG9tYWluX3BhZ2VfZ2xvYmFsKGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnBnKQogI2RlZmlu ZSBtYXBfZG9tYWluX3BhZ2UobWZuKSAgICAgICAgICAgICAgICBfX21mbl90b192aXJ0KG1mbl94 KG1mbikpCiAjZGVmaW5lIF9fbWFwX2RvbWFpbl9wYWdlKHBnKSAgICAgICAgICAgICAgIHBhZ2Vf dG9fdmlydChwZykKICNkZWZpbmUgdW5tYXBfZG9tYWluX3BhZ2UodmEpICAgICAgICAgICAgICAg KCh2b2lkKSh2YSkpCi0jZGVmaW5lIGRvbWFpbl9wYWdlX21hcF90b19tZm4odmEpICAgICAgICAg IHZpcnRfdG9fbWZuKCh1bnNpZ25lZCBsb25nKSh2YSkpCisjZGVmaW5lIGRvbWFpbl9wYWdlX21h cF90b19tZm4odmEpICAgICAgICAgIF9tZm4odmlydF90b19tZm4oKHVuc2lnbmVkIGxvbmcpKHZh KSkpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChtZm5fdCBt Zm4pCiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbW0uaCBiL3hlbi9pbmNsdWRlL3hl bi9tbS5oCmluZGV4IGNhYWQwNmU3NTMuLjIwNGRkOWM0OGQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3hlbi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCkBAIC0yNzcsMTMgKzI3Nyw4 IEBAIHN0cnVjdCBwYWdlX2xpc3RfaGVhZAogIyBkZWZpbmUgUEFHRV9MSVNUX05VTEwgKCh0eXBl b2YoKChzdHJ1Y3QgcGFnZV9pbmZvKXt9KS5saXN0Lm5leHQpKX4wKQogCiAjIGlmICFkZWZpbmVk KHBkeF90b19wYWdlKSAmJiAhZGVmaW5lZChwYWdlX3RvX3BkeCkKLSMgIGlmIGRlZmluZWQoX19w YWdlX3RvX21mbikgfHwgZGVmaW5lZChfX21mbl90b19wYWdlKQotIyAgIGRlZmluZSBwYWdlX3Rv X3BkeCBfX3BhZ2VfdG9fbWZuCi0jICAgZGVmaW5lIHBkeF90b19wYWdlIF9fbWZuX3RvX3BhZ2UK LSMgIGVsc2UKICMgICBkZWZpbmUgcGFnZV90b19wZHggcGFnZV90b19tZm4KICMgICBkZWZpbmUg cGR4X3RvX3BhZ2UgbWZuX3RvX3BhZ2UKLSMgIGVuZGlmCiAjIGVuZGlmCiAKICMgZGVmaW5lIFBB R0VfTElTVF9IRUFEX0lOSVQobmFtZSkgeyBOVUxMLCBOVUxMIH0KZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi90bWVtX3hlbi5oIGIveGVuL2luY2x1ZGUveGVuL3RtZW1feGVuLmgKaW5kZXgg NTQyYzBiM2YyMC4uODUxNmEwYjEzMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3RtZW1f eGVuLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3RtZW1feGVuLmgKQEAgLTI1LDcgKzI1LDcgQEAK IHR5cGVkZWYgdWludDMyX3QgcGFnZXNpemVfdDsgIC8qIGxpa2Ugc2l6ZV90LCBtdXN0IGhhbmRs ZSBsYXJnZXN0IFBBR0VfU0laRSAqLwogCiAjZGVmaW5lIElTX1BBR0VfQUxJR05FRChhZGRyKSBJ U19BTElHTkVEKCh1bnNpZ25lZCBsb25nKShhZGRyKSwgUEFHRV9TSVpFKQotI2RlZmluZSBJU19W QUxJRF9QQUdFKF9waSkgICAgbWZuX3ZhbGlkKF9tZm4ocGFnZV90b19tZm4oX3BpKSkpCisjZGVm aW5lIElTX1ZBTElEX1BBR0UoX3BpKSAgICBtZm5fdmFsaWQocGFnZV90b19tZm4oX3BpKSkKIAog ZXh0ZXJuIHN0cnVjdCBwYWdlX2xpc3RfaGVhZCB0bWVtX3BhZ2VfbGlzdDsKIGV4dGVybiBzcGlu bG9ja190IHRtZW1fcGFnZV9saXN0X2xvY2s7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs