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 B4DBDA32A1 for ; Thu, 24 Oct 2019 10:30:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6AB991E886; Thu, 24 Oct 2019 10:29:55 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 512AB1E569 for ; Thu, 24 Oct 2019 10:29:09 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Oct 2019 01:29:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,224,1569308400"; d="scan'208";a="192115242" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga008.jf.intel.com with ESMTP; 24 Oct 2019 01:29:07 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 24 Oct 2019 01:29:07 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 24 Oct 2019 01:29:06 -0700 Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 24 Oct 2019 01:29:06 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.165]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.96]) with mapi id 14.03.0439.000; Thu, 24 Oct 2019 16:29:05 +0800 From: "Liu, Yong" To: Maxime Coquelin , "Bie, Tiwei" , "Wang, Zhihong" , "stephen@networkplumber.org" , "gavin.hu@arm.com" CC: "dev@dpdk.org" Thread-Topic: [PATCH v8 00/13] vhost packed ring performance optimization Thread-Index: AQHViBvAbHihUQZSGU2jcX75qnfzeado2BWAgACMsPD//43fAIAAhk+w Date: Thu, 24 Oct 2019 08:29:04 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E633DA8D0@SHSMSX103.ccr.corp.intel.com> References: <20191021154016.16274-1-yong.liu@intel.com> <20191021220813.55236-1-yong.liu@intel.com> <86228AFD5BCD8E4EBFD2B90117B5E81E633DA664@SHSMSX103.ccr.corp.intel.com> <7007d6d7-ea4e-49df-57d6-b19507369d96@redhat.com> In-Reply-To: <7007d6d7-ea4e-49df-57d6-b19507369d96@redhat.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDQxNjdlZGQtYzQzOS00ZDY5LWIxZmEtMzliZjZmOWI0NTI5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUFZ2cVFoeHFkS1hkaEx1ZzZmTUZxZ2IrbnlCMk1sUktFU3d4TkxwZ282dnFEdmg1SUQ0U3RKWVVJa0NQUiszWSJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action 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 v8 00/13] vhost packed ring performance optimization 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" VGhhbmtzLCBNYXhpbWUuIEp1c3Qgc2VudCBvdXQgdjkuIA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IE1heGltZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxp bkByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNCwgMjAxOSA0OjI1IFBN DQo+IFRvOiBMaXUsIFlvbmcgPHlvbmcubGl1QGludGVsLmNvbT47IEJpZSwgVGl3ZWkgPHRpd2Vp LmJpZUBpbnRlbC5jb20+OyBXYW5nLA0KPiBaaGlob25nIDx6aGlob25nLndhbmdAaW50ZWwuY29t Pjsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7DQo+IGdhdmluLmh1QGFybS5jb20NCj4gQ2M6 IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY4IDAwLzEzXSB2aG9zdCBwYWNr ZWQgcmluZyBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24NCj4gDQo+IA0KPiANCj4gT24gMTAvMjQv MTkgOToxOCBBTSwgTGl1LCBZb25nIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1l LmNvcXVlbGluQHJlZGhhdC5jb21dDQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI0LCAy MDE5IDI6NTAgUE0NCj4gPj4gVG86IExpdSwgWW9uZyA8eW9uZy5saXVAaW50ZWwuY29tPjsgQmll LCBUaXdlaSA8dGl3ZWkuYmllQGludGVsLmNvbT47DQo+IFdhbmcsDQo+ID4+IFpoaWhvbmcgPHpo aWhvbmcud2FuZ0BpbnRlbC5jb20+OyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsNCj4gPj4g Z2F2aW4uaHVAYXJtLmNvbQ0KPiA+PiBDYzogZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggdjggMDAvMTNdIHZob3N0IHBhY2tlZCByaW5nIHBlcmZvcm1hbmNlIG9wdGltaXph dGlvbg0KPiA+Pg0KPiA+PiBJIGdldCBzb21lIGNoZWNrcGF0Y2ggd2FybmluZ3MsIGFuZCBidWls ZCBmYWlscyB3aXRoIGNsYW5nLg0KPiA+PiBDb3VsZCB5b3UgcGxlYXNlIGZpeCB0aGVzZSBpc3N1 ZXMgYW5kIHNlbmQgdjk/DQo+ID4+DQo+ID4NCj4gPg0KPiA+IEhpIE1heGltZSwNCj4gPiBDbGFu ZyBidWlsZCBmYWlscyB3aWxsIGJlIGZpeGVkIGluIHY5LiBGb3IgY2hlY2twYXRjaCB3YXJuaW5n LCBpdCB3YXMgZHVlDQo+IHRvIHByYWdtYSBzdHJpbmcgaW5zaWRlLg0KPiA+IFByZXZpb3VzIHZl cnNpb24gY2FuIGF2b2lkIHN1Y2ggd2FybmluZywgd2hpbGUgZm9ybWF0IGlzIGEgbGl0dGxlIG1l c3N5DQo+IGFzIGJlbG93Lg0KPiA+IEkgcHJlZmVyIHRvIGtlZXAgY29kZSBjbGVhbiBhbmQgbW9y ZSByZWFkYWJsZS4gSG93IGFib3V0IHlvdXIgaWRlYT8NCj4gPg0KPiA+ICsjaWZkZWYgVU5ST0xM X1BSQUdNQV9QQVJBTQ0KPiA+ICsjZGVmaW5lIFZIT1NUX1VOUk9MTF9QUkFHTUEocGFyYW0pIF9Q cmFnbWEocGFyYW0pDQo+ID4gKyNlbHNlDQo+ID4gKyNkZWZpbmUgVkhPU1RfVU5ST0xMX1BSQUdN QShwYXJhbSkgZG8ge30gd2hpbGUgKDApOw0KPiA+ICsjZW5kaWYNCj4gPg0KPiA+ICsgICAgICAg VkhPU1RfVU5ST0xMX1BSQUdNQShVTlJPTExfUFJBR01BX1BBUkFNKQ0KPiA+ICsgICAgICAgZm9y IChpID0gMDsgaSA8IFBBQ0tFRF9CQVRDSF9TSVpFOyBpKyspDQo+IA0KPiBUaGF0J3MgbGVzcyBj bGVhbiBpbmRlZWQuIEkgYWdyZWUgdG8gd2FpdmUgdGhlIGNoZWNrcGF0Y2ggZXJyb3JzLg0KPiBq dXN0IGZpeCB0aGUgQ2xhbmcgYnVpbGQgZm9yIHBhdGNoIDggYW5kIHdlJ3JlIGdvb2QuDQo+IA0K PiBUaGFua3MsDQo+IE1heGltZQ0KPiANCj4gPiBSZWdhcmRzLA0KPiA+IE1hcnZpbg0KPiA+DQo+ ID4+IFRoYW5rcywNCj4gPj4gTWF4aW1lDQo+ID4+DQo+ID4+ICMjIyBbUEFUQ0hdIHZob3N0OiB0 cnkgdG8gdW5yb2xsIGZvciBlYWNoIGxvb3ANCj4gPj4NCj4gPj4gV0FSTklORzpDQU1FTENBU0U6 IEF2b2lkIENhbWVsQ2FzZTogPF9QcmFnbWE+DQo+ID4+ICM3ODogRklMRTogbGliL2xpYnJ0ZV92 aG9zdC92aG9zdC5oOjQ3Og0KPiA+PiArI2RlZmluZSB2aG9zdF9mb3JfZWFjaF90cnlfdW5yb2xs KGl0ZXIsIHZhbCwgc2l6ZSkgX1ByYWdtYSgiR0NDIHVucm9sbA0KPiA+PiA0IikgXA0KPiA+Pg0K PiA+PiBFUlJPUjpDT01QTEVYX01BQ1JPOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91 bGQgYmUgZW5jbG9zZWQgaW4NCj4gPj4gcGFyZW50aGVzaXMNCj4gPj4gIzc4OiBGSUxFOiBsaWIv bGlicnRlX3Zob3N0L3Zob3N0Lmg6NDc6DQo+ID4+ICsjZGVmaW5lIHZob3N0X2Zvcl9lYWNoX3Ry eV91bnJvbGwoaXRlciwgdmFsLCBzaXplKSBfUHJhZ21hKCJHQ0MgdW5yb2xsDQo+ID4+IDQiKSBc DQo+ID4+ICsJZm9yIChpdGVyID0gdmFsOyBpdGVyIDwgc2l6ZTsgaXRlcisrKQ0KPiA+Pg0KPiA+ PiBFUlJPUjpDT01QTEVYX01BQ1JPOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQg YmUgZW5jbG9zZWQgaW4NCj4gPj4gcGFyZW50aGVzaXMNCj4gPj4gIzgzOiBGSUxFOiBsaWIvbGli cnRlX3Zob3N0L3Zob3N0Lmg6NTI6DQo+ID4+ICsjZGVmaW5lIHZob3N0X2Zvcl9lYWNoX3RyeV91 bnJvbGwoaXRlciwgdmFsLCBzaXplKSBfUHJhZ21hKCJ1bnJvbGwgNCIpDQo+IFwNCj4gPj4gKwlm b3IgKGl0ZXIgPSB2YWw7IGl0ZXIgPCBzaXplOyBpdGVyKyspDQo+ID4+DQo+ID4+IEVSUk9SOkNP TVBMRVhfTUFDUk86IE1hY3JvcyB3aXRoIGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3Nl ZCBpbg0KPiA+PiBwYXJlbnRoZXNpcw0KPiA+PiAjODg6IEZJTEU6IGxpYi9saWJydGVfdmhvc3Qv dmhvc3QuaDo1NzoNCj4gPj4gKyNkZWZpbmUgdmhvc3RfZm9yX2VhY2hfdHJ5X3Vucm9sbChpdGVy LCB2YWwsIHNpemUpIF9QcmFnbWEoInVucm9sbCAoNCkiKQ0KPiBcDQo+ID4+ICsJZm9yIChpdGVy ID0gdmFsOyBpdGVyIDwgc2l6ZTsgaXRlcisrKQ0KPiA+Pg0KPiA+PiB0b3RhbDogMyBlcnJvcnMs IDEgd2FybmluZ3MsIDY3IGxpbmVzIGNoZWNrZWQNCj4gPj4NCj4gPj4gMC8xIHZhbGlkIHBhdGNo L3RtcC9kcGRrX2J1aWxkL2xpYi9saWJydGVfdmhvc3QvdmlydGlvX25ldC5jOjIwNjU6MToNCj4g Pj4gZXJyb3I6IHVudXNlZCBmdW5jdGlvbiAnZnJlZV96bWJ1ZicgWy1XZXJyb3IsLVd1bnVzZWQt ZnVuY3Rpb25dDQo+ID4+IGZyZWVfem1idWYoc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEpDQo+ ID4+IF4NCj4gPj4gMSBlcnJvciBnZW5lcmF0ZWQuDQo+ID4+IG1ha2VbNV06ICoqKiBbdmlydGlv X25ldC5vXSBFcnJvciAxDQo+ID4+IG1ha2VbNF06ICoqKiBbbGlicnRlX3Zob3N0XSBFcnJvciAy DQo+ID4+IG1ha2VbNF06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uDQo+ID4+ IG1ha2VbM106ICoqKiBbbGliXSBFcnJvciAyDQo+ID4+IG1ha2VbMl06ICoqKiBbYWxsXSBFcnJv ciAyDQo+ID4+IG1ha2VbMV06ICoqKiBbcHJlX2luc3RhbGxdIEVycm9yIDINCj4gPj4gbWFrZTog KioqIFtpbnN0YWxsXSBFcnJvciAyDQo+ID4+DQo+ID4+DQo+ID4+IE9uIDEwLzIyLzE5IDEyOjA4 IEFNLCBNYXJ2aW4gTGl1IHdyb3RlOg0KPiA+Pj4gUGFja2VkIHJpbmcgaGFzIG1vcmUgY29tcGFj dCByaW5nIGZvcm1hdCBhbmQgdGh1cyBjYW4gc2lnbmlmaWNhbnRseQ0KPiA+Pj4gcmVkdWNlIHRo ZSBudW1iZXIgb2YgY2FjaGUgbWlzcy4gSXQgY2FuIGxlYWQgdG8gYmV0dGVyIHBlcmZvcm1hbmNl Lg0KPiA+Pj4gVGhpcyBoYXMgYmVlbiBhcHByb3ZlZCBpbiB2aXJ0aW8gdXNlciBkcml2ZXIsIG9u IG5vcm1hbCBFNSBYZW9uIGNwdQ0KPiA+Pj4gc2luZ2xlIGNvcmUgcGVyZm9ybWFuY2UgY2FuIHJh aXNlIDEyJS4NCj4gPj4+DQo+ID4+PiBodHRwOi8vbWFpbHMuZHBkay5vcmcvYXJjaGl2ZXMvZGV2 LzIwMTgtQXByaWwvMDk1NDcwLmh0bWwNCj4gPj4+DQo+ID4+PiBIb3dldmVyIHZob3N0IHBlcmZv cm1hbmNlIHdpdGggcGFja2VkIHJpbmcgcGVyZm9ybWFuY2Ugd2FzIGRlY3JlYXNlZC4NCj4gPj4+ IFRocm91Z2ggYW5hbHlzaXMsIG1vc3RseSBleHRyYSBjb3N0IHdhcyBmcm9tIHRoZSBjYWxjdWxh dGluZyBvZiBlYWNoDQo+ID4+PiBkZXNjcmlwdG9yIGZsYWcgd2hpY2ggZGVwZW5kZWQgb24gcmlu ZyB3cmFwIGNvdW50ZXIuIE1vcmVvdmVyLCBib3RoDQo+ID4+PiBmcm9udGVuZCBhbmQgYmFja2Vu ZCBuZWVkIHRvIHdyaXRlIHNhbWUgZGVzY3JpcHRvcnMgd2hpY2ggd2lsbCBjYXVzZQ0KPiA+Pj4g Y2FjaGUgY29udGVudGlvbi4gRXNwZWNpYWxseSB3aGVuIGRvaW5nIHZob3N0IGVucXVldWUgZnVu Y3Rpb24sIHZpcnRpbw0KPiA+Pj4gcmVmaWxsIHBhY2tlZCByaW5nIGZ1bmN0aW9uIG1heSB3cml0 ZSBzYW1lIGNhY2hlIGxpbmUgd2hlbiB2aG9zdCBkb2luZw0KPiA+Pj4gZW5xdWV1ZSBmdW5jdGlv bi4gVGhpcyBraW5kIG9mIGV4dHJhIGNhY2hlIGNvc3Qgd2lsbCByZWR1Y2UgdGhlIGJlbmVmaXQN Cj4gPj4+IG9mIHJlZHVjaW5nIGNhY2hlIG1pc3Nlcy4NCj4gPj4+DQo+ID4+PiBGb3Igb3B0aW1p emluZyB2aG9zdCBwYWNrZWQgcmluZyBwZXJmb3JtYW5jZSwgdmhvc3QgZW5xdWV1ZSBhbmQgZGVx dWV1ZQ0KPiA+Pj4gZnVuY3Rpb24gd2lsbCBiZSBzcGxpdHRlZCBpbnRvIGZhc3QgYW5kIG5vcm1h bCBwYXRoLg0KPiA+Pj4NCj4gPj4+IFNldmVyYWwgbWV0aG9kcyB3aWxsIGJlIHRha2VuIGluIGZh c3QgcGF0aDoNCj4gPj4+ICAgSGFuZGxlIGRlc2NyaXB0b3JzIGluIG9uZSBjYWNoZSBsaW5lIGJ5 IGJhdGNoLg0KPiA+Pj4gICBTcGxpdCBsb29wIGZ1bmN0aW9uIGludG8gbW9yZSBwaWVjZXMgYW5k IHVucm9sbCB0aGVtLg0KPiA+Pj4gICBQcmVyZXF1aXNpdGUgY2hlY2sgdGhhdCB3aGV0aGVyIEkv TyBzcGFjZSBjYW4gY29weSBkaXJlY3RseSBpbnRvIG1idWYNCj4gPj4+ICAgICBzcGFjZSBhbmQg dmljZSB2ZXJzYS4NCj4gPj4+ICAgUHJlcmVxdWlzaXRlIGNoZWNrIHRoYXQgd2hldGhlciBkZXNj cmlwdG9yIG1hcHBpbmcgaXMgc3VjY2Vzc2Z1bC4NCj4gPj4+ICAgRGlzdGluZ3Vpc2ggdmhvc3Qg dXNlZCByaW5nIHVwZGF0ZSBmdW5jdGlvbiBieSBlbnF1ZXVlIGFuZCBkZXF1ZXVlDQo+ID4+PiAg ICAgZnVuY3Rpb24uDQo+ID4+PiAgIEJ1ZmZlciBkZXF1ZXVlIHVzZWQgZGVzY3JpcHRvcnMgYXMg bWFueSBhcyBwb3NzaWJsZS4NCj4gPj4+ICAgVXBkYXRlIGVucXVldWUgdXNlZCBkZXNjcmlwdG9y cyBieSBjYWNoZSBsaW5lLg0KPiA+Pj4NCj4gPj4+IEFmdGVyIGFsbCB0aGVzZSBtZXRob2RzIGRv bmUsIHNpbmdsZSBjb3JlIHZob3N0IFB2UCBwZXJmb3JtYW5jZSB3aXRoDQo+IDY0Qg0KPiA+Pj4g cGFja2V0IG9uIFhlb24gODE4MCBjYW4gYm9vc3QgMzUlLg0KPiA+Pj4NCj4gPj4+IHY4Og0KPiA+ Pj4gLSBBbGxvY2F0ZSBtYnVmIGJ5IHZpcnRpb19kZXZfcGt0bWJ1Zl9hbGxvYw0KPiA+Pj4NCj4g Pj4+IHY3Og0KPiA+Pj4gLSBSZWJhc2UgY29kZQ0KPiA+Pj4gLSBSZW5hbWUgdW5yb2xsIG1hY3Jv IGFuZCBkZWZpbml0aW9ucw0KPiA+Pj4gLSBDYWxjdWxhdGUgZmxhZ3Mgd2hlbiBkb2luZyBzaW5n bGUgZGVxdWV1ZQ0KPiA+Pj4NCj4gPj4+IHY2Og0KPiA+Pj4gLSBGaXggZGVxdWV1ZSB6Y29weSBy ZXN1bHQgY2hlY2sNCj4gPj4+DQo+ID4+PiB2NToNCj4gPj4+IC0gUmVtb3ZlIGRpc2FibGUgc3cg cHJlZmV0Y2ggYXMgcGVyZm9ybWFuY2UgaW1wYWN0IGlzIHNtYWxsDQo+ID4+PiAtIENoYW5nZSB1 bnJvbGwgcHJhZ21hIG1hY3JvIGZvcm1hdA0KPiA+Pj4gLSBSZW5hbWUgc2hhZG93IGNvdW50ZXIg ZWxlbWVudHMgbmFtZXMNCj4gPj4+IC0gQ2xlYW4gZGVxdWV1ZSB1cGRhdGUgY2hlY2sgY29uZGl0 aW9uDQo+ID4+PiAtIEFkZCBpbmxpbmUgZnVuY3Rpb25zIHJlcGxhY2Ugb2YgZHVwbGljYXRlZCBj b2RlDQo+ID4+PiAtIFVuaWZ5IGNvZGUgc3R5bGUNCj4gPj4+DQo+ID4+PiB2NDoNCj4gPj4+IC0g U3VwcG9ydCBtZXNvbiBidWlsZA0KPiA+Pj4gLSBSZW1vdmUgbWVtb3J5IHJlZ2lvbiBjYWNoZSBm b3Igbm8gY2xlYXIgcGVyZm9ybWFuY2UgZ2FpbiBhbmQgQUJJDQo+IGJyZWFrDQo+ID4+PiAtIE5v dCBhc3N1bWUgcmluZyBzaXplIGlzIHBvd2VyIG9mIHR3bw0KPiA+Pj4NCj4gPj4+IHYzOg0KPiA+ Pj4gLSBDaGVjayBhdmFpbGFibGUgaW5kZXggb3ZlcmZsb3cNCj4gPj4+IC0gUmVtb3ZlIGRlcXVl dWUgcmVtYWluZWQgZGVzY3MgbnVtYmVyIGNoZWNrDQo+ID4+PiAtIFJlbW92ZSBjaGFuZ2VzIGlu IHNwbGl0IHJpbmcgZGF0YXBhdGgNCj4gPj4+IC0gQ2FsbCBtZW1vcnkgd3JpdGUgYmFycmllcnMg b25jZSB3aGVuIHVwZGF0aW5nIHVzZWQgZmxhZ3MNCj4gPj4+IC0gUmVuYW1lIHNvbWUgZnVuY3Rp b25zIGFuZCBtYWNyb3MNCj4gPj4+IC0gQ29kZSBzdHlsZSBvcHRpbWl6YXRpb24NCj4gPj4+DQo+ ID4+PiB2MjoNCj4gPj4+IC0gVXRpbGl6ZSBjb21waWxlcidzIHByYWdtYSB0byB1bnJvbGwgbG9v cCwgZGlzdGluZ3Vpc2ggY2xhbmcvaWNjL2djYw0KPiA+Pj4gLSBCdWZmZXJlZCBkZXF1ZXVlIHVz ZWQgZGVzYyBudW1iZXIgY2hhbmdlZCB0byAoUklOR19TWiAtIFBLVF9CVVJTVCkNCj4gPj4+IC0g T3B0aW1pemUgZGVxdWV1ZSB1c2VkIHJpbmcgdXBkYXRlIHdoZW4gaW5fb3JkZXIgbmVnb3RpYXRl ZA0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBNYXJ2aW4gTGl1ICgxMyk6DQo+ID4+PiAgIHZob3N0OiBh ZGQgcGFja2VkIHJpbmcgaW5kZXhlcyBpbmNyZWFzaW5nIGZ1bmN0aW9uDQo+ID4+PiAgIHZob3N0 OiBhZGQgcGFja2VkIHJpbmcgc2luZ2xlIGVucXVldWUNCj4gPj4+ICAgdmhvc3Q6IHRyeSB0byB1 bnJvbGwgZm9yIGVhY2ggbG9vcA0KPiA+Pj4gICB2aG9zdDogYWRkIHBhY2tlZCByaW5nIGJhdGNo IGVucXVldWUNCj4gPj4+ICAgdmhvc3Q6IGFkZCBwYWNrZWQgcmluZyBzaW5nbGUgZGVxdWV1ZQ0K PiA+Pj4gICB2aG9zdDogYWRkIHBhY2tlZCByaW5nIGJhdGNoIGRlcXVldWUNCj4gPj4+ICAgdmhv c3Q6IGZsdXNoIGVucXVldWUgdXBkYXRlcyBieSBjYWNoZWxpbmUNCj4gPj4+ICAgdmhvc3Q6IGZs dXNoIGJhdGNoZWQgZW5xdWV1ZSBkZXNjcyBkaXJlY3RseQ0KPiA+Pj4gICB2aG9zdDogYnVmZmVy IHBhY2tlZCByaW5nIGRlcXVldWUgdXBkYXRlcw0KPiA+Pj4gICB2aG9zdDogb3B0aW1pemUgcGFj a2VkIHJpbmcgZW5xdWV1ZQ0KPiA+Pj4gICB2aG9zdDogYWRkIHBhY2tlZCByaW5nIHpjb3B5IGJh dGNoIGFuZCBzaW5nbGUgZGVxdWV1ZQ0KPiA+Pj4gICB2aG9zdDogb3B0aW1pemUgcGFja2VkIHJp bmcgZGVxdWV1ZQ0KPiA+Pj4gICB2aG9zdDogb3B0aW1pemUgcGFja2VkIHJpbmcgZGVxdWV1ZSB3 aGVuIGluLW9yZGVyDQo+ID4+Pg0KPiA+Pj4gIGxpYi9saWJydGVfdmhvc3QvTWFrZWZpbGUgICAg IHwgIDE4ICsNCj4gPj4+ICBsaWIvbGlicnRlX3Zob3N0L21lc29uLmJ1aWxkICB8ICAgNyArDQo+ ID4+PiAgbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oICAgICAgfCAgNTcgKysNCj4gPj4+ICBsaWIv bGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYyB8IDk0OCArKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tDQo+ID4+PiAgNCBmaWxlcyBjaGFuZ2VkLCA4MzcgaW5zZXJ0aW9ucygrKSwgMTkz IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPg0KDQo=