From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 32BDE44C3 for ; Tue, 14 Aug 2018 02:58:31 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Aug 2018 17:58:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,235,1531810800"; d="scan'208";a="80032678" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga004.fm.intel.com with ESMTP; 13 Aug 2018 17:57:49 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 13 Aug 2018 17:57:48 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.226]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.143]) with mapi id 14.03.0319.002; Tue, 14 Aug 2018 08:57:47 +0800 From: "Lu, Wenzhuo" To: Andrew Rybchenko , Thomas Monjalon , "Yigit, Ferruh" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2] ethdev: fix device info getting Thread-Index: AQHUGlLisUPGzQjFW0iGQryp1Pu4oqSMRQ4AgATGUqCAAAwUgIAZiJ8AgBKIVDD//97qgIABlPJA Date: Tue, 14 Aug 2018 00:57:46 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC09093B81A5B4@shsmsx102.ccr.corp.intel.com> References: <1531373220-42150-1-git-send-email-wenzhuo.lu@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B804CD6@shsmsx102.ccr.corp.intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B804D6C@shsmsx102.ccr.corp.intel.com> <1716659.kXphz3AMnz@xps> <6A0DE07E22DDAD4C9103DF62FEBC09093B81A090@shsmsx102.ccr.corp.intel.com> <98adeea9-f334-b0a7-599d-c73a11927ddf@solarflare.com> In-Reply-To: <98adeea9-f334-b0a7-599d-c73a11927ddf@solarflare.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2] ethdev: fix device info getting 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: , X-List-Received-Date: Tue, 14 Aug 2018 00:58:33 -0000 SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl dyBSeWJjaGVua28gW21haWx0bzphcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tXQ0KPiBTZW50OiBN b25kYXksIEF1Z3VzdCAxMywgMjAxOCA0OjM5IFBNDQo+IFRvOiBMdSwgV2Vuemh1byA8d2Vuemh1 by5sdUBpbnRlbC5jb20+OyBUaG9tYXMgTW9uamFsb24NCj4gPHRob21hc0Btb25qYWxvbi5uZXQ+ OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsu b3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2Ml0gZXRoZGV2OiBmaXggZGV2 aWNlIGluZm8gZ2V0dGluZw0KPiANCj4gT24gMTMuMDguMjAxOCAwNTo1MCwgTHUsIFdlbnpodW8g d3JvdGU6DQo+ID4gSGkgVGhvbWFzLA0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogVGhvbWFzIE1vbmphbG9uIFttYWlsdG86dGhvbWFzQG1vbmph bG9uLm5ldF0NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMSwgMjAxOCAxMTozNyBQTQ0K PiA+PiBUbzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPjsgQW5kcmV3IFJ5YmNo ZW5rbw0KPiA+PiA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT47IFlpZ2l0LCBGZXJydWggPGZl cnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+IENjOiBkZXZAZHBkay5vcmcNCj4gPj4gU3ViamVj dDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBldGhkZXY6IGZpeCBkZXZpY2UgaW5mbyBnZXR0 aW5nDQo+ID4+DQo+ID4+IDE2LzA3LzIwMTggMDM6NTgsIEx1LCBXZW56aHVvOg0KPiA+Pj4gSGkg QW5kcmV3LA0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+ IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgTHUs IFdlbnpodW8NCj4gPj4+PiBTZW50OiBNb25kYXksIEp1bHkgMTYsIDIwMTggOTowOCBBTQ0KPiA+ Pj4+IFRvOiBBbmRyZXcgUnliY2hlbmtvIDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPjsgZGV2 QGRwZGsub3JnDQo+ID4+Pj4gQ2M6IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5j b20+OyBUaG9tYXMgTW9uamFsb24NCj4gPj4+PiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gPj4+ PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGV0aGRldjogZml4IGRldmljZSBp bmZvIGdldHRpbmcNCj4gPj4+Pg0KPiA+Pj4+IEhpIEFuZHJldywNCj4gPj4+Pg0KPiA+Pj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtv IFttYWlsdG86YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbV0NCj4gPj4+Pj4gU2VudDogRnJpZGF5 LCBKdWx5IDEzLCAyMDE4IDQ6MDMgUE0NCj4gPj4+Pj4gVG86IEx1LCBXZW56aHVvIDx3ZW56aHVv Lmx1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+Pj4+PiBDYzogWWlnaXQsIEZlcnJ1aCA8 ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA+Pj4+PiA8dGhvbWFz QG1vbmphbG9uLm5ldD4NCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYy XSBldGhkZXY6IGZpeCBkZXZpY2UgaW5mbyBnZXR0aW5nDQo+ID4+Pj4+DQo+ID4+Pj4+IEhpLCBX ZW56aHVvLA0KPiA+Pj4+Pg0KPiA+Pj4+PiBJJ20gc29ycnksIGJ1dCBJIGhhdmUgbW9yZSBldmVu IGhhcmRlciBxdWVzdGlvbnMgdGhhbiB0aGUgcHJldmlvdXMNCj4gb25lLg0KPiA+Pj4+PiBUaGlz IHF1ZXN0aW9ucyBhcmUgcmF0aGVyIGdlbmVyaWMgYW5kIG1haW5seSB0byBldGhkZXYgbWFpbnRh aW5lcnMuDQo+ID4+Pj4+DQo+ID4+Pj4+IE9uIDEzLjA3LjIwMTggMDU6NDIsIFdlbnpodW8gTHUg d3JvdGU6DQo+ID4+Pj4+PiBUaGUgZGV2aWNlIGluZm9ybWF0aW9uIGNhbm5vdCBiZSBnb3R0ZW4g Y29ycmVjdGx5IGJlZm9yZSB0aGUNCj4gPj4+Pj4+IGNvbmZpZ3VyYXRpb24gaXMgc2V0LiBCZWNh dXNlIG9uIHNvbWUgTklDcyB0aGUgaW5mb3JtYXRpb24gaGFzDQo+ID4+Pj4+PiBkZXBlbmRlbmNl IG9uIHRoZSBjb25maWd1cmF0aW9uLg0KPiA+Pj4+PiBUaGlua2luZyBhYm91dCBpdCBJIGhhdmUg dGhlIGZvbGxvd2luZyBxdWVzdGlvbi4gSXMgaXQgdmFsaWQNCj4gPj4+Pj4gYmVoYXZpb3VyIG9m IHRoZSBkZXZfaW5mbyBpZiBpdCBjaGFuZ2VzIGFmdGVyIGNvbmZpZ3VyYXRpb24/DQo+ID4+Pj4+ IEkgYWx3YXlzIHRob3VnaHQgdGhhdCB0aGUgcHJpbWFyeSBnb2FsIG9mIHRoZSBkZXZfaW5mbyBp cyB0bw0KPiA+Pj4+PiBwcm92aWRlIGluZm9ybWF0aW9uIHRvIGFwcCBhYm91dCBkZXZpY2UgY2Fw YWJpbGl0aWVzIHRvIGFsbG93IGFwcA0KPiA+Pj4+PiBjb25maWd1cmUgZGV2aWNlIGFuZCBxdWV1 ZXMgY29ycmVjdGx5LiBOb3cgd2Ugc2VlIHRoZSBjYXNlIHdoZW4NCj4gPj4+Pj4gZGV2X2luZm8g Y2hhbmdlcyBvbiBjb25maWd1cmUuIE1heSBiZSBpdCBpcyBhY2NlcHRhYmxlLCBidXQgaXQgaXMN Cj4gPj4+Pj4gcmVhbGx5IHN1c3BpY2lvdXMuIElmIHdlIGFjY2VwdCBpdCwgaXQgc2hvdWxkIGJl IGRvY3VtZW50ZWQuDQo+ID4+Pj4+IE1heSBiZSBkZXZfaW5mbyBzaG91bGQgYmUgc3BsaXQgaW50 byBwYXJ0czogcGFydCB3aGljaCBpcw0KPiA+Pj4+PiBwZXJzaXN0ZW50IGFuZCBwYXJ0IHdoaWNo IG1heSBkZXBlbmQgb24gZGV2aWNlIGNvbmZpZ3VyYXRpb24uDQo+ID4+Pj4gQXMgSSByZW1lbWJl ciwgdGhlIHNpbWlsYXIgZGlzY3Vzc2lvbiBoYXMgaGFwcGVuZWQgOikgSSd2ZSByYWlzZWQNCj4g Pj4+PiB0aGUgc2ltaWxhciBzdWdnZXN0aW9uIGxpa2UgdGhpcy4gQnV0IHdlIGRvbuKAmXQgbWFr ZSBpdCBoYXBwZW4uDQo+ID4+Pj4gVGhlIHJlYXNvbiBpcywgeW91IHNlZSwgdGhpcyBpcyB0aGUg cnRlIGxheWVyJ3MgYmVoYXZpb3IuIFNvIHRoZQ0KPiA+Pj4+IHVzZXIgZG9lc24ndCBoYXZlIHRv IGtub3cgaXQuIEZyb20gQVBQJ3MgUG9WLCBpdCBpbnB1dHMgdGhlDQo+ID4+Pj4gY29uZmlndXJh dGlvbiwgaXQgY2FsbHMgdGhpcyBBUEkgInJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSIuIEl0DQo+ID4+ Pj4gZG9lc24ndCBrbm93ICB0aGUgY29uZmlndXJhdGlvbiBpcyBjb3BpZWQgYmVmb3JlIGdldHRp bmcgdGhlIGluZm8gb3Igbm90Lg0KPiA+Pj4+IFNvLCB0byBteSBvcGluaW9uLCB3ZSBjYW4gc3Rp bGwga2VlcCB0aGUgYmVoYXZpb3IuIFdlIG9ubHkgbmVlZCB0bw0KPiA+Pj4+IHNwbGl0IGl0IGlu dG8gcGFydHMgd2hlbiB3ZSBkbyBzZWUgdGhlIGNhc2UgdGhhdCBjYW5ub3QgbWFrZSBpdC4NCj4g Pj4+IE1heWJlIEkgdGFsa2VkIHRvbyBtdWNoIGFib3V0IHRoZSBwYXRjaC4gVGhpbmsgYWJvdXQg aXQgYWdhaW4uIFlvdXINCj4gPj4+IGNvbW1lbnRzIGlzIGFib3V0IGhvdyB0byB1c2UgdGhlIEFQ SXMsIHJ0ZV9ldGhfZGV2X2luZm9fZ2V0LA0KPiA+PiBydGVfZXRoX2Rldl9jb25maWd1cmUuIFRv IG15IG9waW5pb24sIHJ0ZV9ldGhfZGV2X2luZm9fZ2V0IGlzIGp1c3QgdG8NCj4gPj4gZ2V0IHRo ZSBpbmZvLiBJdCBjYW4gYmUgY2FsbGVkIGFueXdoZXJlLCBiZWZvcmUgY29uZmlndXJhdGlvbiBv cg0KPiA+PiBhZnRlci4gSXQncyByZWFzb25hYmxlIHRoZSBpbmZvIGNoYW5nZXMgd2l0aCB0aGUg Y29uZmlndXJhdGlvbiBjaGFuZ2luZy4NCj4gPj4+IEJ1dCB3ZSBkbyBoYXZlIHNvbWV0aGluZyBt aXNzaW5nLCBsaWtlLCBydGVfZXRoX2Rldl9jYXBhYmlsaXR5X2dldA0KPiA+Pj4gd2hpY2gNCj4g Pj4gc2hvdWxkIGJlIHN0YWJsZS4gQVBQIGNhbiB1c2UgdGhpcyBBUEkgdG8gZ2V0IHRoZSBuZWNl c3NhcnkgaW5mbw0KPiA+PiBiZWZvcmUgY29uZmlndXJhdGlvbi4NCj4gPj4+IEEgcXVlc3Rpb24s IG1heWJlIGEgbGl0dGxlIGRpdmVyZ2VudCB0aGlua2luZywgdGhhdCBBUFAgc2hvdWxkIGhhdmUN Cj4gPj4+IHNvbWUNCj4gPj4gaW50ZWxsaWdlbmNlIHRvIGhhbmRsZSB0aGUgY2FwYWJpbGl0eSBh dXRvbWF0aWNhbGx5LiBTbyBnZXR0aW5nIHRoZQ0KPiA+PiBjYXBhYmlsaXR5IGlzIG5vdCBzbyBn b29kIGFuZCBlZmZlY3RpdmUsIGxvb2tzIGxpa2Ugd2Ugc3RpbGwgbmVlZCB0aGUgaHVtYW4NCj4g aW52b2x2ZW1lbnQuDQo+ID4+IE1heWJlIHRoYXQgdGhlIHJlYXNvbiBjdXJyZW50bHkgd2Ugc3Vw cG9zZSBBUFAga25vdyB0aGUgY2FwYWJpbGl0eQ0KPiA+PiBmcm9tIHRoZSBwYXBlciBjb3BpZXMs IGV4YW1wbGVzLi4uDQo+ID4+DQo+ID4+IEkgYW0gbm90IHN1cmUgdG8gdW5kZXJzdGFuZCBhbGwg dGhlIHNlbnRlbmNlcy4NCj4gPj4gQnV0IEkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgdGFrZSBhIGRl Y2lzaW9uIGFib3V0IHRoZSBzdGFiaWxpdHkgb2YgdGhlc2UNCj4gaW5mb3MuDQo+ID4+IEVpdGhl ciBpbmZvcyBjYW5ub3QgY2hhbmdlIGFmdGVyIHByb2JpbmcsIG9yIHdlIG11c3QgZG9jdW1lbnQg dGhhdA0KPiA+PiB0aGUgYXBwIG11c3QgcmVxdWVzdCBpbmZvcyByZWd1bGFybHkgKHdoZW4/KS4N Cj4gPiBTb3JyeSwgSSBtaXNzZWQgdGhpcyBtYWlsLg0KPiA+DQo+ID4gSSBoYXZlIHRoZSBjb25j ZXJuIHRoYXQgZGlmZmVyZW50IE5JQ3MgaGF2ZSBkaWZmZXJlbnQgYmVoYXZpb3IuIE9uZSBpbmZv DQo+IGNhbiBiZSBzdGFibGUgb24gYSBOSUMgYnV0IGR5bmFtaWMgb24gYW5vdGhlci4gQ29uc2lk ZXJpbmcgdGhpcywgd2UgbWF5DQo+IGJldHRlciBub3Qgc3BsaXR0aW5nIHRoZSBydGVfZXRoX2Rl dl9pbmZvX2dldCB0byAyIEFQSXMuIEFuZCBjb21wYXJpbmcgd2l0aA0KPiBoYW5kbGluZyB0aGlz IGluIHJ0ZSBsYXllciwgbWF5YmUgd2UgY2FuIGxldCBldmVyeSBOSUMgaGFzIGl0cyBvd24gZGVj aXNpb24uDQo+ID4gSSBoYXZlIGFuIGlkZWEuIE1heWJlIHdlIGNhbiBhZGQgYSBwYXJhbWV0ZXIg Zm9yIHBvdGVudGlhbCBkeW5hbWljDQo+ID4gZmllbGRzLiBMaWtlLCBDaGFuZ2luZyB1aW50MTZf dCBuYl9yeF9xdWV1ZXM7IHRvIHN0cnVjdCBuYl9yeF9xdWV1ZXMgew0KPiA+IHVpbnQxNl90IHZh bHVlOyBib29sIHN0YWJsZTsgfQ0KPiANCj4gTWF5IGJlIGl0IGlzIGp1c3QgdmVyeSBiYWQgZXhh bXBsZSwgYnV0IGFzIEkgdW5kZXJzdGFuZCBuYl9yeF9xdWV1ZXMgaXMNCj4gbWFpbmx5IHJlcXVp cmVkIHRvIGNvbmZpZ3VyZSB0aGUgZGV2aWNlIHByb3Blcmx5LiBPciBzaG91bGQgYXBwIGNvbmZp Z3VyZSwNCj4gZ2V0IG5ldyB2YWx1ZSwgcmVjb25maWd1cmUgYWdhaW4sIGdldCBuZXcgdmFsdWUg YW5kIHNvIG9uIGFuZCBzdG9wIHdoZW4NCj4gcHJldmlvdXMgaXMgZXF1YWwgdG8gdGhlIG5ldyBv bmUuIFllcywgSSBkcmFtYXRpc2UgYW5kIGl0IHNvdW5kcyByZWFsbHkgYmFkLg0KPiBJbiBhbnkg Y2FzZSBpdCB3b3VsZCBvdmVyLWNvbXBsaWNhdGUgaW50ZXJmYWNlIGFuZCBubyBzaW5nbGUgYXBw IHdpbGwgZG8gaXQNCj4gY29ycmVjdGx5Lg0KSSAgdGhpbmsgeW91J3JlIHRhbGtpbmcgYWJvdXQg bWF4X3J4X3F1ZXVlcy4gQVBQIGNhbiBnZXQgdGhhdCBpbmZvIGJlZm9yZSBjb25maWd1cmF0aW9u LiBUaGVuIGNvbmZpZ3VyZSByeCBxdWV1ZSBudW1iZXIgd2hpY2ggaXMgbm90IGxhcmdlciB0aGFu IGl0LiBUaGF0J3MgZW5vdWdoLg0KbmJfcnhfcXVldWVzIHNob3VsZCBiZSB0aGUgbnVtYmVyIHdo aWNoIGlzIGNvbmZpZ3VyZWQgYnkgQVBQIGFuZCBob3cgbWFueSBxdWV1ZXMgYXJlIGFjdHVhbGx5 IHVzZWQuIFRvIG15IG9waW5pb24sIGl0J3MgbWFpbmx5IHVzZWQgYnkgdGhlIEdVSSB0byBzaG93 IHRoZSB2YWx1ZSB0byBodW1hbiBiZWluZy4NCg0KQlRXLCBtYXhfcnhfcXVldWVzIGNvdWxkIGJl IGFuIGdvb2QgZXhhbXBsZSB0aGF0IHNob3dzIHRoYXQgc29tZSBwYXJhbWV0ZXJzIGFyZSBzdGFi bGUgb24gc29tZSBOSUNzIGJ1dCBub3Qgb24gb3RoZXIgTklDcy4NClRha2UgSW50ZWwgTklDcyBm b3IgZXhhbXBsZSAoSSBkb27igJl0IGZhbWlsaWFyIHdpdGggb3RoZXJzLiksIG5vcm1hbGx5IG1h eF9yeF9xdWV1ZXMgaXMgc3RhYmxlIG9uIFBGLiBCdXQgb24gVkYsIGFzIHRoZSBtYXggbnVtYmVy IGlzIGRlY2lkZWQgYnkgUEYsIGl0IGNvdWxkIGJlIGR5bmFtaWMuIFdoZW4gVkYgc3RhcnRzLCBp dCBjYW4gZ2V0IGFuIGRlZmF1bHQgdmFsdWUgZnJvbSBQRi4gSWYgaXQgbm90IGVub3VnaCwgaXQg Y2FuIHJlcXVlc3QgYSBsYXJnZXIgb25lIGZyb20gUEYuIElmIHRoZSBudW1iZXIgd29ya3MsIFZG IGNhbiBnZXQgYSBuZXcgbnVtYmVyLg0KDQo+IA0KPiBTdGFibGUgZGV2X2luZm8gaXMgc2ltcGxl LiBJZiB0aGVyZSBhcmUgcmVhbCBjYXNlcyB3aGVuIHNvbWV0aGluZyBjYW4ndCBiZQ0KPiBzdGFi bGUgKGFuZCBtYXkgYmUgcmVjb21tZW5kZWQgUngvVHggcmluZyBzaXplcyBpcyBnb29kIGV4YW1w bGUsIGl0IHNob3VsZA0KPiBhdCBsZWFzdCBkb2N1bWVudGVkIGluIGRldl9pbmZvIHN0cnVjdHVy ZSBkZXNjcmlwdGlvbiBvciBtYXkgYmUgbW92ZWQgdG8NCj4gc2VwYXJhdGUgQVBJLg0KPiANCj4g PiBCeSBkZWZhdWx0LCB0aGUgc3RhYmxlIGlzIGZhbHNlLiBUaGVuIGV2ZXJ5IE5JQyBjYW4gbWFp bnRhaW4gaXRzIG93bg0KPiBiZWhhdmlvci4NCj4gPg0KPiA+IFNvbWUgZmlsZWRzIHRoYXQgbXVz dCBiZSBzdGFibGUgY2FuIGJlIGxlZnQgdW5jaGFuZ2VkLCBsaWtlLCBkcml2ZXJfbmFtZSwNCj4g bWF4X3J4X3F1ZXVlcy4NCj4gPg0KPiA+IEFzIHRoaXMgcGF0Y2ggaXMganVzdCByZXZlcnNpbmcg YSBiYWQgY29tbWl0IHRvIGZpeCBhIGJ1ZywgaWYgbXkgaWRlYSBzb3VuZHMNCj4gZ29vZCBvciB3 b3J0aCBkaXNjdXNzaW5nLCBJIGNhbiBzZW5kIGFub3RoZXIgUkZDIG1haWwgZm9yIGl0Lg0KPiA+ DQoNCg==