From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 45368C31E5B for ; Wed, 19 Jun 2019 16:03:08 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 05B202187F for ; Wed, 19 Jun 2019 16:03:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="ubSWbqqh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 05B202187F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hdd2u-0006TB-G9; Wed, 19 Jun 2019 16:02:48 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hdd2t-0006T3-9e for xen-devel@lists.xenproject.org; Wed, 19 Jun 2019 16:02:47 +0000 X-Inumbo-ID: aba82f09-92ab-11e9-8980-bc764e045a96 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (unknown [40.107.75.51]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id aba82f09-92ab-11e9-8980-bc764e045a96; Wed, 19 Jun 2019 16:02:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6KB4wbs/mRpb2y8TBpN5CgkxZdOB0jXCtCV/IsaW498=; b=ubSWbqqhII0Q8mm+bpuR84+9TbcvDsSe83ktzq2g7TeDEQqAV39uHZ9XR2OX3/RkPj7ACJwcvQz6FM0oDhNa/OllEuhsws15jy88EVp/KHLdegUdxXcRIZuYEepApv1HW44Xh2DqJIpZVRmxNOqiqbLSKXLiltFJ3LwYC7tqsOE= Received: from DM6PR12MB3515.namprd12.prod.outlook.com (20.179.106.151) by DM6PR12MB3626.namprd12.prod.outlook.com (20.178.199.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.13; Wed, 19 Jun 2019 16:02:38 +0000 Received: from DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0]) by DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0%3]) with mapi id 15.20.1987.014; Wed, 19 Jun 2019 16:02:38 +0000 From: "Woods, Brian" To: Roger Pau Monne Thread-Topic: [PATCH v3 13/13] print: introduce a format specifier for pci_sbdf_t Thread-Index: AQHVHRLEfoAFht6vfUimss8Rd3gDm6ajNquA Date: Wed, 19 Jun 2019 16:02:38 +0000 Message-ID: <20190619160235.GF20907@amd.com> References: <20190607092232.83179-1-roger.pau@citrix.com> <20190607092232.83179-14-roger.pau@citrix.com> In-Reply-To: <20190607092232.83179-14-roger.pau@citrix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: DM5PR07CA0094.namprd07.prod.outlook.com (2603:10b6:4:ae::23) To DM6PR12MB3515.namprd12.prod.outlook.com (2603:10b6:5:18a::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Brian.Woods@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2ac85b3d-073a-46a7-7cfb-08d6f4cf8ce5 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM6PR12MB3626; x-ms-traffictypediagnostic: DM6PR12MB3626: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10; x-forefront-prvs: 0073BFEF03 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(366004)(376002)(346002)(189003)(199004)(305945005)(8676002)(81166006)(81156014)(6246003)(71190400001)(486006)(186003)(25786009)(5660300002)(8936002)(2906002)(71200400001)(53936002)(33656002)(386003)(229853002)(6506007)(26005)(446003)(2616005)(11346002)(6436002)(86362001)(7736002)(72206003)(30864003)(1076003)(6512007)(66066001)(478600001)(316002)(53946003)(6916009)(54906003)(256004)(14444005)(36756003)(14454004)(476003)(4326008)(66556008)(102836004)(64756008)(66476007)(99286004)(7416002)(66946007)(3846002)(73956011)(6116002)(66446008)(52116002)(6486002)(68736007)(76176011)(559001)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB3626; H:DM6PR12MB3515.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: /w0ncMg7TiJbXHMOo+B13hsto7FkJMf8RkiK63RgdmMBREw4W5iVvE9+BDpnGwWbeZTETQ/fNhcm0WABIZBVCzIOdjowM0qWutw1zA7KhTEG5E/XVGwYggYNpxnCwJZ7Cktlw0fqMY89PWLe9GiIu3iM5FKaCb8AV0mAolCEC15Yn60bgN8hlkQC82IEmnMRzlPg2cyFhNgdtrv4tupbhjpYbIp5uOgXkCGMmwfB4WadCcGOJlS+WmzKKnYxfkSHQV1Vn9iG5CBt6pKs4AmmRnnrgQUQniaV6KWrzs1nGfybjwgM/YUs70ztBf8s0RA/dyNRyKBXuzPQR7b4VZN6AGXH2E1ibahmvEK4KpcXasqlR3J449GHwnVR25yZqKsg71wq0FGgMJz1xBqniev2vyJANrhkRWMwBlYYgRmCORM= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ac85b3d-073a-46a7-7cfb-08d6f4cf8ce5 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2019 16:02:38.1589 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: brwoods@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3626 Subject: Re: [Xen-devel] [PATCH v3 13/13] print: introduce a format specifier for pci_sbdf_t X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Stefano Stabellini , "Suthikulpanit, Suravee" , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , "xen-devel@lists.xenproject.org" , "Woods, Brian" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gRnJpLCBKdW4gMDcsIDIwMTkgYXQgMTE6MjI6MzJBTSArMDIwMCwgUm9nZXIgUGF1IE1vbm5l IHdyb3RlOgo+IFRoZSBuZXcgZm9ybWF0IHNwZWNpZmllciBpcyAnJXBwJywgYW5kIHByaW50cyBh IHBjaV9zYmRmX3QgdXNpbmcgdGhlCj4gc2VnOmJ1czpkZXYuZnVuYyBmb3JtYXQuIFJlcGxhY2Ug YWxsIFNCREZzIHByaW50ZWQgdXNpbmcKPiAnJTA0eDolMDJ4OiUwMnguJXUnIHRvIHVzZSB0aGUg bmV3IGZvcm1hdCBzcGVjaWZpZXIuCj4gCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQu Cj4gCj4gU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j b20+CgpBcyBmYXIgYXMgQU1EIElPTU1VCgpBY2tlZC1ieTogQnJpYW4gV29vZHMgPGJyaWFuLndv b2RzQGFtZC5jb20KCj4gLS0tCj4gQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+Cj4gQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNv bT4KPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cj4gQ2M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiBDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4u Z3JhbGxAYXJtLmNvbT4KPiBDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0Bv cmFjbGUuY29tPgo+IENjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5v cmc+Cj4gQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgo+IENjOiBXZWkgTGl1IDx3bEB4ZW4u b3JnPgo+IENjOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBh bWQuY29tPgo+IENjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4KPiBDYzogS2V2 aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBzaW5jZSB2MToK PiAgLSBVc2UgYmFzZSA4IHRvIHByaW50IHRoZSBmdW5jdGlvbiBudW1iZXIuCj4gIC0gU29ydCB0 aGUgYWRkaXRpb24gaW4gdGhlIHBvaW50ZXIgZnVuY3Rpb24gYWxwaGFiZXRpY2FsbHkuCj4gLS0t Cj4gIGRvY3MvbWlzYy9wcmludGstZm9ybWF0cy50eHQgICAgICAgICAgICAgICAgfCAgIDUgKwo+ ICB4ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYyAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCj4g IHhlbi9hcmNoL3g4Ni9tc2kuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKysrLS0t Cj4gIHhlbi9jb21tb24vdnNwcmludGYuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysr Kwo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfYWNwaS5jICAgIHwgIDE3ICsr LQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMgICAgIHwgICA1ICst Cj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYyAgfCAgIDUgKy0K PiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYyAgICB8ICAxMiArLS0K PiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2ludHIuYyAgICB8ICAgOCArLQo+ ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIHwgIDI1ICsrLS0t Cj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgICAgfCAxMTQgKysr KysrKystLS0tLS0tLS0tLS0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYyAg ICAgICAgICB8ICAyNSArKystLQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVt YXAuYyAgICAgIHwgIDExICstCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5j ICAgICAgICAgfCAgODAgKysrKysrLS0tLS0tLS0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL3F1aXJrcy5jICAgICAgICB8ICAyMiArKy0tCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC91dGlscy5jICAgICAgICAgfCAgIDYgKy0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv eDg2L2F0cy5jICAgICAgICAgICB8ICAxMyArLS0KPiAgeGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIu YyAgICAgICAgICAgICAgICAgICB8ICAxMSArLQo+ICB4ZW4vZHJpdmVycy92cGNpL21zaS5jICAg ICAgICAgICAgICAgICAgICAgIHwgICA2ICstCj4gIHhlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jICAg ICAgICAgICAgICAgICAgICAgfCAgMjQgKystLS0KPiAgMjAgZmlsZXMgY2hhbmdlZCwgMTkwIGlu c2VydGlvbnMoKyksIDI2MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZG9jcy9taXNj L3ByaW50ay1mb3JtYXRzLnR4dCBiL2RvY3MvbWlzYy9wcmludGstZm9ybWF0cy50eHQKPiBpbmRl eCAwODBmNDk4ZjY1Li44ZjY2NmY2OTZhIDEwMDY0NAo+IC0tLSBhL2RvY3MvbWlzYy9wcmludGst Zm9ybWF0cy50eHQKPiArKysgYi9kb2NzL21pc2MvcHJpbnRrLWZvcm1hdHMudHh0Cj4gQEAgLTQ4 LDMgKzQ4LDggQEAgRG9tYWluIGFuZCB2Q1BVIGluZm9ybWF0aW9uOgo+ICAgICAgICAgICAgICAg ICBUaGUgZG9tYWluIHBhcnQgYXMgYWJvdmUsIHdpdGggdGhlIHZjcHVfaWQgcHJpbnRlZCBpbiBk ZWNpbWFsLgo+ICAgICAgICAgICAgICAgICAgIGUuZy4gIGQwdjEKPiAgICAgICAgICAgICAgICAg ICAgICAgICBkW0lETEVddjAKPiArCj4gK1BDSToKPiArCj4gKyAgICAgICAlcHAgICAgIFBDSSBk ZXZpY2UgYWRkcmVzcyBpbiBTOkI6RC5GIGZvcm1hdCBmcm9tIGEgcGNpX3NiZGZfdC4KPiArICAg ICAgICAgICAgICAgICBlLmcuICAwMDA0OjAyOjAwLjAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS92bXNpLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwo+IGluZGV4IGFlYjVhNzAx MDQuLjcyOTBiZDU1M2QgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKPiAr KysgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwo+IEBAIC02ODYsMTAgKzY4Niw4IEBAIHN0YXRp YyBpbnQgdnBjaV9tc2lfdXBkYXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MzJf dCBkYXRhLAo+ICAKPiAgICAgICAgICBpZiAoIHJjICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAg ICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsCj4gLSAgICAgICAgICAgICAgICAgICAgICIlMDR4OiUw Mng6JTAyeC4ldTogZmFpbGVkIHRvIGJpbmQgUElSUSAldTogJWRcbiIsCj4gLSAgICAgICAgICAg ICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChwZGV2LT5kZXZmbiksCj4g LSAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBkZXYtPmRldmZuKSwgcGlycSArIGksIHJj KTsKPiArICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIiVwcDogZmFpbGVkIHRvIGJp bmQgUElSUSAldTogJWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBw aXJxICsgaSwgcmMpOwo+ICAgICAgICAgICAgICB3aGlsZSAoIGJpbmQubWFjaGluZV9pcnEtLSA+ IHBpcnEgKQo+ICAgICAgICAgICAgICAgICAgcHRfaXJxX2Rlc3Ryb3lfYmluZChwZGV2LT5kb21h aW4sICZiaW5kKTsKPiAgICAgICAgICAgICAgcmV0dXJuIHJjOwo+IEBAIC03NDMsOSArNzQxLDcg QEAgc3RhdGljIGludCB2cGNpX21zaV9lbmFibGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYs IHVpbnQzMl90IGRhdGEsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1z aV9pbmZvKTsKPiAgICAgIGlmICggcmMgKQo+ICAgICAgewo+IC0gICAgICAgIGdkcHJpbnRrKFhF TkxPR19FUlIsICIlMDR4OiUwMng6JTAyeC4ldTogZmFpbGVkIHRvIG1hcCBQSVJROiAlZFxuIiwK PiAtICAgICAgICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJX1NMT1QocGRldi0+ ZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBkZXYtPmRldmZuKSwgcmMpOwo+ ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICIlcHA6IGZhaWxlZCB0byBtYXAgUElSUTog JWRcbiIsICZwZGV2LT5zYmRmLCByYyk7Cj4gICAgICAgICAgcmV0dXJuIHJjOwo+ICAgICAgfQo+ ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21zaS5jIGIveGVuL2FyY2gveDg2L21zaS5j Cj4gaW5kZXggOWExY2UzM2I0Mi4uMzcyNjM5NGYwMiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94 ODYvbXNpLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbXNpLmMKPiBAQCAtNDI4LDggKzQyOCw4IEBA IHN0YXRpYyBib29sIG1zaV9zZXRfbWFza19iaXQoc3RydWN0IGlycV9kZXNjICpkZXNjLCBib29s IGhvc3QsIGJvb2wgZ3Vlc3QpCj4gICAgICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAgIHBk ZXYtPm1zaXgtPndhcm5lZCA9IGRvbWlkOwo+ICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX1dBUk5JTkcKPiAtICAgICAgICAgICAgICAgICAgICAgICAiY2Fubm90IG1hc2sgSVJRICVk OiBtYXNraW5nIE1TSS1YIG9uIERvbSVkJ3MgJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgZGVzYy0+aXJxLCBkb21pZCwgc2VnLCBidXMsIHNsb3QsIGZ1bmMp Owo+ICsgICAgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgbWFzayBJUlEgJWQ6IG1hc2tpbmcg TVNJLVggb24gRG9tJWQncyAlcHBcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZGVzYy0+ aXJxLCBkb21pZCwgJnBkZXYtPnNiZGYpOwo+ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgfQo+ ICAgICAgICAgIHBkZXYtPm1zaXgtPmhvc3RfbWFza2FsbCA9IG1hc2thbGw7Cj4gQEAgLTk4Nywx MSArOTg3LDExIEBAIHN0YXRpYyBpbnQgbXNpeF9jYXBhYmlsaXR5X2luaXQoc3RydWN0IHBjaV9k ZXYgKmRldiwKPiAgICAgICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGRldi0+ZG9tYWluID86 IGN1cnJkOwo+ICAKPiAgICAgICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJk KSB8fCBkICE9IGN1cnJkICkKPiAtICAgICAgICAgICAgICAgIHByaW50aygiJXMgdXNlIG9mIE1T SS1YIG9uICUwNHg6JTAyeDolMDJ4LiV1IGJ5IERvbSVkXG4iLAo+ICsgICAgICAgICAgICAgICAg cHJpbnRrKCIlcyB1c2Ugb2YgTVNJLVggb24gJXBwIGJ5ICVwZFxuIiwKPiAgICAgICAgICAgICAg ICAgICAgICAgICBpc19oYXJkd2FyZV9kb21haW4oY3VycmQpCj4gICAgICAgICAgICAgICAgICAg ICAgICAgPyBYRU5MT0dfV0FSTklORyAiUG90ZW50aWFsbHkgaW5zZWN1cmUiCj4gICAgICAgICAg ICAgICAgICAgICAgICAgOiBYRU5MT0dfRVJSICJJbnNlY3VyZSIsCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgc2VnLCBidXMsIHNsb3QsIGZ1bmMsIGQtPmRvbWFpbl9pZCk7Cj4gKyAgICAgICAg ICAgICAgICAgICAgICAgJmRldi0+c2JkZiwgZCk7Cj4gICAgICAgICAgICAgIGlmICggIWlzX2hh cmR3YXJlX2RvbWFpbihkKSAmJgo+ICAgICAgICAgICAgICAgICAgIC8qIEFzc3VtZSBhIGRvbWFp biB3aXRob3V0IG1lbW9yeSBoYXMgbm8gbWFwcGluZ3MgeWV0LiAqLwo+ICAgICAgICAgICAgICAg ICAgICghaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJkKSB8fCBkLT50b3RfcGFnZXMpICkKPiBAQCAt MTA0NiwxOCArMTA0NiwxNSBAQCBzdGF0aWMgaW50IF9fcGNpX2VuYWJsZV9tc2koc3RydWN0IG1z aV9pbmZvICptc2ksIHN0cnVjdCBtc2lfZGVzYyAqKmRlc2MpCj4gICAgICBvbGRfZGVzYyA9IGZp bmRfbXNpX2VudHJ5KHBkZXYsIG1zaS0+aXJxLCBQQ0lfQ0FQX0lEX01TSSk7Cj4gICAgICBpZiAo IG9sZF9kZXNjICkKPiAgICAgIHsKPiAtICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiaXJxICVk IGFscmVhZHkgbWFwcGVkIHRvIE1TSSBvbiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAg ICAgICAgICAgbXNpLT5pcnEsIG1zaS0+c2VnLCBtc2ktPmJ1cywKPiAtICAgICAgICAgICAgICAg UENJX1NMT1QobXNpLT5kZXZmbiksIFBDSV9GVU5DKG1zaS0+ZGV2Zm4pKTsKPiArICAgICAgICBw cmludGsoWEVOTE9HX0VSUiAiaXJxICVkIGFscmVhZHkgbWFwcGVkIHRvIE1TSSBvbiAlcHBcbiIs Cj4gKyAgICAgICAgICAgICAgIG1zaS0+aXJxLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgcmV0 dXJuIC1FRVhJU1Q7Cj4gICAgICB9Cj4gIAo+ICAgICAgb2xkX2Rlc2MgPSBmaW5kX21zaV9lbnRy eShwZGV2LCAtMSwgUENJX0NBUF9JRF9NU0lYKTsKPiAgICAgIGlmICggb2xkX2Rlc2MgKQo+ICAg ICAgewo+IC0gICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiTVNJLVggYWxyZWFkeSBpbiB1 c2Ugb24gJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgIG1zaS0+c2VnLCBt c2ktPmJ1cywKPiAtICAgICAgICAgICAgICAgUENJX1NMT1QobXNpLT5kZXZmbiksIFBDSV9GVU5D KG1zaS0+ZGV2Zm4pKTsKPiArICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIk1TSS1YIGFs cmVhZHkgaW4gdXNlIG9uICVwcFxuIiwgJnBkZXYtPnNiZGYpOwo+ICAgICAgICAgIF9fcGNpX2Rp c2FibGVfbXNpeChvbGRfZGVzYyk7Cj4gICAgICB9Cj4gIAo+IEBAIC0xMTE0LDE2ICsxMTExLDE1 IEBAIHN0YXRpYyBpbnQgX19wY2lfZW5hYmxlX21zaXgoc3RydWN0IG1zaV9pbmZvICptc2ksIHN0 cnVjdCBtc2lfZGVzYyAqKmRlc2MpCj4gICAgICBvbGRfZGVzYyA9IGZpbmRfbXNpX2VudHJ5KHBk ZXYsIG1zaS0+aXJxLCBQQ0lfQ0FQX0lEX01TSVgpOwo+ICAgICAgaWYgKCBvbGRfZGVzYyApCj4g ICAgICB7Cj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgImlycSAlZCBhbHJlYWR5IG1hcHBl ZCB0byBNU0ktWCBvbiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgbXNp LT5pcnEsIG1zaS0+c2VnLCBtc2ktPmJ1cywgc2xvdCwgZnVuYyk7Cj4gKyAgICAgICAgcHJpbnRr KFhFTkxPR19FUlIgImlycSAlZCBhbHJlYWR5IG1hcHBlZCB0byBNU0ktWCBvbiAlcHBcbiIsCj4g KyAgICAgICAgICAgICAgIG1zaS0+aXJxLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgcmV0dXJu IC1FRVhJU1Q7Cj4gICAgICB9Cj4gIAo+ICAgICAgb2xkX2Rlc2MgPSBmaW5kX21zaV9lbnRyeShw ZGV2LCAtMSwgUENJX0NBUF9JRF9NU0kpOwo+ICAgICAgaWYgKCBvbGRfZGVzYyApCj4gICAgICB7 Cj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJNU0kgYWxyZWFkeSBpbiB1c2Ugb24g JTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgIG1zaS0+c2VnLCBtc2ktPmJ1 cywgc2xvdCwgZnVuYyk7Cj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJNU0kgYWxy ZWFkeSBpbiB1c2Ugb24gJXBwXG4iLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgX19wY2lfZGlz YWJsZV9tc2kob2xkX2Rlc2MpOwo+ICAgICAgfQo+ICAKPiBAQCAtMTE3MCw5ICsxMTY2LDggQEAg c3RhdGljIHZvaWQgX19wY2lfZGlzYWJsZV9tc2l4KHN0cnVjdCBtc2lfZGVzYyAqZW50cnkpCj4g ICAgICAgICAgd3JpdGVsKDEsIGVudHJ5LT5tYXNrX2Jhc2UgKyBQQ0lfTVNJWF9FTlRSWV9WRUNU T1JfQ1RSTF9PRkZTRVQpOwo+ICAgICAgZWxzZSBpZiAoICEoY29udHJvbCAmIFBDSV9NU0lYX0ZM QUdTX01BU0tBTEwpICkKPiAgICAgIHsKPiAtICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcK PiAtICAgICAgICAgICAgICAgImNhbm5vdCBkaXNhYmxlIElSUSAlZDogbWFza2luZyBNU0ktWCBv biAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgZW50cnktPmlycSwgc2Vn LCBidXMsIHNsb3QsIGZ1bmMpOwo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiY2Fu bm90IGRpc2FibGUgSVJRICVkOiBtYXNraW5nIE1TSS1YIG9uICVwcFxuIiwKPiArICAgICAgICAg ICAgICAgZW50cnktPmlycSwgJmRldi0+c2JkZik7Cj4gICAgICAgICAgbWFza2FsbCA9IHRydWU7 Cj4gICAgICB9Cj4gICAgICBkZXYtPm1zaXgtPmhvc3RfbWFza2FsbCA9IG1hc2thbGw7Cj4gQEAg LTEzMzksNyArMTMzNCw2IEBAIGludCBwY2lfcmVzdG9yZV9tc2lfc3RhdGUoc3RydWN0IHBjaV9k ZXYgKnBkZXYpCj4gICAgICBzdHJ1Y3QgbXNpX2Rlc2MgKmVudHJ5LCAqdG1wOwo+ICAgICAgc3Ry dWN0IGlycV9kZXNjICpkZXNjOwo+ICAgICAgc3RydWN0IG1zaV9tc2cgbXNnOwo+IC0gICAgdTgg c2xvdCA9IFBDSV9TTE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZu KTsKPiAgICAgIHVuc2lnbmVkIGludCB0eXBlID0gMCwgcG9zID0gMDsKPiAgICAgIHUxNiBjb250 cm9sID0gMDsKPiAgCj4gQEAgLTEzNjgsOSArMTM2Miw4IEBAIGludCBwY2lfcmVzdG9yZV9tc2lf c3RhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAgICAgICAgaWYgKGRlc2MtPm1zaV9kZXNj ICE9IGVudHJ5KQo+ICAgICAgICAgIHsKPiAgICAgIGJvZ3VzOgo+IC0gICAgICAgICAgICBkcHJp bnRrKFhFTkxPR19FUlIsCj4gLSAgICAgICAgICAgICAgICAgICAgIlJlc3RvcmUgTVNJIGZvciAl MDR4OiUwMng6JTAyeDoldSBlbnRyeSAldSBub3Qgc2V0P1xuIiwKPiAtICAgICAgICAgICAgICAg ICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgc2xvdCwgZnVuYywgaSk7Cj4gKyAgICAgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgIlJlc3RvcmUgTVNJIGZvciAlcHAgZW50cnkgJXUgbm90IHNl dD9cbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIGkpOwo+ICAgICAgICAg ICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7Cj4gICAgICAg ICAgICAgIGlmICggdHlwZSA9PSBQQ0lfQ0FQX0lEX01TSVggKQo+ICAgICAgICAgICAgICAgICAg cGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zYmRmLCBtc2l4X2NvbnRyb2xfcmVnKHBvcyksCj4gZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vdnNwcmludGYuYyBiL3hlbi9jb21tb24vdnNwcmludGYuYwo+ IGluZGV4IDE4M2QzZWQ0YmIuLjE4NWE0YmQ1NjEgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi92 c3ByaW50Zi5jCj4gKysrIGIveGVuL2NvbW1vbi92c3ByaW50Zi5jCj4gQEAgLTM5NCw2ICszOTQs MjAgQEAgc3RhdGljIGNoYXIgKnByaW50X3ZjcHUoY2hhciAqc3RyLCBjb25zdCBjaGFyICplbmQs IGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQo+ICAgICAgcmV0dXJuIG51bWJlcihzdHIgKyAxLCBlbmQs IHYtPnZjcHVfaWQsIDEwLCAtMSwgLTEsIDApOwo+ICB9Cj4gIAo+ICtzdGF0aWMgY2hhciAqcHJp bnRfcGNpX2FkZHIoY2hhciAqc3RyLCBjb25zdCBjaGFyICplbmQsIGNvbnN0IHBjaV9zYmRmX3Qg KnNiZGYpCj4gK3sKPiArICAgIHN0ciA9IG51bWJlcihzdHIsIGVuZCwgc2JkZi0+c2VnLCAxNiwg NCwgLTEsIFpFUk9QQUQpOwo+ICsgICAgaWYgKCBzdHIgPCBlbmQgKQo+ICsgICAgICAgICpzdHIg PSAnOic7Cj4gKyAgICBzdHIgPSBudW1iZXIoc3RyICsgMSwgZW5kLCBzYmRmLT5idXMsIDE2LCAy LCAtMSwgWkVST1BBRCk7Cj4gKyAgICBpZiAoIHN0ciA8IGVuZCApCj4gKyAgICAgICAgKnN0ciA9 ICc6JzsKPiArICAgIHN0ciA9IG51bWJlcihzdHIgKyAxLCBlbmQsIHNiZGYtPmRldiwgMTYsIDIs IC0xLCBaRVJPUEFEKTsKPiArICAgIGlmICggc3RyIDwgZW5kICkKPiArICAgICAgICAqc3RyID0g Jy4nOwo+ICsgICAgcmV0dXJuIG51bWJlcihzdHIgKyAxLCBlbmQsIHNiZGYtPmZuLCA4LCAtMSwg LTEsIDApOwo+ICt9Cj4gKwo+ICBzdGF0aWMgY2hhciAqcG9pbnRlcihjaGFyICpzdHIsIGNvbnN0 IGNoYXIgKmVuZCwgY29uc3QgY2hhciAqKmZtdF9wdHIsCj4gICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHZvaWQgKmFyZywgaW50IGZpZWxkX3dpZHRoLCBpbnQgcHJlY2lzaW9uLAo+ICAgICAg ICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpCj4gQEAgLTQ3Niw2ICs0OTAsMTAgQEAgc3RhdGlj IGNoYXIgKnBvaW50ZXIoY2hhciAqc3RyLCBjb25zdCBjaGFyICplbmQsIGNvbnN0IGNoYXIgKipm bXRfcHRyLAo+ICAgICAgICAgIH0KPiAgICAgIH0KPiAgCj4gKyAgICBjYXNlICdwJzogLyogUENJ IFNCREYuICovCj4gKyAgICAgICAgKysqZm10X3B0cjsKPiArICAgICAgICByZXR1cm4gcHJpbnRf cGNpX2FkZHIoc3RyLCBlbmQsIGFyZyk7Cj4gKwo+ICAgICAgY2FzZSAncyc6IC8qIFN5bWJvbCBu YW1lIHdpdGggb2Zmc2V0IGFuZCBzaXplIChpZmYgb2Zmc2V0ICE9IDApICovCj4gICAgICBjYXNl ICdTJzogLyogU3ltYm9sIG5hbWUgdW5jb25kaXRpb25hbGx5IHdpdGggb2Zmc2V0IGFuZCBzaXpl ICovCj4gICAgICB7Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9hY3BpLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfYWNwaS5jCj4g aW5kZXggNjRkMTA0ODFkNy4uNWRlMmJmYTdmMyAxMDA2NDQKPiAtLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvaW9tbXVfYWNwaS5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL2lvbW11X2FjcGkuYwo+IEBAIC03MTcsOSArNzE3LDggQEAgc3RhdGljIHUxNiBfX2lu aXQgcGFyc2VfaXZoZF9kZXZpY2Vfc3BlY2lhbCgKPiAgICAgICAgICByZXR1cm4gMDsKPiAgICAg IH0KPiAgCj4gLSAgICBBTURfSU9NTVVfREVCVUcoIklWSEQgU3BlY2lhbDogJTA0eDolMDJ4OiUw MnguJXUgdmFyaWV0eSAlI3ggaGFuZGxlICUjeFxuIiwKPiAtICAgICAgICAgICAgICAgICAgICBz ZWcsIFBDSV9CVVMoYmRmKSwgUENJX1NMT1QoYmRmKSwgUENJX0ZVTkMoYmRmKSwKPiAtICAgICAg ICAgICAgICAgICAgICBzcGVjaWFsLT52YXJpZXR5LCBzcGVjaWFsLT5oYW5kbGUpOwo+ICsgICAg QU1EX0lPTU1VX0RFQlVHKCJJVkhEIFNwZWNpYWw6ICVwcCB2YXJpZXR5ICUjeCBoYW5kbGUgJSN4 XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjIoc2VnLCBiZGYpLCBzcGVjaWFs LT52YXJpZXR5LCBzcGVjaWFsLT5oYW5kbGUpOwo+ICAgICAgYWRkX2l2cnNfbWFwcGluZ19lbnRy eShiZGYsIGJkZiwgc3BlY2lhbC0+aGVhZGVyLmRhdGFfc2V0dGluZywgaW9tbXUpOwo+ICAKPiAg ICAgIHN3aXRjaCAoIHNwZWNpYWwtPnZhcmlldHkgKQo+IEBAIC03NDIsOSArNzQxLDkgQEAgc3Rh dGljIHUxNiBfX2luaXQgcGFyc2VfaXZoZF9kZXZpY2Vfc3BlY2lhbCgKPiAgICAgICAgICBpZiAo IGlkeCA8IG5yX2lvYXBpY19zYmRmICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIEFNRF9J T01NVV9ERUJVRygiSVZIRDogQ29tbWFuZCBsaW5lIG92ZXJyaWRlIHByZXNlbnQgZm9yIElPLUFQ SUMgJSN4Igo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIihJVlJTOiAlI3ggZGV2SUQg JTA0eDolMDJ4OiUwMnguJXUpXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9h cGljX3NiZGZbaWR4XS5pZCwgc3BlY2lhbC0+aGFuZGxlLCBzZWcsCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfQlVTKGJkZiksIFBDSV9TTE9UKGJkZiksIFBDSV9GVU5DKGJkZikp Owo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihJVlJTOiAlI3ggZGV2SUQgJXBwKVxu IiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvYXBpY19zYmRmW2lkeF0uaWQsIHNw ZWNpYWwtPmhhbmRsZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjIo c2VnLCBiZGYpKTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgfQo+ICAKPiBAQCAt ODE0LDkgKzgxMyw5IEBAIHN0YXRpYyB1MTYgX19pbml0IHBhcnNlX2l2aGRfZGV2aWNlX3NwZWNp YWwoCj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgSFBFVF9DTURMOgo+ICAg ICAgICAgICAgICBBTURfSU9NTVVfREVCVUcoIklWSEQ6IENvbW1hbmQgbGluZSBvdmVycmlkZSBw cmVzZW50IGZvciBIUEVUICUjeCAiCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKElW UlM6ICUjeCBkZXZJRCAlMDR4OiUwMng6JTAyeC4ldSlcbiIsCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBocGV0X3NiZGYuaWQsIHNwZWNpYWwtPmhhbmRsZSwgc2VnLCBQQ0lfQlVTKGJk ZiksCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChiZGYpLCBQQ0lfRlVO QyhiZGYpKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoSVZSUzogJSN4IGRldklE ICVwcClcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBocGV0X3NiZGYuaWQsIHNw ZWNpYWwtPmhhbmRsZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjIo c2VnLCBiZGYpKTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgY2FzZSBIUEVUX05P TkU6Cj4gICAgICAgICAgICAgIC8qIHNldCBkZXZpY2UgaWQgb2YgaHBldCAqLwo+IGRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKPiBpbmRleCBhZjNhMWZiODY1Li4zZWViMjE0 YmEzIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9jbWQu Ywo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYwo+IEBAIC0y OTYsOSArMjk2LDggQEAgdm9pZCBhbWRfaW9tbXVfZmx1c2hfaW90bGIodTggZGV2Zm4sIGNvbnN0 IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ICAKPiAgICAgIGlmICggIWlvbW11ICkKPiAgICAgIHsK PiAtICAgICAgICBBTURfSU9NTVVfREVCVUcoIiVzOiBDYW4ndCBmaW5kIGlvbW11IGZvciAlMDR4 OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIHBk ZXYtPnNlZywgcGRldi0+YnVzLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChw ZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7Cj4gKyAgICAgICAgQU1EX0lPTU1V X0RFQlVHKCIlczogQ2FuJ3QgZmluZCBpb21tdSBmb3IgJXBwXG4iLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBfX2Z1bmNfXywgJnBkZXYtPnNiZGYpOwo+ICAgICAgICAgIHJldHVybjsKPiAg ICAgIH0KPiAgCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21t dV9kZXRlY3QuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYwo+ IGluZGV4IDA2OWRmMTU2ZGUuLjhiYmQwZWRkMjIgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X2RldGVjdC5jCj4gQEAgLTE1Miw5ICsxNTIsOCBAQCBpbnQgX19pbml0 IGFtZF9pb21tdV9kZXRlY3Rfb25lX2FjcGkoCj4gIAo+ICAgICAgcnQgPSBwY2lfcm9fZGV2aWNl KGlvbW11LT5zZWcsIGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpOwo+ICAgICAgaWYgKCBydCAp Cj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKPiAtICAgICAgICAgICAgICAgIkNvdWxkIG5v dCBtYXJrIGNvbmZpZyBzcGFjZSBvZiAlMDR4OiUwMng6JTAyeC4ldSByZWFkLW9ubHkgKCVkKVxu IiwKPiAtICAgICAgICAgICAgICAgaW9tbXUtPnNlZywgYnVzLCBkZXYsIGZ1bmMsIHJ0KTsKPiAr ICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiQ291bGQgbm90IG1hcmsgY29uZmlnIHNwYWNlIG9m ICVwcCByZWFkLW9ubHkgKCVkKVxuIiwKPiArICAgICAgICAgICAgICAgJlBDSV9TQkRGMihpb21t dS0+c2VnLCBpb21tdS0+YmRmKSwgcnQpOwo+ICAKPiAgICAgIGxpc3RfYWRkX3RhaWwoJmlvbW11 LT5saXN0LCAmYW1kX2lvbW11X2hlYWQpOwo+ICAgICAgcnQgPSAwOwo+IGRpZmYgLS1naXQgYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwo+IGluZGV4IGQxOTUzMTQ5M2IuLmZhNzk3Y2Y5OTcg MTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwo+ ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKPiBAQCAtNzkz LDkgKzc5Myw4IEBAIHN0YXRpYyBib29sX3QgX19pbml0IHNldF9pb21tdV9pbnRlcnJ1cHRfaGFu ZGxlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKPiAgICAgIHBjaWRldnNfdW5sb2NrKCk7Cj4g ICAgICBpZiAoICFpb21tdS0+bXNpLmRldiApCj4gICAgICB7Cj4gLSAgICAgICAgQU1EX0lPTU1V X0RFQlVHKCJJT01NVTogbm8gcGRldiBmb3IgJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgIGlvbW11LT5zZWcsIFBDSV9CVVMoaW9tbXUtPmJkZiksCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21t dS0+YmRmKSk7Cj4gKyAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJJT01NVTogbm8gcGRldiBmb3Ig JXBwXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYyKGlvbW11LT5zZWcs IGlvbW11LT5iZGYpKTsKPiAgICAgICAgICByZXR1cm4gMDsKPiAgICAgIH0KPiAgICAgIGNvbnRy b2wgPSBwY2lfY29uZl9yZWFkMTYoUENJX1NCREYyKGlvbW11LT5zZWcsIGlvbW11LT5iZGYpLAo+ IEBAIC04MzQsOSArODMzLDYgQEAgc3RhdGljIGJvb2xfdCBfX2luaXQgc2V0X2lvbW11X2ludGVy cnVwdF9oYW5kbGVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQo+ICBzdGF0aWMgdm9pZCBhbWRf aW9tbXVfZXJyYXR1bV83NDZfd29ya2Fyb3VuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKPiAg ewo+ICAgICAgdTMyIHZhbHVlOwo+IC0gICAgdTggYnVzID0gUENJX0JVUyhpb21tdS0+YmRmKTsK PiAtICAgIHU4IGRldiA9IFBDSV9TTE9UKGlvbW11LT5iZGYpOwo+IC0gICAgdTggZnVuYyA9IFBD SV9GVU5DKGlvbW11LT5iZGYpOwo+ICAKPiAgICAgIGlmICggKGJvb3RfY3B1X2RhdGEueDg2ICE9 IDB4MTUpIHx8Cj4gICAgICAgICAgIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA8IDB4MTApIHx8 Cj4gQEAgLTg1NCw4ICs4NTAsOCBAQCBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfZXJyYXR1bV83NDZf d29ya2Fyb3VuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKPiAgCj4gICAgICBwY2lfY29uZl93 cml0ZTMyKFBDSV9TQkRGMihpb21tdS0+c2VnLCBpb21tdS0+YmRmKSwgMHhmNCwgdmFsdWUgfCAo MSA8PCAyKSk7Cj4gICAgICBwcmludGsoWEVOTE9HX0lORk8KPiAtICAgICAgICAgICAiQU1ELVZp OiBBcHBseWluZyBlcnJhdHVtIDc0NiB3b3JrYXJvdW5kIGZvciBJT01NVSBhdCAlMDR4OiUwMng6 JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICBpb21tdS0+c2VnLCBidXMsIGRldiwgZnVuYyk7Cj4g KyAgICAgICAgICAgIkFNRC1WaTogQXBwbHlpbmcgZXJyYXR1bSA3NDYgd29ya2Fyb3VuZCBmb3Ig SU9NTVUgYXQgJXBwXG4iLAo+ICsgICAgICAgICAgICZQQ0lfU0JERjIoaW9tbXUtPnNlZywgaW9t bXUtPmJkZikpOwo+ICAKPiAgICAgIC8qIENsZWFyIHRoZSBlbmFibGUgd3JpdGluZyBiaXQgKi8K PiAgICAgIHBjaV9jb25mX3dyaXRlMzIoUENJX1NCREYyKGlvbW11LT5zZWcsIGlvbW11LT5iZGYp LCAweGYwLCAweDkwKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X2ludHIuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbnRyLmMK PiBpbmRleCBkYTNjM2MxYTQ0Li40ZDYzZDNmYWQ1IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbnRyLmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfaW50ci5jCj4gQEAgLTUxMSw4ICs1MTEsNyBAQCBzdGF0aWMgc3RydWN0 IGFtZF9pb21tdSAqX2ZpbmRfaW9tbXVfZm9yX2RldmljZShpbnQgc2VnLCBpbnQgYmRmKQo+ICAg ICAgaWYgKCBpb21tdSApCj4gICAgICAgICAgcmV0dXJuIGlvbW11Owo+ICAKPiAtICAgIEFNRF9J T01NVV9ERUJVRygiTm8gSU9NTVUgZm9yIE1TSSBkZXYgPSAlMDR4OiUwMng6JTAyeC4ldVxuIiwK PiAtICAgICAgICAgICAgICAgICAgICBzZWcsIFBDSV9CVVMoYmRmKSwgUENJX1NMT1QoYmRmKSwg UENJX0ZVTkMoYmRmKSk7Cj4gKyAgICBBTURfSU9NTVVfREVCVUcoIk5vIElPTU1VIGZvciBNU0kg ZGV2ID0gJXBwXG4iLCAmUENJX1NCREYyKHNlZywgYmRmKSk7Cj4gICAgICByZXR1cm4gRVJSX1BU UigtRUlOVkFMKTsKPiAgfQo+ICAKPiBAQCAtNjg3LDEwICs2ODYsNyBAQCBzdGF0aWMgaW50IGR1 bXBfaW50cmVtYXBfbWFwcGluZyh1MTYgc2VnLCBzdHJ1Y3QgaXZyc19tYXBwaW5ncyAqaXZyc19t YXBwaW5nKQo+ICAgICAgaWYgKCAhaXZyc19tYXBwaW5nICkKPiAgICAgICAgICByZXR1cm4gMDsK PiAgCj4gLSAgICBwcmludGsoIiAgJTA0eDolMDJ4OiUwMng6JXU6XG4iLCBzZWcsCj4gLSAgICAg ICAgICAgUENJX0JVUyhpdnJzX21hcHBpbmctPmR0ZV9yZXF1ZXN0b3JfaWQpLAo+IC0gICAgICAg ICAgIFBDSV9TTE9UKGl2cnNfbWFwcGluZy0+ZHRlX3JlcXVlc3Rvcl9pZCksCj4gLSAgICAgICAg ICAgUENJX0ZVTkMoaXZyc19tYXBwaW5nLT5kdGVfcmVxdWVzdG9yX2lkKSk7Cj4gKyAgICBwcmlu dGsoIiAgJXBwOlxuIiwgJlBDSV9TQkRGMihzZWcsIGl2cnNfbWFwcGluZy0+ZHRlX3JlcXVlc3Rv cl9pZCkpOwo+ICAKPiAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCYoaXZyc19tYXBwaW5nLT5pbnRy ZW1hcF9sb2NrKSwgZmxhZ3MpOwo+ICAgICAgZHVtcF9pbnRyZW1hcF90YWJsZShpdnJzX21hcHBp bmctPmludHJlbWFwX3RhYmxlKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lf YW1kX2lvbW11LmMKPiBpbmRleCBkYzUxZDY2NzY5Li5mNzgzMTI2MmY4IDEwMDY0NAo+IC0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKPiArKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCj4gQEAgLTUyLDkgKzUyLDgg QEAgc3RydWN0IGFtZF9pb21tdSAqZmluZF9pb21tdV9mb3JfZGV2aWNlKGludCBzZWcsIGludCBi ZGYpCj4gICAgICAgICAgICAgICAgICB0bXAuZHRlX3JlcXVlc3Rvcl9pZCA9IGJkZjsKPiAgICAg ICAgICAgICAgaXZyc19tYXBwaW5nc1tiZGZdID0gdG1wOwo+ICAKPiAtICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19XQVJOSU5HICIlMDR4OiUwMng6JTAyeC4ldSBub3QgZm91bmQgaW4gQUNQSSB0 YWJsZXM7Igo+IC0gICAgICAgICAgICAgICAgICAgIiB1c2luZyBzYW1lIElPTU1VIGFzIGZ1bmN0 aW9uIDBcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBzZWcsIFBDSV9CVVMoYmRmKSwgUENJX1NM T1QoYmRmKSwgUENJX0ZVTkMoYmRmKSk7Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FS TklORyAiJXBwIG5vdCBmb3VuZCBpbiBBQ1BJIHRhYmxlczsiCj4gKyAgICAgICAgICAgICAgICAg ICAiIHVzaW5nIHNhbWUgSU9NTVUgYXMgZnVuY3Rpb24gMFxuIiwgJlBDSV9TQkRGMihzZWcsIGJk ZikpOwo+ICAKPiAgICAgICAgICAgICAgLyogd3JpdGUgaW9tbXUgZmllbGQgbGFzdCAqLwo+ICAg ICAgICAgICAgICBpdnJzX21hcHBpbmdzW2JkZl0uaW9tbXUgPSBpdnJzX21hcHBpbmdzW2JkMF0u aW9tbXU7Cj4gQEAgLTMyNCw5ICszMjMsOCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZShz dHJ1Y3QgZG9tYWluICpzb3VyY2UsIHN0cnVjdCBkb21haW4gKnRhcmdldCwKPiAgICAgICAgICBy ZXR1cm4gcmM7Cj4gIAo+ICAgICAgYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UodGFyZ2V0 LCBpb21tdSwgZGV2Zm4sIHBkZXYpOwo+IC0gICAgQU1EX0lPTU1VX0RFQlVHKCJSZS1hc3NpZ24g JTA0eDolMDJ4OiUwMnguJXUgZnJvbSBkb20lZCB0byBkb20lZFxuIiwKPiAtICAgICAgICAgICAg ICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhk ZXZmbiksCj4gLSAgICAgICAgICAgICAgICAgICAgc291cmNlLT5kb21haW5faWQsIHRhcmdldC0+ ZG9tYWluX2lkKTsKPiArICAgIEFNRF9JT01NVV9ERUJVRygiUmUtYXNzaWduICVwcCBmcm9tIGRv bSVkIHRvIGRvbSVkXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBzb3Vy Y2UtPmRvbWFpbl9pZCwgdGFyZ2V0LT5kb21haW5faWQpOwo+ICAKPiAgICAgIHJldHVybiAwOwo+ ICB9Cj4gQEAgLTQzMSwxNSArNDI5LDEyIEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X2FkZF9kZXZp Y2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICAgICAgICAgIGlmICggcGRldi0+ dHlwZSA9PSBERVZfVFlQRV9QQ0lfSE9TVF9CUklER0UgJiYKPiAgICAgICAgICAgICAgIGlzX2hh cmR3YXJlX2RvbWFpbihwZGV2LT5kb21haW4pICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAgICAg IEFNRF9JT01NVV9ERUJVRygiU2tpcHBpbmcgaG9zdCBicmlkZ2UgJTA0eDolMDJ4OiUwMnguJXVc biIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywg UENJX1NMT1QoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMo ZGV2Zm4pKTsKPiArICAgICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJTa2lwcGluZyBob3N0IGJy aWRnZSAlcHBcbiIsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gICAg ICAgICAgfQo+ICAKPiAtICAgICAgICBBTURfSU9NTVVfREVCVUcoIk5vIGlvbW11IGZvciAlMDR4 OiUwMng6JTAyeC4ldTsgY2Fubm90IGJlIGhhbmRlZCB0byBkJWRcbiIsCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9G VU5DKGRldmZuKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21h aW5faWQpOwo+ICsgICAgICAgIEFNRF9JT01NVV9ERUJVRygiTm8gaW9tbXUgZm9yICVwcDsgY2Fu bm90IGJlIGhhbmRlZCB0byBkJWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICZwZGV2 LT5zYmRmLCBwZGV2LT5kb21haW4tPmRvbWFpbl9pZCk7Cj4gICAgICAgICAgcmV0dXJuIC1FTk9E RVY7Cj4gICAgICB9Cj4gIAo+IEBAIC00NTgsMTAgKzQ1Myw4IEBAIHN0YXRpYyBpbnQgYW1kX2lv bW11X3JlbW92ZV9kZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICAgICAg aW9tbXUgPSBmaW5kX2lvbW11X2Zvcl9kZXZpY2UocGRldi0+c2VnLCBiZGYpOwo+ICAgICAgaWYg KCAhaW9tbXUgKQo+ICAgICAgewo+IC0gICAgICAgIEFNRF9JT01NVV9ERUJVRygiRmFpbCB0byBm aW5kIGlvbW11LiIKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIiAlMDR4OiUwMng6JTAyeC4l dSBjYW5ub3QgYmUgcmVtb3ZlZCBmcm9tIGRvbSVkXG4iLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm biksCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkKTsK PiArICAgICAgICBBTURfSU9NTVVfREVCVUcoIkZhaWwgdG8gZmluZCBpb21tdS4gJXBwIGNhbm5v dCBiZSByZW1vdmVkIGZyb20gJXBkXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAmcGRl di0+c2JkZiwgcGRldi0+ZG9tYWluKTsKPiAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiAgICAg IH0KPiAgCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKPiBpbmRleCA1MjcxZjhkNjljLi4zZjgwMDk3ZjUz IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCj4gKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKPiBAQCAtMjM4LDExICsyMzgsNyBAQCBzdGF0aWMg dm9pZCBjaGVja19wZGV2KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICAgICAgKFBDSV9T VEFUVVNfUEFSSVRZIHwgUENJX1NUQVRVU19TSUdfVEFSR0VUX0FCT1JUIHwgXAo+ICAgICAgIFBD SV9TVEFUVVNfUkVDX1RBUkdFVF9BQk9SVCB8IFBDSV9TVEFUVVNfUkVDX01BU1RFUl9BQk9SVCB8 IFwKPiAgICAgICBQQ0lfU1RBVFVTX1NJR19TWVNURU1fRVJST1IgfCBQQ0lfU1RBVFVTX0RFVEVD VEVEX1BBUklUWSkKPiAtICAgIHUxNiBzZWcgPSBwZGV2LT5zZWc7Cj4gLSAgICB1OCBidXMgPSBw ZGV2LT5idXM7Cj4gLSAgICB1OCBkZXYgPSBQQ0lfU0xPVChwZGV2LT5kZXZmbik7Cj4gLSAgICB1 OCBmdW5jID0gUENJX0ZVTkMocGRldi0+ZGV2Zm4pOwo+IC0gICAgdTE2IHZhbDsKPiArICAgICB1 MTYgdmFsOwo+ICAKPiAgICAgIGlmICggY29tbWFuZF9tYXNrICkKPiAgICAgIHsKPiBAQCAtMjUy LDggKzI0OCw4IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3BkZXYoY29uc3Qgc3RydWN0IHBjaV9kZXYg KnBkZXYpCj4gICAgICAgICAgdmFsID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9T VEFUVVMpOwo+ICAgICAgICAgIGlmICggdmFsICYgUENJX1NUQVRVU19DSEVDSyApCj4gICAgICAg ICAgewo+IC0gICAgICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIiUwNHg6JTAyeDolMDJ4LiV1 IHN0YXR1cyAlMDR4IC0+ICUwNHhcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywg ZGV2LCBmdW5jLCB2YWwsIHZhbCAmIH5QQ0lfU1RBVFVTX0NIRUNLKTsKPiArICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19JTkZPICIlcHAgc3RhdHVzICUwNHggLT4gJTA0eFxuIiwKPiArICAgICAg ICAgICAgICAgICAgICZwZGV2LT5zYmRmLCB2YWwsIHZhbCAmIH5QQ0lfU1RBVFVTX0NIRUNLKTsK PiAgICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zYmRmLCBQQ0lfU1RBVFVTLCB2 YWwgJiBQQ0lfU1RBVFVTX0NIRUNLKTsKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gQEAgLTI3MCw5 ICsyNjYsOCBAQCBzdGF0aWMgdm9pZCBjaGVja19wZGV2KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQo+ICAgICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfU0VD X1NUQVRVUyk7Cj4gICAgICAgICAgaWYgKCB2YWwgJiBQQ0lfU1RBVFVTX0NIRUNLICkKPiAgICAg ICAgICB7Cj4gLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTwo+IC0gICAgICAgICAgICAg ICAgICAgIiUwNHg6JTAyeDolMDJ4LiV1IHNlY29uZGFyeSBzdGF0dXMgJTA0eCAtPiAlMDR4XG4i LAo+IC0gICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIGRldiwgZnVuYywgdmFsLCB2YWwgJiB+ UENJX1NUQVRVU19DSEVDSyk7Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiJXBw IHNlY29uZGFyeSBzdGF0dXMgJTA0eCAtPiAlMDR4XG4iLAo+ICsgICAgICAgICAgICAgICAgICAg JnBkZXYtPnNiZGYsIHZhbCwgdmFsICYgflBDSV9TVEFUVVNfQ0hFQ0spOwo+ICAgICAgICAgICAg ICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYsIFBDSV9TRUNfU1RBVFVTLAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhbCAmIFBDSV9TVEFUVVNfQ0hFQ0spOwo+ICAgICAgICAg IH0KPiBAQCAtNDExLDggKzQwNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldiAqYWxsb2NfcGRl dihzdHJ1Y3QgcGNpX3NlZyAqcHNlZywgdTggYnVzLCB1OCBkZXZmbikKPiAgICAgICAgICAgICAg YnJlYWs7Cj4gIAo+ICAgICAgICAgIGRlZmF1bHQ6Cj4gLSAgICAgICAgICAgIHByaW50ayhYRU5M T0dfV0FSTklORyAiJTA0eDolMDJ4OiUwMnguJXU6IHVua25vd24gdHlwZSAlZFxuIiwKPiAtICAg ICAgICAgICAgICAgICAgIHBzZWctPm5yLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMo ZGV2Zm4pLCBwZGV2LT50eXBlKTsKPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H ICIlcHA6IHVua25vd24gdHlwZSAlZFxuIiwKPiArICAgICAgICAgICAgICAgICAgICZwZGV2LT5z YmRmLCBwZGV2LT50eXBlKTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gIAo+IEBA IC02NDQsOSArNjM5LDkgQEAgdW5zaWduZWQgaW50IHBjaV9zaXplX21lbV9iYXIocGNpX3NiZGZf dCBzYmRmLCB1bnNpZ25lZCBpbnQgcG9zLAo+ICAgICAgICAgIGlmICggZmxhZ3MgJiBQQ0lfQkFS X0xBU1QgKQo+ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H Cj4gLSAgICAgICAgICAgICAgICAgICAiJXNkZXZpY2UgJTA0eDolMDJ4OiUwMnguJXUgd2l0aCA2 NC1iaXQgJXNCQVIgaW4gbGFzdCBzbG90XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgKGZsYWdz ICYgUENJX0JBUl9WRikgPyAiU1ItSU9WICIgOiAiIiwgc2JkZi5zZWcsIHNiZGYuYnVzLAo+IC0g ICAgICAgICAgICAgICAgICAgc2JkZi5kZXYsIHNiZGYuZm4sIChmbGFncyAmIFBDSV9CQVJfVkYp ID8gInZmICIgOiAiIik7Cj4gKyAgICAgICAgICAgICAgICAgICAiJXNkZXZpY2UgJXBwIHdpdGgg NjQtYml0ICVzQkFSIGluIGxhc3Qgc2xvdFxuIiwKPiArICAgICAgICAgICAgICAgICAgIChmbGFn cyAmIFBDSV9CQVJfVkYpID8gIlNSLUlPViAiIDogIiIsICZzYmRmLAo+ICsgICAgICAgICAgICAg ICAgICAgKGZsYWdzICYgUENJX0JBUl9WRikgPyAidmYgIiA6ICIiKTsKPiAgICAgICAgICAgICAg KnBzaXplID0gMDsKPiAgICAgICAgICAgICAgcmV0dXJuIDE7Cj4gICAgICAgICAgfQo+IEBAIC03 NTAsOSArNzQ1LDggQEAgaW50IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2 Zm4sCj4gICAgICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfU1BBQ0VfSU8gKQo+ ICAgICAgICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0df V0FSTklORwo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAiU1ItSU9WIGRldmljZSAlMDR4 OiUwMng6JTAyeC4ldSB3aXRoIHZmIEJBUiV1Igo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAiIGluIElPIHNwYWNlXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1 cywgc2xvdCwgZnVuYywgaSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTUi1JT1Yg ZGV2aWNlICVwcCB3aXRoIHZmIEJBUiV1IGluIElPIHNwYWNlXG4iLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgaSk7Cj4gICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7Cj4gICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgICAgICByZXQgPSBwY2lf c2l6ZV9tZW1fYmFyKHNiZGYsIGlkeCwgTlVMTCwgJnBkZXYtPnZmX3JsZW5baV0sCj4gQEAgLTc2 NCwxMCArNzU4LDggQEAgaW50IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2 Zm4sCj4gICAgICAgICAgICAgIH0KPiAgICAgICAgICB9Cj4gICAgICAgICAgZWxzZQo+IC0gICAg ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKPiAtICAgICAgICAgICAgICAgICAgICJTUi1J T1YgZGV2aWNlICUwNHg6JTAyeDolMDJ4LiV1IGhhcyBpdHMgdmlydHVhbCIKPiAtICAgICAgICAg ICAgICAgICAgICIgZnVuY3Rpb25zIGFscmVhZHkgZW5hYmxlZCAoJTA0eClcbiIsCj4gLSAgICAg ICAgICAgICAgICAgICBzZWcsIGJ1cywgc2xvdCwgZnVuYywgY3RybCk7Cj4gKyAgICAgICAgICAg IHByaW50ayhYRU5MT0dfV0FSTklORyAiU1ItSU9WIGRldmljZSAlcHAgaGFzIGl0cyB2aXJ0dWFs Igo+ICsgICAgICAgICAgICAgICAgICAgIiBmdW5jdGlvbnMgYWxyZWFkeSBlbmFibGVkICglMDR4 KVxuIiwgJnBkZXYtPnNiZGYsIGN0cmwpOwo+ICAgICAgfQo+ICAKPiAgICAgIGNoZWNrX3BkZXYo cGRldik7Cj4gQEAgLTc5NCwxNSArNzg2LDE0IEBAIG91dDoKPiAgICAgIHBjaWRldnNfdW5sb2Nr KCk7Cj4gICAgICBpZiAoICFyZXQgKQo+ICAgICAgewo+IC0gICAgICAgIHByaW50ayhYRU5MT0df REVCVUcgIlBDSSBhZGQgJXMgJTA0eDolMDJ4OiUwMnguJXVcbiIsIHBkZXZfdHlwZSwKPiAtICAg ICAgICAgICAgICAgc2VnLCBidXMsIHNsb3QsIGZ1bmMpOwo+ICsgICAgICAgIHByaW50ayhYRU5M T0dfREVCVUcgIlBDSSBhZGQgJXMgJXBwXG4iLCBwZGV2X3R5cGUsICAmcGRldi0+c2JkZik7Cj4g ICAgICAgICAgd2hpbGUgKCBwZGV2LT5waGFudG9tX3N0cmlkZSApCj4gICAgICAgICAgewo+ICAg ICAgICAgICAgICBmdW5jICs9IHBkZXYtPnBoYW50b21fc3RyaWRlOwo+ICAgICAgICAgICAgICBp ZiAoIFBDSV9TTE9UKGZ1bmMpICkKPiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgICAg ICAgICBwcmludGsoWEVOTE9HX0RFQlVHICJQQ0kgcGhhbnRvbSAlMDR4OiUwMng6JTAyeC4ldVxu IiwKPiAtICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBzbG90LCBmdW5jKTsKPiArICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiUENJIHBoYW50b20gJXBwXG4iLAo+ICsgICAgICAg ICAgICAgICAgICAgJlBDSV9TQkRGKHNlZywgYnVzLCBzbG90LCBmdW5jKSk7Cj4gICAgICAgICAg fQo+ICAgICAgfQo+ICAgICAgcmV0dXJuIHJldDsKPiBAQCAtODMxLDkgKzgyMiw4IEBAIGludCBw Y2lfcmVtb3ZlX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQo+ICAgICAgICAgICAg ICBpZiAoIHBkZXYtPmRvbWFpbiApCj4gICAgICAgICAgICAgICAgICBsaXN0X2RlbCgmcGRldi0+ ZG9tYWluX2xpc3QpOwo+ICAgICAgICAgICAgICBwY2lfY2xlYW51cF9tc2kocGRldik7Cj4gKyAg ICAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIlBDSSByZW1vdmUgZGV2aWNlICVwcFxuIiwg JnBkZXYtPnNiZGYpOwo+ICAgICAgICAgICAgICBmcmVlX3BkZXYocHNlZywgcGRldik7Cj4gLSAg ICAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIlBDSSByZW1vdmUgZGV2aWNlICUwNHg6JTAy eDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRl dmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAg fQo+ICAKPiBAQCAtOTA3LDkgKzg5Nyw4IEBAIGludCBwY2lfcmVsZWFzZV9kZXZpY2VzKHN0cnVj dCBkb21haW4gKmQpCj4gICAgICAgICAgYnVzID0gcGRldi0+YnVzOwo+ICAgICAgICAgIGRldmZu ID0gcGRldi0+ZGV2Zm47Cj4gICAgICAgICAgaWYgKCBkZWFzc2lnbl9kZXZpY2UoZCwgcGRldi0+ c2VnLCBidXMsIGRldmZuKSApCj4gLSAgICAgICAgICAgIHByaW50aygiZG9tYWluICVkOiBkZWFz c2lnbiBkZXZpY2UgKCUwNHg6JTAyeDolMDJ4LiV1KSBmYWlsZWQhXG4iLAo+IC0gICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCBwZGV2LT5zZWcsIGJ1cywKPiAtICAgICAgICAgICAgICAg ICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICAgICAgcHJp bnRrKCJkb21haW4gJWQ6IGRlYXNzaWduIGRldmljZSAoJXBwKSBmYWlsZWQhXG4iLAo+ICsgICAg ICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCAmcGRldi0+c2JkZik7Cj4gICAgICB9Cj4gICAg ICBwY2lkZXZzX3VubG9jaygpOwo+ICAKPiBAQCAtMTA1Niw4ICsxMDQ1LDggQEAgc3RhdGljIGlu dCBfX2luaXQgX3NjYW5fcGNpX2RldmljZXMoc3RydWN0IHBjaV9zZWcgKnBzZWcsIHZvaWQgKmFy ZykKPiAgICAgICAgICAgICAgICAgIHBkZXYgPSBhbGxvY19wZGV2KHBzZWcsIGJ1cywgUENJX0RF VkZOKGRldiwgZnVuYykpOwo+ICAgICAgICAgICAgICAgICAgaWYgKCAhcGRldiApCj4gICAgICAg ICAgICAgICAgICB7Cj4gLSAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H ICIlMDR4OiUwMng6JTAyeC4ldTogYWxsb2NfcGRldiBmYWlsZWRcbiIsCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBzZWctPm5yLCBidXMsIGRldiwgZnVuYyk7Cj4gKyAgICAgICAgICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICIlcHA6IGFsbG9jX3BkZXYgZmFpbGVkXG4i LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYocHNlZy0+bnIsIGJ1cywg ZGV2LCBmdW5jKSk7Cj4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gICAg ICAgICAgICAgICAgICB9Cj4gIAo+IEBAIC0xMDk4LDkgKzEwODcsOCBAQCBzdGF0aWMgdm9pZCBf X2h3ZG9tX2luaXQgc2V0dXBfb25lX2h3ZG9tX2RldmljZShjb25zdCBzdHJ1Y3Qgc2V0dXBfaHdk b20gKmN0eHQsCj4gICAgICAgICAgZXJyID0gY3R4dC0+aGFuZGxlcihkZXZmbiwgcGRldik7Cj4g ICAgICAgICAgaWYgKCBlcnIgKQo+ICAgICAgICAgIHsKPiAtICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19FUlIgInNldHVwICUwNHg6JTAyeDolMDJ4LiV1IGZvciBkJWQgZmFpbGVkICglZClcbiIs Cj4gLSAgICAgICAgICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJX1NMT1QoZGV2 Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCj4gLSAgICAgICAgICAgICAgICAgICBjdHh0LT5kLT5kb21h aW5faWQsIGVycik7Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJzZXR1cCAlcHAg Zm9yIGQlZCBmYWlsZWQgKCVkKVxuIiwKPiArICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRm LCBjdHh0LT5kLT5kb21haW5faWQsIGVycik7Cj4gICAgICAgICAgICAgIGlmICggZGV2Zm4gPT0g cGRldi0+ZGV2Zm4gKQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ICAgICAgICAgIH0KPiBA QCAtMTE0MSw5ICsxMTI5LDggQEAgc3RhdGljIGludCBfX2h3ZG9tX2luaXQgX3NldHVwX2h3ZG9t X3BjaV9kZXZpY2VzKHN0cnVjdCBwY2lfc2VnICpwc2VnLCB2b2lkICphcmcKPiAgICAgICAgICAg ICAgICAgIHBkZXYtPmRvbWFpbiA9IGRvbV94ZW47Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAg ICAgICAgZWxzZSBpZiAoIHBkZXYtPmRvbWFpbiAhPSBjdHh0LT5kICkKPiAtICAgICAgICAgICAg ICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiRG9tJWQgb3duaW5nICUwNHg6JTAyeDolMDJ4LiV1 P1xuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21haW4tPmRvbWFpbl9pZCwg cHNlZy0+bnIsIGJ1cywKPiAtICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZmbiks IFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J TkcgIkRvbSVkIG93bmluZyAlcHA/XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgIHBkZXYt PmRvbWFpbi0+ZG9tYWluX2lkLCAmcGRldi0+c2JkZik7Cj4gIAo+ICAgICAgICAgICAgICBpZiAo IGlvbW11X3ZlcmJvc2UgKQo+ICAgICAgICAgICAgICB7Cj4gQEAgLTEyNzksMTAgKzEyNjYsOCBA QCBzdGF0aWMgaW50IF9kdW1wX3BjaV9kZXZpY2VzKHN0cnVjdCBwY2lfc2VnICpwc2VnLCB2b2lk ICphcmcpCj4gIAo+ICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHBkZXYsICZwc2VnLT5hbGxk ZXZzX2xpc3QsIGFsbGRldnNfbGlzdCApCj4gICAgICB7Cj4gLSAgICAgICAgcHJpbnRrKCIlMDR4 OiUwMng6JTAyeC4ldSAtIGRvbSAlLTNkIC0gbm9kZSAlLTNkIC0gTVNJcyA8ICIsCj4gLSAgICAg ICAgICAgICAgIHBzZWctPm5yLCBwZGV2LT5idXMsCj4gLSAgICAgICAgICAgICAgIFBDSV9TTE9U KHBkZXYtPmRldmZuKSwgUENJX0ZVTkMocGRldi0+ZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICBw ZGV2LT5kb21haW4gPyBwZGV2LT5kb21haW4tPmRvbWFpbl9pZCA6IC0xLAo+ICsgICAgICAgIHBy aW50aygiJXBwIC0gZG9tICUtM2QgLSBub2RlICUtM2QgLSBNU0lzIDwgIiwKPiArICAgICAgICAg ICAgICAgJnBkZXYtPnNiZGYsIHBkZXYtPmRvbWFpbiA/IHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lk IDogLTEsCj4gICAgICAgICAgICAgICAgIChwZGV2LT5ub2RlICE9IE5VTUFfTk9fTk9ERSkgPyBw ZGV2LT5ub2RlIDogLTEpOwo+ICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBtc2ksICZw ZGV2LT5tc2lfbGlzdCwgbGlzdCApCj4gICAgICAgICAgICAgICAgIHByaW50aygiJWQgIiwgbXNp LT5pcnEpOwo+IEBAIC0xMzQ3LDggKzEzMzIsOCBAQCBzdGF0aWMgaW50IGlvbW11X2FkZF9kZXZp Y2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAgICAgICAgICAgIHJldHVybiAwOwo+ICAgICAg ICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+YWRkX2RldmljZShkZXZmbiwgcGNpX3RvX2Rldihw ZGV2KSk7Cj4gICAgICAgICAgaWYgKCByYyApCj4gLSAgICAgICAgICAgIHByaW50ayhYRU5MT0df V0FSTklORyAiSU9NTVU6IGFkZCAlMDR4OiUwMng6JTAyeC4ldSBmYWlsZWQgKCVkKVxuIiwKPiAt ICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiks IFBDSV9GVU5DKGRldmZuKSwgcmMpOwo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J TkcgIklPTU1VOiBhZGQgJXBwIGZhaWxlZCAoJWQpXG4iLAo+ICsgICAgICAgICAgICAgICAgICAg JnBkZXYtPnNiZGYsIHJjKTsKPiAgICAgIH0KPiAgfQo+ICAKPiBAQCAtMTM5Miw4ICsxMzc3LDcg QEAgc3RhdGljIGludCBpb21tdV9yZW1vdmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ ICAgICAgICAgIGlmICggIXJjICkKPiAgICAgICAgICAgICAgY29udGludWU7Cj4gIAo+IC0gICAg ICAgIHByaW50ayhYRU5MT0dfRVJSICJJT01NVTogcmVtb3ZlICUwNHg6JTAyeDolMDJ4LiV1IGZh aWxlZCAoJWQpXG4iLAo+IC0gICAgICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJ X1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksIHJjKTsKPiArICAgICAgICBwcmludGsoWEVO TE9HX0VSUiAiSU9NTVU6IHJlbW92ZSAlcHAgZmFpbGVkICglZClcbiIsICZwZGV2LT5zYmRmLCBy Yyk7Cj4gICAgICAgICAgcmV0dXJuIHJjOwo+ICAgICAgfQo+ICAKPiBAQCAtMTQ2Myw5ICsxNDQ3 LDggQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUxNiBzZWcs IHU4IGJ1cywgdTggZGV2Zm4sIHUzMiBmbGFnKQo+ICAgICAgICAgICAgICBicmVhazsKPiAgICAg ICAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmFzc2lnbl9kZXZpY2UoZCwgZGV2Zm4sIHBjaV90 b19kZXYocGRldiksIGZsYWcpOwo+ICAgICAgICAgIGlmICggcmMgKQo+IC0gICAgICAgICAgICBw cmludGsoWEVOTE9HX0dfV0FSTklORyAiZCVkOiBhc3NpZ24gJTA0eDolMDJ4OiUwMnguJXUgZmFp bGVkICglZClcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHNlZywgYnVz LCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKPiAtICAgICAgICAgICAgICAgICAg IHJjKTsKPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcgImQlZDogYXNzaWdu ICVwcCBmYWlsZWQgKCVkKVxuIiwKPiArICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwg JlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pLCByYyk7Cj4gICAgICB9Cj4gIAo+ICAgZG9uZToK PiBAQCAtMTUwMSw4ICsxNDg0LDggQEAgaW50IGRlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWlu ICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQo+ICAgICAgICAgIGlmICggIXJldCApCj4g ICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICAKPiAtICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJS ICJkJWQ6IGRlYXNzaWduICUwNHg6JTAyeDolMDJ4LiV1IGZhaWxlZCAoJWQpXG4iLAo+IC0gICAg ICAgICAgICAgICBkLT5kb21haW5faWQsIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9G VU5DKGRldmZuKSwgcmV0KTsKPiArICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJkJWQ6IGRl YXNzaWduICVwcCBmYWlsZWQgKCVkKVxuIiwKPiArICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lk LCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbiksIHJldCk7Cj4gICAgICAgICAgcmV0dXJuIHJl dDsKPiAgICAgIH0KPiAgCj4gQEAgLTE1MTEsOSArMTQ5NCw4IEBAIGludCBkZWFzc2lnbl9kZXZp Y2Uoc3RydWN0IGRvbWFpbiAqZCwgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfdG9fZGV2KHBkZXYpKTsK PiAgICAgIGlmICggcmV0ICkKPiAgICAgIHsKPiAtICAgICAgICBkcHJpbnRrKFhFTkxPR19HX0VS UiwKPiAtICAgICAgICAgICAgICAgICJkJWQ6IGRlYXNzaWduIGRldmljZSAoJTA0eDolMDJ4OiUw MnguJXUpIGZhaWxlZFxuIiwKPiAtICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgc2VnLCBi dXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICBkcHJpbnRr KFhFTkxPR19HX0VSUiwgImQlZDogZGVhc3NpZ24gZGV2aWNlICglcHApIGZhaWxlZFxuIiwKPiAr ICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgJnBkZXYtPnNiZGYpOwo+ICAgICAgICAgIHJl dHVybiByZXQ7Cj4gICAgICB9Cj4gIAo+IEBAIC0xNTkwLDEwICsxNTcyLDggQEAgdm9pZCBpb21t dV9kZXZfaW90bGJfZmx1c2hfdGltZW91dChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcGNpX2Rl diAqcGRldikKPiAgICAgIF9wY2lfaGlkZV9kZXZpY2UocGRldik7Cj4gIAo+ICAgICAgaWYgKCAh ZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQo+IC0gICAgICAgIHBy aW50ayhYRU5MT0dfRVJSCj4gLSAgICAgICAgICAgICAgICJkb20lZDogQVRTIGRldmljZSAlMDR4 OiUwMng6JTAyeC4ldSBmbHVzaCBmYWlsZWRcbiIsCj4gLSAgICAgICAgICAgICAgIGQtPmRvbWFp bl9pZCwgcGRldi0+c2VnLCBwZGV2LT5idXMsIFBDSV9TTE9UKHBkZXYtPmRldmZuKSwKPiAtICAg ICAgICAgICAgICAgUENJX0ZVTkMocGRldi0+ZGV2Zm4pKTsKPiArICAgICAgICBwcmludGsoWEVO TE9HX0VSUiAiZG9tJWQ6IEFUUyBkZXZpY2UgJXBwIGZsdXNoIGZhaWxlZFxuIiwKPiArICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCAmcGRldi0+c2JkZik7Cj4gICAgICBpZiAoICFpc19oYXJk d2FyZV9kb21haW4oZCkgKQo+ICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKPiAgCj4gQEAgLTE2 ODIsOSArMTY2Miw4IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKAo+ICAgICAgICAgIHsKPiAg ICAgICAgICAgICAgaWYgKCByZXQgKQo+ICAgICAgICAgICAgICB7Cj4gLSAgICAgICAgICAgICAg ICBwcmludGsoWEVOTE9HX0dfSU5GTwo+IC0gICAgICAgICAgICAgICAgICAgICAgICIlMDR4OiUw Mng6JTAyeC4ldSBhbHJlYWR5IGFzc2lnbmVkLCBvciBub24tZXhpc3RlbnRcbiIsCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2 Zm4pKTsKPiArICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPICIlcHAgYWxyZWFk eSBhc3NpZ25lZCwgb3Igbm9uLWV4aXN0ZW50XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7Cj4gICAgICAgICAgICAgICAgICByZXQgPSAt RUlOVkFMOwo+ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgIGJyZWFrOwo+IEBAIC0xNjk2 LDkgKzE2NzUsOCBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bCgKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgiLCB1X2RvbWN0bCk7Cj4gICAgICAg ICAgZWxzZSBpZiAoIHJldCApCj4gICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIlhF Tl9ET01DVExfYXNzaWduX2RldmljZTogIgo+IC0gICAgICAgICAgICAgICAgICAgImFzc2lnbiAl MDR4OiUwMng6JTAyeC4ldSB0byBkb20lZCBmYWlsZWQgKCVkKVxuIiwKPiAtICAgICAgICAgICAg ICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKPiAtICAg ICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmV0KTsKPiArICAgICAgICAgICAgICAgICAg ICJhc3NpZ24gJXBwIHRvIGRvbSVkIGZhaWxlZCAoJWQpXG4iLAo+ICsgICAgICAgICAgICAgICAg ICAgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pLCBkLT5kb21haW5faWQsIHJldCk7Cj4gIAo+ ICAgICAgICAgIGJyZWFrOwo+ICAKPiBAQCAtMTczMiwxMCArMTcxMCw4IEBAIGludCBpb21tdV9k b19wY2lfZG9tY3RsKAo+ICAgICAgICAgIHJldCA9IGRlYXNzaWduX2RldmljZShkLCBzZWcsIGJ1 cywgZGV2Zm4pOwo+ICAgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7Cj4gICAgICAgICAgaWYgKCBy ZXQgKQo+IC0gICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSCj4gLSAgICAgICAgICAgICAg ICAgICAiZGVhc3NpZ24gJTA0eDolMDJ4OiUwMnguJXUgZnJvbSBkb20lZCBmYWlsZWQgKCVkKVxu IiwKPiAtICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9G VU5DKGRldmZuKSwKPiAtICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmV0KTsKPiAr ICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiZGVhc3NpZ24gJXBwIGZyb20gZG9tJWQg ZmFpbGVkICglZClcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAmUENJX1NCREYzKHNlZywgYnVz LCBkZXZmbiksIGQtPmRvbWFpbl9pZCwgcmV0KTsKPiAgCj4gICAgICAgICAgYnJlYWs7Cj4gIAo+ IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYwo+IGluZGV4IDljOTRkZWFjMGIuLjRjMGQyZjY2 NzIgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYwo+ICsr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmMKPiBAQCAtMzYxLDkgKzM2MSw4 IEBAIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2VfZGV2X3Njb3BlKAo+ICAgICAgICAgICAg ICBzdWJfYnVzID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoc2VnLCBidXMsIHBhdGgtPmRldiwg cGF0aC0+Zm4pLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NV Qk9SRElOQVRFX0JVUyk7Cj4gICAgICAgICAgICAgIGlmICggaW9tbXVfdmVyYm9zZSApCj4gLSAg ICAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYCj4gLSAgICAgICAgICAgICAgICAgICAgICAg IiBicmlkZ2U6ICUwNHg6JTAyeDolMDJ4LiV1IHN0YXJ0PSV4IHNlYz0leCBzdWI9JXhcbiIsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4sCj4g KyAgICAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIgYnJpZGdlOiAlcHAgc3RhcnQ9JXgg c2VjPSV4IHN1Yj0leFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYoc2Vn LCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4pLAo+ICAgICAgICAgICAgICAgICAgICAgICAgIGFj cGlfc2NvcGUtPmJ1cywgc2VjX2J1cywgc3ViX2J1cyk7Cj4gIAo+ICAgICAgICAgICAgICBkbWFy X3Njb3BlX2FkZF9idXNlcyhzY29wZSwgc2VjX2J1cywgc3ViX2J1cyk7Cj4gQEAgLTM3MSw4ICsz NzAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBhY3BpX3BhcnNlX2Rldl9zY29wZSgKPiAgCj4gICAg ICAgICAgY2FzZSBBQ1BJX0RNQVJfU0NPUEVfVFlQRV9IUEVUOgo+ICAgICAgICAgICAgICBpZiAo IGlvbW11X3ZlcmJvc2UgKQo+IC0gICAgICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiIE1T SSBIUEVUOiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBz ZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbik7Cj4gKyAgICAgICAgICAgICAgICBwcmludGso VlREUFJFRklYICIgTVNJIEhQRVQ6ICVwcFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAm UENJX1NCREYoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4pKTsKPiAgCj4gICAgICAgICAg ICAgIGlmICggZHJoZCApCj4gICAgICAgICAgICAgIHsKPiBAQCAtMzkzLDggKzM5Miw4IEBAIHN0 YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2VfZGV2X3Njb3BlKAo+ICAKPiAgICAgICAgICBjYXNl IEFDUElfRE1BUl9TQ09QRV9UWVBFX0VORFBPSU5UOgo+ICAgICAgICAgICAgICBpZiAoIGlvbW11 X3ZlcmJvc2UgKQo+IC0gICAgICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiIGVuZHBvaW50 OiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1 cywgcGF0aC0+ZGV2LCBwYXRoLT5mbik7Cj4gKyAgICAgICAgICAgICAgICBwcmludGsoVlREUFJF RklYICIgZW5kcG9pbnQ6ICVwcFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NC REYoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4pKTsKPiAgCj4gICAgICAgICAgICAgIGlm ICggZHJoZCApCj4gICAgICAgICAgICAgIHsKPiBAQCAtNDA3LDggKzQwNiw4IEBAIHN0YXRpYyBp bnQgX19pbml0IGFjcGlfcGFyc2VfZGV2X3Njb3BlKAo+ICAKPiAgICAgICAgICBjYXNlIEFDUElf RE1BUl9TQ09QRV9UWVBFX0lPQVBJQzoKPiAgICAgICAgICAgICAgaWYgKCBpb21tdV92ZXJib3Nl ICkKPiAtICAgICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiBJT0FQSUM6ICUwNHg6JTAy eDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBwYXRoLT5k ZXYsIHBhdGgtPmZuKTsKPiArICAgICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiBJT0FQ SUM6ICVwcFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYoc2VnLCBidXMs IHBhdGgtPmRldiwgcGF0aC0+Zm4pKTsKPiAgCj4gICAgICAgICAgICAgIGlmICggZHJoZCApCj4g ICAgICAgICAgICAgIHsKPiBAQCAtNTM3LDggKzUzNiw4IEBAIGFjcGlfcGFyc2Vfb25lX2RyaGQo c3RydWN0IGFjcGlfZG1hcl9oZWFkZXIgKmhlYWRlcikKPiAgCj4gICAgICAgICAgICAgIGlmICgg IXBjaV9kZXZpY2VfZGV0ZWN0KGRyaGQtPnNlZ21lbnQsIGIsIGQsIGYpICkKPiAgICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKPiAtICAgICAgICAgICAgICAg ICAgICAgICAiIE5vbi1leGlzdGVudCBkZXZpY2UgKCUwNHg6JTAyeDolMDJ4LiV1KSBpbiB0aGlz IERSSEQncyBzY29wZSFcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgZHJoZC0+c2VnbWVu dCwgYiwgZCwgZik7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIiBOb24tZXhpc3RlbnQgZGV2 aWNlICglcHApIGluIHRoaXMgRFJIRCdzIHNjb3BlIVxuIiwKPiArICAgICAgICAgICAgICAgICAg ICAgICAmUENJX1NCREYoZHJoZC0+c2VnbWVudCwgYiwgZCwgZikpOwo+ICAgICAgICAgIH0KPiAg Cj4gICAgICAgICAgYWNwaV9yZWdpc3Rlcl9kcmhkX3VuaXQoZG1hcnUpOwo+IEBAIC01NzQsOSAr NTczLDkgQEAgc3RhdGljIGludCByZWdpc3Rlcl9vbmVfcm1ycihzdHJ1Y3QgYWNwaV9ybXJyX3Vu aXQgKnJtcnJ1KQo+ICAgICAgICAgIGlmICggcGNpX2RldmljZV9kZXRlY3Qocm1ycnUtPnNlZ21l bnQsIGIsIGQsIGYpID09IDAgKQo+ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgZHByaW50ayhY RU5MT0dfV0FSTklORyBWVERQUkVGSVgsCj4gLSAgICAgICAgICAgICAgICAgICAgIiBOb24tZXhp c3RlbnQgZGV2aWNlICglMDR4OiUwMng6JTAyeC4ldSkgaXMgcmVwb3J0ZWQiCj4gKyAgICAgICAg ICAgICAgICAgICAgIiBOb24tZXhpc3RlbnQgZGV2aWNlICglcHApIGlzIHJlcG9ydGVkIgo+ICAg ICAgICAgICAgICAgICAgICAgICIgaW4gUk1SUiAoJSJQUkl4NjQiLCAlIlBSSXg2NCIpJ3Mgc2Nv cGUhXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgIHJtcnJ1LT5zZWdtZW50LCBiLCBkLCBmLAo+ ICsgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihybXJydS0+c2VnbWVudCwgYiwgZCwgZiks Cj4gICAgICAgICAgICAgICAgICAgICAgcm1ycnUtPmJhc2VfYWRkcmVzcywgcm1ycnUtPmVuZF9h ZGRyZXNzKTsKPiAgICAgICAgICAgICAgaWdub3JlID0gdHJ1ZTsKPiAgICAgICAgICB9Cj4gZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMKPiBpbmRleCBkZjBlOGFjNWNiLi45Yjg2 ZmE4YmI3IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1h cC5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMKPiBAQCAt NTI0LDE2ICs1MjQsMTMgQEAgc3RhdGljIHZvaWQgc2V0X21zaV9zb3VyY2VfaWQoc3RydWN0IHBj aV9kZXYgKnBkZXYsIHN0cnVjdCBpcmVtYXBfZW50cnkgKmlyZSkKPiAgICAgICAgICB9Cj4gICAg ICAgICAgZWxzZQo+ICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJ WCwKPiAtICAgICAgICAgICAgICAgICAgICAiZCVkOiBubyB1cHN0cmVhbSBicmlkZ2UgZm9yICUw NHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFpbi0+ ZG9tYWluX2lkLAo+IC0gICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgImQlZDogbm8gdXBz dHJlYW0gYnJpZGdlIGZvciAlcHBcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9t YWluLT5kb21haW5faWQsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICBicmVhazsKPiAgCj4gICAg ICBkZWZhdWx0Ogo+IC0gICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYLAo+ IC0gICAgICAgICAgICAgICAgImQlZDogdW5rbm93bigldSk6ICUwNHg6JTAyeDolMDJ4LiV1XG4i LAo+IC0gICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5faWQsIHBkZXYtPnR5cGUs Cj4gLSAgICAgICAgICAgICAgICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhk ZXZmbikpOwo+ICsgICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYLCAiZCVk OiB1bmtub3duKCV1KTogJXBwXG4iLAo+ICsgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5k b21haW5faWQsIHBkZXYtPnR5cGUsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICBicmVhazsKPiAg ICAgfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21t dS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKPiBpbmRleCA4YjI3ZDdl Nzc1Li4xODhmZjQzN2Q4IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKPiBA QCAtODgyLDI3ICs4ODIsMjQgQEAgc3RhdGljIGludCBpb21tdV9wYWdlX2ZhdWx0X2RvX29uZShz dHJ1Y3QgaW9tbXUgKmlvbW11LCBpbnQgdHlwZSwKPiAgICAgIHsKPiAgICAgIGNhc2UgRE1BX1JF TUFQOgo+ICAgICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAo+IC0gICAg ICAgICAgICAgICAiRE1BUjpbJXNdIFJlcXVlc3QgZGV2aWNlIFslMDR4OiUwMng6JTAyeC4ldV0g Igo+ICsgICAgICAgICAgICAgICAiRE1BUjpbJXNdIFJlcXVlc3QgZGV2aWNlIFslcHBdICIKPiAg ICAgICAgICAgICAgICAgImZhdWx0IGFkZHIgJSJQUkl4NjQiLCBpb21tdSByZWcgPSAlcFxuIiwK PiAgICAgICAgICAgICAgICAgKHR5cGUgPyAiRE1BIFJlYWQiIDogIkRNQSBXcml0ZSIpLAo+IC0g ICAgICAgICAgICAgICBzZWcsIFBDSV9CVVMoc291cmNlX2lkKSwgUENJX1NMT1Qoc291cmNlX2lk KSwKPiAtICAgICAgICAgICAgICAgUENJX0ZVTkMoc291cmNlX2lkKSwgYWRkciwgaW9tbXUtPnJl Zyk7Cj4gKyAgICAgICAgICAgICAgICZQQ0lfU0JERjIoc2VnLCBzb3VyY2VfaWQpLCBhZGRyLCBp b21tdS0+cmVnKTsKPiAgICAgICAgICBraW5kID0gIkRNQVIiOwo+ICAgICAgICAgIGJyZWFrOwo+ ICAgICAgY2FzZSBJTlRSX1JFTUFQOgo+ICAgICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5H IFZURFBSRUZJWAo+IC0gICAgICAgICAgICAgICAiSU5UUi1SRU1BUDogUmVxdWVzdCBkZXZpY2Ug WyUwNHg6JTAyeDolMDJ4LiV1XSAiCj4gKyAgICAgICAgICAgICAgICJJTlRSLVJFTUFQOiBSZXF1 ZXN0IGRldmljZSBbJXBwXSAiCj4gICAgICAgICAgICAgICAgICJmYXVsdCBpbmRleCAlIlBSSXg2 NCIsIGlvbW11IHJlZyA9ICVwXG4iLAo+IC0gICAgICAgICAgICAgICBzZWcsIFBDSV9CVVMoc291 cmNlX2lkKSwgUENJX1NMT1Qoc291cmNlX2lkKSwKPiAtICAgICAgICAgICAgICAgUENJX0ZVTkMo c291cmNlX2lkKSwgYWRkciA+PiA0OCwgaW9tbXUtPnJlZyk7Cj4gKyAgICAgICAgICAgICAgICZQ Q0lfU0JERjIoc2VnLCBzb3VyY2VfaWQpLCBhZGRyID4+IDQ4LCBpb21tdS0+cmVnKTsKPiAgICAg ICAgICBraW5kID0gIklOVFItUkVNQVAiOwo+ICAgICAgICAgIGJyZWFrOwo+ICAgICAgZGVmYXVs dDoKPiAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyBWVERQUkVGSVgKPiAtICAgICAg ICAgICAgICAgIlVOS05PV046IFJlcXVlc3QgZGV2aWNlIFslMDR4OiUwMng6JTAyeC4ldV0gIgo+ ICsgICAgICAgICAgICAgICAiVU5LTk9XTjogUmVxdWVzdCBkZXZpY2UgWyVwcF0gIgo+ICAgICAg ICAgICAgICAgICAiZmF1bHQgYWRkciAlIlBSSXg2NCIsIGlvbW11IHJlZyA9ICVwXG4iLAo+IC0g ICAgICAgICAgICAgICBzZWcsIFBDSV9CVVMoc291cmNlX2lkKSwgUENJX1NMT1Qoc291cmNlX2lk KSwKPiAtICAgICAgICAgICAgICAgUENJX0ZVTkMoc291cmNlX2lkKSwgYWRkciwgaW9tbXUtPnJl Zyk7Cj4gKyAgICAgICAgICAgICAgICZQQ0lfU0JERjIoc2VnLCBzb3VyY2VfaWQpLCBhZGRyLCBp b21tdS0+cmVnKTsKPiAgICAgICAgICBraW5kID0gIlVOS05PV04iOwo+ICAgICAgICAgIGJyZWFr Owo+ICAgICAgfQo+IEBAIC0xMzU0LDExICsxMzUxLDkgQEAgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmdfb25lKAo+ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgaWYgKCBwZGV2LT5kb21haW4g IT0gZG9tYWluICkKPiAgICAgICAgICAgICAgewo+IC0gICAgICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19HX0lORk8gVlREUFJFRklYCj4gLSAgICAgICAgICAgICAgICAgICAgICAgImQlZDogJTA0 eDolMDJ4OiUwMnguJXUgb3duZWQgYnkgZCVkISIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ZG9tYWluLT5kb21haW5faWQsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBD SV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAgICAg IHBkZXYtPmRvbWFpbiA/IHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkIDogLTEpOwo+ICsgICAgICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8gVlREUFJFRklYICIlcGQ6ICVwcCBvd25lZCBi eSAlcGQhIiwKPiArICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2Vn LCBidXMsIGRldmZuKSwKPiArICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21haW4gPzog TlVMTCk7Cj4gICAgICAgICAgICAgICAgICByZXMgPSAtRUlOVkFMOwo+ICAgICAgICAgICAgICB9 Cj4gICAgICAgICAgfQo+IEBAIC0xMzcwLDE4ICsxMzY1LDE1IEBAIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZSgKPiAgICAgICAgICAgICAgaWYgKCBjZG9tYWluIDwgMCApCj4gICAgICAg ICAgICAgIHsKPiAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBS RUZJWAo+IC0gICAgICAgICAgICAgICAgICAgICAgICJkJWQ6ICUwNHg6JTAyeDolMDJ4LiV1IG1h cHBlZCwgYnV0IGNhbid0IGZpbmQgb3duZXIhXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQ Q0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIiVwZDogJXBwIG1hcHBlZCwgYnV0IGNhbid0IGZpbmQgb3duZXIhXG4iLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKPiAg ICAgICAgICAgICAgICAgIHJlcyA9IC1FSU5WQUw7Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAg ICAgICAgZWxzZSBpZiAoIGNkb21haW4gIT0gZG9tYWluLT5kb21haW5faWQgKQo+ICAgICAgICAg ICAgICB7Cj4gICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfSU5GTyBWVERQUkVGSVgK PiAtICAgICAgICAgICAgICAgICAgICAgICAiZCVkOiAlMDR4OiUwMng6JTAyeC4ldSBhbHJlYWR5 IG1hcHBlZCB0byBkJWQhIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCwKPiAtICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4p LCBQQ0lfRlVOQyhkZXZmbiksCj4gLSAgICAgICAgICAgICAgICAgICAgICAgY2RvbWFpbik7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgIiVwZDogJXBwIGFscmVhZHkgbWFwcGVkIHRvIGQlZCEi LAo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywg ZGV2Zm4pLCBjZG9tYWluKTsKPiAgICAgICAgICAgICAgICAgIHJlcyA9IC1FSU5WQUw7Cj4gICAg ICAgICAgICAgIH0KPiAgICAgICAgICB9Cj4gQEAgLTE0OTYsOSArMTQ4OCw4IEBAIHN0YXRpYyBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZu LAo+ICAgICAgewo+ICAgICAgY2FzZSBERVZfVFlQRV9QQ0lfSE9TVF9CUklER0U6Cj4gICAgICAg ICAgaWYgKCBpb21tdV9kZWJ1ZyApCj4gLSAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggImQl ZDpIb3N0YnJpZGdlOiBza2lwICUwNHg6JTAyeDolMDJ4LiV1IG1hcFxuIiwKPiAtICAgICAgICAg ICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKPiAtICAgICAgICAgICAgICAg ICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICAgICAgcHJp bnRrKFZURFBSRUZJWCAiJXBkOkhvc3RicmlkZ2U6IHNraXAgJXBwIG1hcFxuIiwKPiArICAgICAg ICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKPiAgICAg ICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZG9tYWluKSApCj4gICAgICAgICAgICAgIHJl dHVybiAtRVBFUk07Cj4gICAgICAgICAgYnJlYWs7Cj4gQEAgLTE1MTAsOSArMTUwMSw4IEBAIHN0 YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4 IGRldmZuLAo+ICAKPiAgICAgIGNhc2UgREVWX1RZUEVfUENJZV9FTkRQT0lOVDoKPiAgICAgICAg ICBpZiAoIGlvbW11X2RlYnVnICkKPiAtICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVk OlBDSWU6IG1hcCAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKPiAtICAgICAgICAgICAgICAgICAgIFBDSV9TTE9U KGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJ WCAiJXBkOlBDSWU6IG1hcCAlcHBcbiIsCj4gKyAgICAgICAgICAgICAgICAgICBkb21haW4sICZQ Q0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7Cj4gICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2KTsKPiAgICAgICAgICBpZiAo ICFyZXQgJiYgZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgYXRzX2RldmljZShwZGV2LCBkcmhkKSA+ IDAgKQo+IEBAIC0xNTIyLDkgKzE1MTIsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmcoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwKPiAgCj4gICAgICBjYXNlIERF Vl9UWVBFX1BDSToKPiAgICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKPiAtICAgICAgICAgICAg cHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSTogbWFwICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0g ICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVzLAo+IC0gICAgICAg ICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAgICAg ICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJOiBtYXAgJXBwXG4iLAo+ICsgICAgICAgICAg ICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwo+ICAKPiAgICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11 LCBidXMsIGRldmZuLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBkZXYpOwo+IEBAIC0xNTUwLDkgKzE1MzksOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwKPiAgICAgICAgICBicmVh azsKPiAgCj4gICAgICBkZWZhdWx0Ogo+IC0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQ UkVGSVgsICJkJWQ6dW5rbm93bigldSk6ICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAg ICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHBkZXYtPnR5cGUsCj4gLSAgICAgICAgICAgICAg ICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6dW5rbm93bigldSk6ICVwcFxuIiwK PiArICAgICAgICAgICAgICAgIGRvbWFpbiwgcGRldi0+dHlwZSwgJlBDSV9TQkRGMyhzZWcsIGJ1 cywgZGV2Zm4pKTsKPiAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ICAgICAgICAgIGJyZWFrOwo+ ICAgICAgfQo+IEBAIC0xNjQ3LDkgKzE2MzUsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sCj4gICAgICB7Cj4gICAgICBj YXNlIERFVl9UWVBFX1BDSV9IT1NUX0JSSURHRToKPiAgICAgICAgICBpZiAoIGlvbW11X2RlYnVn ICkKPiAtICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOkhvc3RicmlkZ2U6IHNraXAg JTA0eDolMDJ4OiUwMnguJXUgdW5tYXBcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBkb21haW4t PmRvbWFpbl9pZCwgc2VnLCBidXMsCj4gLSAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiVw ZDpIb3N0YnJpZGdlOiBza2lwICVwcCB1bm1hcFxuIiwKPiArICAgICAgICAgICAgICAgICAgIGRv bWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKPiAgICAgICAgICBpZiAoICFpc19o YXJkd2FyZV9kb21haW4oZG9tYWluKSApCj4gICAgICAgICAgICAgIHJldHVybiAtRVBFUk07Cj4g ICAgICAgICAgZ290byBvdXQ7Cj4gQEAgLTE2NjEsOSArMTY0OCw4IEBAIHN0YXRpYyBpbnQgZG9t YWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwKPiAgCj4g ICAgICBjYXNlIERFVl9UWVBFX1BDSWVfRU5EUE9JTlQ6Cj4gICAgICAgICAgaWYgKCBpb21tdV9k ZWJ1ZyApCj4gLSAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggImQlZDpQQ0llOiB1bm1hcCAl MDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLCBzZWcsIGJ1cywKPiAtICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJ X0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOlBDSWU6 IHVubWFwICVwcFxuIiwKPiArICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhz ZWcsIGJ1cywgZGV2Zm4pKTsKPiAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9v bmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbik7Cj4gICAgICAgICAgaWYgKCAhcmV0ICYmIGRl dmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkKPiAgICAg ICAgICAgICAgZGlzYWJsZV9hdHNfZGV2aWNlKHBkZXYpOwo+IEBAIC0xNjcyLDggKzE2NTgsOCBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwg dTggZGV2Zm4sCj4gIAo+ICAgICAgY2FzZSBERVZfVFlQRV9QQ0k6Cj4gICAgICAgICAgaWYgKCBp b21tdV9kZWJ1ZyApCj4gLSAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggImQlZDpQQ0k6IHVu bWFwICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgZG9tYWluLT5k b21haW5faWQsIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Cj4g KyAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiVwZDpQQ0k6IHVubWFwICVwcFxuIiwKPiAr ICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsK PiAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwg YnVzLCBkZXZmbik7Cj4gICAgICAgICAgaWYgKCByZXQgKQo+ICAgICAgICAgICAgICBicmVhazsK PiBAQCAtMTY5OCw5ICsxNjg0LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChz dHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZuLAo+ICAgICAgICAgIGJyZWFrOwo+ICAKPiAg ICAgIGRlZmF1bHQ6Cj4gLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCwgImQl ZDp1bmtub3duKCV1KTogJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICBk b21haW4tPmRvbWFpbl9pZCwgcGRldi0+dHlwZSwKPiAtICAgICAgICAgICAgICAgIHNlZywgYnVz LCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgZHByaW50ayhY RU5MT0dfRVJSIFZURFBSRUZJWCwgIiVwZDp1bmtub3duKCV1KTogJXBwXG4iLAo+ICsgICAgICAg ICAgICAgICAgZG9tYWluLCBwZGV2LT50eXBlLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikp Owo+ICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gICAgICAgICAgZ290byBvdXQ7Cj4gICAgICB9 Cj4gQEAgLTI0OTcsMTIgKzI0ODIsMTEgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3NpZ25f ZGV2aWNlKAo+ICAgICAgICAgICAgICBib29sX3QgcmVsYXhlZCA9ICEhKGZsYWcgJiBYRU5fRE9N Q1RMX0RFVl9SRE1fUkVMQVhFRCk7Cj4gIAo+ICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dV RVNUICIlcyIgVlREUFJFRklYCj4gLSAgICAgICAgICAgICAgICAgICAiIEl0J3MgJXMgdG8gYXNz aWduICUwNHg6JTAyeDolMDJ4LiV1Igo+IC0gICAgICAgICAgICAgICAgICAgIiB3aXRoIHNoYXJl ZCBSTVJSIGF0ICUiUFJJeDY0IiBmb3IgRG9tJWQuXG4iLAo+ICsgICAgICAgICAgICAgICAgICAg IiBJdCdzICVzIHRvIGFzc2lnbiAlcHAiCj4gKyAgICAgICAgICAgICAgICAgICAiIHdpdGggc2hh cmVkIFJNUlIgYXQgJSJQUkl4NjQiIGZvciAlcGQuXG4iLAo+ICAgICAgICAgICAgICAgICAgICAg cmVsYXhlZCA/IFhFTkxPR19XQVJOSU5HIDogWEVOTE9HX0VSUiwKPiAgICAgICAgICAgICAgICAg ICAgIHJlbGF4ZWQgPyAicmlza3kiIDogImRpc2FsbG93ZWQiLAo+IC0gICAgICAgICAgICAgICAg ICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAg ICAgICAgICAgICAgcm1yci0+YmFzZV9hZGRyZXNzLCBkLT5kb21haW5faWQpOwo+ICsgICAgICAg ICAgICAgICAgICAgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pLCBybXJyLT5iYXNlX2FkZHJl c3MsIGQpOwo+ICAgICAgICAgICAgICBpZiAoICFyZWxheGVkICkKPiAgICAgICAgICAgICAgICAg IHJldHVybiAtRVBFUk07Cj4gICAgICAgICAgfQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvcXVpcmtzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVp cmtzLmMKPiBpbmRleCBiNmUyZDMxM2YwLi40NTgwMjM5YWE2IDEwMDY0NAo+IC0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9xdWlya3MuYwo+IEBAIC00MTcsOCArNDE3LDYgQEAgdm9pZCBwY2lfdnRkX3F1 aXJrKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICB7Cj4gICAgICBpbnQgc2VnID0gcGRl di0+c2VnOwo+ICAgICAgaW50IGJ1cyA9IHBkZXYtPmJ1czsKPiAtICAgIGludCBkZXYgPSBQQ0lf U0xPVChwZGV2LT5kZXZmbik7Cj4gLSAgICBpbnQgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZu KTsKPiAgICAgIGludCBwb3M7Cj4gICAgICBib29sX3QgZmY7Cj4gICAgICB1MzIgdmFsLCB2YWwy Owo+IEBAIC00NDIsOCArNDQwLDcgQEAgdm9pZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBw Y2lfZGV2ICpwZGV2KQo+ICAgICAgY2FzZSAweDNjMjg6IC8qIFNhbmR5YnJpZGdlICovCj4gICAg ICAgICAgdmFsID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIDB4MUFDKTsKPiAgICAgICAg ICBwY2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIDB4MUFDLCB2YWwgfCAoMSA8PCAzMSkpOwo+ IC0gICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiTWFza2VkIFZULWQgZXJyb3Igc2lnbmFsaW5n IG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICBzZWcsIGJ1cywgZGV2 LCBmdW5jKTsKPiArICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIk1hc2tlZCBWVC1kIGVycm9y IHNpZ25hbGluZyBvbiAlcHBcbiIsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICBicmVhazsKPiAg Cj4gICAgICAvKiBUeWxlcnNidXJnIChFUCkvQm94Ym9ybyAoTVApIGNoaXBzZXRzIChOSE0tRVAv RVgsIFdTTS1FUC9FWCkgKi8KPiBAQCAtNDc4LDggKzQ3NSw3IEBAIHZvaWQgcGNpX3Z0ZF9xdWly ayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICAgICAgICAgZmYgPSBwY2llX2Fl cl9nZXRfZmlybXdhcmVfZmlyc3QocGRldik7Cj4gICAgICAgICAgaWYgKCAhcG9zICkKPiAgICAg ICAgICB7Cj4gLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiJTA0eDolMDJ4OiUw MnguJXUgd2l0aG91dCBBRVIgY2FwYWJpbGl0eT9cbiIsCj4gLSAgICAgICAgICAgICAgICAgICBz ZWcsIGJ1cywgZGV2LCBmdW5jKTsKPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H ICIlcHAgd2l0aG91dCBBRVIgY2FwYWJpbGl0eT9cbiIsICZwZGV2LT5zYmRmKTsKPiAgICAgICAg ICAgICAgYnJlYWs7Cj4gICAgICAgICAgfQo+ICAKPiBAQCAtNTAyLDggKzQ5OCw3IEBAIHZvaWQg cGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICAgICB2YWwg PSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgMHgyMGMpOwo+ICAgICAgICAgIHBjaV9jb25m X3dyaXRlMzIocGRldi0+c2JkZiwgMHgyMGMsIHZhbCB8ICgxIDw8IDQpKTsKPiAgCj4gLSAgICAg ICAgcHJpbnRrKFhFTkxPR19JTkZPICIlcyBVUiBzaWduYWxpbmcgb24gJTA0eDolMDJ4OiUwMngu JXVcbiIsCj4gLSAgICAgICAgICAgICAgIGFjdGlvbiwgc2VnLCBidXMsIGRldiwgZnVuYyk7Cj4g KyAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPICIlcyBVUiBzaWduYWxpbmcgb24gJXBwXG4iLCBh Y3Rpb24sICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICBicmVhazsKPiAgCj4gICAgICBjYXNlIDB4 MDA0MDogY2FzZSAweDAwNDQ6IGNhc2UgMHgwMDQ4OiAvKiBOZWhhbGVtL1dlc3RtZXJlICovCj4g QEAgLTUyOCwxNiArNTIzLDE1IEBAIHZvaWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldikKPiAgICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgX19zZXRfYml0 KDB4MWM4ICogOCArIDIwLCB2YSk7Cj4gICAgICAgICAgICAgICAgICBpb3VubWFwKHZhKTsKPiAt ICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiTWFza2VkIFVSIHNpZ25hbGluZyBv biAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1 cywgZGV2LCBmdW5jKTsKPiArICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiTWFz a2VkIFVSIHNpZ25hbGluZyBvbiAlcHBcbiIsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICAgICAg fQo+ICAgICAgICAgICAgICBlbHNlCj4gLSAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VS UiAiQ291bGQgbm90IG1hcCAlIlBSSXBhZGRyIiBmb3IgJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgcGEsIHNlZywgYnVzLCBkZXYsIGZ1bmMpOwo+ICsgICAg ICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIkNvdWxkIG5vdCBtYXAgJSJQUklwYWRkciIg Zm9yICVwcFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICBwYSwgJnBkZXYtPnNiZGYpOwo+ ICAgICAgICAgIH0KPiAgICAgICAgICBlbHNlCj4gLSAgICAgICAgICAgIHByaW50ayhYRU5MT0df V0FSTklORyAiQm9ndXMgRE1JQkFSICUjIlBSSXg2NCIgb24gJTA0eDolMDJ4OiUwMnguJXVcbiIs Cj4gLSAgICAgICAgICAgICAgICAgICBiYXIsIHNlZywgYnVzLCBkZXYsIGZ1bmMpOwo+ICsgICAg ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIkJvZ3VzIERNSUJBUiAlIyJQUkl4NjQiIG9u ICVwcFxuIiwKPiArICAgICAgICAgICAgICAgICAgIGJhciwgJnBkZXYtPnNiZGYpOwo+ICAgICAg ICAgIGJyZWFrOwo+ICAgICAgfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC91dGlscy5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3V0aWxzLmMK PiBpbmRleCA5NGE2ZTRlZWM5Li42ODMwNGE2MWU4IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC91dGlscy5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL3V0aWxzLmMKPiBAQCAtOTUsOSArOTUsOSBAQCB2b2lkIHByaW50X3Z0ZF9lbnRyaWVzKHN0 cnVjdCBpb21tdSAqaW9tbXUsIGludCBidXMsIGludCBkZXZmbiwgdTY0IGdtZm4pCj4gICAgICB1 NjQgKmwsIHZhbDsKPiAgICAgIHUzMiBsX2luZGV4LCBsZXZlbDsKPiAgCj4gLSAgICBwcmludGso InByaW50X3Z0ZF9lbnRyaWVzOiBpb21tdSAjJXUgZGV2ICUwNHg6JTAyeDolMDJ4LiV1IGdtZm4g JSJQUklfZ2ZuIlxuIiwKPiAtICAgICAgICAgICBpb21tdS0+aW5kZXgsIGlvbW11LT5pbnRlbC0+ ZHJoZC0+c2VnbWVudCwgYnVzLAo+IC0gICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZV TkMoZGV2Zm4pLCBnbWZuKTsKPiArICAgIHByaW50aygicHJpbnRfdnRkX2VudHJpZXM6IGlvbW11 ICMldSBkZXYgJXBwIGdtZm4gJSJQUklfZ2ZuIlxuIiwKPiArICAgICAgICAgICBpb21tdS0+aW5k ZXgsICZQQ0lfU0JERjMoaW9tbXUtPmludGVsLT5kcmhkLT5zZWdtZW50LCBidXMsIGRldmZuKSwK PiArICAgICAgICAgICBnbWZuKTsKPiAgCj4gICAgICBpZiAoIGlvbW11LT5yb290X21hZGRyID09 IDAgKQo+ICAgICAgewo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYv YXRzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvYXRzLmMKPiBpbmRleCAzZWVhN2Y4 OWZjLi5kYzA1ODRiNDIzIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4 Ni9hdHMuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9hdHMuYwo+IEBAIC0z MSw4ICszMSw3IEBAIGludCBlbmFibGVfYXRzX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwg c3RydWN0IGxpc3RfaGVhZCAqYXRzX2xpc3QpCj4gICAgICBCVUdfT04oIXBvcyk7Cj4gIAo+ICAg ICAgaWYgKCBpb21tdV92ZXJib3NlICkKPiAtICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLCAi JTA0eDolMDJ4OiUwMnguJXU6IEFUUyBjYXBhYmlsaXR5IGZvdW5kXG4iLAo+IC0gICAgICAgICAg ICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAg ICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLCAiJXBwOiBBVFMgY2FwYWJpbGl0eSBmb3VuZFxuIiwg JnBkZXYtPnNiZGYpOwo+ICAKPiAgICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNi ZGYsIHBvcyArIEFUU19SRUdfQ1RMKTsKPiAgICAgIGlmICggdmFsdWUgJiBBVFNfRU5BQkxFICkK PiBAQCAtNjMsOSArNjIsOCBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2Uoc3RydWN0IHBjaV9kZXYg KnBkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmF0c19saXN0KQo+ICAgICAgfQo+ICAKPiAgICAgIGlm ICggaW9tbXVfdmVyYm9zZSApCj4gLSAgICAgICAgZHByaW50ayhYRU5MT0dfSU5GTywgIiUwNHg6 JTAyeDolMDJ4LiV1OiBBVFMgJXMgZW5hYmxlZFxuIiwKPiAtICAgICAgICAgICAgICAgIHNlZywg YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKPiAtICAgICAgICAgICAgICAg IHBvcyA/ICJpcyIgOiAid2FzIik7Cj4gKyAgICAgICAgZHByaW50ayhYRU5MT0dfSU5GTywgIiVw cDogQVRTICVzIGVuYWJsZWRcbiIsCj4gKyAgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgcG9z ID8gImlzIiA6ICJ3YXMiKTsKPiAgCj4gICAgICByZXR1cm4gcG9zOwo+ICB9Cj4gQEAgLTczLDgg KzcxLDYgQEAgaW50IGVuYWJsZV9hdHNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1 Y3QgbGlzdF9oZWFkICphdHNfbGlzdCkKPiAgdm9pZCBkaXNhYmxlX2F0c19kZXZpY2Uoc3RydWN0 IHBjaV9kZXYgKnBkZXYpCj4gIHsKPiAgICAgIHUzMiB2YWx1ZTsKPiAtICAgIHUxNiBzZWcgPSBw ZGV2LT5zZWc7Cj4gLSAgICB1OCBidXMgPSBwZGV2LT5idXMsIGRldmZuID0gcGRldi0+ZGV2Zm47 Cj4gIAo+ICAgICAgQlVHX09OKCFwZGV2LT5hdHMuY2FwX3Bvcyk7Cj4gIAo+IEBAIC04NSw2ICs4 MSw1IEBAIHZvaWQgZGlzYWJsZV9hdHNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICAg ICAgbGlzdF9kZWwoJnBkZXYtPmF0cy5saXN0KTsKPiAgCj4gICAgICBpZiAoIGlvbW11X3ZlcmJv c2UgKQo+IC0gICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8sICIlMDR4OiUwMng6JTAyeC4ldTog QVRTIGlzIGRpc2FibGVkXG4iLAo+IC0gICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9U KGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZP LCAiJXBwOiBBVFMgaXMgZGlzYWJsZWRcbiIsICZwZGV2LT5zYmRmKTsKPiAgfQo+IGRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIu Ywo+IGluZGV4IDNjNzk0ZjQ4NmQuLmJhOWEwMzYyMDIgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZl cnMvdnBjaS9oZWFkZXIuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMKPiBAQCAt MzU1LDcgKzM1NSw2IEBAIHN0YXRpYyB2b2lkIGJhcl93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgdW5zaWduZWQgaW50IHJlZywKPiAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IHZhbCwgdm9pZCAqZGF0YSkKPiAgewo+ICAgICAgc3RydWN0IHZwY2lfYmFyICpiYXIgPSBk YXRhOwo+IC0gICAgdWludDhfdCBzbG90ID0gUENJX1NMT1QocGRldi0+ZGV2Zm4pLCBmdW5jID0g UENJX0ZVTkMocGRldi0+ZGV2Zm4pOwo+ICAgICAgYm9vbCBoaSA9IGZhbHNlOwo+ICAKPiAgICAg IGlmICggYmFyLT50eXBlID09IFZQQ0lfQkFSX01FTTY0X0hJICkKPiBAQCAtMzcyLDkgKzM3MSw4 IEBAIHN0YXRpYyB2b2lkIGJhcl93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5z aWduZWQgaW50IHJlZywKPiAgICAgICAgICAvKiBJZiB0aGUgdmFsdWUgd3JpdHRlbiBpcyB0aGUg Y3VycmVudCBvbmUgYXZvaWQgcHJpbnRpbmcgYSB3YXJuaW5nLiAqLwo+ICAgICAgICAgIGlmICgg dmFsICE9ICh1aW50MzJfdCkoYmFyLT5hZGRyID4+IChoaSA/IDMyIDogMCkpICkKPiAgICAgICAg ICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywKPiAtICAgICAgICAgICAgICAgICAgICAiJTA0 eDolMDJ4OiUwMnguJXU6IGlnbm9yZWQgQkFSICVsdSB3cml0ZSB3aXRoIG1lbW9yeSBkZWNvZGlu ZyBlbmFibGVkXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVz LCBzbG90LCBmdW5jLAo+IC0gICAgICAgICAgICAgICAgICAgIGJhciAtIHBkZXYtPnZwY2ktPmhl YWRlci5iYXJzICsgaGkpOwo+ICsgICAgICAgICAgICAgICAgICAgICIlcHA6IGlnbm9yZWQgQkFS ICVsdSB3cml0ZSB3aXRoIG1lbW9yeSBkZWNvZGluZyBlbmFibGVkXG4iLAo+ICsgICAgICAgICAg ICAgICAgICAgICZwZGV2LT5zYmRmLCBiYXIgLSBwZGV2LT52cGNpLT5oZWFkZXIuYmFycyArIGhp KTsKPiAgICAgICAgICByZXR1cm47Cj4gICAgICB9Cj4gIAo+IEBAIC00MDIsMTUgKzQwMCwxNCBA QCBzdGF0aWMgdm9pZCByb21fd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2ln bmVkIGludCByZWcsCj4gIHsKPiAgICAgIHN0cnVjdCB2cGNpX2hlYWRlciAqaGVhZGVyID0gJnBk ZXYtPnZwY2ktPmhlYWRlcjsKPiAgICAgIHN0cnVjdCB2cGNpX2JhciAqcm9tID0gZGF0YTsKPiAt ICAgIHVpbnQ4X3Qgc2xvdCA9IFBDSV9TTE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5D KHBkZXYtPmRldmZuKTsKPiAgICAgIHVpbnQxNl90IGNtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2 LT5zYmRmLCBQQ0lfQ09NTUFORCk7Cj4gICAgICBib29sIG5ld19lbmFibGVkID0gdmFsICYgUENJ X1JPTV9BRERSRVNTX0VOQUJMRTsKPiAgCj4gICAgICBpZiAoIChjbWQgJiBQQ0lfQ09NTUFORF9N RU1PUlkpICYmIGhlYWRlci0+cm9tX2VuYWJsZWQgJiYgbmV3X2VuYWJsZWQgKQo+ICAgICAgewo+ ICAgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICAgICAiJTA0 eDolMDJ4OiUwMnguJXU6IGlnbm9yZWQgUk9NIEJBUiB3cml0ZSB3aXRoIG1lbW9yeSBkZWNvZGlu ZyBlbmFibGVkXG4iLAo+IC0gICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIHNs b3QsIGZ1bmMpOwo+ICsgICAgICAgICAgICAgICAgIiVwcDogaWdub3JlZCBST00gQkFSIHdyaXRl IHdpdGggbWVtb3J5IGRlY29kaW5nIGVuYWJsZWRcbiIsCj4gKyAgICAgICAgICAgICAgICAmcGRl di0+c2JkZik7Cj4gICAgICAgICAgcmV0dXJuOwo+ICAgICAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvdnBjaS9tc2kuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMKPiBpbmRleCA1 YjY2MDJmM2MyLi40MGU0ZmNhMTMyIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNp LmMKPiArKysgYi94ZW4vZHJpdmVycy92cGNpL21zaS5jCj4gQEAgLTI5MCw4ICsyOTAsNyBAQCB2 b2lkIHZwY2lfZHVtcF9tc2kodm9pZCkKPiAgICAgICAgICAgICAgbXNpID0gcGRldi0+dnBjaS0+ bXNpOwo+ICAgICAgICAgICAgICBpZiAoIG1zaSAmJiBtc2ktPmVuYWJsZWQgKQo+ICAgICAgICAg ICAgICB7Cj4gLSAgICAgICAgICAgICAgICBwcmludGsoIiUwNHg6JTAyeDolMDJ4LiV1IE1TSVxu IiwgcGRldi0+c2VnLCBwZGV2LT5idXMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgUENJX1NM T1QocGRldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwZGV2LT5kZXZmbikpOwo+ICsgICAgICAgICAgICAg ICAgcHJpbnRrKCIlcHAgTVNJXG4iLCAmcGRldi0+c2JkZik7Cj4gIAo+ICAgICAgICAgICAgICAg ICAgcHJpbnRrKCIgIGVuYWJsZWQ6ICVkIDY0LWJpdDogJWQiLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgIG1zaS0+ZW5hYmxlZCwgbXNpLT5hZGRyZXNzNjQpOwo+IEBAIC0zMDgsOCArMzA3LDcg QEAgdm9pZCB2cGNpX2R1bXBfbXNpKHZvaWQpCj4gICAgICAgICAgICAgIHsKPiAgICAgICAgICAg ICAgICAgIGludCByYzsKPiAgCj4gLSAgICAgICAgICAgICAgICBwcmludGsoIiUwNHg6JTAyeDol MDJ4LiV1IE1TSS1YXG4iLCBwZGV2LT5zZWcsIHBkZXYtPmJ1cywKPiAtICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7Cj4g KyAgICAgICAgICAgICAgICBwcmludGsoIiVwcCBNU0ktWFxuIiwgJnBkZXYtPnNiZGYpOwo+ICAK PiAgICAgICAgICAgICAgICAgIHByaW50aygiICBlbnRyaWVzOiAldSBtYXNrYWxsOiAlZCBlbmFi bGVkOiAlZFxuIiwKPiAgICAgICAgICAgICAgICAgICAgICAgICBtc2l4LT5tYXhfZW50cmllcywg bXNpeC0+bWFza2VkLCBtc2l4LT5lbmFibGVkKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv dnBjaS9tc2l4LmMgYi94ZW4vZHJpdmVycy92cGNpL21zaXguYwo+IGluZGV4IDM4YzFlN2U1ZGQu LjY0ZGQwYTkyOWMgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMKPiArKysg Yi94ZW4vZHJpdmVycy92cGNpL21zaXguYwo+IEBAIC00MiwxNSArNDIsMTQgQEAgc3RhdGljIHVp bnQzMl90IGNvbnRyb2xfcmVhZChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQg aW50IHJlZywKPiAgc3RhdGljIGludCB1cGRhdGVfZW50cnkoc3RydWN0IHZwY2lfbXNpeF9lbnRy eSAqZW50cnksCj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2 ICpwZGV2LCB1bnNpZ25lZCBpbnQgbnIpCj4gIHsKPiAtICAgIHVpbnQ4X3Qgc2xvdCA9IFBDSV9T TE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKPiAgICAgIGlu dCByYyA9IHZwY2lfbXNpeF9hcmNoX2Rpc2FibGVfZW50cnkoZW50cnksIHBkZXYpOwo+ICAKPiAg ICAgIC8qIElnbm9yZSBFTk9FTlQsIGl0IG1lYW5zIHRoZSBlbnRyeSB3YXNuJ3Qgc2V0dXAuICov Cj4gICAgICBpZiAoIHJjICYmIHJjICE9IC1FTk9FTlQgKQo+ICAgICAgewo+ICAgICAgICAgIGdw cmludGsoWEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICAgICAiJTA0eDolMDJ4OiUwMngu JXU6IHVuYWJsZSB0byBkaXNhYmxlIGVudHJ5ICV1IGZvciB1cGRhdGU6ICVkXG4iLAo+IC0gICAg ICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsIG5yLCByYyk7Cj4g KyAgICAgICAgICAgICAgICAiJXBwOiB1bmFibGUgdG8gZGlzYWJsZSBlbnRyeSAldSBmb3IgdXBk YXRlOiAlZFxuIiwKPiArICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBuciwgcmMpOwo+ICAg ICAgICAgIHJldHVybiByYzsKPiAgICAgIH0KPiAgCj4gQEAgLTU5LDkgKzU4LDggQEAgc3RhdGlj IGludCB1cGRhdGVfZW50cnkoc3RydWN0IHZwY2lfbXNpeF9lbnRyeSAqZW50cnksCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZQQ0lfTVNJ WF9UQUJMRSkpOwo+ICAgICAgaWYgKCByYyApCj4gICAgICB7Cj4gLSAgICAgICAgZ3ByaW50ayhY RU5MT0dfV0FSTklORywKPiAtICAgICAgICAgICAgICAgICIlMDR4OiUwMng6JTAyeC4ldTogdW5h YmxlIHRvIGVuYWJsZSBlbnRyeSAldTogJWRcbiIsCj4gLSAgICAgICAgICAgICAgICBwZGV2LT5z ZWcsIHBkZXYtPmJ1cywgc2xvdCwgZnVuYywgbnIsIHJjKTsKPiArICAgICAgICBncHJpbnRrKFhF TkxPR19XQVJOSU5HLCAiJXBwOiB1bmFibGUgdG8gZW5hYmxlIGVudHJ5ICV1OiAlZFxuIiwKPiAr ICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBuciwgcmMpOwo+ICAgICAgICAgIC8qIEVudHJ5 IGlzIGxpa2VseSBub3QgcHJvcGVybHkgY29uZmlndXJlZC4gKi8KPiAgICAgICAgICByZXR1cm4g cmM7Cj4gICAgICB9Cj4gQEAgLTcyLDcgKzcwLDYgQEAgc3RhdGljIGludCB1cGRhdGVfZW50cnko c3RydWN0IHZwY2lfbXNpeF9lbnRyeSAqZW50cnksCj4gIHN0YXRpYyB2b2lkIGNvbnRyb2xfd3Jp dGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsLCB2b2lkICpkYXRhKQo+ICB7Cj4gLSAg ICB1aW50OF90IHNsb3QgPSBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIGZ1bmMgPSBQQ0lfRlVOQyhw ZGV2LT5kZXZmbik7Cj4gICAgICBzdHJ1Y3QgdnBjaV9tc2l4ICptc2l4ID0gZGF0YTsKPiAgICAg IGJvb2wgbmV3X21hc2tlZCA9IHZhbCAmIFBDSV9NU0lYX0ZMQUdTX01BU0tBTEw7Cj4gICAgICBi b29sIG5ld19lbmFibGVkID0gdmFsICYgUENJX01TSVhfRkxBR1NfRU5BQkxFOwo+IEBAIC0xMzMs OSArMTMwLDggQEAgc3RhdGljIHZvaWQgY29udHJvbF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgdW5zaWduZWQgaW50IHJlZywKPiAgICAgICAgICAgICAgICAgIC8qIElnbm9yZSBu b24tcHJlc2VudCBlbnRyeS4gKi8KPiAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAg ICAgICBkZWZhdWx0Ogo+IC0gICAgICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywK PiAtICAgICAgICAgICAgICAgICAgICAgICAgIiUwNHg6JTAyeDolMDJ4LiV1OiB1bmFibGUgdG8g ZGlzYWJsZSBlbnRyeSAldTogJWRcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYt PnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLCBpLCByYyk7Cj4gKyAgICAgICAgICAgICAgICBn cHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiJXBwOiB1bmFibGUgdG8gZGlzYWJsZSBlbnRyeSAldTog JWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBpLCByYyk7Cj4g ICAgICAgICAgICAgICAgICByZXR1cm47Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAgICB9Cj4g QEAgLTE4MCw4ICsxNzYsNyBAQCBzdGF0aWMgYm9vbCBhY2Nlc3NfYWxsb3dlZChjb25zdCBzdHJ1 Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgbG9uZyBhZGRyLAo+ICAgICAgICAgIHJldHVybiB0 cnVlOwo+ICAKPiAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICIl MDR4OiUwMng6JTAyeC4ldTogdW5hbGlnbmVkIG9yIGludmFsaWQgc2l6ZSBNU0ktWCB0YWJsZSBh Y2Nlc3NcbiIsCj4gLSAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChw ZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7Cj4gKyAgICAgICAgICAgICIlcHA6 IHVuYWxpZ25lZCBvciBpbnZhbGlkIHNpemUgTVNJLVggdGFibGUgYWNjZXNzXG4iLCAmcGRldi0+ c2JkZik7Cj4gIAo+ICAgICAgcmV0dXJuIGZhbHNlOwo+ICB9Cj4gQEAgLTQzMSwxMCArNDI2LDkg QEAgaW50IHZwY2lfbWFrZV9tc2l4X2hvbGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4g ICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICAgICAgICBwdXRfZ2ZuKGQsIHN0YXJ0 KTsKPiAgICAgICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICIlMDR4OiUwMng6JTAyeC4ldTogZXhpc3RpbmcgbWFwcGluZyAobWZu OiAlIiBQUklfbWZuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICIlcHA6IGV4aXN0aW5nIG1h cHBpbmcgKG1mbjogJSIgUFJJX21mbgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZTog JWQpIGF0ICUjbHggY2xvYmJlcnMgTVNJWCBNTUlPIGFyZWFcbiIsCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChwZGV2LT5kZXZmbiksCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBkZXYtPmRldmZuKSwgbWZuX3gobWZu KSwgdCwgc3RhcnQpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgbWZu X3gobWZuKSwgdCwgc3RhcnQpOwo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7Cj4g ICAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgcHV0X2dmbihkLCBzdGFydCk7Cj4gLS0gCj4g Mi4yMC4xIChBcHBsZSBHaXQtMTE3KQo+IAoKLS0gCkJyaWFuIFdvb2RzCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs