From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v6 21/24] xsplice: Stacking build-id dependency checking. Date: Wed, 6 Apr 2016 23:49:40 -0400 Message-ID: <1460000983-28170-22-git-send-email-konrad.wilk@oracle.com> References: <1460000983-28170-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ao0xJ-0004mw-0V for xen-devel@lists.xenproject.org; Thu, 07 Apr 2016 03:50:05 +0000 In-Reply-To: <1460000983-28170-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com, andrew.cooper3@citrix.com Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org V2Ugbm93IGV4cGVjdCB0aGF0IHRoZSBFTEYgcGF5bG9hZHMgYmUgYnVpbHQgd2l0aCB0aGUKLS1i dWlsZC1pZC4KCkFsc28gdGhlIC54c3BsaWNlLmRlcHMgc2VjdGlvbiBoYXMgdG8gaGF2ZSB0aGUg Y29udGVudHMKb2YgdGhlIGh5cGVydmlzb3IgKG9yIGEgcHJlY2VkaW5nIHBheWxvYWQpIGJ1aWxk LWlkLgoKV2UgYWxyZWFkeSBoYXZlIHRoZSBjb2RlIHRvIHZlcmlmeSB0aGUgRWxmX05vdGUgYnVp bGQtaWQKc28gZXhwb3J0IHBhcnRzIG9mIGl0LgoKVGhpcyBkZXBlbmRlbmN5IG1lYW5zIHRoZSBo eXBlcnZpc29yIE1VU1QgYmUgY29tcGlsZWQgd2l0aAotLWJ1aWxkLWlkIC0gc28gd2UgZ2F0ZSB0 aGUgYnVpbGQgb2YgeFNwbGljZSBvbiB0aGUgYXZhaWxhYmlsaXR5Cm9mIHNhaWQgZnVuY3Rpb25h bGl0eS4KClRoaXMgZG9lcyBub3QgaW1wYWN0IHRoZSBvcmRlcmluZyBvZiBob3cgdGhlIHBheWxv YWRzIGNhbgpiZSBsb2FkZWQsIGJ1dCBpdCBkb2VzIGVuZm9yY2UgYW4gU1RSSUNUIG9yZGVyaW5n IHdoZW4gdGhlCnBheWxvYWRzIGFyZSBhcHBsaWVkLiBBbHNvIHRoZSBSRVBMQUNFIGlzIHNwZWNp YWwgLSB3ZSBuZWVkCnRvIGNoZWNrIHRoYXQgaXRzIGRlcGVuZGVuY3kgYWdhaW5zdCB0aGUgaHlw ZXJ2aXNvciAtIG5vdAp0aGUgbGFzdCBhcHBsaWVkIHBhdGNoLgoKVG8gbWFrZSB0aGlzIGVhc2ll ciB0byB0ZXN0IHdlIGFsc28gYWRkIGFuIGV4dHJhIHRlc3QtY2FzZQp0byBiZSB1c2VkIC0gd2hp Y2ggY2FuIG9ubHkgYmUgYXBwbGllZCBvbiB0b3Agb2YgdGhlCnhlbl9oZWxsb193b3JsZCBwYXls b2FkLgoKQXMgaW4sIG9uZSBjYW4gYXBwbHkgeGVuX2hlbGxvX3dvcmxkIGFuZCB0aGVuIHhlbl9i eWVfd29ybGQKb24gdG9wIG9mIHRoYXQuIE5vdCB0aGUgb3RoZXIgd2F5LgoKV2UgYWxzbyBwcmlu dCB0aGUgZGVwZW5kZW5jeSBhbmQgcGF5bG9hZHMgYnVpbGRfaW4gdGhlIGtleWhhbmRsZXIuCgpT aWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5j b20+CgotLS0KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgoKdjM6IEZpcnN0IHRpbWUgaW5jbHVkZWQuCnY0OiBBbmRyZXcgZml4IGFnYWluc3Qg dGhlIGJ1aWxkX2lkLm8gbXV0aWxhdGlvbnMuCiAgICBBbmRyZXcgZml4IHRvIG5vdCBpbmNsdWRl IGV4dHJhIHN5bWJvbHMgaW4gYmluYXJ5LmlkCnY1OiBzL3NzaXplX3QvdW5zaWduZWQgaW50Lwp2 Njogcy9hbiBOVF9HTlUuLi9hIE5UX0dOVS8KICAgLSBTcXVhc2ggInhzcGxpY2U6IFByaW50IGRl cGVuZGVuY3kgYW5kIHBheWxvYWRzIGJ1aWxkX2lkIGluIHRoZSBrZXloYW5kbGVyIgogICAgIGlu IHRoaXMgcGF0Y2guCiAgIC0gQWRkIGluIHhlbl9idWlsZF9pZF9jaGVjayBzaXplIG9mIHNlY3Rp b24gZm9yIGJldHRlciBjaGVja2luZy4KLS0tCi0tLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogQ29uZmlnLm1rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogZG9jcy9taXNjL3hzcGxpY2UubWFya2Rvd24gICAgICAgICAgICAgfCAg OTkgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZp bGUgICAgICAgICAgICAgfCAgNDEgKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5f YnllX3dvcmxkLmMgICAgICB8ICAzNSArKysrKysrKysrCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5f YnllX3dvcmxkX2Z1bmMuYyB8ICAyNCArKysrKysrCiB4ZW4vY29tbW9uL0tjb25maWcgICAgICAg ICAgICAgICAgICAgICB8ICAgNiArLQogeGVuL2NvbW1vbi92ZXJzaW9uLmMgICAgICAgICAgICAg ICAgICAgfCAgNDMgKysrKysrKystLS0tCiB4ZW4vY29tbW9uL3hzcGxpY2UuYyAgICAgICAgICAg ICAgICAgICB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNs dWRlL3hlbi92ZXJzaW9uLmggICAgICAgICAgICAgIHwgICA1ICsrCiAxMCBmaWxlcyBjaGFuZ2Vk LCAzMTcgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg eGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZF9mdW5jLmMKCmRpZmYgLS1naXQgYS8uZ2l0aWdu b3JlIGIvLmdpdGlnbm9yZQppbmRleCA4ZGM3NmI1Li5mMWNhZGNmIDEwMDY0NAotLS0gYS8uZ2l0 aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTI0Nyw2ICsyNDcsNyBAQCB4ZW4vYXJjaC94ODYv ZWZpL2Rpc2FibGVkCiB4ZW4vYXJjaC94ODYvZWZpL21rcmVsb2MKIHhlbi9hcmNoL3g4Ni90ZXN0 L2NvbmZpZy5oCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGQueHNwbGljZQoreGVu L2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC54c3BsaWNlCiB4ZW4vYXJjaC8qL2VmaS9ib290 LmMKIHhlbi9hcmNoLyovZWZpL2NvbXBhdC5jCiB4ZW4vYXJjaC8qL2VmaS9lZmkuaApkaWZmIC0t Z2l0IGEvQ29uZmlnLm1rIGIvQ29uZmlnLm1rCmluZGV4IGRiNzA2MzguLjRiNmYzZjUgMTAwNjQ0 Ci0tLSBhL0NvbmZpZy5taworKysgYi9Db25maWcubWsKQEAgLTEzNCw2ICsxMzQsNyBAQCBpZmVx ICgkKGNhbGwgbGQtdmVyLWJ1aWxkLWlkLCQoTEQpKSxuKQogYnVpbGRfaWRfbGlua2VyIDo9CiBl bHNlCiBDRkxBR1MgKz0gLURCVUlMRF9JRAorZXhwb3J0IFhFTl9IQVNfQlVJTERfSUQ9eQogYnVp bGRfaWRfbGlua2VyIDo9IC0tYnVpbGQtaWQ9c2hhMQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvZG9j cy9taXNjL3hzcGxpY2UubWFya2Rvd24gYi9kb2NzL21pc2MveHNwbGljZS5tYXJrZG93bgppbmRl eCA4ZDJkNDEzLi5iNTNjZDMxIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveHNwbGljZS5tYXJrZG93 bgorKysgYi9kb2NzL21pc2MveHNwbGljZS5tYXJrZG93bgpAQCAtMjgzLDggKzI4MywxNyBAQCBU aGUgeFNwbGljZSBjb3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBzdGFuZGFyZCBFTEYg YmluYXJ5LCByZWxvY2F0ZXMgaXQKIGFuZCBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lm YyBzZWN0aW9ucyBhcyBuZWVkZWQuIFRoaXMgcHJvY2VzcyBpcyBtdWNoCiBsaWtlIHdoYXQgdGhl IExpbnV4IGtlcm5lbCBtb2R1bGUgbG9hZGVyIGRvZXMuCiAKLVRoZSBwYXlsb2FkIGNvbnRhaW5z IGEgc2VjdGlvbiAoeHNwbGljZV9wYXRjaF9mdW5jKSB3aXRoIGFuIGFycmF5IG9mIHN0cnVjdHVy ZXMKLWRlc2NyaWJpbmcgdGhlIGZ1bmN0aW9ucyB0byBiZSBwYXRjaGVkOgorVGhlIHBheWxvYWQg Y29udGFpbnMgYXQgbGVhc3QgdGhyZWUgc2VjdGlvbnM6CisKKyAqIGAueHNwbGljZS5mdW5jc2Ag LSB3aGljaCBpcyBhbiBhcnJheSBvZiB4c3BsaWNlX3BhdGNoX2Z1bmMgc3RydWN0dXJlcy4KKyAq IGAueHNwbGljZS5kZXBlbmRzYCAtIHdoaWNoIGlzIGFuIEVMRiBOb3RlIHRoYXQgZGVzY3JpYmVz IHdoYXQgdGhlIHBheWxvYWQKKyAgICBkZXBlbmRzIG9uLgorICogIGAubm90ZS5nbnUuYnVpbGQt aWRgIC0gdGhlIGJ1aWxkLWlkIG9mIHRoaXMgcGF5bG9hZC4KKworIyMjIC54c3BsaWNlLmZ1bmNz CisKK1RoZSBgLnhzcGxpY2UuZnVuY3NgIGNvbnRhaW5zIGFuIGFycmF5IG9mIHhzcGxpY2VfcGF0 Y2hfZnVuYyBzdHJ1Y3R1cmVzCit3aGljaCBkZXNjcmliZSB0aGUgZnVuY3Rpb25zIHRvIGJlIHBh dGNoZWQ6CiAKIDxwcmU+CiBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHsgIApAQCAtMzY1LDYg KzM3NCwyMyBAQCBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHhzcGxpY2VfaGVsbG9fd29ybGQg PSB7CiAKIENvZGUgbXVzdCBiZSBjb21waWxlZCB3aXRoIC1mUElDLgogCisjIyMgLnhzcGxpY2Uu ZGVwZW5kcyBhbmQgLm5vdGUuZ251LmJ1aWxkLWlkCisKK1RvIHN1cHBvcnQgZGVwZW5kZW5jaWVz IGNoZWNraW5nIGFuZCBzYWZlIGxvYWRpbmcgKHRvIGxvYWQgdGhlCithcHByb3BpYXRlIHBheWxv YWQgYWdhaW5zdCB0aGUgcmlnaHQgaHlwZXJ2aXNvcikgdGhlcmUgaXMgYSBuZWVkCit0byBlbWJi ZWQgYW4gYnVpbGQtaWQgZGVwZW5kZW5jeS4KKworVGhpcyBpcyBkb25lIGJ5IHRoZSBwYXlsb2Fk IGNvbnRhaW5pbmcgYW4gc2VjdGlvbiBgLnhzcGxpY2UuZGVwZW5kc2AKK3doaWNoIGZvbGxvd3Mg dGhlIGZvcm1hdCBvZiBhbiBFTEYgTm90ZS4gVGhlIGNvbnRlbnRzIG9mIHRoaXMKKyhuYW1lLCBh bmQgZGVzY3JpcHRpb24pIGFyZSBzcGVjaWZpYyB0byB0aGUgbGlua2VyIHV0aWxpemVkIHRvCiti dWlsZCB0aGUgaHlwZXZpc29yIGFuZCBwYXlsb2FkLgorCitJZiBHTlUgbGlua2VyIGlzIHVzZWQg dGhlbiB0aGUgbmFtZSBpcyBgR05VYCBhbmQgdGhlIGRlc2NyaXB0aW9uCitpcyBhIE5UX0dOVV9C VUlMRF9JRCB0eXBlIElELiBUaGUgZGVzY3JpcHRpb24gY2FuIGJlIGFuIFNIQTEKK2NoZWNrc3Vt LCBNRDUgY2hlY2tzdW0gb3IgYW55IHVuaXF1ZSB2YWx1ZS4KKworVGhlIHNpemUgb2YgdGhlc2Ug c3RydWN0dXJlcyB2YXJpZXMgd2l0aCB0aGUgLS1idWlsZC1pZCBsaW5rZXIgb3B0aW9uLgorCiAj IyBIeXBlcmNhbGxzCiAKIFdlIHdpbGwgZW1wbG95IHRoZSBzdWIgb3BlcmF0aW9ucyBvZiB0aGUg c3lzdGVtIG1hbmFnZW1lbnQgaHlwZXJjYWxsIChzeXNjdGwpLgpAQCAtODYwLDYgKzg4Niw0MiBA QCBUaGlzIGlzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gUHJvamVjdCBoeXBlcnZpc29yLgogCiBP bmx5IHRoZSBwcml2aWxlZ2VkIGRvbWFpbiBzaG91bGQgYmUgYWxsb3dlZCB0byBkbyB0aGlzIG9w ZXJhdGlvbi4KIAorIyMjIHhTcGxpY2UgaW50ZXJkZXBlbmRlbmNpZXMKKworeFNwbGljZSBwYXRj aGVzIGludGVyZGVwZW5kZW5jaWVzIGFyZSB0cmlja3kuCisKK1RoZXJlIGFyZSB0aGUgd2F5cyB0 aGlzIGNhbiBiZSBhZGRyZXNzZWQ6CisgKiBBIHNpbmdsZSBsYXJnZSBwYXRjaCB0aGF0IHN1YnN1 bWVzIGFuZCByZXBsYWNlcyBhbGwgcHJldmlvdXMgb25lcy4KKyAgIE92ZXIgdGhlIGxpZmUtdGlt ZSBvZiBwYXRjaGluZyB0aGUgaHlwZXJ2aXNvciB0aGlzIGxhcmdlIHBhdGNoCisgICBncm93cyB0 byBhY2N1bXVsYXRlIGFsbCB0aGUgY29kZSBjaGFuZ2VzLgorICogSG90cGF0Y2ggc3RhY2sgLSB3 aGVyZSBhbiBtZWNoYW5pc20gZXhpc3RzIHRoYXQgbG9hZHMgdGhlIGhvdHBhdGNoZXMKKyAgIGlu IHRoZSBzYW1lIG9yZGVyIHRoZXkgd2VyZSBidWlsdCBpbi4gV2Ugd291bGQgbmVlZCBhbiBidWls ZC1pZAorICAgb2YgdGhlIGh5cGV2aXNvciB0byBtYWtlIHN1cmUgdGhlIGhvdC1wYXRjaGVzIGFy ZSBidWlsZCBhZ2FpbnN0IHRoZQorICAgY29ycmVjdCBidWlsZC4KKyAqIFBheWxvYWQgY29udGFp bmluZyB0aGUgb2xkIGNvZGUgdG8gY2hlY2sgYWdhaW5zdCB0aGF0LiBUaGF0IGFsbG93cworICAg dGhlIGhvdHBhdGNoZXMgdG8gYmUgbG9hZGVkIGluZGVwZWRlbnRseSAoaWYgdGhleSBkb24ndCBv dmVybGFwKSAtIG9yCisgICBpZiB0aGUgb2xkIGNvZGUgYWxzbyBjb250YWluc3QgcHJldmlvdXNs eSBwYXRjaGVkIGNvZGUgLSBldmVuIGlmIHRoZXkKKyAgIG92ZXJsYXAuCisKK1RoZSBkaXNhZHZh bnRhZ2Ugb2YgdGhlIGZpcnN0IGxhcmdlIHBhdGNoIGlzIHRoYXQgaXQgY2FuIGdyb3cgb3Zlcgor dGltZSBhbmQgbm90IHByb3ZpZGUgYW4gYmlzZWN0aW9uIG1lY2hhbmlzbSB0byBpZGVudGlmeSBm YXVsdHkgcGF0Y2hlcy4KKworVGhlIGhvdC1wYXRjaCBzdGFjayBwdXRzIHN0cmljdHMgcmVxdWly ZW1lbnRzIG9uIHRoZSBvcmRlciBvZiB0aGUgcGF0Y2hlcworYmVpbmcgbG9hZGVkIGFuZCByZXF1 aXJlcyBhbiBoeXBlcnZpc29yIGJ1aWxkLWlkIHRvIG1hdGNoIGFnYWluc3QuCisKK1RoZSBvbGQg Y29kZSBhbGxvd3MgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGFuZCBhbiBhZGRpdGlvbmFsIGd1YXJk LAorYnV0IGlzIG1vcmUgY29tcGxleCB0byBpbXBsZW1lbnQuCisKK1RoZSBzZWNvbmQgb3B0aW9u IHdoaWNoIHJlcXVpcmVzIGFuIGJ1aWxkLWlkIG9mIHRoZSBoeXBlcnZpc29yCitpcyBpbXBsZW1l bnRlZCBpbiB0aGUgWGVuIFByb2plY3QgaHlwZXJ2aXNvci4KKworU3BlY2lmaWNhbGx5IGVhY2gg cGF5bG9hZCBoYXMgdHdvIGJ1aWxkLWlkIEVMRiBub3RlczoKKyAqIFRoZSBidWlsZC1pZCBvZiB0 aGUgcGF5bG9hZCBpdHNlbGYgKGdlbmVyYXRlZCB2aWEgLS1idWlsZC1pZCkuCisgKiBUaGUgYnVp bGQtaWQgb2YgdGhlIHBheWxvYWQgaXQgZGVwZW5kcyBvbiAoZXh0cmFjdGVkIGZyb20gdGhlCisg ICB0aGUgcHJldmlvdXMgcGF5bG9hZCBvciBoeXBlcnZpc29yIGR1cmluZyBidWlsZCB0aW1lKS4K KworVGhpcyBtZWFucyB0aGF0IHRoZSB2ZXJ5IGZpcnN0IHBheWxvYWQgZGVwZW5kcyBvbiB0aGUg aHlwZXJ2aXNvcgorYnVpbGQtaWQuCiAKICMgTm90IFlldCBEb25lCiAKQEAgLTg3NywxMyArOTM5 LDYgQEAgVGhlIGltcGxlbWVudGF0aW9uIG11c3QgYWxzbyBoYXZlIGEgbWVjaGFuaXNtIGZvciAo aW4gbm8gcGFydGljdWxhciBvcmRlcik6CiAgICBTcGVjaWZpY2FsbHkgd2Ugd2FudCB0byBtYWtl IHN1cmUgdGhhdCB4U3BsaWNlIGNvZGVwYXRocyBjYW5ub3QgYmUgcGF0Y2hlZC4KICAqIE5PUCBv dXQgdGhlIGNvZGUgc2VxdWVuY2UgaWYgYG5ld19zaXplYCBpcyB6ZXJvLgogICogRGVhbCB3aXRo IG90aGVyIHJlbG9jYXRpb24gdHlwZXM6ICBSX1g4Nl82NF9bOCwxNiwzMiwzMlNdLCBSX1g4Nl82 NF9QQ1s4LDE2LDY0XSBpbiBwYXlsb2FkIGZpbGUuCi0gKiBBbiBkZXBlbmRlbmN5IG1lY2hhbmlz bSBmb3IgdGhlIHBheWxvYWRzLiBUbyB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBsb2FkOgotICAg IC0gVGhlIGFwcHJvcGlhdGUgcGF5bG9hZC4gVG8gdmVyaWZ5IHRoYXQgcGF5bG9hZCBpcyBidWls dCBhZ2FpbnN0IHRoZQotICAgICAgaHlwZXJ2aXNvci4gVGhpcyBjYW4gYmUgZG9uZSB2aWEgdGhl IGBidWlsZC1pZGAKLSAgICAgIG9yIHZpYSBwcm92aWRpbmcgYW4gY29weSBvZiB0aGUgb2xkIGNv ZGUgLSBzbyB0aGF0IHRoZSBoeXBlcnZpc29yIGNhbgotICAgICAgIHZlcmlmeSBpdCBhZ2FpbnN0 IHRoZSBjb2RlIGluIG1lbW9yeS4KLSAgICAtIFRvIGNvbnN0cnVjdCBhbiBhcHByb3BpYXRlIG9y ZGVyIG9mIHBheWxvYWRzIHRvIGxvYWQgaW4gY2FzZSB0aGV5Ci0gICAgICBkZXBlbmQgb24gZWFj aCBvdGhlci4KIAogIyMjIEhhbmRsZSBpbmxpbmVkIF9fTElORV9fCiAKQEAgLTk0OCwzMiArMTAw Myw2IEBAIHRoZSBmdW5jdGlvbiBpdHNlbGYuCiBTaW1pbGFyIGNvbnNpZGVyYXRpb25zIGFyZSB0 cnVlIHRvIGEgbGVzc2VyIGV4dGVudCBmb3IgX19GSUxFX18sIGJ1dCBpdAogY291bGQgYmUgYXJn dWVkIHRoYXQgZmlsZSByZW5hbWluZyBzaG91bGQgYmUgZG9uZSBvdXRzaWRlIG9mIGhvdHBhdGNo ZXMuCiAKLSMjIyB4U3BsaWNlIGludGVyZGVwZW5kZW5jaWVzCi0KLXhTcGxpY2UgcGF0Y2hlcyBp bnRlcmRlcGVuZGVuY2llcyBhcmUgdHJpY2t5LgotCi1UaGVyZSBhcmUgdGhlIHdheXMgdGhpcyBj YW4gYmUgYWRkcmVzc2VkOgotICogQSBzaW5nbGUgbGFyZ2UgcGF0Y2ggdGhhdCBzdWJzdW1lcyBh bmQgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMuCi0gICBPdmVyIHRoZSBsaWZlLXRpbWUgb2Yg cGF0Y2hpbmcgdGhlIGh5cGVydmlzb3IgdGhpcyBsYXJnZSBwYXRjaAotICAgZ3Jvd3MgdG8gYWNj dW11bGF0ZSBhbGwgdGhlIGNvZGUgY2hhbmdlcy4KLSAqIEhvdHBhdGNoIHN0YWNrIC0gd2hlcmUg YW4gbWVjaGFuaXNtIGV4aXN0cyB0aGF0IGxvYWRzIHRoZSBob3RwYXRjaGVzCi0gICBpbiB0aGUg c2FtZSBvcmRlciB0aGV5IHdlcmUgYnVpbHQgaW4uIFdlIHdvdWxkIG5lZWQgYW4gYnVpbGQtaWQK LSAgIG9mIHRoZSBoeXBldmlzb3IgdG8gbWFrZSBzdXJlIHRoZSBob3QtcGF0Y2hlcyBhcmUgYnVp bGQgYWdhaW5zdCB0aGUKLSAgIGNvcnJlY3QgYnVpbGQuCi0gKiBQYXlsb2FkIGNvbnRhaW5pbmcg dGhlIG9sZCBjb2RlIHRvIGNoZWNrIGFnYWluc3QgdGhhdC4gVGhhdCBhbGxvd3MKLSAgIHRoZSBo b3RwYXRjaGVzIHRvIGJlIGxvYWRlZCBpbmRlcGVkZW50bHkgKGlmIHRoZXkgZG9uJ3Qgb3Zlcmxh cCkgLSBvcgotICAgaWYgdGhlIG9sZCBjb2RlIGFsc28gY29udGFpbnN0IHByZXZpb3VzbHkgcGF0 Y2hlZCBjb2RlIC0gZXZlbiBpZiB0aGV5Ci0gICBvdmVybGFwLgotCi1UaGUgZGlzYWR2YW50YWdl IG9mIHRoZSBmaXJzdCBsYXJnZSBwYXRjaCBpcyB0aGF0IGl0IGNhbiBncm93IG92ZXIKLXRpbWUg YW5kIG5vdCBwcm92aWRlIGFuIGJpc2VjdGlvbiBtZWNoYW5pc20gdG8gaWRlbnRpZnkgZmF1bHR5 IHBhdGNoZXMuCi0KLVRoZSBob3QtcGF0Y2ggc3RhY2sgcHV0cyBzdHJpY3RzIHJlcXVpcmVtZW50 cyBvbiB0aGUgb3JkZXIgb2YgdGhlIHBhdGNoZXMKLWJlaW5nIGxvYWRlZCBhbmQgcmVxdWlyZXMg YW4gaHlwZXJ2aXNvciBidWlsZC1pZCB0byBtYXRjaCBhZ2FpbnN0LgotCi1UaGUgb2xkIGNvZGUg YWxsb3dzIG11Y2ggbW9yZSBmbGV4aWJpbGl0eSBhbmQgYW4gYWRkaXRpb25hbCBndWFyZCwKLWJ1 dCBpcyBtb3JlIGNvbXBsZXggdG8gaW1wbGVtZW50LgotCiAjIyBTaWduYXR1cmUgY2hlY2tpbmcg cmVxdWlyZW1lbnRzLgogCiBUaGUgc2lnbmF0dXJlIGNoZWNraW5nIHJlcXVpcmVzIHRoYXQgdGhl IGxheW91dCBvZiB0aGUgZGF0YSBpbiBtZW1vcnkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90 ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKaW5kZXggYmFhNDgyMC4u MGNiMmY4NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKKysrIGIveGVu L2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKQEAgLTYsMTcgKzYsMjAgQEAgQ09ERV9TWj0kKHNoZWxs IG5tIC0tZGVmaW5lZCAtUyAkKDEpIHwgZ3JlcCAkKDIpIHwgYXdrICd7IHByaW50ICIweCIkJDJ9 JykKIC5QSE9OWTogZGVmYXVsdAogCiBYU1BMSUNFIDo9IHhlbl9oZWxsb193b3JsZC54c3BsaWNl CitYU1BMSUNFX0JZRSA6PSB4ZW5fYnllX3dvcmxkLnhzcGxpY2UKIAogZGVmYXVsdDogeHNwbGlj ZQogCiBpbnN0YWxsOiB4c3BsaWNlCiAJJChJTlNUQUxMX0RBVEEpICQoWFNQTElDRSkgJChERVNU RElSKSQoREVCVUdfRElSKS8kKFhTUExJQ0UpCisJJChJTlNUQUxMX0RBVEEpICQoWFNQTElDRV9C WUUpICQoREVTVERJUikkKERFQlVHX0RJUikvJChYU1BMSUNFX0JZRSkKIHVuaW5zdGFsbDoKIAly bSAtZiAkKERFU1RESVIpJChERUJVR19ESVIpLyQoWFNQTElDRSkKKwlybSAtZiAkKERFU1RESVIp JChERUJVR19ESVIpLyQoWFNQTElDRV9CWUUpCiAKIC5QSE9OWTogY2xlYW4KIGNsZWFuOjoKLQly bSAtZiAqLm8gLiouby5kICQoWFNQTElDRSkgY29uZmlnLmgKKwlybSAtZiAqLm8gLiouby5kICQo WFNQTElDRSkgY29uZmlnLmggbm90ZXMubwogCiAjCiAjIFRvIGNvbXB1dGUgdGhlc2UgdmFsdWVz IHdlIG5lZWQgdGhlIGJpbmFyeSBmaWxlczogeGVuLXN5bXMKQEAgLTI4LDE1ICszMSw0MyBAQCBj bGVhbjo6CiAuUEhPTlk6IGNvbmZpZy5oCiBjb25maWcuaDogT0xEX0NPREVfU1o9JChjYWxsIENP REVfU1osJChCQVNFRElSKS94ZW4tc3ltcyx4ZW5fZXh0cmFfdmVyc2lvbikKIGNvbmZpZy5oOiBO RVdfQ09ERV9TWj0kKGNhbGwgQ09ERV9TWiwkPCx4ZW5faGVsbG9fd29ybGQpCi1jb25maWcuaDog eGVuX2hlbGxvX3dvcmxkX2Z1bmMubworY29uZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8g eGVuX2J5ZV93b3JsZF9mdW5jLm8KIAkoc2V0IC1lOyBcCiAJIGVjaG8gIiNkZWZpbmUgTkVXX0NP REVfU1ogJChORVdfQ09ERV9TWikiOyBcCiAJIGVjaG8gIiNkZWZpbmUgT0xEX0NPREVfU1ogJChP TERfQ09ERV9TWikiKSA+ICRACiAKKyMKKyMgVGhpcyB0YXJnZXQgaXMgb25seSBhY2Nlc3NpYmxl IGlmIENPTkZJR19YU1BMSUNFIGlzIGRlZmluZWQsIHdoaWNoCisjIGRlcGVuZHMgb24gJChidWls ZF9pZF9saW5rZXIpIGJlaW5nIGF2YWlsYWJsZS4gSGVuY2Ugd2UgZG8gbm90CisjIG5lZWQgYW55 IGNoZWNrcy4KKyMKKy5QSE9OWTogbm90ZXMubworbm90ZXMubzoKKwkkKE9CSkNPUFkpIC1PIGJp bmFyeSAtLW9ubHktc2VjdGlvbj0ubm90ZSAkKEJBU0VESVIpL3hlbi1zeW1zICRALmJpbgorCSQo T0JKQ09QWSkgLUkgYmluYXJ5IC1PIGVsZjY0LXg4Ni02NCAtQiBpMzg2Ong4Ni02NCBcCisJCSAg IC0tcmVuYW1lLXNlY3Rpb249LmRhdGE9LnhzcGxpY2UuZGVwZW5kcyAtUyAkQC5iaW4gJEAKKwly bSAtZiAkQC5iaW4KKworIworIyBFeHRyYWN0IHRoZSBidWlsZC1pZCBvZiB0aGUgeGVuX2hlbGxv X3dvcmxkLnhzcGxpY2UKKyMgKHdoaWNoIHhlbl9ieWVfd29ybGQgd2lsbCBkZXBlbmQgb24pLgor IworLlBIT05ZOiBoZWxsb193b3JsZF9ub3Rlcy5vCitoZWxsb193b3JsZF9ub3Rlcy5vOgorCSQo T0JKQ09QWSkgLU8gYmluYXJ5IC0tb25seS1zZWN0aW9uPS5ub3RlLmdudS5idWlsZC1pZCAkKFhT UExJQ0UpICRALmJpbgorCSQoT0JKQ09QWSkgIC1JIGJpbmFyeSAtTyBlbGY2NC14ODYtNjQgLUIg aTM4Njp4ODYtNjQgXAorCQkgICAtLXJlbmFtZS1zZWN0aW9uPS5kYXRhPS54c3BsaWNlLmRlcGVu ZHMgLVMgJEAuYmluICRACisJcm0gLWYgJEAuYmluCisKIC5QSE9OWTogeHNwbGljZQoteHNwbGlj ZTogY29uZmlnLmgKK3hzcGxpY2U6IGNvbmZpZy5oIG5vdGVzLm8KIAkjIE5lZWQgdG8gaGF2ZSB0 aGVzZSBkb25lIGluIHNlcXVlbnRpYWwgb3JkZXIKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVs ZXMubWsgeGVuX2hlbGxvX3dvcmxkX2Z1bmMubwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxl cy5tayB4ZW5faGVsbG9fd29ybGQubwotCSQoTEQpICQoTERGTEFHUykgLXIgLW8gJChYU1BMSUNF KSB4ZW5faGVsbG9fd29ybGRfZnVuYy5vIFwKLQkJeGVuX2hlbGxvX3dvcmxkLm8KKwkkKExEKSAk KExERkxBR1MpICQoYnVpbGRfaWRfbGlua2VyKSAtciAtbyAkKFhTUExJQ0UpIFwKKwkJeGVuX2hl bGxvX3dvcmxkX2Z1bmMubyB4ZW5faGVsbG9fd29ybGQubyBub3Rlcy5vCisJJChNQUtFKSAtZiAk KEJBU0VESVIpL1J1bGVzLm1rIHhlbl9ieWVfd29ybGRfZnVuYy5vCisJJChNQUtFKSAtZiAkKEJB U0VESVIpL1J1bGVzLm1rIHhlbl9ieWVfd29ybGQubworCSQoTUFLRSkgLWYgJChCQVNFRElSKS9S dWxlcy5tayBoZWxsb193b3JsZF9ub3Rlcy5vCisJJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lk X2xpbmtlcikgLXIgLW8gJChYU1BMSUNFX0JZRSkgXAorCQl4ZW5fYnllX3dvcmxkX2Z1bmMubyB4 ZW5fYnllX3dvcmxkLm8gaGVsbG9fd29ybGRfbm90ZXMubwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3Js ZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1OTg4MjgKLS0tIC9kZXYv bnVsbAorKysgYi94ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMKQEAgLTAsMCArMSwz NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlh dGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqLworCisjaW5jbHVkZSA8eGVuL3R5cGVz Lmg+CisjaW5jbHVkZSA8eGVuL3hzcGxpY2VfcGF0Y2guaD4KKyNpbmNsdWRlIDx4ZW4veHNwbGlj ZS5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHhlbi9saWIuaD4KKworc3RhdGlj IGNoYXIgeGVuX2J5ZV93b3JsZF9uYW1lW10gPSAieGVuX2J5ZV93b3JsZCI7CitleHRlcm4gY29u c3QgY2hhciAqeGVuX2J5ZV93b3JsZCh2b2lkKTsKKworLyogRXh0ZXJuYWwgc3ltYm9sLiAqLwor ZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9uKHZvaWQpOworCitzdHJ1Y3QgeHNw bGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxpY2UuZnVuY3MiKSB4c3BsaWNlX3hlbl9i eWVfd29ybGQgPSB7CisgICAgLnZlcnNpb24gPSBYU1BMSUNFX1BBWUxPQURfVkVSU0lPTiwKKyAg ICAubmFtZSA9IHhlbl9ieWVfd29ybGRfbmFtZSwKKyAgICAubmV3X2FkZHIgPSAodW5zaWduZWQg bG9uZykoeGVuX2J5ZV93b3JsZCksCisgICAgLm9sZF9hZGRyID0gKHVuc2lnbmVkIGxvbmcpKHhl bl9leHRyYV92ZXJzaW9uKSwKKyAgICAubmV3X3NpemUgPSBORVdfQ09ERV9TWiwKKyAgICAub2xk X3NpemUgPSBPTERfQ09ERV9TWiwKK307CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBt b2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICog dGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZF9mdW5jLmMgYi94ZW4vYXJj aC94ODYvdGVzdC94ZW5fYnllX3dvcmxkX2Z1bmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42NmM1ODJmCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2FyY2gveDg2L3Rlc3Qv eGVuX2J5ZV93b3JsZF9mdW5jLmMKQEAgLTAsMCArMSwyNCBAQAorLyoKKyAqIENvcHlyaWdodCAo YykgMjAxNiBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorICoKKyAqLworCisjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL25vcHMu aD4KKyNpbmNsdWRlIDxhc20vYWx0ZXJuYXRpdmUuaD4KKworLyogT3VyIHJlcGxhY2VtZW50IGZ1 bmN0aW9uIGZvciB4ZW5faGVsbG9fd29ybGQuICovCitjb25zdCBjaGFyICp4ZW5fYnllX3dvcmxk KHZvaWQpCit7CisgICAgcmV0dXJuICJCeWUgV29ybGQhIjsKK30KKworLyoKKyAqIExvY2FsIHZh cmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMt b2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICog RW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL0tjb25maWcgYi94ZW4vY29tbW9uL0tj b25maWcKaW5kZXggZmVhMzNkMy4uMTQ0NDRiYyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9LY29u ZmlnCisrKyBiL3hlbi9jb21tb24vS2NvbmZpZwpAQCAtNjAsNiArNjAsMTAgQEAgY29uZmlnIEhB U19HREJTWAogY29uZmlnIEhBU19JT1BPUlRTCiAJYm9vbAogCitjb25maWcgSEFTX0JVSUxEX0lE CisJc3RyaW5nCisJb3B0aW9uIGVudj0iWEVOX0hBU19CVUlMRF9JRCIKKwogIyBFbmFibGUvRGlz YWJsZSBrZXhlYyBzdXBwb3J0CiBjb25maWcgS0VYRUMKIAlib29sICJrZXhlYyBzdXBwb3J0IgpA QCAtMTkyLDcgKzE5Niw3IEBAIGVuZG1lbnUKIGNvbmZpZyBYU1BMSUNFCiAJYm9vbCAieFNwbGlj ZSBsaXZlIHBhdGNoaW5nIHN1cHBvcnQiCiAJZGVmYXVsdCBuCi0JZGVwZW5kcyBvbiBYODYKKwlk ZXBlbmRzIG9uIFg4NiAmJiBIQVNfQlVJTERfSUQgPSAieSIKIAktLS1oZWxwLS0tCiAJICBBbGxv d3MgYSBydW5uaW5nIFhlbiBoeXBlcnZpc29yIHRvIGJlIGR5bmFtaWNhbGx5IHBhdGNoZWQgdXNp bmcKIAkgIGJpbmFyeSBwYXRjaGVzIHdpdGhvdXQgcmVib290aW5nLiBUaGlzIGlzIHByaW1hcmls eSB1c2VkIHRvIGJpbmFyaWx5CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZlcnNpb24uYyBiL3hl bi9jb21tb24vdmVyc2lvbi5jCmluZGV4IDMzYTkzMGEuLjM5YmI3OWEgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24vdmVyc2lvbi5jCisrKyBiL3hlbi9jb21tb24vdmVyc2lvbi5jCkBAIC04NSw5ICs4 NSwzOCBAQCBpbnQgeGVuX2J1aWxkX2lkKGNvbnN0IHZvaWQgKipwLCB1bnNpZ25lZCBpbnQgKmxl bikKIC8qIERlZmluZWQgaW4gbGlua2VyIHNjcmlwdC4gKi8KIGV4dGVybiBjb25zdCBFbGZfTm90 ZSBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0W10sIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kW107 CiAKK2ludCB4ZW5fYnVpbGRfaWRfY2hlY2soY29uc3QgRWxmX05vdGUgKm4sIHVuc2lnbmVkIGlu dCBuX3N6LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICoqcCwgdW5zaWduZWQg aW50ICpsZW4pCit7CisgICAgLyogQ2hlY2sgaWYgd2UgcmVhbGx5IGhhdmUgYSBidWlsZC1pZC4g Ki8KKyAgICBpZiAoIE5UX0dOVV9CVUlMRF9JRCAhPSBuLT50eXBlICkKKyAgICAgICAgcmV0dXJu IC1FTk9EQVRBOworCisgICAgaWYgKCBuLT5uYW1lc3ogPj0gbl9zeiApCisgICAgICAgIHJldHVy biAtRUlOVkFMOworCisgICAgaWYgKCBuLT5kZXNjc3ogPj0gbl9zeiApCisgICAgICAgIHJldHVy biAtRUlOVkFMOworCisgICAgaWYgKCBuLT5uYW1lc3ogKyBuLT5kZXNjc3ogPj0gbl9zeiApCisg ICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgLyogU2FuaXR5IGNoZWNrLCBuYW1lIHNob3Vs ZCBiZSAiR05VIiBmb3IgbGQtZ2VuZXJhdGVkIGJ1aWxkLWlkLiAqLworICAgIGlmICggc3RybmNt cChFTEZOT1RFX05BTUUobiksICJHTlUiLCBuLT5uYW1lc3opICE9IDAgKQorICAgICAgICByZXR1 cm4gLUVOT0RBVEE7CisKKyAgICBpZiAoIGxlbiApCisgICAgICAgICpsZW4gPSBuLT5kZXNjc3o7 CisgICAgaWYgKCBwICkKKyAgICAgICAgKnAgPSBFTEZOT1RFX0RFU0Mobik7CisKKyAgICByZXR1 cm4gMDsKK30KKwogc3RhdGljIGludCBfX2luaXQgeGVuX2J1aWxkX2luaXQodm9pZCkKIHsKICAg ICBjb25zdCBFbGZfTm90ZSAqbiA9IF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQ7CisgICAgc2l6 ZV90IHN6OwogCiAgICAgLyogLS1idWlsZC1pZCBpbnZva2VkIHdpdGggd3JvbmcgcGFyYW1ldGVy cy4gKi8KICAgICBpZiAoIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kIDw9ICZuWzBdICkKQEAgLTk3 LDE4ICsxMjYsOCBAQCBzdGF0aWMgaW50IF9faW5pdCB4ZW5fYnVpbGRfaW5pdCh2b2lkKQogICAg IGlmICggJm5bMV0gPiBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCApCiAgICAgICAgIHJldHVybiAt RU5PREFUQTs7CiAKLSAgICAvKiBDaGVjayBpZiB3ZSByZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAq LwotICAgIGlmICggTlRfR05VX0JVSUxEX0lEICE9IG4tPnR5cGUgKQotICAgICAgICByZXR1cm4g LUVOT0RBVEE7Ci0KLSAgICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZv ciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQuICovCi0gICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFN RShuKSwgIkdOVSIsIG4tPm5hbWVzeikgIT0gMCApCi0gICAgICAgIHJldHVybiAtRU5PREFUQTsK LQotICAgIGJ1aWxkX2lkX2xlbiA9IG4tPmRlc2NzejsKLSAgICBidWlsZF9pZF9wID0gRUxGTk9U RV9ERVNDKG4pOwotCi0gICAgcmV0dXJuIDA7CisgICAgc3ogPSAoc2l6ZV90KV9fbm90ZV9nbnVf YnVpbGRfaWRfZW5kIC0gKHNpemVfdCkmblswXTsKKyAgICByZXR1cm4geGVuX2J1aWxkX2lkX2No ZWNrKG4sIHN6LCAmYnVpbGRfaWRfcCwgJmJ1aWxkX2lkX2xlbik7CiB9CiBfX2luaXRjYWxsKHhl bl9idWlsZF9pbml0KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi94c3BsaWNlLmMg Yi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCAxYzE3MjdlLi5iN2Y3YTE4IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwpAQCAtNCw2 ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8eGVuL2NwdS5oPgorI2luY2x1ZGUgPHhlbi9lbGYu aD4KICNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5oPgog I2luY2x1ZGUgPHhlbi9rZXloYW5kbGVyLmg+CkBAIC00Miw2ICs0MywxMiBAQCBzdGF0aWMgTElT VF9IRUFEKGFwcGxpZWRfbGlzdCk7CiBzdGF0aWMgdW5zaWduZWQgaW50IHBheWxvYWRfY250Owog c3RhdGljIHVuc2lnbmVkIGludCBwYXlsb2FkX3ZlcnNpb24gPSAxOwogCisvKiBUbyBjb250YWlu IHRoZSBFTEYgTm90ZSBoZWFkZXIuICovCitzdHJ1Y3QgeHNwbGljZV9idWlsZF9pZCB7CisgICBj b25zdCB2b2lkICpwOworICAgdW5zaWduZWQgaW50IGxlbjsKK307CisKIHN0cnVjdCBwYXlsb2Fk IHsKICAgICB1aW50MzJfdCBzdGF0ZTsgICAgICAgICAgICAgICAgICAgICAgLyogT25lIG9mIHRo ZSBYU1BMSUNFX1NUQVRFXyouICovCiAgICAgaW50MzJfdCByYzsgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAgb3IgLVhFTl9FWFguICovCkBAIC02Miw2ICs2OSw4IEBAIHN0cnVjdCBwYXls b2FkIHsKICAgICBzdHJ1Y3QgeHNwbGljZV9zeW1ib2wgKnN5bXRhYjsgICAgICAgLyogQWxsIHN5 bWJvbHMuICovCiAgICAgY2hhciAqc3RydGFiOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBv aW50ZXIgdG8gLnN0cnRhYi4gKi8KICAgICB1bnNpZ25lZCBpbnQgbnN5bXM7ICAgICAgICAgICAg ICAgICAgLyogTnIgb2YgZW50cmllcyBpbiAuc3RydGFiIGFuZCBzeW1ib2xzLiAqLworICAgIHN0 cnVjdCB4c3BsaWNlX2J1aWxkX2lkIGlkOyAgICAgICAgICAvKiBFTEZOT1RFX0RFU0MoLm5vdGUu Z251LmJ1aWxkLWlkKSBvZiB0aGUgcGF5bG9hZC4gKi8KKyAgICBzdHJ1Y3QgeHNwbGljZV9idWls ZF9pZCBkZXA7ICAgICAgICAgLyogRUxGTk9URV9ERVNDKC54c3BsaWNlLmRlcGVuZHMpLiAqLwog ICAgIGNoYXIgbmFtZVtYRU5fWFNQTElDRV9OQU1FX1NJWkVdOyAgICAvKiBOYW1lIG9mIGl0LiAq LwogfTsKIApAQCAtNDA2LDcgKzQxNSw5IEBAIHN0YXRpYyBpbnQgc2VjdXJlX3BheWxvYWQoc3Ry dWN0IHBheWxvYWQgKnBheWxvYWQsIHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogc3RhdGljIGlu dCBjaGVja19zcGVjaWFsX3NlY3Rpb25zKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQog ewogICAgIHVuc2lnbmVkIGludCBpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1l c1tdID0geyAiLnhzcGxpY2UuZnVuY3MiIH07CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IG5hbWVzW10gPSB7ICIueHNwbGljZS5mdW5jcyIgLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiLnhzcGxpY2UuZGVwZW5kcyIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIubm90ZS5nbnUuYnVpbGQtaWQifTsKIAogICAgIGZvciAo IGkgPSAwOyBpIDwgQVJSQVlfU0laRShuYW1lcyk7IGkrKyApCiAgICAgewpAQCAtNDI3LDYgKzQz OCw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfc3BlY2lhbF9zZWN0aW9ucyhjb25zdCBzdHJ1Y3QgeHNw bGljZV9lbGYgKmVsZikKICAgICByZXR1cm4gMDsKIH0KIAorI2RlZmluZSBOVF9HTlVfQlVJTERf SUQgMworCiBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9h ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQog ewpAQCAtNDM0LDYgKzQ0Nyw3IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBw YXlsb2FkICpwYXlsb2FkLAogICAgIHVuc2lnbmVkIGludCBpOwogICAgIHN0cnVjdCB4c3BsaWNl X3BhdGNoX2Z1bmNfaW50ZXJuYWwgKmY7CiAgICAgc3RydWN0IHZpcnR1YWxfcmVnaW9uICpyZWdp b247CisgICAgRWxmX05vdGUgKm47CiAKICAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFt ZShlbGYsICIueHNwbGljZS5mdW5jcyIpOwogICAgIEFTU0VSVChzZWMpOwpAQCAtNDk1LDYgKzUw OSwzNSBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9h ZCwKICAgICAgICAgfQogICAgIH0KIAorICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1l KGVsZiwgIi5ub3RlLmdudS5idWlsZC1pZCIpOworICAgIGlmICggc2VjICkKKyAgICB7CisgICAg ICAgIG4gPSBzZWMtPmxvYWRfYWRkcjsKKyAgICAgICAgaWYgKCBzZWMtPnNlYy0+c2hfc2l6ZSA8 PSBzaXplb2YoKm4pICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgICAgIGlm ICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sIHNlYy0+c2VjLT5zaF9zaXplLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZC0+aWQucCwgJnBheWxvYWQtPmlkLmxlbikgKQor ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgaWYgKCAhcGF5bG9hZC0+aWQu bGVuIHx8ICFwYXlsb2FkLT5pZC5wICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAg IH0KKworICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgIi54c3BsaWNlLmRl cGVuZHMiKTsKKyAgICB7CisgICAgICAgIG4gPSBzZWMtPmxvYWRfYWRkcjsKKyAgICAgICAgaWYg KCBzZWMtPnNlYy0+c2hfc2l6ZSA8PSBzaXplb2YoKm4pICkKKyAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOworCisgICAgICAgIGlmICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sIHNlYy0+c2VjLT5z aF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZC0+ZGVwLnAs ICZwYXlsb2FkLT5kZXAubGVuKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAg ICAgICBpZiAoICFwYXlsb2FkLT5kZXAubGVuIHx8ICFwYXlsb2FkLT5kZXAucCApCisgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKICAgICAvKiBTZXR1cCB0aGUgdmlydHVhbCBy ZWdpb24gd2l0aCBwcm9wZXIgZGF0YS4gKi8KICAgICByZWdpb24gPSAmcGF5bG9hZC0+cmVnaW9u OwogCkBAIC0xMjA0LDYgKzEyNDcsNTQgQEAgdm9pZCBjaGVja19mb3JfeHNwbGljZV93b3JrKHZv aWQpCiAgICAgfQogfQogCisvKgorICogT25seSBhbGxvdyBkZXBlbmRlbnQgcGF5bG9hZCBpcyBh cHBsaWVkIG9uIHRvcCBvZiB0aGUgY29ycmVjdAorICogYnVpbGQtaWQuCisgKgorICogVGhpcyBl bmZvcmNlcyBhbiBzdGFja2luZyBvcmRlciAtIHRoZSBmaXJzdCBwYXlsb2FkIE1VU1QgYmUgYWdh aW5zdCB0aGUKKyAqIGh5cGVydmlzb3IuIFRoZSBzZWNvbmQgYWdhaW5zdCB0aGUgZmlyc3QgcGF5 bG9hZCwgYW5kIHNvIG9uLgorICoKKyAqIFVubGVzcyB0aGUgJ2ludGVybmFsJyBwYXJhbWV0ZXIg aXMgdXNlZCAtIGluIHdoaWNoIGNhc2Ugd2Ugb25seQorICogY2hlY2sgYWdhaW5zdCB0aGUgaHlw ZXJ2aXNvci4KKyAqLworc3RhdGljIGludCBidWlsZF9pZF9kZXAoc3RydWN0IHBheWxvYWQgKnBh eWxvYWQsIGJvb2xfdCBpbnRlcm5hbCkKK3sKKyAgICBjb25zdCB2b2lkICppZCA9IE5VTEw7Cisg ICAgdW5zaWduZWQgaW50IGxlbiA9IDA7CisgICAgaW50IHJjOworICAgIGNvbnN0IGNoYXIgKm5h bWUgPSAiaHlwZXJ2aXNvciI7CisKKyAgICBBU1NFUlQocGF5bG9hZC0+ZGVwLmxlbiAmJiBwYXls b2FkLT5kZXAucCk7CisKKyAgICAvKiBGaXJzdCB0aW1lIHVzZXIgaXMgYWdhaW5zdCBoeXBlcnZp c29yLiAqLworICAgIGlmICggaW50ZXJuYWwgKQorICAgIHsKKyAgICAgICAgcmMgPSB4ZW5fYnVp bGRfaWQoJmlkLCAmbGVuKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICByZXR1cm4g cmM7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qIFdlIHNob3VsZCBiZSBhZ2Fp bnN0IHRoZSBsYXN0IGFwcGxpZWQgb25lLiAqLworICAgICAgICBzdHJ1Y3QgcGF5bG9hZCAqZGF0 YSA9IGxpc3RfbGFzdF9lbnRyeSgmYXBwbGllZF9saXN0LCBzdHJ1Y3QgcGF5bG9hZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGllZF9saXN0KTsK KworICAgICAgICBpZCA9IGRhdGEtPmlkLnA7CisgICAgICAgIGxlbiA9IGRhdGEtPmlkLmxlbjsK KyAgICAgICAgbmFtZSA9IGRhdGEtPm5hbWU7CisgICAgfQorCisgICAgaWYgKCBwYXlsb2FkLT5k ZXAubGVuICE9IGxlbiB8fAorICAgICAgICAgbWVtY21wKGlkLCBwYXlsb2FkLT5kZXAucCwgbGVu KSApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgIiVzJXM6IGNoZWNrIGFn YWluc3QgJXMgYnVpbGQtaWQgZmFpbGVkIVxuIiwKKyAgICAgICAgICAgICAgICBYU1BMSUNFLCBw YXlsb2FkLT5uYW1lLCBuYW1lKTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisg ICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVuX3N5c2N0bF94 c3BsaWNlX2FjdGlvbl90ICphY3Rpb24pCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CkBA IC0xMjUwLDYgKzEzNDEsMTggQEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3Rs X3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlvbikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFVkVS VDoKICAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9PSBYU1BMSUNFX1NUQVRFX0FQUExJRUQgKQog ICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgcGF5bG9hZCAqcCA9IGxpc3RfbGFzdF9lbnRy eSgmYXBwbGllZF9saXN0LCBzdHJ1Y3QgcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRfbGlzdCk7CisKKyAgICAgICAgICAg IEFTU0VSVChwKTsKKyAgICAgICAgICAgIC8qIFdlIHNob3VsZCBiZSB0aGUgbGFzdCBhcHBsaWVk IG9uZS4gKi8KKyAgICAgICAgICAgIGlmICggcCAhPSBkYXRhICkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgIiVzJXM6IGNhbid0IHVubG9hZC4g VG9wIGlzICVzIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFhTUExJQ0UsIGRhdGEtPm5h bWUsIHAtPm5hbWUpOworICAgICAgICAgICAgICAgIHJjID0gLUVCVVNZOworICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgZGF0YS0+cmMgPSAtRUFHQUlO OwogICAgICAgICAgICAgcmMgPSBzY2hlZHVsZV93b3JrKGRhdGEsIGFjdGlvbi0+Y21kLCBhY3Rp b24tPnRpbWVvdXQpOwogICAgICAgICB9CkBAIC0xMjU4LDYgKzEzNjEsOSBAQCBzdGF0aWMgaW50 IHhzcGxpY2VfYWN0aW9uKHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb25fdCAqYWN0aW9uKQogICAg IGNhc2UgWFNQTElDRV9BQ1RJT05fQVBQTFk6CiAgICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0g WFNQTElDRV9TVEFURV9DSEVDS0VEICkKICAgICAgICAgeworICAgICAgICAgICAgcmMgPSBidWls ZF9pZF9kZXAoZGF0YSwgbGlzdF9lbXB0eSgmYXBwbGllZF9saXN0KSk7CisgICAgICAgICAgICBp ZiAoIHJjICkKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRhdGEtPnJjID0g LUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBhY3Rpb24tPmNt ZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTI2Niw2ICsxMzcyLDkgQEAgc3Rh dGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlv bikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0U6CiAgICAgICAgIGlmICggZGF0YS0+ c3RhdGUgPT0gWFNQTElDRV9TVEFURV9DSEVDS0VEICkKICAgICAgICAgeworICAgICAgICAgICAg cmMgPSBidWlsZF9pZF9kZXAoZGF0YSwgMSAvKiBhZ2FpbnN0IGh5cGVydmlzb3IuICovKTsKKyAg ICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg ZGF0YS0+cmMgPSAtRUFHQUlOOwogICAgICAgICAgICAgcmMgPSBzY2hlZHVsZV93b3JrKGRhdGEs IGFjdGlvbi0+Y21kLCBhY3Rpb24tPnRpbWVvdXQpOwogICAgICAgICB9CkBAIC0xMzY0LDYgKzE0 NzMsMTEgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9wcmludGFsbCh1bnNpZ25lZCBjaGFyIGtleSkK ICAgICAgICAgICAgICAgICBzcGluX2xvY2soJnBheWxvYWRfbG9jayk7CiAgICAgICAgICAgICB9 CiAgICAgICAgIH0KKyAgICAgICAgaWYgKCBkYXRhLT5pZC5sZW4gKQorICAgICAgICAgICAgcHJp bnRrKCJidWlsZC1pZD0lKnBoTlxuIiwgZGF0YS0+aWQubGVuLCBkYXRhLT5pZC5wKTsKKworICAg ICAgICBpZiAoIGRhdGEtPmRlcC5sZW4gKQorICAgICAgICAgICAgcHJpbnRrKCJkZXBlbmQtb249 JSpwaE5cbiIsIGRhdGEtPmRlcC5sZW4sIGRhdGEtPmRlcC5wKTsKICAgICB9CiAKICAgICBzcGlu X3VubG9jaygmcGF5bG9hZF9sb2NrKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92ZXJz aW9uLmggYi94ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCmluZGV4IDQwMDE2MGYuLjY2ZTViMTkg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL3ZlcnNpb24uaApAQCAtMSw2ICsxLDkgQEAKICNpZm5kZWYgX19YRU5fVkVSU0lPTl9IX18K ICNkZWZpbmUgX19YRU5fVkVSU0lPTl9IX18KIAorI2luY2x1ZGUgPHhlbi90eXBlcy5oPgorI2lu Y2x1ZGUgPHhlbi9lbGZzdHJ1Y3RzLmg+CisKIGNvbnN0IGNoYXIgKnhlbl9jb21waWxlX2RhdGUo dm9pZCk7CiBjb25zdCBjaGFyICp4ZW5fY29tcGlsZV90aW1lKHZvaWQpOwogY29uc3QgY2hhciAq eGVuX2NvbXBpbGVfYnkodm9pZCk7CkBAIC0xNCw1ICsxNyw3IEBAIGNvbnN0IGNoYXIgKnhlbl9j aGFuZ2VzZXQodm9pZCk7CiBjb25zdCBjaGFyICp4ZW5fYmFubmVyKHZvaWQpOwogY29uc3QgY2hh ciAqeGVuX2Rlbnkodm9pZCk7CiBpbnQgeGVuX2J1aWxkX2lkKGNvbnN0IHZvaWQgKipwLCB1bnNp Z25lZCBpbnQgKmxlbik7CitpbnQgeGVuX2J1aWxkX2lkX2NoZWNrKGNvbnN0IEVsZl9Ob3RlICpu LCB1bnNpZ25lZCBpbnQgbl9zeiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq KnAsIHVuc2lnbmVkIGludCAqbGVuKTsKIAogI2VuZGlmIC8qIF9fWEVOX1ZFUlNJT05fSF9fICov Ci0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==