From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6DBC2A00C4; Wed, 28 Sep 2022 19:33:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 03E924113C; Wed, 28 Sep 2022 19:33:03 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 14315410FA for ; Wed, 28 Sep 2022 19:33:00 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28SFPUDZ029051; Wed, 28 Sep 2022 10:30:48 -0700 Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2170.outbound.protection.outlook.com [104.47.56.170]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3jvrvjgkay-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Sep 2022 10:30:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KESL7O30UikT9RIqSICudq0s94XkQkX3eOhJoweJ4/JVaBQw3Lo/IMBftiK1XnI2OKkLWq0Vr4L7/LrlI0gIJhX1QN3ZS0XswZMJ73AomzdUAouOv/WzfL+/pfvjW12rKa1ES8bks6JSLnXOHAj4kzFUMLlOYZu00mo2YnfZ72uGQNVrsZ/jx3gz/6vvsAtXPTRcIsVx2DBqNnEVKv93NRJQ2dIsGiMN/FKXE56lScss8zokLhcZAH7KwqXeAJ72cGn5fQGX49QXaUjgbpTP+1FRiPAdfICYwX7Uwi1cI3g1kjmpLuE0mspgf2pV7D4D6YPgM8OMy3Jhgxp6R1glQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aOc2eCoJi3s/ggl2zqAqz1ZKXxjxxYMBBfm0BplBpmw=; b=WdfeE3qlAHMS0MOcQjyc9JRg/Nb5hQc3RQS2D4eTeLAwzrSRdH8W/Lv0z7ny7fqrpA3JNgkZZhJW/2cwC7IjqCeXI6uQdkXxSJmr9Kxy6WWBnUYx9KCfoQnfuGw4mi5LIhwWYIngGmddgFfPB3cSEk3Q8rb02VIQ2eT/wVOBeiMn3kWHq9F6GkJd+KMo4CE9JUvb1xpDqRQHFKsjvuAOgh1Tw9y8drl4fRdXrNc2+FPqeGjbtyBBJ6GJwd6MryQIkdjuhkBgwfLkjTIdRNQldXCv3k1sgZjQrHz4O24rMVsu/18YB8qfBEPbaSsQhfI8FKmTClhkn6b2gkPqbGuJxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aOc2eCoJi3s/ggl2zqAqz1ZKXxjxxYMBBfm0BplBpmw=; b=XNWpx8gTkeU9Bhq6EyvSCZqHDnfi5g0jc+tRV7b29fzFkPNvVbAbXTgPuSoNbF++Y4P8zvsHsDIWiOUFtR8dLTh0zEg/Z/cQLgZD2NtOhkFEWRZ6Z0KdsMZNMSM/AkN6t3zaZmQ3VTuoZRdujb6QqAMRoE8FV+VzVvVDJ/aeBsg= Received: from PH0PR18MB5167.namprd18.prod.outlook.com (2603:10b6:510:168::7) by BY3PR18MB4771.namprd18.prod.outlook.com (2603:10b6:a03:3ce::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Wed, 28 Sep 2022 17:30:44 +0000 Received: from PH0PR18MB5167.namprd18.prod.outlook.com ([fe80::e4f1:7ff8:4f8b:e2ef]) by PH0PR18MB5167.namprd18.prod.outlook.com ([fe80::e4f1:7ff8:4f8b:e2ef%3]) with mapi id 15.20.5676.015; Wed, 28 Sep 2022 17:30:44 +0000 From: Amit Prakash Shukla To: Jerin Jacob CC: Akhil Goyal , Fan Zhang , Ray Kinsella , "dev@dpdk.org" , Jerin Jacob Kollanukkaran Subject: RE: [EXT] Re: [PATCH] cryptodev: add trace points Thread-Topic: [EXT] Re: [PATCH] cryptodev: add trace points Thread-Index: AQHYyfJXVznr8Luv5UWsuOeGNJD1yK30TASAgACn0vA= Date: Wed, 28 Sep 2022 17:30:44 +0000 Message-ID: References: <20220916173227.27758-1-amitprakashs@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB5167:EE_|BY3PR18MB4771:EE_ x-ms-office365-filtering-correlation-id: f703459d-17a4-429d-5508-08daa1772c50 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2oj/NFm8P9RlujORDNzVdYd7KpUSWFxgiRpdzHo6Il6hY7Ytv1+dNx71Og7Cv3EKHu9+oBrksJf6B/pEiTkSnvhcuDVg3FS4xOItFdtLbH0w/1yC2zDhRsDjp5GRdW2y2JtmyLHrFXp2ngWwLYbuVlJZePwQ6fszYhlbl2DXdDy45GLZIXcBRAswyyKPehjCIo0KfIWMfaMd6JJAMbi/sUfHA2bV/efnbV1bT31VWDNgcQp8h3NRUeqdG5E6DEuFezscHpKft/eIgsfKONnqKAeXVz4LbGjQzhgz3DotyaeVWBqC9jYRnzUh9Wdzx92CEze2sdWOJPNdm9AFt3iaO5VrS+d5bP0jZEej47o5pRjeVPZ21ovrBDwIQdOialvJGQ+ttoGuY8zLVORrt7ChMdNefS62GcgZm+/NXGZ8SGWq4Hx7ArHm/rZNB4pIY9jmlUK3HqXg2j9pa7Fm8wsnyOVy0te4HVGuuYY1drG90/9qtpK5luEswz5sLodLXJ/5w+k6yDG58RgyKNyP/cYMkYfYwKE8kpYY7OrDLCsHBVDPl1FGOVn7riazLNuUy9FkwZC0cB4B6lMEUu3vyh8bcE1uiJSm67wSJUyL9wZwObVkgaWYC5AZRmxhxaMyvKORfk983a3yoAJuRcPvDfb5n9URDMtqsyL2P5HPcioiGzq90XkkCN8XFirr1rFD8bB/yxFgTHG9WPOA/Nyji3b486Xz4wW/1iOLl5RPkqB/BNhiIRT6Pf5WbGLcrhIml9iLLgKNGzftwjUWcfUJrIirKo9gkcMvfB8d8sWv8LxfAgo= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB5167.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(376002)(136003)(396003)(39860400002)(366004)(451199015)(186003)(26005)(9686003)(6506007)(966005)(7696005)(53546011)(6916009)(38100700002)(107886003)(316002)(54906003)(76116006)(8676002)(33656002)(66946007)(66476007)(64756008)(478600001)(4326008)(66556008)(41300700001)(2906002)(86362001)(66446008)(8936002)(5660300002)(19627235002)(71200400001)(30864003)(83380400001)(38070700005)(122000001)(55016003)(52536014)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OTd0elZuTUNVamJDS1hrYnNTMnZYVWRJL1E2VW1zNjJxZklrVUh6WEFGY0Zn?= =?utf-8?B?bUhGZTJrdVRpMzJ6eXcwOVlVdHl1cnRGL0ZOOU5aVEZhMmJEUDA0WHoyMTZB?= =?utf-8?B?MmcybUVlMHM5MDQyOHlWUFB2N2paYmJqdnNOTVQrd3M3LzB0b1l4NnozZjk1?= =?utf-8?B?dTloQjlRK2tnaHppMk5nM3d0aHd6MGkrTi9nalhUTlZaL0FUK3kzanZDa1lt?= =?utf-8?B?aU11UjczWEtiR2RuUWNMME1SUHB3K3F4L1lDSVA4T2lOZkc4WU9kbGpHR1VD?= =?utf-8?B?VGlSZ1Nid0N3ck5qUHdFNE9oQVE1bWhScVN0Y2p0Skg3UjZrMkx2VDdGWW9r?= =?utf-8?B?NjF3TllMS0k4TnZYVjFGTmI2ZDNaVG5nNW5YaUtKR1U0NUVNWmVhL0dqVHQ4?= =?utf-8?B?TzlGTFI2Q1EybXV3M2pOMU9uemxnQnoxTXcvM01qcGFGdU14VGdJYno5MnM4?= =?utf-8?B?WW1jOHlybnBWY3IxYXBoRG96TXluSk5KdDdESVNUTXprUFA2KzRBem4vOGYr?= =?utf-8?B?ZWR1aFdVcnUzSXpLK3JMZWVEVXJubG0wakYxeTJQeU5DMEtGL2JZT0N3bzRM?= =?utf-8?B?ZjM3b3FvZGFXSTh5MUthMmY2WHhLTXhTT0FPcndLQkptQ0FOSVVkeGlPM25s?= =?utf-8?B?ZjRWaVVZSFlTbFNtbDVRbFJFamNvWGFRem5YMytxZEEzejJRNVZWMlU0K05y?= =?utf-8?B?OWFkbnpMcE83RGtqK2VpMVQ2SzQvdU0xYmlpU0l1RWUyVUh2ZDAwaGdtSEwy?= =?utf-8?B?V0xma0VNVGFsVWdWYlVNekZOa0JjNTkyMGFIc1VBRDBIUFM5M1pRem1MT2J0?= =?utf-8?B?Um5pNTRQMmVGZGs5MndCZTJIM2pFcHZ0RHF4allRN1g4dzJBQ3M1cWxHQVR5?= =?utf-8?B?NDgwaG9udm4vVDdEdUJvdndtYUZsNnJ4YkNmL1Y1L3FpMFFURjhVMjBpSGM0?= =?utf-8?B?b2o0aDVMMDB3d1JHRzJJblpLNDZWSXFuYWZ0ZXdCblFtTCtYUWJ5NTRucmJ3?= =?utf-8?B?aWpScHhSUjNmaGhDVlhEdXZQVEplS2pzMHlGZDhWK2p1cjdzR3kxc3NQQlZP?= =?utf-8?B?U1BsNkxRRDV4Q3ZXREZUNW0vbVJIL2VONDB0d1hMbDJWUUo5NVUxY3ZrVGJ2?= =?utf-8?B?dXBjK2tBQzhtRVBMVVFFYnR2cmRsdzRhZW8xM0gzNE1yeDMxU2RHU1VvVFQw?= =?utf-8?B?c3Y1MWwzT2wrNkVFb2dhN0ttWHdlazhFWkxuUVdTMHpYK0hueUVxVHovL21C?= =?utf-8?B?VHdPbVR0ZHkyQmEwWENrdnlXdHpNejk2NXY3L1FBVUlseU9MTUdhWkE3dW84?= =?utf-8?B?OUovUVhGa3kyMVRQZW1ZSS9nZi9XZHE3ak5Dd0MvM3FoZkdKS1puL3Fhc3lZ?= =?utf-8?B?SWkwbDNOcElqdk1EL093UWk0c1praFNrRThkUEVLWWhISlhWMS9GZ1l0YnhY?= =?utf-8?B?ckE1V1BrQ1Fic1Z3RkZ6R2ZsSDZ6S2xubW00VEhDYlorKzJmUEo1VWZkcUtz?= =?utf-8?B?UHFTZHJZQ01LSTZOR2MwRWdDell4YnFoLzZUWHN1VkNZTVhEeVI1TFlBZndj?= =?utf-8?B?RHprU0VZSzI2QmpoaHJRQUtML2xjK3JwaHoxWU9GMTAxeWlQY3Y5SGdjSWZ2?= =?utf-8?B?V21nMGlmS0pKcWpPMXV3N2VkNFhVWVFmcFlzU1NTNVhsTEI3NTdSd3RUOEcx?= =?utf-8?B?cEJQS1FaTm0zbmMzWDJ2YkVXV1R0bUFnRENNYnl3Q3E5bkcwSUN6R1RJK1V1?= =?utf-8?B?R0ZCZm1icWdsdDFxVnA1V0lKMllZREZhblFVQk9KWnhpdHdPWFJ0b1RvNzZI?= =?utf-8?B?UEdyeXl1b2pXRWFYR3VXa2hhUmk5WnhTTnNTbTFxVzM0VDFRbFdSN2Vsellh?= =?utf-8?B?ZzUxWDBrRitUYUdmc1pzdkkwM2NiT2hoV3BjQzIwblBkYnRqYmptOWRscnVG?= =?utf-8?B?VEZETjlvZXQ3TUdqSGFHcmZ3WTdwR0NSa2lqajRmSDAwc0dOUUFYNFZqeTRD?= =?utf-8?B?eXZJWWRnOVNRUzJHb2Q3bVF3eXlQYTZadzVjRy9zU0NYczlCeldVeXNudFY3?= =?utf-8?B?M0x2aGNXOTNmeE1QSU9ZWjg4RHdSWFlsZWFYWW5qNWtzWExucFdPMTE1NGw0?= =?utf-8?Q?gyFneecR2n2LyFR9ToCn02dAo?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR18MB5167.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f703459d-17a4-429d-5508-08daa1772c50 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2022 17:30:44.2363 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CbaZHDAt1N15L6uUfIiqCUGy9tGYegZB9TrB92TBSgqwhYB18v1DdpvCoNeK0zGtc5IUL8Gk3bFNhYmCXsXq6Yy492N/qoRPaKV+PB9cHBM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR18MB4771 X-Proofpoint-GUID: YWcwjrLMasgg6nVG0ZQsre3RjzZX75ZX X-Proofpoint-ORIG-GUID: YWcwjrLMasgg6nVG0ZQsre3RjzZX75ZX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-28_07,2022-09-28_01,2022-06-22_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgSmVyaW4sDQoNClRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLiBJIHdpbGwgZG8gdGhlIHN1Z2dl c3RlZCBjaGFuZ2VzIGluIG5leHQgdmVyc2lvbiBvZiB0aGUgcGF0Y2guDQoNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluamFjb2JrQGdtYWls LmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMjgsIDIwMjIgOTozOCBBTQ0KPiBU bzogQW1pdCBQcmFrYXNoIFNodWtsYSA8YW1pdHByYWthc2hzQG1hcnZlbGwuY29tPg0KPiBDYzog QWtoaWwgR295YWwgPGdha2hpbEBtYXJ2ZWxsLmNvbT47IEZhbiBaaGFuZw0KPiA8cm95LmZhbi56 aGFuZ0BpbnRlbC5jb20+OyBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZAZHBkay5v cmc7DQo+IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT4NCj4g U3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSF0gY3J5cHRvZGV2OiBhZGQgdHJhY2UgcG9pbnRzDQo+ IA0KPiBFeHRlcm5hbCBFbWFpbA0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBPbiBGcmksIFNlcCAx NiwgMjAyMiBhdCAxMTowNSBQTSBBbWl0IFByYWthc2ggU2h1a2xhDQo+IDxhbWl0cHJha2FzaHNA bWFydmVsbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gQWRkIHRyYWNlIHBvaW50cyBmb3IgY3J5cHRv ZGV2IGZ1bmN0aW9ucy4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFtaXQgUHJha2FzaCBTaHVr bGEgPGFtaXRwcmFrYXNoc0BtYXJ2ZWxsLmNvbT4NCj4gPiAtLS0NCj4gDQo+IDEpIFBsZWFzZSBp bmNsdWRlIHRoZSByZXN1bHQgb2YgQVBJIG9wZXJhdGlvbiBpbiB0cmFjZSBzbyB0aGF0IG9uY2Ug Y2FuIGtub3cNCj4gdGhlIEFQSSBzdGF0dXMNCj4gMikgcmVzdHJpY3QgdHJhY2UgYWRkaXRpb25z IHRvIHB1YmxpYyBBUEkuIGkuZSBJIHRoaW5rLCBubyBuZWVkIHRvIGFkZCB0cmFjZSBmb3INCj4g UE1EIGhvb2tzDQo+IDMpIFBsZWFzZSB0ZXN0IHdpdGgNCj4gaHR0cHM6Ly91cmxkZWZlbnNlLnBy b29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLQ0KPiAzQV9fcGF0Y2hlcy5kcGRrLm9yZ19wcm9q ZWN0X2RwZGtfcGF0Y2hfMjAyMjA4MDQxMzQ0MzAuNjE5Mi0yRDctDQo+IDJEYWR3aXZlZGktDQo+ IDQwbWFydmVsbC5jb21fJmQ9RHdJQmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPUFMR2RY bDNmWmdGDQo+IEdSNjlWbkpMZFNuQUR1bjd6TGFYRzFwNVJzN3BYaWhFJm09TGE2S1RZbmhvN2Ey T3lha1l2OEVZdWZHbWM5DQo+IDRidVI1Rjg4Z1RYTTNURTF3a2JjSGFkelJUQ0dTcEc2V25Vb1Um cz1Vd1hHTE9WMVFLbEFCUXozMXYNCj4gQlY3S0M2bFJ6YXlEUmgxbGZ0ekNDRzJqYyZlPQ0KPiBw YXRjaCBieSBhZGRpbmcgY3J5cHRvZGV2IHN5bWJvbHMNCj4gdG8gbWFrZSBzdXJlIG5vdCB0byBt aXNzZWQgYW55IHB1YmxpYyBjcnlwdG9kZXYgQVBJLg0KPiANCj4gDQo+ID4gQEAgLTEzNSw2ICsx MzksOCBAQCBydGVfY3J5cHRvZGV2X3BtZF9jcmVhdGUoY29uc3QgY2hhciAqbmFtZSwNCj4gPiAg ICAgICAgIC8qIGluaXRpYWxpc2UgdXNlciBjYWxsLWJhY2sgdGFpbCBxdWV1ZSAqLw0KPiA+ICAg ICAgICAgVEFJTFFfSU5JVCgmKGNyeXB0b2Rldi0+bGlua19pbnRyX2NicykpOw0KPiA+DQo+ID4g KyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9jcmVhdGUobmFtZSwgcGFyYW1zLT5zb2Nr ZXRfaWQsDQo+ID4gKyBjcnlwdG9kZXYpOw0KPiA+ICsNCj4gPiAgICAgICAgIHJldHVybiBjcnlw dG9kZXY7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0xNDQsNiArMTUwLDggQEAgcnRlX2NyeXB0b2Rl dl9wbWRfZGVzdHJveShzdHJ1Y3QgcnRlX2NyeXB0b2Rldg0KPiAqY3J5cHRvZGV2KQ0KPiA+ICAg ICAgICAgaW50IHJldHZhbDsNCj4gPiAgICAgICAgIHZvaWQgKmRldl9wcml2ID0gY3J5cHRvZGV2 LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFj ZV9wbWRfZGVzdHJveShjcnlwdG9kZXYpOw0KPiA+ICsNCj4gPiAgICAgICAgIENERVZfTE9HX0lO Rk8oIkNsb3NpbmcgY3J5cHRvIGRldmljZSAlcyIsDQo+ID4gY3J5cHRvZGV2LT5kZXZpY2UtPm5h bWUpOw0KPiA+DQo+ID4gICAgICAgICAvKiBmcmVlIGNyeXB0byBkZXZpY2UgKi8NCj4gPiBAQCAt MTY2LDYgKzE3NCw5IEBAIHJ0ZV9jcnlwdG9kZXZfcG1kX3Byb2JpbmdfZmluaXNoKHN0cnVjdA0K PiA+IHJ0ZV9jcnlwdG9kZXYgKmNyeXB0b2RldikgIHsNCj4gPiAgICAgICAgIGlmIChjcnlwdG9k ZXYgPT0gTlVMTCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsNCj4gPiArICAg ICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcG1kX3Byb2JpbmdfZmluaXNoKGNyeXB0b2Rldik7DQo+ ID4gKw0KPiA+ICAgICAgICAgLyoNCj4gPiAgICAgICAgICAqIGZvciBzZWNvbmRhcnkgcHJvY2Vz cywgYXQgdGhhdCBwb2ludCB3ZSBleHBlY3QgZGV2aWNlDQo+ID4gICAgICAgICAgKiB0byBiZSBh bHJlYWR5ICd1c2FibGUnLCBzbyBzaGFyZWQgZGF0YSBhbmQgYWxsIGZ1bmN0aW9uIEBADQo+ID4g LTIzMSw2ICsyNDIsOCBAQCBjcnlwdG9kZXZfZnBfb3BzX3NldChzdHJ1Y3QgcnRlX2NyeXB0b19m cF9vcHMNCj4gPiAqZnBfb3BzLCAgdm9pZCAqICBydGVfY3J5cHRvZGV2X3Nlc3Npb25fZXZlbnRf bWRhdGFfZ2V0KHN0cnVjdA0KPiA+IHJ0ZV9jcnlwdG9fb3AgKm9wKSAgew0KPiA+ICsgICAgICAg cnRlX2NyeXB0b2Rldl90cmFjZV9zZXNzaW9uX2V2ZW50X21kYXRhX2dldChvcC0+dHlwZSk7DQo+ ID4gKw0KPiA+ICAgICAgICAgaWYgKG9wLT50eXBlID09IFJURV9DUllQVE9fT1BfVFlQRV9TWU1N RVRSSUMgJiYNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+c2Vzc190eXBlID09IFJU RV9DUllQVE9fT1BfV0lUSF9TRVNTSU9OKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4NCj4g PiBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uX2dldF91c2VyX2RhdGEob3AtPnN5bS0+c2Vzc2lv bik7DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9jcnlwdG9kZXYvY3J5cHRvZGV2X3RyYWNlX3BvaW50 cy5jDQo+ID4gYi9saWIvY3J5cHRvZGV2L2NyeXB0b2Rldl90cmFjZV9wb2ludHMuYw0KPiA+IGlu ZGV4IGM1YmZlMDhiNzkuLmJjYTRkZWVjYzIgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2NyeXB0b2Rl di9jcnlwdG9kZXZfdHJhY2VfcG9pbnRzLmMNCj4gPiArKysgYi9saWIvY3J5cHRvZGV2L2NyeXB0 b2Rldl90cmFjZV9wb2ludHMuYw0KPiA+IEBAIC01MCwzICs1MCwxNjggQEANCj4gPiBSVEVfVFJB Q0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9lbnF1ZXVlX2J1cnN0LA0KPiA+ DQo+ID4gIFJURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2RlcXVl dWVfYnVyc3QsDQo+ID4gICAgICAgICBsaWIuY3J5cHRvZGV2LmRlcS5idXJzdCkNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2NhbGxiYWNr X3JlZ2lzdGVyLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5jYWxsYmFjay5yZWdpc3RlcikN Cj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNl X2NhbGxiYWNrX3VucmVnaXN0ZXIsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LmNhbGxiYWNr LnVucmVnaXN0ZXIpDQo+ID4gKw0KPiA+DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRl X2NyeXB0b2Rldl90cmFjZV9kZXZpY2VfY291bnRfYnlfZHJpdg0KPiBlciwNCj4gPiArICAgICAg IGxpYi5jcnlwdG9kZXYuZGV2aWNlLmNvdW50LmJ5LmRyaXZlcikNCj4gPiArDQo+ID4gK1JURV9U UkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2RldmljZXNfZ2V0LA0KPiA+ ICsgICAgICAgbGliLmNyeXB0b2Rldi5kZXZpY2VzLmdldCkNCj4gPiArDQo+ID4gK1JURV9UUkFD RV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2RyaXZlcl9pZF9nZXQsDQo+ID4g KyAgICAgICBsaWIuY3J5cHRvZGV2LmRyaXZlci5pZC5nZXQpDQo+ID4gKw0KPiA+ICtSVEVfVFJB Q0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9kcml2ZXJfbmFtZV9nZXQsDQo+ ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LmRyaXZlci5uYW1lLmdldCkNCj4gPiArDQo+ID4NCj4g K1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9hZWFkX2Fs Z29fZW51bSwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYuZ2V0LmFlYWQuYWxnby5lbnVtKQ0K PiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJh Y2VfZ2V0X2F1dGhfYWxnb19lbnVtLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5nZXQuYXV0 aC5hbGdvLmVudW0pDQo+ID4gKw0KPiA+DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRl X2NyeXB0b2Rldl90cmFjZV9nZXRfY2lwaGVyX2FsZ29fZW51DQo+IG0sDQo+ID4gKyAgICAgICBs aWIuY3J5cHRvZGV2LmdldC5jaXBoZXIuYWxnby5lbnVtKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNF X1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2VfZ2V0X2Rldl9pZCwNCj4gPiArICAg ICAgIGxpYi5jcnlwdG9kZXYuZ2V0LmRldi5pZCkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lO VF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9mZWF0dXJlX25hbWUsDQo+ID4gKyAg ICAgICBsaWIuY3J5cHRvZGV2LmdldC5mZWF0dXJlLm5hbWUpDQo+ID4gKw0KPiA+ICtSVEVfVFJB Q0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9nZXRfc2VjX2N0eCwNCj4gPiAr ICAgICAgIGxpYi5jcnlwdG9kZXYuZ2V0LnNlYy5jdHgpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0Vf UE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9pbmZvX2dldCwNCj4gPiArICAgICAg IGxpYi5jcnlwdG9kZXYuaW5mby5nZXQpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVH SVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9pc192YWxpZF9kZXYsDQo+ID4gKyAgICAgICBsaWIu Y3J5cHRvZGV2LmlzLnZhbGlkLmRldikNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJ U1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX25hbWVfZ2V0LA0KPiA+ICsgICAgICAgbGliLmNyeXB0 b2Rldi5uYW1lLmdldCkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Y3J5cHRvZGV2X3RyYWNlX3F1ZXVlX3BhaXJfY291bnQsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRv ZGV2LnF1ZXVlLnBhaXIuY291bnQpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNU RVIocnRlX2NyeXB0b2Rldl90cmFjZV9zb2NrZXRfaWQsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRv ZGV2LnNvY2tldC5pZCkNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Y3J5cHRvZGV2X3RyYWNlX3N0YXRzX2dldCwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYuc3Rh dHMuZ2V0KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9k ZXZfdHJhY2Vfc3RhdHNfcmVzZXQsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LnN0YXRzLnJl c2V0KQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9k ZXZfdHJhY2Vfc3ltX2NhcGFiaWxpdHlfY2hlY2sNCj4gX2FlYWQsDQo+ID4gKyAgICAgICBsaWIu Y3J5cHRvZGV2LnN5bS5jYXBhYmlsaXR5LmNoZWNrLmFlYWQpDQo+ID4gKw0KPiA+DQo+ICtSVEVf VFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fY2FwYWJpbGl0eV9j aGVjaw0KPiBfYXV0aCwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYuc3ltLmNhcGFiaWxpdHku Y2hlY2suYXV0aCkNCj4gPiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Y3J5cHRvZGV2X3RyYWNlX3N5bV9jYXBhYmlsaXR5X2NoZWNrDQo+IF9jaXBoZXIsDQo+ID4gKyAg ICAgICBsaWIuY3J5cHRvZGV2LnN5bS5jYXBhYmlsaXR5LmNoZWNrLmNpcGhlcikNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9jYXBh YmlsaXR5X2dldCwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYuc3ltLmNhcGFiaWxpdHkuZ2V0 KQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZf dHJhY2Vfc3ltX2dldF9wcml2YXRlX3Nlc3MNCj4gaW9uX3NpemUsDQo+ID4gKyAgICAgICBsaWIu Y3J5cHRvZGV2LnN5bS5nZXQucHJpdmF0ZS5zZXNzaW9uLnNpemUpDQo+ID4gKw0KPiA+ICtSVEVf VFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9hc3ltX2NhcGFiaWxpdHlf Z2V0LA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5hc3ltLmNhcGFiaWxpdHkuZ2V0KQ0KPiA+ ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2Vf YXN5bV9nZXRfcHJpdmF0ZV9zZXMNCj4gc2lvbl9zaXplLA0KPiA+ICsgICAgICAgbGliLmNyeXB0 b2Rldi5hc3ltLmdldC5wcml2YXRlLnNlc3Npb24uc2l6ZSkNCj4gPiArDQo+ID4NCj4gK1JURV9U UkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2FzeW1fZ2V0X3hmb3JtX2Vu dQ0KPiBtLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5hc3ltLmdldC54Zm9ybS5lbnVtKQ0K PiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJh Y2VfYXN5bV94Zm9ybV9jYXBhYmlsaXQNCj4geV9jaGVja19tb2RsZW4sDQo+ID4gKyAgICAgICBs aWIuY3J5cHRvZGV2LmFzeW0ueGZvcm0uY2FwYWJpbGl0eS5jaGVjay5tb2RsZW4pDQo+ID4gKw0K PiA+DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9zeW1f Y3B1X2NyeXB0b19wcm9jDQo+IGVzcywNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYuc3ltLmNw dS5jcnlwdG8ucHJvY2VzcykNCj4gPiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RF UihydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9nZXRfZXhpc3RpbmdfaGVhDQo+IGRlcl9zZXNzaW9u X3NpemUsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LnN5bS5nZXQuZXhpc3RpbmcuaGVhZGVy LnNlc3Npb24uc2l6ZSkNCj4gPiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihy dGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9zZXNzaW9uX2dldF91c2UNCj4gcl9kYXRhLA0KPiA+ICsg ICAgICAgbGliLmNyeXB0b2Rldi5zeW0uc2Vzc2lvbi5nZXQudXNlci5kYXRhKQ0KPiA+ICsNCj4g Pg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX3Nl c3Npb25fc2V0X3VzZXINCj4gX2RhdGEsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LnN5bS5z ZXNzaW9uLnNldC51c2VyLmRhdGEpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNU RVIocnRlX2NyeXB0b2Rldl90cmFjZV9nZXRfcXBfc3RhdHVzLA0KPiA+ICsgICAgICAgbGliLmNy eXB0b2Rldi5nZXQucXAuc3RhdHVzKQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JF R0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2VfY29uZmlndXJlX3Jhd19kcF9jdHgNCj4gLA0KPiA+ ICsgICAgICAgbGliLmNyeXB0b2Rldi5jb25maWd1cmUucmF3LmRwLmN0eCkNCj4gPiArDQo+ID4N Cj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9yYXdf ZHBfY3R4X3NpemUsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LmdldC5yYXcuZHAuY3R4LnNp emUpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90 cmFjZV9hZGRfZGVxX2NhbGxiYWNrLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5hZGQuZGVx LmNhbGxiYWNrKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlw dG9kZXZfdHJhY2VfYWRkX2VucV9jYWxsYmFjaywNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYu YWRkLmVucS5jYWxsYmFjaykNCj4gPiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RF UihydGVfY3J5cHRvZGV2X3RyYWNlX3JlbW92ZV9kZXFfY2FsbGJhY2ssDQo+ID4gKyAgICAgICBs aWIuY3J5cHRvZGV2LnJlbW92ZS5kZXEuY2FsbGJhY2spDQo+ID4gKw0KPiA+DQo+ICtSVEVfVFJB Q0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9yZW1vdmVfZW5xX2NhbGxiYWNr LA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5yZW1vdmUuZW5xLmNhbGxiYWNrKQ0KPiA+ICsN Cj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYXN5 bV9zZXNzaW9uX2dldF91cw0KPiBlcl9kYXRhLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5h c3ltLnNlc3Npb24uZ2V0LnVzZXIuZGF0YSkNCj4gPiArDQo+ID4NCj4gK1JURV9UUkFDRV9QT0lO VF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX2FzeW1fc2Vzc2lvbl9zZXRfdXMNCj4gZXJf ZGF0YSwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYuYXN5bS5zZXNzaW9uLnNldC51c2VyLmRh dGEpDQo+ID4gKw0KPiA+DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rl dl90cmFjZV9zZXNzaW9uX2V2ZW50X21kYXRhDQo+IF9zZXQsDQo+ID4gKyAgICAgICBsaWIuY3J5 cHRvZGV2LnNlc3Npb24uZXZlbnQubWRhdGEuc2V0KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BP SU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYWxsb2NhdGVfZHJpdmVyLA0KPiA+ICsg ICAgICAgbGliLmNyeXB0b2Rldi5hbGxvY2F0ZS5kcml2ZXIpDQo+ID4gKw0KPiA+ICtSVEVfVFJB Q0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfYWxsb2NhdGUsDQo+ID4g KyAgICAgICBsaWIuY3J5cHRvZGV2LnBtZC5hbGxvY2F0ZSkNCj4gPiArDQo+ID4NCj4gK1JURV9U UkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9jYWxsYmFja19wcm9j ZXNzDQo+ICwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYucG1kLmNhbGxiYWNrLnByb2Nlc3Mp DQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2NyeXB0b2Rldl90cmFj ZV9wbWRfY3JlYXRlLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5wbWQuY3JlYXRlKQ0KPiA+ ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2Vf cG1kX2NyZWF0ZV9kZXZfbmENCj4gbWUsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2LnBtZC5j cmVhdGUuZGV2Lm5hbWUpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRl X2NyeXB0b2Rldl90cmFjZV9wbWRfZGVzdHJveSwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYu cG1kLmRlc3Ryb3kpDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Ny eXB0b2Rldl90cmFjZV9wbWRfZ2V0X2RldiwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYucG1k LmdldC5kZXYpDQo+ID4gKw0KPiA+DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Ny eXB0b2Rldl90cmFjZV9wbWRfZ2V0X25hbWVkX2Rldg0KPiAsDQo+ID4gKyAgICAgICBsaWIuY3J5 cHRvZGV2LnBtZC5nZXQubmFtZWQuZGV2KQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5U X1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcG1kX3BhcnNlX2lucHV0X2FyZw0KPiBzLA0K PiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5wbWQucGFyc2UuaW5wdXQuYXJncykNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9wcm9i aW5nX2ZpbmlzaCwNCj4gPiArICAgICAgIGxpYi5jcnlwdG9kZXYucG1kLnByb2JpbmcuZmluaXNo KQ0KPiA+ICsNCj4gPg0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZf dHJhY2VfcG1kX3JlbGVhc2VfZGV2aWNlLA0KPiA+ICsgICAgICAgbGliLmNyeXB0b2Rldi5wbWQu cmVsZWFzZS5kZXZpY2UpDQo+ID4gKw0KPiA+DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIo cnRlX2NyeXB0b2Rldl90cmFjZV9zZXNzaW9uX2V2ZW50X21kYXRhDQo+IF9nZXQsDQo+ID4gKyAg ICAgICBsaWIuY3J5cHRvZGV2LnNlc3Npb24uZXZlbnQubWRhdGEuZ2V0KQ0KPiA+ICsNCj4gPiAr UlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfb3BfcG9vbF9jcmVh dGUsDQo+ID4gKyAgICAgICBsaWIuY3J5cHRvZGV2Lm9wLnBvb2wuY3JlYXRlKQ0KPiA+IGRpZmYg LS1naXQgYS9saWIvY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXYuYw0KPiA+IGIvbGliL2NyeXB0b2Rl di9ydGVfY3J5cHRvZGV2LmMgaW5kZXggNDJmMzIyMTA1Mi4uYjcxMjMxNTY3NCAxMDA2NDQNCj4g PiAtLS0gYS9saWIvY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXYuYw0KPiA+ICsrKyBiL2xpYi9jcnlw dG9kZXYvcnRlX2NyeXB0b2Rldi5jDQo+ID4gQEAgLTIxNiw2ICsyMTYsOCBAQCBydGVfY3J5cHRv ZGV2X2dldF9jaXBoZXJfYWxnb19lbnVtKGVudW0NCj4gPiBydGVfY3J5cHRvX2NpcGhlcl9hbGdv cml0aG0gKmFsZ29fZW51bSwgIHsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGludCBpOw0KPiA+DQo+ ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9jaXBoZXJfYWxnb19lbnVtKGFsZ29f c3RyaW5nKTsNCj4gPiArDQo+ID4gICAgICAgICBmb3IgKGkgPSAxOyBpIDwgUlRFX0RJTShydGVf Y3J5cHRvX2NpcGhlcl9hbGdvcml0aG1fc3RyaW5ncyk7IGkrKykgew0KPiA+ICAgICAgICAgICAg ICAgICBpZiAoc3RyY21wKGFsZ29fc3RyaW5nLCBydGVfY3J5cHRvX2NpcGhlcl9hbGdvcml0aG1f c3RyaW5nc1tpXSkgPT0NCj4gMCkgew0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICphbGdv X2VudW0gPSAoZW51bQ0KPiA+IHJ0ZV9jcnlwdG9fY2lwaGVyX2FsZ29yaXRobSkgaTsgQEAgLTIz Myw2ICsyMzUsOCBAQA0KPiA+IHJ0ZV9jcnlwdG9kZXZfZ2V0X2F1dGhfYWxnb19lbnVtKGVudW0g cnRlX2NyeXB0b19hdXRoX2FsZ29yaXRobQ0KPiAqYWxnb19lbnVtLCAgew0KPiA+ICAgICAgICAg dW5zaWduZWQgaW50IGk7DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfZ2V0 X2F1dGhfYWxnb19lbnVtKGFsZ29fc3RyaW5nKTsNCj4gPiArDQo+ID4gICAgICAgICBmb3IgKGkg PSAxOyBpIDwgUlRFX0RJTShydGVfY3J5cHRvX2F1dGhfYWxnb3JpdGhtX3N0cmluZ3MpOyBpKysp IHsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcChhbGdvX3N0cmluZywgcnRlX2NyeXB0 b19hdXRoX2FsZ29yaXRobV9zdHJpbmdzW2ldKSA9PSAwKQ0KPiB7DQo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgKmFsZ29fZW51bSA9IChlbnVtIHJ0ZV9jcnlwdG9fYXV0aF9hbGdvcml0aG0p DQo+ID4gaTsgQEAgLTI1MCw2ICsyNTQsOCBAQCBydGVfY3J5cHRvZGV2X2dldF9hZWFkX2FsZ29f ZW51bShlbnVtDQo+ID4gcnRlX2NyeXB0b19hZWFkX2FsZ29yaXRobSAqYWxnb19lbnVtLCAgew0K PiA+ICAgICAgICAgdW5zaWduZWQgaW50IGk7DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9k ZXZfdHJhY2VfZ2V0X2FlYWRfYWxnb19lbnVtKGFsZ29fc3RyaW5nKTsNCj4gPiArDQo+ID4gICAg ICAgICBmb3IgKGkgPSAxOyBpIDwgUlRFX0RJTShydGVfY3J5cHRvX2FlYWRfYWxnb3JpdGhtX3N0 cmluZ3MpOyBpKyspIHsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcChhbGdvX3N0cmlu ZywgcnRlX2NyeXB0b19hZWFkX2FsZ29yaXRobV9zdHJpbmdzW2ldKSA9PSAwKQ0KPiB7DQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgKmFsZ29fZW51bSA9IChlbnVtIHJ0ZV9jcnlwdG9fYWVh ZF9hbGdvcml0aG0pDQo+ID4gaTsgQEAgLTI2Nyw2ICsyNzMsOCBAQCBydGVfY3J5cHRvZGV2X2Fz eW1fZ2V0X3hmb3JtX2VudW0oZW51bQ0KPiA+IHJ0ZV9jcnlwdG9fYXN5bV94Zm9ybV90eXBlICp4 Zm9ybV9lbnVtLCAgew0KPiA+ICAgICAgICAgdW5zaWduZWQgaW50IGk7DQo+ID4NCj4gPiArICAg ICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYXN5bV9nZXRfeGZvcm1fZW51bSh4Zm9ybV9zdHJpbmcp Ow0KPiA+ICsNCj4gPiAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBSVEVfRElNKHJ0ZV9jcnlwdG9f YXN5bV94Zm9ybV9zdHJpbmdzKTsgaSsrKSB7DQo+ID4gICAgICAgICAgICAgICAgIGlmIChzdHJj bXAoeGZvcm1fc3RyaW5nLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9jcnlwdG9f YXN5bV94Zm9ybV9zdHJpbmdzW2ldKSA9PSAwKSB7IEBADQo+ID4gLTI5OSw2ICszMDcsOSBAQCBy dGVfY3J5cHRvZGV2X3N5bV9jYXBhYmlsaXR5X2dldCh1aW50OF90IGRldl9pZCwNCj4gPg0KPiA+ ICAgICAgICAgcnRlX2NyeXB0b2Rldl9pbmZvX2dldChkZXZfaWQsICZkZXZfaW5mbyk7DQo+ID4N Cj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX2NhcGFiaWxpdHlfZ2V0KGRldl9p ZCwNCj4gZGV2X2luZm8uZHJpdmVyX25hbWUsDQo+ID4gKyAgICAgICAgICAgICAgIGRldl9pbmZv LmRyaXZlcl9pZCwgaWR4LT50eXBlKTsNCj4gPiArDQo+ID4gICAgICAgICB3aGlsZSAoKGNhcGFi aWxpdHkgPSAmZGV2X2luZm8uY2FwYWJpbGl0aWVzW2krK10pLT5vcCAhPQ0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIFJURV9DUllQVE9fT1BfVFlQRV9VTkRFRklORUQpIHsNCj4gPiAgICAg ICAgICAgICAgICAgaWYgKGNhcGFiaWxpdHktPm9wICE9IFJURV9DUllQVE9fT1BfVFlQRV9TWU1N RVRSSUMpIEBADQo+ID4gLTM1OSw2ICszNzAsOSBAQCBydGVfY3J5cHRvZGV2X2FzeW1fY2FwYWJp bGl0eV9nZXQodWludDhfdCBkZXZfaWQsDQo+ID4gICAgICAgICBtZW1zZXQoJmRldl9pbmZvLCAw LCBzaXplb2Yoc3RydWN0IHJ0ZV9jcnlwdG9kZXZfaW5mbykpOw0KPiA+ICAgICAgICAgcnRlX2Ny eXB0b2Rldl9pbmZvX2dldChkZXZfaWQsICZkZXZfaW5mbyk7DQo+ID4NCj4gPiArICAgICAgIHJ0 ZV9jcnlwdG9kZXZfdHJhY2VfYXN5bV9jYXBhYmlsaXR5X2dldChkZXZfaW5mby5kcml2ZXJfbmFt ZSwNCj4gPiArICAgICAgICAgICAgICAgZGV2X2luZm8uZHJpdmVyX2lkLCBpZHgtPnR5cGUpOw0K PiA+ICsNCj4gPiAgICAgICAgIHdoaWxlICgoY2FwYWJpbGl0eSA9ICZkZXZfaW5mby5jYXBhYmls aXRpZXNbaSsrXSktPm9wICE9DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBU T19PUF9UWVBFX1VOREVGSU5FRCkgew0KPiA+ICAgICAgICAgICAgICAgICBpZiAoY2FwYWJpbGl0 eS0+b3AgIT0gUlRFX0NSWVBUT19PUF9UWVBFX0FTWU1NRVRSSUMpDQo+ID4gQEAgLTM3NSw2ICsz ODksOSBAQCBydGVfY3J5cHRvZGV2X3N5bV9jYXBhYmlsaXR5X2NoZWNrX2NpcGhlcigNCj4gPiAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc3ltbWV0cmljX2NhcGFi aWxpdHkgKmNhcGFiaWxpdHksDQo+ID4gICAgICAgICAgICAgICAgIHVpbnQxNl90IGtleV9zaXpl LCB1aW50MTZfdCBpdl9zaXplKSAgew0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9z eW1fY2FwYWJpbGl0eV9jaGVja19jaXBoZXIoY2FwYWJpbGl0eSwNCj4ga2V5X3NpemUsDQo+ID4g KyAgICAgICAgICAgICAgIGl2X3NpemUpOw0KPiA+ICsNCj4gPiAgICAgICAgIGlmIChwYXJhbV9y YW5nZV9jaGVjayhrZXlfc2l6ZSwgJmNhcGFiaWxpdHktPmNpcGhlci5rZXlfc2l6ZSkgIT0gMCkN Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiA+DQo+ID4gQEAgLTM4OSw2ICs0MDYs OSBAQCBydGVfY3J5cHRvZGV2X3N5bV9jYXBhYmlsaXR5X2NoZWNrX2F1dGgoDQo+ID4gICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBydGVfY3J5cHRvZGV2X3N5bW1ldHJpY19jYXBhYmlsaXR5 ICpjYXBhYmlsaXR5LA0KPiA+ICAgICAgICAgICAgICAgICB1aW50MTZfdCBrZXlfc2l6ZSwgdWlu dDE2X3QgZGlnZXN0X3NpemUsIHVpbnQxNl90DQo+ID4gaXZfc2l6ZSkgIHsNCj4gPiArICAgICAg IHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX2NhcGFiaWxpdHlfY2hlY2tfYXV0aChjYXBhYmlsaXR5 LCBrZXlfc2l6ZSwNCj4gPiArICAgICAgICAgICAgICAgZGlnZXN0X3NpemUsIGl2X3NpemUpOw0K PiA+ICsNCj4gPiAgICAgICAgIGlmIChwYXJhbV9yYW5nZV9jaGVjayhrZXlfc2l6ZSwgJmNhcGFi aWxpdHktPmF1dGgua2V5X3NpemUpICE9IDApDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAt MTsNCj4gPg0KPiA+IEBAIC00MDcsNiArNDI3LDkgQEAgcnRlX2NyeXB0b2Rldl9zeW1fY2FwYWJp bGl0eV9jaGVja19hZWFkKA0KPiA+ICAgICAgICAgICAgICAgICB1aW50MTZfdCBrZXlfc2l6ZSwg dWludDE2X3QgZGlnZXN0X3NpemUsIHVpbnQxNl90IGFhZF9zaXplLA0KPiA+ICAgICAgICAgICAg ICAgICB1aW50MTZfdCBpdl9zaXplKQ0KPiA+ICB7DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2 X3RyYWNlX3N5bV9jYXBhYmlsaXR5X2NoZWNrX2FlYWQoY2FwYWJpbGl0eSwNCj4ga2V5X3NpemUs DQo+ID4gKyAgICAgICAgICAgICAgIGRpZ2VzdF9zaXplLCBhYWRfc2l6ZSwgaXZfc2l6ZSk7DQo+ ID4gKw0KPiA+ICAgICAgICAgaWYgKHBhcmFtX3JhbmdlX2NoZWNrKGtleV9zaXplLCAmY2FwYWJp bGl0eS0+YWVhZC5rZXlfc2l6ZSkgIT0gMCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC0x Ow0KPiA+DQo+ID4gQEAgLTQzNyw2ICs0NjAsOSBAQA0KPiBydGVfY3J5cHRvZGV2X2FzeW1feGZv cm1fY2FwYWJpbGl0eV9jaGVja19tb2RsZW4oDQo+ID4gICAgICAgICBjb25zdCBzdHJ1Y3QgcnRl X2NyeXB0b2Rldl9hc3ltbWV0cmljX3hmb3JtX2NhcGFiaWxpdHkgKmNhcGFiaWxpdHksDQo+ID4g ICAgICAgICB1aW50MTZfdCBtb2RsZW4pDQo+ID4gIHsNCj4gPiArDQo+IHJ0ZV9jcnlwdG9kZXZf dHJhY2VfYXN5bV94Zm9ybV9jYXBhYmlsaXR5X2NoZWNrX21vZGxlbihjYXBhYmlsaXR5LA0KPiA+ ICsgICAgICAgICAgICAgICBtb2RsZW4pOw0KPiA+ICsNCj4gPiAgICAgICAgIC8qIG5vIG5lZWQg dG8gY2hlY2sgZm9yIGxpbWl0cywgaWYgbWluIG9yIG1heCA9IDAgKi8NCj4gPiAgICAgICAgIGlm IChjYXBhYmlsaXR5LT5tb2RsZW4ubWluICE9IDApIHsNCj4gPiAgICAgICAgICAgICAgICAgaWYg KG1vZGxlbiA8IGNhcGFiaWxpdHktPm1vZGxlbi5taW4pIEBAIC01NzcsNiArNjAzLDgNCj4gPiBA QCBjcnlwdG9kZXZfY2JfaW5pdChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2KSAgY29uc3QgY2hh ciAqDQo+ID4gcnRlX2NyeXB0b2Rldl9nZXRfZmVhdHVyZV9uYW1lKHVpbnQ2NF90IGZsYWcpICB7 DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9mZWF0dXJlX25hbWUoZmxhZyk7 DQo+ID4gKw0KPiA+ICAgICAgICAgc3dpdGNoIChmbGFnKSB7DQo+ID4gICAgICAgICBjYXNlIFJU RV9DUllQVE9ERVZfRkZfU1lNTUVUUklDX0NSWVBUTzoNCj4gPiAgICAgICAgICAgICAgICAgcmV0 dXJuICJTWU1NRVRSSUNfQ1JZUFRPIjsgQEAgLTYzOCw2ICs2NjYsOCBAQA0KPiA+IHJ0ZV9jcnlw dG9kZXZfZ2V0X2ZlYXR1cmVfbmFtZSh1aW50NjRfdCBmbGFnKSAgc3RydWN0IHJ0ZV9jcnlwdG9k ZXYgKg0KPiA+IHJ0ZV9jcnlwdG9kZXZfcG1kX2dldF9kZXYodWludDhfdCBkZXZfaWQpICB7DQo+ ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9nZXRfZGV2KGRldl9pZCk7DQo+ID4g Kw0KPiA+ICAgICAgICAgcmV0dXJuICZjcnlwdG9kZXZfZ2xvYmFscy5kZXZzW2Rldl9pZF07ICB9 DQo+ID4NCj4gPiBAQCAtNjUwLDYgKzY4MCw4IEBAIHJ0ZV9jcnlwdG9kZXZfcG1kX2dldF9uYW1l ZF9kZXYoY29uc3QgY2hhcg0KPiAqbmFtZSkNCj4gPiAgICAgICAgIGlmIChuYW1lID09IE5VTEwp DQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiA+DQo+ID4gKyAgICAgICBydGVf Y3J5cHRvZGV2X3RyYWNlX3BtZF9nZXRfbmFtZWRfZGV2KG5hbWUpOw0KPiA+ICsNCj4gPiAgICAg ICAgIGZvciAoaSA9IDA7IGkgPCBSVEVfQ1JZUFRPX01BWF9ERVZTOyBpKyspIHsNCj4gPiAgICAg ICAgICAgICAgICAgZGV2ID0gJmNyeXB0b2Rldl9nbG9iYWxzLmRldnNbaV07DQo+ID4NCj4gPiBA QCAtNjc2LDYgKzcwOCw4IEBAIHJ0ZV9jcnlwdG9kZXZfaXNfdmFsaWRfZGV2KHVpbnQ4X3QgZGV2 X2lkKSAgew0KPiA+ICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiA9IE5VTEw7DQo+ ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfaXNfdmFsaWRfZGV2KGRldl9pZCk7 DQo+ID4gKw0KPiA+ICAgICAgICAgaWYgKCFydGVfY3J5cHRvZGV2X2lzX3ZhbGlkX2RldmljZV9k YXRhKGRldl9pZCkpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+DQo+ID4gQEAg LTY5NSw2ICs3MjksOCBAQCBydGVfY3J5cHRvZGV2X2dldF9kZXZfaWQoY29uc3QgY2hhciAqbmFt ZSkNCj4gPiAgICAgICAgIGlmIChuYW1lID09IE5VTEwpDQo+ID4gICAgICAgICAgICAgICAgIHJl dHVybiAtMTsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9nZXRfZGV2X2lk KG5hbWUpOw0KPiA+ICsNCj4gPiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBSVEVfQ1JZUFRPX01B WF9ERVZTOyBpKyspIHsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKCFydGVfY3J5cHRvZGV2X2lz X3ZhbGlkX2RldmljZV9kYXRhKGkpKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOw0KPiA+IEBAIC03MjUsNiArNzYxLDggQEAgcnRlX2NyeXB0b2Rldl9kZXZpY2VfY291bnRf YnlfZHJpdmVyKHVpbnQ4X3QNCj4gZHJpdmVyX2lkKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPREVWX0FUVEFDSEVEKQ0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIGRldl9jb3VudCsrOw0KPiA+DQo+ID4gKyAgICAgICBydGVfY3J5cHRv ZGV2X3RyYWNlX2RldmljZV9jb3VudF9ieV9kcml2ZXIoZHJpdmVyX2lkLA0KPiA+ICsgZGV2X2Nv dW50KTsNCj4gPiArDQo+ID4gICAgICAgICByZXR1cm4gZGV2X2NvdW50Ow0KPiA+ICB9DQo+ID4N Cj4gPiBAQCAtNzUxLDEyICs3ODksMTYgQEAgcnRlX2NyeXB0b2Rldl9kZXZpY2VzX2dldChjb25z dCBjaGFyDQo+ICpkcml2ZXJfbmFtZSwgdWludDhfdCAqZGV2aWNlcywNCj4gPiAgICAgICAgICAg ICAgICAgfQ0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3Ry YWNlX2RldmljZXNfZ2V0KGRyaXZlcl9uYW1lLCBjb3VudCk7DQo+ID4gKw0KPiA+ICAgICAgICAg cmV0dXJuIGNvdW50Ow0KPiA+ICB9DQo+ID4NCj4gPiAgdm9pZCAqDQo+ID4gIHJ0ZV9jcnlwdG9k ZXZfZ2V0X3NlY19jdHgodWludDhfdCBkZXZfaWQpICB7DQo+ID4gKyAgICAgICBydGVfY3J5cHRv ZGV2X3RyYWNlX2dldF9zZWNfY3R4KGRldl9pZCk7DQo+ID4gKw0KPiA+ICAgICAgICAgaWYgKGRl dl9pZCA8IFJURV9DUllQVE9fTUFYX0RFVlMgJiYNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAocnRlX2NyeXB0b19kZXZpY2VzW2Rldl9pZF0uZmVhdHVyZV9mbGFncyAmDQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9TRUNVUklUWSkpIEBAIC03NzUsNiAr ODE3LDgNCj4gPiBAQCBydGVfY3J5cHRvZGV2X3NvY2tldF9pZCh1aW50OF90IGRldl9pZCkNCj4g Pg0KPiA+ICAgICAgICAgZGV2ID0gcnRlX2NyeXB0b2Rldl9wbWRfZ2V0X2RldihkZXZfaWQpOw0K PiA+DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3NvY2tldF9pZChkZXZfaWQsIGRl di0+ZGF0YS0+bmFtZSwNCj4gPiArICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5zb2NrZXRfaWQp Ow0KPiA+ICAgICAgICAgcmV0dXJuIGRldi0+ZGF0YS0+c29ja2V0X2lkOw0KPiA+ICB9DQo+ID4N Cj4gPiBAQCAtOTEzLDYgKzk1Nyw3IEBAIHJ0ZV9jcnlwdG9kZXZfcG1kX2FsbG9jYXRlKGNvbnN0 IGNoYXIgKm5hbWUsIGludA0KPiBzb2NrZXRfaWQpDQo+ID4gICAgICAgICAgICAgICAgIGNyeXB0 b2Rldl9nbG9iYWxzLm5iX2RldnMrKzsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICsgICAgICAg cnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfYWxsb2NhdGUoY3J5cHRvZGV2KTsNCj4gPiAgICAgICAg IHJldHVybiBjcnlwdG9kZXY7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC05MjUsNiArOTcwLDggQEAg cnRlX2NyeXB0b2Rldl9wbWRfcmVsZWFzZV9kZXZpY2Uoc3RydWN0DQo+IHJ0ZV9jcnlwdG9kZXYg KmNyeXB0b2RldikNCj4gPiAgICAgICAgIGlmIChjcnlwdG9kZXYgPT0gTlVMTCkNCj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9k ZXZfdHJhY2VfcG1kX3JlbGVhc2VfZGV2aWNlKGNyeXB0b2Rldik7DQo+ID4gKw0KPiA+ICAgICAg ICAgZGV2X2lkID0gY3J5cHRvZGV2LT5kYXRhLT5kZXZfaWQ7DQo+ID4NCj4gPiAgICAgICAgIGNy eXB0b2Rldl9mcF9vcHNfcmVzZXQocnRlX2NyeXB0b19mcF9vcHMgKyBkZXZfaWQpOyBAQCAtOTU2 LDYNCj4gPiArMTAwMyw4IEBAIHJ0ZV9jcnlwdG9kZXZfcXVldWVfcGFpcl9jb3VudCh1aW50OF90 IGRldl9pZCkNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAgZGV2ID0gJnJ0ZV9jcnlw dG9fZGV2aWNlc1tkZXZfaWRdOw0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9xdWV1 ZV9wYWlyX2NvdW50KGRldik7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuIGRldi0+ZGF0YS0+ bmJfcXVldWVfcGFpcnM7ICB9DQo+ID4NCj4gPiBAQCAtMTE3OCw2ICsxMjI3LDggQEAgcnRlX2Ny eXB0b2Rldl9nZXRfcXBfc3RhdHVzKHVpbnQ4X3QgZGV2X2lkLA0KPiA+IHVpbnQxNl90IHF1ZXVl X3BhaXJfaWQpICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2Ow0KPiA+ DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9xcF9zdGF0dXMoZGV2X2lkLCBx dWV1ZV9wYWlyX2lkKTsNCj4gPiArDQo+ID4gICAgICAgICBpZiAoIXJ0ZV9jcnlwdG9kZXZfaXNf dmFsaWRfZGV2KGRldl9pZCkpIHsNCj4gPiAgICAgICAgICAgICAgICAgQ0RFVl9MT0dfRVJSKCJJ bnZhbGlkIGRldl9pZD0lIiBQUkl1OCwgZGV2X2lkKTsNCj4gPiAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7DQo+ID4gQEAgLTEzMzEsNiArMTM4Miw3IEBAIHJ0ZV9jcnlwdG9kZXZfYWRk X2VucV9jYWxsYmFjayh1aW50OF90IGRldl9pZCwNCj4gPg0KPiA+ICAgICAgICAgcnRlX3NwaW5s b2NrX3VubG9jaygmcnRlX2NyeXB0b2Rldl9jYWxsYmFja19sb2NrKTsNCj4gPg0KPiA+ICsgICAg ICAgcnRlX2NyeXB0b2Rldl90cmFjZV9hZGRfZW5xX2NhbGxiYWNrKGRldl9pZCwgcXBfaWQsIGNi X2ZuKTsNCj4gPiAgICAgICAgIHJldHVybiBjYjsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTEzNTYs NiArMTQwOCw4IEBAIHJ0ZV9jcnlwdG9kZXZfcmVtb3ZlX2VucV9jYWxsYmFjayh1aW50OF90DQo+ IGRldl9pZCwNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4gICAgICAg ICB9DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcmVtb3ZlX2VucV9jYWxs YmFjayhkZXZfaWQsIHFwX2lkLA0KPiA+ICsgY2ItPmZuKTsNCj4gPiArDQo+ID4gICAgICAgICBk ZXYgPSAmcnRlX2NyeXB0b19kZXZpY2VzW2Rldl9pZF07DQo+ID4gICAgICAgICBpZiAocXBfaWQg Pj0gZGV2LT5kYXRhLT5uYl9xdWV1ZV9wYWlycykgew0KPiA+ICAgICAgICAgICAgICAgICBDREVW X0xPR19FUlIoIkludmFsaWQgcXVldWVfcGFpcl9pZD0lZCIsIHFwX2lkKTsgQEANCj4gPiAtMTQ2 Niw2ICsxNTIwLDggQEAgcnRlX2NyeXB0b2Rldl9hZGRfZGVxX2NhbGxiYWNrKHVpbnQ4X3QgZGV2 X2lkLA0KPiA+DQo+ID4gICAgICAgICBydGVfc3BpbmxvY2tfdW5sb2NrKCZydGVfY3J5cHRvZGV2 X2NhbGxiYWNrX2xvY2spOw0KPiA+DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2Fk ZF9kZXFfY2FsbGJhY2soZGV2X2lkLCBxcF9pZCwgY2JfZm4pOw0KPiA+ICsNCj4gPiAgICAgICAg IHJldHVybiBjYjsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTE0OTEsNiArMTU0Nyw4IEBAIHJ0ZV9j cnlwdG9kZXZfcmVtb3ZlX2RlcV9jYWxsYmFjayh1aW50OF90DQo+IGRldl9pZCwNCj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiArICAg ICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcmVtb3ZlX2RlcV9jYWxsYmFjayhkZXZfaWQsIHFwX2lk LA0KPiA+ICsgY2ItPmZuKTsNCj4gPiArDQo+ID4gICAgICAgICBkZXYgPSAmcnRlX2NyeXB0b19k ZXZpY2VzW2Rldl9pZF07DQo+ID4gICAgICAgICBpZiAocXBfaWQgPj0gZGV2LT5kYXRhLT5uYl9x dWV1ZV9wYWlycykgew0KPiA+ICAgICAgICAgICAgICAgICBDREVWX0xPR19FUlIoIkludmFsaWQg cXVldWVfcGFpcl9pZD0lZCIsIHFwX2lkKTsgQEANCj4gPiAtMTU1OSw2ICsxNjE3LDggQEAgcnRl X2NyeXB0b2Rldl9zdGF0c19nZXQodWludDhfdCBkZXZfaWQsIHN0cnVjdA0KPiA+IHJ0ZV9jcnlw dG9kZXZfc3RhdHMgKnN0YXRzKQ0KPiA+DQo+ID4gICAgICAgICBSVEVfRlVOQ19QVFJfT1JfRVJS X1JFVCgqZGV2LT5kZXZfb3BzLT5zdGF0c19nZXQsIC1FTk9UU1VQKTsNCj4gPiAgICAgICAgICgq ZGV2LT5kZXZfb3BzLT5zdGF0c19nZXQpKGRldiwgc3RhdHMpOw0KPiA+ICsNCj4gPiArICAgICAg IHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfc3RhdHNfZ2V0KGRldl9pZCwgc3RhdHMpOw0KPiA+ICAgICAg ICAgcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0xNTY3LDYgKzE2MjcsOCBAQCBydGVf Y3J5cHRvZGV2X3N0YXRzX3Jlc2V0KHVpbnQ4X3QgZGV2X2lkKSAgew0KPiA+ICAgICAgICAgc3Ry dWN0IHJ0ZV9jcnlwdG9kZXYgKmRldjsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90 cmFjZV9zdGF0c19yZXNldChkZXZfaWQpOw0KPiA+ICsNCj4gPiAgICAgICAgIGlmICghcnRlX2Ny eXB0b2Rldl9pc192YWxpZF9kZXYoZGV2X2lkKSkgew0KPiA+ICAgICAgICAgICAgICAgICBDREVW X0xPR19FUlIoIkludmFsaWQgZGV2X2lkPSUiIFBSSXU4LCBkZXZfaWQpOw0KPiA+ICAgICAgICAg ICAgICAgICByZXR1cm47DQo+ID4gQEAgLTE1OTcsNiArMTY1OSw5IEBAIHJ0ZV9jcnlwdG9kZXZf aW5mb19nZXQodWludDhfdCBkZXZfaWQsIHN0cnVjdA0KPiA+IHJ0ZV9jcnlwdG9kZXZfaW5mbyAq ZGV2X2luZm8pDQo+ID4NCj4gPiAgICAgICAgIGRldl9pbmZvLT5kcml2ZXJfbmFtZSA9IGRldi0+ ZGV2aWNlLT5kcml2ZXItPm5hbWU7DQo+ID4gICAgICAgICBkZXZfaW5mby0+ZGV2aWNlID0gZGV2 LT5kZXZpY2U7DQo+ID4gKw0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9pbmZvX2dl dChkZXZfaWQpOw0KPiA+ICsNCj4gPiAgfQ0KPiA+DQo+ID4gIGludA0KPiA+IEBAIC0xNjM5LDYg KzE3MDQsOCBAQCBydGVfY3J5cHRvZGV2X2NhbGxiYWNrX3JlZ2lzdGVyKHVpbnQ4X3QgZGV2X2lk LA0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICBydGVfc3BpbmxvY2tfdW5sb2NrKCZy dGVfY3J5cHRvZGV2X2NiX2xvY2spOw0KPiA+ICsNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZf dHJhY2VfY2FsbGJhY2tfcmVnaXN0ZXIoZGV2X2lkLCBldmVudCwgY2JfZm4pOw0KPiA+ICAgICAg ICAgcmV0dXJuICh1c2VyX2NiID09IE5VTEwpID8gLUVOT01FTSA6IDA7ICB9DQo+ID4NCj4gPiBA QCAtMTY4NSw2ICsxNzUyLDggQEAgcnRlX2NyeXB0b2Rldl9jYWxsYmFja191bnJlZ2lzdGVyKHVp bnQ4X3QNCj4gZGV2X2lkLA0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICBydGVfc3Bp bmxvY2tfdW5sb2NrKCZydGVfY3J5cHRvZGV2X2NiX2xvY2spOw0KPiA+ICsNCj4gPiArICAgICAg IHJ0ZV9jcnlwdG9kZXZfdHJhY2VfY2FsbGJhY2tfdW5yZWdpc3RlcihkZXZfaWQsIGV2ZW50LCBj Yl9mbik7DQo+ID4gICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMTY5 NSw2ICsxNzY0LDcgQEAgcnRlX2NyeXB0b2Rldl9wbWRfY2FsbGJhY2tfcHJvY2VzcyhzdHJ1Y3QN Cj4gcnRlX2NyeXB0b2RldiAqZGV2LA0KPiA+ICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZf Y2FsbGJhY2sgKmNiX2xzdDsNCj4gPiAgICAgICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2X2NhbGxi YWNrIGRldl9jYjsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfY2Fs bGJhY2tfcHJvY2VzcyhkZXYsIGV2ZW50KTsNCj4gPiAgICAgICAgIHJ0ZV9zcGlubG9ja19sb2Nr KCZydGVfY3J5cHRvZGV2X2NiX2xvY2spOw0KPiA+ICAgICAgICAgVEFJTFFfRk9SRUFDSChjYl9s c3QsICYoZGV2LT5saW5rX2ludHJfY2JzKSwgbmV4dCkgew0KPiA+ICAgICAgICAgICAgICAgICBp ZiAoY2JfbHN0LT5jYl9mbiA9PSBOVUxMIHx8IGNiX2xzdC0+ZXZlbnQgIT0gZXZlbnQpDQo+ID4g QEAgLTIxMTcsNiArMjE4Nyw5IEBADQo+ID4gcnRlX2NyeXB0b2Rldl9zeW1fZ2V0X3ByaXZhdGVf c2Vzc2lvbl9zaXplKHVpbnQ4X3QgZGV2X2lkKQ0KPiA+DQo+ID4gICAgICAgICBwcml2X3Nlc3Nf c2l6ZSA9ICgqZGV2LT5kZXZfb3BzLT5zeW1fc2Vzc2lvbl9nZXRfc2l6ZSkoZGV2KTsNCj4gPg0K PiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fZ2V0X3ByaXZhdGVfc2Vzc2lvbl9z aXplKGRldl9pZCwNCj4gPiArICAgICAgICAgICAgICAgcHJpdl9zZXNzX3NpemUpOw0KPiA+ICsN Cj4gPiAgICAgICAgIHJldHVybiBwcml2X3Nlc3Nfc2l6ZTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAg LTIxMzYsNiArMjIwOSw5IEBADQo+ID4gcnRlX2NyeXB0b2Rldl9hc3ltX2dldF9wcml2YXRlX3Nl c3Npb25fc2l6ZSh1aW50OF90IGRldl9pZCkNCj4gPg0KPiA+ICAgICAgICAgcHJpdl9zZXNzX3Np emUgPSAoKmRldi0+ZGV2X29wcy0+YXN5bV9zZXNzaW9uX2dldF9zaXplKShkZXYpOw0KPiA+DQo+ ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2FzeW1fZ2V0X3ByaXZhdGVfc2Vzc2lvbl9z aXplKGRldl9pZCwNCj4gPiArICAgICAgICAgICAgICAgcHJpdl9zZXNzX3NpemUpOw0KPiA+ICsN Cj4gPiAgICAgICAgIHJldHVybiBwcml2X3Nlc3Nfc2l6ZTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAg LTIxNTIsNiArMjIyOCw5IEBAIHJ0ZV9jcnlwdG9kZXZfc3ltX3Nlc3Npb25fc2V0X3VzZXJfZGF0 YSgNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4NCj4gPiAgICAgICAg IHJ0ZV9tZW1jcHkoc2Vzcy0+c2Vzc19kYXRhICsgc2Vzcy0+bmJfZHJpdmVycywgZGF0YSwgc2l6 ZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fc2Vzc2lvbl9z ZXRfdXNlcl9kYXRhKHNlc3MsIGRhdGEsDQo+ID4gKyBzaXplKTsNCj4gPiArDQo+ID4gICAgICAg ICByZXR1cm4gMDsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTIxNjIsNiArMjI0MSw4IEBAIHJ0ZV9j cnlwdG9kZXZfc3ltX3Nlc3Npb25fZ2V0X3VzZXJfZGF0YSgNCj4gPiAgICAgICAgIGlmIChzZXNz ID09IE5VTEwgfHwgc2Vzcy0+dXNlcl9kYXRhX3N6ID09IDApDQo+ID4gICAgICAgICAgICAgICAg IHJldHVybiBOVUxMOw0KPiA+DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9z ZXNzaW9uX2dldF91c2VyX2RhdGEoc2Vzcyk7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuICh2 b2lkICopKHNlc3MtPnNlc3NfZGF0YSArIHNlc3MtPm5iX2RyaXZlcnMpOyAgfQ0KPiA+DQo+ID4g QEAgLTIxNzgsNiArMjI1OSw5IEBADQo+IHJ0ZV9jcnlwdG9kZXZfYXN5bV9zZXNzaW9uX3NldF91 c2VyX2RhdGEodm9pZCAqc2Vzc2lvbiwgdm9pZCAqZGF0YSwNCj4gdWludDE2X3Qgc2l6DQo+ID4g ICAgICAgICBydGVfbWVtY3B5KHNlc3MtPnNlc3NfcHJpdmF0ZV9kYXRhICsNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICBzZXNzLT5tYXhfcHJpdl9kYXRhX3N6LA0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGEsIHNpemUpOw0KPiA+ICsNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9k ZXZfdHJhY2VfYXN5bV9zZXNzaW9uX3NldF91c2VyX2RhdGEoc2VzcywgZGF0YSwNCj4gPiArIHNp emUpOw0KPiA+ICsNCj4gPiAgICAgICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAt MjE4OCw2ICsyMjcyLDggQEANCj4gcnRlX2NyeXB0b2Rldl9hc3ltX3Nlc3Npb25fZ2V0X3VzZXJf ZGF0YSh2b2lkICpzZXNzaW9uKQ0KPiA+ICAgICAgICAgaWYgKHNlc3MgPT0gTlVMTCB8fCBzZXNz LT51c2VyX2RhdGFfc3ogPT0gMCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+ ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYXN5bV9zZXNzaW9uX2dldF91c2Vy X2RhdGEoc2Vzcyk7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuICh2b2lkICopKHNlc3MtPnNl c3NfcHJpdmF0ZV9kYXRhICsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzLT5tYXhf cHJpdl9kYXRhX3N6KTsgIH0gQEAgLTIyMDcsNiArMjI5Myw4DQo+ID4gQEAgcnRlX2NyeXB0b2Rl dl9zeW1fY3B1X2NyeXB0b19wcm9jZXNzKHVpbnQ4X3QgZGV2X2lkLCAgew0KPiA+ICAgICAgICAg c3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldjsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rl dl90cmFjZV9zeW1fY3B1X2NyeXB0b19wcm9jZXNzKGRldl9pZCwgc2Vzcyk7DQo+ID4gKw0KPiA+ ICAgICAgICAgaWYgKCFydGVfY3J5cHRvZGV2X2lzX3ZhbGlkX2RldihkZXZfaWQpKSB7DQo+ID4g ICAgICAgICAgICAgICAgIHN5bV9jcnlwdG9fZmlsbF9zdGF0dXModmVjLCBFSU5WQUwpOw0KPiA+ ICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiBAQCAtMjIzMCw2ICsyMzE4LDggQEAgcnRl X2NyeXB0b2Rldl9nZXRfcmF3X2RwX2N0eF9zaXplKHVpbnQ4X3QNCj4gZGV2X2lkKQ0KPiA+ICAg ICAgICAgaW50MzJfdCBzaXplID0gc2l6ZW9mKHN0cnVjdCBydGVfY3J5cHRvX3Jhd19kcF9jdHgp Ow0KPiA+ICAgICAgICAgaW50MzJfdCBwcml2X3NpemU7DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9j cnlwdG9kZXZfdHJhY2VfZ2V0X3Jhd19kcF9jdHhfc2l6ZShkZXZfaWQpOw0KPiA+ICsNCj4gPiAg ICAgICAgIGlmICghcnRlX2NyeXB0b2Rldl9pc192YWxpZF9kZXYoZGV2X2lkKSkNCj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4NCj4gPiBAQCAtMjI1Niw2ICsyMzQ2LDgg QEAgcnRlX2NyeXB0b2Rldl9jb25maWd1cmVfcmF3X2RwX2N0eCh1aW50OF90DQo+ID4gZGV2X2lk LCB1aW50MTZfdCBxcF9pZCwgIHsNCj4gPiAgICAgICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2ICpk ZXY7DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfY29uZmlndXJlX3Jhd19k cF9jdHgoZGV2X2lkLCBxcF9pZCwNCj4gPiArIHNlc3NfdHlwZSk7DQo+ID4gKw0KPiA+ICAgICAg ICAgaWYgKCFydGVfY3J5cHRvZGV2X2dldF9xcF9zdGF0dXMoZGV2X2lkLCBxcF9pZCkpDQo+ID4g ICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+DQo+ID4gQEAgLTIyODAsNiArMjM3 Miw5IEBADQo+IHJ0ZV9jcnlwdG9kZXZfc2Vzc2lvbl9ldmVudF9tZGF0YV9zZXQodWludDhfdCBk ZXZfaWQsIHZvaWQgKnNlc3MsDQo+ID4gICAgICAgICBpZiAoc2VzcyA9PSBOVUxMIHx8IGV2X21k YXRhID09IE5VTEwpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+DQo+ ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3Nlc3Npb25fZXZlbnRfbWRhdGFfc2V0KGRl dl9pZCwgc2VzcywNCj4gb3BfdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgc2Vzc190eXBlLCBl dl9tZGF0YSwgc2l6ZSk7DQo+ID4gKw0KPiA+ICAgICAgICAgaWYgKCFydGVfY3J5cHRvZGV2X2lz X3ZhbGlkX2RldihkZXZfaWQpKQ0KPiA+ICAgICAgICAgICAgICAgICBnb3RvIHNraXBfcG1kX29w Ow0KPiA+DQo+ID4gQEAgLTI0MjksNiArMjUyNCw3IEBAIHJ0ZV9jcnlwdG9fb3BfcG9vbF9jcmVh dGUoY29uc3QgY2hhciAqbmFtZSwNCj4gZW51bSBydGVfY3J5cHRvX29wX3R5cGUgdHlwZSwNCj4g PiAgICAgICAgIHByaXYtPnByaXZfc2l6ZSA9IHByaXZfc2l6ZTsNCj4gPiAgICAgICAgIHByaXYt PnR5cGUgPSB0eXBlOw0KPiA+DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX29wX3Bv b2xfY3JlYXRlKG5hbWUsIHNvY2tldF9pZCwgdHlwZSwNCj4gPiArIG5iX2VsdHMsIG1wKTsNCj4g PiAgICAgICAgIHJldHVybiBtcDsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTI0NDEsNiArMjUzNyw4 IEBAIHJ0ZV9jcnlwdG9kZXZfcG1kX2NyZWF0ZV9kZXZfbmFtZShjaGFyDQo+ICpuYW1lLCBjb25z dCBjaGFyICpkZXZfbmFtZV9wcmVmaXgpDQo+ID4gICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQ0K PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPg0KPiA+ICsgICAgICAgcnRl X2NyeXB0b2Rldl90cmFjZV9wbWRfY3JlYXRlX2Rldl9uYW1lKGRldl9uYW1lX3ByZWZpeCk7DQo+ ID4gKw0KPiA+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IFJURV9DUllQVE9fTUFYX0RFVlM7IGkr Kykgew0KPiA+ICAgICAgICAgICAgICAgICBpbnQgcmV0ID0gc25wcmludGYobmFtZSwgUlRFX0NS WVBUT0RFVl9OQU1FX01BWF9MRU4sDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiJXNfJXUiLCBkZXZfbmFtZV9wcmVmaXgsIGkpOyBAQA0KPiA+IC0yNDY3LDYgKzI1NjUsOCBA QCBydGVfY3J5cHRvZGV2X2RyaXZlcl9pZF9nZXQoY29uc3QgY2hhciAqbmFtZSkNCj4gPiAgICAg ICAgIHN0cnVjdCBjcnlwdG9kZXZfZHJpdmVyICpkcml2ZXI7DQo+ID4gICAgICAgICBjb25zdCBj aGFyICpkcml2ZXJfbmFtZTsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9k cml2ZXJfaWRfZ2V0KG5hbWUpOw0KPiA+ICsNCj4gPiAgICAgICAgIGlmIChuYW1lID09IE5VTEwp IHsNCj4gPiAgICAgICAgICAgICAgICAgUlRFX0xPRyhERUJVRywgQ1JZUFRPREVWLCAibmFtZSBw b2ludGVyIE5VTEwiKTsNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiA+IEBAIC0y NDk0LDYgKzI1OTQsOCBAQCBydGVfY3J5cHRvZGV2X25hbWVfZ2V0KHVpbnQ4X3QgZGV2X2lkKQ0K PiA+ICAgICAgICAgaWYgKGRldiA9PSBOVUxMKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4g TlVMTDsNCj4gPg0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9uYW1lX2dldChkZXZf aWQsIGRldi0+ZGF0YS0+bmFtZSk7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuIGRldi0+ZGF0 YS0+bmFtZTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTI1MDMsOCArMjYwNSwxMSBAQCBydGVfY3J5 cHRvZGV2X2RyaXZlcl9uYW1lX2dldCh1aW50OF90DQo+IGRyaXZlcl9pZCkNCj4gPiAgICAgICAg IHN0cnVjdCBjcnlwdG9kZXZfZHJpdmVyICpkcml2ZXI7DQo+ID4NCj4gPiAgICAgICAgIFRBSUxR X0ZPUkVBQ0goZHJpdmVyLCAmY3J5cHRvZGV2X2RyaXZlcl9saXN0LCBuZXh0KQ0KPiA+IC0gICAg ICAgICAgICAgICBpZiAoZHJpdmVyLT5pZCA9PSBkcml2ZXJfaWQpDQo+ID4gKyAgICAgICAgICAg ICAgIGlmIChkcml2ZXItPmlkID09IGRyaXZlcl9pZCkgew0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfZHJpdmVyX25hbWVfZ2V0KGRyaXZlcl9pZCwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlci0+ZHJpdmVyLT5uYW1lKTsN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHJpdmVyLT5kcml2ZXItPm5hbWU7 DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiAgICAgICAgIHJldHVybiBOVUxMOw0KPiA+ICB9 DQo+ID4NCj4gPiBAQCAtMjUxNyw2ICsyNjIyLDggQEAgcnRlX2NyeXB0b2Rldl9hbGxvY2F0ZV9k cml2ZXIoc3RydWN0DQo+ID4gY3J5cHRvZGV2X2RyaXZlciAqY3J5cHRvX2RydiwNCj4gPg0KPiA+ ICAgICAgICAgVEFJTFFfSU5TRVJUX1RBSUwoJmNyeXB0b2Rldl9kcml2ZXJfbGlzdCwgY3J5cHRv X2RydiwgbmV4dCk7DQo+ID4NCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYWxsb2Nh dGVfZHJpdmVyKGRydi0+bmFtZSk7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuIG5iX2RyaXZl cnMrKzsNCj4gPiAgfQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9jcnlwdG9kZXYvcnRlX2Ny eXB0b2Rldl90cmFjZS5oDQo+ID4gYi9saWIvY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXZfdHJhY2Uu aA0KPiA+IGluZGV4IGEzZjYwNDhlN2QuLjg0OTkxYzViMGEgMTAwNjQ0DQo+ID4gLS0tIGEvbGli L2NyeXB0b2Rldi9ydGVfY3J5cHRvZGV2X3RyYWNlLmgNCj4gPiArKysgYi9saWIvY3J5cHRvZGV2 L3J0ZV9jcnlwdG9kZXZfdHJhY2UuaA0KPiA+IEBAIC0xOCw2ICsxOCw3IEBAIGV4dGVybiAiQyIg ew0KPiA+ICAjaW5jbHVkZSA8cnRlX3RyYWNlX3BvaW50Lmg+DQo+ID4NCj4gPiAgI2luY2x1ZGUg InJ0ZV9jcnlwdG9kZXYuaCINCj4gPiArI2luY2x1ZGUgImNyeXB0b2Rldl9wbWQuaCINCj4gPg0K PiA+ICBSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gICAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2Nv bmZpZ3VyZSwgQEAgLTEzOCw2ICsxMzksNDI4IEBADQo+ID4gUlRFX1RSQUNFX1BPSU5UKA0KPiA+ ICAgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHNlc3MpOw0KPiA+ICApDQo+ID4NCj4g PiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9jYWxs YmFja19yZWdpc3RlciwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQ4X3Qg ZGV2X2lkLA0KPiA+ICsgICAgICAgICAgICAgICBlbnVtIHJ0ZV9jcnlwdG9kZXZfZXZlbnRfdHlw ZSBldmVudCwgY29uc3Qgdm9pZCAqY2JfZm4pLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50 X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChl dmVudCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoY2JfZm4pOw0KPiA+ ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRv ZGV2X3RyYWNlX2NhbGxiYWNrX3VucmVnaXN0ZXIsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9J TlRfQVJHUyh1aW50OF90IGRldl9pZCwNCj4gPiArICAgICAgICAgICAgICAgZW51bSBydGVfY3J5 cHRvZGV2X2V2ZW50X3R5cGUgZXZlbnQsIGNvbnN0IHZvaWQgKmNiX2ZuKSwNCj4gPiArICAgICAg IHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2Vf cG9pbnRfZW1pdF9pbnQoZXZlbnQpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRf cHRyKGNiX2ZuKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsg ICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9kZXZpY2VfY291bnRfYnlfZHJpdmVyLA0KPiA+ICsg ICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDhfdCBkcml2ZXJfaWQsIHVpbnQ4X3QgZGV2 X2NvdW50KSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGRyaXZlcl9pZCk7 DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChkZXZfY291bnQpOw0KPiA+ICsp DQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2 X3RyYWNlX2RldmljZXNfZ2V0LA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1MoY29u c3QgY2hhciAqZHJpdmVyX25hbWUsIHVpbnQ4X3QgY291bnQpLA0KPiA+ICsgICAgICAgcnRlX3Ry YWNlX3BvaW50X2VtaXRfc3RyaW5nKGRyaXZlcl9uYW1lKTsNCj4gPiArICAgICAgIHJ0ZV90cmFj ZV9wb2ludF9lbWl0X3U4KGNvdW50KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BP SU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9kcml2ZXJfaWRfZ2V0LA0KPiA+ ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1MoY29uc3QgY2hhciAqbmFtZSksDQo+ID4gKyAg ICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcobmFtZSk7DQo+ID4gKykNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfZHJp dmVyX25hbWVfZ2V0LA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDhfdCBk cml2ZXJfaWQsIGNvbnN0IGNoYXIgKm5hbWUpLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50 X2VtaXRfdTgoZHJpdmVyX2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0 cmluZyhuYW1lKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsg ICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9nZXRfYWVhZF9hbGdvX2VudW0sDQo+ID4gKyAgICAg ICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBjaGFyICphbGdvX3N0cmluZyksDQo+ID4gKyAg ICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcoYWxnb19zdHJpbmcpOw0KPiA+ICspDQo+ ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3Ry YWNlX2dldF9hdXRoX2FsZ29fZW51bSwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdT KGNvbnN0IGNoYXIgKmFsZ29fc3RyaW5nKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9l bWl0X3N0cmluZyhhbGdvX3N0cmluZyk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9Q T0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfZ2V0X2NpcGhlcl9hbGdvX2Vu dW0sDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBjaGFyICphbGdvX3N0 cmluZyksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcoYWxnb19zdHJp bmcpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBy dGVfY3J5cHRvZGV2X3RyYWNlX2dldF9kZXZfaWQsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9J TlRfQVJHUyhjb25zdCBjaGFyICpuYW1lKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9l bWl0X3N0cmluZyhuYW1lKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0K PiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9nZXRfZmVhdHVyZV9uYW1lLA0KPiA+ICsg ICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDY0X3QgZmxhZyksDQo+ID4gKyAgICAgICBy dGVfdHJhY2VfcG9pbnRfZW1pdF91NjQoZmxhZyk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9U UkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfZ2V0X3NlY19jdHgs DQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50OF90IGRldl9pZCksDQo+ID4g KyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChkZXZfaWQpOw0KPiA+ICspDQo+ID4gKw0K PiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2lu Zm9fZ2V0LA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDhfdCBkZXZfaWQp LA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArKQ0K PiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90 cmFjZV9pc192YWxpZF9kZXYsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50 OF90IGRldl9pZCksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChkZXZfaWQp Ow0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVf Y3J5cHRvZGV2X3RyYWNlX25hbWVfZ2V0LA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FS R1ModWludDhfdCBkZXZfaWQsIGNvbnN0IGNoYXIgKm5hbWUpLA0KPiA+ICsgICAgICAgcnRlX3Ry YWNlX3BvaW50X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9l bWl0X3N0cmluZyhuYW1lKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0K PiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9xdWV1ZV9wYWlyX2NvdW50LA0KPiA+ICsg ICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1MoY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRl diksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoZGV2KTsNCj4gPiArICAg ICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0cmluZyhkZXYtPmRhdGEtPm5hbWUpOw0KPiA+ICsg ICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2LT5kYXRhLT5zb2NrZXRfaWQpOw0KPiA+ ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2LT5kYXRhLT5kZXZfaWQpOw0KPiA+ ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KGRldi0+ZGF0YS0+bmJfcXVldWVfcGFp cnMpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBy dGVfY3J5cHRvZGV2X3RyYWNlX3NvY2tldF9pZCwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lO VF9BUkdTKHVpbnQ4X3QgZGV2X2lkLCBjb25zdCBjaGFyICpuYW1lLCBpbnQNCj4gc29ja2V0X2lk KSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKyAg ICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcobmFtZSk7DQo+ID4gKyAgICAgICBydGVf dHJhY2VfcG9pbnRfZW1pdF9pbnQoc29ja2V0X2lkKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRF X1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zdGF0c19nZXQs DQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50OF90IGRldl9pZCwNCj4gPiAr ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfc3RhdHMgKnN0YXRzKSwN Cj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKyAgICAg ICBydGVfdHJhY2VfcG9pbnRfZW1pdF91NjQoc3RhdHMtPmVucXVldWVkX2NvdW50KTsNCj4gPiAr ICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U2NChzdGF0cy0+ZGVxdWV1ZWRfY291bnQpOw0K PiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTY0KHN0YXRzLT5lbnF1ZXVlX2Vycl9j b3VudCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91NjQoc3RhdHMtPmRlcXVl dWVfZXJyX2NvdW50KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zdGF0c19yZXNldCwNCj4gPiArICAgICAgIFJU RV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQ4X3QgZGV2X2lkKSwNCj4gPiArICAgICAgIHJ0ZV90cmFj ZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9Q T0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX2NhcGFiaWxpdHlfY2hl Y2tfYWVhZCwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKA0KPiA+ICsgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zeW1tZXRyaWNfY2FwYWJpbGl0eSAq Y2FwYWJpbGl0eSwNCj4gPiArICAgICAgICAgICAgICAgdWludDE2X3Qga2V5X3NpemUsIHVpbnQx Nl90IGRpZ2VzdF9zaXplLCB1aW50MTZfdCBhYWRfc2l6ZSwNCj4gPiArICAgICAgICAgICAgICAg dWludDE2X3QgaXZfc2l6ZSksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIo Y2FwYWJpbGl0eSk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQoY2FwYWJp bGl0eS0+eGZvcm1fdHlwZSk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYo a2V5X3NpemUpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KGRpZ2VzdF9z aXplKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihhYWRfc2l6ZSk7DQo+ ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYoaXZfc2l6ZSk7DQo+ID4gKykNCj4g PiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJh Y2Vfc3ltX2NhcGFiaWxpdHlfY2hlY2tfYXV0aCwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lO VF9BUkdTKA0KPiA+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9z eW1tZXRyaWNfY2FwYWJpbGl0eSAqY2FwYWJpbGl0eSwNCj4gPiArICAgICAgICAgICAgICAgdWlu dDE2X3Qga2V5X3NpemUsIHVpbnQxNl90IGRpZ2VzdF9zaXplLCB1aW50MTZfdCBpdl9zaXplKSwN Cj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjYXBhYmlsaXR5KTsNCj4gPiAr ICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChjYXBhYmlsaXR5LT54Zm9ybV90eXBlKTsN Cj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihrZXlfc2l6ZSk7DQo+ID4gKyAg ICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYoZGlnZXN0X3NpemUpOw0KPiA+ICsgICAgICAg cnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KGl2X3NpemUpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtS VEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9jYXBh YmlsaXR5X2NoZWNrX2NpcGhlciwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKA0K PiA+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zeW1tZXRyaWNf Y2FwYWJpbGl0eSAqY2FwYWJpbGl0eSwNCj4gPiArICAgICAgICAgICAgICAgdWludDE2X3Qga2V5 X3NpemUsIHVpbnQxNl90IGl2X3NpemUpLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2Vt aXRfcHRyKGNhcGFiaWxpdHkpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50 KGNhcGFiaWxpdHktPnhmb3JtX3R5cGUpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTE2KGtleV9zaXplKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihp dl9zaXplKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAg ICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fY2FwYWJpbGl0eV9nZXQsDQo+ID4gKyAgICAgICBS VEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50OF90IGRldl9pZCwgY29uc3QgY2hhciAqZHJpdmVyX25h bWUsDQo+ID4gKyAgICAgICAgICAgICAgIHVpbnQ4X3QgZHJpdmVyX2lkLCBpbnQgaWR4X3R5cGUp LA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArICAg ICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0cmluZyhkcml2ZXJfbmFtZSk7DQo+ID4gKyAgICAg ICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChkcml2ZXJfaWQpOw0KPiA+ICsgICAgICAgcnRlX3Ry YWNlX3BvaW50X2VtaXRfaW50KGlkeF90eXBlKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RS QUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fZ2V0X3ByaXZh dGVfc2Vzc2lvbl9zaXplLA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDhf dCBkZXZfaWQsIHVpbnQzMl90IHByaXZfc2Vzc19zaXplKSwNCj4gPiArICAgICAgIHJ0ZV90cmFj ZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1p dF91MzIocHJpdl9zZXNzX3NpemUpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9J TlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2FzeW1fY2FwYWJpbGl0eV9nZXQs DQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBjaGFyICpkcml2ZXJfbmFt ZSwgdWludDhfdCBkcml2ZXJfaWQsDQo+ID4gKyAgICAgICAgICAgICAgIGludCBpZHhfdHlwZSks DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcoZHJpdmVyX25hbWUpOw0K PiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZHJpdmVyX2lkKTsNCj4gPiArICAg ICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChpZHhfdHlwZSk7DQo+ID4gKykNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYXN5 bV9nZXRfcHJpdmF0ZV9zZXNzaW9uX3NpemUsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRf QVJHUyh1aW50OF90IGRldl9pZCwgdWludDMyX3QgcHJpdl9zZXNzX3NpemUpLA0KPiA+ICsgICAg ICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFj ZV9wb2ludF9lbWl0X3UzMihwcml2X3Nlc3Nfc2l6ZSk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JU RV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYXN5bV9nZXRf eGZvcm1fZW51bSwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKGNvbnN0IGNoYXIg Knhmb3JtX3N0cmluZyksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmco eGZvcm1fc3RyaW5nKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9hc3ltX3hmb3JtX2NhcGFiaWxpdHlfY2hlY2tf bW9kbGVuLA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1MoY29uc3Qgdm9pZCAqY2Fw YWJpbGl0eSwgdWludDE2X3QgbW9kbGVuKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9l bWl0X3B0cihjYXBhYmlsaXR5KTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3Ux Nihtb2RsZW4pOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAg ICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9jcHVfY3J5cHRvX3Byb2Nlc3MsDQo+ID4gKyAg ICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50OF90IGRldl9pZCwgY29uc3Qgdm9pZCAqc2Vz cyksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChkZXZfaWQpOw0KPiA+ICsg ICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHNlc3MpOw0KPiA+ICspDQo+ID4gKw0KPiA+ ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9n ZXRfZXhpc3RpbmdfaGVhZGVyX3Nlc3Npb25fc2l6ZSwNCj4gPiArICAgICAgIFJURV9UUkFDRV9Q T0lOVF9BUkdTKHN0cnVjdCBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uICpzZXNzKSwNCj4gPiAr ICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihzZXNzKTsNCj4gPiArKQ0KPiA+ICsNCj4g PiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1f c2Vzc2lvbl9nZXRfdXNlcl9kYXRhLA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1Mo Y29uc3Qgdm9pZCAqc2VzcyksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIo c2Vzcyk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAg IHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX3Nlc3Npb25fc2V0X3VzZXJfZGF0YSwNCj4gPiArICAg ICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKGNvbnN0IHZvaWQgKnNlc3MsIGNvbnN0IHZvaWQgKmRh dGEsIHVpbnQxNl90DQo+IHNpemUpLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRf cHRyKHNlc3MpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGRhdGEpOw0K PiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHNpemUpOw0KPiA+ICspDQo+ID4g Kw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNl X2dldF9xcF9zdGF0dXMsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50OF90 IGRldl9pZCwgdWludDE2X3QgcXVldWVfcGFpcl9pZCksDQo+ID4gKyAgICAgICBydGVfdHJhY2Vf cG9pbnRfZW1pdF91OChkZXZfaWQpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRf dTE2KHF1ZXVlX3BhaXJfaWQpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQo DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2NvbmZpZ3VyZV9yYXdfZHBfY3R4LA0K PiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDhfdCBkZXZfaWQsIHVpbnQxNl90 IHFwX2lkLCBpbnQNCj4gc2Vzc190eXBlKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9l bWl0X3U4KGRldl9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocXBf aWQpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHNlc3NfdHlwZSk7DQo+ ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlw dG9kZXZfdHJhY2VfZ2V0X3Jhd19kcF9jdHhfc2l6ZSwNCj4gPiArICAgICAgIFJURV9UUkFDRV9Q T0lOVF9BUkdTKHVpbnQ4X3QgZGV2X2lkKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9l bWl0X3U4KGRldl9pZCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4g PiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfYWRkX2RlcV9jYWxsYmFjaywNCj4gPiArICAg ICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQ4X3QgZGV2X2lkLCB1aW50MTZfdCBxcF9pZCwg Y29uc3Qgdm9pZA0KPiAqY2JfZm4pLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRf dTgoZGV2X2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihxcF9pZCk7 DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoY2JfZm4pOw0KPiA+ICspDQo+ ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3Ry YWNlX2FkZF9lbnFfY2FsbGJhY2ssDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1 aW50OF90IGRldl9pZCwgdWludDE2X3QgcXBfaWQsIGNvbnN0IHZvaWQNCj4gKmNiX2ZuKSwNCj4g PiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKyAgICAgICBy dGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocXBfaWQpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3Bv aW50X2VtaXRfcHRyKGNiX2ZuKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5U KA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9yZW1vdmVfZGVxX2NhbGxiYWNrLA0K PiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDhfdCBkZXZfaWQsIHVpbnQxNl90 IHFwX2lkLCBjb25zdCB2b2lkDQo+ICpmbiksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRf ZW1pdF91OChkZXZfaWQpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHFw X2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihmbik7DQo+ID4gKykN Cj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZf dHJhY2VfcmVtb3ZlX2VucV9jYWxsYmFjaywNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9B UkdTKHVpbnQ4X3QgZGV2X2lkLCB1aW50MTZfdCBxcF9pZCwgY29uc3Qgdm9pZA0KPiAqZm4pLA0K PiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArICAgICAg IHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihxcF9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2Vf cG9pbnRfZW1pdF9wdHIoZm4pOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQo DQo+ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX2FzeW1fc2Vzc2lvbl9nZXRfdXNlcl9k YXRhLA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1MoY29uc3Qgdm9pZCAqc2Vzcyks DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoc2Vzcyk7DQo+ID4gKykNCj4g PiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJh Y2VfYXN5bV9zZXNzaW9uX3NldF91c2VyX2RhdGEsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9J TlRfQVJHUyhjb25zdCB2b2lkICpzZXNzLCBjb25zdCB2b2lkICpkYXRhLCB1aW50MTZfdA0KPiBz aXplKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihzZXNzKTsNCj4gPiAr ICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihkYXRhKTsNCj4gPiArICAgICAgIHJ0ZV90 cmFjZV9wb2ludF9lbWl0X3UxNihzaXplKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNF X1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zZXNzaW9uX2V2ZW50X21k YXRhX3NldCwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQ4X3QgZGV2X2lk LCBjb25zdCB2b2lkICpzZXNzLCBpbnQNCj4gb3BfdHlwZSwNCj4gPiArICAgICAgICAgICAgICAg aW50IHNlc3NfdHlwZSwgY29uc3Qgdm9pZCAqZXZfbWRhdGEsIHVpbnQxNl90IHNpemUpLA0KPiA+ ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2X2lkKTsNCj4gPiArICAgICAgIHJ0 ZV90cmFjZV9wb2ludF9lbWl0X3B0cihzZXNzKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2lu dF9lbWl0X2ludChvcF90eXBlKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X2lu dChzZXNzX3R5cGUpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGV2X21k YXRhKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihzaXplKTsNCj4gPiAr KQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rl dl90cmFjZV9hbGxvY2F0ZV9kcml2ZXIsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJH Uyhjb25zdCBjaGFyICpuYW1lKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0 cmluZyhuYW1lKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsg ICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfYWxsb2NhdGUsDQo+ID4gKyAgICAgICBSVEVf VFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqY3J5cHRvZGV2KSwN Cj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjcnlwdG9kZXYpOw0KPiA+ICsg ICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfc3RyaW5nKGNyeXB0b2Rldi0+ZGF0YS0+bmFtZSk7 DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChjcnlwdG9kZXYtPmRhdGEtPnNv Y2tldF9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChjcnlwdG9kZXYt PmRhdGEtPmRldl9pZCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4g PiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcG1kX2NhbGxiYWNrX3Byb2Nlc3MsDQo+ID4g KyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2LA0K PiA+ICsgICAgICAgICAgICAgICBlbnVtIHJ0ZV9jcnlwdG9kZXZfZXZlbnRfdHlwZSBldmVudCks DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoZGV2KTsNCj4gPiArICAgICAg IHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0cmluZyhkZXYtPmRhdGEtPm5hbWUpOw0KPiA+ICsgICAg ICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2LT5kYXRhLT5zb2NrZXRfaWQpOw0KPiA+ICsg ICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgoZGV2LT5kYXRhLT5kZXZfaWQpOw0KPiA+ICsg ICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KGV2ZW50KTsNCj4gPiArKQ0KPiA+ICsNCj4g PiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRf Y3JlYXRlLA0KPiA+ICsgICAgICAgUlRFX1RSQUNFX1BPSU5UX0FSR1MoY29uc3QgY2hhciAqbmFt ZSwgaW50IHNvY2tldF9pZCwNCj4gPiArICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqY3J5cHRv ZGV2KSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0cmluZyhuYW1lKTsNCj4g PiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChzb2NrZXRfaWQpOw0KPiA+ICsgICAg ICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGNyeXB0b2Rldik7DQo+ID4gKykNCj4gPiArDQo+ ID4gK1JURV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcG1k X2NyZWF0ZV9kZXZfbmFtZSwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKGNvbnN0 IGNoYXIgKmRldl9uYW1lX3ByZWZpeCksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1p dF9zdHJpbmcoZGV2X25hbWVfcHJlZml4KTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNF X1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfZGVzdHJveSwNCj4g PiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKGNvbnN0IHN0cnVjdCBydGVfY3J5cHRvZGV2 ICpjcnlwdG9kZXYpLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGNyeXB0 b2Rldik7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcoY3J5cHRvZGV2 LT5kYXRhLT5uYW1lKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGNyeXB0 b2Rldi0+ZGF0YS0+c29ja2V0X2lkKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BP SU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfZ2V0X2RldiwNCj4gPiAr ICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQ4X3QgZGV2X2lkKSwNCj4gPiArICAgICAg IHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGRldl9pZCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JU RV9UUkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2VfcG1kX2dldF9u YW1lZF9kZXYsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBjaGFyICpu YW1lKSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3N0cmluZyhuYW1lKTsNCj4g PiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5UKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0 b2Rldl90cmFjZV9wbWRfcGFyc2VfaW5wdXRfYXJncywNCj4gPiArICAgICAgIFJURV9UUkFDRV9Q T0lOVF9BUkdTKGNoYXIgKm5hbWUsIGludCBzb2NrZXRfaWQsDQo+ID4gKyAgICAgICAgICAgICAg IHVpbnQzMl90IG1heF9uYl9xdWV1ZV9wYWlycyksDQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9p bnRfZW1pdF9zdHJpbmcobmFtZSk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9p bnQoc29ja2V0X2lkKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihtYXhf bmJfcXVldWVfcGFpcnMpOw0KPiA+ICspDQo+ID4gKw0KPiA+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ ID4gKyAgICAgICBydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9wcm9iaW5nX2ZpbmlzaCwNCj4gPiAr ICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKGNvbnN0IHN0cnVjdCBydGVfY3J5cHRvZGV2ICpj cnlwdG9kZXYpLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGNyeXB0b2Rl dik7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9zdHJpbmcoY3J5cHRvZGV2LT5k YXRhLT5uYW1lKTsNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KGNyeXB0b2Rl di0+ZGF0YS0+c29ja2V0X2lkKTsNCj4gPiArKQ0KPiA+ICsNCj4gPiArUlRFX1RSQUNFX1BPSU5U KA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfcmVsZWFzZV9kZXZpY2UsDQo+ ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rl diAqY3J5cHRvZGV2KSwNCj4gPiArICAgICAgIHJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjcnlw dG9kZXYpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfc3RyaW5nKGNyeXB0b2Rl di0+ZGF0YS0+bmFtZSk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OChjcnlw dG9kZXYtPmRhdGEtPnNvY2tldF9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1p dF91OChjcnlwdG9kZXYtPmRhdGEtPmRldl9pZCk7DQo+ID4gKykNCj4gPiArDQo+ID4gK1JURV9U UkFDRV9QT0lOVCgNCj4gPiArICAgICAgIHJ0ZV9jcnlwdG9kZXZfdHJhY2Vfb3BfcG9vbF9jcmVh dGUsDQo+ID4gKyAgICAgICBSVEVfVFJBQ0VfUE9JTlRfQVJHUyhjb25zdCBjaGFyICpuYW1lLCBp bnQgc29ja2V0X2lkLCBpbnQgdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgdWludDMyX3QgbmJf ZWx0cywgY29uc3Qgdm9pZCAqbXApLA0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRf c3RyaW5nKG5hbWUpOw0KPiA+ICsgICAgICAgcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHNvY2tl dF9pZCk7DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQodHlwZSk7DQo+ID4g KyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIobmJfZWx0cyk7DQo+ID4gKyAgICAgICBy dGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIobXApOw0KPiA+ICspDQo+ID4gKw0KPiA+ICAjaWZkZWYg X19jcGx1c3BsdXMNCj4gPiAgfQ0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2Ny eXB0b2Rldi9ydGVfY3J5cHRvZGV2X3RyYWNlX2ZwLmgNCj4gPiBiL2xpYi9jcnlwdG9kZXYvcnRl X2NyeXB0b2Rldl90cmFjZV9mcC5oDQo+ID4gaW5kZXggOTIxODk5N2MxNC4uMDNmNDUwM2QzNCAx MDA2NDQNCj4gPiAtLS0gYS9saWIvY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXZfdHJhY2VfZnAuaA0K PiA+ICsrKyBiL2xpYi9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldl90cmFjZV9mcC5oDQo+ID4gQEAg LTMxLDYgKzMxLDEyIEBAIFJURV9UUkFDRV9QT0lOVF9GUCgNCj4gPiAgICAgICAgIHJ0ZV90cmFj ZV9wb2ludF9lbWl0X3UxNihuYl9vcHMpOw0KPiA+ICApDQo+ID4NCj4gPiArUlRFX1RSQUNFX1BP SU5UX0ZQKA0KPiA+ICsgICAgICAgcnRlX2NyeXB0b2Rldl90cmFjZV9zZXNzaW9uX2V2ZW50X21k YXRhX2dldCwNCj4gPiArICAgICAgIFJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQ4X3QgdHlwZSks DQo+ID4gKyAgICAgICBydGVfdHJhY2VfcG9pbnRfZW1pdF91OCh0eXBlKTsNCj4gPiArKQ0KPiA+ ICsNCj4gPiAgI2lmZGVmIF9fY3BsdXNwbHVzDQo+ID4gIH0NCj4gPiAgI2VuZGlmDQo+ID4gZGlm ZiAtLWdpdCBhL2xpYi9jcnlwdG9kZXYvdmVyc2lvbi5tYXAgYi9saWIvY3J5cHRvZGV2L3ZlcnNp b24ubWFwDQo+ID4gaW5kZXggNWFlZTg3YzZmNy4uYTc4ODE4NTIyOSAxMDA2NDQNCj4gPiAtLS0g YS9saWIvY3J5cHRvZGV2L3ZlcnNpb24ubWFwDQo+ID4gKysrIGIvbGliL2NyeXB0b2Rldi92ZXJz aW9uLm1hcA0KPiA+IEBAIC0xMDksNiArMTA5LDYzIEBAIEVYUEVSSU1FTlRBTCB7DQo+ID4gICAg ICAgICAjYWRkZWQgaW4gMjIuMDcNCj4gPiAgICAgICAgIHJ0ZV9jcnlwdG9kZXZfc2Vzc2lvbl9l dmVudF9tZGF0YV9zZXQ7DQo+ID4gICAgICAgICBydGVfY3J5cHRvX2FzeW1fa2Vfc3RyaW5nczsN Cj4gPiArDQo+ID4gKyAgICAgICAjYWRkZWQgaW4gMjIuMTENCj4gPiArICAgICAgIF9fcnRlX2Ny eXB0b2Rldl90cmFjZV9hZGRfZGVxX2NhbGxiYWNrOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRv ZGV2X3RyYWNlX2FkZF9lbnFfY2FsbGJhY2s7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZf dHJhY2VfYWxsb2NhdGVfZHJpdmVyOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNl X2FzeW1fY2FwYWJpbGl0eV9nZXQ7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2Vf YXN5bV9nZXRfcHJpdmF0ZV9zZXNzaW9uX3NpemU7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9k ZXZfdHJhY2VfYXN5bV9nZXRfeGZvcm1fZW51bTsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rl dl90cmFjZV9hc3ltX3Nlc3Npb25fZ2V0X3VzZXJfZGF0YTsNCj4gPiArICAgICAgIF9fcnRlX2Ny eXB0b2Rldl90cmFjZV9hc3ltX3Nlc3Npb25fc2V0X3VzZXJfZGF0YTsNCj4gPiArICAgICAgIF9f cnRlX2NyeXB0b2Rldl90cmFjZV9hc3ltX3hmb3JtX2NhcGFiaWxpdHlfY2hlY2tfbW9kbGVuOw0K PiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX2NhbGxiYWNrX3JlZ2lzdGVyOw0KPiA+ ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX2NhbGxiYWNrX3VucmVnaXN0ZXI7DQo+ID4g KyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfY29uZmlndXJlX3Jhd19kcF9jdHg7DQo+ID4g KyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfZGV2aWNlX2NvdW50X2J5X2RyaXZlcjsNCj4g PiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90cmFjZV9kZXZpY2VzX2dldDsNCj4gPiArICAgICAg IF9fcnRlX2NyeXB0b2Rldl90cmFjZV9kcml2ZXJfaWRfZ2V0Ow0KPiA+ICsgICAgICAgX19ydGVf Y3J5cHRvZGV2X3RyYWNlX2RyaXZlcl9uYW1lX2dldDsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0 b2Rldl90cmFjZV9nZXRfYWVhZF9hbGdvX2VudW07DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9k ZXZfdHJhY2VfZ2V0X2F1dGhfYWxnb19lbnVtOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2 X3RyYWNlX2dldF9jaXBoZXJfYWxnb19lbnVtOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2 X3RyYWNlX2dldF9kZXZfaWQ7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfZ2V0 X2ZlYXR1cmVfbmFtZTsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90cmFjZV9nZXRfcXBf c3RhdHVzOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX2dldF9yYXdfZHBfY3R4 X3NpemU7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfZ2V0X3NlY19jdHg7DQo+ ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfaW5mb19nZXQ7DQo+ID4gKyAgICAgICBf X3J0ZV9jcnlwdG9kZXZfdHJhY2VfaXNfdmFsaWRfZGV2Ow0KPiA+ICsgICAgICAgX19ydGVfY3J5 cHRvZGV2X3RyYWNlX25hbWVfZ2V0Ow0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNl X29wX3Bvb2xfY3JlYXRlOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9h bGxvY2F0ZTsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfY2FsbGJhY2tf cHJvY2VzczsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90cmFjZV9wbWRfY3JlYXRlOw0K PiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX3BtZF9jcmVhdGVfZGV2X25hbWU7DQo+ ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfcG1kX2Rlc3Ryb3k7DQo+ID4gKyAgICAg ICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2VfcG1kX2dldF9kZXY7DQo+ID4gKyAgICAgICBfX3J0ZV9j cnlwdG9kZXZfdHJhY2VfcG1kX2dldF9uYW1lZF9kZXY7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlw dG9kZXZfdHJhY2VfcG1kX3BhcnNlX2lucHV0X2FyZ3M7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlw dG9kZXZfdHJhY2VfcG1kX3Byb2JpbmdfZmluaXNoOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRv ZGV2X3RyYWNlX3BtZF9yZWxlYXNlX2RldmljZTsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rl dl90cmFjZV9xdWV1ZV9wYWlyX2NvdW50Ow0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3Ry YWNlX3JlbW92ZV9kZXFfY2FsbGJhY2s7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJh Y2VfcmVtb3ZlX2VucV9jYWxsYmFjazsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90cmFj ZV9zZXNzaW9uX2V2ZW50X21kYXRhX2dldDsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90 cmFjZV9zZXNzaW9uX2V2ZW50X21kYXRhX3NldDsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rl dl90cmFjZV9zb2NrZXRfaWQ7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2Vfc3Rh dHNfZ2V0Ow0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX3N0YXRzX3Jlc2V0Ow0K PiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9jYXBhYmlsaXR5X2NoZWNrX2Fl YWQ7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX2NhcGFiaWxpdHlfY2hl Y2tfYXV0aDsNCj4gPiArICAgICAgIF9fcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fY2FwYWJpbGl0 eV9jaGVja19jaXBoZXI7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX2Nh cGFiaWxpdHlfZ2V0Ow0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRvZGV2X3RyYWNlX3N5bV9jcHVf Y3J5cHRvX3Byb2Nlc3M7DQo+ID4gKyAgICAgICBfX3J0ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX2dl dF9leGlzdGluZ19oZWFkZXJfc2Vzc2lvbl9zaXplOw0KPiA+ICsgICAgICAgX19ydGVfY3J5cHRv ZGV2X3RyYWNlX3N5bV9nZXRfcHJpdmF0ZV9zZXNzaW9uX3NpemU7DQo+ID4gKyAgICAgICBfX3J0 ZV9jcnlwdG9kZXZfdHJhY2Vfc3ltX3Nlc3Npb25fZ2V0X3VzZXJfZGF0YTsNCj4gPiArICAgICAg IF9fcnRlX2NyeXB0b2Rldl90cmFjZV9zeW1fc2Vzc2lvbl9zZXRfdXNlcl9kYXRhOw0KPiA+ICB9 Ow0KPiA+DQo+ID4gIElOVEVSTkFMIHsNCj4gPiAtLQ0KPiA+IDIuMjUuMQ0KPiA+DQo=