From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ola Liljedahl Subject: Re: [PATCH v3 1/3] ring: read tail using atomic load Date: Fri, 5 Oct 2018 20:17:44 +0000 Message-ID: <1555626C-F2B8-44EB-98A3-79B1F7002587@arm.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> <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> <20181005170725.GA18671@jerin> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Ananyev, Konstantin" , "Gavin Hu (Arm Technology China)" , "dev@dpdk.org" , Steve Capper , nd , "stable@dpdk.org" To: Honnappa Nagarahalli , Jerin Jacob Return-path: In-Reply-To: Content-Language: en-US Content-ID: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SSBkb3VidCBpdCBpcyBwb3NzaWJsZSB0byBiZW5jaG1hcmsgd2l0aCBzdWNoIGEgcHJlY2lzaW9u IHNvIHRvIHNlZSB0aGUgcG90ZW50aWFsIGRpZmZlcmVuY2Ugb2Ygb25lIEFERCBpbnN0cnVjdGlv bi4NCkp1c3QgY2hhbmdlcyBpbiBmdW5jdGlvbiBhbGlnbm1lbnQgY2FuIGFmZmVjdCBwZXJmb3Jt YW5jZSBieSBwZXJjZW50cy4gQW5kIHRoZSBuYXR1cmFsIHZhcmlhdGlvbiB3aGVuIG5vdCB1c2lu ZyBhIDEwMCUgZGV0ZXJtaW5pc3RpYyBzeXN0ZW0gaXMgZ29pbmcgdG8gYmUgYSBsb3QgbGFyZ2Vy IHRoYW4gb25lIGN5Y2xlIHBlciByaW5nIGJ1ZmZlciBvcGVyYXRpb24uDQoNClNvbWUgb2YgdGhl IG90aGVyIHBhdGNoZXMgYXJlIGFsc28gZm9yIGNvcnJlY3RuZXNzIChlLmcuIGxvYWQtYWNxdWly ZSBvZiB0YWlsKSBzbyB3aGlsZSBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgbWF5IGJlIGludGVy ZXN0aW5nLCB3ZSBjYW4ndCBza2lwIGEgYnVnIGZpeCBqdXN0IGJlY2F1c2UgaXQgcHJvdmVzIHRv IGRlY3JlYXNlIHBlcmZvcm1hbmNlLg0KDQotLSBPbGENCg0K77u/T24gMDUvMTAvMjAxOCwgMjI6 MDYsICJIb25uYXBwYSBOYWdhcmFoYWxsaSIgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+ IHdyb3RlOg0KDQogICAgSGkgSmVyaW4sDQogICAgCVRoYW5rIHlvdSBmb3IgZ2VuZXJhdGluZyB0 aGUgZGlzYXNzZW1ibHksIHRoYXQgaXMgcmVhbGx5IGhlbHBmdWwuIEkgYWdyZWUgd2l0aCB5b3Ug dGhhdCB3ZSBoYXZlIHRoZSBvcHRpb24gb2YgbW92aW5nIHBhcnRzIDIgYW5kIDMgZm9yd2FyZC4g SSB3aWxsIGxldCBHYXZpbiB0YWtlIGEgZGVjaXNpb24uDQogICAgDQogICAgSSBzdWdnZXN0IHRo YXQgd2UgcnVuIGJlbmNobWFya3Mgb24gdGhpcyBwYXRjaCBhbG9uZSBhbmQgaW4gY29tYmluYXRp b24gd2l0aCBvdGhlciBwYXRjaGVzIGluIHRoZSBzZXJpZXMuIFdlIGhhdmUgZmV3IEFybSBtYWNo aW5lcyBhbmQgd2Ugd2lsbCBydW4gb24gYWxsIG9mIHRoZW0gYWxvbmcgd2l0aCB4ODYuIFdlIHRh a2UgYSBkZWNpc2lvbiBiYXNlZCBvbiB0aGF0Lg0KICAgIA0KICAgIFdvdWxkIHRoYXQgYmUgYSB3 YXkgdG8gbW92ZSBmb3J3YXJkPyBJIHRoaW5rIHRoaXMgc2hvdWxkIGFkZHJlc3MgYm90aCB5b3Vy IGFuZCBPbGEncyBjb25jZXJucy4NCiAgICANCiAgICBJIGFtIG9wZW4gZm9yIG90aGVyIHN1Z2dl c3Rpb25zIGFzIHdlbGwuDQogICAgDQogICAgVGhhbmsgeW91LA0KICAgIEhvbm5hcHBhDQogICAg DQogICAgPiANCiAgICA+IFNvIHlvdSBkb24ndCB3YW50IHRvIHdyaXRlIHRoZSBwcm9wZXIgQzEx IGNvZGUgYmVjYXVzZSB0aGUgY29tcGlsZXINCiAgICA+IGdlbmVyYXRlcyBvbmUgZXh0cmEgaW5z dHJ1Y3Rpb24gdGhhdCB3YXk/DQogICAgPiBZb3UgZG9uJ3QgZXZlbiBrbm93IGlmIHRoYXQgb25l IGV4dHJhIGluc3RydWN0aW9uIGhhcyBhbnkgbWVhc3VyYWJsZQ0KICAgID4gaW1wYWN0IG9uIHBl cmZvcm1hbmNlLiBFLmcuIGl0IGNvdWxkIGJlIGlzc3VlZCB0aGUgY3ljbGUgYmVmb3JlIHRvZ2V0 aGVyDQogICAgPiB3aXRoIG90aGVyIGluc3RydWN0aW9ucy4NCiAgICA+IA0KICAgID4gV2UgY2Fu IGNvbXBsYWluIHRvIHRoZSBjb21waWxlciB3cml0ZXJzIHRoYXQgdGhlIGNvZGUgZ2VuZXJhdGlv biBmb3INCiAgICA+IF9fYXRvbWljX2xvYWRfbigsIF9fQVRPTUlDX1JFTEFYRUQpIGlzIG5vdCBv cHRpbWFsIChhdCBsZWFzdCBvbg0KICAgID4gQVJNL0E2NCkuIEkgdGhpbmsgdGhlIHByb2JsZW0g aXMgdGhhdCB0aGUgX19hdG9taWMgYnVpbHRpbnMgb25seSBhY2NlcHQgYQ0KICAgID4gYmFzZSBh ZGRyZXNzIHdpdGhvdXQgYW55IG9mZnNldCBhbmQgdGhpcyBpcyBwb3NzaWJseSBiZWNhdXNlIGUu Zy4gbG9hZC9zdG9yZQ0KICAgID4gZXhjbHVzaXZlIChMRFgvU1RYKSBhbmQgbG9hZC1hY3F1aXJl IChMREFSKSBhbmQgc3RvcmUtcmVsZWFzZSAoU1RMUikgb25seQ0KICAgID4gYWNjZXB0IGEgYmFz ZSByZWdpc3RlciB3aXRoIG5vIG9mZnNldC4gU28gYW55IG9mZnNldCBoYXMgdG8gYmUgYWRkZWQg YmVmb3JlDQogICAgPiB0aGUgYWN0dWFsICJhdG9taWMiIGluc3RydWN0aW9uLCBMRFIgaW4gdGhp cyBjYXNlLg0KICAgID4gDQogICAgPiANCiAgICA+IC0tIE9sYQ0KICAgID4gDQogICAgPiANCiAg ICA+IE9uIDA1LzEwLzIwMTgsIDE5OjA3LCAiSmVyaW4gSmFjb2IiIDxqZXJpbi5qYWNvYkBjYXZp dW1uZXR3b3Jrcy5jb20+DQogICAgPiB3cm90ZToNCiAgICA+IA0KICAgID4gICAgIC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiAgICAgPiBEYXRlOiBGcmksIDUgT2N0IDIwMTggMTU6 MTE6NDQgKzAwMDANCiAgICA+ICAgICA+IEZyb206IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25u YXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KICAgID4gICAgID4gVG86ICJBbmFueWV2LCBLb25z dGFudGluIiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4sIE9sYQ0KICAgID4gTGlsamVk YWhsDQogICAgPiAgICAgPiAgPE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4sICJHYXZpbiBIdSAoQXJt IFRlY2hub2xvZ3kgQ2hpbmEpIg0KICAgID4gICAgID4gIDxHYXZpbi5IdUBhcm0uY29tPiwgSmVy aW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCiAgICA+ICAgICA+IEND OiAiZGV2QGRwZGsub3JnIiA8ZGV2QGRwZGsub3JnPiwgU3RldmUgQ2FwcGVyDQogICAgPiA8U3Rl dmUuQ2FwcGVyQGFybS5jb20+LCBuZA0KICAgID4gICAgID4gIDxuZEBhcm0uY29tPiwgInN0YWJs ZUBkcGRrLm9yZyIgPHN0YWJsZUBkcGRrLm9yZz4NCiAgICA+ICAgICA+IFN1YmplY3Q6IFJFOiBb UEFUQ0ggdjMgMS8zXSByaW5nOiByZWFkIHRhaWwgdXNpbmcgYXRvbWljIGxvYWQNCiAgICA+ICAg ICA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IEhpIEplcmluLA0KICAgID4gICAgID4gPiA+ ICAgICAgICAgPg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiBUaGFua3MgZm9yIHlvdXIgcmV2 aWV3LCBpbmxpbmUgY29tbWVudHMgZnJvbSBvdXIgaW50ZXJuYWwNCiAgICA+ICAgICA+ID4gZGlz Y3Vzc2lvbnMuDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+DQogICAgPiAgICAgPiA+ID4gICAg ICAgICA+IEJSLiBHYXZpbg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPg0KICAgID4gICAgID4g PiA+ICAgICAgICAgPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdv cmtzLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiBTZW50OiBTYXR1cmRheSwgU2Vw dGVtYmVyIDI5LCAyMDE4IDY6NDkgUE0NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiBUbzog R2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT4NCiAgICA+ ICAgICA+ID4gPiAgICAgICAgID4gPiBDYzogZGV2QGRwZGsub3JnOyBIb25uYXBwYSBOYWdhcmFo YWxsaQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBh cm0uY29tPjsgU3RldmUgQ2FwcGVyDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPFN0ZXZl LkNhcHBlckBhcm0uY29tPjsgT2xhIExpbGplZGFobA0KICAgID4gPE9sYS5MaWxqZWRhaGxAYXJt LmNvbT47DQogICAgPiAgICAgPiA+IG5kDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPG5k QGFybS5jb20+OyBzdGFibGVAZHBkay5vcmcNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiBT dWJqZWN0OiBSZTogW1BBVENIIHYzIDEvM10gcmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBs b2FkDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAg ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gRGF0ZTogTW9uLCAxNyBTZXAgMjAxOCAxNjoxNzoyMiArMDgwMA0KICAgID4gICAgID4g PiA+ICAgICAgICAgPiA+ID4gRnJvbTogR2F2aW4gSHUgPGdhdmluLmh1QGFybS5jb20+DQogICAg PiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBUbzogZGV2QGRwZGsub3JnDQogICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiBDQzogZ2F2aW4uaHVAYXJtLmNvbSwgSG9ubmFwcGEuTmFnYXJhaGFs bGlAYXJtLmNvbSwNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IHN0ZXZlLmNhcHBlckBh cm0uY29tLCAgT2xhLkxpbGplZGFobEBhcm0uY29tLA0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tLCBuZEBhcm0uY29tLA0KICAgID4g ICAgID4gPiBzdGFibGVAZHBkay5vcmcNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IFN1 YmplY3Q6IFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0K ICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gWC1NYWlsZXI6IGdpdC1zZW5kLWVtYWlsIDIu Ny40DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPg0KICAgID4gICAgID4gPiA+ICAgICAg ICAgPiA+ID4gRXh0ZXJuYWwgRW1haWwNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQog ICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBJbiB1cGRhdGVfdGFpbCwgcmVhZCBodC0+dGFp bCB1c2luZw0KICAgID4gX19hdG9taWNfbG9hZC5BbHRob3VnaCB0aGUNCiAgICA+ICAgICA+ID4g PiAgICAgICAgID4gPiA+IGNvbXBpbGVyIGN1cnJlbnRseSBzZWVtcyB0byBiZSBkb2luZyB0aGUg cmlnaHQgdGhpbmcgZXZlbg0KICAgID4gd2l0aG91dA0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gX2F0b21pY19sb2FkLCB3ZSBkb24ndCB3YW50IHRvIGdpdmUgdGhlIGNvbXBpbGVyDQog ICAgPiBmcmVlZG9tIHRvDQogICAgPiAgICAgPiA+IG9wdGltaXNlDQogICAgPiAgICAgPiA+ID4g ICAgICAgICA+ID4gPiB3aGF0IHNob3VsZCBiZSBhbiBhdG9taWMgbG9hZCwgaXQgc2hvdWxkIG5v dCBiZSBhcmJpdGFyaWx5DQogICAgPiBtb3ZlZA0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ ID4gYXJvdW5kLg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4g PiAgICAgICAgID4gPiA+IEZpeGVzOiAzOTM2OGViZmM2ICgicmluZzogaW50cm9kdWNlIEMxMSBt ZW1vcnkgbW9kZWwNCiAgICA+IGJhcnJpZXINCiAgICA+ICAgICA+ID4gb3B0aW9uIikNCiAgICA+ ICAgICA+ID4gPiAgICAgICAgID4gPiA+IENjOiBzdGFibGVAZHBkay5vcmcNCiAgICA+ICAgICA+ ID4gPiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAg ICAgID4gPiA+IFJldmlld2VkLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KICAgID4gICAgID4g PiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAgICAg ID4gPiA+IFJldmlld2VkLWJ5OiBTdGV2ZSBDYXBwZXIgPHN0ZXZlLmNhcHBlckBhcm0uY29tPg0K ICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gUmV2aWV3ZWQtYnk6IE9sYSBMaWxqZWRhaGwg PE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IC0t LQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gIGxpYi9saWJydGVfcmluZy9ydGVfcmlu Z19jMTFfbWVtLmggfCAzICsrLQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiAgICA+ICAgICA+ID4g PiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IFRoZSByZWFkIG9mIGh0 LT50YWlsIG5lZWRzIHRvIGJlIGF0b21pYywgYSBub24tYXRvbWljIHJlYWQNCiAgICA+IHdvdWxk IG5vdA0KICAgID4gICAgID4gPiBiZSBjb3JyZWN0Lg0KICAgID4gICAgID4gPiA+DQogICAgPiAg ICAgPiA+ID4gICAgICAgICBUaGF0J3MgYSAzMmJpdCB2YWx1ZSBsb2FkLg0KICAgID4gICAgID4g PiA+ICAgICAgICAgQUZBSUsgb24gYWxsIENQVXMgdGhhdCB3ZSBzdXBwb3J0IGl0IGlzIGFuIGF0 b21pYyBvcGVyYXRpb24uDQogICAgPiAgICAgPiA+ID4gICAgIFtPbGFdIEJ1dCB0aGF0IHRoZSBv cmRpbmFyeSBDIGxvYWQgaXMgdHJhbnNsYXRlZCB0byBhbiBhdG9taWMgbG9hZA0KICAgID4gZm9y IHRoZQ0KICAgID4gICAgID4gPiB0YXJnZXQgYXJjaGl0ZWN0dXJlIGlzIGluY2lkZW50YWwuDQog ICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgSWYgdGhlIGRlc2lnbiByZXF1aXJl cyBhbiBhdG9taWMgbG9hZCAod2hpY2ggaXMgdGhlIGNhc2UgaGVyZSksIHdlDQogICAgPiAgICAg PiA+ID4gc2hvdWxkIHVzZSBhbiBhdG9taWMgbG9hZCBvbiB0aGUgbGFuZ3VhZ2UgbGV2ZWwuIFRo ZW4gd2UgY2FuIGJlDQogICAgPiBzdXJlIGl0IHdpbGwNCiAgICA+ICAgICA+ID4gYWx3YXlzIGJl IHRyYW5zbGF0ZWQgdG8gYW4gYXRvbWljIGxvYWQgZm9yIHRoZSB0YXJnZXQgaW4gcXVlc3Rpb24g b3INCiAgICA+ICAgICA+ID4gY29tcGlsYXRpb24gd2lsbCBmYWlsLiBXZSBkb24ndCBoYXZlIHRv IGRlcGVuZCBvbiBhc3N1bXB0aW9ucy4NCiAgICA+ICAgICA+ID4NCiAgICA+ICAgICA+ID4gV2Ug YWxsIGtub3cgdGhhdCAzMmJpdCBsb2FkL3N0b3JlIG9uIGNwdSB3ZSBzdXBwb3J0IC0gYXJlIGF0 b21pYy4NCiAgICA+ICAgICA+ID4gSWYgaXQgd291bGRuJ3QgYmUgdGhlIGNhc2UgLSBEUERLIHdv dWxkIGJlIGJyb2tlbiBpbiBkb3plbiBwbGFjZXMuDQogICAgPiAgICAgPiA+IFNvIHdoYXQgdGhl IHBvaW50IHRvIHByZXRlbmQgdGhhdCAiaXQgbWlnaHQgYmUgbm90IGF0b21pYyIgaWYgd2UgZG8N CiAgICA+IGtub3cgZm9yDQogICAgPiAgICAgPiA+IHN1cmUgdGhhdCBpdCBpcz8NCiAgICA+ICAg ICA+ID4gSSBkbyB1bmRlcnN0YW5kIHRoYXQgeW91IHdhbnQgdG8gdXNlIGF0b21pY19sb2FkKHJl bGF4ZWQpIGhlcmUgZm9yDQogICAgPiAgICAgPiA+IGNvbnNpc3RlbmN5LCBhbmQgdG8gY29uZm9y bSB3aXRoIEMxMSBtZW0tbW9kZWwgYW5kIEkgZG9uJ3Qgc2VlIGFueQ0KICAgID4gaGFybSBpbg0K ICAgID4gICAgID4gPiB0aGF0Lg0KICAgID4gICAgID4gV2UgY2FuIGNvbnRpbnVlIHRvIGRpc2N1 c3MgdGhlIHRvcGljLCBpdCBpcyBhIGdvb2QgZGlzY3Vzc2lvbi4gQnV0LCBhcyBmYXINCiAgICA+ IHRoaXMgcGF0Y2ggaXMgY29uY2VybmVkLCBjYW4gSSBjb25zaWRlciB0aGlzIGFzIHVzIGhhdmlu ZyBhIGNvbnNlbnN1cz8gVGhlDQogICAgPiBmaWxlIHJ0ZV9yaW5nX2MxMV9tZW0uaCBpcyBzcGVj aWZpY2FsbHkgZm9yIEMxMSBtZW1vcnkgbW9kZWwgYW5kIEkgYWxzbyBkbw0KICAgID4gbm90IHNl ZSBhbnkgaGFybSBpbiBoYXZpbmcgY29kZSB0aGF0IGNvbXBsZXRlbHkgY29uZm9ybXMgdG8gQzEx IG1lbW9yeQ0KICAgID4gbW9kZWwuDQogICAgPiANCiAgICA+ICAgICBIYXZlIHlvdSBndXlzIGNo ZWNrZWQgdGhlIG91dHB1dCBhc3NlbWJseSB3aXRoIGFuZCB3aXRob3V0IGF0b21pYw0KICAgID4g bG9hZD8NCiAgICA+ICAgICBUaGVyZSBpcyBhbiBleHRyYSAiYWRkIiBpbnN0cnVjdGlvbiB3aXRo IGF0IGxlYXN0IHRoZSBjb2RlIEkgaGF2ZSBjaGVja2VkLg0KICAgID4gICAgIEkgdGhpbmssIGNv bXBpbGVyIGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gdW5kZXJzdGFuZCBpdCBpcyBhIGRlYWQgY29k ZSBmb3INCiAgICA+ICAgICBhcm02NC4NCiAgICA+IA0KICAgID4gICAgIOKenCBbfl0gJCBhYXJj aDY0LWxpbnV4LWdudS1nY2MgLXYNCiAgICA+ICAgICBVc2luZyBidWlsdC1pbiBzcGVjcy4NCiAg ICA+ICAgICBDT0xMRUNUX0dDQz1hYXJjaDY0LWxpbnV4LWdudS1nY2MNCiAgICA+ICAgICBDT0xM RUNUX0xUT19XUkFQUEVSPS91c3IvbGliL2djYy9hYXJjaDY0LWxpbnV4LWdudS84LjIuMC9sdG8t DQogICAgPiB3cmFwcGVyDQogICAgPiAgICAgVGFyZ2V0OiBhYXJjaDY0LWxpbnV4LWdudQ0KICAg ID4gICAgIENvbmZpZ3VyZWQgd2l0aDogL2J1aWxkL2FhcmNoNjQtbGludXgtZ251LWdjYy9zcmMv Z2NjLTguMi4wL2NvbmZpZ3VyZQ0KICAgID4gICAgIC0tcHJlZml4PS91c3IgLS1wcm9ncmFtLXBy ZWZpeD1hYXJjaDY0LWxpbnV4LWdudS0NCiAgICA+ICAgICAtLXdpdGgtbG9jYWwtcHJlZml4PS91 c3IvYWFyY2g2NC1saW51eC1nbnUNCiAgICA+ICAgICAtLXdpdGgtc3lzcm9vdD0vdXNyL2FhcmNo NjQtbGludXgtZ251DQogICAgPiAgICAgLS13aXRoLWJ1aWxkLXN5c3Jvb3Q9L3Vzci9hYXJjaDY0 LWxpbnV4LWdudSAtLWxpYmRpcj0vdXNyL2xpYg0KICAgID4gICAgIC0tbGliZXhlY2Rpcj0vdXNy L2xpYiAtLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudQ0KICAgID4gICAgIC0taG9zdD14ODZfNjQt cGMtbGludXgtZ251IC0tYnVpbGQ9eDg2XzY0LXBjLWxpbnV4LWdudSAtLWRpc2FibGUtbmxzDQog ICAgPiAgICAgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJs ZS10aHJlYWRzPXBvc2l4DQogICAgPiAgICAgLS13aXRoLXN5c3RlbS16bGliIC0td2l0aC1pc2wg LS1lbmFibGUtX19jeGFfYXRleGl0DQogICAgPiAgICAgLS1kaXNhYmxlLWxpYnVud2luZC1leGNl cHRpb25zIC0tZW5hYmxlLWNsb2NhbGU9Z251DQogICAgPiAgICAgLS1kaXNhYmxlLWxpYnN0ZGN4 eC1wY2ggLS1kaXNhYmxlLWxpYnNzcCAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdA0KICAgID4g ICAgIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCAtLWVuYWJsZS1sdG8gLS1lbmFibGUtcGx1Z2lu DQogICAgPiAgICAgLS1lbmFibGUtaW5zdGFsbC1saWJpYmVydHkgLS13aXRoLWxpbmtlci1oYXNo LXN0eWxlPWdudQ0KICAgID4gICAgIC0tZW5hYmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiAtLWRp c2FibGUtbXVsdGlsaWIgLS1kaXNhYmxlLXdlcnJvcg0KICAgID4gICAgIC0tZW5hYmxlLWNoZWNr aW5nPXJlbGVhc2UNCiAgICA+ICAgICBUaHJlYWQgbW9kZWw6IHBvc2l4DQogICAgPiAgICAgZ2Nj IHZlcnNpb24gOC4yLjAgKEdDQykNCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgIyBidWlsZCBz ZXR1cA0KICAgID4gICAgIG1ha2UgLWogOCBjb25maWcgVD1hcm02NC1hcm12OGEtbGludXhhcHAt Z2NjICBDUk9TUz1hYXJjaDY0LWxpbnV4LWdudS0NCiAgICA+ICAgICBtYWtlIC1qIDggdGVzdC1i dWlsZCBDUk9TUz1hYXJjaDY0LWxpbnV4LWdudS0NCiAgICA+IA0KICAgID4gICAgICMgZ2VuZXJh dGUgYXNtDQogICAgPiAgICAgYWFyY2g2NC1saW51eC1nbnUtZ2RiIC1iYXRjaCAtZXggJ2ZpbGUg YnVpbGQvYXBwL3Rlc3QgJyAtZXggJ2Rpc2Fzc2VtYmxlIC9ycw0KICAgID4gYnVja2V0X2VucXVl dWVfc2luZ2xlJw0KICAgID4gDQogICAgPiAgICAgSSBoYXZlIHVwbG9hZGVkIGdlbmVyYXRlZCBm aWxlIGZvciB5b3VyIGNvbnZlbmllbmNlDQogICAgPiAgICAgd2l0aF9hdG9taWNfbG9hZC50eHQo aW5jbHVkZXMgcGF0Y2ggMSwyLDMpDQogICAgPiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CiAgICA+ICAgICBodHRwczovL3Bhc3RlYmluLmNvbS9TUTZ3MXlSdQ0KICAgID4gDQogICAgPiAg ICAgd2l0aG91dF9hdG9taWNfbG9hZC50eHQoaW5jbHVkZXMgcGF0Y2ggMiwzKQ0KICAgID4gICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgPiAgICAgaHR0cHM6Ly9wYXN0ZWJpbi5jb20v QnB2bkQwQ0ENCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgd2l0aG91dF9hdG9taWMNCiAgICA+ ICAgICAtLS0tLS0tLS0tLS0tDQogICAgPiAgICAgMjMgICAgICAgICAgICAgIGlmICghc2luZ2xl KQ0KICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4ZDI5MCA8KzI0MD46ICAgODUgMDAgMDAgMzUg ICAgIGNibnogICAgdzUsIDB4NjhkMmEwDQogICAgPiA8YnVja2V0X2VucXVldWVfc2luZ2xlKzI1 Nj4NCiAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGQyOTQgPCsyNDQ+OiAgIDgyIDA0IDQwIGI5 ICAgICBsZHIgICAgIHcyLCBbeDQsICM0XQ0KICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4ZDI5 OCA8KzI0OD46ICAgNWYgMDAgMDEgNmIgICAgIGNtcCAgICAgdzIsIHcxDQogICAgPiAgICAgICAg MHgwMDAwMDAwMDAwNjhkMjljIDwrMjUyPjogICAyMSAwMSAwMCA1NCAgICAgYi5uZSAgICAweDY4 ZDJjMA0KICAgID4gPGJ1Y2tldF9lbnF1ZXVlX3NpbmdsZSsyODg+ICAvLyBiLmFueQ0KICAgID4g DQogICAgPiAgICAgMjQgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHVubGlrZWx5KGh0LT50 YWlsICE9IG9sZF92YWwpKQ0KICAgID4gICAgIDI1ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcnRlX3BhdXNlKCk7DQogICAgPiANCiAgICA+IA0KICAgID4gICAgIHdpdGhfYXRvbWljDQog ICAgPiAgICAgLS0tLS0tLS0tLS0NCiAgICA+ICAgICAyMyAgICAgICAgICAgICAgaWYgKCFzaW5n bGUpDQogICAgPiAgICAgICAgMHgwMDAwMDAwMDAwNjhjZWIwIDwrMjQwPjogICAwMCAxMCAwNCA5 MSAgICAgYWRkICAgICB4MCwgeDAsICMweDEwNA0KICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4 Y2ViNCA8KzI0ND46ICAgODQgMDAgMDAgMzUgICAgIGNibnogICAgdzQsIDB4NjhjZWM0DQogICAg PiA8YnVja2V0X2VucXVldWVfc2luZ2xlKzI2MD4NCiAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2 OGNlYjggPCsyNDg+OiAgIDAyIDAwIDQwIGI5ICAgICBsZHIgICAgIHcyLCBbeDBdDQogICAgPiAg ICAgICAgMHgwMDAwMDAwMDAwNjhjZWJjIDwrMjUyPjogICAzZiAwMCAwMiA2YiAgICAgY21wICAg ICB3MSwgdzINCiAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGNlYzAgPCsyNTY+OiAgIDAxIDA5 IDAwIDU0ICAgICBiLm5lICAgIDB4NjhjZmUwDQogICAgPiA8YnVja2V0X2VucXVldWVfc2luZ2xl KzU0ND4gIC8vIGIuYW55DQogICAgPiANCiAgICA+ICAgICAyNCAgICAgICAgICAgICAgICAgICAg ICB3aGlsZSAodW5saWtlbHkob2xkX3ZhbCAhPSBfX2F0b21pY19sb2FkX24oJmh0LT50YWlsLA0K ICAgID4gX19BVE9NSUNfUkVMQVhFRCkpKQ0KICAgID4gDQogICAgPiANCiAgICA+ICAgICBJIGRv bid0IHdhbnQgdG8gYmxvY2sgdGhpcyBzZXJpZXMgb2YgcGF0Y2hlcyBkdWUgdGhpcyBwYXRjaC4g Q2FuIHdlIG1ha2UNCiAgICA+ICAgICByZSBzcGluIG9uZSBzZXJpZXMgd2l0aCAyIGFuZCAzIHBh dGNoZXMuIEFuZCBXYWl0IGZvciBwYXRjaCAxIHRvIGNvbmNsdWRlPw0KICAgID4gDQogICAgPiAg ICAgVGhvdWdodHM/DQogICAgPiANCiAgICA+IA0KICAgID4gDQogICAgPiANCiAgICA+ICAgICA+ DQogICAgPiAgICAgPiA+IEJ1dCBhcmd1bWVudCB0aGF0IHdlIHNob3VsZG4ndCBhc3N1bWUgMzJi aXQgbG9hZC9zdG9yZSBvcHMgYXMNCiAgICA+IGF0b21pYw0KICAgID4gICAgID4gPiBzb3VuZHMg YSBiaXQgZmxha3kgdG8gbWUuDQogICAgPiAgICAgPiA+IEtvbnN0YW50aW4NCiAgICA+ICAgICA+ ID4NCiAgICA+ICAgICA+ID4NCiAgICA+ICAgICA+ID4gPg0KICAgID4gICAgID4gPiA+DQogICAg PiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gQnV0IHRoZXJlIGFyZSBubyBt ZW1vcnkgb3JkZXJpbmcgcmVxdWlyZW1lbnRzICh3aXRoDQogICAgPiAgICAgPiA+ID4gICAgICAg ICA+IHJlZ2FyZHMgdG8gb3RoZXIgbG9hZHMgYW5kL29yIHN0b3JlcyBieSB0aGlzIHRocmVhZCkg c28NCiAgICA+IHJlbGF4ZWQNCiAgICA+ICAgICA+ID4gbWVtb3J5IG9yZGVyIGlzIHN1ZmZpY2ll bnQuDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IEFub3RoZXIgYXNwZWN0IG9mIHVzaW5nIF9f YXRvbWljX2xvYWRfbigpIGlzIHRoYXQgdGhlDQogICAgPiAgICAgPiA+ID4gY29tcGlsZXIgY2Fu bm90ICJvcHRpbWlzZSIgdGhpcyBsb2FkIChlLmcuIGNvbWJpbmUsIGhvaXN0IGV0YyksIGl0IGhh cw0KICAgID4gdG8gYmUNCiAgICA+ICAgICA+ID4gZG9uZSBhcw0KICAgID4gICAgID4gPiA+ICAg ICAgICAgPiBzcGVjaWZpZWQgaW4gdGhlIHNvdXJjZSBjb2RlIHdoaWNoIGlzIGFsc28gd2hhdCB3 ZSBuZWVkIGhlcmUuDQogICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgIEkg dGhpbmsgSmVyaW4gcG9pbnRzIHRoYXQgcnRlX3BhdXNlKCkgYWN0cyBoZXJlIGFzIGNvbXBpbGVy DQogICAgPiBiYXJyaWVyIHRvbywNCiAgICA+ICAgICA+ID4gPiAgICAgICAgIHNvIG5vIG5lZWQg dG8gd29ycnkgdGhhdCBjb21waWxlciB3b3VsZCBvcHRpbWl6ZSBvdXQgdGhlIGxvb3AuDQogICAg PiAgICAgPiA+ID4gICAgIFtPbGFdIFNvcnJ5IG1pc3NlZCB0aGF0LiBCdXQgdGhlIGJhcnJpZXIg YmVoYXZpb3VyIG9mIHJ0ZV9wYXVzZSgpDQogICAgPiAgICAgPiA+ID4gaXMgbm90IHBhcnQgb2Yg QzExLCBpcyBpdCBlc3NlbnRpYWxseSBhIGhhbmQtbWFkZSBmZWF0dXJlIHRvIHN1cHBvcnQNCiAg ICA+ICAgICA+ID4gPiB0aGUgbGVnYWN5IG11bHRpdGhyZWFkZWQgbWVtb3J5IG1vZGVsICh3aGlj aCB1c2VzIGV4cGxpY2l0IEhXDQogICAgPiBhbmQNCiAgICA+ICAgICA+ID4gY29tcGlsZXIgYmFy cmllcnMpLiBJJ2QgcHJlZmVyIGNvZGUgdXNpbmcgdGhlIEMxMSBtZW1vcnkgbW9kZWwgbm90IHRv DQogICAgPiAgICAgPiA+IGRlcGVuZCBvbiBzdWNoIGxlZ2FjeSBmZWF0dXJlcy4NCiAgICA+ICAg ICA+ID4gPg0KICAgID4gICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4g PiAgICAgICAgIEtvbnN0YW50aW4NCiAgICA+ICAgICA+ID4gPg0KICAgID4gICAgID4gPiA+ICAg ICAgICAgPg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiBPbmUgcG9pbnQgd29ydGggbWVudGlv bmluZyB0aG91Z2ggaXMgdGhhdCB0aGlzIGNoYW5nZSBpcyBmb3INCiAgICA+ICAgICA+ID4gPiB0 aGUgcnRlX3JpbmdfYzExX21lbS5oIGZpbGUsIG5vdCB0aGUgbGVnYWN5IHJpbmcuIEl0IG1heSBi ZSB3b3J0aA0KICAgID4gcGVyc2lzdGluZw0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiB3aXRo IGdldHRpbmcgdGhlIEMxMSBjb2RlIHJpZ2h0IHdoZW4gcGVvcGxlIGFyZSBsZXNzIGV4Y2l0ZWQN CiAgICA+IGFib3V0DQogICAgPiAgICAgPiA+IHNlbmRpbmcgYSByZWxlYXNlIG91dD8NCiAgICA+ ICAgICA+ID4gPiAgICAgICAgID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gV2UgY2FuIGV4 cGxhaW4gdGhhdCBmb3IgQzExIHdlIHdvdWxkIHByZWZlciB0byBkbyBsb2FkcyBhbmQNCiAgICA+ IHN0b3Jlcw0KICAgID4gICAgID4gPiBhcyBwZXIgdGhlIEMxMSBtZW1vcnkgbW9kZWwuIEluIHRo ZSBjYXNlIG9mIHJ0ZV9yaW5nLCB0aGUgY29kZSBpcw0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiBzZXBhcmF0ZWQgY2xlYW5seSBpbnRvIEMxMSBzcGVjaWZpYyBmaWxlcyBhbnl3YXkuDQogICAg PiAgICAgPiA+ID4gICAgICAgICA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IEkgdGhpbmsg cmVhZGluZyBodC0+dGFpbCB1c2luZyBfX2F0b21pY19sb2FkX24oKSBpcyB0aGUgbW9zdA0KICAg ID4gICAgID4gPiBhcHByb3ByaWF0ZSB3YXkuIFdlIHNob3cgdGhhdCBodC0+dGFpbCBpcyB1c2Vk IGZvciBzeW5jaHJvbml6YXRpb24sDQogICAgPiB3ZQ0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiBhY2tub3dsZWRnZSB0aGF0IGh0LT50YWlsIG1heSBiZSB3cml0dGVuIGJ5IG90aGVyIHRocmVh ZHMNCiAgICA+ICAgICA+ID4gPiB3aXRob3V0IGFueSBvdGhlciBraW5kIG9mIHN5bmNocm9uaXph dGlvbiAoZS5nLiBubyBsb2NrIGludm9sdmVkKQ0KICAgID4gYW5kIHdlDQogICAgPiAgICAgPiA+ IHJlcXVpcmUNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gYW4gYXRvbWljIGxvYWQgKGFueSB3 cml0ZSB0byBodC0+dGFpbCBtdXN0IGFsc28gYmUgYXRvbWljKS4NCiAgICA+ICAgICA+ID4gPiAg ICAgICAgID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gVXNpbmcgdm9sYXRpbGUgYW5kIGV4 cGxpY2l0IGNvbXBpbGVyIChvciBwcm9jZXNzb3IpIG1lbW9yeQ0KICAgID4gYmFycmllcnMNCiAg ICA+ICAgICA+ID4gKGZlbmNlcykgaXMgdGhlIGxlZ2FjeSBwcmUtQzExIHdheSBvZiBhY2NvbXBs aXNoaW5nIHRoZXNlIHRoaW5ncy4NCiAgICA+ICAgICA+ID4gPiBUaGVyZSdzDQogICAgPiAgICAg PiA+ID4gICAgICAgICA+IGEgcmVhc29uIHdoeSBDMTEvQysrMTEgbW92ZWQgYXdheSBmcm9tIHRo ZSBvbGQgd2F5cy4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiAgICAgICAgIF9fYXRvbWljX3N0b3JlX24oJmh0LT50YWlsLCBuZXdf dmFsLA0KICAgID4gX19BVE9NSUNfUkVMRUFTRSk7DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ ID4gPiAtLQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gMi43LjQNCiAgICA+ICAgICA+ ID4gPiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPg0KICAg ID4gICAgID4gPiA+DQogICAgPiAgICAgPg0KICAgID4gDQogICAgDQogICAgDQoNCg==