From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1B8C2430D2; Tue, 22 Aug 2023 18:28:26 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 01D2F4021D; Tue, 22 Aug 2023 18:28:26 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2074.outbound.protection.outlook.com [40.107.6.74]) by mails.dpdk.org (Postfix) with ESMTP id D91A840041 for ; Tue, 22 Aug 2023 18:28:24 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lnm+/QcGOJ6oND3RwsRO1eir6wLXTrYnHAwcdYZojwpUgi3FZixEkzmkNqVptzcmEHF1ympBQitV0ZAuLjUhyXrbW298yCHt2/ORPt3FuEK5TSdoukIK8vLGMC7J58nLs9Hthe8BCf2lSfG7V/bJdT6SRwKhlz2vxqpyCNs9Tv7iPJc4DAbQOSmS76Dtc/xNSbj3InWQvKw2SjXQqq0LZtBK93FO8njlo6LWv5uxK9OUXaMEaiSIvaBaCKZAwF+I4OTTR3L0SJgBr3b50anZWKqszEDXuup5yBOx+mQm6QbvCdKUedJvYrq8OITd9Zsl6Y7OxAtI2KJACcL6SRAPQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9Kyxc7VIoz/Yge/eQm4YCeuMgEZ74wasQhh4Io/N3cI=; b=XXzIRfkA+OrmyFG+z7XJY3xD1vYXpf/6C7hAKRyc6UMcjzjqqche4t1bPsCedjDSYBuQXAGd+p5HKNiEIkJL/3fd6VwrVN/9JmwazEXjW3v6lZ5EucnPmHB2XDqmEWv1uS0JOPBbMojLZosexMk0p5NysYvVsNuhHnpmZawjjRG7HvGIwjnwr1gIKlj68MsyLv4ILL8hBl/qI6bVNowjs4ZyROnbXxI5yeo5XfzaQRanOQXCAD6zNAMXZ6xWicFPmcvxU1+fgJm2t9b9b+iI4FilV8hrjwwokLwAvmHJidrEF9vY3Wv8dzoiBZIb6MO0yd+LGCxXEh4otWI+3nK0eg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9Kyxc7VIoz/Yge/eQm4YCeuMgEZ74wasQhh4Io/N3cI=; b=FcTho1RKXnm8/lq6n2pPeyyHnpddeBjpRpqZxJ3efyU11EcmXAxKFou7K+oBpUHJrs73xkUH8rL9/u2Lmm2M+rLKfQLliVrjqGczsTEVTywpwGHUuOLTsgE5A/oSwdtY1NmAfyHDBu6yiMk7N3/rSvicXnnR898SMEdskskBFWY= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DU0PR08MB8613.eurprd08.prod.outlook.com (2603:10a6:10:403::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.20; Tue, 22 Aug 2023 16:28:22 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::b3a3:eb56:481f:99c2]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::b3a3:eb56:481f:99c2%4]) with mapi id 15.20.6699.022; Tue, 22 Aug 2023 16:28:22 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "jackmin@nvidia.com" , "konstantin.v.ananyev@yandex.ru" CC: "dev@dpdk.org" , Ruifeng Wang , Aditya Ambadipudi , Wathsala Wathawana Vithanage , nd , nd Subject: RE: [RFC] lib/st_ring: add single thread ring Thread-Topic: [RFC] lib/st_ring: add single thread ring Thread-Index: AQHZ1HRsj5UOZIDmtU+IXup+eth44a/1xIzwgAAxGICAAIwWMA== Date: Tue, 22 Aug 2023 16:28:19 +0000 Message-ID: References: <20230821060420.3509667-1-honnappa.nagarahalli@arm.com> <77e5bc29-fb30-7ef4-06cc-ab97105d6447@lysator.liu.se> In-Reply-To: <77e5bc29-fb30-7ef4-06cc-ab97105d6447@lysator.liu.se> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 31ED17320E4A3D45AF61B894B1D09276.0 x-checkrecipientchecked: true authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DBAPR08MB5814:EE_|DU0PR08MB8613:EE_ x-ms-office365-filtering-correlation-id: d109715f-c0a2-4f3b-439c-08dba32ccbe1 nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MKgzrImGuk9xR77tBLkhO+Y1AJgEZGm6fJjBlTrXDSHQHQzoqQMNKpUJy1KEiD0MQLZqhktJ+eoyF8tF4gZXQyaT58+CIAtbqCqb8+Z5V0NK5iZGm0nO/RY6/EPWVyWUTmXfbLzxlkKwcYWE6cFO2SeYx0R8boboSbrlIlFfjtaDO35F52CKSk6XdFYfxE8PRQFzjDUwyk9RmmnpNOJ+ah2Rtwy/B9C8vb6dm+URbUMfXucHf7VcG/GIrjfvtwXBaQqdrhF0+MjNSK1x9Jpau73iJBKhvZ65aK5VurAvc20uJlMVriFyqBLoWjTBknwQxRegCSNhu1oyUGYpsSROXDUGBHYVgrU+ScjoJzUxX9zohgp1yMOMiSHHppijr5WGJRFCBeMNcToekBPbBor/d0fRQc+hV1z5BVa8UgXi7KS3Qy+jPxd8IQEWEGWXtHbVz5V9J5kp+e7TF4RgJmEVqJp0UtMCebhx/NJf9HwMFKgkx7+Ge8egAlRKOdTVofaMSa7gisjAPMga/eRjZ5xHOeI87G6wgqp8NIw+IZrXCrou757QUrraeBCTDQbm5NNGHpgcLLHonqkV2xv7EIUCj76QrIQfWzM8ssoGp1a9rJw= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(346002)(376002)(136003)(396003)(39860400002)(451199024)(1800799009)(186009)(2906002)(38070700005)(38100700002)(53546011)(6506007)(83380400001)(5660300002)(52536014)(33656002)(86362001)(7696005)(8676002)(8936002)(4326008)(966005)(316002)(9686003)(296002)(66946007)(64756008)(54906003)(76116006)(66556008)(66446008)(66476007)(110136005)(478600001)(122000001)(71200400001)(6666004)(55016003)(41300700001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q0RxQmtBQ3U3M0grRFBmMWQ2SGptRzFWTmwrWXBTQ21EWlhyQkhhSjREelly?= =?utf-8?B?Z3ZteFI2Q2N4MlpNUHBDdi9mSy9DVE44K2FOZTMvMlF4SFFZcG4zVis5Uko0?= =?utf-8?B?RTdrMnpOK3Rkanh5dk02Y21NUUxSZFlGbE8vNzlxNm5sc3JRajMwdXF2YlFP?= =?utf-8?B?RlEyUU1PZ1crT0gySTFDZ3Bsdjh1Yk1WRkRtTGZoaE9uZnBlVVhGUE03Tmxz?= =?utf-8?B?K1NocUVOR1VpWFVIcUlDVGpXM2tUVE02Q0xwYzhkMzAzenUwMEFNMGtVM1hp?= =?utf-8?B?MFJFUVE2Y1M3UnlMcFZqelBnZVBYVkZ4elhHTHB4UlJZc1hiY0NUWG9wazBT?= =?utf-8?B?RmJaSDFCOGEwNVM2WlVXVzRCcWlCTFFlNC9yUmFHVHBkK1B5OFE3Yk1kRXJE?= =?utf-8?B?TERuT2ttUVM4ZVRxeDRNSjEvSE11R3Z6bTNwWVJGWmUwajZpSCtPQU05cDRa?= =?utf-8?B?cnJrRTVQVFlvbEZ6eHRneitwMThBMEpreS8xMThRVDRTRmwzVURJeVg5UjQr?= =?utf-8?B?Qzk5bnl3aGVuY3FuNzJsL3kzdGRWbUZEbzZ5bkFXWDRpSjV2TGZOZXpwTkxF?= =?utf-8?B?ZFFFRWRVSlNOdHNMT2NiOU5KS04xbHdkalVWTmhpRnllK01INzVOV1lpQnlN?= =?utf-8?B?Zml1QkNnR1NFUndVS0pOeEFubUlYaElEcG5hMlV1K0FvRHpxSGZiTWNlSGVz?= =?utf-8?B?aUF2RDFxaUdHMDJLMXZsd1VrM011T0N6WmtrbXlyRHc3OVlGUDd6STBzUGYy?= =?utf-8?B?eDNydjdFQXY2WEZTaTd4SE1QUmZYaFdDSlV6L1IrUnpmOENTNW5HdSs4QS9t?= =?utf-8?B?NUFNK2QybXNpaWhaQXJRd0laa1ZDRXZqUWJyZFJMK1ZibytqaXprb05DZ0xo?= =?utf-8?B?TE1ObWU4S2hKOXc4TkpieUxBTjV5N0xmdndkaVdRSnRKaWNlZXpOZEdoVkJB?= =?utf-8?B?T0RTbDlrUjJWWWxmWlpQZVorMWNJNC9aVmdITHhBVjBXeHBCcXBISU1UZWJn?= =?utf-8?B?RUxucXpSdGV2OFZBM1A1MEs3OXhkTWlXQmsyc21CaE0wa3UvQ3N6ODE5NWFU?= =?utf-8?B?dld5blpiMmlaNFY5eDZFTFlRVjBISjVnSDRiR0ZEUlp5MUF1TDdLaGxoOW5I?= =?utf-8?B?QlhpYXIwa0FneEpqWFN1d2RPbElTcDlOL29FUUFHVFZXbHpxL0R1RkMyOXBQ?= =?utf-8?B?NUFST1ZCZENiUm9LS0YvelFyUnM1Z1Y4aUdSZmFjL2QxT0ViRmpmK1RodWhw?= =?utf-8?B?RGJkcXo1WGxLSk8wWitmbGExQXFxRVBYWnI5Q0g4QjJPb3JlN09TZElaa1RL?= =?utf-8?B?TGFodUVXNTNRajRSc25rNURPakhFNGFaQ0RtQ2ZtZ09ES1dqcWZwOFFuR1hI?= =?utf-8?B?NjRvUU02RXZvQnpnNklOckh3YUJZOEg2REVIdmtCL0lPSUhaMlVIOTRRTDFz?= =?utf-8?B?UDZkMWYyV1VkRzRCWnJXaldtclZVWkQ1QzQwWnNoaHU3YTRPdllIOGFwbTNC?= =?utf-8?B?VzlNLyswNllIMGJPS1FtQmF1OWFjd2RNdlQ2VmdOK2VZMWYxZm5tVVBPTzNY?= =?utf-8?B?M1R6ZHAraDNxQ2psYzQ3aS9QZUZ1RjdmMEhIU0h4UUJBMWF5NnozYTlHYXlJ?= =?utf-8?B?TnFTbXVyK01xa21Vb2JuWmwrK1ZZRDkvNTRXdklHQmJObTlycXA5THlON2o5?= =?utf-8?B?SHdQSFd4SExvdFBYWW9ETHpPc1liVFJabTN6aHBST0ttUHZrTndrcitHU0g0?= =?utf-8?B?YXBDK1Q2YXBpTCt3U3BoT2ZCMW1ocDBDamVOK3Fnekt1Q1AveG1EOFZiQVNi?= =?utf-8?B?bHVnSTFObndzMy9RWlpmWE1BcHhVekZXOThlYi9MS0NkVk9hMUU4SjkvNXh0?= =?utf-8?B?WWtkVFBsVHptbE5HaytJVG1vQmVnNXJGdUVrUG1IaFlNL3VwR3V6ODBvM2dk?= =?utf-8?B?STRzZlhqUzUzb1hlNFNZUDBUZlJOY21WUFNQb2dPYzFKd3FhVXQrQ2F5a0cw?= =?utf-8?B?Y3c5UWJxeTA4TytXNnlhNzlrVURINEFiNXRVeGlHSzIvdlVNZThoclNTWU0w?= =?utf-8?B?Z01qVTRyKzdRajFMNnBpZHhWckE2MjMzWlUzZFFFOVgwajNxc1cxeUhFN0Y4?= =?utf-8?B?MDI4M2FZSU44YktpZm1wdDBjeURtVGVqdnNRR2VObG1uc2ZHQUY4cjhSbkNT?= =?utf-8?Q?FF2uT0CX2lr8PYM382L6zG0=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DBAPR08MB5814.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d109715f-c0a2-4f3b-439c-08dba32ccbe1 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2023 16:28:19.7046 (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-CrossTenant-userprincipalname: D/OTw9BYdwXWZW3HYlbLVESklTjZNLBldUolaZBepzSWRq8kIs5wK94GnEovycm6MgPkBrhX8C5D43lkYP6qVg32k8ZfSu6+ZOBozGA/O/k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8613 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PHNuaXA+DQoNCj4gPj4gU3ViamVjdDogUmU6IFtSRkNdIGxpYi9zdF9yaW5nOiBhZGQgc2luZ2xl IHRocmVhZCByaW5nDQo+ID4+DQo+ID4+IE9uIDIwMjMtMDgtMjEgMDg6MDQsIEhvbm5hcHBhIE5h Z2FyYWhhbGxpIHdyb3RlOg0KPiA+Pj4gQWRkIGEgc2luZ2xlIHRocmVhZCBzYWZlIGFuZCBtdWx0 aS10aHJlYWQgdW5zYWZlIHJpbmcgZGF0YSBzdHJ1Y3R1cmUuDQo+ID4+DQo+ID4+IE9uZSBtdXN0 IGhhdmUgc2V0IHRoZSBiYXIgdmVyeSBsb3csIGlmIG9uZSBuZWVkcyB0byBzcGVjaWZ5IHRoYXQg YW4NCj4gPj4gQVBJIGlzIHNpbmdsZS10aHJlYWQgc2FmZS4NCj4gPj4NCj4gPj4+IFRoaXMgbGli cmFyeSBwcm92aWRlcyBhbiBzaW1wbGUgYW5kIGVmZmljaWVudCBhbHRlcm5hdGl2ZSB0bw0KPiA+ Pj4gbXVsdGktdGhyZWFkIHNhZmUgcmluZyB3aGVuIG11bHRpLXRocmVhZCBzYWZldHkgaXMgbm90 IHJlcXVpcmVkLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEhvbm5hcHBhIE5hZ2FyYWhh bGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0uY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiB2MToN Cj4gPj4+IDEpIFRoZSBjb2RlIGlzIHZlcnkgcHJlbGltbmFyeSBhbmQgaXMgbm90IGV2ZW4gY29t cGlsZWQNCj4gPj4+IDIpIFRoaXMgaXMgaW50ZW5kZWQgdG8gc2hvdyB0aGUgQVBJcyBhbmQgc29t ZSB0aG91Z2h0cyBvbg0KPiA+Pj4gaW1wbGVtZW50YXRpb24NCj4gPj4NCj4gPj4gSWYgeW91IGhh dmVuJ3QgZG9uZSBpdCBhbHJlYWR5LCBtYXliZSBpdCBtaWdodCBiZSB3b3J0aCBsb29raW5nDQo+ ID4+IGFyb3VuZCBpbiB0aGUgY29kZSBiYXNlIGZvciBhbHJlYWR5LWV4aXN0aW5nLCBtb3JlLW9y LWxlc3Mgb3Blbi1jb2RlZA0KPiA+PiBmaWZvL2NpcmN1bGFyIGJ1ZmZlciB0eXBlIGRhdGEgc3Ry dWN0dXJlcy4gSnVzdCB0byBtYWtlIHN1cmUgdGhvc2UNCj4gPj4gY2FuIGJlIGVsaW1pbmF0ZWQg aWYgdGhpcyBtYWtlcyBpdCBpbnRvIERQREsuDQo+ID4+DQo+ID4+IFRoZXJlJ3Mgb25lIGluIHJ0 ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5jLCBhbmQgSSB0aGluayBvbmUgaW4gdGhlIFNXDQo+ID4+ IGV2ZW50ZGV2IGFzIHdlbGwuIFNlZW1zIHRvIGJlIG9uZSBpbiBjbWRsaW5lX2NpcmJ1Zi5oIGFz IHdlbGwuIEknbQ0KPiA+PiBzdXJlIHRoZXJlIGFyZSBtYW55IG1vcmUuDQo+ID4gSSBrbmV3IHRo ZXJlIGFyZSBzb21lLCBidXQgaGF2ZSBub3QgbG9va2VkIGF0IHRoZW0geWV0LiBJIHdpbGwgbG9v ayBhdCB0aGVtLg0KPiA+DQo+ID4+DQo+ID4+IFlvdSBjb3VsZCBwaWNrIHNvbWUgb3RoZXIgbmFt ZSBmb3IgaXQsIGluc3RlYWQgb2YgdGhlIHNsaWdodGx5DQo+ID4+IGF3a3dhcmQgInN0X3Jpbmci IChlLmcuLCAiZmlmbyIsICJjYnVmIiwgImNidWZmZXIiLCAiY2lyY19idWZmZXIiKS4NCj4gPj4g VGhhdCB3b3VsZCBhbHNvIGxlYXZlIHlvdSB3aXRoIG1vcmUgZnJlZWRvbSB0byBzdHJheSBmcm9t IHRoZSBNVCBzYWZlDQo+ID4+IHJpbmcgQVBJIHdpdGhvdXQgc3VycHJpc2luZyB0aGUgdXNlciwg aWYgbmVlZGVkIChhbmQgSSB0aGluayBpdCBpcyBuZWVkZWQpLg0KPiA+IFRoZSB0aG91Z2h0IHdh cyB0byBtYWtlIGl0IGNsZWFyIHRoYXQgdGhpcyBpcyBmb3Igc2luZ2xlLXRocmVhZCB1c2UgKGku ZS5ub3QgZXZlbg0KPiBwcm9kdWNlciBhbmQgY29uc3VtZXIgb24gZGlmZmVyZW50IHRocmVhZHMp LCBtYXkgYmUgSSBkbyBub3QgbmVlZCB0byB0cnkgaGFyZC4NCj4gPiAiZmlmbyIgbWlnaHQgbm90 IGJlIGdvb2Qgb3B0aW9uIGdpdmVuIHRoYXQgZGVxdWV1ZS9lbnF1ZXVlIGF0IGJvdGggZW5kcyBv Zg0KPiB0aGUgcmluZyBhcmUgcmVxdWlyZWQvYWxsb3dlZC4NCj4gPiBXaWtpcGVkaWEgWzFdIGFu ZCBvdGhlcnMgWzJdLCBbM10gaW5kaWNhdGVzIHRoYXQgdGhpcyBkYXRhIHN0cnVjdHVyZQ0KPiA+ IHNob3VsZCBiZSBjYWxsZWQgJ2RlcXVlJyAocHJvbm91bmNlZCBhcyBkZWNrKS4gSSB3b3VsZCBw cmVmZXIgdG8gZ28NCj4gPiB3aXRoIHRoaXMgKGFzc3VtaW5nIHRoaXMgd2lsbCBiZSBvdXRzaWRl IG9mICdydGVfcmluZycpDQo+ID4NCj4gPiBbMV0gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp a2kvRG91YmxlLWVuZGVkX3F1ZXVlDQo+ID4gWzJdDQo+ID4gaHR0cHM6Ly93d3cuZ2Vla3Nmb3Jn ZWVrcy5vcmcvZGVxdWUtc2V0LTEtaW50cm9kdWN0aW9uLWFwcGxpY2F0aW9ucy8NCj4gPiBbM10g aHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzg4MDI1NC93aHktZG8td2UtbmVl ZC1kZXF1ZS0NCj4gZGF0YS1zdHJ1Y3R1cmVzLWluLXRoZS1yZWFsLQ0KPiB3b3JsZCM6fjp0ZXh0 PUElMjBEZXF1ZSUyMGlzJTIwYSUyMGRvdWJsZSx0aGluZyUyMG9uJTIwZnJvbnQlMjBvZg0KPiAl MjBxdWV1ZS4NCj4gPg0KPiA+Pg0KPiA+PiBIb3BlZnVsbHkgeW91IGNhbiByZWR1Y2UgQVBJIGNv bXBsZXhpdHkgY29tcGFyZWQgdG8gdGhlIE1ULXNhZmUgdmVyc2lvbi4NCj4gPj4gSGF2aW5nIGEg bmFtZSBmb3IgdGhlc2Uga2luZHMgb2YgZGF0YSBzdHJ1Y3R1cmVzIGRvZXNuJ3QgbWFrZSBhIGxv dA0KPiA+PiBvZiBzZW5zZSwgZm9yIGV4YW1wbGUuIFNraXAgdGhlIGR1bXAgZnVuY3Rpb24uIFJl bGF4IGZyb20NCj4gPj4gYWx3YXlzX2lubGluZSB0byBqdXN0IHJlZ3VsYXIgaW5saW5lLg0KPiA+ IFllcywgcGxhbiBpcyB0byByZWR1Y2UgY29tcGxleGl0eSAoY29tcGFyZWQgdG8gcnRlX3Jpbmcp IGFuZCBzb21lIEFQSXMgY2FuIGJlDQo+IHNraXBwZWQgdW50aWwgdGhlcmUgaXMgYSBuZWVkLg0K PiA+DQo+ID4+DQo+ID4+IEknbSBub3Qgc3VyZSB5b3UgbmVlZCBidWxrL2J1cnN0IHR5cGUgb3Bl cmF0aW9ucy4gV2l0aG91dCBhbnkgbWVtb3J5DQo+ID4+IGZlbmNlcywgYW4gb3B0aW1pemluZyBj b21waWxlciBzaG91bGQgZG8gYSBwcmV0dHkgZ29vZCBqb2Igb2YNCj4gPj4gdW5yb2xsaW5nIG11 bHRpcGxlLWVsZW1lbnQgYWNjZXNzIHR5cGUgb3BlcmF0aW9ucywgYXNzdW1pbmcgeW91IGxlYXZl DQo+ID4+IHRoZSBTVCByaW5nIGNvZGUgaW4gdGhlIGhlYWRlciBmaWxlcyAob3RoZXJ3aXNlIExU TyBpcyBuZWVkZWQpLg0KPiA+IElNTywgYnVsay9idXJzdCBBUElzIGFyZSBhYm91dCB0aGUgZnVu Y3Rpb25hbGl0eSByYXRoZXIgdGhhbiBsb29wIHVucm9sbGluZy4NCj4gQVBJcyB0byB3b3JrIHdp dGggc2luZ2xlIG9iamVjdHMgY2FuIGJlIHNraXBwZWQgKHVzZSBidWxrIEFQSXMgd2l0aCBuPTEp Lg0KPiA+DQo+IA0KPiBHaXZlbiB0aGF0IHRoaXMgZGF0YSBzdHJ1Y3R1cmUgd2lsbCBvZnRlbiBi ZSB1c2UgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlcg0KPiBidXJzdC9idWxrIHR5cGUgb3BlcmF0 aW9ucywgSSBhZ3JlZS4NCj4gDQo+IFdoYXQgYWJvdXQgcGVlaz8gSSBndWVzcyB5b3UgY291bGQg aGF2ZSBhIGJ1cnN0L2J1bGsgcGVlayBhcyB3ZWxsLCB3b3VsZCB0aGF0DQo+IG9wZXJhdGlvbiBi ZSBuZWVkZWQuIEkgdGhpbmsgaXQgd2lsbCBiZSBuZWVkZWQsIGJ1dCB0aGUgaW50cm9kdWN0aW9u IG9mIHN1Y2ggQVBJDQo+IGVsZW1lbnRzIGNvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZC4NClllcywg SSB3aWxsIHByb3ZpZGUgdGhpcyBmdW5jdGlvbmFsaXR5LCBidXQgd2lsbCBkaWZmZXIgZm9yIGxh dGVyLg0KDQo+IA0KPiA+Pg0KPiA+PiBJIHRoaW5rIHlvdSB3aWxsIHdhbnQgYSBwZWVrLXR5cGUg b3BlcmF0aW9uIG9uIHRoZSByZWFkZXIgc2lkZS4gVGhhdA0KPiA+PiBtb3JlIGZvciBjb252ZW5p ZW5jZSwgcmF0aGVyIHRoYW4gdGhhdCBJIHRoaW5rIHRoZSBjb3BpZXMgd2lsbA0KPiA+PiBhY3R1 YWxseSBiZSB0aGVyZSBpbiB0aGUgb2JqZWN0IGNvZGUgKHN1Y2ggc2hvdWxkIGJlIGVsaW1pbmF0 ZWQgYnkNCj4gPj4gdGhlIGNvbXBpbGVyLCBnaXZlbiB0aGF0IHRoZSBiYXJyaWVycyBhcmUgZ29u ZSkuDQo+ID4+DQo+ID4+PiAzKSBNb3JlIEFQSXMgYW5kIHRoZSByZXN0IG9mIHRoZSBpbXBsZW1l bnRhdGlvbiB3aWxsIGNvbWUgaW4gc3Vic2VxdWVudA0KPiA+Pj4gICAgICB2ZXJzaW9ucw0KPiA+ Pj4NCj4gPj4+ICAgIGxpYi9zdF9yaW5nL3J0ZV9zdF9yaW5nLmggfCA1NjcNCj4gPj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+ICAgIDEgZmlsZSBjaGFuZ2Vk LCA1NjcgaW5zZXJ0aW9ucygrKQ0KPiA+Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9zdF9y aW5nL3J0ZV9zdF9yaW5nLmgNCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL3N0X3Jpbmcv cnRlX3N0X3JpbmcuaCBiL2xpYi9zdF9yaW5nL3J0ZV9zdF9yaW5nLmgNCj4gPj4+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0IGluZGV4IDAwMDAwMDAwMDAuLjhjYjg4MzI1OTENCj4gPj4+IC0tLSAvZGV2 L251bGwNCj4gPj4+ICsrKyBiL2xpYi9zdF9yaW5nL3J0ZV9zdF9yaW5nLmgNCj4gPj4+IEBAIC0w LDAgKzEsNTY3IEBADQo+ID4+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNs YXVzZQ0KPiA+Pj4gKyAqIENvcHlyaWdodChjKSAyMDIzIEFybSBMaW1pdGVkDQo+ID4+PiArICov DQo+ID4+PiArDQo+ID4+PiArI2lmbmRlZiBfUlRFX1NUX1JJTkdfSF8NCj4gPj4+ICsjZGVmaW5l IF9SVEVfU1RfUklOR19IXw0KPiA+Pj4gKw0KPiA+Pj4gKy8qKg0KPiA+Pj4gKyAqIEBmaWxlDQo+ ID4+PiArICogUlRFIFNpZ25sZSBUaHJlYWQgUmluZyAoU1QgUmluZykNCj4gPj4+ICsgKg0KPiA+ Pj4gKyAqIFRoZSBTVCBSaW5nIGlzIGEgZml4ZWQtc2l6ZSBxdWV1ZSBpbnRlbmRlZCB0byBiZSBh Y2Nlc3NlZA0KPiA+Pj4gKyAqIGJ5IG9uZSB0aHJlYWQgYXQgYSB0aW1lLiBJdCBkb2VzIG5vdCBw cm92aWRlIGNvbmN1cnJlbnQgYWNjZXNzDQo+ID4+PiArdG8NCj4gPj4+ICsgKiBtdWx0aXBsZSB0 aHJlYWRzLiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3NpbmcgdGhlIFNUDQo+ ID4+PiArcmluZywNCj4gPj4+ICsgKiB0aGVuIHRoZSB0aHJlYWRzIGhhdmUgdG8gdXNlIGxvY2tz IHRvIHByb3RlY3QgdGhlIHJpbmcgZnJvbQ0KPiA+Pj4gKyAqIGdldHRpbmcgY29ycnVwdGVkLg0K PiA+Pg0KPiA+PiBZb3UgYXJlIGJhc2ljYWxseSBzYXlpbmcgdGhlIHNhbWUgdGhpbmcgdGhyZWUg dGltZXMgaGVyZS4NCj4gPj4NCj4gPj4+ICsgKg0KPiA+Pj4gKyAqIC0gRklGTyAoRmlyc3QgSW4g Rmlyc3QgT3V0KQ0KPiA+Pj4gKyAqIC0gTWF4aW11bSBzaXplIGlzIGZpeGVkOyB0aGUgcG9pbnRl cnMgYXJlIHN0b3JlZCBpbiBhIHRhYmxlLg0KPiA+Pj4gKyAqIC0gQ29uc3VtZXIgYW5kIHByb2R1 Y2VyIHBhcnQgb2Ygc2FtZSB0aHJlYWQuDQo+ID4+PiArICogLSBNdWx0aS10aHJlYWQgcHJvZHVj ZXJzIGFuZCBjb25zdW1lcnMgbmVlZCBsb2NraW5nLg0KPiA+Pg0KPiA+PiAuLi50d28gbW9yZSB0 aW1lcyBoZXJlLiBPbmUgbWlnaHQgZ2V0IHRoZSBpbXByZXNzaW9uIHlvdSByZWFsbHkgZG9uJ3QN Cj4gPj4gdHJ1c3QgdGhlIHJlYWRlci4NCj4gPj4NCj4gPj4+ICsgKiAtIFNpbmdsZS9CdWxrL2J1 cnN0IGRlcXVldWUgYXQgVGFpbCBvciBIZWFkDQo+ID4+PiArICogLSBTaW5nbGUvQnVsay9idXJz dCBlbnF1ZXVlIGF0IEhlYWQgb3IgVGFpbA0KPiA+Pg0KPiA+PiBEb2VzIHRoaXMgbm90IHNvdW5k IG1vcmUgbGlrZSBhIGRlcXVlLCB0aGFuIGEgRklGTy9jaXJjdWxhciBidWZmZXI/DQo+ID4+IEFy ZSB0aGVyZSBhbnkgZXhhbXBsZXMgd2hlcmUgdGhpcyBmdW5jdGlvbmFsaXR5ICh0aGUNCj4gPj4g ZG91YmxlLWVuZGVkbmVzcykgaXMgbmVlZGVkIGluIHRoZSBEUERLIGNvZGUgYmFzZT8NCj4gPiBJ IHNlZSwgeW91IGFyZSBjYWxsaW5nIGl0ICdkZXF1ZScgYXMgd2VsbC4gQmFzaWNhbGx5LCB0aGlz IHBhdGNoDQo+ID4gb3JpZ2luYXRlZCBkdWUgdG8gYSByZXF1aXJlbWVudCBpbiBNTFggUE1EIFsx XQ0KPiA+DQo+ID4gWzFdDQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL0RQREsvZHBkay9ibG9iL21h aW4vZHJpdmVycy9uZXQvbWx4NS9tbHg1X2h3c19jbnQuaA0KPiA+ICNMMzgxDQo+ID4NCj4gPj4N Cj4gPj4+ICsgKg0KPiA+Pj4gKyAqLw0KPiA+Pj4gKw0KPiA+Pj4gKyNpZmRlZiBfX2NwbHVzcGx1 cw0KPiA+Pj4gK2V4dGVybiAiQyIgew0KPiA+Pj4gKyNlbmRpZg0KPiA+Pj4gKw0KPiA+Pj4gKyNp bmNsdWRlIDxydGVfc3RfcmluZ19jb3JlLmg+DQo+ID4+PiArI2luY2x1ZGUgPHJ0ZV9zdF9yaW5n X2VsZW0uaD4NCj4gPj4NCj4gPj4gSXMgdGhlIGludGVudGlvbiB0byBwcm92aWRlIGEgcmluZyB3 aXRoIGNvbXBpbGUtdGltZSB2YXJpYWJsZSBlbGVtZW50DQo+ID4+IHNpemU/IEluIG90aGVyIHdv cmRzLCB3aGVyZSB0aGUgZWxlbWVudHMgb2YgYSBwYXJ0aWN1bGFyIHJpbmcNCj4gPj4gaW5zdGFu Y2UgaGFzIHRoZSBzYW1lIGVsZW1lbnQgc2l6ZSwgYnV0IGRpZmZlcmVudCByaW5ncyBtYXkgaGF2 ZSBkaWZmZXJlbnQNCj4gZWxlbWVudCBzaXplcy4NCj4gPj4NCj4gPj4gU2VlbXMgbGlrZSBhIGdv b2QgaWRlYSB0byBtZSwgaW4gdGhhdCBjYXNlLiBBbHRob3VnaCBvZnRlbiB5b3Ugd2lsbA0KPiA+ PiBoYXZlIHBvaW50ZXJzLCBpdCB3b3VsZCBiZSB1c2VmdWwgdG8gc3RvcmUgbGFyZ2VyIHRoaW5n cyBsaWtlIHNtYWxsDQo+ID4+IHN0cnVjdHMsIGFuZCBtYXliZSBzbWFsbGVyIGVsZW1lbnRzIGFz IHdlbGwuDQo+ID4gWWVzLCB0aGUgaWRlYSBpcyB0byBtYWtlIHRoZSBlbGVtZW50IHNpemUgZmxl eGlibGUgYW5kIGFsc28gY29tcGlsZS10aW1lDQo+IGNvbnN0YW50Lg0KPiA+DQo+ID4+DQo+ID4+ PiArDQo+ID4+PiArLyoqDQoNCjxzbmlwPg0K