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 123F6A052E; Sat, 25 Jan 2020 19:56:26 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ACE39493D; Sat, 25 Jan 2020 19:56:24 +0100 (CET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2077.outbound.protection.outlook.com [40.107.22.77]) by dpdk.org (Postfix) with ESMTP id 9CEF834F3; Sat, 25 Jan 2020 19:56:22 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EU0FEOsBXxwhaCQZxI+XYS3JSc34Wg/G0lP4GGgkQO3ZDQ1/ckCZXCDvctKf8lC3cVujsxSru+CP22g2/vvCy7IBsiwYxLruGt+4eok18KHh1UAsWNs1cVnmXa/7ApSgvIxxTM25yROciEBvyNDaf0YYGGgmHqylTj4rZ72CY0SDGnbuqzjFnHwII7HSyTt7W8MjPpzCUHizSP4vUTx6oVKKrT8TDs1Za3ek1idWAIQAf7XcX1dtyeWK8Bmr4v8WrNP/Q7tQvC3ivzwTyI6JXLUa7hzm6/OkuYK1zYVSMVu5udJglkpYH8iXi86gQvsBymeX/Kn6PkTDm9P21Yn0Ew== 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=1OJzwpfBMZ942ITxlmsbyshAYcYwiwdCd+aJOYdY+gw=; b=U+hTpIs1Jad8/TPNlC4uj76BZMGntlrbLbzKssCRsyB4J7JRZu6UHkNuzOszkPp6v8GSQ109z8Nos/yEMG6rRZHHTJet4s3OqQaEJOQYP9qEJwfDQoAln/7rCxDy8B8gFacfHRLO4sP9GBKxn/6xMfuDDjELZ69XlEadkXw23OmRIzGqOehwnLunMdl5DuXMYMr5zOTnzgf+pDwcOjv5OBmAbYxnUI6PFUKC1siKLjHYZsTHThhvm310ojIa2Z73vBNai9ObQ5/mAHMcMuLnIm+qTsfCJ3qlDO+IKOHtJjtSGScjtdEV8+RhxBfBb/HHLuvYwfYUcrPT00UC6xV8og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1OJzwpfBMZ942ITxlmsbyshAYcYwiwdCd+aJOYdY+gw=; b=gN1zmv5shHIaSPsIykA/BlkUgo5/7FxbqiMcDI6CQK9XTgP4zC2eaRUfGjr9YMzp+M6mDWEEd24bRuKWsxYF243wzk+6/Eg8X8+tYHMz2LDFcL/CT0FGpI6C1E/DdCDopc6+bCgia8KXj91eICzFS+HA7rH7TEnFuT5q+Lmr9HU= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.39.139) by AM0PR0502MB3924.eurprd05.prod.outlook.com (52.133.48.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2665.24; Sat, 25 Jan 2020 18:56:21 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::e495:9258:db09:1de8]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::e495:9258:db09:1de8%7]) with mapi id 15.20.2644.028; Sat, 25 Jan 2020 18:56:20 +0000 From: Matan Azrad To: Ferruh Yigit , "Yigit, Ferruh" , "dev@dpdk.org" , Bernard Iremonger CC: Gaetan Rivet , Thomas Monjalon , "stable@dpdk.org" , David Marchand , Jeff Guo , Qi Zhang Thread-Topic: [dpdk-stable] [dpdk-dev] [PATCH 2/2] app/testpmd: fix invalid port detaching Thread-Index: AQHVmTXi86tTdzAeWkqyvnlr7fOHC6f4rRKAgAAHfBCAABFJAIAACPCwgAAwmQCAAARtQIABcESAgAGm/vA= Date: Sat, 25 Jan 2020 18:56:20 +0000 Message-ID: References: <1573548459-6931-1-git-send-email-matan@mellanox.com> <1573548459-6931-2-git-send-email-matan@mellanox.com> <19a86d69-9bcc-42c9-b000-98b3860de42f@intel.com> <4df501fa-06d8-744d-27cd-f5742992e109@intel.com> <89e4cfea-ccfa-c7c1-c201-6ca3ff845267@intel.com> In-Reply-To: <89e4cfea-ccfa-c7c1-c201-6ca3ff845267@intel.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [77.125.13.245] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 9f4b48a9-1c7f-4d2b-6ff3-08d7a1c84453 x-ms-traffictypediagnostic: AM0PR0502MB3924: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0293D40691 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(376002)(136003)(396003)(366004)(39860400002)(199004)(189003)(66946007)(76116006)(66476007)(9686003)(52536014)(66556008)(5660300002)(64756008)(66446008)(7696005)(478600001)(81166006)(55016002)(81156014)(8676002)(30864003)(86362001)(8936002)(7416002)(33656002)(53546011)(6506007)(110136005)(54906003)(4326008)(2906002)(71200400001)(316002)(186003)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3924; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: p3EhKva8fZWYKBTiDkZSYDKCyedVH+9d6pXXBFOueNgHXi/nzFNn6yP099PK/U+3tIiYXrqSONMllO8DDD3rIJh+QIlC9k4s9bpdq1Gh4xYC8cjHszDSRKkWomHo0XCsiRWwJl4LREhq9Vo4CsGLKPzJsUW0hqYHidkISzkBLon3HJ24a+g9KY0ITWS5fmo/GVq+PXbBBPT153QEr0YhosH0EoIOR207zL1X+aySHkP4saUqFVho16pmVgv2JiqaJwedIfFXCZ59AjoTQhILN+u1xQptvltMRQpIm2xl/nLV+iM+uWv4tQFQNxPRhpCBPvEvHM2yPI48aInt1hcdjnfZ+SnD1hqFWw0iCi7EqoGiaDYvoZ3HKFpKoNJ5NWTx6r0Haj0YM8mZMyCMaEkBQdDJGgZVVt5I/ZY+mb+ofs1zbTkGsz213MAs3dPS4ivC x-ms-exchange-antispam-messagedata: 7FmQWv4bUnCmMu3b1so98XLRb/2R5/I4iPKnih3C8EpVXCAE/R2TesiNG4V+KGvnAbrWTdjw/m8kMlZ1OC9d1cCoNHQZ22nDZuxbKcj0myJPcR0VXIsPIHPxLsS6ntz0iKaMN/MRg9ZfOY23S3xGOQ== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f4b48a9-1c7f-4d2b-6ff3-08d7a1c84453 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2020 18:56:20.4736 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cK8KN85gmN4p4nCcqvahGc4wzxg170yfs3to1px9vg9pcXTR7o49BBQbY3dA8Q/ospW/4lgq+FC5KuqAOfik2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3924 Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH 2/2] app/testpmd: fix invalid port detaching 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" SGkgRmVycnVoDQoNCkZyb206IEZlcnJ1aCBZaWdpdA0KPiBPbiAxLzIzLzIwMjAgNzoyNSBQTSwg TWF0YW4gQXpyYWQgd3JvdGU6DQo+ID4gSGkNCj4gPg0KPiA+IEZyb206IEZlcnJ1aCBZaWdpdA0K PiA+PiBPbiAxLzIzLzIwMjAgMzoyOSBQTSwgTWF0YW4gQXpyYWQgd3JvdGU6DQo+ID4+Pg0KPiA+ Pj4gSGkNCj4gPj4+DQo+ID4+PiBGcm9tOiBGZXJydWggWWlnaXQNCj4gPj4+PiBPbiAxLzIzLzIw MjAgMjowNSBQTSwgTWF0YW4gQXpyYWQgd3JvdGU6DQo+ID4+Pj4+IEhpDQo+ID4+Pj4+DQo+ID4+ Pj4+IEZyb206IFlpZ2l0LCBGZXJydWgNCj4gPj4+Pj4+IE9uIDExLzEyLzIwMTkgODo0NyBBTSwg TWF0YW4gQXpyYWQgd3JvdGU6DQo+ID4+Pj4+Pj4gVGhlIHBvcnQgd2FzIG5vdCB2YWxpZGF0ZWQg YmVmb3JlIGRldGFjaGluZy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IElnbm9yZSBwb3J0IGRldGFj aCBvcGVyYXRpb24gd2hlbiB0aGUgcG9ydCBpcyBub3QgdmFsaWQuDQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+PiBGaXhlczogZjhlNWJhYTI2NjJkICgiYXBwL3Rlc3RwbWQ6IGNoZWNrIG5vdCBkZXRhY2hp bmcgZGV2aWNlDQo+ID4+Pj4+Pj4gdHdpY2UiKQ0KPiA+Pj4+Pj4+IENjOiB0aG9tYXNAbW9uamFs b24ubmV0DQo+ID4+Pj4+Pj4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+ Pj4gU2lnbmVkLW9mZi1ieTogTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT4NCj4gPj4+ Pj4+PiAtLS0NCj4gPj4+Pj4+PiAgYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYyB8IDMgKysrDQo+ID4+ Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykNCj4gPj4+Pj4+Pg0KPiA+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jIGIvYXBwL3Rlc3QtcG1kL3Rl c3RwbWQuYw0KPiA+Pj4+Pj4+IGluZGV4IDQ0NDQzNDYuLjM3MGVlZmUgMTAwNjQ0DQo+ID4+Pj4+ Pj4gLS0tIGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0KPiA+Pj4+Pj4+ICsrKyBiL2FwcC90ZXN0 LXBtZC90ZXN0cG1kLmMNCj4gPj4+Pj4+PiBAQCAtMjU0NSw2ICsyNTQ1LDkgQEAgc3RydWN0IGV4 dG1lbV9wYXJhbSB7DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgCXByaW50ZigiUmVtb3ZpbmcgYSBk ZXZpY2UuLi5cbiIpOw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gKwlpZiAocG9ydF9pZF9pc19pbnZh bGlkKHBvcnRfaWQsIEVOQUJMRURfV0FSTikpDQo+ID4+Pj4+Pj4gKwkJcmV0dXJuOw0KPiA+Pj4+ Pj4+ICsNCj4gPj4+Pj4+PiAgCWRldiA9IHJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXS5kZXZpY2U7 DQo+ID4+Pj4+Pj4gIAlpZiAoZGV2ID09IE5VTEwpIHsNCj4gPj4+Pj4+PiAgCQlwcmludGYoIkRl dmljZSBhbHJlYWR5IHJlbW92ZWRcbiIpOw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g VGhlIHBhdGNoIGlzIGFscmVhZHkgaW4gMTkuMTEgWzFdIGJ1dCBpdCBpcyBicmVha2luZyB0aGUg dGVzdHBtZA0KPiA+Pj4+Pj4gaG90cGx1ZyBzdXBwb3J0Lg0KPiA+Pj4+Pj4gQmVmb3JlICdkZXRh Y2hfcG9ydF9kZXZpY2UoKScgY2FsbGVkLCB0aGUgcG9ydCBoYXMgYmVlbiBzdG9wcGVkDQo+ID4+ Pj4+PiBhbmQgY2xvc2VkIFsyXSwgd2hpY2ggd2lsbCBtYWtlIHBvcnQgZmFpbCBmcm9tICdwb3J0 X2lkX2lzX2ludmFsaWQoKScNCj4gPj4+Pj4+IGNoZWNrIGFuZCB0aGUgZGV2aWNlIHJlbW92YWwg cGF0aCBuZXZlciBmdWxseSBjYWxsZWQuDQo+ID4+Pj4+PiBUaGUgaW1wbGljYXRpb24gaXMsIHNp bmNlIGRldmljZSBub3QgZGV0YWNoZWQsIHZmaW8gcmVxdWVzdA0KPiA+Pj4+Pj4gaW50ZXJydXB0 IGtlZXBzIHRyaWdnZXJlZCBjb250aW51b3VzbHkgYW5kIHJlLXN0YXJ0cyB0aGUgZGV0YWNoDQo+ ID4+Pj4+PiBwYXRoLCBidXQgYmVjYXVzZSBvZiB0aGUgaGFsZiBjbGVhbmVkIGRldmljZSBpdCBm YWlscyBhbmQgYXBwDQo+ID4+Pj4+PiBnZXRzIHN0dWNrIHdpdGggYQ0KPiA+Pj4+IGNvbnRpbnVv dXMgbG9nIFszXS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIHdvbmRlciBpZiB0aGUgYWN0dWFsIGhv dHBsdWcgaGFzIGJlZW4gdGVzdGVkIHdpdGggdGhpcyBwYXRjaCwNCj4gPj4+Pj4+IHRoZSBjb21t aXQgbG9nIGlzIG5vdCBjbGVhciBhYm91dCB0aGUgbW90aXZhdGlvbiBhbmQgaW1wbGljYXRpb24N Cj4gPj4+Pj4+IG9mIHRoZSBwYXRjaCwgSSBhbSBub3QgY2xlYXIgd2h5IHRoaXMgY2hlY2sgaXMg YWRkZWQgYnV0IEkgYW0NCj4gPj4+Pj4+IHNlbmRpbmcgYSBwYXRjaCBzb29uIHRvIHJlbW92ZSBp dCBiYWNrLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgbW90aXZhdGlvbiBvZiB0aGlzIHBhdGNoIHdh cyB0byBwcmV2ZW50IGRvdWJsZSBkZXRhY2ggb24gc2FtZQ0KPiA+Pj4+PiBwb3J0LA0KPiA+Pj4+ IHNvIHRoZSB1c2VyIGNhbm5vdCBjYWxsIGRldGFjaCBvZiBpbnZhbGlkIHBvcnQuDQo+ID4+Pj4N Cj4gPj4+PiBXaGF0IGlzIHRoZSBkZWZpbml0aW9uIG9mIHRoZSAnaW52YWxpZCBwb3J0JywgaWYg eW91IG1lYW4gZGV2aWNlDQo+ID4+Pj4gYWxyZWFkeSBkZXRhY2hlZCBjYXNlLCBpbiB0aGUgc2Vj b25kIGNhbGwgb2YgdGhlIGZ1bmN0aW9uICJpZiAoZGV2DQo+ID4+Pj4gPT0gTlVMTCkiIGNoZWNr IHNob3VsZCBwcmV2ZW50IGl0IGdvaW5nIGZvcndhcmQuDQo+ID4+Pg0KPiA+Pj4gTm8sIGV0aGRl diBkb2Vzbid0IHplcm8gdGhlIGRldmljZSBwb2ludGVyIHdoZW4gaXQgcmVsZWFzZSBhIHBvcnQu DQo+ID4+DQo+ID4+IEFzIGZhciBhcyBJIGNhbiBzZWUgaXQgZG9lcywgcGxlYXNlIHNlZSBiZWxv dy4NCj4gPg0KPiA+IFRoZSBjb2RlIGJlbG93IGlzIHByb2JsZW1hdGljIGJlY2F1c2U6DQo+ID4N Cj4gPiAxLiBJdCBpcyB2ZXJ5IGJhZCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBjaGFuZ2luZyBldGhk ZXYgc3RydWN0dXJlIGRpcmVjdGx5Lg0KPiANCj4gV2hlcmUgdGhlIGFwcGxpY2F0aW9uIGlzIGNo YW5naW5nIHRoZSBldGhkZXYgc3RydWN0dXJlPw0KDQpTZWUgaXQgaW4gdGhlIGZ1bmN0aW9uIHdl IHRhbGsgb246DQpydGVfZXRoX2RldmljZXNbc2libGluZ10uZGV2aWNlID0gTlVMTDsNCg0KVGhl IGFwcGxpY2F0aW9uIHNob3VsZG4ndCBkbyBpdCAtIGl0IHNob3VsZCBiZSBkb25lIG9ubHkgYnkg ZXRoZGV2IGxpYiBvciBieSB0aGUgUE1Ecy4NCg0KQXJlIHlvdSBhZ3JlZSBoZXJlPw0KDQo+IEFw cGxpY2F0aW9uIGNhbGxzIHRoZSAncnRlX2Rldl9yZW1vdmUoKScgQVBJLCB3aGljaCBkb2VzIHRo ZSBqb2IuDQoNCkFncmVlLCBUaGlzIGZ1bmN0aW9uIGlzIGZyZWVpbmcocnRlX2ZyZWUpIHRoZSBy dGVfZGV2aWNlIChhY3R1YWxseSBtYWtlcyB0aGUgcnRlX2V0aF9kZXZpY2VzW3NpYmxpbmddLmRl dmljZSBwb2ludGVyIGRhbmdsZWQpIA0KYW5kIHJlbGVhc2VzIGl0cyByZWxhdGVkIHJlc291cmNl cyB3aGF0IG1ha2VzIHRoZSBkZXZpY2UgZGV0YWNoZWQuDQoNCj4gPiAyLiBUaGUgYmVsb3cgY29k ZSBydW4gb3ZlciB2YWxpZCBwb3J0IG9ubHksIG5vdCBvbiBpbnZhbGlkIHBvcnQoVU5VU0VEDQo+ IHN0YXRlKS4NCj4gPg0KPiA+IFNvLCB0aGUgZGV2aWNlIHBvaW50ZXIgd2lsbCBzdGlsbCBiZSB2 YWxpZCBpZiB0aGUgcG9ydCBpcyBpbnZhbGlkLg0KPiA+DQo+ID4gQWxsIG9mIHRoaXMgc2hvd3Mg dGhhdCB0aGlzIGZ1bmN0aW9uIHRyeSB0byBkZXRhY2ggb25seSBhIHZhbGlkIHBvcnQgKHByb2Jh Ymx5DQo+IG1haW5seSBiZWNhdXNlIGl0IGlzIGNhbGxlZCBieSBUZXN0cG1kIGRldGFjaCBjb21t YW5kKS4NCj4gPg0KPiA+Pj4gU28gZXZlbiBpZiB0aGUgcG9ydCBpcyBpbiB1bnVzZWQgc3RhdGUg YWxyZWFkeSAtIG1lYW5zIGludmFsaWQsIHRoZQ0KPiA+Pj4gZGV2aWNlDQo+ID4+IHBvaW50ZXIg c3RpbGwgbWF5IGJlIHZhbGlkIGFuZCBwb2ludCB0byB0aGUgbGFzdCBwb3J0IHRoYXQgdXNlZCB0 aGUgc2FtZSBpZC4NCj4gPj4NCj4gPj4gSWYgdGhlIHBvcnQgaXMgY2xvc2VkLCBpdCBpcyB1bnVz ZWQgc3RhdGUsIGFuZCBldGhkZXYgbGF5ZXIgcmVzb3VyY2VzDQo+ID4+IGZyZWVkIGJ1dCBhcyB5 b3Ugc2FpZCBkZXZpY2UgcmVsYXRlZCBzdHJ1Y3R1cmVzIGFyZSBzdGlsbCB0aGVyZSwNCj4gPj4g ZGV2aWNlIHBvaW50ZXIgaXMgc3RpbGwgdmFsaWQgYW5kIGl0IGlzIHN0aWxsIGluIHByb2JlZCBk ZXZpY2UgbGlzdA0KPiA+PiBldGMuLiBXZSBuZWVkIHRvIGFibGUgdG8gZGV0YWNoIHRoZSBkZXZp Y2UgZXZlbiBhZnRlciBpdCBpcyB1bnVzZWQgc3RhdGUuDQo+ID4NCj4gPiBZZXMsIGJ1dCBkZXRh Y2ggaXMgZm9yIGRldmljZSwgbm90IGZvciBwb3J0Lg0KPiA+IFRoZSBkZXZpY2UgcG9pbnRlciBt dXN0IGJlIHRha2VuIG9ubHkgd2hlbiB0aGUgcG9ydCBpcyBpbiB2YWxpZCBzdGF0ZS4NCj4gPiBX aHk/DQo+ID4gQmVjYXVzZSBpZiB0aGUgcG9ydCBpcyBpbiBVTlVTRUQgc3RhdGUgaXQgaXMgZnJl ZSB0byBiZSBhbGxvY2F0ZWQgYWdhaW4gYnkNCj4gZXRoZGV2IGxheWVyIGZvciBvdGhlciBkZXZp Y2UsIHRoZW4sIHRoZSBkZXZpY2UgcG9pbnRlciBtYXkgcG9pbnQgdG8gb3RoZXINCj4gZGV2aWNl Lg0KPiA+DQoNCkRvIHlvdSBhZ3JlZSBvbiB0aGUgYWJvdmUgc3RhdGVtZW50IEkgd3JvdGU/DQoN Cj4gPj4gInN0b3AgLT4gY2xvc2UgLT4gZGV0YWNoIiBpcyBhIG5vcm1hbCBvcmRlciwgd2Ugc2hv dWxkbid0IHByZXZlbnQgaXQsDQo+ID4+IGJ1dCB5b3VyIGNoZWNrIGRvZXMgcHJldmVudCBpdC4N Cj4gPg0KPiA+IFllcywgdGhpcyBpcyBnb29kIG9yZGVyLCBidXQgdGhlIHBvaW50ZXIgb2YgdGhl IGRldmljZSBzaG91bGQgYmUgdGFrZW4NCj4gYmVmb3JlIGNsb3NlLg0KPiA+IE15IHBhdGNoIHBy ZXZlbnQgYWNjZXNzaW5nIGludmFsaWQgc3RydWN0dXJlLg0KPiANCj4gVGhlIGV0aGRldiBjbG9z ZSgpIGRldl9vcHMsIGZyZWVzIGV0aGRldiByZWxhdGVkIHJlc291cmNlcywgdGhlIHJ0ZV9kZXZp Y2UNCj4gaXMgc3RpbGwgdmFsaWQgaW4gdGhhdCBzdHJ1Y3QuDQoNClRoYXTigJlzIGV4YWN0bHkg bXkgY29uY2Vybi4NCkkgdGhpbmsgeW91IHdyb25nIGhlcmUsIHRoZSBydGVfZGV2aWNlIG1heSBi ZSBpbnZhbGlkIGluIHRoYXQgc3RydWN0LCBlc3BlY2lhbGx5IGFmdGVyIGNsb3NlKCk6DQoNCldo ZW4gdGhlIHBvcnQgSUQgaXMgY2xvc2VkIGFuZCByZWxlYXNlZCwgaXRzIGV0aGRldiBzdHJ1Y3R1 cmUgbW92ZXMgdG8gVU5VU0VEIHN0YXRlLg0KV2hlbiBhbiBldGhkZXYgc3RydWN0dXJlIGlzIGlu IFVOVVNFRCBzdGF0ZSBpdCBtYXkgYmUgYXR0YWNoZWQgYWdhaW4gdG8gYW5vdGhlciBydGVfZGV2 aWNlIC0gc2VlIGZ1bmN0aW9uIHJ0ZV9ldGhfZGV2X2FsbG9jYXRlLg0KQXJlIHlvdSBhZ3JlZSBo ZXJlPw0KDQpJbiB0aGlzIGNhc2UsIHdoZW4gYSBuZXcgZGV2aWNlIGlzIGF0dGFjaGVkIGFmdGVy IGNsb3NlKCkgYW5kIGJlZm9yZSBkZXRhY2hfcG9ydF9kZXZpY2UoKSB3ZSBtYXkgcmVtb3ZlIHdy b25nIHJ0ZV9kZXZpY2UgYW5kIGNhdXNlIGEgbG90IG9mIHByb2JsZW1zLg0KDQpEbyB5b3UgdW5k ZXJzdGFuZCB0aGF0Pw0KDQpPbmUgbW9yZSBwcm9ibGVtYXRpYyBjYXNlIGlzIGEgdXNlciBtaXN0 YWtlIGJ5IHRoZSBUZXN0cG1kIGNvbW1hbmQgd2hpY2ggbWF5IGNhdXNlIHNlZ2ZhdWx0IGluIHRo ZSBnb29kIGNhc2UgYW5kIG1lbW9yeSBvdmVycmlkaW5nIGluIHRoZSB3b3JzdCBjYXNlIChteSBw YXRjaCBjYXNlKToNCg0KcG9ydCBzdG9wIGFsbA0KcG9ydCBkZXRhY2ggMA0KcG9ydCBkZXRhY2gg MA0KDQpkZXRhY2ggdGhlIHNhbWUgcG9ydCB0d2ljZSB3aWxsIGNhdXNlIHJlZmVyZW5jaW5nIG9m IGZyZWVkIHBvaW50ZXIgb2YgcnRlX2RldmljZS4NCg0KDQpBbGwgb2YgdGhhdCBpcyBiZWNhdXNl IFRlc3RwbWQgdGFrZXMgZXRoZGV2IHN0cnVjdHVyZSBpbmZvcm1hdGlvbiBmcm9tIGludmFsaWQg ZXRoZGV2IHN0cnVjdHVyZS4NCg0KTXkgcGF0Y2ggcHJldmVudHMgaXQuDQoNCg0KDQo+QW5kIHll cyB5b3VyIHBhdGNoIHByZXZlbnRzIGFjY2Vzc2luZyB0aGVtIGFuZA0KPiBwcmV2ZW50cyBob3Rw bHVnIHJlbW92ZSB0aGUgZGV2aWNlLg0KPiANCg0KWWVzLCBteSBwYXRjaCBpcyBub3QgZ29vZCwg c29sdmVkIGlzc3VlcyBhbmQgY2F1c2VkIGEgbmV3IG9uZS4NCg0KQWdyZWUgdGhhdCB3ZSBuZWVk IGEgbmV3IGZpeCwgbXkgc3VnZ2VzdGlvbiBoZXJlIGlzOg0KDQoxLiBJbiB0aGUgVGVzdHBtZCBp bnRlcm5hbCBtYW5hZ2VtZW50IGZvciBodXRwbHVnIChybXZfcG9ydF9jYWxsYmFjayk6DQoJQ2Fs bCBzdG9wKCkNCglUYWtlIHJ0ZV9kZXZpY2UgcG9pbnRlciggYmVmb3JlIHBvcnQgY2xvc2UpLg0K CUNhbGwgY2xvc2UoKS4NCglJZiBubyBvdGhlciB2YWxpZCBwb3J0IGZvciB0aGUgcnRlX2Rldmlj ZTogDQoJCWNhbGwgZGV0YWNoKCkgYnkgdGhlIHNhdmVkIHJ0ZV9kZXZpY2UgcG9pbnRlci4NCjIu IFJlcGxhY2UgdGhlIFRlc3RwbWQgY29tbWFuZCBsaW5lIGZvciAicG9ydCBkZXRhY2giIHdpdGgg ImRldGFjaCBbcnRlIGRldmljZSBuYW1lXSI6DQoJV2h5PyANCglEZXRhY2ggYnkgcG9ydCBpcyBw cm9ibGVtYXRpYzoNCgkxLiBJZiB0aGUgcG9ydCBpcyBjbG9zZWQgLSBUZXN0cG1kIGNhbm5vdCBn ZXQgaXRzIHJ0ZV9kZXZpY2UgZnJvbSB0aGUgcmVsYXRlZCBldGhkZXYgcG9ydCBzdHJ1Y3R1cmUu DQoJMi4gSWYgdGhlIHBvcnQgaXMgbm90IGNsb3NlZCAtIEl0IGlzIG5vdCBzYWZlIHRvIGRldGFj aCBpdC4NCgkzLiBBdHRhY2ggaXMgZG9uZSBieSBydGVfZGV2aWNlIG5hbWUsIGRldGFjaCBzaG91 bGQgYmUgaW4gc2FtZSB3YXkuDQogQXJlIHlvdSBhZ3JlZT8NCg0KDQpJIGhvcGUgeW91IHVuZGVy c3RhbmQgbm93LiANCg0KPiA+IEFuZCB5ZXMsIFRlc3RwbWQgZGV0YWNoIHN0YXlzIGJyb2tlbiBh ZnRlciBteSBwYXRjaCBhbmQgYWZ0ZXIgdGhpcyBwYXRjaA0KPiB0b28uDQo+ID4NCj4gPg0KPiA+ Pg0KPiA+PiBJIGFtIG5vdCB2ZXJ5IGNsZWFyIGFib3V0IHlvdXIgY29uY2VybiBoZXJlLCAicG9p bnQgdG8gdGhlIGxhc3QgcG9ydA0KPiA+PiB0aGF0IHVzZWQgdGhlIHNhbWUgaWQiLCBjYW4geW91 IHBsZWFzZSBjbGFyaWZ5Pw0KPiA+DQo+ID4gWWVzLCB3aGVuIGV0aGRldiBsYXllciBhbGxvY2F0 ZXMgYSBwb3J0IElEIGZvciBhIG5ldyBkZXZpY2UsIGl0IHRyaWVzIHRvIGZpbmQNCj4gVU5VU0VE IHBvcnQuDQo+ID4gV2hlbiBmb3VuZCwgdGhlIHBvcnQgd2lsbCBtb3ZlIHRvIEFUVEFDSEVEIGFm dGVyIHRoZSBQTUQgZmluaXNoZXMgaXRzDQo+IHByb2JpbmcgZnVuY3Rpb24uDQo+ID4NCj4gPiBT bywgYW55IFVOVVNFRCBwb3J0IG1heSBiZSBhbGxvY2F0ZWQgZm9yIG90aGVyIGRldmljZSBhbmQg dGhlbiwgdGhlDQo+IGRldmljZSBwb2ludGVyIHBvaW50cyB0byBvdGhlciBkZXZpY2UuDQo+ID4N Cj4gPj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IEJ1dCBhY2NvcmRpbmcgdGhlICdwb3J0X2lkX2lz X2ludmFsaWQoKScgQVBJLCBhIGNsb3NlZCBwb3J0IGlzIGFuDQo+ID4+Pj4gaW52YWxpZCBwb3J0 LCBJIHRoaW5rIHRoYXQgaXMgd3JvbmcgaW4gdGhpcyBjb250ZXh0Lg0KPiA+Pj4NCj4gPj4+IFdo eT8NCj4gPj4NCj4gPj4gQ2xvc2VkIHBvcnQgaXMgJ2ludmFsaWQnIGZvciB1c2luZyBpdCwgYmVj YXVzZSBldGhkZXYgcmVzb3VyY2VzIGFyZQ0KPiA+PiBmcmVlZC4gQnV0IGl0IGlzIG5vdCAnaW52 YWxpZCcgdG8gZGV0YWNoIGl0LCB3aHkgYSBwb3J0IGJlaW5nIGNsb3NlZA0KPiA+PiBzaG91bGQg cHJldmVudCBmcmVlaW5nIGl0cyBkZXZpY2UgbGF5ZXIgcmVzb3VyY2VzPw0KPiA+DQo+ID4gSSBk aWRuJ3Qgc2FpZCB0aGF0LCBJIHNhaWQgdGhhdCB0aGUgZGV2aWNlIHBvaW50ZXIgc2hvdWxkIGJl IHRha2VuIHdoZW4gdGhlDQo+IHBvcnQgaXMgdmFsaWQuDQo+ID4NCj4gPg0KPiA+Pg0KPiA+Pj4N Cj4gPj4+IFlvdSBhcmUgZ29pbmcgdG8gbG9vayBvbiBldGhkZXYgcG9ydGlkIHN0cnVjdHVyZSwg ZG9uJ3QgeW91IHRoaW5rIHdlDQo+ID4+PiBzaG91bGQNCj4gPj4gdmFsaWQgdGhlIHBvcnQgYmVm b3JlIHVzaW5nIGl0cyBzdHJ1Y3R1cmU/DQo+ID4+DQo+ID4+IElzIHlvdXIgbWFpbiBjb25jZXJu ICJydGVfZXRoX2RldmljZXNbcG9ydF9pZF0uZGV2aWNlIiBjYW4gYmUNCj4gPj4gZGFuZ2xpbmcg cG9pbnRlcj8NCj4gPj4NCj4gPj4gMSkgSXQgaXMgbm90Lg0KPiA+PiAyKSBUaGUgY2hlY2sgeW91 IGFkZGVkIHRvIHJlcGxhY2UgaXQgaXMgbm90IGNvcnJlY3QgY2hlY2suDQo+ID4+DQo+ID4gRGlk bid0IHNhaWQgdGhhdC4NCj4gPg0KPiA+IEl0IGp1c3QgbWF5IHBvaW50IHRvIG90aGVyIGRldmlj ZS4NCj4gPiBJdCBpcyBub3QgY29ycmVjdCB0byB0YWtlIGluZm9ybWF0aW9uIGZyb20gaW52YWxp ZCBzdHJ1Y3R1cmUuDQo+ID4NCj4gPiBEb24ndCB5b3UgYWdyZWUgdGhhdCB0aGUgc3RydWN0dXJl IGlzIG5vdCB2YWxpZCB3aGVuIHRoZSBwb3J0IGlzIG5vdCB2YWxpZD8NCj4gPg0KPiA+Pj4NCj4g Pj4+Pj4NCj4gPj4+Pj4gSSBhZ3JlZSB0aGlzIHBhdGNoIGlzIG5vdCBnb29kIGFuZCB3ZSBuZWVk IGEgZml4IGJ1dCBJIHRoaW5rIHRoZQ0KPiA+Pj4+PiBidWcgaXMNCj4gPj4+PiBjb25jZXB0dWFs Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUZXN0cG1kIHRyaWVzIHRvIGRvIGRldGFjaCBieSBwb3J0X2lk IHdoaWNoIGlzIGRlcml2ZWQgYnkgZXRoZGV2DQo+ID4+Pj4+IHBvcnQgaWQNCj4gPj4+PiB3aGls ZSBkZXRhY2ggd29yayB3aXRoIHJ0ZV9kZXZpY2UuDQo+ID4+Pj4+DQo+ID4+Pj4+IEZvciBleGFt cGxlOg0KPiA+Pj4+PiB5b3UgY2FuIHNlZSBpbiB0aGUgbGluZSBhYm92ZSBhZnRlciArKys6IGRl diA9DQo+ID4+Pj4+IHJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXS5kZXZpY2UsIFRlc3RwbWQgbWF5 IGFjY2VzcyBpbnZhbGlkICBvcg0KPiA+Pj4+IHJlYWxsb2NhdGVkIGV0aGRldiBzdHJ1Y3R1cmUg dG8gZ2V0IHRoZSBkZXZpY2UgbmFtZSBhbmQgbWF5IGV2ZW4NCj4gPj4+PiBkZXRhY2ggdW53YW50 ZWQgcnRlX2RldmljZS4NCj4gPj4+Pg0KPiA+Pj4+IEkgdGhpbmtzIHdoaWNoZXZlciBmdW5jdGlv biBjYWxsaW5nICdkZXRhY2hfcG9ydF9kZXZpY2UoKScgc2hvdWxkDQo+ID4+Pj4gY2hlY2sgdGhl IHBvcnQgdmFsaWRpdHkuDQo+ID4+Pj4gJ2RldGFjaF9wb3J0X2RldmljZSgpJyBkb2Vzbid0IGtu b3cgaWYgcG9ydCByZWFsbG9jYXRlZCBvciBub3QsIGl0DQo+ID4+Pj4gd2lsbCBmcmVlIHRoZSBn aXZlbiBwb3J0X2lkLCBhbmQgd2hlbiBmcmVlaW5nIGRvbmUNCj4gPj4+PiAncnRlX2V0aF9kZXZp Y2VzW3BvcnRfaWRdLmRldmljZScgd2lsbCBiZSBOVUxMLCB0aGlzIGxvb2tzIHRvIG1lIGENCj4g Pj4+PiB2YWxpZA0KPiA+PiBjaGVjay4NCj4gPj4+DQo+ID4+PiBQbGVhc2UgdmFsaWRhdGUgbWUs IGNoZWNrIGV0aGRldiwgSSBkb24ndCB0aGluayBzbywNCj4gPj4gJ3J0ZV9ldGhfZGV2aWNlc1tw b3J0X2lkXS5kZXZpY2Ugc3RpbGwgdmFsaWQgYWZ0ZXIgZGV0YWNoLg0KPiA+Pg0KPiA+PiBUaGlz IGlzIGEgbG9uZyBzdGFjayB0cmFjZSwgYnV0IHdoYXQgaGFwcGVucyBpczoNCj4gPj4NCj4gPj4g cnRlX2Rldl9yZW1vdmUNCj4gPj4gICBidXMgdW5wdWcNCj4gPj4gICAgIGRyaXZlciByZW1vdmUN Cj4gPj4gICAgICAgcnRlX2V0aF9kZXZfcGNpX3JlbGVhc2UNCj4gPj4gICAgICAgICBldGhfZGV2 LT5kZXZpY2UgPSBOVUxMOw0KPiA+DQo+ID4gVGhlIGxhc3QgbGluZSBkb2Vzbid0IGhhcHBlbiBo ZXJlIGJlY2F1c2UgdGhlIHJ0ZV9ldGhfZGV2X3BjaV9yZWxlYXNlDQo+IG1vdmVzIHRoZSBwb3J0 IHRvIFVOVVNFRC4NCj4gPiBBbmQgaXQgaXMgYmFkIHRoYXQgYXBwbGljYXRpb24gaXMgdHJ5aW5n IHRvIGRvIGl0Lg0KPiA+DQo+ID4+DQo+ID4+IFBsZWFzZSBjaGVjayB0aGUgZHJpdmVyIHlvdSBh cmUgdGVzdGluZyByZW1vdmUoKSBvcHMNCj4gPj4gKHJ0ZV9wY2lfZHJpdmVyLnJlbW92ZSgpKSBk b2VzIGNsZWFucyB0aGUgZXRoZGV2IGZpZWxkcy4NCj4gPj4NCj4gPj4gQSBsaXR0bGUgbW9yZSBk ZXRhaWxlZCBzdGFjayB0cmFjZSBmb3IgbXkgZW52aXJvbm1lbnQ6DQo+ID4+ICMwICBydGVfZXRo X2Rldl9wY2lfcmVsZWFzZSAoZXRoX2Rldj0uLikgYXQgIHJ0ZV9ldGhkZXZfcGNpLmg6MTQzDQo+ ID4+ICMxICBydGVfZXRoX2Rldl9wY2lfZ2VuZXJpY19yZW1vdmUgKHBjaV9kZXY9Li4sIGRldl91 bmluaXQ9Li4pIGF0DQo+ID4+IHJ0ZV9ldGhkZXZfcGNpLmg6MTk5DQo+ID4+ICMyICBldGhfaTQw ZV9wY2lfcmVtb3ZlIChwY2lfZGV2PS4uKSBhdCBpNDBlX2V0aGRldi5jOjcxMA0KPiA+PiAjMyAg cnRlX3BjaV9kZXRhY2hfZGV2IChkZXY9Li4pIGF0IHBjaV9jb21tb24uYzoyNDMNCj4gPj4gIzQg IHBjaV91bnBsdWcgKGRldj0uLikgYXQgcGNpX2NvbW1vbi5jOjUzNw0KPiA+PiAjNSAgbG9jYWxf ZGV2X3JlbW92ZSAoZGV2PS4uKSBhdCBlYWxfY29tbW9uX2Rldi5jOjMyMQ0KPiA+PiAjNiAgcnRl X2Rldl9yZW1vdmUgKGRldj0uLikgYXQgZWFsX2NvbW1vbl9kZXYuYzo0MDINCj4gPj4gIzcgIGRl dGFjaF9wb3J0X2RldmljZSAocG9ydF9pZD0wKSBhdCB0ZXN0cG1kLmM6MjY2Mw0KPiA+PiAjOCAg Y21kX29wZXJhdGVfZGV0YWNoX3BvcnRfcGFyc2VkIChwYXJzZWRfcmVzdWx0PS4uLCBjbD0uLiwN Cj4gPj4gZGF0YT0weDApIGF0DQo+ID4+IGNtZGxpbmUuYzoxNTAxDQo+ID4+ICM5ICBjbWRsaW5l X3BhcnNlIChjbD0uLiwgYnVmPS4uInBvcnQgZGV0YWNoIDBcbiIpIGF0DQo+ID4+IGNtZGxpbmVf cGFyc2UuYzoyOTUNCj4gPj4gIzEwIGNtZGxpbmVfdmFsaWRfYnVmZmVyIChyZGw9Li4sIGJ1Zj0i cG9ydCBkZXRhY2ggMFxuIiwgc2l6ZT0xNSkgYXQNCj4gPj4gY21kbGluZS5jOjMxDQo+ID4+ICMx MSByZGxpbmVfY2hhcl9pbiAocmRsPS4uLCBjPTEwICdcbicpIGF0ICBjbWRsaW5lX3JkbGluZS5j OjQyMQ0KPiA+PiAjMTIgY21kbGluZV9pbiAoY2w9Li4sIGJ1Zj0uLiJcbiIsIHNpemU9MSkgYXQg Y21kbGluZS5jOjE0OA0KPiA+PiAjMTMgY21kbGluZV9pbnRlcmFjdCAoY2w9Li4pIGF0IGNtZGxp bmUuYzoyMjcNCj4gPj4gIzE0IHByb21wdCAoKSBhdCBjbWRsaW5lLmM6MTk2NDQNCj4gPj4gIzE1 IG1haW4gKGFyZ2M9MywgYXJndj0uLikgYXQgdGVzdHBtZC5jOjM2MTcNCj4gPj4NCj4gPiBOb3Qg YWxsIHRoZSBkcml2ZXJzIGFyZSBkb2luZyBpdC4NCj4gPiBJIHRoaW5rIGl0IGlzIGdvb2QgaWYg d2Ugd2lsbCBkbyBpdCBieSBldGhkZXYgcmVsZWFzZSBmdW5jdGlvbi4NCj4gPg0KPiA+DQo+ID4+ Pg0KPiA+Pj4+IFRoZSBjYWxsZXIgb2YgdGhlICdkZXRhY2hfcG9ydF9kZXZpY2UoKScgc2hvdWxk IGVuc3VyZSBjb3JyZWN0DQo+ID4+Pj4gcG9ydF9pZCBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uLg0K PiA+Pj4NCj4gPj4+IFdoYXQgaXMgY29ycmVjdCBwb3J0IGlkLCBpZiB0aGUgcG9ydCB3YXMgcmVs ZWFzZWQgLCBpcyBpdCBjb3JyZWN0Pw0KPiA+Pg0KPiA+PiBZb3UgYXJlIHJpZ2h0LCB0aGVyZSBp cyBubyBnb29kIGFuc3dlciBmb3IgaXQsIEkgd2FzIHRoaW5raW5nDQo+ID4+IGFwcGxpY2F0aW9u IHN0YXRlIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIGJ1dCBubyBldGhkZXYgc2hvdWxkIGFibGUN Cj4gPj4gdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uLCB3ZSBuZWVkICdpc19mcmVlZCcga2lu ZCBvZiBjaGVjayBmb3IgaXQsDQo+ID4+IGN1cnJlbnRseSAncnRlX2V0aF9kZXZpY2VzW3BvcnRf aWRdLmRldmljZScgaXMgdXNlZCBmb3IgdGhhdCBwdXJwb3NlLg0KPiA+DQo+ID4gSXQgaXMgd3Jv bmcgdG8gdGFrZSBkZXZpY2UgZnJvbSBpbnZhbGlkIHN0cnVjdHVyZS4gKEkgZXhwbGFpbmVkIGEg bG90IGFib3ZlKS4NCj4gPiBCZXR0ZXIgd2F5IHRvIHNhdmUgdGhlIHJ0ZV9kZXZpY2UgaW4gdGhl IHN0YXJ0KGJlZm9yZSBjbG9zZSkgYW5kIGNhbGwgZGV0YWNoDQo+IGJ5IHJ0ZV9kZXZpY2Ugd2hl biB3ZSBzdXJlIHRoYXQgYWxsIHRoZSBwb3J0cyBvZiB0aGlzIHJ0ZV9kZXZpY2UgYXJlDQo+IHJl bGVhc2VkKG1seDQgY2FuIG1hbmFnZSAyIHBvcnRzIG9uZSBydGVfZGV2aWNlLCBhbHNvIGFueSBk ZXZpY2Ugc3VwcG9ydHMNCj4gcmVwcmVzZW50b3JzKS4NCj4gPg0KPiA+IExldCdzIGRvIGNvcnJl Y3QgZml4Lg0KPiANCj4gTWF0YW4sDQo+IA0KPiBJdCBiZWNvbWUgc28gaGFyZCB0byBmb2xsb3cg dGhpcyBkaXNjdXNzaW9uLlRoZSBjaGVjayB5b3UgYWRkIGlzIHByZXZlbnRpbmcNCj4gZGV2aWNl IGhvdHBsdWcsIHNvIGJyZWFraW5nIHRoZSBmZWF0dXJlLCBidXQgeW91IHdhbnQgdG8ga2VlcCB0 aGUgY2hlY2sgdG8NCj4gZml4IHNvbWV0aGluZyB3aGljaCBpcyBzdGlsbCBub3QgY2xlYXIgdG8g bWUuDQo+IA0KPiBUbyBzaW1wbGlmeSB0aGluZ3MsIGNhbiB5b3UgcGxlYXNlIGNsYXJpZnkgd2hh dCBlcnJvciBhcmUgeW91IGdldHRpbmcgd2l0aCB0aGlzDQo+IHBhdGNoLCBhbmQgY2FuIHlvdSBw bGVhc2UgZ2l2ZSBzb21lIGRldGFpbHMgaG93IHRvIHJlcHJvZHVjZSBpdD8gU28gSSBjYW4NCj4g ZGVidWcgdGhlIGlzc3VlIHlvdSBhcmUgaGF2aW5nLg0KDQpBZGRlZCBkZXRhaWxzIGFib3ZlLCBo b3BlIGV2ZXJ5dGhpbmcgaXMgY2xlYXIgd2hlbiB5b3UgcmVhZCB0aGlzIGxpbmUg8J+YiiANCg0K PiANCj4gPg0KPiA+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTbywgZGV0YWNoIGlz IGJyb2tlbiB3aXRoIGFuZCB3aXRob3V0IHRoaXMgcGF0Y2guDQo+ID4+Pj4NCj4gPj4+PiBJIGNh bid0IHNlZSBob3cgaXQgaXMgYnJva2VuIHdpdGhvdXQgdGhlIGNoZWNrLCBob3cgdGhlIHByb2Js ZW0geW91DQo+ID4+Pj4gbWVudGlvbmVkIGNhbiBiZSByZXByb2R1Y2VkPyBPciBpcyBpdCBhIHRo ZW9yZXRpY2FsIGlzc3VlPw0KPiA+Pj4+IEJ1dCB3aXRoIHRoaXMgY2hlY2sgaG90cGx1ZyBzdXBw b3J0IGlzICUxMDAgcmVwcm9kdWNpYmxlIGJyb2tlbi4NCj4gPj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBJIHRoaW5rIFRlc3RwbWQgc2hvdWxkIGNoYW5nZSB0aGUgY29uY2VwdCBvZiBy dGVfZGV2aWNlIG1hcHBpbmcNCj4gPj4+Pj4gYW5kIHB1dA0KPiA+Pj4+IGF0dGVudGlvbiB0byBu ZXh0Og0KPiA+Pj4+PiAxLiBEb24ndCBkZXRhY2ggYnkgZXRoZGV2IHBvcnQgSUQuDQo+ID4+Pj4+ IDIuIE11bHRpcGxlIGV0aGRldiBwb3J0IElEcyBtYXkgcmVsYXRlZCB0byB0aGUgc2FtZSBydGVf ZGV2aWNlLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgVGVzdHBtZCB1c2VyIHNob3VsZCBiZSBzdXJl IHRoYXQgYWxsIHRoZSBwb3J0IElEcyBvZiB0aGUNCj4gPj4+Pj4gcnRlX2RldmljZSBhcmUNCj4g Pj4+PiByZWxlYXNlZCBiZWZvcmUgdGhlIGRldGFjaCBjYWxsIGFuZCBUZXN0cG1kIG1heWJlIG5l ZWQgdG8gdmFsaWRhdGUgaXQuDQo+ID4+Pj4+IEFuZCBsaWtlIGF0dGFjaCwgZGV0YWNoIHNob3Vs ZCBiZSB0cmlnZ2VyZWQgYnkgUENJIGFkZHJlc3MgXA0KPiA+Pj4+PiBydGVfZGV2aWNlDQo+ID4+ Pj4gbmFtZS4NCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IFdlIG5lZWQgdG8ga25vdyBhYm91dCBw b3J0X2lkIHRvbyB0byBiZSBhYmxlIHRvIHN0b3AvY2xvc2UgaXQuDQo+ID4+Pj4gQW5kIHN1cmUg bm8gb2JqZWN0aW9uIHRvIGltcHJvdmUgdGhlIGhvdHBsdWcgc3VwcG9ydCBidXQgaXQgaXMNCj4g Pj4+PiBicm9rZW4gbm93LCBsZXRzIGZpeCBpdCBmaXJzdC4NCj4gPj4+Pg0KPiANCj4gPC4uLi4+ DQo=