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 41BA21B17F; Fri, 5 Oct 2018 15:45:00 +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; 05 Oct 2018 06:45:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,344,1534834800"; d="scan'208";a="94910679" Received: from irsmsx108.ger.corp.intel.com ([163.33.3.3]) by fmsmga004.fm.intel.com with ESMTP; 05 Oct 2018 06:44:43 -0700 Received: from irsmsx106.ger.corp.intel.com ([169.254.8.45]) by IRSMSX108.ger.corp.intel.com ([169.254.11.187]) with mapi id 14.03.0319.002; Fri, 5 Oct 2018 14:44:42 +0100 From: "Ananyev, Konstantin" To: Ola Liljedahl , "Gavin Hu (Arm Technology China)" , Jerin Jacob CC: "dev@dpdk.org" , Honnappa Nagarahalli , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUXEUzcUjYt7AXu0OsxPH+FH4ynqUQTyGggAAhEACAAAXfgIAAMcjg Date: Fri, 5 Oct 2018 13:44:41 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> References: <20180807031943.5331-1-gavin.hu@arm.com> <1537172244-64874-1-git-send-email-gavin.hu@arm.com> <20180929104857.GA30457@jerin> <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> In-Reply-To: <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzExNGZmODUtYjc0Zi00M2M3LWEzYjAtOTA1ZDY2YTExMmRiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZUUzYmViMjZoN0pVeE1sWDNlVE1cL3NFXC9DZXhKWEJ6RHE5SGp5aWlHMnREb1lqcUc0aWw2NnRreHVXN29HUkcyIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 1/3] ring: read tail using atomic load 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: Fri, 05 Oct 2018 13:45:02 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xhIExpbGplZGFobCBb bWFpbHRvOk9sYS5MaWxqZWRhaGxAYXJtLmNvbV0NCj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDUs IDIwMTggMTI6MzcgUE0NCj4gVG86IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50aW4uYW5h bnlldkBpbnRlbC5jb20+OyBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxHYXZpbi5I dUBhcm0uY29tPjsgSmVyaW4gSmFjb2INCj4gPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNv bT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgSG9ubmFwcGEgTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5h Z2FyYWhhbGxpQGFybS5jb20+OyBTdGV2ZSBDYXBwZXIgPFN0ZXZlLkNhcHBlckBhcm0uY29tPjsg bmQNCj4gPG5kQGFybS5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRD SCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0KPiANCj4gaHR0cHM6 Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2xhbmd1YWdlL21lbW9yeV9tb2RlbA0KPiA8cXVv dGU+DQo+IFdoZW4gYW4gZXZhbHVhdGlvbiBvZiBhbiBleHByZXNzaW9uIHdyaXRlcyB0byBhIG1l bW9yeSBsb2NhdGlvbiBhbmQgYW5vdGhlciBldmFsdWF0aW9uIHJlYWRzIG9yIG1vZGlmaWVzIHRo ZSBzYW1lIG1lbW9yeSBsb2NhdGlvbiwgdGhlDQo+IGV4cHJlc3Npb25zIGFyZSBzYWlkIHRvIGNv bmZsaWN0LiBBIHByb2dyYW0gdGhhdCBoYXMgdHdvIGNvbmZsaWN0aW5nIGV2YWx1YXRpb25zIGhh cyBhIGRhdGEgcmFjZSB1bmxlc3MNCj4gDQo+ICogYm90aCBldmFsdWF0aW9ucyBleGVjdXRlIG9u IHRoZSBzYW1lIHRocmVhZCBvciBpbiB0aGUgc2FtZSBzaWduYWwgaGFuZGxlciwgb3INCj4gKiBi b3RoIGNvbmZsaWN0aW5nIGV2YWx1YXRpb25zIGFyZSBhdG9taWMgb3BlcmF0aW9ucyAoc2VlIHN0 ZDo6YXRvbWljKSwgb3INCj4gKiBvbmUgb2YgdGhlIGNvbmZsaWN0aW5nIGV2YWx1YXRpb25zIGhh cHBlbnMtYmVmb3JlIGFub3RoZXIgKHNlZSBzdGQ6Om1lbW9yeV9vcmRlcikNCj4gSWYgYSBkYXRh IHJhY2Ugb2NjdXJzLCB0aGUgYmVoYXZpb3Igb2YgdGhlIHByb2dyYW0gaXMgdW5kZWZpbmVkLg0K PiA8L3F1b3RlPg0KPiANCj4gQzExIGFuZCBDKysxMSBoYXZlIHRoZSBzYW1lIG1lbW9yeSBtb2Rl bCAob3RoZXJ3aXNlIGludGVyb3BlcmFiaWxpdHkgd291bGQgYmUgZGlmZmljdWx0KS4NCj4gDQo+ IE9yIGFzIEplZmYgUHJlc2hpbmcgZXhwbGFpbnMgaXQ6DQo+ICJBbnkgdGltZSB0d28gdGhyZWFk cyBvcGVyYXRlIG9uIGEgc2hhcmVkIHZhcmlhYmxlIGNvbmN1cnJlbnRseSwgYW5kIG9uZSBvZiB0 aG9zZSBvcGVyYXRpb25zIHBlcmZvcm1zIGEgd3JpdGUsIGJvdGggdGhyZWFkcyBtdXN0IHVzZQ0K PiBhdG9taWMgb3BlcmF0aW9ucy4iDQo+IGh0dHBzOi8vcHJlc2hpbmcuY29tLzIwMTMwNjE4L2F0 b21pYy12cy1ub24tYXRvbWljLW9wZXJhdGlvbnMvDQo+IA0KPiBTbyBpZiBodC0+dGFpbCBpcyB3 cml0dGVuIHVzaW5nIGUuZy4gX19hdG9taWNfc3RvcmVfbigmaHQtPnRhaWwsIHZhbCwgbW8pLCB3 ZSBuZWVkIHRvIGFsc28gcmVhZCBpdCB1c2luZyBlLmcuIF9fYXRvbWljX2xvYWRfbigpLg0KPiAN Cj4gLS0gT2xhDQo+IA0KPiANCj4g77u/T24gMDUvMTAvMjAxOCwgMTM6MTUsICJPbGEgTGlsamVk YWhsIiA8T2xhLkxpbGplZGFobEBhcm0uY29tPiB3cm90ZToNCj4gDQo+IA0KPiANCj4gICAgIE9u IDA1LzEwLzIwMTgsIDEwOjIyLCAiQW5hbnlldiwgS29uc3RhbnRpbiIgPGtvbnN0YW50aW4uYW5h bnlldkBpbnRlbC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IA0KPiAgICAgICAgID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gICAgICAgICA+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3Vu Y2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5h KQ0KPiAgICAgICAgID4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDUsIDIwMTggMTo0NyBBTQ0KPiAg ICAgICAgID4gVG86IEplcmluIEphY29iIDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+ DQo+ICAgICAgICAgPiBDYzogZGV2QGRwZGsub3JnOyBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9u bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IFN0ZXZlIENhcHBlciA8U3RldmUuQ2FwcGVyQGFy bS5jb20+OyBPbGENCj4gTGlsamVkYWhsDQo+ICAgICAgICAgPiA8T2xhLkxpbGplZGFobEBhcm0u Y29tPjsgbmQgPG5kQGFybS5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4gICAgICAgICA+IFN1Ympl Y3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBh dG9taWMgbG9hZA0KPiAgICAgICAgID4NCj4gICAgICAgICA+IEhpIEplcmluLA0KPiAgICAgICAg ID4NCj4gICAgICAgICA+IFRoYW5rcyBmb3IgeW91ciByZXZpZXcsIGlubGluZSBjb21tZW50cyBm cm9tIG91ciBpbnRlcm5hbCBkaXNjdXNzaW9ucy4NCj4gICAgICAgICA+DQo+ICAgICAgICAgPiBC Ui4gR2F2aW4NCj4gICAgICAgICA+DQo+ICAgICAgICAgPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ICAgICAgICAgPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbi5qYWNvYkBjYXZp dW1uZXR3b3Jrcy5jb20+DQo+ICAgICAgICAgPiA+IFNlbnQ6IFNhdHVyZGF5LCBTZXB0ZW1iZXIg MjksIDIwMTggNjo0OSBQTQ0KPiAgICAgICAgID4gPiBUbzogR2F2aW4gSHUgKEFybSBUZWNobm9s b2d5IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT4NCj4gICAgICAgICA+ID4gQ2M6IGRldkBkcGRr Lm9yZzsgSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4gICAgICAgICA+ID4gPEhvbm5hcHBhLk5hZ2Fy YWhhbGxpQGFybS5jb20+OyBTdGV2ZSBDYXBwZXINCj4gICAgICAgICA+ID4gPFN0ZXZlLkNhcHBl ckBhcm0uY29tPjsgT2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPjsgbmQNCj4g ICAgICAgICA+ID4gPG5kQGFybS5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4gICAgICAgICA+ID4g U3ViamVjdDogUmU6IFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMg bG9hZA0KPiAgICAgICAgID4gPg0KPiAgICAgICAgID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiAgICAgICAgID4gPiA+IERhdGU6IE1vbiwgMTcgU2VwIDIwMTggMTY6MTc6MjIgKzA4 MDANCj4gICAgICAgICA+ID4gPiBGcm9tOiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4NCj4g ICAgICAgICA+ID4gPiBUbzogZGV2QGRwZGsub3JnDQo+ICAgICAgICAgPiA+ID4gQ0M6IGdhdmlu Lmh1QGFybS5jb20sIEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20sDQo+ICAgICAgICAgPiA+ ID4gc3RldmUuY2FwcGVyQGFybS5jb20sICBPbGEuTGlsamVkYWhsQGFybS5jb20sDQo+ICAgICAg ICAgPiA+ID4gamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tLCBuZEBhcm0uY29tLCAgc3Rh YmxlQGRwZGsub3JnDQo+ICAgICAgICAgPiA+ID4gU3ViamVjdDogW1BBVENIIHYzIDEvM10gcmlu ZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQo+ICAgICAgICAgPiA+ID4gWC1NYWlsZXI6 IGdpdC1zZW5kLWVtYWlsIDIuNy40DQo+ICAgICAgICAgPiA+ID4NCj4gICAgICAgICA+ID4gPiBF eHRlcm5hbCBFbWFpbA0KPiAgICAgICAgID4gPiA+DQo+ICAgICAgICAgPiA+ID4gSW4gdXBkYXRl X3RhaWwsIHJlYWQgaHQtPnRhaWwgdXNpbmcgX19hdG9taWNfbG9hZC5BbHRob3VnaCB0aGUNCj4g ICAgICAgICA+ID4gPiBjb21waWxlciBjdXJyZW50bHkgc2VlbXMgdG8gYmUgZG9pbmcgdGhlIHJp Z2h0IHRoaW5nIGV2ZW4gd2l0aG91dA0KPiAgICAgICAgID4gPiA+IF9hdG9taWNfbG9hZCwgd2Ug ZG9uJ3Qgd2FudCB0byBnaXZlIHRoZSBjb21waWxlciBmcmVlZG9tIHRvIG9wdGltaXNlDQo+ICAg ICAgICAgPiA+ID4gd2hhdCBzaG91bGQgYmUgYW4gYXRvbWljIGxvYWQsIGl0IHNob3VsZCBub3Qg YmUgYXJiaXRhcmlseSBtb3ZlZA0KPiAgICAgICAgID4gPiA+IGFyb3VuZC4NCj4gICAgICAgICA+ ID4gPg0KPiAgICAgICAgID4gPiA+IEZpeGVzOiAzOTM2OGViZmM2ICgicmluZzogaW50cm9kdWNl IEMxMSBtZW1vcnkgbW9kZWwgYmFycmllciBvcHRpb24iKQ0KPiAgICAgICAgID4gPiA+IENjOiBz dGFibGVAZHBkay5vcmcNCj4gICAgICAgICA+ID4gPg0KPiAgICAgICAgID4gPiA+IFNpZ25lZC1v ZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBhcm0uY29tPg0KPiAgICAgICAgID4gPiA+IFJldmll d2VkLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNv bT4NCj4gICAgICAgICA+ID4gPiBSZXZpZXdlZC1ieTogU3RldmUgQ2FwcGVyIDxzdGV2ZS5jYXBw ZXJAYXJtLmNvbT4NCj4gICAgICAgICA+ID4gPiBSZXZpZXdlZC1ieTogT2xhIExpbGplZGFobCA8 T2xhLkxpbGplZGFobEBhcm0uY29tPg0KPiAgICAgICAgID4gPiA+IC0tLQ0KPiAgICAgICAgID4g PiA+ICBsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfYzExX21lbS5oIHwgMyArKy0NCj4gICAgICAg ICA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0K PiAgICAgICAgID4gPiA+DQo+ICAgICAgICAgPiBUaGUgcmVhZCBvZiBodC0+dGFpbCBuZWVkcyB0 byBiZSBhdG9taWMsIGEgbm9uLWF0b21pYyByZWFkIHdvdWxkIG5vdCBiZSBjb3JyZWN0Lg0KPiAN Cj4gICAgICAgICBUaGF0J3MgYSAzMmJpdCB2YWx1ZSBsb2FkLg0KPiAgICAgICAgIEFGQUlLIG9u IGFsbCBDUFVzIHRoYXQgd2Ugc3VwcG9ydCBpdCBpcyBhbiBhdG9taWMgb3BlcmF0aW9uLg0KPiAg ICAgW09sYV0gQnV0IHRoYXQgdGhlIG9yZGluYXJ5IEMgbG9hZCBpcyB0cmFuc2xhdGVkIHRvIGFu IGF0b21pYyBsb2FkIGZvciB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBpcyBpbmNpZGVudGFsLg0K PiANCj4gICAgIElmIHRoZSBkZXNpZ24gcmVxdWlyZXMgYW4gYXRvbWljIGxvYWQgKHdoaWNoIGlz IHRoZSBjYXNlIGhlcmUpLCB3ZSBzaG91bGQgdXNlIGFuIGF0b21pYyBsb2FkIG9uIHRoZSBsYW5n dWFnZSBsZXZlbC4gVGhlbiB3ZSBjYW4gYmUgc3VyZSBpdA0KPiB3aWxsIGFsd2F5cyBiZSB0cmFu c2xhdGVkIHRvIGFuIGF0b21pYyBsb2FkIGZvciB0aGUgdGFyZ2V0IGluIHF1ZXN0aW9uIG9yIGNv bXBpbGF0aW9uIHdpbGwgZmFpbC4gV2UgZG9uJ3QgaGF2ZSB0byBkZXBlbmQgb24gYXNzdW1wdGlv bnMuDQoNCldlIGFsbCBrbm93IHRoYXQgMzJiaXQgbG9hZC9zdG9yZSBvbiBjcHUgd2Ugc3VwcG9y dCAtIGFyZSBhdG9taWMuDQpJZiBpdCB3b3VsZG4ndCBiZSB0aGUgY2FzZSAtIERQREsgd291bGQg YmUgYnJva2VuIGluIGRvemVuIHBsYWNlcy4NClNvIHdoYXQgdGhlIHBvaW50IHRvIHByZXRlbmQg dGhhdCAiaXQgbWlnaHQgYmUgbm90IGF0b21pYyIgaWYgd2UgZG8ga25vdyBmb3Igc3VyZSB0aGF0 IGl0IGlzPw0KSSBkbyB1bmRlcnN0YW5kIHRoYXQgeW91IHdhbnQgdG8gdXNlIGF0b21pY19sb2Fk KHJlbGF4ZWQpIGhlcmUgZm9yIGNvbnNpc3RlbmN5LA0KYW5kIHRvIGNvbmZvcm0gd2l0aCBDMTEg bWVtLW1vZGVsIGFuZCBJIGRvbid0IHNlZSBhbnkgaGFybSBpbiB0aGF0Lg0KQnV0IGFyZ3VtZW50 IHRoYXQgd2Ugc2hvdWxkbid0IGFzc3VtZSAzMmJpdCBsb2FkL3N0b3JlIG9wcyBhcyBhdG9taWMg c291bmRzIGEgYml0IGZsYWt5IHRvIG1lLg0KS29uc3RhbnRpbg0KDQoNCj4gDQo+IA0KPiANCj4g ICAgICAgICA+IEJ1dCB0aGVyZSBhcmUgbm8gbWVtb3J5IG9yZGVyaW5nIHJlcXVpcmVtZW50cyAo d2l0aA0KPiAgICAgICAgID4gcmVnYXJkcyB0byBvdGhlciBsb2FkcyBhbmQvb3Igc3RvcmVzIGJ5 IHRoaXMgdGhyZWFkKSBzbyByZWxheGVkIG1lbW9yeSBvcmRlciBpcyBzdWZmaWNpZW50Lg0KPiAg ICAgICAgID4gQW5vdGhlciBhc3BlY3Qgb2YgdXNpbmcgX19hdG9taWNfbG9hZF9uKCkgaXMgdGhh dCB0aGUgY29tcGlsZXIgY2Fubm90ICJvcHRpbWlzZSIgdGhpcyBsb2FkIChlLmcuIGNvbWJpbmUs IGhvaXN0IGV0YyksIGl0IGhhcyB0byBiZSBkb25lDQo+IGFzDQo+ICAgICAgICAgPiBzcGVjaWZp ZWQgaW4gdGhlIHNvdXJjZSBjb2RlIHdoaWNoIGlzIGFsc28gd2hhdCB3ZSBuZWVkIGhlcmUuDQo+ IA0KPiAgICAgICAgIEkgdGhpbmsgSmVyaW4gcG9pbnRzIHRoYXQgcnRlX3BhdXNlKCkgYWN0cyBo ZXJlIGFzIGNvbXBpbGVyIGJhcnJpZXIgdG9vLA0KPiAgICAgICAgIHNvIG5vIG5lZWQgdG8gd29y cnkgdGhhdCBjb21waWxlciB3b3VsZCBvcHRpbWl6ZSBvdXQgdGhlIGxvb3AuDQo+ICAgICBbT2xh XSBTb3JyeSBtaXNzZWQgdGhhdC4gQnV0IHRoZSBiYXJyaWVyIGJlaGF2aW91ciBvZiBydGVfcGF1 c2UoKSBpcyBub3QgcGFydCBvZiBDMTEsIGlzIGl0IGVzc2VudGlhbGx5IGEgaGFuZC1tYWRlIGZl YXR1cmUgdG8gc3VwcG9ydCB0aGUNCj4gbGVnYWN5IG11bHRpdGhyZWFkZWQgbWVtb3J5IG1vZGVs ICh3aGljaCB1c2VzIGV4cGxpY2l0IEhXIGFuZCBjb21waWxlciBiYXJyaWVycykuIEknZCBwcmVm ZXIgY29kZSB1c2luZyB0aGUgQzExIG1lbW9yeSBtb2RlbCBub3QgdG8NCj4gZGVwZW5kIG9uIHN1 Y2ggbGVnYWN5IGZlYXR1cmVzLg0KPiANCj4gDQo+IA0KPiAgICAgICAgIEtvbnN0YW50aW4NCj4g DQo+ICAgICAgICAgPg0KPiAgICAgICAgID4gT25lIHBvaW50IHdvcnRoIG1lbnRpb25pbmcgdGhv dWdoIGlzIHRoYXQgdGhpcyBjaGFuZ2UgaXMgZm9yIHRoZSBydGVfcmluZ19jMTFfbWVtLmggZmls ZSwgbm90IHRoZSBsZWdhY3kgcmluZy4gSXQgbWF5IGJlIHdvcnRoDQo+IHBlcnNpc3RpbmcNCj4g ICAgICAgICA+IHdpdGggZ2V0dGluZyB0aGUgQzExIGNvZGUgcmlnaHQgd2hlbiBwZW9wbGUgYXJl IGxlc3MgZXhjaXRlZCBhYm91dCBzZW5kaW5nIGEgcmVsZWFzZSBvdXQ/DQo+ICAgICAgICAgPg0K PiAgICAgICAgID4gV2UgY2FuIGV4cGxhaW4gdGhhdCBmb3IgQzExIHdlIHdvdWxkIHByZWZlciB0 byBkbyBsb2FkcyBhbmQgc3RvcmVzIGFzIHBlciB0aGUgQzExIG1lbW9yeSBtb2RlbC4gSW4gdGhl IGNhc2Ugb2YgcnRlX3JpbmcsIHRoZSBjb2RlIGlzDQo+ICAgICAgICAgPiBzZXBhcmF0ZWQgY2xl YW5seSBpbnRvIEMxMSBzcGVjaWZpYyBmaWxlcyBhbnl3YXkuDQo+ICAgICAgICAgPg0KPiAgICAg ICAgID4gSSB0aGluayByZWFkaW5nIGh0LT50YWlsIHVzaW5nIF9fYXRvbWljX2xvYWRfbigpIGlz IHRoZSBtb3N0IGFwcHJvcHJpYXRlIHdheS4gV2Ugc2hvdyB0aGF0IGh0LT50YWlsIGlzIHVzZWQg Zm9yIHN5bmNocm9uaXphdGlvbiwgd2UNCj4gICAgICAgICA+IGFja25vd2xlZGdlIHRoYXQgaHQt PnRhaWwgbWF5IGJlIHdyaXR0ZW4gYnkgb3RoZXIgdGhyZWFkcyB3aXRob3V0IGFueSBvdGhlciBr aW5kIG9mIHN5bmNocm9uaXphdGlvbiAoZS5nLiBubyBsb2NrIGludm9sdmVkKSBhbmQgd2UNCj4g cmVxdWlyZQ0KPiAgICAgICAgID4gYW4gYXRvbWljIGxvYWQgKGFueSB3cml0ZSB0byBodC0+dGFp bCBtdXN0IGFsc28gYmUgYXRvbWljKS4NCj4gICAgICAgICA+DQo+ICAgICAgICAgPiBVc2luZyB2 b2xhdGlsZSBhbmQgZXhwbGljaXQgY29tcGlsZXIgKG9yIHByb2Nlc3NvcikgbWVtb3J5IGJhcnJp ZXJzIChmZW5jZXMpIGlzIHRoZSBsZWdhY3kgcHJlLUMxMSB3YXkgb2YgYWNjb21wbGlzaGluZyB0 aGVzZSB0aGluZ3MuDQo+IFRoZXJlJ3MNCj4gICAgICAgICA+IGEgcmVhc29uIHdoeSBDMTEvQysr MTEgbW92ZWQgYXdheSBmcm9tIHRoZSBvbGQgd2F5cy4NCj4gICAgICAgICA+ID4gPg0KPiAgICAg ICAgID4gPiA+ICAgICAgICAgX19hdG9taWNfc3RvcmVfbigmaHQtPnRhaWwsIG5ld192YWwsIF9f QVRPTUlDX1JFTEVBU0UpOw0KPiAgICAgICAgID4gPiA+IC0tDQo+ICAgICAgICAgPiA+ID4gMi43 LjQNCj4gICAgICAgICA+ID4gPg0KPiANCj4gDQo+IA0KDQo=