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 A81DCA04B5; Thu, 1 Oct 2020 01:31:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F1F021D5A2; Thu, 1 Oct 2020 01:31:05 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 99A761D59C for ; Thu, 1 Oct 2020 01:31:03 +0200 (CEST) IronPort-SDR: XzmOVeQHIRpfvqzGGi2r4H21roeuBGE6OwkEAtrQKV29JWRhrcC9FCkjd5JWUaCl8zh7lZC+DD 951GREdSjABg== X-IronPort-AV: E=McAfee;i="6000,8403,9760"; a="142579222" X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="142579222" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2020 16:30:57 -0700 IronPort-SDR: 2SdljoTYmiUvu4KtRuxkpDiM7R4v92pq68VnA8jAHZIgvVY5GGu0+c/vvnGkOSuUMLGmGNEizY Eh3TI1/TClCg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,322,1596524400"; d="scan'208";a="500109780" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga005.jf.intel.com with ESMTP; 30 Sep 2020 16:30:56 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 30 Sep 2020 16:30:56 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 30 Sep 2020 16:30:55 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 30 Sep 2020 16:30:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nunFYieaEIKj2yhUnGd/wyRV3y5jpiKwxS0ByGHvXWmm5EstPK4+8fyUXIGbIHk2ZsVbf/UU/cSQjAGn5RmSXT0/n+jCi2tAyVg2tHcXlTYf4JTGIFKioXtmv+ItWGbEV05Y4rDjH9tT9khBpl6K7W0vV1Z3trGGNtuSHvLxQHSGU0AFu2uoLT2q4ViASsz3bkve//7g1JeUnkutYiz7i75L3HwUp0eOam1D7vYscUgzbTItVfTLcnnKTvXHxjsfBF4ZESYLEA72hBKnKkR9TN+00c3lHVDZdahLlY+PvXYbAWNUr4CksML/VhylIdufSafd1ilTP0vt1NxTQXsrvQ== 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=JQS5qeVBbMUPQSJWsGENAm/PBbJOJCslgtYGNwzjWPc=; b=ix9evX/ENqXDelovBpC0Ij0Th/fLCSNdOXFZ4qlqhDcthk3p8dQDJvsE5cd9+xHrUMR6VWKncNNlXjcwNRjNUFyQUMzPygQMIUvaspuR+2s+Ncb8rnay9XpCQ5jiFgMRNQBHQYqK1/uMplwL/XqQf6or+ek9q3FGopYQteOdsJ9Q6uE31oidtgm/+QNYcw07t7WFjSnh2PTBTmEr3UyKFINmu9s4AZBB4/Vza3E4g1/fgYq1AlBd2b03DuLr/OgORLfebI622rsCqLO5T6vuvRF0w0DZC+P88qRCfLcWEhT6vtq2dSgP+U7c9ySmD6y9HwriyoKl7fE1pIWY89HxWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JQS5qeVBbMUPQSJWsGENAm/PBbJOJCslgtYGNwzjWPc=; b=oTNswaEFMyXHDGOxVXKR9vfBhBe+0KXbG+rWIRhdwV6HjzFc16pNE8d1G8OJRYyK2GRTuVMOPwsBsAbXD/jlnPnKGCtMcbxPtux/koPjDHP2BzzqyifMHcxZ/nAlRYIVlMDP9bEsoCrJcyGBxGq2AV0XSoh3PfHBh6FpYY2g76M= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BY5PR11MB3960.namprd11.prod.outlook.com (2603:10b6:a03:185::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.32; Wed, 30 Sep 2020 23:30:48 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3412.028; Wed, 30 Sep 2020 23:30:48 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "dave.burley@accelercomm.com" , "aidan.goddard@accelercomm.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [dpdk-dev] [PATCH v9 01/10] drivers/baseband: add PMD for ACC100 Thread-Index: AQHWlffiHnSbM6HIFE+9RlsZTr/fdamACH6AgAAyw4CAAZWMAIAABAZA Date: Wed, 30 Sep 2020 23:30:47 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-1-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-2-git-send-email-nicolas.chautru@intel.com> <56eb617a-b9ec-c855-d19c-539629221377@redhat.com> In-Reply-To: <56eb617a-b9ec-c855-d19c-539629221377@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1d059d24-313a-4ed9-5bd8-08d86598dc97 x-ms-traffictypediagnostic: BY5PR11MB3960: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3513; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fVM0Viq9at7dChcCUWkSeyOex5JFO4tiQMUfcw9QXlaO93tjD+C3gSBxS335NKyeTVEkx9HyAA8+erRpI7ZT63ZHXf/kO0nVAEClLAhVmsLtv/Pb652d4mAb1gUMqgajHV8tMTIB5VI8GyiBqi7123HbeaZ27WFoAFq1rO1EO0zSnrLOXPmrSXyx+Gxcetm+QEaAJ8NbVoMFeavNyyM0nfyslFE4LPPQ9Lv7gTuVeVlHrWnH2L7o2buZwaAcrX2+P3jpGoYTB1Sw2fKs7ZpB9qgzZ+IA1av4E1zGBV8VoEpFrIVNF69R2864NNCW4Mm4aSsot9S9auBmZrNGJX2wPg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(39860400002)(396003)(346002)(136003)(2906002)(55016002)(30864003)(186003)(52536014)(66446008)(9686003)(107886003)(5660300002)(66476007)(66946007)(66556008)(64756008)(8676002)(76116006)(33656002)(26005)(110136005)(478600001)(53546011)(6506007)(8936002)(86362001)(54906003)(83380400001)(316002)(71200400001)(4326008)(7696005)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: 160QTVXcJsf2ahD3nMIYI7O1F3oGOGqq+7V/FwuXEpIhDqHkojCUzuU2GlP8ZvaDENxrAmY5qSoi+y613GBLBLEuFtHAtgPPS1P6WZN7W1JgvOdzl90EiLWPo+z3Wli/OhV1sgP6TCI2YvTm4uCXxIywRcHIxjtN9vXEKIj+VUZxAkR0oNl1DO5qacW8roOFxx8qVBj3aGQyEELkPFi+h49f06sLlMMf0Mq9U6VTduqTWEW/d5InUx7nPZAzyQhKDFlG9Ylh6kZBAiQ5wDfaXpOf/WM1v8q6vlR4MFmumu1FP/k5zuGwlDxhqOmGJFASM+EpHZckl0W4mg4LEPh7Bz0Oh4rIcC+GZ+v5BgtNYZHqdKUfcFMJhq5XqwiIAodz6mSprsqFpvS5KT7+3CzatgLBGUGqKA4uwOxw1kpRcmT6gAWYvkwFQJaBmKhwapV9ZVcAZKb2zQHuW8sseT0MJVQUI1mUo6yBPGVPYHeY5xjRFGi0S0cvfGgR3/bzgSXcAnyQ0AsW5LzdivM+XPbmXJVuKbo85nkoMr1KXw3R43VlHOJLRJjgmfhdX7ClcRXIGQ8MWR1FTPz6rS4dDqnyA+Izs3BDvZQGIUwBkYi1h4K+zTbeH7PK9dnA/9sFF7AOb1vFOGYVKcm//VREvDTthw== 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d059d24-313a-4ed9-5bd8-08d86598dc97 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 23:30:47.9918 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +9OhlcBLkn1wEn1w9RuZvmnxQ0HTQP88s/KhffngF1Zi2ffeonomP9KrD1q2dYgFdkBLra0oJUI4vE13/UeRnPjUCAEHtO42XEy45cLHJs4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB3960 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v9 01/10] drivers/baseband: add PMD for ACC100 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" SGkgVG9tLCANCg0KPiBGcm9tOiBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+DQo+IE9uIDkvMjkv MjAgNDoxNyBQTSwgQ2hhdXRydSwgTmljb2xhcyB3cm90ZToNCj4gPiBIaSBUb20sDQo+ID4NCj4g Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogVG9tIFJpeCA8dHJpeEBy ZWRoYXQuY29tPg0KPiA+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMjksIDIwMjAgMTI6NTQg UE0NCj4gPj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+ OyBkZXZAZHBkay5vcmc7DQo+ID4+IGFraGlsLmdveWFsQG54cC5jb20NCj4gPj4gQ2M6IFJpY2hh cmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IFh1LCBSb3Nlbg0KPiA+ PiA8cm9zZW4ueHVAaW50ZWwuY29tPjsgZGF2ZS5idXJsZXlAYWNjZWxlcmNvbW0uY29tOw0KPiA+ PiBhaWRhbi5nb2RkYXJkQGFjY2VsZXJjb21tLmNvbTsgWWlnaXQsIEZlcnJ1aA0KPiA+PiA8ZmVy cnVoLnlpZ2l0QGludGVsLmNvbT47IExpdSwgVGlhbmppYW8gPHRpYW5qaWFvLmxpdUBpbnRlbC5j b20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2OSAwMS8xMF0gZHJpdmVy cy9iYXNlYmFuZDogYWRkIFBNRA0KPiA+PiBmb3INCj4gPj4gQUNDMTAwDQo+ID4+DQo+ID4+DQo+ ID4+IE9uIDkvMjgvMjAgNToyOSBQTSwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0KPiA+Pj4gQWRk IHN0dWJzIGZvciB0aGUgQUNDMTAwIFBNRA0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IE5p Y29sYXMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPj4+IEFja2VkLWJ5 OiBMaXUgVGlhbmppYW8gPFRpYW5qaWFvLmxpdUBpbnRlbC5jb20+DQo+ID4+PiAtLS0NCj4gPj4+ ICBkb2MvZ3VpZGVzL2JiZGV2cy9hY2MxMDAucnN0ICAgICAgICAgICAgICAgICAgICAgICB8IDIz Mw0KPiArKysrKysrKysrKysrKysrKysrKysNCj4gPj4+ICBkb2MvZ3VpZGVzL2JiZGV2cy9mZWF0 dXJlcy9hY2MxMDAuaW5pICAgICAgICAgICAgICB8ICAxNCArKw0KPiA+Pj4gIGRvYy9ndWlkZXMv YmJkZXZzL2luZGV4LnJzdCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gPj4+ICBk cml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgNiAr DQo+ID4+PiAgZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYyAgICAgICAg ICAgfCAxNzUNCj4gPj4gKysrKysrKysrKysrKysrKw0KPiA+Pj4gIGRyaXZlcnMvYmFzZWJhbmQv YWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmggICAgICAgICAgIHwgIDM3ICsrKysNCj4gPj4+ICAuLi4v YWNjMTAwL3J0ZV9wbWRfYmJkZXZfYWNjMTAwX3ZlcnNpb24ubWFwICAgICAgICB8ICAgMyArDQo+ ID4+PiAgZHJpdmVycy9iYXNlYmFuZC9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0NCj4gPj4+ICA4IGZpbGVzIGNoYW5nZWQsIDQ3MCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pICBjcmVhdGUgbW9kZQ0KPiA+Pj4gMTAwNjQ0IGRvYy9ndWlkZXMvYmJkZXZzL2Fj YzEwMC5yc3QgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+Pj4gZG9jL2d1aWRlcy9iYmRldnMvZmVh dHVyZXMvYWNjMTAwLmluaQ0KPiA+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jhc2Vi YW5kL2FjYzEwMC9tZXNvbi5idWlsZA0KPiA+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPj4+ICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPj4+IGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9wbWRfYmJk ZXZfYWNjMTAwX3ZlcnNpb24ubWFwDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlk ZXMvYmJkZXZzL2FjYzEwMC5yc3QNCj4gPj4+IGIvZG9jL2d1aWRlcy9iYmRldnMvYWNjMTAwLnJz dCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPiA+Pj4gMDAwMDAwMC4uZjg3ZWUwOQ0KPiA+ Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4gKysrIGIvZG9jL2d1aWRlcy9iYmRldnMvYWNjMTAwLnJz dA0KPiA+Pj4gQEAgLTAsMCArMSwyMzMgQEANCj4gPj4+ICsuLiAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiA+Pj4gKyAgICBDb3B5cmlnaHQoYykgMjAyMCBJbnRlbCBD b3Jwb3JhdGlvbg0KPiA+Pj4gKw0KPiA+Pj4gK0ludGVsKFIpIEFDQzEwMCA1Ry80RyBGRUMgUG9s bCBNb2RlIERyaXZlcg0KPiA+Pj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiA+Pj4gKw0KPiA+Pj4gK1RoZSBCQkRFViBBQ0MxMDAgNUcvNEcgRkVDIHBvbGwg bW9kZSBkcml2ZXIgKFBNRCkgc3VwcG9ydHMgYW4NCj4gPj4+ICtpbXBsZW1lbnRhdGlvbiBvZiBh IFZSQU4gRkVDIHdpcmVsZXNzIGFjY2VsZXJhdGlvbiBmdW5jdGlvbi4NCj4gPj4+ICtUaGlzIGRl dmljZSBpcyBhbHNvIGtub3duIGFzIE1vdW50IEJyeWNlLg0KPiA+PiBJZiB0aGlzIGlzIGNvZGUg bmFtZSBvciBnZW5lcmFsIGNoaXAgbmFtZSBpdCBzaG91bGQgYmUgcmVtb3ZlZC4NCj4gPiBXZSBo YXZlIHVzZWQgZ2VuZXJhbCBjaGlwIG5hbWUgZm9yIG90aGVyIFBNRHMgKGllLiBWaXN0YSBDcmVl ayksIEkgY2FuDQo+ID4gcmVtb3ZlIGJ1dCB3aHkgc2hvdWxkIHRoaXMgYmUgcmVtb3ZlZCBmb3Ig bXkgYmVuZWZpdD8gVGhpcyB0ZW5kcyB0byBiZQ0KPiA+IHRoZSBtb3N0IHVzZXIgZnJpZW5kbHkg bmFtZSBzbyBhcmd1YWJseWdvb2QgdG8gbmFtZSBkcm9wIGluDQo+IGRvY3VtZW50YXRpb24gLg0K PiANCj4gVmlzdGFDcmVlayBpcyB0aGUgY29kZSBuYW1lLCB0aGUgY2hpcCB3b3VsZCBiZSBhcmlh MTAuDQo+IA0KPiBTaW5jZSBtdCBicnljZSBpcyB0aGUgY2hpcCBuYW1lLCBhZnRlciBtb3JlIHRo YW4gMSBlQVNJQyB0aGlzIGJlY29tZXMNCj4gY29uZnVzaW5nLg0KPiANCg0KQWN0dWFsbHkgTXRC cnljZSBpcyB0aGUgNUcgcGVyc29uYWxpdHkgb24gdG9wIG9mIGEgZ2l2ZW4gZUFTSUMgRE01LCBl QVNJQyBjYW4gYmUgc2VlbiBhcyBwcm9jZXNzL2ZhYiB0ZWNobm9sb2d5Lg0KT3RoZXIgZUFTSUMg Y2hpcHMgIT0gTXRCcnljZS4gDQpBQ0MxMDAgPT0gTXRCcnljZSBsaXRlcmFsbHksIG9ubHkgdXNh Z2UgaXMgNEcvNUcgRkVDIGFzIGV4cG9zZWQgYnkgYmJkZXYNClZpc3RhIENyZWVrIGlzIHVzZXIg ZnJpZW5kbHkgbmFtZSBmb3IgTjMwMDAgKENhcmQgKyBBcnJpYTEwKSwgdGhlc2UgbmFtZXMgdGVu ZCB0byBzdGljayBsb25nIGFmdGVyIGVhcmx5IGRlcGxveW1lbnRzLiANCkkgdGhpbmsgaXQgaGVs cHMgdG8gaW5jbHVkZSBpdCBpbiB0aGF0IGRvYyBhcyBhIG9uZSBsaW5lciwgZXZlbiBpZiB0aHJv dWdoIHRoZSByZXN0IG9mIHRoZSBkb2MgYW5kIGNvZGUgdGhlIGRldmljZSBpcyByZWZlcnJlZCB0 byBhcyBBQ0MxMDAuIA0KDQo+IEdlbmVyYWxseSBwdWJsaWMgcHJvZHVjdCBuYW1lcyBzaG91bGQg YmUgdXNlZCBiZWNhdXNlIG9ubHkgdGhlIGVhcmx5DQo+IGRldmVsb3BlcnMgd2lsbCBrbm93IHRo ZSBkZXZlbG9wbWVudCBjb2RlIG5hbWVzLg0KPiANCj4gPg0KPiA+DQo+ID4+PiArDQo+ID4+PiAr RmVhdHVyZXMNCj4gPj4+ICstLS0tLS0tLQ0KPiA+Pj4gKw0KPiA+Pj4gK0FDQzEwMCA1Ry80RyBG RUMgUE1EIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6DQo+ID4+PiArDQo+ID4+PiAr LSBMRFBDIEVuY29kZSBpbiB0aGUgREwgKDVHTlIpDQo+ID4+PiArLSBMRFBDIERlY29kZSBpbiB0 aGUgVUwgKDVHTlIpDQo+ID4+PiArLSBUdXJibyBFbmNvZGUgaW4gdGhlIERMICg0RykNCj4gPj4+ ICstIFR1cmJvIERlY29kZSBpbiB0aGUgVUwgKDRHKQ0KPiA+Pj4gKy0gMTYgVkZzIHBlciBQRiAo cGh5c2ljYWwgZGV2aWNlKQ0KPiA+Pj4gKy0gTWF4aW11bSBvZiAxMjggcXVldWVzIHBlciBWRg0K PiA+Pj4gKy0gUENJZSBHZW4tMyB4MTYgSW50ZXJmYWNlDQo+ID4+PiArLSBNU0kNCj4gPj4+ICst IFNSLUlPVg0KPiA+Pj4gKw0KPiA+Pj4gK0FDQzEwMCA1Ry80RyBGRUMgUE1EIHN1cHBvcnRzIHRo ZSBmb2xsb3dpbmcgQkJERVYgY2FwYWJpbGl0aWVzOg0KPiA+Pj4gKw0KPiA+Pj4gKyogRm9yIHRo ZSBMRFBDIGVuY29kZSBvcGVyYXRpb246DQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0NS Q18yNEJfQVRUQUNIYGAgOiAgc2V0IHRvIGF0dGFjaCBDUkMyNEIgdG8NCj4gPj4gQ0IocykNCj4g Pj4+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfUkFURV9NQVRDSGBgIDogIGlmIHNldCB0aGVuIGRv IG5vdCBkbyBSYXRlDQo+ID4+PiArIE1hdGNoDQo+ID4+IGJ5cGFzcw0KPiA+Pj4gKyAgIC0gYGBS VEVfQkJERVZfTERQQ19JTlRFUkxFQVZFUl9CWVBBU1NgYCA6IGlmIHNldCB0aGVuIGJ5cGFzcw0K PiA+Pj4gK2ludGVybGVhdmVyDQo+ID4+PiArDQo+ID4+PiArKiBGb3IgdGhlIExEUEMgZGVjb2Rl IG9wZXJhdGlvbjoNCj4gPj4+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfQ1JDX1RZUEVfMjRCX0NI RUNLYGAgOiAgY2hlY2sgQ1JDMjRCIGZyb20NCj4gPj4gQ0IocykNCj4gPj4+ICsgICAtIGBgUlRF X0JCREVWX0xEUENfSVRFUkFUSU9OX1NUT1BfRU5BQkxFYGAgOiAgZGlzYWJsZSBlYXJseQ0KPiA+ PiB0ZXJtaW5hdGlvbg0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJERVZfTERQQ19DUkNfVFlQRV8yNEJf RFJPUGBgIDogIGRyb3BzIENSQzI0QiBiaXRzDQo+ID4+IGFwcGVuZGVkIHdoaWxlIGRlY29kaW5n DQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0hRX0NPTUJJTkVfSU5fRU5BQkxFYGAgOiAg cHJvdmlkZXMgYW4NCj4gaW5wdXQNCj4gPj4gZm9yIEhBUlEgY29tYmluaW5nDQo+ID4+PiArICAg LSBgYFJURV9CQkRFVl9MRFBDX0hRX0NPTUJJTkVfT1VUX0VOQUJMRWBgIDogIHByb3ZpZGVzIGFu DQo+IGlucHV0DQo+ID4+IGZvciBIQVJRIGNvbWJpbmluZw0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJE RVZfTERQQ19JTlRFUk5BTF9IQVJRX01FTU9SWV9JTl9FTkFCTEVgYCA6DQo+IEhBUlENCj4gPj4g bWVtb3J5IGlucHV0IGlzIGludGVybmFsDQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0lO VEVSTkFMX0hBUlFfTUVNT1JZX09VVF9FTkFCTEVgYCA6DQo+ID4+IEhBUlEgbWVtb3J5IG91dHB1 dCBpcyBpbnRlcm5hbA0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJERVZfTERQQ19JTlRFUk5BTF9IQVJR X01FTU9SWV9MT09QQkFDS2BgIDoNCj4gPj4gbG9vcGJhY2sgZGF0YSB0by9mcm9tIEhBUlEgbWVt b3J5DQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0lOVEVSTkFMX0hBUlFfTUVNT1JZX0ZJ TExFUlNgYCA6ICBIQVJRDQo+ID4+IG1lbW9yeSBpbmNsdWRlcyB0aGUgZmlsbGVycyBiaXRzDQo+ ID4+PiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0RFQ19TQ0FUVEVSX0dBVEhFUmBgIDogIHN1cHBv cnRzIHNjYXR0ZXItDQo+ID4+IGdhdGhlciBmb3IgaW5wdXQvb3V0cHV0IGRhdGENCj4gPj4+ICsg ICAtIGBgUlRFX0JCREVWX0xEUENfSEFSUV82QklUX0NPTVBSRVNTSU9OYGAgOiAgc3VwcG9ydHMN Cj4gPj4gY29tcHJlc3Npb24gb2YgdGhlIEhBUlEgaW5wdXQvb3V0cHV0DQo+ID4+PiArICAgLSBg YFJURV9CQkRFVl9MRFBDX0xMUl9DT01QUkVTU0lPTmBgIDogIHN1cHBvcnRzIExMUiBpbnB1dA0K PiA+Pj4gK2NvbXByZXNzaW9uDQo+ID4+PiArDQo+ID4+PiArKiBGb3IgdGhlIHR1cmJvIGVuY29k ZSBvcGVyYXRpb246DQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19DUkNfMjRCX0FUVEFD SGBgIDogIHNldCB0byBhdHRhY2ggQ1JDMjRCIHRvDQo+ID4+IENCKHMpDQo+ID4+PiArICAgLSBg YFJURV9CQkRFVl9UVVJCT19SQVRFX01BVENIYGAgOiAgaWYgc2V0IHRoZW4gZG8gbm90IGRvIFJh dGUNCj4gPj4gTWF0Y2ggYnlwYXNzDQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19FTkNf SU5URVJSVVBUU2BgIDogIHNldCBmb3IgZW5jb2RlciBkZXF1ZXVlDQo+ID4+IGludGVycnVwdHMN Cj4gPj4+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJPX1JWX0lOREVYX0JZUEFTU2BgIDogIHNldCB0 byBieXBhc3MgUlYgaW5kZXgNCj4gPj4+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJPX0VOQ19TQ0FU VEVSX0dBVEhFUmBgIDogIHN1cHBvcnRzDQo+ID4+PiArc2NhdHRlci1nYXRoZXIgZm9yIGlucHV0 L291dHB1dCBkYXRhDQo+ID4+PiArDQo+ID4+PiArKiBGb3IgdGhlIHR1cmJvIGRlY29kZSBvcGVy YXRpb246DQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19DUkNfVFlQRV8yNEJgYCA6ICBj aGVjayBDUkMyNEIgZnJvbSBDQihzKQ0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fU1VC QkxPQ0tfREVJTlRFUkxFQVZFYGAgOiAgcGVyZm9ybQ0KPiBzdWJibG9jaw0KPiA+PiBkZS1pbnRl cmxlYXZlDQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19ERUNfSU5URVJSVVBUU2BgIDog IHNldCBmb3IgZGVjb2RlciBkZXF1ZXVlDQo+ID4+IGludGVycnVwdHMNCj4gPj4+ICsgICAtIGBg UlRFX0JCREVWX1RVUkJPX05FR19MTFJfMV9CSVRfSU5gYCA6ICBzZXQgaWYgbmVnYXRpdmUgTExS DQo+ID4+IGVuY29kZXIgaS9wIGlzIHN1cHBvcnRlZA0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJERVZf VFVSQk9fUE9TX0xMUl8xX0JJVF9JTmBgIDogIHNldCBpZiBwb3NpdGl2ZSBMTFINCj4gPj4+ICsg ZW5jb2Rlcg0KPiA+PiBpL3AgaXMgc3VwcG9ydGVkDQo+ID4+PiArICAgLSBgYFJURV9CQkRFVl9U VVJCT19ERUNfVEJfQ1JDXzI0Ql9LRUVQYGAgOiAga2VlcCBDUkMyNEIgYml0cw0KPiA+PiBhcHBl bmRlZCB3aGlsZSBkZWNvZGluZw0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fRUFSTFlf VEVSTUlOQVRJT05gYCA6ICBzZXQgZWFybHkgZWFybHkNCj4gPj4gdGVybWluYXRpb24gZmVhdHVy ZQ0KPiA+Pj4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fREVDX1NDQVRURVJfR0FUSEVSYGAgOiAg c3VwcG9ydHMgc2NhdHRlci0NCj4gPj4gZ2F0aGVyIGZvciBpbnB1dC9vdXRwdXQgZGF0YQ0KPiA+ Pj4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fSEFMRl9JVEVSQVRJT05fRVZFTmBgIDogIHNldCBo YWxmIGl0ZXJhdGlvbg0KPiA+Pj4gK2dyYW51bGFyaXR5DQo+ID4+PiArDQo+ID4+PiArSW5zdGFs bGF0aW9uDQo+ID4+PiArLS0tLS0tLS0tLS0tDQo+ID4+PiArDQo+ID4+PiArU2VjdGlvbiAzIG9m IHRoZSBEUERLIG1hbnVhbCBwcm92aWRlcyBpbnN0dWN0aW9ucyBvbiBpbnN0YWxsaW5nIGFuZA0K PiA+Pj4gK2NvbXBpbGluZyBEUERLLiBUaGUgZGVmYXVsdCBzZXQgb2YgYmJkZXYgY29tcGlsZSBm bGFncyBtYXkgYmUgZm91bmQNCj4gPj4+ICtpbiBjb25maWcvY29tbW9uX2Jhc2UsIHdoZXJlIGZv ciBleGFtcGxlIHRoZSBmbGFnIHRvIGJ1aWxkIHRoZQ0KPiA+Pj4gK0FDQzEwMCA1Ry80RyBGRUMg ZGV2aWNlLA0KPiBgYENPTkZJR19SVEVfTElCUlRFX1BNRF9CQkRFVl9BQ0MxMDBgYCwNCj4gPj4+ ICtpcyBhbHJlYWR5IHNldC4NCj4gPj4+ICsNCj4gPj4+ICtEUERLIHJlcXVpcmVzIGh1Z2VwYWdl cyB0byBiZSBjb25maWd1cmVkIGFzIGRldGFpbGVkIGluIHNlY3Rpb24gMg0KPiA+Pj4gK29mIHRo ZQ0KPiA+PiBEUERLIG1hbnVhbC4NCj4gPj4+ICtUaGUgYmJkZXYgdGVzdCBhcHBsaWNhdGlvbiBo YXMgYmVlbiB0ZXN0ZWQgd2l0aCBhIGNvbmZpZ3VyYXRpb24gNDANCj4gPj4+ICt4IDFHQiBodWdl cGFnZXMuIFRoZSBodWdlcGFnZSBjb25maWd1cmF0aW9uIG9mIGEgc2VydmVyIG1heSBiZQ0KPiA+ Pj4gK2V4YW1pbmVkDQo+ID4+IHVzaW5nOg0KPiA+Pj4gKw0KPiA+Pj4gKy4uIGNvZGUtYmxvY2s6 OiBjb25zb2xlDQo+ID4+PiArDQo+ID4+PiArICAgZ3JlcCBIdWdlKiAvcHJvYy9tZW1pbmZvDQo+ ID4+PiArDQo+ID4+PiArDQo+ID4+PiArSW5pdGlhbGl6YXRpb24NCj4gPj4+ICstLS0tLS0tLS0t LS0tLQ0KPiA+Pj4gKw0KPiA+Pj4gK1doZW4gdGhlIGRldmljZSBmaXJzdCBwb3dlcnMgdXAsIGl0 cyBQQ0kgUGh5c2ljYWwgRnVuY3Rpb25zIChQRikNCj4gPj4+ICtjYW4gYmUNCj4gPj4gbGlzdGVk IHRocm91Z2ggdGhpcyBjb21tYW5kOg0KPiA+Pj4gKw0KPiA+Pj4gKy4uIGNvZGUtYmxvY2s6OiBj b25zb2xlDQo+ID4+PiArDQo+ID4+PiArICBzdWRvIGxzcGNpIC12ZDgwODY6MGQ1Yw0KPiA+Pj4g Kw0KPiA+Pj4gK1RoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGNvbXBhdGli bGUgd2l0aCBMaW51eCBVSU8NCj4gZHJpdmVyczoNCj4gPj4+ICtgYHZmaW9gYCBhbmQgYGBpZ2Jf dWlvYGAuIEhvd2V2ZXIsIGluIG9yZGVyIHRvIHdvcmsgdGhlIEFDQzEwMA0KPiA+Pj4gKzVHLzRH IEZFQyBkZXZpY2UgZmlyc3RseSBuZWVkcyB0byBiZSBib3VuZCB0byBvbmUgb2YgdGhlc2UgbGlu dXgNCj4gPj4+ICtkcml2ZXJzIHRocm91Z2gNCj4gPj4gRFBESy4NCj4gPj4gRkVDIGRldmljZSBm aXJzdA0KPiA+IG9rDQo+ID4NCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICtCaW5kIFBGIFVJTyBk cml2ZXIocykNCj4gPj4+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gPj4+ICsNCj4gPj4+ICtJ bnN0YWxsIHRoZSBEUERLIGlnYl91aW8gZHJpdmVyLCBiaW5kIGl0IHdpdGggdGhlIFBGIFBDSSBk ZXZpY2UgSUQNCj4gPj4+ICthbmQgdXNlIGBgbHNwY2lgYCB0byBjb25maXJtIHRoZSBQRiBkZXZp Y2UgaXMgdW5kZXIgdXNlIGJ5DQo+ID4+PiArYGBpZ2JfdWlvYGAgRFBESw0KPiA+PiBVSU8gZHJp dmVyLg0KPiA+Pj4gKw0KPiA+Pj4gK1RoZSBpZ2JfdWlvIGRyaXZlciBtYXkgYmUgYm91bmQgdG8g dGhlIFBGIFBDSSBkZXZpY2UgdXNpbmcgb25lIG9mDQo+ID4+PiArdGhyZWUNCj4gPj4gbWV0aG9k czoNCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICsxLiBQQ0kgZnVuY3Rpb25zIChwaHlzaWNhbCBv ciB2aXJ0dWFsLCBkZXBlbmRpbmcgb24gdGhlIHVzZSBjYXNlKQ0KPiA+Pj4gK2NhbiBiZSBib3Vu ZCB0byB0aGUgVUlPIGRyaXZlciBieSByZXBlYXRpbmcgdGhpcyBjb21tYW5kIGZvciBldmVyeQ0K PiBmdW5jdGlvbi4NCj4gPj4+ICsNCj4gPj4+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiA+ Pj4gKw0KPiA+Pj4gKyAgY2QgPGRwZGstdG9wLWxldmVsLWRpcmVjdG9yeT4NCj4gPj4+ICsgIGlu c21vZCAuL2J1aWxkL2ttb2QvaWdiX3Vpby5rbw0KPiA+Pj4gKyAgZWNobyAiODA4NiAwZDVjIiA+ IC9zeXMvYnVzL3BjaS9kcml2ZXJzL2lnYl91aW8vbmV3X2lkDQo+ID4+PiArICBsc3BjaSAtdmQ4 MDg2OjBkNWMNCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICsyLiBBbm90aGVyIHdheSB0byBiaW5k IFBGIHdpdGggRFBESyBVSU8gZHJpdmVyIGlzIGJ5IHVzaW5nIHRoZQ0KPiA+Pj4gK2BgZHBkay1k ZXZiaW5kLnB5YGAgdG9vbA0KPiA+Pj4gKw0KPiA+Pj4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xl DQo+ID4+PiArDQo+ID4+PiArICBjZCA8ZHBkay10b3AtbGV2ZWwtZGlyZWN0b3J5Pg0KPiA+Pj4g KyAgLi91c2VydG9vbHMvZHBkay1kZXZiaW5kLnB5IC1iIGlnYl91aW8gMDAwMDowNjowMC4wDQo+ ID4+PiArDQo+ID4+PiArd2hlcmUgdGhlIFBDSSBkZXZpY2UgSUQgKGV4YW1wbGU6IDAwMDA6MDY6 MDAuMCkgaXMgb2J0YWluZWQgdXNpbmcNCj4gPj4+ICtsc3BjaSAtdmQ4MDg2OjBkNWMNCj4gPj4+ ICsNCj4gPj4+ICsNCj4gPj4+ICszLiBBIHRoaXJkIHdheSB0byBiaW5kIGlzIHRvIHVzZSBgYGRw ZGstc2V0dXAuc2hgYCB0b29sDQo+ID4+PiArDQo+ID4+PiArLi4gY29kZS1ibG9jazo6IGNvbnNv bGUNCj4gPj4+ICsNCj4gPj4+ICsgIGNkIDxkcGRrLXRvcC1sZXZlbC1kaXJlY3Rvcnk+DQo+ID4+ PiArICAuL3VzZXJ0b29scy9kcGRrLXNldHVwLnNoDQo+ID4+PiArDQo+ID4+PiArICBzZWxlY3Qg J0JpbmQgRXRoZXJuZXQvQ3J5cHRvL0Jhc2ViYW5kIGRldmljZSB0byBJR0IgVUlPIG1vZHVsZScN Cj4gPj4+ICsgIG9yDQo+ID4+PiArICBzZWxlY3QgJ0JpbmQgRXRoZXJuZXQvQ3J5cHRvL0Jhc2Vi YW5kIGRldmljZSB0byBWRklPIG1vZHVsZScNCj4gPj4+ICsgZGVwZW5kaW5nIG9uIGRyaXZlciBy ZXF1aXJlZA0KPiA+PiBUaGlzIGlzIHRoZSBpZ2JfdWlvIHNlY3Rpb24sIHNob3VsZCBkZWZlciB2 ZmlvIHNlbGVjdCB0byBpdHMgc2VjdGlvbi4NCj4gPiBPaw0KPiA+DQo+ID4+PiArICBlbnRlciBQ Q0kgZGV2aWNlIElEDQo+ID4+PiArICBzZWxlY3QgJ0Rpc3BsYXkgY3VycmVudCBFdGhlcm5ldC9D cnlwdG8vQmFzZWJhbmQgZGV2aWNlIHNldHRpbmdzJw0KPiA+Pj4gKyB0byBjb25maXJtIGJpbmRp bmcNCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICtJbiB0aGUgc2FtZSB3YXkgdGhlIEFDQzEwMCA1 Ry80RyBGRUMgUEYgY2FuIGJlIGJvdW5kIHdpdGggdmZpbywgYnV0DQo+ID4+PiArdmZpbyBkcml2 ZXIgZG9lcyBub3Qgc3VwcG9ydCBTUi1JT1YgY29uZmlndXJhdGlvbiByaWdodCBvdXQgb2YgdGhl DQo+ID4+PiArYm94LCBzbw0KPiA+PiBpdCB3aWxsIG5lZWQgdG8gYmUgcGF0Y2hlZC4NCj4gPj4g T3RoZXIgZG9jdW1lbnRhdGlvbiBzYXlzIHdvcmtzIHdpdGggNS43DQo+ID4gWWVzIHRoaXMgaXMg YSBiaXQgaGlzdG9yaWNhbCBub3cuIEkgY2FuIHJlbW92ZSB0aGlzIGJpdCB3aGljaCBpcyBub3Qg dmVyeQ0KPiBpbmZvcm1hdGl2ZSBhbmQgbm9uIHNwZWNpZmljIHRvIHRoYXQgUE1ELg0KPiA+DQo+ ID4+PiArDQo+ID4+PiArDQo+ID4+PiArRW5hYmxlIFZpcnR1YWwgRnVuY3Rpb25zDQo+ID4+PiAr fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4+PiArDQo+ID4+PiArTm93LCBpdCBzaG91bGQg YmUgdmlzaWJsZSBpbiB0aGUgcHJpbnRvdXRzIHRoYXQgUENJIFBGIGlzIHVuZGVyDQo+ID4+PiAr aWdiX3VpbyBjb250cm9sICJgYEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBpZ2JfdWlvYGAiDQo+ID4+ PiArDQo+ID4+PiArVG8gc2hvdyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBWRnMgb24gdGhlIGRl dmljZSwgcmVhZA0KPiA+Pj4gK2Bgc3Jpb3ZfdG90YWx2ZnNgYA0KPiA+PiBmaWxlLi4NCj4gPj4+ ICsNCj4gPj4+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiA+Pj4gKw0KPiA+Pj4gKyAgY2F0 IC9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDBcOjxiPlw6PGQ+LjxmPi9zcmlvdl90b3RhbHZmcw0K PiA+Pj4gKw0KPiA+Pj4gKyAgd2hlcmUgMDAwMFw6PGI+XDo8ZD4uPGY+IGlzIHRoZSBQQ0kgZGV2 aWNlIElEDQo+ID4+PiArDQo+ID4+PiArDQo+ID4+PiArVG8gZW5hYmxlIFZGcyB2aWEgaWdiX3Vp bywgZWNobyB0aGUgbnVtYmVyIG9mIHZpcnR1YWwgZnVuY3Rpb25zDQo+ID4+PiAraW50ZW5kZWQg dG8gZW5hYmxlIHRvIGBgbWF4X3Zmc2BgIGZpbGUuLg0KPiA+Pj4gKw0KPiA+Pj4gKy4uIGNvZGUt YmxvY2s6OiBjb25zb2xlDQo+ID4+PiArDQo+ID4+PiArICBlY2hvIDxudW0tb2YtdmZzPiA+DQo+ ID4+PiArIC9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDBcOjxiPlw6PGQ+LjxmPi9tYXhfdmZzDQo+ ID4+PiArDQo+ID4+PiArDQo+ID4+PiArQWZ0ZXJ3YXJkcywgYWxsIFZGcyBtdXN0IGJlIGJvdW5k IHRvIGFwcHJvcHJpYXRlIFVJTyBkcml2ZXJzIGFzDQo+ID4+PiArcmVxdWlyZWQsIHNhbWUgd2F5 IGl0IHdhcyBkb25lIHdpdGggdGhlIHBoeXNpY2FsIGZ1bmN0aW9uIHByZXZpb3VzbHkuDQo+ID4+ PiArDQo+ID4+PiArRW5hYmxpbmcgU1ItSU9WIHZpYSB2ZmlvIGRyaXZlciBpcyBwcmV0dHkgbXVj aCB0aGUgc2FtZSwgZXhjZXB0DQo+ID4+PiArdGhhdCB0aGUgZmlsZSBuYW1lIGlzIGRpZmZlcmVu dDoNCj4gPj4+ICsNCj4gPj4+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiA+Pj4gKw0KPiA+ Pj4gKyAgZWNobyA8bnVtLW9mLXZmcz4gPg0KPiA+Pj4gKyAvc3lzL2J1cy9wY2kvZGV2aWNlcy8w MDAwXDo8Yj5cOjxkPi48Zj4vc3Jpb3ZfbnVtdmZzDQo+ID4+PiArDQo+ID4+PiArDQo+ID4+PiAr Q29uZmlndXJlIHRoZSBWRnMgdGhyb3VnaCBQRg0KPiA+Pj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4NCj4gPj4+ICsNCj4gPj4+ICtUaGUgUENJIHZpcnR1YWwgZnVuY3Rpb25zIG11c3Qg YmUgY29uZmlndXJlZCBiZWZvcmUgd29ya2luZyBvcg0KPiA+Pj4gK2dldHRpbmcgYXNzaWduZWQg dG8gVk1zL0NvbnRhaW5lcnMuIFRoZSBjb25maWd1cmF0aW9uIGludm9sdmVzDQo+ID4+PiArYWxs b2NhdGluZyB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIHF1ZXVlcywgcHJpb3JpdGllcywgbG9hZCBi YWxhbmNlLA0KPiA+Pj4gK2JhbmR3aWR0aCBhbmQgb3RoZXIgc2V0dGluZ3MgbmVjZXNzYXJ5IGZv ciB0aGUgZGV2aWNlIHRvIHBlcmZvcm0NCj4gPj4+ICtGRUMNCj4gPj4gZnVuY3Rpb25zLg0KPiA+ Pj4gKw0KPiA+Pj4gK1RoaXMgY29uZmlndXJhdGlvbiBuZWVkcyB0byBiZSBleGVjdXRlZCBhdCBs ZWFzdCBvbmNlIGFmdGVyIHJlYm9vdA0KPiA+Pj4gK29yIFBDSSBGTFIgYW5kIGNhbiBiZSBhY2hp ZXZlZCBieSB1c2luZyB0aGUgZnVuY3Rpb24NCj4gPj4+ICtgYGFjYzEwMF9jb25maWd1cmUoKWBg LCB3aGljaCBzZXRzIHVwIHRoZSBwYXJhbWV0ZXJzIGRlZmluZWQgaW4NCj4gPj4gYGBhY2MxMDBf Y29uZmBgIHN0cnVjdHVyZS4NCj4gPj4+ICsNCj4gPj4+ICtUZXN0IEFwcGxpY2F0aW9uDQo+ID4+ PiArLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4gKw0KPiA+Pj4gK0JCREVWIHByb3ZpZGVzIGEgdGVz dCBhcHBsaWNhdGlvbiwgYGB0ZXN0LWJiZGV2LnB5YGAgYW5kIHJhbmdlIG9mDQo+ID4+PiArdGVz dCBkYXRhIGZvciB0ZXN0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIEFDQzEwMCA1Ry80RyBGRUMg ZW5jb2RlDQo+ID4+PiArYW5kIGRlY29kZSwgZGVwZW5kaW5nIG9uIHRoZSBkZXZpY2UncyBjYXBh YmlsaXRpZXMuIFRoZSB0ZXN0DQo+ID4+PiArYXBwbGljYXRpb24gaXMgbG9jYXRlZCB1bmRlciBh cHAtPnRlc3QtYmJkZXYgZm9sZGVyIGFuZCBoYXMgdGhlDQo+ID4+PiArZm9sbG93aW5nDQo+ID4+ IG9wdGlvbnM6DQo+ID4+PiArDQo+ID4+PiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPj4+ ICsNCj4gPj4+ICsgICItcCIsICItLXRlc3RhcHAtcGF0aCI6IHNwZWNpZmllcyBwYXRoIHRvIHRo ZSBiYmRldiB0ZXN0IGFwcC4NCj4gPj4+ICsgICItZSIsICItLWVhbC1wYXJhbXMiCTogRUFMIGFy Z3VtZW50cyB3aGljaCBhcmUgcGFzc2VkIHRvIHRoZSB0ZXN0DQo+ID4+IGFwcC4NCj4gPj4+ICsg ICItdCIsICItLXRpbWVvdXQiCTogVGltZW91dCBpbiBzZWNvbmRzIChkZWZhdWx0PTMwMCkuDQo+ ID4+PiArICAiLWMiLCAiLS10ZXN0LWNhc2VzIgk6IERlZmluZXMgdGVzdCBjYXNlcyB0byBydW4u IFJ1biBhbGwgaWYgbm90DQo+IHNwZWNpZmllZC4NCj4gPj4+ICsgICItdiIsICItLXRlc3QtdmVj dG9yIgk6IFRlc3QgdmVjdG9yIHBhdGgNCj4gKGRlZmF1bHQ9ZHBka19wYXRoKy9hcHAvdGVzdC0N Cj4gPj4gYmJkZXYvdGVzdF92ZWN0b3JzL2JiZGV2X251bGwuZGF0YSkuDQo+ID4+PiArICAiLW4i LCAiLS1udW0tb3BzIgk6IE51bWJlciBvZiBvcGVyYXRpb25zIHRvIHByb2Nlc3Mgb24gZGV2aWNl DQo+ID4+IChkZWZhdWx0PTMyKS4NCj4gPj4+ICsgICItYiIsICItLWJ1cnN0LXNpemUiCTogT3Bl cmF0aW9ucyBlbnF1ZXVlL2RlcXVldWUgYnVyc3Qgc2l6ZQ0KPiA+PiAoZGVmYXVsdD0zMikuDQo+ ID4+PiArICAiLXMiLCAiLS1zbnIiCQk6IFNOUiBpbiBkQiB1c2VkIHdoZW4gZ2VuZXJhdGluZyBM TFJzIGZvcg0KPiBibGVyIHRlc3RzLg0KPiA+Pj4gKyAgIi1zIiwgIi0taXRlcl9tYXgiCTogTnVt YmVyIG9mIGl0ZXJhdGlvbnMgZm9yIExEUEMgZGVjb2Rlci4NCj4gPj4+ICsgICItbCIsICItLW51 bS1sY29yZXMiCTogTnVtYmVyIG9mIGxjb3JlcyB0byBydW4gKGRlZmF1bHQ9MTYpLg0KPiA+Pj4g KyAgIi1pIiwgIi0taW5pdC1kZXZpY2UiIDogSW5pdGlhbGlzZSBQRiBkZXZpY2Ugd2l0aCBkZWZh dWx0IHZhbHVlcy4NCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICtUbyBleGVjdXRlIHRoZSB0ZXN0 IGFwcGxpY2F0aW9uIHRvb2wgdXNpbmcgc2ltcGxlIGRlY29kZSBvciBlbmNvZGUNCj4gPj4+ICtk YXRhLCB0eXBlIG9uZSBvZiB0aGUgZm9sbG93aW5nOg0KPiA+Pj4gKw0KPiA+Pj4gKy4uIGNvZGUt YmxvY2s6OiBjb25zb2xlDQo+ID4+PiArDQo+ID4+PiArICAuL3Rlc3QtYmJkZXYucHkgLWMgdmFs aWRhdGlvbiAtbiA2NCAtYiAxIC12DQo+ID4+PiArIC4vbGRwY19kZWNfZGVmYXVsdC5kYXRhIC4v dGVzdC1iYmRldi5weSAtYyB2YWxpZGF0aW9uIC1uIDY0IC1iIDENCj4gPj4+ICsgLXYgLi9sZHBj X2VuY19kZWZhdWx0LmRhdGENCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICtUaGUgdGVzdCBhcHBs aWNhdGlvbiBgYHRlc3QtYmJkZXYucHlgYCwgc3VwcG9ydHMgdGhlIGFiaWxpdHkgdG8NCj4gPj4+ ICtjb25maWd1cmUgdGhlIFBGIGRldmljZSB3aXRoIGEgZGVmYXVsdCBzZXQgb2YgdmFsdWVzLCBp ZiB0aGUgIi1pIg0KPiA+Pj4gK29yDQo+ID4+PiArIi0gLWluaXQtZGV2aWNlIiBvcHRpb24gaXMg aW5jbHVkZWQuIFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgZGVmaW5lZA0KPiA+Pj4gK2luDQo+ID4+ IHRlc3RfYmJkZXZfcGVyZi5jLg0KPiA+Pj4gKw0KPiA+Pj4gKw0KPiA+Pj4gK1Rlc3QgVmVjdG9y cw0KPiA+Pj4gK35+fn5+fn5+fn5+fg0KPiA+Pj4gKw0KPiA+Pj4gK0luIGFkZGl0aW9uIHRvIHRo ZSBzaW1wbGUgTERQQyBkZWNvZGVyIGFuZCBMRFBDIGVuY29kZXIgdGVzdHMsDQo+ID4+PiArYmJk ZXYgYWxzbyBwcm92aWRlcyBhIHJhbmdlIG9mIGFkZGl0aW9uYWwgdGVzdHMgdW5kZXIgdGhlDQo+ ID4+PiArdGVzdF92ZWN0b3JzIGZvbGRlciwgd2hpY2ggbWF5IGJlIHVzZWZ1bC4gVGhlIHJlc3Vs dHMgb2YgdGhlc2UNCj4gPj4+ICt0ZXN0cyB3aWxsIGRlcGVuZCBvbiB0aGUgQUNDMTAwIDVHLzRH IEZFQyBjYXBhYmlsaXRpZXMgd2hpY2ggbWF5DQo+ID4+PiArY2F1c2Ugc29tZSB0ZXN0Y2FzZXMg dG8NCj4gPj4gYmUgc2tpcHBlZCwgYnV0IG5vIGZhaWx1cmUgc2hvdWxkIGJlIHJlcG9ydGVkLg0K PiA+Pg0KPiA+PiBKdXN0DQo+ID4+DQo+ID4+IHRvIGJlIHNraXBwZWQuDQo+ID4+DQo+ID4+IHNo b3VsZCBiZSBhYmxlIHRvIGFzc3VtZSBza2lwcGVkIHRlc3QgZG8gbm90IGdldCByZXBvcnRlZCBh cyBmYWlsdXJlcy4NCj4gPiBOb3QgbmVjZXNzYXJhbHkgdGhhdCBvYnZpb3VzIGZyb20gZmVlZGJh Y2suIEl0IGRvZXNuJ3QgaHVydCB0byBiZQ0KPiA+IGV4cGxpY2l0IGFuZCB0aGlzIHN0YXRlbWVu dCBpcyBjb21tb24gdG8gYWxsIFBNRHMuDQo+ID4NCj4gb2sNCj4gDQo+ID4+PiBkaWZmIC0tZ2l0 IGEvZG9jL2d1aWRlcy9iYmRldnMvZmVhdHVyZXMvYWNjMTAwLmluaQ0KPiA+Pj4gYi9kb2MvZ3Vp ZGVzL2JiZGV2cy9mZWF0dXJlcy9hY2MxMDAuaW5pDQo+ID4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+Pj4gaW5kZXggMDAwMDAwMC4uYzg5YTRkNw0KPiA+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+ Pj4gKysrIGIvZG9jL2d1aWRlcy9iYmRldnMvZmVhdHVyZXMvYWNjMTAwLmluaQ0KPiA+Pj4gQEAg LTAsMCArMSwxNCBAQA0KPiA+Pj4gKzsNCj4gPj4+ICs7IFN1cHBvcnRlZCBmZWF0dXJlcyBvZiB0 aGUgJ2FjYzEwMCcgYmJkZXYgZHJpdmVyLg0KPiA+Pj4gKzsNCj4gPj4+ICs7IFJlZmVyIHRvIGRl ZmF1bHQuaW5pIGZvciB0aGUgZnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBQTUQgZmVhdHVyZXMuDQo+ ID4+PiArOw0KPiA+Pj4gK1tGZWF0dXJlc10NCj4gPj4+ICtUdXJibyBEZWNvZGVyICg0RykgICAg ID0gTg0KPiA+Pj4gK1R1cmJvIEVuY29kZXIgKDRHKSAgICAgPSBODQo+ID4+PiArTERQQyBEZWNv ZGVyICg1RykgICAgICA9IE4NCj4gPj4+ICtMRFBDIEVuY29kZXIgKDVHKSAgICAgID0gTg0KPiA+ Pj4gK0xMUi9IQVJRIENvbXByZXNzaW9uICAgPSBODQo+ID4+PiArRXh0ZXJuYWwgRERSIEFjY2Vz cyAgICA9IE4NCj4gPj4+ICtIVyBBY2NlbGVyYXRlZCAgICAgICAgID0gWQ0KPiA+Pj4gK0JCREVW IEFQSSAgICAgICAgICAgICAgPSBZDQo+ID4+PiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9iYmRl dnMvaW5kZXgucnN0DQo+ID4+PiBiL2RvYy9ndWlkZXMvYmJkZXZzL2luZGV4LnJzdCBpbmRleCBh ODA5MmRkLi40NDQ1Y2JkIDEwMDY0NA0KPiA+Pj4gLS0tIGEvZG9jL2d1aWRlcy9iYmRldnMvaW5k ZXgucnN0DQo+ID4+PiArKysgYi9kb2MvZ3VpZGVzL2JiZGV2cy9pbmRleC5yc3QNCj4gPj4+IEBA IC0xMywzICsxMyw0IEBAIEJhc2ViYW5kIERldmljZSBEcml2ZXJzDQo+ID4+PiAgICAgIHR1cmJv X3N3DQo+ID4+PiAgICAgIGZwZ2FfbHRlX2ZlYw0KPiA+Pj4gICAgICBmcGdhXzVnbnJfZmVjDQo+ ID4+PiArICAgIGFjYzEwMA0KPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNj MTAwL21lc29uLmJ1aWxkDQo+ID4+PiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL21lc29uLmJ1 aWxkDQo+ID4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+Pj4gaW5kZXggMDAwMDAwMC4uOGFm YWZjMg0KPiA+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9h Y2MxMDAvbWVzb24uYnVpbGQNCj4gPj4+IEBAIC0wLDAgKzEsNiBAQA0KPiA+Pj4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAjIENvcHlyaWdodChjKSAyMDIwIEludGVs DQo+ID4+PiArQ29ycG9yYXRpb24NCj4gPj4+ICsNCj4gPj4+ICtkZXBzICs9IFsnYmJkZXYnLCAn YnVzX3ZkZXYnLCAncmluZycsICdwY2knLCAnYnVzX3BjaSddDQo+ID4+PiArDQo+ID4+PiArc291 cmNlcyA9IGZpbGVzKCdydGVfYWNjMTAwX3BtZC5jJykNCj4gPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4+PiBiL2RyaXZlcnMvYmFz ZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4+PiBpbmRleCAwMDAwMDAwLi4xYjRjZDEzDQo+ID4+PiAtLS0gL2Rldi9udWxsDQo+ID4+ PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4+PiBA QCAtMCwwICsxLDE3NSBAQA0KPiA+Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt My1DbGF1c2UNCj4gPj4+ICsgKiBDb3B5cmlnaHQoYykgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbiAg Ki8NCj4gPj4+ICsNCj4gPj4+ICsjaW5jbHVkZSA8dW5pc3RkLmg+DQo+ID4+PiArDQo+ID4+PiAr I2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPj4+ICsjaW5jbHVkZSA8cnRlX2xvZy5oPg0KPiA+ Pj4gKyNpbmNsdWRlIDxydGVfZGV2Lmg+DQo+ID4+PiArI2luY2x1ZGUgPHJ0ZV9tYWxsb2MuaD4N Cj4gPj4+ICsjaW5jbHVkZSA8cnRlX21lbXBvb2wuaD4NCj4gPj4+ICsjaW5jbHVkZSA8cnRlX2J5 dGVvcmRlci5oPg0KPiA+Pj4gKyNpbmNsdWRlIDxydGVfZXJybm8uaD4NCj4gPj4+ICsjaW5jbHVk ZSA8cnRlX2JyYW5jaF9wcmVkaWN0aW9uLmg+DQo+ID4+PiArI2luY2x1ZGUgPHJ0ZV9oZXhkdW1w Lmg+DQo+ID4+PiArI2luY2x1ZGUgPHJ0ZV9wY2kuaD4NCj4gPj4+ICsjaW5jbHVkZSA8cnRlX2J1 c19wY2kuaD4NCj4gPj4+ICsNCj4gPj4+ICsjaW5jbHVkZSA8cnRlX2JiZGV2Lmg+DQo+ID4+PiAr I2luY2x1ZGUgPHJ0ZV9iYmRldl9wbWQuaD4NCj4gPj4gU2hvdWxkIHRoZXNlICNpbmNsdWRlcycg YmUgaW4gYWxwaGEgb3JkZXIgPw0KPiA+IEludGVyZXN0aW5nIGNvbW1lbnQuIElzIHRoaXMgYSBj b2RpbmcgZ3VpZGUgbGluZSBmb3IgRFBESyBvciBvdGhlcnM/DQo+ID4gSSBoYXZlIG5ldmVyIGhl YXJkIG9mIHRoaXMgcGVyc29ubmFsbHksIHdoYXQgaXMgdGhlIHJhdGlvbmFsPw0KPiANCj4gTm90 IHN1cmUgaWYgdGhpcyBpcyBkcGRrIHN0eWxlLCBpIGtub3cgc29tZSBvdGhlciBwcm9qZWN0IGRv IHRoaXMuDQo+IA0KPiBUaGlzIHdvcmtzIGZvciBzZWxmIGNvbnNpc3RlbnQgaGVhZGVycywgbm8g aWRlYSBpZiBkcGRrIGFyZS4NCj4gDQo+IGRvbid0IGJvdGhlciB3aXRoIHRoaXMuDQo+IA0KPiA+ Pj4gKyNpbmNsdWRlICJydGVfYWNjMTAwX3BtZC5oIg0KPiA+Pj4gKw0KPiA+Pj4gKyNpZmRlZiBS VEVfTElCUlRFX0JCREVWX0RFQlVHDQo+ID4+PiArUlRFX0xPR19SRUdJU1RFUihhY2MxMDBfbG9n dHlwZSwgcG1kLmJiLmFjYzEwMCwgREVCVUcpOyAjZWxzZQ0KPiA+Pj4gK1JURV9MT0dfUkVHSVNU RVIoYWNjMTAwX2xvZ3R5cGUsIHBtZC5iYi5hY2MxMDAsIE5PVElDRSk7ICNlbmRpZg0KPiA+Pj4g Kw0KPiA+Pj4gKy8qIEZyZWUgNjRNQiBtZW1vcnkgdXNlZCBmb3Igc29mdHdhcmUgcmluZ3MgKi8g c3RhdGljIGludA0KPiA+Pj4gK2FjYzEwMF9kZXZfY2xvc2Uoc3RydWN0IHJ0ZV9iYmRldiAqZGV2 ICBfX3J0ZV91bnVzZWQpIHsNCj4gPj4+ICsJcmV0dXJuIDA7DQo+ID4+PiArfQ0KPiA+Pj4gKw0K PiA+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2JiZGV2X29wcyBhY2MxMDBfYmJkZXZfb3Bz ID0gew0KPiA+Pj4gKwkuY2xvc2UgPSBhY2MxMDBfZGV2X2Nsb3NlLA0KPiA+Pj4gK307DQo+ID4+ PiArDQo+ID4+PiArLyogQUNDMTAwIFBDSSBQRiBhZGRyZXNzIG1hcCAqLw0KPiA+Pj4gK3N0YXRp YyBzdHJ1Y3QgcnRlX3BjaV9pZCBwY2lfaWRfYWNjMTAwX3BmX21hcFtdID0gew0KPiA+Pj4gKwl7 DQo+ID4+PiArCQlSVEVfUENJX0RFVklDRShSVEVfQUNDMTAwX1ZFTkRPUl9JRCwNCj4gPj4gUlRF X0FDQzEwMF9QRl9ERVZJQ0VfSUQpDQo+ID4+PiArCX0sDQo+ID4+PiArCXsuZGV2aWNlX2lkID0g MH0sDQo+ID4+PiArfTsNCj4gPj4+ICsNCj4gPj4+ICsvKiBBQ0MxMDAgUENJIFZGIGFkZHJlc3Mg bWFwICovDQo+ID4+PiArc3RhdGljIHN0cnVjdCBydGVfcGNpX2lkIHBjaV9pZF9hY2MxMDBfdmZf bWFwW10gPSB7DQo+ID4+PiArCXsNCj4gPj4+ICsJCVJURV9QQ0lfREVWSUNFKFJURV9BQ0MxMDBf VkVORE9SX0lELA0KPiA+PiBSVEVfQUNDMTAwX1ZGX0RFVklDRV9JRCkNCj4gPj4+ICsJfSwNCj4g Pj4+ICsJey5kZXZpY2VfaWQgPSAwfSwNCj4gPj4+ICt9Ow0KPiA+Pj4gKw0KPiA+Pj4gKy8qIElu aXRpYWxpemF0aW9uIEZ1bmN0aW9uICovDQo+ID4+PiArc3RhdGljIHZvaWQNCj4gPj4+ICthY2Mx MDBfYmJkZXZfaW5pdChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHN0cnVjdCBydGVfcGNpX2RyaXZl cg0KPiA+Pj4gKypkcnYpIHsNCj4gPj4+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2 ID0gUlRFX0RFVl9UT19QQ0koZGV2LT5kZXZpY2UpOw0KPiA+Pj4gKw0KPiA+Pj4gKwlkZXYtPmRl dl9vcHMgPSAmYWNjMTAwX2JiZGV2X29wczsNCj4gPj4+ICsNCj4gPj4+ICsJKChzdHJ1Y3QgYWNj MTAwX2RldmljZSAqKSBkZXYtPmRhdGEtPmRldl9wcml2YXRlKS0+cGZfZGV2aWNlID0NCj4gPj4+ ICsJCQkhc3RyY21wKGRydi0+ZHJpdmVyLm5hbWUsDQo+ID4+PiArDQo+ID4+IAlSVEVfU1RSKEFD QzEwMFBGX0RSSVZFUl9OQU1FKSk7DQo+ID4+PiArCSgoc3RydWN0IGFjYzEwMF9kZXZpY2UgKikg ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSktPm1taW9fYmFzZSA9DQo+ID4+PiArCQkJcGNpX2Rldi0+ bWVtX3Jlc291cmNlWzBdLmFkZHI7DQo+ID4+PiArDQo+ID4+PiArCXJ0ZV9iYmRldl9sb2dfZGVi dWcoIkluaXQgZGV2aWNlICVzIFslc10gQCB2YWRkciAlcCBwYWRkcg0KPiA+PiAlIyJQUkl4NjQi IiwNCj4gPj4+ICsJCQlkcnYtPmRyaXZlci5uYW1lLCBkZXYtPmRhdGEtPm5hbWUsDQo+ID4+PiAr CQkJKHZvaWQgKilwY2lfZGV2LT5tZW1fcmVzb3VyY2VbMF0uYWRkciwNCj4gPj4+ICsJCQlwY2lf ZGV2LT5tZW1fcmVzb3VyY2VbMF0ucGh5c19hZGRyKTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+ PiArc3RhdGljIGludCBhY2MxMDBfcGNpX3Byb2JlKHN0cnVjdCBydGVfcGNpX2RyaXZlciAqcGNp X2RydiwNCj4gPj4+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KQ0KPiA+Pj4gK3sN Cj4gPj4+ICsJc3RydWN0IHJ0ZV9iYmRldiAqYmJkZXYgPSBOVUxMOw0KPiA+Pj4gKwljaGFyIGRl dl9uYW1lW1JURV9CQkRFVl9OQU1FX01BWF9MRU5dOw0KPiA+Pj4gKw0KPiA+Pj4gKwlpZiAocGNp X2RldiA9PSBOVUxMKSB7DQo+ID4+PiArCQlydGVfYmJkZXZfbG9nKEVSUiwgIk5VTEwgUENJIGRl dmljZSIpOw0KPiA+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiArCX0NCj4gPj4+ICsNCj4g Pj4+ICsJcnRlX3BjaV9kZXZpY2VfbmFtZSgmcGNpX2Rldi0+YWRkciwgZGV2X25hbWUsDQo+ID4+ IHNpemVvZihkZXZfbmFtZSkpOw0KPiA+Pj4gKw0KPiA+Pj4gKwkvKiBBbGxvY2F0ZSBtZW1vcnkg dG8gYmUgdXNlZCBwcml2YXRlbHkgYnkgZHJpdmVycyAqLw0KPiA+Pj4gKwliYmRldiA9IHJ0ZV9i YmRldl9hbGxvY2F0ZShwY2lfZGV2LT5kZXZpY2UubmFtZSk7DQo+ID4+PiArCWlmIChiYmRldiA9 PSBOVUxMKQ0KPiA+Pj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+PiArDQo+ID4+PiArCS8qIGFs bG9jYXRlIGRldmljZSBwcml2YXRlIG1lbW9yeSAqLw0KPiA+Pj4gKwliYmRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGUgPSBydGVfem1hbGxvY19zb2NrZXQoZGV2X25hbWUsDQo+ID4+PiArCQkJc2l6ZW9m KHN0cnVjdCBhY2MxMDBfZGV2aWNlKSwgUlRFX0NBQ0hFX0xJTkVfU0laRSwNCj4gPj4+ICsJCQlw Y2lfZGV2LT5kZXZpY2UubnVtYV9ub2RlKTsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKGJiZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZSA9PSBOVUxMKSB7DQo+ID4+PiArCQlydGVfYmJkZXZfbG9nKENSSVQs DQo+ID4+PiArCQkJCSJBbGxvY2F0ZSBvZiAlenUgYnl0ZXMgZm9yIGRldmljZSBcIiVzXCINCj4g Pj4gZmFpbGVkIiwNCj4gPj4+ICsJCQkJc2l6ZW9mKHN0cnVjdCBhY2MxMDBfZGV2aWNlKSwgZGV2 X25hbWUpOw0KPiA+Pj4gKwkJCQlydGVfYmJkZXZfcmVsZWFzZShiYmRldik7DQo+ID4+PiArCQkJ cmV0dXJuIC1FTk9NRU07DQo+ID4+PiArCX0NCj4gPj4+ICsNCj4gPj4+ICsJLyogRmlsbCBIVyBz cGVjaWZpYyBwYXJ0IG9mIGRldmljZSBzdHJ1Y3R1cmUgKi8NCj4gPj4+ICsJYmJkZXYtPmRldmlj ZSA9ICZwY2lfZGV2LT5kZXZpY2U7DQo+ID4+PiArCWJiZGV2LT5pbnRyX2hhbmRsZSA9ICZwY2lf ZGV2LT5pbnRyX2hhbmRsZTsNCj4gPj4+ICsJYmJkZXYtPmRhdGEtPnNvY2tldF9pZCA9IHBjaV9k ZXYtPmRldmljZS5udW1hX25vZGU7DQo+ID4+PiArDQo+ID4+PiArCS8qIEludm9rZSBBQ0MxMDAg ZGV2aWNlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uICovDQo+ID4+PiArCWFjYzEwMF9iYmRldl9p bml0KGJiZGV2LCBwY2lfZHJ2KTsNCj4gPj4+ICsNCj4gPj4+ICsJcnRlX2JiZGV2X2xvZ19kZWJ1 ZygiSW5pdGlhbGlzZWQgYmJkZXYgJXMgKGlkID0gJXUpIiwNCj4gPj4+ICsJCQlkZXZfbmFtZSwg YmJkZXYtPmRhdGEtPmRldl9pZCk7DQo+ID4+PiArCXJldHVybiAwOw0KPiA+Pj4gK30NCj4gPj4+ ICsNCj4gPj4+ICtzdGF0aWMgaW50IGFjYzEwMF9wY2lfcmVtb3ZlKHN0cnVjdCBydGVfcGNpX2Rl dmljZSAqcGNpX2Rldikgew0KPiA+Pj4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpiYmRldjsNCj4gPj4+ ICsJaW50IHJldDsNCj4gPj4+ICsJdWludDhfdCBkZXZfaWQ7DQo+ID4+PiArDQo+ID4+PiArCWlm IChwY2lfZGV2ID09IE5VTEwpDQo+ID4+PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ICsNCj4g Pj4+ICsJLyogRmluZCBkZXZpY2UgKi8NCj4gPj4+ICsJYmJkZXYgPSBydGVfYmJkZXZfZ2V0X25h bWVkX2RldihwY2lfZGV2LT5kZXZpY2UubmFtZSk7DQo+ID4+PiArCWlmIChiYmRldiA9PSBOVUxM KSB7DQo+ID4+PiArCQlydGVfYmJkZXZfbG9nKENSSVQsDQo+ID4+PiArCQkJCSJDb3VsZG4ndCBm aW5kIEhXIGRldiBcIiVzXCIgdG8gdW5pbml0aWFsaXNlDQo+ID4+IGl0IiwNCj4gPj4+ICsJCQkJ cGNpX2Rldi0+ZGV2aWNlLm5hbWUpOw0KPiA+Pj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+PiAr CX0NCj4gPj4+ICsJZGV2X2lkID0gYmJkZXYtPmRhdGEtPmRldl9pZDsNCj4gPj4+ICsNCj4gPj4+ ICsJLyogZnJlZSBkZXZpY2UgcHJpdmF0ZSBtZW1vcnkgYmVmb3JlIGNsb3NlICovDQo+ID4+PiAr CXJ0ZV9mcmVlKGJiZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ID4+PiArDQo+ID4+PiArCS8q IENsb3NlIGRldmljZSAqLw0KPiA+Pj4gKwlyZXQgPSBydGVfYmJkZXZfY2xvc2UoZGV2X2lkKTsN Cj4gPj4gRG8geW91IHdhbnQgdG8gcmVvcmRlciB0aGlzIGNsb3NlIGJlZm9yZSB0aGUgcnRlX2Zy ZWUgc28geW91IGNvdWxkDQo+ID4+IHJlY292ZXIgZnJvbSB0aGUgZmFpbHVyZSA/DQo+ID4gR2l2 ZW4gdGhpcyBpcyBkb25lIHRoZSBzYW1lIHdheSBmb3Igb3RoZXIgUE1EcyBJIHdvdWxkIG5vdCBj aGFuZ2UgaXQgYXMgaXQNCj4gd291bGQgY3JlYXRlIGEgZGlzY3JlcGVuY3kuDQo+ID4gSXQgY291 bGQgYmUgZG9uZSBpbiBwcmluY2lwbGUgYXMgYW5vdGhlciBwYXRjaCBmb3IgbXVsdGlwbGUgUE1E cyB0bw0KPiBzdXBwb3J0IHRoaXMsIGJ1dCByZWFsbHkgSSBkb24ndCBzZWUgYSB1c2VjYXNlIGZv ciB0cnkgdG8gZmFsbCBiYWNrIGluIGNhc2UgdGhlcmUNCj4gd2FzIHN1Y2ggYSBzcGVjdWxhdGl2 ZSBhZXJyb3IuDQo+ID4NCj4gZmFpciBlbm91Z2gNCj4gDQo+IFRvbQ0KPiANCj4gPj4gVG9tDQo+ ID4+DQo+ID4gVGhhbmtzDQo+ID4gTmljDQo+ID4NCj4gPg0KPiA+Pj4gKwlpZiAocmV0IDwgMCkN Cj4gPj4+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+Pj4gKwkJCQkiRGV2aWNlICVpIGZhaWxl ZCB0byBjbG9zZSBkdXJpbmcgdW5pbml0OiAlaSIsDQo+ID4+PiArCQkJCWRldl9pZCwgcmV0KTsN Cj4gPj4+ICsNCj4gPj4+ICsJLyogcmVsZWFzZSBiYmRldiBmcm9tIGxpYnJhcnkgKi8NCj4gPj4+ ICsJcnRlX2JiZGV2X3JlbGVhc2UoYmJkZXYpOw0KPiA+Pj4gKw0KPiA+Pj4gKwlydGVfYmJkZXZf bG9nX2RlYnVnKCJEZXN0cm95ZWQgYmJkZXYgPSAldSIsIGRldl9pZCk7DQo+ID4+PiArDQo+ID4+ PiArCXJldHVybiAwOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4gPj4+ICtzdGF0aWMgc3RydWN0IHJ0 ZV9wY2lfZHJpdmVyIGFjYzEwMF9wY2lfcGZfZHJpdmVyID0gew0KPiA+Pj4gKwkJLnByb2JlID0g YWNjMTAwX3BjaV9wcm9iZSwNCj4gPj4+ICsJCS5yZW1vdmUgPSBhY2MxMDBfcGNpX3JlbW92ZSwN Cj4gPj4+ICsJCS5pZF90YWJsZSA9IHBjaV9pZF9hY2MxMDBfcGZfbWFwLA0KPiA+Pj4gKwkJLmRy dl9mbGFncyA9IFJURV9QQ0lfRFJWX05FRURfTUFQUElORyB9Ow0KPiA+Pj4gKw0KPiA+Pj4gK3N0 YXRpYyBzdHJ1Y3QgcnRlX3BjaV9kcml2ZXIgYWNjMTAwX3BjaV92Zl9kcml2ZXIgPSB7DQo+ID4+ PiArCQkucHJvYmUgPSBhY2MxMDBfcGNpX3Byb2JlLA0KPiA+Pj4gKwkJLnJlbW92ZSA9IGFjYzEw MF9wY2lfcmVtb3ZlLA0KPiA+Pj4gKwkJLmlkX3RhYmxlID0gcGNpX2lkX2FjYzEwMF92Zl9tYXAs DQo+ID4+PiArCQkuZHJ2X2ZsYWdzID0gUlRFX1BDSV9EUlZfTkVFRF9NQVBQSU5HIH07DQo+ID4+ PiArDQo+ID4+PiArUlRFX1BNRF9SRUdJU1RFUl9QQ0koQUNDMTAwUEZfRFJJVkVSX05BTUUsDQo+ ID4+IGFjYzEwMF9wY2lfcGZfZHJpdmVyKTsNCj4gPj4+ICtSVEVfUE1EX1JFR0lTVEVSX1BDSV9U QUJMRShBQ0MxMDBQRl9EUklWRVJfTkFNRSwNCj4gPj4+ICtwY2lfaWRfYWNjMTAwX3BmX21hcCk7 DQo+ID4+IFJURV9QTURfUkVHSVNURVJfUENJKEFDQzEwMFZGX0RSSVZFUl9OQU1FLA0KPiA+Pj4g K2FjYzEwMF9wY2lfdmZfZHJpdmVyKTsNCj4gPj4+ICtSVEVfUE1EX1JFR0lTVEVSX1BDSV9UQUJM RShBQ0MxMDBWRl9EUklWRVJfTkFNRSwNCj4gPj4+ICtwY2lfaWRfYWNjMTAwX3ZmX21hcCk7DQo+ ID4+PiArDQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2Fj YzEwMF9wbWQuaA0KPiA+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3Bt ZC5oDQo+ID4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+Pj4gaW5kZXggMDAwMDAwMC4uNmY0 NmRmMA0KPiA+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9h Y2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+Pj4gQEAgLTAsMCArMSwzNyBAQA0KPiA+Pj4gKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPj4+ICsgKiBDb3B5cmln aHQoYykgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbiAgKi8NCj4gPj4+ICsNCj4gPj4+ICsjaWZuZGVm IF9SVEVfQUNDMTAwX1BNRF9IXw0KPiA+Pj4gKyNkZWZpbmUgX1JURV9BQ0MxMDBfUE1EX0hfDQo+ ID4+PiArDQo+ID4+PiArLyogSGVscGVyIG1hY3JvIGZvciBsb2dnaW5nICovDQo+ID4+PiArI2Rl ZmluZSBydGVfYmJkZXZfbG9nKGxldmVsLCBmbXQsIC4uLikgXA0KPiA+Pj4gKwlydGVfbG9nKFJU RV9MT0dfICMjIGxldmVsLCBhY2MxMDBfbG9ndHlwZSwgZm10ICJcbiIsIFwNCj4gPj4+ICsJCSMj X19WQV9BUkdTX18pDQo+ID4+PiArDQo+ID4+PiArI2lmZGVmIFJURV9MSUJSVEVfQkJERVZfREVC VUcNCj4gPj4+ICsjZGVmaW5lIHJ0ZV9iYmRldl9sb2dfZGVidWcoZm10LCAuLi4pIFwNCj4gPj4+ ICsJCXJ0ZV9iYmRldl9sb2coREVCVUcsICJhY2MxMDBfcG1kOiAiIGZtdCwgXA0KPiA+Pj4gKwkJ IyNfX1ZBX0FSR1NfXykNCj4gPj4+ICsjZWxzZQ0KPiA+Pj4gKyNkZWZpbmUgcnRlX2JiZGV2X2xv Z19kZWJ1ZyhmbXQsIC4uLikgI2VuZGlmDQo+ID4+PiArDQo+ID4+PiArLyogQUNDMTAwIFBGIGFu ZCBWRiBkcml2ZXIgbmFtZXMgKi8NCj4gPj4+ICsjZGVmaW5lIEFDQzEwMFBGX0RSSVZFUl9OQU1F ICAgICAgICAgICBpbnRlbF9hY2MxMDBfcGYNCj4gPj4+ICsjZGVmaW5lIEFDQzEwMFZGX0RSSVZF Ul9OQU1FICAgICAgICAgICBpbnRlbF9hY2MxMDBfdmYNCj4gPj4+ICsNCj4gPj4+ICsvKiBBQ0Mx MDAgUENJIHZlbmRvciAmIGRldmljZSBJRHMgKi8NCj4gPj4+ICsjZGVmaW5lIFJURV9BQ0MxMDBf VkVORE9SX0lEICAgICAgICAgICAoMHg4MDg2KQ0KPiA+Pj4gKyNkZWZpbmUgUlRFX0FDQzEwMF9Q Rl9ERVZJQ0VfSUQgICAgICAgICgweDBkNWMpDQo+ID4+PiArI2RlZmluZSBSVEVfQUNDMTAwX1ZG X0RFVklDRV9JRCAgICAgICAgKDB4MGQ1ZCkNCj4gPj4+ICsNCj4gPj4+ICsvKiBQcml2YXRlIGRh dGEgc3RydWN0dXJlIGZvciBlYWNoIEFDQzEwMCBkZXZpY2UgKi8gc3RydWN0DQo+ID4+PiArYWNj MTAwX2RldmljZSB7DQo+ID4+PiArCXZvaWQgKm1taW9fYmFzZTsgIC8qKjwgQmFzZSBhZGRyZXNz IG9mIE1NSU8gcmVnaXN0ZXJzIChCQVIwKSAqLw0KPiA+Pj4gKwlib29sIHBmX2RldmljZTsgLyoq PCBUcnVlIGlmIHRoaXMgaXMgYSBQRiBBQ0MxMDAgZGV2aWNlICovDQo+ID4+PiArCWJvb2wgY29u ZmlndXJlZDsgLyoqPCBUcnVlIGlmIHRoaXMgQUNDMTAwIGRldmljZSBpcyBjb25maWd1cmVkICov DQo+ID4+PiArfTsNCj4gPj4+ICsNCj4gPj4+ICsjZW5kaWYgLyogX1JURV9BQ0MxMDBfUE1EX0hf ICovDQo+ID4+PiBkaWZmIC0tZ2l0DQo+ID4+PiBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0 ZV9wbWRfYmJkZXZfYWNjMTAwX3ZlcnNpb24ubWFwDQo+ID4+PiBiL2RyaXZlcnMvYmFzZWJhbmQv YWNjMTAwL3J0ZV9wbWRfYmJkZXZfYWNjMTAwX3ZlcnNpb24ubWFwDQo+ID4+PiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiA+Pj4gaW5kZXggMDAwMDAwMC4uNGE3NmQxZA0KPiA+Pj4gLS0tIC9kZXYv bnVsbA0KPiA+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX3BtZF9iYmRldl9h Y2MxMDBfdmVyc2lvbi5tYXANCj4gPj4+IEBAIC0wLDAgKzEsMyBAQA0KPiA+Pj4gK0RQREtfMjEg ew0KPiA+Pj4gKwlsb2NhbDogKjsNCj4gPj4+ICt9Ow0KPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvYmFzZWJhbmQvbWVzb24uYnVpbGQNCj4gPj4+IGIvZHJpdmVycy9iYXNlYmFuZC9tZXNvbi5i dWlsZCBpbmRleCA0MTViNjcyLi43MjMwMWNlIDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9i YXNlYmFuZC9tZXNvbi5idWlsZA0KPiA+Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9tZXNvbi5i dWlsZA0KPiA+Pj4gQEAgLTUsNyArNSw3IEBAIGlmIGlzX3dpbmRvd3MNCj4gPj4+ICAJc3ViZGly X2RvbmUoKQ0KPiA+Pj4gIGVuZGlmDQo+ID4+Pg0KPiA+Pj4gLWRyaXZlcnMgPSBbJ251bGwnLCAn dHVyYm9fc3cnLCAnZnBnYV9sdGVfZmVjJywgJ2ZwZ2FfNWducl9mZWMnXQ0KPiA+Pj4gK2RyaXZl cnMgPSBbJ251bGwnLCAndHVyYm9fc3cnLCAnZnBnYV9sdGVfZmVjJywgJ2ZwZ2FfNWducl9mZWMn LA0KPiA+Pj4gKydhY2MxMDAnXQ0KPiA+Pj4NCj4gPj4+ICBjb25maWdfZmxhZ19mbXQgPSAnUlRF X0xJQlJURV9QTURfQkJERVZfQDBAJw0KPiA+Pj4gIGRyaXZlcl9uYW1lX2ZtdCA9ICdydGVfcG1k X2JiZGV2X0AwQCcNCg0K