From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 29/34] xsplice: Stacking build-id dependency checking. Date: Tue, 15 Mar 2016 13:56:51 -0400 Message-ID: <1458064616-23101-30-git-send-email-konrad.wilk@oracle.com> References: <1458064616-23101-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aftGj-00019q-W5 for xen-devel@lists.xenproject.org; Tue, 15 Mar 2016 18:00:34 +0000 In-Reply-To: <1458064616-23101-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, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.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 eWVfd29ybGQKb24gdG9wIG9mIHRoYXQuIE5vdCB0aGUgb3RoZXIgd2F5LgoKU2lnbmVkLW9mZi1i eTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgotLS0KQ2M6 IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjI6 IEFuZHJldyBmaXggYWdhaW5zdCB0aGUgYnVpbGRfaWQubyBtdXRpbGF0aW9ucy4KdjM6IEFuZHJl dyBmaXggdG8gbm90IGluY2x1ZGUgZXh0cmEgc3ltYm9scyBpbiBiaW5hcnkuaWQKLS0tCiBDb25m aWcubWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2NzL21pc2MveHNw bGljZS5tYXJrZG93biAgICAgICAgICAgICB8ICA4NCArKysrKysrKysrKysrKysrKystLS0tLS0t LS0KIHhlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlICAgICAgICAgICAgIHwgIDQxICsrKysrKysr KysrLS0KIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYyAgICAgIHwgIDM1ICsrKysr KysrKysrCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkX2Z1bmMuYyB8ICAyNSArKysr KysrKwogeGVuL2NvbW1vbi9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKysKIHhl bi9jb21tb24vdmVyc2lvbi5jICAgICAgICAgICAgICAgICAgIHwgIDQwICsrKysrKysrKy0tLS0K IHhlbi9jb21tb24veHNwbGljZS5jICAgICAgICAgICAgICAgICAgIHwgMTAyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogeGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaCAgICAgICAg ICAgICAgfCAgIDMgKwogeGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaCAgICAgICAgICAgICAgfCAg IDUgKysKIDEwIGZpbGVzIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkX2Z1bmMu YwoKZGlmZiAtLWdpdCBhL0NvbmZpZy5tayBiL0NvbmZpZy5tawppbmRleCBjOGU4OWZlLi44MDYy OWUzIDEwMDY0NAotLS0gYS9Db25maWcubWsKKysrIGIvQ29uZmlnLm1rCkBAIC0xMzQsNiArMTM0 LDcgQEAgaWZlcSAoJChjYWxsIGxkLXZlci1idWlsZC1pZCwkKExEKSksbikKIGJ1aWxkX2lkX2xp bmtlciA6PQogZWxzZQogQ0ZMQUdTICs9IC1EQlVJTERfSUQKK2V4cG9ydCBYRU5fSEFTX0JVSUxE X0lEPXkKIGJ1aWxkX2lkX2xpbmtlciA6PSAtLWJ1aWxkLWlkPXNoYTEKIGVuZGlmCiAKZGlmZiAt LWdpdCBhL2RvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duIGIvZG9jcy9taXNjL3hzcGxpY2UubWFy a2Rvd24KaW5kZXggZDFmMmE1Yi4uYzQ1M2I2NyAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL3hzcGxp Y2UubWFya2Rvd24KKysrIGIvZG9jcy9taXNjL3hzcGxpY2UubWFya2Rvd24KQEAgLTI4Myw4ICsy ODMsNyBAQCBUaGUgeFNwbGljZSBjb3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBzdGFu ZGFyZCBFTEYgYmluYXJ5LCByZWxvY2F0ZXMgaXQKIGFuZCBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1 cmUtc3BlY2lmYyBzZWN0aW9ucyBhcyBuZWVkZWQuIFRoaXMgcHJvY2VzcyBpcyBtdWNoCiBsaWtl IHdoYXQgdGhlIExpbnV4IGtlcm5lbCBtb2R1bGUgbG9hZGVyIGRvZXMuCiAKLVRoZSBwYXlsb2Fk IGNvbnRhaW5zIGEgc2VjdGlvbiAoeHNwbGljZV9wYXRjaF9mdW5jKSB3aXRoIGFuIGFycmF5IG9m IHN0cnVjdHVyZXMKLWRlc2NyaWJpbmcgdGhlIGZ1bmN0aW9ucyB0byBiZSBwYXRjaGVkOgorVGhl IHBheWxvYWQgY29udGFpbnMgYXQgbGVhc3QgdGhyZWUgc2VjdGlvbnM6CiBJdCBvcHRpb25hbGx5 IG1heSBjb250YWluIHRoZSBhZGRyZXNzIG9mIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgcmlnaHQg YmVmb3JlCiBiZWluZyBhcHBsaWVkIGFuZCBhZnRlciBiZWluZyByZXZlcnRlZDoKIApAQCAtMjky LDYgKzI5MSwxNSBAQCBiZWluZyBhcHBsaWVkIGFuZCBhZnRlciBiZWluZyByZXZlcnRlZDoKICAq IGAueHNwbGljZS5ob29rcy51bmxvYWRgIC0gYW4gYXJyYXkgb2YgZnVuY3Rpb24gcG9pbnRlcnMu CiAKIAorICogYC54c3BsaWNlLmZ1bmNzYCAtIHdoaWNoIGlzIGFuIGFycmF5IG9mIHhzcGxpY2Vf cGF0Y2hfZnVuYyBzdHJ1Y3R1cmVzLgorICogYC54c3BsaWNlLmRlcGVuZHNgIC0gd2hpY2ggaXMg YW4gRUxGIE5vdGUgdGhhdCBkZXNjcmliZXMgd2hhdCB0aGUgcGF5bG9hZAorICAgIGRlcGVuZHMg b24uCisgKiAgYC5ub3RlLmdudS5idWlsZC1pZGAgLSB0aGUgYnVpbGQtaWQgb2YgdGhpcyBwYXls b2FkLgorCisjIyMgLnhzcGxpY2UuZnVuY3MKKworVGhlIGAueHNwbGljZS5mdW5jc2AgY29udGFp bnMgYW4gYXJyYXkgb2YgeHNwbGljZV9wYXRjaF9mdW5jIHN0cnVjdHVyZXMKK3doaWNoIGRlc2Ny aWJlIHRoZSBmdW5jdGlvbnMgdG8gYmUgcGF0Y2hlZDoKIDxwcmU+CiBzdHJ1Y3QgeHNwbGljZV9w YXRjaF9mdW5jIHsgIAogICAgIGNvbnN0IGNoYXIgKm5hbWU7ICAKQEAgLTMzMyw3ICszNDEsNyBA QCBXaGVuIHJldmVydGluZyBhIHBhdGNoLCB0aGUgaHlwZXJ2aXNvciBpdGVyYXRlcyBvdmVyIGVh Y2ggYHhzcGxpY2VfcGF0Y2hfZnVuY2AKIGFuZCB0aGUgY29yZSBjb2RlIGNvcGllcyB0aGUgZGF0 YSBmcm9tIHRoZSB1bmRvIGJ1ZmZlciAocHJpdmF0ZSBpbnRlcm5hbCBjb3B5KQogdG8gYG9sZF9h ZGRyYC4KIAotIyMjIEV4YW1wbGUKKyMjIyBFeGFtcGxlIG9mIC54c3BsaWNlLmZ1bmNzCiAKIEEg c2ltcGxlIGV4YW1wbGUgb2Ygd2hhdCBhIHBheWxvYWQgZmlsZSBjYW4gYmU6CiAKQEAgLTM3OSwx MCArMzg3LDI5IEBAIEVhY2ggZW50cnkgaW4gdGhpcyBhcnJheSBpcyBlaWdodCBieXRlcy4KIAog VGhlIHR5cGUgZGVmaW5pdGlvbiBvZiB0aGUgZnVuY3Rpb24gYXJlIGFzIGZvbGxvdzoKIAorCiA8 cHJlPgogdHlwZWRlZiB2b2lkICgqeHNwbGljZV9sb2FkY2FsbF90KSh2b2lkKTsgIAogdHlwZWRl ZiB2b2lkICgqeHNwbGljZV91bmxvYWRjYWxsX3QpKHZvaWQpOyAgIAogPC9wcmU+CisKKyMjIyAu eHNwbGljZS5kZXBlbmRzIGFuZCAubm90ZS5nbnUuYnVpbGQtaWQKKworVG8gc3VwcG9ydCBkZXBl bmRlbmNpZXMgY2hlY2tpbmcgYW5kIHNhZmUgbG9hZGluZyAodG8gbG9hZCB0aGUKK2FwcHJvcGlh dGUgcGF5bG9hZCBhZ2FpbnN0IHRoZSByaWdodCBoeXBlcnZpc29yKSB0aGVyZSBpcyBhIG5lZWQK K3RvIGVtYmJlZCBhbiBidWlsZC1pZCBkZXBlbmRlbmN5LgorCitUaGlzIGlzIGRvbmUgYnkgdGhl IHBheWxvYWQgY29udGFpbmluZyBhbiBzZWN0aW9uIGAueHNwbGljZS5kZXBlbmRzYAord2hpY2gg Zm9sbG93cyB0aGUgZm9ybWF0IG9mIGFuIEVMRiBOb3RlLiBUaGUgY29udGVudHMgb2YgdGhpcwor KG5hbWUsIGFuZCBkZXNjcmlwdGlvbikgYXJlIHNwZWNpZmljIHRvIHRoZSBsaW5rZXIgdXRpbGl6 ZWQgdG8KK2J1aWxkIHRoZSBoeXBldmlzb3IgYW5kIHBheWxvYWQuCisKK0lmIEdOVSBsaW5rZXIg aXMgdXNlZCB0aGVuIHRoZSBuYW1lIGlzIGBHTlVgIGFuZCB0aGUgZGVzY3JpcHRpb24KK2lzIGFu IE5UX0dOVV9CVUlMRF9JRCB0eXBlIElELiBUaGUgZGVzY3JpcHRpb24gY2FuIGJlIGFuIFNIQTEK K2NoZWNrc3VtLCBNRDUgY2hlY2tzdW0gb3IgYW55IHVuaXF1ZSB2YWx1ZS4KKworVGhlIHNpemUg b2YgdGhlc2Ugc3RydWN0dXJlcyB2YXJpZXMgd2l0aCB0aGUgLS1idWlsZC1pZCBsaW5rZXIgb3B0 aW9uLgorCiAjIyBIeXBlcmNhbGxzCiAKIFdlIHdpbGwgZW1wbG95IHRoZSBzdWIgb3BlcmF0aW9u cyBvZiB0aGUgc3lzdGVtIG1hbmFnZW1lbnQgaHlwZXJjYWxsIChzeXNjdGwpLgpAQCAtODY3LDMw ICs4OTQsNiBAQCBUaGlzIGlzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gUHJvamVjdCBoeXBlcnZp c29yLgogCiBPbmx5IHRoZSBwcml2aWxlZ2VkIGRvbWFpbiBzaG91bGQgYmUgYWxsb3dlZCB0byBk byB0aGlzIG9wZXJhdGlvbi4KIAotCi0jIE5vdCBZZXQgRG9uZQotCi1UaGlzIGlzIGZvciBmdXJ0 aGVyIGRldmVsb3BtZW50IG9mIHhTcGxpY2UuCi0KLSMjIEdvYWxzCi0KLVRoZSBpbXBsZW1lbnRh dGlvbiBtdXN0IGFsc28gaGF2ZSBhIG1lY2hhbmlzbSBmb3I6Ci0KLSAqICBBbiBkZXBlbmRlbmN5 IG1lY2hhbmlzbSBmb3IgdGhlIHBheWxvYWRzLiBUbyB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBs b2FkOgotICAgIC0gVGhlIGFwcHJvcGlhdGUgcGF5bG9hZC4gVG8gdmVyaWZ5IHRoYXQgcGF5bG9h ZCBpcyBidWlsdCBhZ2FpbnN0IHRoZQotICAgICAgaHlwZXJ2aXNvci4gVGhpcyBjYW4gYmUgZG9u ZSB2aWEgdGhlIGBidWlsZC1pZGAKLSAgICAgIG9yIHZpYSBwcm92aWRpbmcgYW4gY29weSBvZiB0 aGUgb2xkIGNvZGUgLSBzbyB0aGF0IHRoZSBoeXBlcnZpc29yIGNhbgotICAgICAgIHZlcmlmeSBp dCBhZ2FpbnN0IHRoZSBjb2RlIGluIG1lbW9yeS4KLSAgICAtIFRvIGNvbnN0cnVjdCBhbiBhcHBy b3BpYXRlIG9yZGVyIG9mIHBheWxvYWRzIHRvIGxvYWQgaW4gY2FzZSB0aGV5Ci0gICAgICBkZXBl bmQgb24gZWFjaCBvdGhlci4KLSAqIEJlIGFibGUgdG8gbG9va3VwIGluIHRoZSBYZW4gaHlwZXJ2 aXNvciB0aGUgc3ltYm9sIG5hbWVzIG9mIGZ1bmN0aW9ucyBmcm9tIHRoZSBFTEYgcGF5bG9hZC4K LSAqIEJlIGFibGUgdG8gcGF0Y2ggLnJvZGF0YSwgLmJzcywgYW5kIC5kYXRhIHNlY3Rpb25zLgot ICogRnVydGhlciBzYWZldHkgY2hlY2tzIChibGFja2xpc3Qgb2Ygd2hpY2ggZnVuY3Rpb25zIGNh bm5vdCBiZSBwYXRjaGVkLCBjaGVjawotICAgdGhlIHN0YWNrLCBtYWtlIHN1cmUgdGhlIHBheWxv YWQgaXMgYnVpbHQgd2l0aCBzYW1lIGNvbXBpbGVyIGFzIGh5cGVydmlzb3IsCi0gICBhbmQgTk1J L01DRSBoYW5kbGVycyBhbmQgZG9fbm1pIGZvciByaWdodCBub3cgLSB1bnRpbCBhbiBzYWZlIHNv bHV0aW9uIGlzIGZvdW5kKS4KLSAqIE5PUCBvdXQgdGhlIGNvZGUgc2VxdWVuY2UgaWYgYG5ld19z aXplYCBpcyB6ZXJvLgotICogRGVhbCB3aXRoIG90aGVyIHJlbG9jYXRpb24gdHlwZXM6ICBSX1g4 Nl82NF9bOCwxNiwzMiwzMlNdLCBSX1g4Nl82NF9QQ1s4LDE2LDY0XSBpbiBwYXlsb2FkIGZpbGUu Ci0KICMjIyB4U3BsaWNlIGludGVyZGVwZW5kZW5jaWVzCiAKIHhTcGxpY2UgcGF0Y2hlcyBpbnRl cmRlcGVuZGVuY2llcyBhcmUgdHJpY2t5LgpAQCAtOTE3LDYgKzkyMCwzMyBAQCBiZWluZyBsb2Fk ZWQgYW5kIHJlcXVpcmVzIGFuIGh5cGVydmlzb3IgYnVpbGQtaWQgdG8gbWF0Y2ggYWdhaW5zdC4K IFRoZSBvbGQgY29kZSBhbGxvd3MgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGFuZCBhbiBhZGRpdGlv bmFsIGd1YXJkLAogYnV0IGlzIG1vcmUgY29tcGxleCB0byBpbXBsZW1lbnQuCiAKK1RoZSBzZWNv bmQgb3B0aW9uIHdoaWNoIHJlcXVpcmVzIGFuIGJ1aWxkLWlkIG9mIHRoZSBoeXBlcnZpc29yCitp cyBpbXBsZW1lbnRlZCBpbiB0aGUgWGVuIFByb2plY3QgaHlwZXJ2aXNvci4KKworU3BlY2lmaWNh bGx5IGVhY2ggcGF5bG9hZCBoYXMgdHdvIGJ1aWxkLWlkIEVMRiBub3RlczoKKyAqIFRoZSBidWls ZC1pZCBvZiB0aGUgcGF5bG9hZCBpdHNlbGYgKGdlbmVyYXRlZCB2aWEgLS1idWlsZC1pZCkuCisg KiBUaGUgYnVpbGQtaWQgb2YgdGhlIHBheWxvYWQgaXQgZGVwZW5kcyBvbiAoZXh0cmFjdGVkIGZy b20gdGhlCisgICB0aGUgcHJldmlvdXMgcGF5bG9hZCBvciBoeXBlcnZpc29yIGR1cmluZyBidWls ZCB0aW1lKS4KKworVGhpcyBtZWFucyB0aGF0IHRoZSB2ZXJ5IGZpcnN0IHBheWxvYWQgZGVwZW5k cyBvbiB0aGUgaHlwZXJ2aXNvcgorYnVpbGQtaWQuCisKKyMgTm90IFlldCBEb25lCisKK1RoaXMg aXMgZm9yIGZ1cnRoZXIgZGV2ZWxvcG1lbnQgb2YgeFNwbGljZS4KKworIyMgR29hbHMKKworVGhl IGltcGxlbWVudGF0aW9uIG11c3QgYWxzbyBoYXZlIGEgbWVjaGFuaXNtIGZvcjoKKworICogQmUg YWJsZSB0byBsb29rdXAgaW4gdGhlIFhlbiBoeXBlcnZpc29yIHRoZSBzeW1ib2wgbmFtZXMgb2Yg ZnVuY3Rpb25zIGZyb20gdGhlIEVMRiBwYXlsb2FkLgorICogQmUgYWJsZSB0byBwYXRjaCAucm9k YXRhLCAuYnNzLCBhbmQgLmRhdGEgc2VjdGlvbnMuCisgKiBGdXJ0aGVyIHNhZmV0eSBjaGVja3Mg KGJsYWNrbGlzdCBvZiB3aGljaCBmdW5jdGlvbnMgY2Fubm90IGJlIHBhdGNoZWQsIGNoZWNrCisg ICB0aGUgc3RhY2ssIG1ha2Ugc3VyZSB0aGUgcGF5bG9hZCBpcyBidWlsdCB3aXRoIHNhbWUgY29t cGlsZXIgYXMgaHlwZXJ2aXNvciwKKyAgIGFuZCBOTUkvTUNFIGhhbmRsZXJzIGFuZCBkb19ubWkg Zm9yIHJpZ2h0IG5vdyAtIHVudGlsIGFuIHNhZmUgc29sdXRpb24gaXMgZm91bmQpLgorICogTk9Q IG91dCB0aGUgY29kZSBzZXF1ZW5jZSBpZiBgbmV3X3NpemVgIGlzIHplcm8uCisgKiBEZWFsIHdp dGggb3RoZXIgcmVsb2NhdGlvbiB0eXBlczogIFJfWDg2XzY0X1s4LDE2LDMyLDMyU10sIFJfWDg2 XzY0X1BDWzgsMTYsNjRdIGluIHBheWxvYWQgZmlsZS4KKwogIyMjIEhhbmRsZSBpbmxpbmVkIF9f TElORV9fCiAKIFRoaXMgcHJvYmxlbSBpcyByZWxhdGVkIHRvIGhvdHBhdGNoIGNvbnN0cnVjdGlv bgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYv dGVzdC9NYWtlZmlsZQppbmRleCA0NWRmMzAxLi5hODRjNjA5IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvdGVzdC9NYWtlZmlsZQorKysgYi94ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZQpAQCAt NywxMyArNywxNiBAQCBDT0RFX1NaPSQoc2hlbGwgbm0gLS1kZWZpbmVkIC1TICQoMSkgfCBncmVw ICQoMikgfCBhd2sgJ3sgcHJpbnQgIjB4IiQkMn0nKQogaWZkZWYgQ09ORklHX1hTUExJQ0UKIAog WFNQTElDRSA6PSB4ZW5faGVsbG9fd29ybGQueHNwbGljZQorWFNQTElDRV9CWUUgOj0geGVuX2J5 ZV93b3JsZC54c3BsaWNlCiAKIGRlZmF1bHQ6IHhzcGxpY2UKIAogaW5zdGFsbDogeHNwbGljZQog CSQoSU5TVEFMTF9EQVRBKSAkKFhTUExJQ0UpICQoREVTVERJUikkKERFQlVHX0RJUikvJChYU1BM SUNFKQorCSQoSU5TVEFMTF9EQVRBKSAkKFhTUExJQ0VfQllFKSAkKERFU1RESVIpJChERUJVR19E SVIpLyQoWFNQTElDRV9CWUUpCiB1bmluc3RhbGw6CiAJcm0gLWYgJChERVNURElSKSQoREVCVUdf RElSKS8kKFhTUExJQ0UpCisJcm0gLWYgJChERVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJQ0Vf QllFKQogZWxzZQogZGVmYXVsdDoKIGluc3RhbGw6CkBAIC0yMiw3ICsyNSw3IEBAIGVuZGlmCiAK IC5QSE9OWTogY2xlYW4KIGNsZWFuOjoKLQlybSAtZiAqLm8gLiouby5kICQoWFNQTElDRSkgY29u ZmlnLmgKKwlybSAtZiAqLm8gLiouby5kICQoWFNQTElDRSkgY29uZmlnLmggYnVpbGRfaWQubwog CiAjCiAjIFRvIGNvbXB1dGUgdGhlc2UgdmFsdWVzIHdlIG5lZWQgdGhlIGJpbmFyeSBmaWxlczog eGVuLXN5bXMKQEAgLTM0LDE1ICszNyw0NSBAQCBjbGVhbjo6CiAuUEhPTlk6IGNvbmZpZy5oCiBj b25maWcuaDogT0xEX0NPREVfU1o9JChjYWxsIENPREVfU1osJChCQVNFRElSKS94ZW4tc3ltcyx4 ZW5fZXh0cmFfdmVyc2lvbikKIGNvbmZpZy5oOiBORVdfQ09ERV9TWj0kKGNhbGwgQ09ERV9TWiwk PCx4ZW5faGVsbG9fd29ybGQpCi1jb25maWcuaDogeGVuX2hlbGxvX3dvcmxkX2Z1bmMubworY29u ZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8geGVuX2J5ZV93b3JsZF9mdW5jLm8KIAkoc2V0 IC1lOyBcCiAJIGVjaG8gIiNkZWZpbmUgTkVXX0NPREVfU1ogJChORVdfQ09ERV9TWikiOyBcCiAJ IGVjaG8gIiNkZWZpbmUgT0xEX0NPREVfU1ogJChPTERfQ09ERV9TWikiKSA+ICRACiAKKyMKKyMg VGhpcyB0YXJnZXQgaXMgb25seSBhY2Nlc3NpYmxlIGlmIENPTkZJR19YU1BMSUNFIGlzIGRlZmlu ZWQsIHdoaWNoCisjIGRlcGVuZHMgb24gJChidWlsZF9pZF9saW5rZXIpIGJlaW5nIGF2YWlsYWJs ZS4gSGVuY2Ugd2UgZG8gbm90CisjIG5lZWQgYW55IGNoZWNrcy4KKyMKKy5QSE9OWTogYnVpbGRf aWQubworYnVpbGRfaWQubzoKKwkkKE9CSkNPUFkpIC1PIGJpbmFyeSAtLW9ubHktc2VjdGlvbj0u bm90ZSAkKEJBU0VESVIpL3hlbi1zeW1zICRALmJpbgorCSQoT0JKQ09QWSkgLUkgYmluYXJ5IC1P IGVsZjY0LXg4Ni02NCAtQiBpMzg2Ong4Ni02NCBcCisJCSAgIC0tcmVuYW1lLXNlY3Rpb249LmRh dGE9LnhzcGxpY2UuZGVwZW5kcyAtUyAkQC5iaW4gJEAKKwlybSAtZiAkQC5iaW4KKworCisjCisj IEV4dHJhY3QgdGhlIGJ1aWxkLWlkIG9mIHRoZSB4ZW5faGVsbG9fd29ybGQueHNwbGljZQorIyAo d2hpY2ggeGVuX2J5ZV93b3JsZCB3aWxsIGRlcGVuZCBvbikuCisjCisuUEhPTlk6IGhlbGxvX3dv cmxkX2J1aWxkX2lkLm8KK2hlbGxvX3dvcmxkX2J1aWxkX2lkLm86CisJJChPQkpDT1BZKSAtTyBi aW5hcnkgLS1vbmx5LXNlY3Rpb249Lm5vdGUuZ251LmJ1aWxkLWlkICQoWFNQTElDRSkgJEAuYmlu CisJJChPQkpDT1BZKSAgLUkgYmluYXJ5IC1PIGVsZjY0LXg4Ni02NCAtQiBpMzg2Ong4Ni02NCBc CisJCSAgIC0tcmVuYW1lLXNlY3Rpb249LmRhdGE9LnhzcGxpY2UuZGVwZW5kcyAtUyAkQC5iaW4g JEAKKwlybSAtZiAkQC5iaW4KKwogLlBIT05ZOiB4c3BsaWNlCi14c3BsaWNlOiBjb25maWcuaAor eHNwbGljZTogY29uZmlnLmggYnVpbGRfaWQubwogCSMgTmVlZCB0byBoYXZlIHRoZXNlIGRvbmUg aW4gc2VxdWVudGlhbCBvcmRlcgogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayB4ZW5f aGVsbG9fd29ybGRfZnVuYy5vCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rIHhlbl9o ZWxsb193b3JsZC5vCi0JJChMRCkgJChMREZMQUdTKSAtciAtbyAkKFhTUExJQ0UpIHhlbl9oZWxs b193b3JsZF9mdW5jLm8geGVuX2hlbGxvX3dvcmxkLm8KKwkkKExEKSAkKExERkxBR1MpICQoYnVp bGRfaWRfbGlua2VyKSAtciAtbyAkKFhTUExJQ0UpIFwKKwkJeGVuX2hlbGxvX3dvcmxkX2Z1bmMu byB4ZW5faGVsbG9fd29ybGQubyBidWlsZF9pZC5vCisJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1 bGVzLm1rIHhlbl9ieWVfd29ybGRfZnVuYy5vCisJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVz Lm1rIHhlbl9ieWVfd29ybGQubworCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayBoZWxs b193b3JsZF9idWlsZF9pZC5vCisJJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikg LXIgLW8gJChYU1BMSUNFX0JZRSkgXAorCQl4ZW5fYnllX3dvcmxkX2Z1bmMubyB4ZW5fYnllX3dv cmxkLm8gaGVsbG9fd29ybGRfYnVpbGRfaWQubwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv dGVzdC94ZW5fYnllX3dvcmxkLmMgYi94ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI2NjQxYwotLS0gL2Rldi9udWxs CisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYwpAQCAtMCwwICsxLDM1IEBA CisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICovCisKKyNpbmNsdWRlIDx4ZW4vY29uZmlnLmg+ CisjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CisjaW5jbHVkZSA8eGVuL3hzcGxpY2VfcGF0Y2guaD4K KyNpbmNsdWRlIDx4ZW4veHNwbGljZS5oPgorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg PHhlbi9saWIuaD4KKworc3RhdGljIGNoYXIgeGVuX2J5ZV93b3JsZF9uYW1lW10gPSAieGVuX2J5 ZV93b3JsZCI7CitleHRlcm4gY29uc3QgY2hhciAqeGVuX2J5ZV93b3JsZCh2b2lkKTsKKworLyog RXh0ZXJuYWwgc3ltYm9sLiAqLworZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9u KHZvaWQpOworCitzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxpY2Uu ZnVuY3MiKSB4c3BsaWNlX3hlbl9ieWVfd29ybGQgPSB7CisgICAgLm5hbWUgPSB4ZW5fYnllX3dv cmxkX25hbWUsCisgICAgLm5ld19hZGRyID0gKHVuc2lnbmVkIGxvbmcpKHhlbl9ieWVfd29ybGQp LAorICAgIC5vbGRfYWRkciA9ICh1bnNpZ25lZCBsb25nKSh4ZW5fZXh0cmFfdmVyc2lvbiksCisg ICAgLm5ld19zaXplID0gTkVXX0NPREVfU1osCisgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1os Cit9OworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0 eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5k ZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93 b3JsZF9mdW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc0MjY4Ywot LS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5j CkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9v ciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKworI2luY2x1 ZGUgPHhlbi9jb25maWcuaD4KKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20v bm9wcy5oPgorI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2ZS5oPgorCisvKiBPdXIgcmVwbGFjZW1l bnQgZnVuY3Rpb24gZm9yIHhlbl9oZWxsb193b3JsZC4gKi8KK2NvbnN0IGNoYXIgKnhlbl9ieWVf d29ybGQodm9pZCkKK3sKKyAgICByZXR1cm4gIkJ5ZSBXb3JsZCEiOworfQorCisvKgorICogTG9j YWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1i YXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmls CisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vS2NvbmZpZyBiL3hlbi9jb21t b24vS2NvbmZpZwppbmRleCBkYmU5Y2NjLi5kMTUzYzRhIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L0tjb25maWcKKysrIGIveGVuL2NvbW1vbi9LY29uZmlnCkBAIC01NCw2ICs1NCwxMCBAQCBjb25m aWcgSEFTX0dEQlNYCiBjb25maWcgSEFTX0lPUE9SVFMKIAlib29sCiAKK2NvbmZpZyBIQVNfQlVJ TERfSUQKKwlzdHJpbmcKKwlvcHRpb24gZW52PSJYRU5fSEFTX0JVSUxEX0lEIgorCiAjIEVuYWJs ZS9EaXNhYmxlIGtleGVjIHN1cHBvcnQKIGNvbmZpZyBLRVhFQwogCWJvb2wgImtleGVjIHN1cHBv cnQiCkBAIC0xNzIsNiArMTc2LDcgQEAgZW5kbWVudQogY29uZmlnIFhTUExJQ0UKIAlib29sICJ4 U3BsaWNlIGxpdmUgcGF0Y2hpbmcgc3VwcG9ydCIKIAlkZWZhdWx0IHkKKwlkZXBlbmRzIG9uIEhB U19CVUlMRF9JRCA9ICJ5IgogCS0tLWhlbHAtLS0KIAkgIEFsbG93cyBhIHJ1bm5pbmcgWGVuIGh5 cGVydmlzb3IgdG8gYmUgZHluYW1pY2FsbHkgcGF0Y2hlZCB1c2luZwogCSAgYmluYXJ5IHBhdGNo ZXMgd2l0aG91dCByZWJvb3RpbmcuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgdG8gYmluYXJpbHkK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdmVyc2lvbi5jIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMK aW5kZXggYWY4NzM3MS4uNTA5MDZiMSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi92ZXJzaW9uLmMK KysrIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKQEAgLTcwLDEwICs3MCwyOSBAQCBjb25zdCBjaGFy ICp4ZW5fZGVueSh2b2lkKQogLyogRGVmaW5lZCBpbiBsaW5rZXIgc2NyaXB0LiAqLwogZXh0ZXJu IGNvbnN0IEVsZl9Ob3RlIF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnRbXSwgX19ub3RlX2dudV9i dWlsZF9pZF9lbmRbXTsKIAoraW50IHhlbl9idWlsZF9pZF9jaGVjayhjb25zdCBFbGZfTm90ZSAq biwgY29uc3Qgdm9pZCAqKnAsIHNzaXplX3QgKmxlbikKK3sKKyAgICAvKiBDaGVjayBpZiB3ZSBy ZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAqLworICAgIGlmICggTlRfR05VX0JVSUxEX0lEICE9IG4t PnR5cGUgKQorICAgICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICAvKiBTYW5pdHkgY2hlY2ss IG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQuICovCisgICAg aWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4tPm5hbWVzeikgIT0gMCApCisg ICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIGlmICggbGVuICkKKyAgICAgICAgKmxlbiA9 IG4tPmRlc2NzejsKKyAgICBpZiAoIHAgKQorICAgICAgICAqcCA9IEVMRk5PVEVfREVTQyhuKTsK KworICAgIHJldHVybiAwOworfQorCiBpbnQgeGVuX2J1aWxkX2lkKGNvbnN0IHZvaWQgKipwLCBz c2l6ZV90ICpsZW4pCiB7CiAgICAgY29uc3QgRWxmX05vdGUgKm4gPSBfX25vdGVfZ251X2J1aWxk X2lkX3N0YXJ0OwogICAgIHN0YXRpYyBib29sX3QgY2hlY2tlZCA9IDA7CisgICAgaW50IHJjOwog CiAgICAgaWYgKCBjaGVja2VkICkKICAgICB7CkBAIC04OSwyMyArMTA4LDIwIEBAIGludCB4ZW5f YnVpbGRfaWQoY29uc3Qgdm9pZCAqKnAsIHNzaXplX3QgKmxlbikKICAgICBpZiAoICZuWzFdID4g X19ub3RlX2dudV9idWlsZF9pZF9lbmQgKQogICAgICAgICByZXR1cm4gLUVOT0RBVEE7CiAKLSAg ICAvKiBDaGVjayBpZiB3ZSByZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAqLwotICAgIGlmICggTlRf R05VX0JVSUxEX0lEICE9IG4tPnR5cGUgKQotICAgICAgICByZXR1cm4gLUVOT0RBVEE7Ci0KLSAg ICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQg YnVpbGQtaWQuICovCi0gICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4t Pm5hbWVzeikgIT0gMCApCi0gICAgICAgIHJldHVybiAtRU5PREFUQTsKLQotICAgICpsZW4gPSBu LT5kZXNjc3o7Ci0gICAgKnAgPSBFTEZOT1RFX0RFU0Mobik7CisgICAgcmMgPSB4ZW5fYnVpbGRf aWRfY2hlY2sobiwgcCwgbGVuKTsKKyAgICBpZiAoICFyYyApCisgICAgICAgIGNoZWNrZWQgPSAx OwogCi0gICAgY2hlY2tlZCA9IDE7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHJjOwogfQog CiAjZWxzZQogCitpbnQgeGVuX2J1aWxkX2lkX2NoZWNrKGNvbnN0IEVsZl9Ob3RlICpuLCBjb25z dCB2b2lkICoqcCwgc3NpemVfdCAqbGVuKQoreworICAgIHJldHVybiAtRU5PREFUQTsKK30KKwog aW50IHhlbl9idWlsZF9pZChjb25zdCB2b2lkICoqcCwgc3NpemVfdCAqbGVuKQogewogICAgIHJl dHVybiAtRU5PREFUQTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24veHNwbGljZS5jIGIveGVuL2Nv bW1vbi94c3BsaWNlLmMKaW5kZXggZWZmYWU4Ni4uZTk2M2NjZCAxMDA2NDQKLS0tIGEveGVuL2Nv bW1vbi94c3BsaWNlLmMKKysrIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKQEAgLTUsNiArNSw3IEBA CiAKICNpbmNsdWRlIDx4ZW4vYnVnX2V4X3N5bWJvbHMuaD4KICNpbmNsdWRlIDx4ZW4vY3B1Lmg+ CisjaW5jbHVkZSA8eGVuL2VsZi5oPgogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNp bmNsdWRlIDx4ZW4va2V5aGFuZGxlci5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KQEAgLTYyLDYg KzYzLDggQEAgc3RydWN0IHBheWxvYWQgewogICAgIHhzcGxpY2VfdW5sb2FkY2FsbF90ICp1bmxv YWRfZnVuY3M7ICAvKiBsb2FkIGFuZCB1bmxvYWQgb2YgdGhlIHBheWxvYWQuICovCiAgICAgdW5z aWduZWQgaW50IG5fbG9hZF9mdW5jczsgICAgICAgICAgIC8qIE5yIG9mIHRoZSBmdW5jcyB0byBs b2FkIGFuZCBleGVjdXRlLiAqLwogICAgIHVuc2lnbmVkIGludCBuX3VubG9hZF9mdW5jczsgICAg ICAgICAvKiBOciBvZiBmdW5jcyB0byBjYWxsIGR1cnVuZyB1bmxvYWQuICovCisgICAgc3RydWN0 IHhzcGxpY2VfYnVpbGRfaWQgaWQ7ICAgICAgICAgIC8qIEVMRk5PVEVfREVTQygubm90ZS5nbnUu YnVpbGQtaWQpIG9mIHRoZSBwYXlsb2FkLiAqLworICAgIHN0cnVjdCB4c3BsaWNlX2J1aWxkX2lk IGRlcDsgICAgICAgICAvKiBFTEZOT1RFX0RFU0MoLnhzcGxpY2UuZGVwZW5kcykuICovCiAgICAg Y2hhciBuYW1lW1hFTl9YU1BMSUNFX05BTUVfU0laRSArIDFdOy8qIE5hbWUgb2YgaXQuICovCiB9 OwogCkBAIC0zNzksNyArMzgyLDkgQEAgc3RhdGljIGludCBjaGVja19zcGVjaWFsX3NlY3Rpb25z KHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogewogICAgIHVuc2lnbmVkIGludCBpOwotICAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0geyAiLnhzcGxpY2UuZnVuY3MiIH07 CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7ICIueHNwbGljZS5mdW5j cyIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLnhzcGxpY2Uu ZGVwZW5kcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIubm90 ZS5nbnUuYnVpbGQtaWQifTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShuYW1l cyk7IGkrKyApCiAgICAgewpAQCAtMzk4LDYgKzQwMyw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfc3Bl Y2lhbF9zZWN0aW9ucyhzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICByZXR1cm4gMDsKIH0K IAorI2RlZmluZSBOVF9HTlVfQlVJTERfSUQgMworCiBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9h ZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogewpAQCAtNDA1LDYgKzQxMiw3IEBAIHN0YXRpYyBpbnQg cHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgIHVuc2lnbmVkIGlu dCBpOwogICAgIHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmY7CiAgICAgc3RydWN0IHZpcnR1 YWxfcmVnaW9uICpyZWdpb247CisgICAgRWxmX05vdGUgKm47CiAKICAgICBzZWMgPSB4c3BsaWNl X2VsZl9zZWNfYnlfbmFtZShlbGYsICIueHNwbGljZS5mdW5jcyIpOwogICAgIGlmICggc2VjICkK QEAgLTQ4MCw2ICs0ODgsMzMgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBh eWxvYWQgKnBheWxvYWQsCiAgICAgICAgIHBheWxvYWQtPm5fdW5sb2FkX2Z1bmNzID0gc2VjLT5z ZWMtPnNoX3NpemUgLyAoc2l6ZW9mICpwYXlsb2FkLT51bmxvYWRfZnVuY3MpOwogICAgIH0KIAor ICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgIi5ub3RlLmdudS5idWlsZC1p ZCIpOworICAgIGlmICggc2VjICkKKyAgICB7CisgICAgICAgIG4gPSAoRWxmX05vdGUgKilzZWMt PmxvYWRfYWRkcjsKKyAgICAgICAgaWYgKCBzZWMtPnNlYy0+c2hfc2l6ZSA8PSBzaXplb2YgKm4g KQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgaWYgKCB4ZW5fYnVpbGRf aWRfY2hlY2sobiwgJnBheWxvYWQtPmlkLnAsICZwYXlsb2FkLT5pZC5sZW4pICkKKyAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgICAgIGlmICggIXBheWxvYWQtPmlkLmxlbiB8fCAh cGF5bG9hZC0+aWQucCApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAg ICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIueHNwbGljZS5kZXBlbmRzIik7 CisgICAgeworICAgICAgICBuID0gKEVsZl9Ob3RlICopc2VjLT5sb2FkX2FkZHI7CisgICAgICAg IGlmICggc2VjLT5zZWMtPnNoX3NpemUgPD0gc2l6ZW9mICpuICkKKyAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOworCisgICAgICAgIGlmICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sICZwYXlsb2Fk LT5kZXAucCwgJnBheWxvYWQtPmRlcC5sZW4pICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OworCisgICAgICAgIGlmICggIXBheWxvYWQtPmRlcC5sZW4gfHwgIXBheWxvYWQtPmRlcC5wICkK KyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKwogICAgIC8qIFNldHVwIHRoZSB2 aXJ0dWFsIHJlZ2lvbiB3aXRoIHByb3BlciBkYXRhLiAqLwogICAgIHJlZ2lvbiA9ICZwYXlsb2Fk LT5idWdfZXhfcmVnaW9uOwogICAgIHJlZ2lvbi0+c2tpcCA9IGlnbm9yZV9yZWdpb247CkBAIC0x MTc1LDYgKzEyMTAsNTMgQEAgdm9pZCBjaGVja19mb3JfeHNwbGljZV93b3JrKHZvaWQpCiAgICAg fQogfQogCisvKgorICogT25seSBhbGxvdyBkZXBlbmRlbnQgcGF5bG9hZCBpcyBhcHBsaWVkIG9u IHRvcCBvZiB0aGUgY29ycmVjdAorICogYnVpbGQtaWQuCisgKgorICogVGhpcyBlbmZvcmNlcyBh biBzdGFja2luZyBvcmRlciAtIHRoZSBmaXJzdCBwYXlsb2FkIE1VU1QgYmUgYWdhaW5zdCB0aGUK KyAqIGh5cGVydmlzb3IuIFRoZSBzZWNvbmQgYWdhaW5zdCB0aGUgZmlyc3QgcGF5bG9hZCwgYW5k IHNvIG9uLgorICoKKyAqIFVubGVzcyB0aGUgJ2lnbm9yZScgcGFyYW1ldGVyIGlzIHVzZWQgLSBp biB3aGljaCBjYXNlIHdlIG9ubHkKKyAqIGNoZWNrIGFnYWluc3QgdGhlIGh5cGVydmlzb3IuCisg Ki8KK3N0YXRpYyBpbnQgYnVpbGRfaWRfZGVwKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBib29s X3QgaWdub3JlKQoreworICAgIGNvbnN0IHZvaWQgKmlkID0gTlVMTDsKKyAgICBzc2l6ZV90IGxl biA9IDA7CisgICAgaW50IHJjOworICAgIGNvbnN0IGNoYXIgKm5hbWUgPSAiaHlwZXJ2aXNvciI7 CisKKyAgICBBU1NFUlQocGF5bG9hZC0+ZGVwLmxlbiAmJiBwYXlsb2FkLT5kZXAucCk7CisKKyAg ICAvKiBGaXJzdCB0aW1lIHVzZXIgaXMgYWdhaW5zdCBoeXBlcnZpc29yLiAqLworICAgIGlmICgg aWdub3JlIHx8IGxpc3RfZW1wdHkoJmFwcGxpZWRfbGlzdCkgKQorICAgIHsKKyAgICAgICAgcmMg PSB4ZW5fYnVpbGRfaWQoJmlkLCAmbGVuKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAg ICByZXR1cm4gcmM7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qIFdlIHNob3Vs ZCBiZSBhZ2FpbnN0IHRoZSBsYXN0IGFwcGxpZWQgb25lLiAqLworICAgICAgICBzdHJ1Y3QgcGF5 bG9hZCAqZGF0YSA9IGxpc3RfbGFzdF9lbnRyeSgmYXBwbGllZF9saXN0LCBzdHJ1Y3QgcGF5bG9h ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGll ZF9saXN0KTsKKworICAgICAgICBpZCA9IGRhdGEtPmlkLnA7CisgICAgICAgIGxlbiA9IGRhdGEt PmlkLmxlbjsKKyAgICAgICAgbmFtZSA9IGRhdGEtPm5hbWU7CisgICAgfQorCisgICAgaWYgKCBw YXlsb2FkLT5kZXAubGVuICE9IGxlbiB8fAorICAgICAgICAgbWVtY21wKGlkLCBwYXlsb2FkLT5k ZXAucCwgbGVuKSApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgIiVzJXM6 IGNoZWNrIGFnYWluc3QgJXMgYnVpbGQtaWQgZmFpbGVkIVxuIiwKKyAgICAgICAgICAgICAgICBY U1BMSUNFLCBwYXlsb2FkLT5uYW1lLCBuYW1lKTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cisg ICAgfQorICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9z eXNjdGxfeHNwbGljZV9hY3Rpb25fdCAqYWN0aW9uKQogewogICAgIHN0cnVjdCBwYXlsb2FkICpk YXRhOwpAQCAtMTIxMyw2ICsxMjk1LDE4IEBAIHN0YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVu X3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rpb24pCiAgICAgY2FzZSBYU1BMSUNFX0FDVElP Tl9SRVZFUlQ6CiAgICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0gWFNQTElDRV9TVEFURV9BUFBM SUVEICkKICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHBheWxvYWQgKnAgPSBsaXN0X2xh c3RfZW50cnkoJmFwcGxpZWRfbGlzdCwgc3RydWN0IHBheWxvYWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWVkX2xpc3QpOworCisgICAg ICAgICAgICBBU1NFUlQocCk7CisgICAgICAgICAgICAvKiBXZSBzaG91bGQgYmUgdGhlIGxhc3Qg YXBwbGllZCBvbmUuICovCisgICAgICAgICAgICBpZiAoIHAgIT0gZGF0YSApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsICIlcyVzOiBjYW4ndCB1 bmxvYWQuIFRvcCBpcyAlcyFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBk YXRhLT5uYW1lLCBwLT5uYW1lKTsKKyAgICAgICAgICAgICAgICByYyA9IC1FQlVTWTsKKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRhdGEtPnJjID0g LUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBhY3Rpb24tPmNt ZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTIyMSw2ICsxMzE1LDkgQEAgc3Rh dGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlv bikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX0FQUExZOgogICAgICAgICBpZiAoIChkYXRhLT5z dGF0ZSA9PSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQpICkKICAgICAgICAgeworICAgICAgICAgICAg cmMgPSBidWlsZF9pZF9kZXAoZGF0YSwgMCAvKiBhZ2FpbnN0IHRvcCBvbmUuICovKTsKKyAgICAg ICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGF0 YS0+cmMgPSAtRUFHQUlOOwogICAgICAgICAgICAgcmMgPSBzY2hlZHVsZV93b3JrKGRhdGEsIGFj dGlvbi0+Y21kLCBhY3Rpb24tPnRpbWVvdXQpOwogICAgICAgICB9CkBAIC0xMjI5LDYgKzEzMjYs OSBAQCBzdGF0aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb25f dCAqYWN0aW9uKQogICAgIGNhc2UgWFNQTElDRV9BQ1RJT05fUkVQTEFDRToKICAgICAgICAgaWYg KCBkYXRhLT5zdGF0ZSA9PSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQgKQogICAgICAgICB7CisgICAg ICAgICAgICByYyA9IGJ1aWxkX2lkX2RlcChkYXRhLCAxIC8qIGFnYWluc3QgaHlwZXJ2aXNvci4g Ki8pOworICAgICAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICBkYXRhLT5yYyA9IC1FQUdBSU47CiAgICAgICAgICAgICByYyA9IHNjaGVkdWxlX3dv cmsoZGF0YSwgYWN0aW9uLT5jbWQsIGFjdGlvbi0+dGltZW91dCk7CiAgICAgICAgIH0KZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmggYi94ZW4vaW5jbHVkZS94ZW4vdmVyc2lv bi5oCmluZGV4IGE0NjFjODUuLmJjOTIzNzAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi92 ZXJzaW9uLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaApAQCAtMTYsNCArMTYsNyBA QCBjb25zdCBjaGFyICp4ZW5fZGVueSh2b2lkKTsKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KIGlu dCB4ZW5fYnVpbGRfaWQoY29uc3Qgdm9pZCAqKnAsIHNzaXplX3QgKmxlbik7CiAKKyNpbmNsdWRl IDx4ZW4vZWxmc3RydWN0cy5oPgoraW50IHhlbl9idWlsZF9pZF9jaGVjayhjb25zdCBFbGZfTm90 ZSAqbiwgY29uc3Qgdm9pZCAqKnAsIHNzaXplX3QgKmxlbik7CisKICNlbmRpZiAvKiBfX1hFTl9W RVJTSU9OX0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaCBiL3hl bi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKaW5kZXggMTZkMzViOC4uODJiMjBjYSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4veHNwbGlj ZS5oCkBAIC00MCw2ICs0MCwxMSBAQCBzdHJ1Y3QgeHNwbGljZV9zeW1ib2wgewogICAgIGJvb2xf dCBuZXdfc3ltYm9sOwogfTsKIAorc3RydWN0IHhzcGxpY2VfYnVpbGRfaWQgeworICAgY29uc3Qg dm9pZCAqcDsKKyAgIHNzaXplX3QgbGVuOworfTsKKwogaW50IHhzcGxpY2Vfb3Aoc3RydWN0IHhl bl9zeXNjdGxfeHNwbGljZV9vcCAqKTsKIHZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29yayh2b2lk KTsKIGJvb2xfdCBpc19wYXRjaChjb25zdCB2b2lkICphZGRyKTsKLS0gCjIuNS4wCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK