From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30082.outbound.protection.outlook.com [40.107.3.82]) by dpdk.org (Postfix) with ESMTP id 214FB23D; Fri, 5 Oct 2018 13:15:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2AI6MfGpPbwiSqOOk7R1v5ifd95uH8Y355aTCiEY1OE=; b=iySBC3oBkBpClGKC3WlBb6eG9Mp5QQSWle0LK6Yco++mc4JZzwIofO8R/T0LOmOtAmGKPrZIoLSUzpV3JYpkJsD40t5s1ZhIW9N+KJBdOU9IRIwfrlRze0a26yBjl3iDF6spxC21k1YVNcXjvySIVJfYRNgO1bQ6vBX3XaDQu3o= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB2010.eurprd08.prod.outlook.com (10.168.95.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.23; Fri, 5 Oct 2018 11:15:40 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20%11]) with mapi id 15.20.1207.024; Fri, 5 Oct 2018 11:15:40 +0000 From: Ola Liljedahl To: "Ananyev, Konstantin" , "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: AQHUTl7o9KT3/H6K10G5NrmKOHANTqUHJ0+AgAjF7gCAAH79gIAAUg2A Date: Fri, 5 Oct 2018 11:15:40 +0000 Message-ID: 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> In-Reply-To: <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB2010; 6:IMrGH8oO7+875hNQlDWETPT0CPko9UOtPzxbrtmFAYJ3tD6ng2EXmujBvTK9PvfTSNQKod3JsGniFpYe6EstQrL1nKSH6rYC/VXDQZJXN9bzRGgcqezRU/NijH/WelRmW5mp7w2Yo27Ho48c8DWnKOnIP4dYIY7eOcpWo5tTCMSg/QgvT5sBAxUTmNsQ9Oh08IlIRgwJcTYAskTdlWgW2I1ENEB+XWIU19N/XrKp32joNTgFeJQ/dnLToJ0cR7WyZm1t3ExlpkCSIZVm2uYKqBJzk6plC/y+Em5Pk3ca4GPlagVXorv29i+Aao2D+lA4bon0XNin62yJchNvZ7/dnzGb1GbtgIN5KI1CnbMX5ueWksvY08WdVtWg4OOMjPIocmYcUQ+uTb9NoiyeYyzi5IH9Ii7mV4JG2MEcHuQk+wcBVDCoeDOF+C2GeVSezDrOgIlw1/f882RJHzkuIzVwuQ==; 5:pGaTa10CMy56oLJO6N0TuNQLZni+vQf3zBcTGJ40blZ945UdgvIKiSTD/H3NMjcxBSuVY8OVNYYB01bPrIh8wsllQKEXka5hlNUsJUbSazkhvl/z0OJkRcrk5XjvAr414M5sK+y+ByH0F8J5yjj7cTczeYK0wOUkNzmXvfd0RCc=; 7:0vShqL9kiXX2mB6m5323dkppXQvHIU4WP828DIv9r+KfMV0map1hOPgjQQZ9+kKVE7lEbwUMs+WIrUKUAeiMhVer7BsuI1oRmSjswjg2vZv1nQ5UBcf124pnWSWumIuv1WcEmss0oifxwUqV4mE0E1P1y9O1cGw5cmqSo3lUvKlHy8q44d/h71g4R5tbPgErPSX992U/rFcOJ0YQLIwd7Z//4vMPTIlhVOWe/rq9M+Qw39huF+K9ZRAKiBdD6kBq x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 87cc930d-0689-4fbb-4081-08d62ab3e241 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0801MB2010; x-ms-traffictypediagnostic: HE1PR0801MB2010: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(149066)(150057)(6041310)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699051)(76991048); SRVR:HE1PR0801MB2010; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB2010; x-forefront-prvs: 0816F1D86E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(346002)(396003)(39860400002)(376002)(189003)(199004)(13464003)(66066001)(102836004)(316002)(6486002)(82746002)(2906002)(186003)(86362001)(58126008)(8676002)(6436002)(110136005)(54906003)(105586002)(76176011)(478600001)(229853002)(26005)(106356001)(6116002)(93886005)(3846002)(4326008)(97736004)(6512007)(446003)(11346002)(68736007)(36756003)(53936002)(2616005)(476003)(72206003)(25786009)(5660300001)(81166006)(81156014)(71200400001)(71190400001)(8936002)(305945005)(5250100002)(2900100001)(6246003)(6506007)(53546011)(7736002)(83716004)(33656002)(99286004)(14454004)(256004)(14444005)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB2010; H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: BAMPNqAr6c3zF1yjtlw26ObAKTJWpcYgGuax9qyh8vjqPteW+8lp/oRM7raCTzQTTMIGAYHAB3A53FEf0p/0nxyEYdOw8JMpqQ5ATEvzPrrpnDRYRC38O+WR+H3IMYk7yhA4tb8/TsmhjiUcI6bMnbusgIwr0b93sXiwNmDBNIMjL93yqp+Wh3bBLsZiaU9AgC9kJsL8rNTNKyt4++yu5pDw1gdkynJrWvVKV/72fZs8ksynyF8MyNTlI00fMJ5vcqwTJ5DvgHOpOJ1ijQvWBJLrxNNLMayq2PSSFgY8IGZD8juC3G0vEL9Cgzz2DbqJNfyOGV4jYT7ayXRbz7uw/DVfcAQEIveNe+U1uKVIg9w= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87cc930d-0689-4fbb-4081-08d62ab3e241 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2018 11:15:40.1452 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2010 Subject: Re: [dpdk-stable] [PATCH v3 1/3] ring: read tail using atomic load X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Oct 2018 11:15:42 -0000 DQoNCu+7v09uIDA1LzEwLzIwMTgsIDEwOjIyLCAiQW5hbnlldiwgS29uc3RhbnRpbiIgPGtvbnN0 YW50aW4uYW5hbnlldkBpbnRlbC5jb20+IHdyb3RlOg0KDQogICAgDQogICAgDQogICAgPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5j ZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEp DQogICAgPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgNSwgMjAxOCAxOjQ3IEFNDQogICAgPiBUbzog SmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCiAgICA+IENjOiBk ZXZAZHBkay5vcmc7IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBh cm0uY29tPjsgU3RldmUgQ2FwcGVyIDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT47IE9sYSBMaWxqZWRh aGwNCiAgICA+IDxPbGEuTGlsamVkYWhsQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47IHN0YWJs ZUBkcGRrLm9yZw0KICAgID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYzIDEvM10g cmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQogICAgPiANCiAgICA+IEhpIEplcmlu LA0KICAgID4gDQogICAgPiBUaGFua3MgZm9yIHlvdXIgcmV2aWV3LCBpbmxpbmUgY29tbWVudHMg ZnJvbSBvdXIgaW50ZXJuYWwgZGlzY3Vzc2lvbnMuDQogICAgPiANCiAgICA+IEJSLiBHYXZpbg0K ICAgID4gDQogICAgPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiA+IEZyb206 IEplcmluIEphY29iIDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+DQogICAgPiA+IFNl bnQ6IFNhdHVyZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTggNjo0OSBQTQ0KICAgID4gPiBUbzogR2F2 aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT4NCiAgICA+ID4g Q2M6IGRldkBkcGRrLm9yZzsgSG9ubmFwcGEgTmFnYXJhaGFsbGkNCiAgICA+ID4gPEhvbm5hcHBh Lk5hZ2FyYWhhbGxpQGFybS5jb20+OyBTdGV2ZSBDYXBwZXINCiAgICA+ID4gPFN0ZXZlLkNhcHBl ckBhcm0uY29tPjsgT2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPjsgbmQNCiAg ICA+ID4gPG5kQGFybS5jb20+OyBzdGFibGVAZHBkay5vcmcNCiAgICA+ID4gU3ViamVjdDogUmU6 IFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0KICAgID4g Pg0KICAgID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gPiA+IERhdGU6IE1v biwgMTcgU2VwIDIwMTggMTY6MTc6MjIgKzA4MDANCiAgICA+ID4gPiBGcm9tOiBHYXZpbiBIdSA8 Z2F2aW4uaHVAYXJtLmNvbT4NCiAgICA+ID4gPiBUbzogZGV2QGRwZGsub3JnDQogICAgPiA+ID4g Q0M6IGdhdmluLmh1QGFybS5jb20sIEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20sDQogICAg PiA+ID4gc3RldmUuY2FwcGVyQGFybS5jb20sICBPbGEuTGlsamVkYWhsQGFybS5jb20sDQogICAg PiA+ID4gamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tLCBuZEBhcm0uY29tLCAgc3RhYmxl QGRwZGsub3JnDQogICAgPiA+ID4gU3ViamVjdDogW1BBVENIIHYzIDEvM10gcmluZzogcmVhZCB0 YWlsIHVzaW5nIGF0b21pYyBsb2FkDQogICAgPiA+ID4gWC1NYWlsZXI6IGdpdC1zZW5kLWVtYWls IDIuNy40DQogICAgPiA+ID4NCiAgICA+ID4gPiBFeHRlcm5hbCBFbWFpbA0KICAgID4gPiA+DQog ICAgPiA+ID4gSW4gdXBkYXRlX3RhaWwsIHJlYWQgaHQtPnRhaWwgdXNpbmcgX19hdG9taWNfbG9h ZC5BbHRob3VnaCB0aGUNCiAgICA+ID4gPiBjb21waWxlciBjdXJyZW50bHkgc2VlbXMgdG8gYmUg ZG9pbmcgdGhlIHJpZ2h0IHRoaW5nIGV2ZW4gd2l0aG91dA0KICAgID4gPiA+IF9hdG9taWNfbG9h ZCwgd2UgZG9uJ3Qgd2FudCB0byBnaXZlIHRoZSBjb21waWxlciBmcmVlZG9tIHRvIG9wdGltaXNl DQogICAgPiA+ID4gd2hhdCBzaG91bGQgYmUgYW4gYXRvbWljIGxvYWQsIGl0IHNob3VsZCBub3Qg YmUgYXJiaXRhcmlseSBtb3ZlZA0KICAgID4gPiA+IGFyb3VuZC4NCiAgICA+ID4gPg0KICAgID4g PiA+IEZpeGVzOiAzOTM2OGViZmM2ICgicmluZzogaW50cm9kdWNlIEMxMSBtZW1vcnkgbW9kZWwg YmFycmllciBvcHRpb24iKQ0KICAgID4gPiA+IENjOiBzdGFibGVAZHBkay5vcmcNCiAgICA+ID4g Pg0KICAgID4gPiA+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBhcm0uY29tPg0K ICAgID4gPiA+IFJldmlld2VkLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFn YXJhaGFsbGlAYXJtLmNvbT4NCiAgICA+ID4gPiBSZXZpZXdlZC1ieTogU3RldmUgQ2FwcGVyIDxz dGV2ZS5jYXBwZXJAYXJtLmNvbT4NCiAgICA+ID4gPiBSZXZpZXdlZC1ieTogT2xhIExpbGplZGFo bCA8T2xhLkxpbGplZGFobEBhcm0uY29tPg0KICAgID4gPiA+IC0tLQ0KICAgID4gPiA+ICBsaWIv bGlicnRlX3JpbmcvcnRlX3JpbmdfYzExX21lbS5oIHwgMyArKy0NCiAgICA+ID4gPiAgMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KICAgID4gPiA+IA0KICAg ID4gVGhlIHJlYWQgb2YgaHQtPnRhaWwgbmVlZHMgdG8gYmUgYXRvbWljLCBhIG5vbi1hdG9taWMg cmVhZCB3b3VsZCBub3QgYmUgY29ycmVjdC4NCiAgICANCiAgICBUaGF0J3MgYSAzMmJpdCB2YWx1 ZSBsb2FkLg0KICAgIEFGQUlLIG9uIGFsbCBDUFVzIHRoYXQgd2Ugc3VwcG9ydCBpdCBpcyBhbiBh dG9taWMgb3BlcmF0aW9uLg0KW09sYV0gQnV0IHRoYXQgdGhlIG9yZGluYXJ5IEMgbG9hZCBpcyB0 cmFuc2xhdGVkIHRvIGFuIGF0b21pYyBsb2FkIGZvciB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBp cyBpbmNpZGVudGFsLg0KDQpJZiB0aGUgZGVzaWduIHJlcXVpcmVzIGFuIGF0b21pYyBsb2FkICh3 aGljaCBpcyB0aGUgY2FzZSBoZXJlKSwgd2Ugc2hvdWxkIHVzZSBhbiBhdG9taWMgbG9hZCBvbiB0 aGUgbGFuZ3VhZ2UgbGV2ZWwuIFRoZW4gd2UgY2FuIGJlIHN1cmUgaXQgd2lsbCBhbHdheXMgYmUg dHJhbnNsYXRlZCB0byBhbiBhdG9taWMgbG9hZCBmb3IgdGhlIHRhcmdldCBpbiBxdWVzdGlvbiBv ciBjb21waWxhdGlvbiB3aWxsIGZhaWwuIFdlIGRvbid0IGhhdmUgdG8gZGVwZW5kIG9uIGFzc3Vt cHRpb25zLg0KDQoNCiAgICANCiAgICA+IEJ1dCB0aGVyZSBhcmUgbm8gbWVtb3J5IG9yZGVyaW5n IHJlcXVpcmVtZW50cyAod2l0aA0KICAgID4gcmVnYXJkcyB0byBvdGhlciBsb2FkcyBhbmQvb3Ig c3RvcmVzIGJ5IHRoaXMgdGhyZWFkKSBzbyByZWxheGVkIG1lbW9yeSBvcmRlciBpcyBzdWZmaWNp ZW50Lg0KICAgID4gQW5vdGhlciBhc3BlY3Qgb2YgdXNpbmcgX19hdG9taWNfbG9hZF9uKCkgaXMg dGhhdCB0aGUgY29tcGlsZXIgY2Fubm90ICJvcHRpbWlzZSIgdGhpcyBsb2FkIChlLmcuIGNvbWJp bmUsIGhvaXN0IGV0YyksIGl0IGhhcyB0byBiZSBkb25lIGFzDQogICAgPiBzcGVjaWZpZWQgaW4g dGhlIHNvdXJjZSBjb2RlIHdoaWNoIGlzIGFsc28gd2hhdCB3ZSBuZWVkIGhlcmUuDQogICAgDQog ICAgSSB0aGluayBKZXJpbiBwb2ludHMgdGhhdCBydGVfcGF1c2UoKSBhY3RzIGhlcmUgYXMgY29t cGlsZXIgYmFycmllciB0b28sDQogICAgc28gbm8gbmVlZCB0byB3b3JyeSB0aGF0IGNvbXBpbGVy IHdvdWxkIG9wdGltaXplIG91dCB0aGUgbG9vcC4NCltPbGFdIFNvcnJ5IG1pc3NlZCB0aGF0LiBC dXQgdGhlIGJhcnJpZXIgYmVoYXZpb3VyIG9mIHJ0ZV9wYXVzZSgpIGlzIG5vdCBwYXJ0IG9mIEMx MSwgaXMgaXQgZXNzZW50aWFsbHkgYSBoYW5kLW1hZGUgZmVhdHVyZSB0byBzdXBwb3J0IHRoZSBs ZWdhY3kgbXVsdGl0aHJlYWRlZCBtZW1vcnkgbW9kZWwgKHdoaWNoIHVzZXMgZXhwbGljaXQgSFcg YW5kIGNvbXBpbGVyIGJhcnJpZXJzKS4gSSdkIHByZWZlciBjb2RlIHVzaW5nIHRoZSBDMTEgbWVt b3J5IG1vZGVsIG5vdCB0byBkZXBlbmQgb24gc3VjaCBsZWdhY3kgZmVhdHVyZXMuDQoNCg0KDQog ICAgS29uc3RhbnRpbg0KICAgIA0KICAgID4gDQogICAgPiBPbmUgcG9pbnQgd29ydGggbWVudGlv bmluZyB0aG91Z2ggaXMgdGhhdCB0aGlzIGNoYW5nZSBpcyBmb3IgdGhlIHJ0ZV9yaW5nX2MxMV9t ZW0uaCBmaWxlLCBub3QgdGhlIGxlZ2FjeSByaW5nLiBJdCBtYXkgYmUgd29ydGggcGVyc2lzdGlu Zw0KICAgID4gd2l0aCBnZXR0aW5nIHRoZSBDMTEgY29kZSByaWdodCB3aGVuIHBlb3BsZSBhcmUg bGVzcyBleGNpdGVkIGFib3V0IHNlbmRpbmcgYSByZWxlYXNlIG91dD8NCiAgICA+IA0KICAgID4g V2UgY2FuIGV4cGxhaW4gdGhhdCBmb3IgQzExIHdlIHdvdWxkIHByZWZlciB0byBkbyBsb2FkcyBh bmQgc3RvcmVzIGFzIHBlciB0aGUgQzExIG1lbW9yeSBtb2RlbC4gSW4gdGhlIGNhc2Ugb2YgcnRl X3JpbmcsIHRoZSBjb2RlIGlzDQogICAgPiBzZXBhcmF0ZWQgY2xlYW5seSBpbnRvIEMxMSBzcGVj aWZpYyBmaWxlcyBhbnl3YXkuDQogICAgPiANCiAgICA+IEkgdGhpbmsgcmVhZGluZyBodC0+dGFp bCB1c2luZyBfX2F0b21pY19sb2FkX24oKSBpcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSB3YXkuIFdl IHNob3cgdGhhdCBodC0+dGFpbCBpcyB1c2VkIGZvciBzeW5jaHJvbml6YXRpb24sIHdlDQogICAg PiBhY2tub3dsZWRnZSB0aGF0IGh0LT50YWlsIG1heSBiZSB3cml0dGVuIGJ5IG90aGVyIHRocmVh ZHMgd2l0aG91dCBhbnkgb3RoZXIga2luZCBvZiBzeW5jaHJvbml6YXRpb24gKGUuZy4gbm8gbG9j ayBpbnZvbHZlZCkgYW5kIHdlIHJlcXVpcmUNCiAgICA+IGFuIGF0b21pYyBsb2FkIChhbnkgd3Jp dGUgdG8gaHQtPnRhaWwgbXVzdCBhbHNvIGJlIGF0b21pYykuDQogICAgPiANCiAgICA+IFVzaW5n IHZvbGF0aWxlIGFuZCBleHBsaWNpdCBjb21waWxlciAob3IgcHJvY2Vzc29yKSBtZW1vcnkgYmFy cmllcnMgKGZlbmNlcykgaXMgdGhlIGxlZ2FjeSBwcmUtQzExIHdheSBvZiBhY2NvbXBsaXNoaW5n IHRoZXNlIHRoaW5ncy4gVGhlcmUncw0KICAgID4gYSByZWFzb24gd2h5IEMxMS9DKysxMSBtb3Zl ZCBhd2F5IGZyb20gdGhlIG9sZCB3YXlzLg0KICAgID4gPiA+DQogICAgPiA+ID4gICAgICAgICBf X2F0b21pY19zdG9yZV9uKCZodC0+dGFpbCwgbmV3X3ZhbCwgX19BVE9NSUNfUkVMRUFTRSk7DQog ICAgPiA+ID4gLS0NCiAgICA+ID4gPiAyLjcuNA0KICAgID4gPiA+DQogICAgDQoNCg==