From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Honnappa.Nagarahalli@arm.com>
Received: from EUR04-DB3-obe.outbound.protection.outlook.com
 (mail-eopbgr60046.outbound.protection.outlook.com [40.107.6.46])
 by dpdk.org (Postfix) with ESMTP id C4B592C24
 for <dev@dpdk.org>; Sun, 10 Mar 2019 21:47:55 +0100 (CET)
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=tMjSdcxrREN6ODLMGEIay3U1gPan5LJSw9d1MET+kDM=;
 b=SSqcOfBDInf+u3uxNGMn8wGEdnd144FAptl7Dcm0SH6YAFl026WEojmTiNZm70dAf0m/bfkyFzL9EZh7byg6YwYYIkpUgIEuPjYLfRbx+5EpnGamhQ/eXKXbBWm2LC+YAWTswmfNd6koZEE47XVmAWTGR6yZFUkAy6mTzMm2j7c=
Received: from AM6PR08MB3672.eurprd08.prod.outlook.com (20.177.115.76) by
 AM6PR08MB4487.eurprd08.prod.outlook.com (20.179.18.20) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1686.16; Sun, 10 Mar 2019 20:47:54 +0000
Received: from AM6PR08MB3672.eurprd08.prod.outlook.com
 ([fe80::4d90:78f1:e670:14d5]) by AM6PR08MB3672.eurprd08.prod.outlook.com
 ([fe80::4d90:78f1:e670:14d5%3]) with mapi id 15.20.1686.021; Sun, 10 Mar 2019
 20:47:54 +0000
From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>, "Gavin Hu (Arm
 Technology China)" <Gavin.Hu@arm.com>, Ilya Maximets
 <i.maximets@samsung.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: nd <nd@arm.com>, "thomas@monjalon.net" <thomas@monjalon.net>,
 "jerinj@marvell.com" <jerinj@marvell.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>, "Nipun.gupta@nxp.com" <nipun.gupta@nxp.com>,
 "olivier.matz@6wind.com" <olivier.matz@6wind.com>, "Richardson, Bruce"
 <bruce.richardson@intel.com>, "chaozhu@linux.vnet.ibm.com"
 <chaozhu@linux.vnet.ibm.com>, nd <nd@arm.com>
Thread-Topic: [PATCH v2] ring: enforce reading the tails before ring operations
Thread-Index: AQHU1LF2/U32CtPzl0aCGaPiZ5eq9qYAA0EQgAEPFYCAACNFgIAAr7nwgANtirA=
Date: Sun, 10 Mar 2019 20:47:54 +0000
Message-ID: <AM6PR08MB367201F5D904968EE9CD65EA984F0@AM6PR08MB3672.eurprd08.prod.outlook.com>
References: <1551841661-42892-1-git-send-email-gavin.hu@arm.com>
 <CGME20190307064616epcas4p141948c129d532da259eab6fd3e6e4dc7@epcas4p1.samsung.com>
 <1551941137-33250-1-git-send-email-gavin.hu@arm.com>
 <3cdf6747-21f3-d77e-0935-d73b5cc617f6@samsung.com>
 <VI1PR08MB31670CCCC7F8AE61C15281B08F4C0@VI1PR08MB3167.eurprd08.prod.outlook.com>
 <d9fad73d-4097-95d6-08b3-8e33991b062a@samsung.com>
 <VI1PR08MB316773078121887D8BB96C9C8F4C0@VI1PR08MB3167.eurprd08.prod.outlook.com>
 <2601191342CEEE43887BDE71AB97725801365527AC@irsmsx105.ger.corp.intel.com>
 <AM6PR08MB3672277B8FBBF639E5FD7BA7984D0@AM6PR08MB3672.eurprd08.prod.outlook.com>
 <DB7PR08MB316321AB27C37C21F18AFDA98F4D0@DB7PR08MB3163.eurprd08.prod.outlook.com>
 <2601191342CEEE43887BDE71AB9772580136556F68@irsmsx105.ger.corp.intel.com>
In-Reply-To: <2601191342CEEE43887BDE71AB9772580136556F68@irsmsx105.ger.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=Honnappa.Nagarahalli@arm.com; 
x-originating-ip: [217.140.103.75]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 47f97dc9-5124-4005-837b-08d6a599ab59
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(5600127)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);
 SRVR:AM6PR08MB4487; 
x-ms-traffictypediagnostic: AM6PR08MB4487:
x-ms-exchange-purlcount: 1
x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr
nodisclaimer: True
x-microsoft-exchange-diagnostics: 1; AM6PR08MB4487;
 20:p30BMvuz0lqGpg7DJe1ASW+73PsKuylsE6Kc8Adeuwm38dB9uki9NTVdUxE54XgzQo1ps4AoeXRWJS9veFypP//p1DB4zFjM0vOQRVF/UK8AnQjDDQyiJNYesC8FuTvOFhFrgDRFH08WCAifg2wdXU1FoKUlKFBvD37KVG6lwiI=
x-microsoft-antispam-prvs: <AM6PR08MB4487161215702757AA19F370984F0@AM6PR08MB4487.eurprd08.prod.outlook.com>
x-forefront-prvs: 0972DEC1D9
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(396003)(136003)(376002)(366004)(39850400004)(346002)(199004)(189003)(305945005)(93886005)(8676002)(9686003)(81156014)(81166006)(71190400001)(86362001)(54906003)(6306002)(110136005)(6246003)(71200400001)(186003)(7736002)(256004)(14444005)(3846002)(4326008)(229853002)(53936002)(68736007)(25786009)(7416002)(66066001)(74316002)(6116002)(33656002)(97736004)(2501003)(476003)(72206003)(486006)(26005)(2906002)(446003)(966005)(11346002)(105586002)(106356001)(478600001)(52536013)(6436002)(55016002)(5660300002)(316002)(76176011)(99286004)(7696005)(6506007)(14454004)(102836004)(8936002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB4487;
 H:AM6PR08MB3672.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: gFf11TANi4JcIDzQ3My8wUTvd76itzu81bh/XlFYwx9bDPLKf9uurCxJ6H98/Xl5TJC8il/J+7P90sbdN17zWun6qx1XjZWEZYvT063Jstn60kOqolq3UjVTda5jvJ0I7kaJ1gXD/cVpLk4B1zJ0duZGYIKK749Yod3USdwyZzKt4sUE+OuMJVW1BrqJ/aLhEh7kgQggVTklgmEZws8ub67nDX/dd1kAFmEzMfZvcZm7JM25YjBdszDJHL+4/b0mehzovlC37JiUV+95KM9wK6iC5Q9f/q0VfxXdd6CLIzaNQky4jWm889l2zjB1LwTE7cuM9nqMM2LTpX3SWtXryWNgcPNtwOTbdC9t32CK4qTPgzvv86V4EBtCY/DdhsfeYEcQCyXvRX2YtHqq20NOxRXEbOAoHcy5EI4KUAkCnYA=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 47f97dc9-5124-4005-837b-08d6a599ab59
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Mar 2019 20:47:54.2112 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4487
Subject: Re: [dpdk-dev] [PATCH v2] ring: enforce reading the tails before
	ring operations
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Mar 2019 20:47:56 -0000

PiA+ID4gPiA+ID4gPj4+IEluIHdlYWsgbWVtb3J5IG1vZGVscywgbGlrZSBhcm02NCwgcmVhZGlu
ZyB0aGUNCj4gPiA+ID4gPiA+ID4+PiB7cHJvZCxjb25zfS50YWlsIG1heSBnZXQgcmVvcmRlcmVk
IGFmdGVyIHJlYWRpbmcgb3INCj4gPiA+ID4gPiA+ID4+PiB3cml0aW5nIHRoZSByaW5nIHNsb3Rz
LCB3aGljaCBjb3JydXB0cyB0aGUgcmluZyBhbmQgc3RhbGUgZGF0YSBpcw0KPiBvYnNlcnZlZC4N
Cj4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPj4+IFRoaXMgaXNzdWUgd2FzIHJlcG9ydGVk
IGJ5IE5YUCBvbiA4LUE3MiBEUEFBMiBib2FyZC4gVGhlDQo+ID4gPiBwcm9ibGVtDQo+ID4gPiA+
ID4gPiA+Pj4gaXMNCj4gPiA+ID4gPiA+ID4+IG1vc3QNCj4gPiA+ID4gPiA+ID4+PiBsaWtlbHkg
Y2F1c2VkIGJ5IG1pc3NpbmcgdGhlIGFjcXVpcmUgc2VtYW50aWNzIHdoZW4NCj4gPiA+ID4gPiA+
ID4+PiByZWFkaW5nIGNvbnMudGFpbCAoaW4gU1AgZW5xdWV1ZSkgb3IgcHJvZC50YWlsIChpbiBT
Qw0KPiA+ID4gPiA+ID4gPj4+IGRlcXVldWUpIHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvDQo+
ID4gPiA+ID4gPiByZWFkDQo+ID4gPiA+ID4gPiA+PiBhDQo+ID4gPiA+ID4gPiA+Pj4gc3RhbGUg
dmFsdWUgZnJvbSB0aGUgcmluZyBzbG90cy4NCj4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4g
Pj4+IEZvciBNUCAoYW5kIE1DKSBjYXNlLCBydGVfYXRvbWljMzJfY21wc2V0KCkgYWxyZWFkeQ0K
PiA+ID4gPiA+ID4gPj4+IHByb3ZpZGVzDQo+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4+IHJlcXVp
cmVkDQo+ID4gPiA+ID4gPiA+Pj4gb3JkZXJpbmcuIFRoaXMgcGF0Y2ggaXMgdG8gcHJldmVudCBy
ZWFkaW5nIGFuZCB3cml0aW5nIHRoZQ0KPiA+ID4gPiA+ID4gPj4+IHJpbmcgc2xvdHMgZ2V0IHJl
b3JkZXJlZCBiZWZvcmUgcmVhZGluZyB7cHJvZCxjb25zfS50YWlsDQo+ID4gPiA+ID4gPiA+Pj4g
Zm9yIFNQIChhbmQgU0MpDQo+ID4gPiA+IGNhc2UuDQo+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+
ID4gPj4gUmVhZCBiYXJyaWVyIHJ0ZV9zbXBfcm1iKCkgaXMgT0sgdG8gcHJldmVudCByZWFkaW5n
IHRoZQ0KPiA+ID4gPiA+ID4gPj4gcmluZyBnZXQgcmVvcmRlcmVkIGJlZm9yZSByZWFkaW5nIHRo
ZSB0YWlsLiBIb3dldmVyLCB0bw0KPiA+ID4gPiA+ID4gPj4gcHJldmVudCAqd3JpdGluZyogdGhl
IHJpbmcgZ2V0IHJlb3JkZXJlZCAqYmVmb3JlIHJlYWRpbmcqDQo+ID4gPiA+ID4gPiA+PiB0aGUg
dGFpbCB5b3UgbmVlZCBhIGZ1bGwgbWVtb3J5IGJhcnJpZXIsIGkuZS4NCj4gPiA+ID4gPiA+ID4+
IHJ0ZV9zbXBfbWIoKS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSVNITEQocnRlX3Nt
cF9ybWIgaXMgRE1CKGlzaGxkKSBvcmRlcnMgTEQvTEQgYW5kIExEL1NULA0KPiA+ID4gPiA+ID4g
PiB3aGlsZSBXTUIoU1QNCj4gPiA+ID4gPiA+IE9wdGlvbikgb3JkZXJzIFNUL1NULg0KPiA+ID4g
PiA+ID4gPiBGb3IgbW9yZSBkZXRhaWxzLCBwbGVhc2UgcmVmZXIgdG86IFRhYmxlIEIyLTEgRW5j
b2Rpbmcgb2YNCj4gPiA+ID4gPiA+ID4gdGhlIERNQiBhbmQgRFNCDQo+ID4gPiA+ID4gPiA8b3B0
aW9uPiBwYXJhbWV0ZXIgIGluDQo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vZGV2ZWxvcGVyLmFybS5j
b20vZG9jcy9kZGkwNDg3L2xhdGVzdC9hcm0tYXJjaGl0ZWN0dQ0KPiA+ID4gPiA+ID4gPiByZS0N
Cj4gPiA+ID4gPiA+IHJlZmVyZW5jZS1tYW51YWwtYXJtdjgtZm9yLWFybXY4LWEtYXJjaGl0ZWN0
dXJlLXByb2ZpbGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJIHNlZS4gQnV0IHlvdSBoYXZl
IHRvIGNoYW5nZSB0aGUgcnRlX3NtcF9ybWIoKSBmdW5jdGlvbg0KPiA+ID4gPiA+ID4gZGVmaW5p
dGlvbiBpbg0KPiA+ID4gPiA+ID4gbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2VuZXJp
Yy9ydGVfYXRvbWljLmggYW5kIGFzc3VyZSB0aGF0DQo+IGFsbCBvdGhlciBhcmNoaXRlY3R1cmVz
IGZvbGxvd3Mgc2FtZSBydWxlcy4NCj4gPiA+ID4gPiA+IE90aGVyd2lzZSwgdGhpcyBjaGFuZ2Ug
aXMgbG9naWNhbGx5IHdyb25nLCBiZWNhdXNlIHJlYWQNCj4gPiA+ID4gPiA+IGJhcnJpZXIgaW4g
Y3VycmVudCBkZWZpbml0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIHRvIG9yZGVyIExvYWQgd2l0aA0K
PiBTdG9yZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBHb29kIHBvaW50cywg
bGV0IG1lIHJlLXRoaW5rIGhvdyB0byBoYW5kbGUgZm9yIG90aGVyIGFyY2hpdGVjdHVyZXMuDQo+
ID4gPiA+ID4gRnVsbCBNQiBpcyByZXF1aXJlZCBmb3Igb3RoZXIgYXJjaGl0ZWN0dXJlcyh4ODY/
IFBwYz8pLCBidXQgZm9yDQo+ID4gPiA+ID4gYXJtLCByZWFkDQo+ID4gPiA+IGJhcnJpZXIobG9h
ZC9zdG9yZSBhbmQgbG9hZC9sb2FkKSBpcyBlbm91Z2guDQo+ID4gPiA+DQo+ID4gPiA+IEZvciB4
ODYsIEkgZG9uJ3QgdGhpbmsgeW91IG5lZWQgYW55IGJhcnJpZXIgaGVyZSwgYXMgd2l0aCBJQSBt
ZW1vcnkNCj4gbW9kZToNCj4gPiA+ID4gLSAgUmVhZHMgYXJlIG5vdCByZW9yZGVyZWQgd2l0aCBv
dGhlciByZWFkcy4NCj4gPiA+ID4gLSBXcml0ZXMgYXJlIG5vdCByZW9yZGVyZWQgd2l0aCBvbGRl
ciByZWFkcy4NCj4gPiA+IEFncmVlDQo+ID4NCj4gPiBJIHVuZGVyc3RhbmQgaGVyZWluIG5vIGlu
c3RydWN0aW9uIGxldmVsIGJhcnJpZXJzIGFyZSByZXF1aXJlZCBmb3IgSUEsDQo+ID4gYnV0IGhv
dyBhYm91dCB0aGUgY29tcGlsZXIgYmFycmllcjogcnRlX2NvbXBpbGVyX2JhcnJpZXI/DQo+ID4N
Cj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEJUVywgY291bGQgeW91IGV4cGxhaW4gYSBiaXQgbW9y
ZSB3aHkgYmFycmllciBpcyBuZWNlc3NhcnkgZXZlbiBvbg0KPiA+ID4gPiBhcm0NCj4gPiA+IGhl
cmU/DQo+ID4gPiA+IEFzIEkgY2FuIHNlZSwgdGhlcmUgaXMgYSBkYXRhIGRlcGVuZGVuY3kgYmV0
d2VlbiB0aGUgdGFpbCB2YWx1ZQ0KPiA+ID4gPiBhbmQgc3Vic2VxdWVudCBhZGRyZXNzIGNhbGN1
bGF0aW9ucyBmb3IgcmluZyB3cml0ZXMvcmVhZHMuDQo+ID4gPiA+IElzbid0IHRoYXQgc3VmZmlj
aWVudCB0byBwcmV2ZW50IHJlLW9yZGVyaW5nIGV2ZW4gZm9yIHdlYWsgbWVtb3J5IG1vZGVsPw0K
PiA+ID4gVGhlIHRhaWwgdmFsdWUgYWZmZWN0cyAnbicuIEJ1dCwgdGhlIHZhbHVlIG9mICduJyBj
YW4gYmUgc3BlY3VsYXRlZA0KPiA+ID4gYmVjYXVzZSBvZiB0aGUgZm9sbG93aW5nICdpZicgc3Rh
dGVtZW50Og0KPiA+ID4NCj4gPiA+IGlmICh1bmxpa2VseShuID4gKmZyZWVfZW50cmllcykpDQo+
ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBuID0gKGJlaGF2aW9yID09IFJURV9SSU5HX1FV
RVVFX0ZJWEVEKSA/IDAgOg0KPiA+ID4gKmZyZWVfZW50cmllczsNCj4gPiA+DQo+ID4gPiBUaGUg
YWRkcmVzcyBjYWxjdWxhdGlvbnMgZm9yIGFjdHVhbCByaW5nIHdyaXRlcy9yZWFkcyBkbyBub3Qg
ZGVwZW5kDQo+ID4gPiBvbiB0aGUgdGFpbCB2YWx1ZS4NCj4gDQo+IE9rLCBhZ3JlZSBJIGZvcm11
bGF0ZWQgaXQgd3JvbmdseSwgb25seSBsaW1pdCB2YWx1ZSBpcyBkZXBlbmRlbnQgb24gY29ucy50
YWlsLg0KPiBBZGRyZXNzIGlzIG5vdC4NCj4gDQo+ID5TaW5jZSAnbicgY2FuIGJlIHNwZWN1bGF0
ZWQsIHRoZSB3cml0ZXMvcmVhZHMgY2FuIGJlIG1vdmVkIHVwDQo+ID4gPiBiZWZvcmUgdGhlIGxv
YWQgb2YgdGhlIHRhaWwgdmFsdWUuDQo+IA0KPiBGb3IgbXkgY3VyaW9zaXR5OiBvaywgSSB1bmRl
cnN0YW5kIHRoYXQgJ24nIHZhbHVlIGNhbiBiZSBzcGVjdWxhdGVkLCBhbmQNCj4gc3BlY3VsYXRp
dmUgc3RvcmVzIGNvdWxkIHN0YXJ0IGJlZm9yZSBuIGlzIGNhbGN1bGF0ZWQgcHJvcGVybHkuLi4N
Cj4gQnV0IGFyZSB5b3Ugc2F5aW5nIHRoYXQgc3VjaCBzcGVjdWxhdGl2ZSBzdG9yZSByZXN1bHRz
IG1pZ2h0IGJlIHZpc2libGUgdG8gdGhlDQo+IG90aGVyIG9ic2VydmVycyAoZGlmZmVyZW50IGNw
dSk/DQo+IA0KWW91IGFyZSBjb3JyZWN0LiBUaGUgc3BlY3VsYXRpdmUgc3RvcmVzIHdpbGwgTk9U
IGJlIHZpc2libGUgdG8gb3RoZXIgb2JzZXJ2ZXJzIHRpbGwgdGhlIHZhbHVlIG9mICduJyBpcyBm
aXhlZC4gU3BlY3VsYXRpdmUgc3RvcmVzIG1pZ2h0IGhhdmUgdG8gYmUgZGlzY2FyZGVkIGRlcGVu
ZGluZyBvbiB0aGUgdmFsdWUgb2YgJ24nICh3aGljaCB3aWxsIGFmZmVjdCBjYWNoZSBwZXJmb3Jt
YW5jZSkuDQpUaGVyZSBpcyBhbHNvIGEgY29udHJvbCBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGxv
YWQgb2YgY29ucy50YWlsIGFuZCB0aGUgc3RvcmVzIHRvIHRoZSByaW5nLiBUaGF0IHNob3VsZCBh
bHNvIGtlZXAgdGhlIGxvYWQgYW5kIHN0b3JlcyBmcm9tIGdldHRpbmcgcmVvcmRlcmVkICh0aG91
Z2ggSSBhbSBub3Qgc3VyZSBpZiBpdCBzdGlsbCBhbGxvd3MgZm9yIHNwZWN1bGF0aXZlIHN0b3Jl
cykuDQpTbywgSU1PLCB0aGUgYmFycmllciBpbiBlbnF1ZXVlIGlzIG5vdCBuZWVkZWQuIElzIHRo
aXMgd2hhdCB5b3Ugd2FudGVkIHRvIGRyaXZlIGF0Pw0K