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 CF9AB4CE4 for ; Fri, 8 Jul 2016 02:14:17 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP; 07 Jul 2016 17:14:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,326,1464678000"; d="scan'208";a="842484828" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga003.jf.intel.com with ESMTP; 07 Jul 2016 17:14:16 -0700 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 7 Jul 2016 17:14:16 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 7 Jul 2016 17:14:15 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.147]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.150]) with mapi id 14.03.0248.002; Fri, 8 Jul 2016 08:14:14 +0800 From: "Lu, Wenzhuo" To: Luca Boccassi CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v6 0/4] support reset of VF link Thread-Index: AQHRyrx8LaSwDJ5M5U2GQJ01DKNhxKAH+1YAgAEbWACAABOhgIABfdMQgACBqYCAARXlcIAAFzOAgACztSD//7CPgIABCdxg Date: Fri, 8 Jul 2016 00:14:13 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC09090348E4AF@shsmsx102.ccr.corp.intel.com> References: <1465191653-28408-1-git-send-email-wenzhuo.lu@intel.com> <1466403870-6840-1-git-send-email-wenzhuo.lu@intel.com> <1467647287.32386.8.camel@brocade.com> <6A0DE07E22DDAD4C9103DF62FEBC09090348D343@shsmsx102.ccr.corp.intel.com> <1467712351.32466.11.camel@brocade.com> <6A0DE07E22DDAD4C9103DF62FEBC09090348DB05@shsmsx102.ccr.corp.intel.com> <1467822182.32466.34.camel@brocade.com> <6A0DE07E22DDAD4C9103DF62FEBC09090348E088@shsmsx102.ccr.corp.intel.com> <1467886851.1762.6.camel@brocade.com> <6A0DE07E22DDAD4C9103DF62FEBC09090348E322@shsmsx102.ccr.corp.intel.com> <1467908383.1762.22.camel@brocade.com> In-Reply-To: <1467908383.1762.22.camel@brocade.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 v6 0/4] support reset of VF link X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Jul 2016 00:14:18 -0000 PiA+ID4gPiA+ID4gPiA+ID4gSGVsbG8gV2Vuemh1bywNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiBJJ20gdGVzdGluZyB0aGlzIHBhdGNoc2V0LCBidXQgSSBhbSBzcG9yYWRp Y2FsbHkgcnVubmluZw0KPiA+ID4gPiA+ID4gPiA+ID4gaW50byBhbiBpc3N1ZSB3aGVyZSB0aGUg VkZzIHJlc2V0IGZhaWxzIGFmdGVyIHRoZSBQRiBmbGFwcy4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gPiBJIGhhdmUgYSBWTSBydW5uaW5nIG9uIGEgS1ZNIGJveCB3aXRoIGEg WDU0MC1BVDIsIHBhc3NpbmcgMiBWRnMNCj4gaW4uDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gSSBhbSB1c2luZyBjYWxsaW5nIHJ0ZV9ldGhfZGV2X3Jlc2V0IGluIHJlc3Bv bnNlIHRvIGENCj4gPiA+ID4gPiA+ID4gPiA+IFJURV9FVEhfRVZFTlRfSU5UUl9SRVNFVCBjYWxs YmFjaywgYW5kIHRoZSBmb2xsb3dpbmcNCj4gPiA+ID4gPiA+ID4gPiA+IGVycm9ycyBhcHBlYXIg aW4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBsb2c6DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gUE1EOiBpeGdiZXZmX2Rldl9yZXNldCgpOiBJeGdiZSBWRiByZXNldDogRmFp bGVkIHRvIHVwZGF0ZSBsaW5rLg0KPiA+ID4gPiA+ID4gPiA+ID4gUE1EOiBpeGdiZV9hbGxvY19y eF9xdWV1ZV9tYnVmcygpOiBSWCBtYnVmIGFsbG9jIGZhaWxlZA0KPiA+ID4gPiA+ID4gPiA+ID4g cXVldWVfaWQ9MA0KPiA+ID4gPiA+ID4gPiA+ID4gUE1EOiBpeGdiZXZmX2Rldl9zdGFydCgpOiBV bmFibGUgdG8gaW5pdGlhbGl6ZSBSWA0KPiA+ID4gPiA+ID4gPiA+ID4gaGFyZHdhcmUNCj4gPiA+ ID4gPiA+ID4gPiA+ICgtMTIpDQo+ID4gPiA+ID4gPiA+ID4gPiBQTUQ6IGl4Z2JldmZfZGV2X3Jl c2V0KCk6IEl4Z2JlIFZGIHJlc2V0OiBGYWlsZWQgdG8gc3RhcnQgZGV2aWNlLg0KPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEp1bXBpbmcgaW4gd2l0aCBHREIsIGl0IHNlZW1z IHRoYXQgdGhlIHJ0ZV9yeG1idWZfYWxsb2MNCj4gPiA+ID4gPiA+ID4gPiA+IGNhbGwgaW4gaXhn YmVfYWxsb2NfcnhfcXVldWVfbWJ1ZnMgcmV0dXJucyBOVUxMIGF0DQo+ID4gPiA+ID4gPiA+ID4g PiBpdGVyYXRpb24gNjQgb3V0IG9mDQo+ID4gPiAyMDQ4Lg0KPiA+ID4gPiA+ID4gPiA+ID4gVGhl IGFwcGxpY2F0aW9uIGhhcyB+NTAwIDJNQiBodWdlcGFnZXMsIGFuZCB0aGVyZSdzIDJHQg0KPiA+ ID4gPiA+ID4gPiA+ID4gb2YgZnJlZSBtZW1vcnkgYXZhaWxhYmxlIG9uIHRvcCBvZiB0aGF0Lg0K PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhhdmUgeW91IHNlZW4gdGhpcyBi ZWZvcmU/IEFueSBwb2ludGVyIG9yIHN1Z2dlc3Rpb24gZm9yDQo+IGRlYnVnZ2luZz8NCj4gPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGFua3MhDQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+ID4gPiA+IEtpbmQgcmVnYXJkcywN Cj4gPiA+ID4gPiA+ID4gPiA+IEx1Y2EgQm9jY2Fzc2kNCj4gPiA+ID4gPiA+ID4gPiBJIHRoaW5r IHRoZSBwcm9ibGVtIGlzIHRoZSBtYnVmIG9jY3VwaWVkIGJ5IHRoZSBwYWNrZXRzIGlzDQo+ID4g PiA+ID4gPiA+ID4gbm90IHJlbGVhc2VkLiBUaGlzDQo+ID4gPiA+ID4gPiA+IG1lbW9yeSBoYXMg dG8gYmUgcmVsZWFzZWQgYnkgdGhlIEFQUCwgc28gbXkgcGF0Y2hlcyBoYXZlbuKAmXQNCj4gPiA+ ID4gPiA+ID4gY292ZXJlZA0KPiA+ID4gdGhpcy4NCj4gPiA+ID4gPiA+ID4gQWN0dWFsbHkgYW4g ZXhhbXBsZSBpcyBuZWVkZWQgdG8gc2hvdyBob3cgdG8gdXNlIHRoZSByZXNldCBBUEkuDQo+ID4g PiA+ID4gPiA+IEkgcGxhbiB0byBtb2RpZnkgdGhlIHRlc3RwbWQuDQo+ID4gPiA+ID4gPiA+ID4g WW91IG1heSBub3RpY2UgdGhpcyBmZWF0dXJlIGlzIHBvc3Rwb25lZCB0byAxNi4xMS4gV291bGQN Cj4gPiA+ID4gPiA+ID4gPiB5b3UgbGlrZSB0byB3YWl0IGZvcg0KPiA+ID4gPiA+ID4gPiB0aGUg bmV3IHZlcnNpb24gdGhhdCB3aWxsIGluY2x1ZGUgYW4gZXhhbXBsZT8NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gSGksDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFVuZm9ydHVu YXRlbHkgd2UgbmVlZCB0aGUgVkYgcmVzZXQgd29ya2luZyBzb29uZXIgdGhhbiB0aGF0LA0KPiA+ ID4gPiA+ID4gPiBzbyBvbmUgd2F5IG9yIHRoZSBvdGhlciBJJ2xsIG5lZWQgdG8gc29ydCBpdCBv dXQuIEdpdmVuIEkndmUNCj4gPiA+ID4gPiA+ID4gZ290IGEgdXNlIGNhc2Ugd2hlcmUgdGhpcyBp cyBoYXBwZW5pbmcsIGlmIGl0IGNhbiBiZSBoZWxwZnVsDQo+ID4gPiA+ID4gPiA+IGZvciB5b3Ug SSdtIG1vcmUgdGhhbiBoYXBweSB0byBoZWxwIGFzIGEgZ3VpbmVhIHBpZy4gSWYgeW91DQo+ID4g PiA+ID4gPiA+IGNvdWxkIHBsZWFzZSBnaXZlIHNvbWUgZ3VpZGFuY2UvZ3VpZGVsaW5lcyB3aXRo IHJlZ2FyZHMgdG8NCj4gPiA+ID4gPiA+ID4gd2hpY2ggQVBJIHRvIHVzZSB0byBzb3J0IHRoZSBt YnVmDQo+ID4gPiA+ID4gcHJvYmxlbSwgSSBjYW4gdHJ5IGl0IG91dCBhbmQgZ2l2ZSBiYWNrIHNv bWUgZmVlZGJhY2suDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoYW5rcyENCj4gPiA+ ID4gPiA+IEkgbWFkZSBhIHN0dXBpZCBtaXN0YWtlIGFuZCBkZWxldGVkIGFsbCBteSBjb2RlLiBT bywgSSBoYXZlIHRvDQo+ID4gPiA+ID4gPiB0YWtlIHNvbWUgdGltZSB0byByZXdyaXRlIGl0IDoo IEF0dGFjaGVkIHRoZSBleGFtcGxlIEkgdXNlZCB0bw0KPiA+ID4gPiA+ID4gdGVzdCB0aGUgcmVz ZXQgQVBJLiBJdCdzDQo+ID4gPiA+ID4gbW9kaWZpZWQgZnJvbSB0aGUgbDJmd2QgZXhhbXBsZS4g U28geW91IGNhbiBjb21wYXJlIGl0IHdpdGgNCj4gPiA+ID4gPiBsMmZ3ZCB0byBzZWUgd2hhdCBu ZWVkIHRvIGJlIGFkZGVkLg0KPiA+ID4gPiA+ID4gSG9wZWZ1bGx5IGl0IGNhbiBoZWxwIDopDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGFua3MhIFRoYXQgbWFkZSBtZSB1bmRlcnN0YW5kIGEgY291 cGxlIG9mIHRoaW5ncyBtb3JlLCBhbmQNCj4gPiA+ID4gPiBJJ3ZlIGdvdCBwYXN0IHRoZSBwcm9i bGVtLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVW5mb3J0dW5hdGVseSBub3cgdGhlcmUncyBhIGJp Z2dlciBpc3N1ZSAtIHJ0ZV9ldGhfZGV2X3Jlc2V0IGlzDQo+ID4gPiA+ID4gYSBibG9ja2luZw0K PiA+ID4gY2FsbC4NCj4gPiA+ID4gPiB0aGUgX1JFU0VUIGV2ZW50IGNhbGxiYWNrIGlzIGZpcmVk IHdoZW4gdGhlIFBGIGdvZXMgZG93biwgYnV0DQo+ID4gPiA+ID4gd2hlbiBJIGNhbGwgcnRlX2V0 aF9kZXZfcmVzZXQgaXQgd2lsbCBibG9jayB1bnRpbCB0aGUgUEYgZ29lcyBiYWNrIHVwLg0KPiA+ ID4gPiA+IFRoZXJlIGlzIG5vIHdheSwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgdG8ga25vdyBpZiB0 aGUgUEYgaXMgYmFjaw0KPiA+ID4gPiA+IHVwIGJlZm9yZQ0KPiA+ID4gY2FsbGluZyBydGVfZXRo X2Rldl9yZXNldC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoaXMgaXMgYSBwcm9ibGVtIGJlY2F1 c2UsIGFzIGZhciBhcyBJIHVuZGVyc3RhbmQsIEkgaGF2ZSB0bw0KPiA+ID4gPiA+IGNhbGwgYWxs IHRoZSBydGVfZXRoX2Rldl8gQVBJcyBmcm9tIHRoZSBzYW1lIHRocmVhZCwgaW4gbXkgY2FzZQ0K PiA+ID4gPiA+IHRoZSBtYXN0ZXIgdGhyZWFkLCBhbmQgSSBjYW4ndCBoYXZlIHRoYXQgYmxvY2sg cG90ZW50aWFsbHkgaW5kZWZpbml0ZWx5Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gV291bGQgaXQg YmUgcG9zc2libGUgdG8gaGF2ZSAyIGV2ZW50cyBpbnN0ZWFkIG9mIDEsIG9uZSB3aGVuIHRoZQ0K PiA+ID4gPiA+IFBGIGdvZXMgZG93biBhbmQgb25lIHdoZW4gaXQgZ29lcyB1cD8gVGhpcyB3YXkg YW4gYXBwbGljYXRpb24NCj4gPiA+ID4gPiB3b3VsZCBiZSBhYmxlIHRvIHNvZnQtc3RvcCB0aGUg cG9ydCAoZHJhaW4gcXVldWVzLCBldGMpIHdoZW4gdGhlDQo+ID4gPiA+ID4gUEYgaXMgZG93biwg YW5kIHRoZW4gY2FsbCB0aGUgcmVzZXQgQVBJIHdoZW4gaXQgZ29lcyBiYWNrIHVwLg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gVGhhbmtzIQ0KPiA+ID4gPiBTb3JyeSB3ZSBjYW5ub3QgaGF2ZSAyIGV2 ZW50cyBub3cuIFRoZXJlJ3JlIDIgcHJvYmxlbXMgdG8gaGF2ZSAyIGV2ZW50cy4NCj4gPiA+ID4g MSwgTm9ybWFsbHkgd2UgdXNlIGtlcm5lbCBkcml2ZXIgZm9yIFBGLiBOb3cgdGhlIGtlcm5lbCBk cml2ZXINCj4gPiA+ID4gb25seSBoYXZlIG9uZQ0KPiA+ID4ga2luZCBvZiBtZXNzYWdlIGZvciBs aW5rIGRvd24gYW5kIHVwLiBTbyB3ZSBjYW5ub3QgdGVsbCBpZiBpdCdzIGRvd24gb3IgdXAuDQo+ ID4gPiA+IDIsIFdoZW4gdGhlIFBGIGlzIGRvd24sIGlmIHdlIGRvbid0IHJlc2V0IHRoZSBWRiwg VkYgaXMgbm90IHdvcmtpbmcuDQo+ID4gPiA+IEl0IGNhbm5vdCByZWNlaXZlIGFueSBtZXNzYWdl IGZyb20gUEYuIFNvIHdlIGNhbm5vdCBrbm93IHRoYXQgd2hlbg0KPiA+ID4gPiBQRiBpcyB1cC4g SXQgbWVhbnMgbm9ybWFsbHkgd2UgaGF2ZSB0byByZXNldCBWRiB0d2ljZSB3aGVuIFBGIGRvd24N Cj4gPiA+ID4gYW5kIHVwLiAoU3VyZWx5IHdlIGNhbiB3YWl0IGEgd2hpbGUgd2hlbiB3ZSByZWNl aXZlIHRoZSBtZXNzYWdlDQo+ID4gPiA+IGZyb20gUEYgdW50aWwgUEYgaXMgdXAuIEJ1dCB3ZSBj YW5ub3QgdGVsbCBob3cgbG9uZyB0aGUgdGltZSBpcyBhcHByb3ByaWF0ZS4NCj4gPiA+ID4gU28g dGhpcyAqd2FpdCBhIHdoaWxlKiBtYXkgd29yayBmb3IgZmxhc2guKQ0KPiA+ID4NCj4gPiA+IFRo YW5rcyBmb3IgdGhlIGNsYXJpZmljYXRpb24sIEkgdW5kZXJzdGFuZC4NCj4gPiA+DQo+ID4gPiBU aGUgcHJvYmxlbSB3aXRoIGEgYmxvY2tpbmcgY2FsbCBpcyB0aGF0IHdlIGJhc2ljYWxseSBuZWVk IHRvIHNwYXduDQo+ID4gPiBvbmUgdGhyZWFkIHBlciBydGVfZXRoX2Rldl9yZXNldCBjYWxsLCBz aW5jZSB0aGVyZSBpcyBubyB3YXkgb2YNCj4gPiA+IGtub3dpbmcgaWYgYSBQRiBpcyBkb3duIGZv ciBnb29kIG9yIGp1c3QgZmxhcHBpbmcsIGFuZCB3ZSBjYW4ndCBoYXZlDQo+ID4gPiBhIHNpbmds ZSB0aHJlYWQgbWFuYWdpbmcgYWxsIHRoZSBpbnRlcmZhY2VzIGJlaW5nIGJsb2NrZWQgZm9yZXZl cg0KPiA+ID4gKEVHOiBQRiAxIGFuZCAyIGdvIGRvd24sIHRocmVhZCBibG9ja3Mgb24gUEYgMSBy ZXNldCBjYWxsIGJ1dCBpdA0KPiA+ID4gbmV2ZXIgcmV0dXJucywgbWVhbndoaWxlIFBGIDIgZ29l cyBiYWNrIHVwIGJ1dCBjYWxsIGlzIG5ldmVyIG1hZGUpLg0KPiA+ID4NCj4gPiA+IEEgY29sbGVh Z3VlIG9mIG1pbmUsIEVyaWMgS2luemllLCBzdWdnZXN0ZWQgdG8gYWRkIGEgYmxvY2tpbmcNCj4g PiA+IGJvb2xlYW4gcGFyYW1ldGVyIHRvIHJ0ZV9ldGhfZGV2X3Jlc2V0IEFQSS4gSWYgc2V0IHRv IGZhbHNlLCB0aGVuDQo+ID4gPiB0aGUgY2FsbCB3aWxsIG5vdCBibG9jayBhbmQganVzdCBkb2Vz IG9uZSB0cnkgYW5kIHJldHVybiBhbiBlcnJvciAoRUFHQUlOID8pLg0KPiBXb3VsZCB0aGlzIGJl IGFuIGFjY2VwdGFibGUgcHJvcG9zaXRpb24/DQo+ID4gSXQncyBhIGdvb2Qgc3VnZ2VzdGlvbi4N Cj4gPiBBbmQgSSB0aGluayBpZiB0aGUgcGFyYW1ldGVyIGlzIHNldCB0byBmYWxzZSBhbmQgdGhl IGxpbmsgaXMgbm90IHVwIGFmdGVyIHRyeWluZw0KPiBvbmNlLCBpdCB3aWxsIGJlIEFQUCdzIHJl c3BvbnNpYmlsaXR5IHRvIHNldHVwIGEgdGltZXIgb3Igc29tZXRoaW5nIGxpa2UgdGhhdCB0bw0K PiBrZWVwIHRyeWluZyB0byBicmluZyB1cCB0aGUgbGluay4NCj4gDQo+IFRoYXQgc2VlbXMgcmVh c29uYWJsZS4gSSd2ZSB0aHJvd24gdG9nZXRoZXIgYSBxdWljayBkaWZmIGFuZCBwbGF5ZWQgd2l0 aCBpdCBvbg0KPiB0b3Agb2YgeW91ciBwYXRjaGVzIGFuZCBEUERLIDIuMiwgc2VlbXMgdG8gd29y ayBhcyBpbnRlbmRlZCwgSSdtIGF0dGFjaGluZyBpdA0KPiBmb3IgcmVmZXJlbmNlLiBGZWVsIGZy ZWUgdG8gcGljayBpdCB1cCwgYWRhcHQgaXQgb3IgaWdub3JlIGl0IDotKQ0KPiANCj4gQWxzbyBJ J3ZlIG5vdGljZWQgdGhhdCB0aGUgaXhnYmUgaXMgdGhlIG9ubHkgb25lIHRoYXQgYWN0dWFsbHkg YmxvY2tzLA0KPiBlMTAwMCByZXR1cm5zIGFscmVhZHkgaW1tZWRpYXRlbHkgaWYgdGhlIGRldl9z dGFydCBmYWlscyAocGVyaGFwcyBpdCBzaG91bGQgYmUNCj4gY2hhbmdlZCB0byBiZSBjb25zaXN0 ZW50PykgYW5kIGl4Z2I0MCBkb2VzIHdlaXJkIHRoaW5ncyB0aGF0IEknbSBub3Qgc3VyZSBhYm91 dCwNCj4gYnV0IGNvdWxkbid0IHNwb3QgYSBsb29wIGluIHRoZXJlIDotKQ0KPiANCj4gQWxzbyBJ J3ZlIHVzZWQgaW50IGluc3RlYWQgb2YgYm9vbCBiZWNhdXNlDQo+IGRyaXZlcnMvbmV0L2UxMDAw L2Jhc2UvZTEwMDBfb3NkZXAuaCByZWRlZmluZXMgYm9vbCBhbmQgdHJ1ZS9mYWxzZSwgc28NCj4g Y29tcGlsYXRpb24gZmFpbHMgd2hlbiBpbmNsdWRpbmcgc3RkYm9vbC5oIGFuZCB1c2luZyBib29s IGluIHJ0ZV9ldGhkZXYuaA0KPiANCj4gLS0NCj4gS2luZCByZWdhcmRzLA0KPiBMdWNhIEJvY2Nh c3NpDQpHbGFkIHRvIGtub3cgaXQncyB3b3JraW5nIG5vdy4gIFRoYW5rcyBmb3IgeW91ciBwYXRj aC4gIFN1cmVseSBJJ2xsIHRyeSB0byBpbmNsdWRlIGl0IGluIHRoZSBuZXh0IHZlcnNpb24gOikN Cg0K