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 2575AA00C2; Sun, 27 Mar 2022 19:42:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E570B406A2; Sun, 27 Mar 2022 19:42:32 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2048.outbound.protection.outlook.com [40.107.21.48]) by mails.dpdk.org (Postfix) with ESMTP id 132C940151 for ; Sun, 27 Mar 2022 19:42:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fsP1rdSa4XkKd++xa+h26A7DD5Ock9tNK//5zUP8edMuzRO7EVvGVUZJBkJg0q94+TYumJNaW0mgZpneohL9/T6wKFYx0EjHqluizwS5mCMglOnBgJDq4jKSFgNayJG/E0pJHBox4/XlYiHxkjhPeHX3hgLZ7wOlJhmf0ujLMStoEV0y8pzYuM/8zo7nB6oH7WogZv3qGYFjl0LIIWlJ8Va8YIyppvOF3Us5UilmcdWqKwyhUu63LVRu0ltSp8B0DKwI+R0g2iChqtNmLVL8JH85sR68PS4OClZ+V4m9jfNrOS7JGuKCCWtWjzXpxr2dm+sNyM4yBLytfQECOQVrMQ== 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=yW4G+bOOV3NBN7n/JZMjkv82kCDPuW84cI4XysKcS18=; b=jVfLsvaq1y7dhtFA5ofRtT6V4isi5TP5zqe4YEKwFTvJ2S95TDFKDH7+sPbYT5zTX9huBQmoNQwF5vAKxnuxlSkrswIWSAL+TiVGPrG2xNVfsQi4FLKXFKUVMtBALtJv9iw2STWjmJZfEhhHPYjkeCmv1Kon2vkXs4dqKx161casdL5vwnaYFkd4Wbk1gB9poakaByzknznlLl8CMPuXvN+iO+N6ktDar3pcDRc6cUQKXNWPss2rBA6Y04lzWFyhx8m4EPMY+pW5ci44Prcc3d7UQRZta0Vbw+eU+zvluEm4jrIaGNyE2dUw9uUkps8EPQcpq/lqANjGMBpceyQWIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yW4G+bOOV3NBN7n/JZMjkv82kCDPuW84cI4XysKcS18=; b=Xwshohw3fB3M3DC1dS8tfQoiHM4KT177kg+C7zclRRFz4BSIc1vnsliwpMmHuQnonwHG3ny7oVg6DZF0UlnWid8rKBnFtImJ6oz/5h5x2LZyLRM9gSeL+LWWv3LvJlV9to9KePx80w6u/6gll33bD2k/1SjdfUb7JsVkygN9QI0= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by DB9PR07MB8497.eurprd07.prod.outlook.com (2603:10a6:10:36e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.15; Sun, 27 Mar 2022 17:42:29 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8058:d193:21b1:4715]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8058:d193:21b1:4715%6]) with mapi id 15.20.5123.015; Sun, 27 Mar 2022 17:42:29 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: "Ananyev, Konstantin" , "dev@dpdk.org" CC: Thomas Monjalon , David Marchand , Onar Olsen , "Honnappa.Nagarahalli@arm.com" , "nd@arm.com" , "mb@smartsharesystems.com" , "stephen@networkplumber.org" , Ola Liljedahl Subject: Re: [RFC] eal: add seqlock Thread-Topic: [RFC] eal: add seqlock Thread-Index: AQHYQIZ9wDkZOfooCUq3k8gPX7b0VKzTUosAgAAwdoA= Date: Sun, 27 Mar 2022 17:42:28 +0000 Message-ID: <77168168-eadb-9a0b-b51e-9ccdf8ad7230@ericsson.com> References: <20220325202428.94628-1-mattias.ronnblom@ericsson.com> In-Reply-To: Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d68cbfbf-25a7-43d9-a8c8-08da10192a4e x-ms-traffictypediagnostic: DB9PR07MB8497:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kTXfuY/iJZrXhP87KXqH1sKbf15Al7UpRWvUuWN3uTHg1WH81gh4RghnYMLQi/XBGb9KGsrQEanDXvMbxqZsfsKJih5SvIhK9LnaAN2PXofMTfDvKplWo+x2b8h/QHLmMj/mGwHKEf3wa61o1YPR2dugPmfNy0ryY1mek20/g9REkh5CnEMq0pjFILjbL52CW5wmesoVn2PsUmt8/9f9VKSb0fBy7TcbrNuL7a/S/qfHblPZQKfl2YQ8FIkhSZYphxkovELaISqGTDWoDuUkqKFMOZOyZuAqgBYEGT+L6TnbrPlAfwkpcyWO+J0577Z5xUNLFWolQZgIv29+gFj5TMFddnBOez3rXXM7fCfQnPQVsxC1TX8qeAfLywKB/sbpR0cqYNcFdNv4gBRuasLyHjsdtAE1UeqUWr5r00ywIEO7t7PZQvYE3s6mdtoFOB9sBqhscVDJ883JVX45k07oVDP5XJz8XgMsqJ5eG+7SJdLn6vxV6pWRkcfoZR0jHPZcziSuUAip2TOa5jBxvqYKmJJG54f4cNI+uauD3BdtpeViO6kB6maKCYR25qVgINq4JEWSe5xhEqj2/9rD1B/+HmDRVoiw9JcXdKVTReeSt58NRgM7lNgE3snR2BZaKdxPVAfbCR0Lfhcv4i0Ist2O+4/fa4ZpDda9pkjeMPkrqg0pBG04jSVAm9gxc6gW5trVFqSgsi4GbVUOqt/3kc2bVjnZRu88Ck1lX83tetFuPYEPQE3tvOifirLP1yTT5bkolLnCVqr3QRMWFOg3k7yoaA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(110136005)(53546011)(6512007)(85182001)(316002)(54906003)(38100700002)(31696002)(5660300002)(71200400001)(6506007)(508600001)(6486002)(76116006)(31686004)(186003)(66556008)(66476007)(66946007)(26005)(2906002)(64756008)(2616005)(91956017)(66446008)(83380400001)(38070700005)(85202003)(4326008)(82960400001)(36756003)(8676002)(122000001)(8936002)(86362001)(45980500001)(43740500002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bkt1dHhMQlJBYVRtSEJ6azJVSWtPL01xUG1GTy85YjFKUTl5NWtmVHdjbXFG?= =?utf-8?B?ZkZIM3NYYVdvR21KdDJRNmw1dFFoTUJWQ0JVOVpsaEpNK3JiRkQvc1ZYRlhG?= =?utf-8?B?OG9Cc3RLeWY1cVE4TUNjTmwyV1dObDMyd2Z1ZkFTbHB4ZnFXRFdQVG4rY280?= =?utf-8?B?VnJ6MjFIV1FNUWZTbTkxcTlaMVkzTllMTDQzWGVML1Z6aVdNTDdlSGlOOFll?= =?utf-8?B?Rkd3bEtLd05uaS93cG9ia3BkY1lkSHBJNmFpc0FNQWFwbm5IRVZqUTExTkk1?= =?utf-8?B?NVRCNTBzVHJBdDRhZGJzdE9sVjdsKzhubHFJZVQzZlZuWmJIdWFBQ2Fydkla?= =?utf-8?B?SU95QVNmVEFzMjNuZFphNWJybUFvcDl1a29RYzVHTEdxS1k2YWpOc2kvYTdG?= =?utf-8?B?TU14ay9LZy9vOENQOGJycE5wWUJwdDg5NDQ3UmhzSUlSWlBJZXo4a3AwYmpL?= =?utf-8?B?VEJDc3AyZER6R24xSWtwVm5qK1NPcDduMzI5WmhoNU45T1hjVDcxRkNRZGVL?= =?utf-8?B?bzA3Y21yK2UzUDRaQUtidjR1ZlZzUkVyRWY5TXdCejhqbUl5VDZ6aW8vY3NP?= =?utf-8?B?RmlrRkdCZUJ6Z1l4ZysrVTZvYk9aeEx2MFJnb3pWTTZwQlN5OHo0bEtlMXhN?= =?utf-8?B?cXYva2k5S3FXaDNXQnZ3ME1QUEtDd2swQWdsTEhyZVlWcDVPb1lTVVNqQndh?= =?utf-8?B?c1NhYU1TREdHakRuVVorWTdjU1g1d1VYT2xKZ0NWeVppZ3FWelRNQ2V4YWVt?= =?utf-8?B?U29CZmN1UE1DL0EzSjJJOWJncU1PNDBWNm1oQVRuaXpMTSs0dDJZOXQvbE5X?= =?utf-8?B?bmIxUERYZFg4SGZ2MUNyekdwcWNFYzdBVTBYRHprclY3N1g4OFUwTUY1MHJs?= =?utf-8?B?T0o5cjExMmNrSmVWZGRsdm5oZElNOHQ4eFN1aHdQWm1YYVN5ZmpvbU84eXBX?= =?utf-8?B?dCtnSkRxZUo1Z3lzZ3JXK0xmM1Qva0JnZXBPR0R6bTZLeUM3U0ZsSnE0V0x3?= =?utf-8?B?Vlc3UmFNNmZPU1pzQmkrb2llZ3RyeHk3OExmamZONVdnSlU2S2k3UXdMTUlC?= =?utf-8?B?OUFnR01LajRjaVVRTWE5eUliSC93OTZnYkxOQVZiNDR4NHVuMi92bGZqSVlz?= =?utf-8?B?b1JIWUVUbWhGUUNjc0VTd1MxVXUrSVhOWTVneDY3RytwRWREMXdJYUpJMm42?= =?utf-8?B?QU5IK2tsem1JN1BIRCtwbnMwZzlYS1pyTk1JWlBlVlpCYllKdkZxd21mcmRu?= =?utf-8?B?cVRMVkthUiszeExQeFRGbjhCSWJRR3g5N3FhSisydlN2Mmt6QVppOGRad04z?= =?utf-8?B?Q3h2eXhlRjZSaWdKUDdBREprOFFCWnZCR0puem5BV1pYR2NwNTRBenJsYmZ6?= =?utf-8?B?WjNxeElhc0R1SkhUeCtNSTZwOEMyeFJPUFJzeDVVMWRmQlNKUXNBbTAyZFA1?= =?utf-8?B?N0hCRHVzelgxWSs2VTVHOHFUZFQxK01aVkgyMFhuR2I0WGIzTW5IUDZNTWNS?= =?utf-8?B?VmpmVVl5UEVIcmxaNjV5VWRobTI4THVrWWZORmFTTTM5c2lVdE9OR1JsVDJV?= =?utf-8?B?K1ZzK3V1R1N4aWdWSTAzMWEyWFU4NVpBQUFCL2JLVEdPNzYwV1pTOVNxd2Ir?= =?utf-8?B?WWlObGhra3V3TVVJdHhUZFppUnRlVE03MkVkWXNSM3QyN1JtYTVpWjVzZERQ?= =?utf-8?B?TWxSenAxY1c0aDU2QlJjbTdYTHNmR2s2a3UxSzB6Q1A2S3VqdWY1N0c4TUNp?= =?utf-8?B?Uis4eW5uRGlUZ2UyUHRDRXhaUm1FVXBEZFQydXFmaDBuVHJ5bm1hMzR0WDNW?= =?utf-8?B?bFhKMlEvVFVlamVyN0dnczhZUklnZ3BVRTgxeWFiYk9ybXNsejRGV1F5UldI?= =?utf-8?B?TTlMOWVzQ0hHNkhrUzNINGN1QUlEN2lkaWlpOEZnRGpoeXJoVnpSYnI1RXJx?= =?utf-8?B?S013MndoRXhMWlY0WC9udWp3TUhwamtxL1pRU0tQbUI5SXdNQ2ZtMWN2WmRD?= =?utf-8?B?cVF2VXkzM3lzdk9EamNkcXlHQnFkTFpCeHpSb2ZsamtQUDJZVDFrbFFvd1Y4?= =?utf-8?B?UWc3dVFad3VITXZVd1BFQ0FMcXQyZHErMlRMZytKYURnNTFsVzF4elJ5VDgz?= =?utf-8?B?R3ovOXQrQ1RBY0xDZ2NQQlo3QXR1R01YUlpJRmFSM1M2Q1FOUXN4L3JBVkp5?= =?utf-8?B?VUpacllmVzN3emFydEd3c1lkL2JXdFpYdExWVVllU085NDRLUEJyMktkcTBM?= =?utf-8?B?OWVuVTN1dGwvYUNYTlliTmdneHlFbmJTbi85VkkxZzNsbSsxdEtudm5rcDF5?= =?utf-8?B?ZTdGZzBVdkk0UEZKbk5sUWJnNE11aVpkbmt3MnJQT0ltMVV2S0I4TjZEbnNh?= =?utf-8?Q?gEWQx9jQOY8ZRajs=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <328BAEE67F4B9C4EBD6B6D5EF89ADC6C@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d68cbfbf-25a7-43d9-a8c8-08da10192a4e X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2022 17:42:29.5433 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sn7d4pV6zji+opgBtCztFZlu4yxbFalgUng8x7AT9YGw6FKf9/TMhgGFXibWmnj4gBx4zvdalZ6IMV56YXF3gAUKQ+KlStqUvsmhHkoTxrY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR07MB8497 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 T24gMjAyMi0wMy0yNyAxNjo0OSwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToNCj4+IGRpZmYg LS1naXQgYS9saWIvZWFsL2luY2x1ZGUvbWVzb24uYnVpbGQgYi9saWIvZWFsL2luY2x1ZGUvbWVz b24uYnVpbGQNCj4+IGluZGV4IDk3MDA0OTQ4MTYuLjQ4ZGY1ZjFhMjEgMTAwNjQ0DQo+PiAtLS0g YS9saWIvZWFsL2luY2x1ZGUvbWVzb24uYnVpbGQNCj4+ICsrKyBiL2xpYi9lYWwvaW5jbHVkZS9t ZXNvbi5idWlsZA0KPj4gQEAgLTM2LDYgKzM2LDcgQEAgaGVhZGVycyArPSBmaWxlcygNCj4+ICAg ICAgICAgICAncnRlX3Blcl9sY29yZS5oJywNCj4+ICAgICAgICAgICAncnRlX3JhbmRvbS5oJywN Cj4+ICAgICAgICAgICAncnRlX3JlY2lwcm9jYWwuaCcsDQo+PiArICAgICAgICAncnRlX3NlcWxv Y2suaCcsDQo+PiAgICAgICAgICAgJ3J0ZV9zZXJ2aWNlLmgnLA0KPj4gICAgICAgICAgICdydGVf c2VydmljZV9jb21wb25lbnQuaCcsDQo+PiAgICAgICAgICAgJ3J0ZV9zdHJpbmdfZm5zLmgnLA0K Pj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvaW5jbHVkZS9ydGVfc2VxbG9jay5oIGIvbGliL2VhbC9p bmNsdWRlL3J0ZV9zZXFsb2NrLmgNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAw MDAwMDAwMDAwLi5iOTc1Y2E4NDhhDQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9saWIvZWFs L2luY2x1ZGUvcnRlX3NlcWxvY2suaA0KPj4gQEAgLTAsMCArMSw4NCBAQA0KPj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4+ICsgKiBDb3B5cmlnaHQoYykgMjAy MiBFcmljc3NvbiBBQg0KPj4gKyAqLw0KPj4gKw0KPj4gKyNpZm5kZWYgX1JURV9TRVFMT0NLX0hf DQo+PiArI2RlZmluZSBfUlRFX1NFUUxPQ0tfSF8NCj4+ICsNCj4+ICsjaW5jbHVkZSA8c3RkYm9v bC5oPg0KPj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4+ICsNCj4+ICsjaW5jbHVkZSA8cnRlX2F0 b21pYy5oPg0KPj4gKyNpbmNsdWRlIDxydGVfYnJhbmNoX3ByZWRpY3Rpb24uaD4NCj4+ICsjaW5j bHVkZSA8cnRlX3NwaW5sb2NrLmg+DQo+PiArDQo+PiArc3RydWN0IHJ0ZV9zZXFsb2NrIHsNCj4+ ICsJdWludDY0X3Qgc247DQo+PiArCXJ0ZV9zcGlubG9ja190IGxvY2s7DQo+PiArfTsNCj4+ICsN Cj4+ICt0eXBlZGVmIHN0cnVjdCBydGVfc2VxbG9jayBydGVfc2VxbG9ja190Ow0KPj4gKw0KPj4g K19fcnRlX2V4cGVyaW1lbnRhbA0KPj4gK3ZvaWQNCj4+ICtydGVfc2VxbG9ja19pbml0KHJ0ZV9z ZXFsb2NrX3QgKnNlcWxvY2spOw0KPiBQcm9iYWJseSB3b3J0aCB0byBoYXZlIHN0YXRpYyBpbml0 aWFsaXplciB0b28uDQo+DQoNCkkgd2lsbCBhZGQgdGhhdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLCB0 aGFua3MuDQoNCj4+ICsNCj4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4+ICtzdGF0aWMgaW5saW5l IHVpbnQ2NF90DQo+PiArcnRlX3NlcWxvY2tfcmVhZF9iZWdpbihjb25zdCBydGVfc2VxbG9ja190 ICpzZXFsb2NrKQ0KPj4gK3sNCj4+ICsJLyogX19BVE9NSUNfQUNRVUlSRSB0byBwcmV2ZW50IGxv YWRzIGFmdGVyIChpbiBwcm9ncmFtIG9yZGVyKQ0KPj4gKwkgKiBmcm9tIGhhcHBlbmluZyBiZWZv cmUgdGhlIHNuIGxvYWQuIFN5bmNyb25pemVzLXdpdGggdGhlDQo+PiArCSAqIHN0b3JlIHJlbGVh c2UgaW4gcnRlX3NlcWxvY2tfZW5kKCkuDQo+PiArCSAqLw0KPj4gKwlyZXR1cm4gX19hdG9taWNf bG9hZF9uKCZzZXFsb2NrLT5zbiwgX19BVE9NSUNfQUNRVUlSRSk7DQo+PiArfQ0KPj4gKw0KPj4g K19fcnRlX2V4cGVyaW1lbnRhbA0KPj4gK3N0YXRpYyBpbmxpbmUgYm9vbA0KPj4gK3J0ZV9zZXFs b2NrX3JlYWRfcmV0cnkoY29uc3QgcnRlX3NlcWxvY2tfdCAqc2VxbG9jaywgdWludDY0X3QgYmVn aW5fc24pDQo+PiArew0KPj4gKwl1aW50NjRfdCBlbmRfc247DQo+PiArDQo+PiArCS8qIG1ha2Ug c3VyZSB0aGUgZGF0YSBsb2FkcyBoYXBwZW5zIGJlZm9yZSB0aGUgc24gbG9hZCAqLw0KPj4gKwly dGVfYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01JQ19BQ1FVSVJFKTsNCj4gVGhhdCdzIHNvcnQg b2YgJ3JlYWRfZW5kJyBjb3JyZWN0Pw0KPiBJZiBzbywgc2hvdWxkbid0IGl0IGJlICdfX0FUT01J Q19SRUxFQVNFJyBpbnN0ZWFkIGhlcmUsDQo+IGFuZA0KPiBlbmRfc24gPSBfX2F0b21pY19sb2Fk X24oLi4uLCAoX19BVE9NSUNfQUNRVUlSRSkNCj4gb24gdGhlIGxpbmUgYmVsb3c/DQoNCkEgcmVs ZWFzZSBmZW5jZSBwcmV2ZW50cyByZW9yZGVyaW5nIG9mIHN0b3Jlcy4gVGhlIHJlYWRlciBkb2Vz bid0IGRvIGFueSANCnN0b3Jlcywgc28gSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB5b3Ugd291bGQg dXNlIGEgcmVsZWFzZSBmZW5jZSBoZXJlLiANCkNvdWxkIHlvdSBlbGFib3JhdGU/DQoNCj4+ICsN Cj4+ICsJZW5kX3NuID0gX19hdG9taWNfbG9hZF9uKCZzZXFsb2NrLT5zbiwgX19BVE9NSUNfUkVM QVhFRCk7DQo+PiArDQo+PiArCXJldHVybiB1bmxpa2VseShiZWdpbl9zbiAmIDEgfHwgYmVnaW5f c24gIT0gZW5kX3NuKTsNCj4+ICt9DQo+PiArDQo+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+PiAr c3RhdGljIGlubGluZSB2b2lkDQo+PiArcnRlX3NlcWxvY2tfd3JpdGVfYmVnaW4ocnRlX3NlcWxv Y2tfdCAqc2VxbG9jaykNCj4+ICt7DQo+PiArCXVpbnQ2NF90IHNuOw0KPj4gKw0KPj4gKwkvKiB0 byBzeW5jaHJvbml6ZSB3aXRoIG90aGVyIHdyaXRlcnMgKi8NCj4+ICsJcnRlX3NwaW5sb2NrX2xv Y2soJnNlcWxvY2stPmxvY2spOw0KPj4gKw0KPj4gKwlzbiA9IHNlcWxvY2stPnNuICsgMTsNCj4+ ICsNCj4+ICsJX19hdG9taWNfc3RvcmVfbigmc2VxbG9jay0+c24sIHNuLCBfX0FUT01JQ19SRUxB WEVEKTsNCj4+ICsNCj4+ICsJLyogX19BVE9NSUNfUkVMRUFTRSB0byBwcmV2ZW50IHN0b3JlcyBh ZnRlciAoaW4gcHJvZ3JhbSBvcmRlcikNCj4+ICsJICogZnJvbSBoYXBwZW5pbmcgYmVmb3JlIHRo ZSBzbiBzdG9yZS4NCj4+ICsJICovDQo+PiArCXJ0ZV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRP TUlDX1JFTEVBU0UpOw0KPiBJIHRoaW5rIGl0IG5lZWRzIHRvIGJlICdfX0FUT01JQ19BQ1FVSVJF JyBoZXJlIGluc3RlYWQgb2YgJ19fQVRPTUlDX1JFTEVBU0UnLg0KDQpQbGVhc2UgZWxhYm9yYXRl IG9uIHdoeS4NCg0KPj4gK30NCj4+ICsNCj4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4+ICtzdGF0 aWMgaW5saW5lIHZvaWQNCj4+ICtydGVfc2VxbG9ja193cml0ZV9lbmQocnRlX3NlcWxvY2tfdCAq c2VxbG9jaykNCj4+ICt7DQo+PiArCXVpbnQ2NF90IHNuOw0KPj4gKw0KPj4gKwlzbiA9IHNlcWxv Y2stPnNuICsgMTsNCj4+ICsNCj4+ICsJLyogc3luY2hyb25pemVzLXdpdGggdGhlIGxvYWQgYWNx dWlyZSBpbiBydGVfc2VxbG9ja19iZWdpbigpICovDQo+PiArCV9fYXRvbWljX3N0b3JlX24oJnNl cWxvY2stPnNuLCBzbiwgX19BVE9NSUNfUkVMRUFTRSk7DQo+PiArDQo+PiArCXJ0ZV9zcGlubG9j a191bmxvY2soJnNlcWxvY2stPmxvY2spOw0KPj4gK30NCj4+ICsNCg0K