From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 55D44A0524; Sun, 26 Jul 2020 21:47:57 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 78DDD1BFF2; Sun, 26 Jul 2020 21:47:56 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 0AE601BFE8 for ; Sun, 26 Jul 2020 21:47:54 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 06QJfhCn027880; Sun, 26 Jul 2020 12:47:54 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=MgEzb+6NJ9ParLA8BI6jkQ64Tk+hDfvrjin1a2m04wo=; b=ZtdCOSAGTmROKjdsHHybFqbV6My+naHa95HJYzUvgXV3Sn8oRtiLj4en7Pe+gqB9uasC NLU2kWuNiS2z7sjvlcHvBDv4S3o0r4Vl+jDH/wv3hS7KUXwf4E8Q07O9aKaK71y93tKB BQ6wTTHjWCPjtx0vzFZYOstAUEV3sprauvuZF1n9y/oYNyr3YG8o6xxD34Ldgb76FG26 zhn41hqkmhet5zLSvL/OHE1oA8l0xSfdmFQ4lQMl8lU/3ylWrip5G9BceDOPSq2ysXlZ XaEBlIW5VZoP0AAS24huzHEKuDyHMRq4XlGeLBTJv9dt+Vcq2B+1dWB84+JlLy2hU6pf Nw== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 32gm8nc53s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 26 Jul 2020 12:47:54 -0700 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 26 Jul 2020 12:47:52 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Sun, 26 Jul 2020 12:47:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Umy9/ki9EGzME/e6eAr7Q5HFS4rSfA3SOeCYREbKo/VEvRvW99QA8L/FkIALWiWzw2HmyTayE+PDZN5rM3Pp6Y0HcwAtnSPA7TGU4iTWIlpKsLsb2HS2wre1iygUD72aTFgd+AdqGCm0ZTUvn2ADtYfvJ5TPOxQRINyessfdCjFeVK1/uJIhk8ibMKxIDsVAhnvp9bVOC4lmlPc1e6EIFNt30IfkHnmm3Hepd0PDTXjNa+N7Fu5fyEqohGgfsYqVlTOkAV2z9mx/CDl1iZgoaSwU0n/IjsmyoRodIkEAXyQ1KfSi7R7mM0nJAosm5LNua9yFCx31rL99Uk6XWw1RDg== 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-SenderADCheck; bh=MgEzb+6NJ9ParLA8BI6jkQ64Tk+hDfvrjin1a2m04wo=; b=M+zbZJ14M3MP66wck8kMuhvW+IPGGTGnOhQeVBvHR7xaJyRFhh+bBsUwQlid4sU3SJ4HPKcygJzIPKqiBPI+4xmvmaz5lPwHhLwEA23WyXzKFTyraFXwkUATQhYv0f8Vz7icfV9Pgvoc3BtUtoJ7Fe/q0+YuQZbBjvxvS/B7zZGoM/sRyiLAztNcY5ySsOcEDwXvHhOFsm8HoAcKoPwpEz1Wq8Yw0S5Qo3+oSFUFKtj5t0rjI05fSp3TYg9h6HHC3GCxW0AcxOJH41LdGp8p7EKbmDPrS2ae3q5rR6vXQUBgbFJgg2T4jwtabj4rZKvVABIR/zLxPIlIruNt9ZaSfA== 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=MgEzb+6NJ9ParLA8BI6jkQ64Tk+hDfvrjin1a2m04wo=; b=Onv+ba/1xPo4XoqvsLsS9vhjSIdWuCDW4kL5Y9kf6VQTWfhbAkdcJqvtK8VsBFUGcNw7uM+hn+eT48U8BcVGYXso46xUiDhiafn4ddd/l36mh2iIOW9MEUo3UzDDmYJaNwvbZykPYqJI75XXBm+PVTjbklZfLgANA2oZgb/ki8U= Received: from DM6PR18MB3388.namprd18.prod.outlook.com (2603:10b6:5:1cc::13) by DM6PR18MB3683.namprd18.prod.outlook.com (2603:10b6:5:2a9::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23; Sun, 26 Jul 2020 19:47:50 +0000 Received: from DM6PR18MB3388.namprd18.prod.outlook.com ([fe80::899d:e413:e711:f2f9]) by DM6PR18MB3388.namprd18.prod.outlook.com ([fe80::899d:e413:e711:f2f9%6]) with mapi id 15.20.3216.031; Sun, 26 Jul 2020 19:47:50 +0000 From: Manish Chopra To: =?utf-8?B?R2HDq3RhbiBSaXZldA==?= CC: "jerinjacobk@gmail.com" , Jerin Jacob Kollanukkaran , "ferruh.yigit@intel.com" , "dev@dpdk.org" , Igor Russkikh , "Rasesh Mody" , GR-Everest-DPDK-Dev , "rosen.xu@intel.com" , "tianfei.zhang@intel.com" , "heinrich.kuhn@netronome.com" , "qiming.yang@intel.com" , "qi.z.zhang@intel.com" Thread-Topic: [EXT] Re: [PATCH v3 1/6] drivers: add generic API to find PCI extended cap Thread-Index: AQHWYaa9xO4ksgzql0WSO310IhP4J6kYj9AAgAGwFcA= Date: Sun, 26 Jul 2020 19:47:50 +0000 Message-ID: References: <20200724103846.12640-1-manishc@marvell.com> <20200724103846.12640-2-manishc@marvell.com> <20200725173224.okzt3owicgdjun5s@u256.net> In-Reply-To: <20200725173224.okzt3owicgdjun5s@u256.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: u256.net; dkim=none (message not signed) header.d=none;u256.net; dmarc=none action=none header.from=marvell.com; x-originating-ip: [2409:4052:91b:bd37:ac7a:3e16:7608:4e9d] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 38b198e8-d8b9-4b4e-ebe9-08d8319cc78f x-ms-traffictypediagnostic: DM6PR18MB3683: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ynHZ/jc4e+u7zRmgF2Qne0DcX2qt0wuJRVDMgfdg2a3r5UUmmfO72m9rjd0Pl3LkQ8OvBQuyZh098Lblajv9TCEH20vChDxLQZ9mMreBHF/tOjPEZ5vKlc71RFZp9xW0npz2btlFTLFZtE+4Sqft7rVww8Br1dUmSJjifmnhfNNFp7bDM/w9RiPpMeOsMZf2/iXdkkIidssEUL4Dw9X2TcihxjENKmMJX6K6NoiciAnI20/GUmE6/Bl/HDp7uAX6XJ1jxO20q4YWzRjsDeo8aB8jMAJp8mE6BOjiAb2ebrISShcWOKZPzQ9mfSB4T3brA+iw38y3ENrx/yA5nVF4GCzHTe6q4O4xARBlRPS35e/sZvld1otgaxcqeVk8vEWI17JiDtcd6q7vQHFd4ewgaQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR18MB3388.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39850400004)(396003)(136003)(366004)(376002)(346002)(53546011)(55016002)(6506007)(66446008)(64756008)(66556008)(30864003)(316002)(478600001)(76116006)(9686003)(4326008)(52536014)(86362001)(2906002)(66476007)(8676002)(71200400001)(66946007)(7696005)(33656002)(54906003)(5660300002)(186003)(83380400001)(6916009)(66574015)(8936002)(37363001)(41533002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 2xpwHwrNm7MyI9l9oSLxpdemoZwcEFMu2WhuQGjQRDmiToWJ1ad/InowXRZRHlGtA6Yoanu4OJ++wBL8s6H+VeERKdnr33Ugh2Glj1/TsAFQMKopTiJoWdzQNXAP9BeFlL4JQg6zsUz47clUhCWU/Bm9rfUcKQK2JYD/As8DW677/dQIyi/Ux5FECN+vlcXe5uTAhHSBMyzAeddFZYYwlYU1cHs1aXf6XKwfqdkwjsSyrC52lLByx2FYGdxI94tVWg71e7dCXT+gSSqZGcPXEagEHSI9HOOA4NoIhp+LKZtUO3K6W+hpPnCQErJwZmgivP2LDq6c0MEAoUHBtwmLtrbhxuM9mNopnt4j4B0H7lAXuXZXX53HIzHwWi7KlQ1++C44uf6spQGX+QbCF+p8nwjWzbsOD1IENmQN8Zyvzi5l2dWDDyMQ9K8E+6777pOnMwQoMiHT4wQfAmG35vy0YuIN/3CXlx/KkTRkbTLiodJskvMp507PA1tXfT+iv3sr7/yWVoG/7mErRhkZC8g3fxqwJTEvXrwAyTWTyMRUMSQ+J/m63sjMBk1M7Yxhcjuq Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR18MB3388.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38b198e8-d8b9-4b4e-ebe9-08d8319cc78f X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jul 2020 19:47:50.3083 (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: D/e/9SPX08dYEAqN7+2Q2ca8AyTgr05ipVuxJGC1166d/RSgTztcgQvtpVxd33rli2PF69PbB7qCUbBH3aO/9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB3683 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-07-26_12:2020-07-24, 2020-07-26 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v3 1/6] drivers: add generic API to find PCI extended cap X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHYcOrdGFuIFJpdmV0IDxncml2 ZUB1MjU2Lm5ldD4NCj4gU2VudDogU2F0dXJkYXksIEp1bHkgMjUsIDIwMjAgMTE6MDIgUE0NCj4g VG86IE1hbmlzaCBDaG9wcmEgPG1hbmlzaGNAbWFydmVsbC5jb20+DQo+IENjOiBqZXJpbmphY29i a0BnbWFpbC5jb207IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNv bT47DQo+IGZlcnJ1aC55aWdpdEBpbnRlbC5jb207IGRldkBkcGRrLm9yZzsgSWdvciBSdXNza2lr aA0KPiA8aXJ1c3NraWtoQG1hcnZlbGwuY29tPjsgUmFzZXNoIE1vZHkgPHJtb2R5QG1hcnZlbGwu Y29tPjsgR1ItRXZlcmVzdC0NCj4gRFBESy1EZXYgPEdSLUV2ZXJlc3QtRFBESy1EZXZAbWFydmVs bC5jb20+OyByb3Nlbi54dUBpbnRlbC5jb207DQo+IHRpYW5mZWkuemhhbmdAaW50ZWwuY29tOyBo ZWlucmljaC5rdWhuQG5ldHJvbm9tZS5jb207DQo+IHFpbWluZy55YW5nQGludGVsLmNvbTsgcWku ei56aGFuZ0BpbnRlbC5jb20NCj4gU3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSCB2MyAxLzZdIGRy aXZlcnM6IGFkZCBnZW5lcmljIEFQSSB0byBmaW5kIFBDSQ0KPiBleHRlbmRlZCBjYXANCj4gDQo+ IEV4dGVybmFsIEVtYWlsDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IEhlbGxvIE1hbmlzaCwNCj4g DQo+IEkgaGF2ZSBqdXN0IGEgZmV3IG5pdHMgYmVsb3csDQo+IA0KPiBPbiAyNC8wNy8yMCAwMzoz OCAtMDcwMCwgTWFuaXNoIENob3ByYSB3cm90ZToNCj4gPiBCeSBhZGRpbmcgZ2VuZXJpYyBBUEks IHRoaXMgcGF0Y2ggcmVtb3ZlcyBpbmRpdmlkdWFsIGZ1bmN0aW9ucy9kZWZpbmVzDQo+ID4gaW1w bGVtZW50ZWQgYnkgZHJpdmVycyB0byBmaW5kIFBDSSBleHRlbmRlZCBjYXBhYmlsaXR5Lg0KPiAN Cj4gInRvIGZpbmQgZXh0ZW5kZWQgUENJIGNhcGFiaWxpdGllcyIgc291bmRzIGJldHRlci4NCj4g DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5pc2ggQ2hvcHJhIDxtYW5pc2hjQG1hcnZlbGwu Y29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IElnb3IgUnVzc2tpa2ggPGlydXNza2lraEBtYXJ2ZWxs LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9idXMvcGNpL3BjaV9jb21tb24uYyAgICAgICAg ICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZlcnMvYnVzL3BjaS9ydGVf YnVzX3BjaS5oICAgICAgICAgICAgICB8IDE5ICsrKysrKysrDQo+ID4gIGRyaXZlcnMvYnVzL3Bj aS9ydGVfYnVzX3BjaV92ZXJzaW9uLm1hcCAgICB8ICA2ICsrKw0KPiA+ICBkcml2ZXJzL25ldC9p Y2UvaWNlX2V0aGRldi5jICAgICAgICAgICAgICAgfCA1MSArLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4gIGRyaXZlcnMvbmV0L25mcC9uZnBjb3JlL25mcF9jcHBfcGNpZV9vcHMuYyB8IDQ4ICst LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gIGRyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5j ICAgICAgICAgICB8ICA2IC0tLQ0KPiA+ICBsaWIvbGlicnRlX3BjaS9ydGVfcGNpLmggICAgICAg ICAgICAgICAgICAgfCAxNiArKysrKysrDQo+ID4gIDcgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0 aW9ucygrKSwgMTAxIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv YnVzL3BjaS9wY2lfY29tbW9uLmMNCj4gPiBiL2RyaXZlcnMvYnVzL3BjaS9wY2lfY29tbW9uLmMg aW5kZXggYThlNWZkNTJjLi5iODc3ZDEwZTkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9idXMv cGNpL3BjaV9jb21tb24uYw0KPiA+ICsrKyBiL2RyaXZlcnMvYnVzL3BjaS9wY2lfY29tbW9uLmMN Cj4gPiBAQCAtNjY1LDYgKzY2NSw0OCBAQCBydGVfcGNpX2dldF9pb21tdV9jbGFzcyh2b2lkKQ0K PiA+ICAJcmV0dXJuIGlvdmFfbW9kZTsNCj4gPiAgfQ0KPiA+DQo+ID4gK29mZl90IHJ0ZV9wY2lf ZmluZF9uZXh0X2V4dF9jYXBhYmlsaXR5KHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LA0KPiA+ ICt1aW50MzJfdCBjYXApIHsNCj4gDQo+IENvZGluZyBzdHlsZSBhc2tzIGZvciB0aGUgcmV0dXJu IHR5cGUgb24gaXRzIG93biBsaW5lLCB0aGVuIHRoZSBmdW5jdGlvbiBuYW1lDQo+IGV0Yy4NCj4g DQo+ID4gKwlvZmZfdCBvZmZzZXQgPSBSVEVfUENJX0NGR19TUEFDRV9TSVpFOw0KPiA+ICsJdWlu dDMyX3QgaGVhZGVyOw0KPiA+ICsJaW50IHR0bDsNCj4gPiArDQo+ID4gKwkvKiBtaW5pbXVtIDgg Ynl0ZXMgcGVyIGNhcGFiaWxpdHkgKi8NCj4gPiArCXR0bCA9IChSVEVfUENJX0NGR19TUEFDRV9F WFBfU0laRSAtIFJURV9QQ0lfQ0ZHX1NQQUNFX1NJWkUpIC8gODsNCj4gPiArDQo+ID4gKwlpZiAo cnRlX3BjaV9yZWFkX2NvbmZpZyhkZXYsICZoZWFkZXIsIDQsIG9mZnNldCkgPCAwKSB7DQo+ID4g KwkJUlRFX0xPRyhFUlIsIEVBTCwgImVycm9yIGluIHJlYWRpbmcgZXh0ZW5kZWQNCj4gY2FwYWJp bGl0aWVzXG4iKTsNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyoN Cj4gPiArCSAqIElmIHdlIGhhdmUgbm8gY2FwYWJpbGl0aWVzLCB0aGlzIGlzIGluZGljYXRlZCBi eSBjYXAgSUQsDQo+ID4gKwkgKiBjYXAgdmVyc2lvbiBhbmQgbmV4dCBwb2ludGVyIGFsbCBiZWlu ZyAwLg0KPiA+ICsJICovDQo+ID4gKwlpZiAoaGVhZGVyID09IDApDQo+ID4gKwkJcmV0dXJuIDA7 DQo+ID4gKw0KPiA+ICsJd2hpbGUgKHR0bCAhPSAwKSB7DQo+ID4gKwkJaWYgKFJURV9QQ0lfRVhU X0NBUF9JRChoZWFkZXIpID09IGNhcCkNCj4gPiArCQkJcmV0dXJuIG9mZnNldDsNCj4gPiArDQo+ ID4gKwkJb2Zmc2V0ID0gUlRFX1BDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKTsNCj4gPiArDQo+ID4g KwkJaWYgKG9mZnNldCA8IFJURV9QQ0lfQ0ZHX1NQQUNFX1NJWkUpDQo+ID4gKwkJCWJyZWFrOw0K PiA+ICsNCj4gPiArCQlpZiAocnRlX3BjaV9yZWFkX2NvbmZpZyhkZXYsICZoZWFkZXIsIDQsIG9m ZnNldCkgPCAwKSB7DQo+ID4gKwkJCVJURV9MT0coRVJSLCBFQUwsDQo+ID4gKwkJCQkiZXJyb3Ig aW4gcmVhZGluZyBleHRlbmRlZCBjYXBhYmlsaXRpZXNcbiIpOw0KPiA+ICsJCQlyZXR1cm4gLTE7 DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQl0dGwtLTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwly ZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RydWN0IHJ0ZV9wY2lfYnVzIHJ0ZV9wY2lf YnVzID0gew0KPiA+ICAJLmJ1cyA9IHsNCj4gPiAgCQkuc2NhbiA9IHJ0ZV9wY2lfc2NhbiwNCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9idXMvcGNpL3J0ZV9idXNfcGNpLmgNCj4gPiBiL2RyaXZl cnMvYnVzL3BjaS9ydGVfYnVzX3BjaS5oIGluZGV4IDI5YmVhNmQ3MC4uZGUxZWQ5ODA3IDEwMDY0 NA0KPiA+IC0tLSBhL2RyaXZlcnMvYnVzL3BjaS9ydGVfYnVzX3BjaS5oDQo+ID4gKysrIGIvZHJp dmVycy9idXMvcGNpL3J0ZV9idXNfcGNpLmgNCj4gPiBAQCAtMjI0LDYgKzIyNCwyNSBAQCB2b2lk IHJ0ZV9wY2lfdW5tYXBfZGV2aWNlKHN0cnVjdCBydGVfcGNpX2RldmljZQ0KPiAqZGV2KTsNCj4g PiAgICovDQo+ID4gIHZvaWQgcnRlX3BjaV9kdW1wKEZJTEUgKmYpOw0KPiA+DQo+ID4gKy8qKg0K PiA+ICsgKiBGaW5kIGRldmljZSdzIGV4dGVuZGVkIGNhcGFiaWxpdHkNCj4gPiArICoNCj4gPiAr ICogIEBwYXJhbSBkZXYNCj4gPiArICogICAgQSBwb2ludGVyIHRvIHJ0ZV9wY2lfZGV2aWNlIHN0 cnVjdHVyZQ0KPiA+ICsgKg0KPiA+ICsgKiAgQHBhcmFtIGNhcA0KPiA+ICsgKiAgICBFeHRlbmRl ZCBjYXBhYmlsaXR5IHRvIGZpbmQNCj4gDQo+IFJlYWRpbmcgdGhlIHJlc3Qgb2YgdGhlIGZpbGUs IEkgc2VlIHNvbWUgZG9jIHdpdGggc2VudGVuY2VzIGZpbmlzaGVkIGJ5DQo+IHBlcmlvZHMsIGFu ZCBub3Qgb3RoZXJzLiBHb2luZyBmb3J3YXJkIHdlIHNob3VsZCBiZSBjb25zaXN0ZW50LCBhbmQg d3JpdGUNCj4gZG9jdW1lbnRhdGlvbiB3aXRoIGdyYW1tYXRpY2FsbHkgY29ycmVjdCBzZW50ZW5j ZXMsIHNvIHdpdGggdGhlIHBlcmlvZHMuDQo+IA0KPiA+ICsgKg0KPiA+ICsgKiAgQHJldHVybg0K PiA+ICsgKiAgPiAwOiBUaGUgb2Zmc2V0IG9mIHRoZSBuZXh0IG1hdGNoaW5nIGV4dGVuZGVkIGNh cGFiaWxpdHkgc3RydWN0dXJlDQo+ID4gKyAqICAgICAgIHdpdGhpbiB0aGUgZGV2aWNlJ3MgUENJ IGNvbmZpZ3VyYXRpb24gc3BhY2UNCj4gPiArICogIDwgMDogQW4gZXJyb3IgaW4gUENJIGNvbmZp ZyBzcGFjZSByZWFkDQo+ID4gKyAqICA9IDA6IERldmljZSBkb2VzIG5vdCBzdXBwb3J0IGl0DQo+ IA0KPiBUaGFua3MgZm9yIHRoZSBhZGRpdGlvbmFsIGRldGFpbHMsIHRob3VnaCB0aGUgcGVyaW9k cyBhcmUgc3RpbGwgbWlzc2luZy4NCj4gDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50 YWwNCj4gPiArb2ZmX3QgcnRlX3BjaV9maW5kX25leHRfZXh0X2NhcGFiaWxpdHkoc3RydWN0IHJ0 ZV9wY2lfZGV2aWNlICpkZXYsDQo+ID4gKwkJCQkgICAgICAgdWludDMyX3QgY2FwKTsNCj4gPiAr DQo+ID4gIC8qKg0KPiA+ICAgKiBSZWdpc3RlciBhIFBDSSBkcml2ZXIuDQo+ID4gICAqDQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvYnVzL3BjaS9ydGVfYnVzX3BjaV92ZXJzaW9uLm1hcA0KPiA+ IGIvZHJpdmVycy9idXMvcGNpL3J0ZV9idXNfcGNpX3ZlcnNpb24ubWFwDQo+ID4gaW5kZXggMDEy ZDgxN2UxLi5iNTMyMjY2MGQgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9idXMvcGNpL3J0ZV9i dXNfcGNpX3ZlcnNpb24ubWFwDQo+ID4gKysrIGIvZHJpdmVycy9idXMvcGNpL3J0ZV9idXNfcGNp X3ZlcnNpb24ubWFwDQo+ID4gQEAgLTE2LDMgKzE2LDkgQEAgRFBES18yMC4wIHsNCj4gPg0KPiA+ ICAJbG9jYWw6ICo7DQo+ID4gIH07DQo+ID4gKw0KPiA+ICtFWFBFUklNRU5UQUwgew0KPiA+ICsJ Z2xvYmFsOg0KPiA+ICsNCj4gPiArCXJ0ZV9wY2lfZmluZF9uZXh0X2V4dF9jYXBhYmlsaXR5Ow0K PiA+ICt9Ow0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jDQo+ ID4gYi9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jIGluZGV4IDdkZDNmY2QyNy4uNmM4Y2Jl YTVjIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2ljZS9pY2VfZXRoZGV2LmMNCj4gPiAr KysgYi9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jDQo+ID4gQEAgLTE3MzAsNTMgKzE3MzAs NiBAQCBpY2VfcGZfc2V0dXAoc3RydWN0IGljZV9wZiAqcGYpDQo+ID4gIAlyZXR1cm4gMDsNCj4g PiAgfQ0KPiA+DQo+ID4gLS8qIFBDSWUgY29uZmlndXJhdGlvbiBzcGFjZSBzZXR0aW5nICovDQo+ ID4gLSNkZWZpbmUgUENJX0NGR19TUEFDRV9TSVpFICAgICAgICAgIDI1Ng0KPiA+IC0jZGVmaW5l IFBDSV9DRkdfU1BBQ0VfRVhQX1NJWkUgICAgICA0MDk2DQo+ID4gLSNkZWZpbmUgUENJX0VYVF9D QVBfSUQoaGVhZGVyKSAgICAgIChpbnQpKChoZWFkZXIpICYgMHgwMDAwZmZmZikNCj4gPiAtI2Rl ZmluZSBQQ0lfRVhUX0NBUF9ORVhUKGhlYWRlcikgICAgKCgoaGVhZGVyKSA+PiAyMCkgJiAweGZm YykNCj4gPiAtI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9EU04gICAgICAgICAgMHgwMw0KPiA+IC0N Cj4gPiAtc3RhdGljIGludA0KPiA+IC1pY2VfcGNpX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eShz dHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwgaW50IGNhcCkNCj4gPiAtew0KPiA+IC0JdWludDMy X3QgaGVhZGVyOw0KPiA+IC0JaW50IHR0bDsNCj4gPiAtCWludCBwb3MgPSBQQ0lfQ0ZHX1NQQUNF X1NJWkU7DQo+ID4gLQ0KPiA+IC0JLyogbWluaW11bSA4IGJ5dGVzIHBlciBjYXBhYmlsaXR5ICov DQo+ID4gLQl0dGwgPSAoUENJX0NGR19TUEFDRV9FWFBfU0laRSAtIFBDSV9DRkdfU1BBQ0VfU0la RSkgLyA4Ow0KPiA+IC0NCj4gPiAtCWlmIChydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJmhlYWRl ciwgNCwgcG9zKSA8IDApIHsNCj4gPiAtCQlQTURfSU5JVF9MT0coRVJSLCAiaWNlIGVycm9yIHJl YWRpbmcgZXh0ZW5kZWQNCj4gY2FwYWJpbGl0aWVzXG4iKTsNCj4gPiAtCQlyZXR1cm4gLTE7DQo+ ID4gLQl9DQo+ID4gLQ0KPiA+IC0JLyoNCj4gPiAtCSAqIElmIHdlIGhhdmUgbm8gY2FwYWJpbGl0 aWVzLCB0aGlzIGlzIGluZGljYXRlZCBieSBjYXAgSUQsDQo+ID4gLQkgKiBjYXAgdmVyc2lvbiBh bmQgbmV4dCBwb2ludGVyIGFsbCBiZWluZyAwLg0KPiA+IC0JICovDQo+ID4gLQlpZiAoaGVhZGVy ID09IDApDQo+ID4gLQkJcmV0dXJuIDA7DQo+ID4gLQ0KPiA+IC0Jd2hpbGUgKHR0bC0tID4gMCkg ew0KPiA+IC0JCWlmIChQQ0lfRVhUX0NBUF9JRChoZWFkZXIpID09IGNhcCkNCj4gPiAtCQkJcmV0 dXJuIHBvczsNCj4gPiAtDQo+ID4gLQkJcG9zID0gUENJX0VYVF9DQVBfTkVYVChoZWFkZXIpOw0K PiA+IC0NCj4gPiAtCQlpZiAocG9zIDwgUENJX0NGR19TUEFDRV9TSVpFKQ0KPiA+IC0JCQlicmVh azsNCj4gPiAtDQo+ID4gLQkJaWYgKHJ0ZV9wY2lfcmVhZF9jb25maWcoZGV2LCAmaGVhZGVyLCA0 LCBwb3MpIDwgMCkgew0KPiA+IC0JCQlQTURfSU5JVF9MT0coRVJSLCAiaWNlIGVycm9yIHJlYWRp bmcgZXh0ZW5kZWQNCj4gY2FwYWJpbGl0aWVzXG4iKTsNCj4gPiAtCQkJcmV0dXJuIC0xOw0KPiA+ IC0JCX0NCj4gPiAtCX0NCj4gPiAtDQo+ID4gLQlyZXR1cm4gMDsNCj4gPiAtfQ0KPiA+IC0NCj4g PiAgLyoNCj4gPiAgICogRXh0cmFjdCBkZXZpY2Ugc2VyaWFsIG51bWJlciBmcm9tIFBDSWUgQ29u ZmlndXJhdGlvbiBTcGFjZSBhbmQNCj4gPiAgICogZGV0ZXJtaW5lIHRoZSBwa2cgZmlsZSBwYXRo IGFjY29yZGluZyB0byB0aGUgRFNOLg0KPiA+IEBAIC0xNzg0LDEyICsxNzM3LDEyIEBAIGljZV9w Y2lfZmluZF9uZXh0X2V4dF9jYXBhYmlsaXR5KHN0cnVjdA0KPiA+IHJ0ZV9wY2lfZGV2aWNlICpk ZXYsIGludCBjYXApICBzdGF0aWMgaW50DQo+ID4gaWNlX3BrZ19maWxlX3NlYXJjaF9wYXRoKHN0 cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2RldiwgY2hhcg0KPiA+ICpwa2dfZmlsZSkgIHsNCj4g PiAtCWludCBwb3M7DQo+ID4gKwlvZmZfdCBwb3M7DQo+ID4gIAljaGFyIG9wdF9kZHBfZmlsZW5h bWVbSUNFX01BWF9QS0dfRklMRU5BTUVfU0laRV07DQo+ID4gIAl1aW50MzJfdCBkc25fbG93LCBk c25faGlnaDsNCj4gPiAgCW1lbXNldChvcHRfZGRwX2ZpbGVuYW1lLCAwLCBJQ0VfTUFYX1BLR19G SUxFTkFNRV9TSVpFKTsNCj4gPg0KPiA+IC0JcG9zID0gaWNlX3BjaV9maW5kX25leHRfZXh0X2Nh cGFiaWxpdHkocGNpX2RldiwNCj4gUENJX0VYVF9DQVBfSURfRFNOKTsNCj4gPiArCXBvcyA9IHJ0 ZV9wY2lfZmluZF9uZXh0X2V4dF9jYXBhYmlsaXR5KHBjaV9kZXYsDQo+ID4gK1JURV9QQ0lfRVhU X0NBUF9JRF9EU04pOw0KPiA+DQo+ID4gIAlpZiAocG9zKSB7DQo+ID4gIAkJcnRlX3BjaV9yZWFk X2NvbmZpZyhwY2lfZGV2LCAmZHNuX2xvdywgNCwgcG9zICsgNCk7IGRpZmYgLS1naXQNCj4gPiBh L2RyaXZlcnMvbmV0L25mcC9uZnBjb3JlL25mcF9jcHBfcGNpZV9vcHMuYw0KPiA+IGIvZHJpdmVy cy9uZXQvbmZwL25mcGNvcmUvbmZwX2NwcF9wY2llX29wcy5jDQo+ID4gaW5kZXggMGI5ZGI5NzRl Li5kYmFiNGY4Y2IgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbmZwL25mcGNvcmUvbmZw X2NwcF9wY2llX29wcy5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvbmZwL25mcGNvcmUvbmZwX2Nw cF9wY2llX29wcy5jDQo+ID4gQEAgLTc0Niw1OSArNzQ2LDE1IEBAIG5mcDYwMDBfc2V0X2ludGVy ZmFjZShzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UNCj4gKmRldiwgc3RydWN0IG5mcF9jcHAgKmNwcCkN Cj4gPiAgCXJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiAtI2RlZmluZSBQQ0lfQ0ZHX1NQQUNF X1NJWkUJMjU2DQo+ID4gLSNkZWZpbmUgUENJX0NGR19TUEFDRV9FWFBfU0laRQk0MDk2DQo+ID4g LSNkZWZpbmUgUENJX0VYVF9DQVBfSUQoaGVhZGVyKQkJKGludCkoaGVhZGVyICYgMHgwMDAwZmZm ZikNCj4gPiAtI2RlZmluZSBQQ0lfRVhUX0NBUF9ORVhUKGhlYWRlcikJKChoZWFkZXIgPj4gMjAp ICYgMHhmZmMpDQo+ID4gLSNkZWZpbmUgUENJX0VYVF9DQVBfSURfRFNOCTB4MDMNCj4gPiAtc3Rh dGljIGludA0KPiA+IC1uZnBfcGNpX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eShzdHJ1Y3QgcnRl X3BjaV9kZXZpY2UgKmRldiwgaW50IGNhcCkNCj4gPiAtew0KPiA+IC0JdWludDMyX3QgaGVhZGVy Ow0KPiA+IC0JaW50IHR0bDsNCj4gPiAtCWludCBwb3MgPSBQQ0lfQ0ZHX1NQQUNFX1NJWkU7DQo+ ID4gLQ0KPiA+IC0JLyogbWluaW11bSA4IGJ5dGVzIHBlciBjYXBhYmlsaXR5ICovDQo+ID4gLQl0 dGwgPSAoUENJX0NGR19TUEFDRV9FWFBfU0laRSAtIFBDSV9DRkdfU1BBQ0VfU0laRSkgLyA4Ow0K PiA+IC0NCj4gPiAtCWlmIChydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJmhlYWRlciwgNCwgcG9z KSA8IDApIHsNCj4gPiAtCQlwcmludGYoIm5mcCBlcnJvciByZWFkaW5nIGV4dGVuZGVkIGNhcGFi aWxpdGllc1xuIik7DQo+ID4gLQkJcmV0dXJuIC0xOw0KPiA+IC0JfQ0KPiA+IC0NCj4gPiAtCS8q DQo+ID4gLQkgKiBJZiB3ZSBoYXZlIG5vIGNhcGFiaWxpdGllcywgdGhpcyBpcyBpbmRpY2F0ZWQg YnkgY2FwIElELA0KPiA+IC0JICogY2FwIHZlcnNpb24gYW5kIG5leHQgcG9pbnRlciBhbGwgYmVp bmcgMC4NCj4gPiAtCSAqLw0KPiA+IC0JaWYgKGhlYWRlciA9PSAwKQ0KPiA+IC0JCXJldHVybiAw Ow0KPiA+IC0NCj4gPiAtCXdoaWxlICh0dGwtLSA+IDApIHsNCj4gPiAtCQlpZiAoUENJX0VYVF9D QVBfSUQoaGVhZGVyKSA9PSBjYXApDQo+ID4gLQkJCXJldHVybiBwb3M7DQo+ID4gLQ0KPiA+IC0J CXBvcyA9IFBDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKTsNCj4gPiAtCQlpZiAocG9zIDwgUENJX0NG R19TUEFDRV9TSVpFKQ0KPiA+IC0JCQlicmVhazsNCj4gPiAtDQo+ID4gLQkJaWYgKHJ0ZV9wY2lf cmVhZF9jb25maWcoZGV2LCAmaGVhZGVyLCA0LCBwb3MpIDwgMCkgew0KPiA+IC0JCQlwcmludGYo Im5mcCBlcnJvciByZWFkaW5nIGV4dGVuZGVkIGNhcGFiaWxpdGllc1xuIik7DQo+ID4gLQkJCXJl dHVybiAtMTsNCj4gPiAtCQl9DQo+ID4gLQl9DQo+ID4gLQ0KPiA+IC0JcmV0dXJuIDA7DQo+ID4g LX0NCj4gPiAtDQo+ID4gIHN0YXRpYyBpbnQNCj4gPiAgbmZwNjAwMF9zZXRfc2VyaWFsKHN0cnVj dCBydGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1Y3QgbmZwX2NwcCAqY3BwKQ0KPiA+IHsNCj4gPiAg CXVpbnQxNl90IHRtcDsNCj4gPiAgCXVpbnQ4X3Qgc2VyaWFsWzZdOw0KPiA+ICAJaW50IHNlcmlh bF9sZW4gPSA2Ow0KPiA+IC0JaW50IHBvczsNCj4gPiArCW9mZl90IHBvczsNCj4gPg0KPiA+IC0J cG9zID0gbmZwX3BjaV9maW5kX25leHRfZXh0X2NhcGFiaWxpdHkoZGV2LCBQQ0lfRVhUX0NBUF9J RF9EU04pOw0KPiA+ICsJcG9zID0gcnRlX3BjaV9maW5kX25leHRfZXh0X2NhcGFiaWxpdHkoZGV2 LA0KPiBSVEVfUENJX0VYVF9DQVBfSURfRFNOKTsNCj4gPiAgCWlmIChwb3MgPD0gMCkgew0KPiA+ ICAJCXByaW50ZigiUENJX0VYVF9DQVBfSURfRFNOIG5vdCBmb3VuZC4gbmZwIHNldCBzZXJpYWwN Cj4gZmFpbGVkXG4iKTsNCj4gPiAgCQlyZXR1cm4gLTE7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gYi9kcml2ZXJzL3Jhdy9pZnBnYS9pZnBn YV9yYXdkZXYuYw0KPiA+IGluZGV4IGNjMjVjNjYyYi4uZjgyMDVhM2M3IDEwMDY0NA0KPiA+IC0t LSBhL2RyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gKysrIGIvZHJpdmVycy9y YXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmMNCj4gPiBAQCAtNDEsMTIgKzQxLDYgQEANCj4gPiAgI2lu Y2x1ZGUgImlmcGdhX3Jhd2Rldi5oIg0KPiA+ICAjaW5jbHVkZSAiaXBuM2tlX3Jhd2Rldl9hcGku aCINCj4gPg0KPiA+IC0jZGVmaW5lIFJURV9QQ0lfRVhUX0NBUF9JRF9FUlIgICAgICAgICAgIDB4 MDEJLyogQWR2YW5jZWQgRXJyb3INCj4gUmVwb3J0aW5nICovDQo+ID4gLSNkZWZpbmUgUlRFX1BD SV9DRkdfU1BBQ0VfU0laRSAgICAgICAgICAgMjU2DQo+ID4gLSNkZWZpbmUgUlRFX1BDSV9DRkdf U1BBQ0VfRVhQX1NJWkUgICAgICAgNDA5Ng0KPiA+IC0jZGVmaW5lIFJURV9QQ0lfRVhUX0NBUF9J RChoZWFkZXIpICAgICAgIChpbnQpKGhlYWRlciAmIDB4MDAwMGZmZmYpDQo+ID4gLSNkZWZpbmUg UlRFX1BDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKSAgICAgKChoZWFkZXIgPj4gMjApICYgMHhmZmMp DQo+ID4gLQ0KPiA+ICAjZGVmaW5lIFBDSV9WRU5ET1JfSURfSU5URUwgICAgICAgICAgMHg4MDg2 DQo+ID4gIC8qIFBDSSBEZXZpY2UgSUQgKi8NCj4gPiAgI2RlZmluZSBQQ0lFX0RFVklDRV9JRF9Q Rl9JTlRfNV9YICAgIDB4QkNCRA0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3BjaS9ydGVf cGNpLmggYi9saWIvbGlicnRlX3BjaS9ydGVfcGNpLmggaW5kZXgNCj4gPiBhMDMyMzVkYTEuLmZl YzUxZTE1YSAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3BjaS9ydGVfcGNpLmgNCj4gPiAr KysgYi9saWIvbGlicnRlX3BjaS9ydGVfcGNpLmgNCj4gPiBAQCAtMjIsNiArMjIsMjIgQEAgZXh0 ZXJuICJDIiB7DQo+ID4gICNpbmNsdWRlIDxpbnR0eXBlcy5oPg0KPiA+ICAjaW5jbHVkZSA8c3lz L3R5cGVzLmg+DQo+ID4NCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIENvbnZlbnRpb25hbCBQQ0kg YW5kIFBDSS1YIE1vZGUgMSBkZXZpY2VzIGhhdmUgMjU2IGJ5dGVzIG9mDQo+ID4gKyAqIGNvbmZp Z3VyYXRpb24gc3BhY2UuICBQQ0ktWCBNb2RlIDIgYW5kIFBDSWUgZGV2aWNlcyBoYXZlIDQwOTYN Cj4gPiArYnl0ZXMgb2YNCj4gPiArICogY29uZmlndXJhdGlvbiBzcGFjZS4NCj4gPiArICovDQo+ ID4gKyNkZWZpbmUgUlRFX1BDSV9DRkdfU1BBQ0VfU0laRQkJMjU2DQo+ID4gKyNkZWZpbmUgUlRF X1BDSV9DRkdfU1BBQ0VfRVhQX1NJWkUJNDA5Ng0KPiA+ICsNCj4gPiArLyogRXh0ZW5kZWQgQ2Fw YWJpbGl0aWVzIChQQ0ktWCAyLjAgYW5kIEV4cHJlc3MpICovDQo+ID4gKyNkZWZpbmUgUlRFX1BD SV9FWFRfQ0FQX0lEKGhlYWRlcikJKGhlYWRlciAmIDB4MDAwMGZmZmYpDQo+ID4gKyNkZWZpbmUg UlRFX1BDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKQkoKGhlYWRlciA+PiAyMCkgJiAweGZmYykNCj4g PiArDQo+ID4gKyNkZWZpbmUgUlRFX1BDSV9FWFRfQ0FQX0lEX0VSUgkweDAxCS8qIEFkdmFuY2Vk IEVycm9yIFJlcG9ydGluZw0KPiAqLw0KPiA+ICsjZGVmaW5lIFJURV9QQ0lfRVhUX0NBUF9JRF9E U04JMHgwMwkvKiBEZXZpY2UgU2VyaWFsIE51bWJlciAqLw0KPiA+ICsNCj4gDQo+IEkgdW5kZXJz dGFuZCB0aGF0IGl0IGlzIG1vcmUgbmF0dXJhbCB0byBoYXZlIHRob3NlIGRlZmluZXMgaW4gdGhl IFBDSSBsaWIsIGJ1dCBJDQo+IHRoaW5rIHRoZXJlIGlzIG5vIHBvaW50IGluIGFkZGluZyB0aGVt IGluIGEgc2VwYXJhdGUgbGliLCB3aGlsZSB0aGUgZnVuY3Rpb24NCj4gdXNpbmcgdGhvc2UgaXMg aW4gdGhlIFBDSSBidXMuDQo+IA0KPiBJIHRoaW5rIHRoZSBkZWZpbmVzIHNob3VsZCBiZSBwdXQg cmlnaHQgYmVmb3JlIHRoZQ0KPiBydGVfcGNpX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eSgpIHBy b3RvdHlwZSBpbg0KPiBkcml2ZXJzL2J1cy9wY2kvcnRlX2J1c19wY2kuaC4NCg0KSGVsbG8gR2Fl dGFuLA0KDQpJIHRoaW5rIHRoZXNlIGNvbWVzIGluIHRoZSBjYXRlZ29yeSBvZiBhbGwgUlRFX1BD SV8qIGdlbmVyaWMgZGVmaW5lcyAobm90IGp1c3QgdXNlIGluIGRyaXZlcnMvYnVzL3BjaS8pLA0K U2luY2UgY2FsbGVyIG9mIHRoZSBBUEkgYWxzbyBuZWVkIHRvIHVzZSBpdCwgRm9yIGV4YW1wbGUs IGNvdXBsZSBvZiBSVEVfUENJXyogd2VyZSBhZGRlZCBpbiBwYXRjaCAjMg0KdXNlZCBieSBxZWRl IGRyaXZlcnMgc3BlY2lmaWNhbGx5LiBydGVfcGNpLmggc291bmRzIG1vcmUgZ2VuZXJpYyB0aGFu IHJ0ZV9idXNfcGNpLmggaGVuY2UgSSB0aG91Z2h0IGl0DQppcyB0aGUgc3VpdGFibGUgcGxhY2Ug dG8gY29uc29saWRhdGUgdGhlbSBpbiB0aGVyZS4NCg0KVGhhbmtzICEhDQo=