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 3105AA0501; Mon, 28 Mar 2022 12:54:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E3583427EA; Mon, 28 Mar 2022 12:54:18 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 3FF7741104 for ; Mon, 28 Mar 2022 12:54:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648464856; x=1680000856; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=SBFuxsu5ISoZLN46J/OnucMHB7bkqEpogB33SIhphEo=; b=dBJJv8Nsns+OgmrcIAfOwMitha7sveNGld+fYN6GczqVJhhmlWSzKjRj hTEZKQnNL4PXHWSVub5Uo9u8XPRXjCXxKwWoC5VOR67USWXoz9ChNagk5 GaUnfPcmKvvIaD8gcOdT8Vn/snjMi1lQgRMcs7jTfJRqYKkY9+0jcYvr8 iJZgqCM7WLnUk6VEvVfY9NNNzFBiGQCcAuNv1BPX4zGXwMIQ7IsR2ncAK Lc7QZR9i5n0wEET04Loaxi7CtRydwtJM72jnw3kJGXUU+y6UsH0JsaW70 L09Ile3Q6DXF8ol2eN6IBm1ybSoY6XycbPB0BEqJZeDZkk76rx38Ahc/a g==; X-IronPort-AV: E=McAfee;i="6200,9189,10299"; a="257798564" X-IronPort-AV: E=Sophos;i="5.90,217,1643702400"; d="scan'208";a="257798564" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2022 03:54:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,217,1643702400"; d="scan'208";a="518008568" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga002.jf.intel.com with ESMTP; 28 Mar 2022 03:54:13 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 28 Mar 2022 03:54:13 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 28 Mar 2022 03:54:12 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 28 Mar 2022 03:54:12 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.21; Mon, 28 Mar 2022 03:54:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=epB+GlQXVpI1Qj8tfygsIA8842EzHapc+EWT0FzACvaxdfw43pfT+nvrcu0gFo6tkEDE8Mp7D2R4nGsxRuR+yFCi7OQA4d8BwLku3tjndHdd69Fb6qk0pXM7XxzsJsZgR7O+raoJA0vpRfsS+JhROex7PiCP7VOG1VkEH8/bJt8pV3w3czPEqGwMxdnrAcpWAm6i7F4Hgl/zU3bqZs/Pq9CCFzS0ESoApUlZbmeirmLfwcjydhH42ofu0gpKpyFglOJU5vHjOGmxWwd1xcnTC3OIUp+BTsORufV/Ko4qn2A3IG2v3AVZv/2aRSlN4XXWSRroucrM6w7v0Fv/wUdpjw== 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=SBFuxsu5ISoZLN46J/OnucMHB7bkqEpogB33SIhphEo=; b=ECpvitNonIGGmXQ8hyCX+4VSkwBtr9CIOKqZvt3IbG+K9Pd6t6ktaSNLiBCg+KjQ7Yruy06oKHTliknyxNH30XXwlsJc4Yp2OYWo8WwyhjKYmBdVA4ePGxbgitAQ/Y3mwek+nzVkxXl26n7ae/orNbO7vd52mM7dQmYgVObSrJpX0x0yvPgvTNH+4xOfws6Zn49W9dep0qBtr7pW9E6Oz5NkprRhTXD1vVvagHakjr8CF3SxikgYMQaZ80dEU7GdDPUZnoy1/+foc1e1fG9FulRHGkmN9F/x6t3e0d8clrRIp/rSBvLjQZL4juXgpDCFy3rY8SKz+7POgvSIFXxE3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by BN6PR11MB1380.namprd11.prod.outlook.com (2603:10b6:404:3c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Mon, 28 Mar 2022 10:53:34 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::ad2b:63fd:4cdd:130d]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::ad2b:63fd:4cdd:130d%4]) with mapi id 15.20.5102.023; Mon, 28 Mar 2022 10:53:34 +0000 From: "Ananyev, Konstantin" To: mattias.ronnblom , "dev@dpdk.org" CC: Thomas Monjalon , David Marchand , "Olsen, Onar" , "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: AQHYQIaKHXaPgtdbSEGn3Z4qILHbfKzTTrBwgAA0UACAAQHTIA== Date: Mon, 28 Mar 2022 10:53:34 +0000 Message-ID: References: <20220325202428.94628-1-mattias.ronnblom@ericsson.com> <77168168-eadb-9a0b-b51e-9ccdf8ad7230@ericsson.com> In-Reply-To: <77168168-eadb-9a0b-b51e-9ccdf8ad7230@ericsson.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b17208cc-f270-4e49-a0e0-08da10a93493 x-ms-traffictypediagnostic: BN6PR11MB1380:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: 8Xr/m0PqbI4XRZ3+cG8dppik9Mnh1NchguB+XL0Z3cDE4IAdYYcirnd4/sO8HysSvWY4sF2PP/yXlUEUo4FRhOvA8saKsxJpZG+uW6Yy0lEUQ4E+H4eJC3RYDL1bGtu100+bYxt7ghu6LfOGE2JpQvvEHDod1aruv5EF5ozXLkxZ5y4CIMlliYKC+an8CAAhdoMzSDQ3huUicTw+xyuskkerAwW/ocfFd+Gj/LT4pMioRcUm4caQ1RqC0lD1lYFy78TVg1kQz242pESybiObTa2vpW/XV81p3nvEPNPrdxR5uL4EdErNxq/dxEVPfLb5FuFhmR4WHogr4EMxlh74ucFuixrIo88dXYRj9ed9locSQ1jXQdsttiMmpl71Yhfj1g7+VKc89G6TqpTIV0cOjMoMfyKO6n2lQ563GBhiqOlZR523t51NAXtLjX1bvG+Bnc9u9N3hVRCpZikAmHGUInpYO0k9VWAO8RyZ1MItAhl7iOf3ed9L/HBKUkReAi35owYFfj5EbvGfB8DjSuOWSEOmFm4c7KSqU2pZlLztGOL5UEjrakJdL0ooePgYmp/i3F1nodM1xykeY9njgxxulTMyfrIGHmEDhAkcsaXIrvbDHDgslX56sOEdbdgh0MWX6QTfsYsCRBJTATS8v5FmDQBqogZvR0D6aO1lsoE78N2N9h26hjHd1R8NTT5PJf9YGGeUeD6PzRFG03blgaKDNA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(110136005)(82960400001)(71200400001)(7696005)(2906002)(6506007)(83380400001)(33656002)(38100700002)(9686003)(38070700005)(316002)(186003)(26005)(55016003)(52536014)(122000001)(66476007)(5660300002)(508600001)(64756008)(8676002)(76116006)(66446008)(66946007)(66556008)(8936002)(54906003)(7416002)(86362001)(4326008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eXcyVHJoQlAycFhrUnpDOGd0K0Y0aUJ5VDYyNkZpcVZoWmdreUVIZHVPK2k0?= =?utf-8?B?RWNaenV3WEowZW9MYmkyNWlEdnZlZkxlcVpHTG13MndTTS9oQ3BhVWV3MXBa?= =?utf-8?B?SStOWHNWZ2g0ME5qNEVueVRpekhBU05qYUp6YzYxcHY1U3dsTUxCVnc3aVhq?= =?utf-8?B?L0NJVHZkYS9qMG9uUFJweEw1QVFzZDdEVzI0eEkrS0NCbExrdTViZUhYZE1y?= =?utf-8?B?QlMwekxSUHE5V1ViNDVOVkJ2TXptdkl2RkNZa2JNL0FiTWVNVGVva3dzMTB3?= =?utf-8?B?ZFcxSUFVb0I0UDdSSExpTjFac2E1Skwyb0hiVWpCaXAzcUphZFpiVms1dUZ5?= =?utf-8?B?MFRUVGs5NlVNUHhDakR3R0xGNVBsSkQ0ZFE0NUczQjd5VStWQmRtQ2lJUkxY?= =?utf-8?B?THU4Z2VES29tK2VZOEMwWTVsWWI3a2dmSVF3QmRBV3A5M0RYcTVVY3RCeG5O?= =?utf-8?B?ZEsrSWwyRUJVOFNRblcyMlZZbnkzbXlmUUZUVkUycUQzb1p4c0JlSXVxR0xL?= =?utf-8?B?UHk0T0dFOEhJVmpINUllSGtTTEE4V1lrQjVBdDlPU0xIRS9vM2huai9HZ2hG?= =?utf-8?B?TVQwbEc2WnNzKzUxbmVaUm1qTklQMFR4OXRSejZiWFhVT2YxelVVbzNrdXBY?= =?utf-8?B?OWx2b211aHRwZndrUnpvYTEwL3RHTkVTWWFSOUcrU3VRMzczeHlJVlpBSmZo?= =?utf-8?B?VDBjUkZmTUx2dytWRXBQdnY4Qzk3eUVUWHA2RzEvbHlwbG9wN2ErZ2Q0U3Fp?= =?utf-8?B?dTBQa0U4bUUzYUdGL0VDOE4rZGdUdk9QOWNCR2NubHk0STVNcGhDamo5b1Zm?= =?utf-8?B?dkF6ZzZaTmdPc2FGR2FncnRxK1QxdzRueDVSRE1BY1YySzhxUWlBcm9iZDJH?= =?utf-8?B?T283TjBtaGY5SXhFaWhBdW01Unc5Q0JVZWlrdTNGeFJmdTIyZWR3aFJFQ25U?= =?utf-8?B?c09nR3BWYk9LSWZPZU9KeXVPQmxJV1FjSGRsME9XSG9HTVQxQnVUYlU0Vks1?= =?utf-8?B?N1dLQTNUTjBmUWhma2trYUc2TTY4ZGU0N3RuRlEwVVZvVzF1RnQxMGpiaVdS?= =?utf-8?B?WGN5U2lFWGVjYUNqRytsRkNRZEt3REpjNkxjWHNtV1o4dUpVaHREL2lTaERp?= =?utf-8?B?V09Rc2M4eWhxbDNxMWdiano1OHpsVzZSc25iR3ZGZTh5VTdsOWNWYnc4UEtv?= =?utf-8?B?bk1VcmdmaDVTVk4vaGgvV01IMWx4TnBQRjMyZDg3YnN3QndSMkZwdENtZVlr?= =?utf-8?B?RVd0L1NZcFRPNk4yK0wvd1E3MHEwVGxibGoxc3B3RmpWZnBIZ0ZsS1hQenYz?= =?utf-8?B?cFdjNWc1YndPWFU4OGFTRVIyN1lXMlBqWnRidGpYdHIvdFNkdzQ4ZUxGdkpw?= =?utf-8?B?dHRIcUtiQlhNZ1cvOWlmbTREYWk1U1c5U29RWGdPQXdubEdkZVhCVS9ZUWNU?= =?utf-8?B?UG40Nm9XS2dSa1RySWJMclRXL0E2bU90MnZOWlNzamlQYkFnTVhKRXNOd3Vp?= =?utf-8?B?NlZyTUxpNFMzRnZ6RndBbUhVdFd0bER3K20ydXoyREhROEZHOG9weE1oeTlO?= =?utf-8?B?aTFZbTFPRFU3Rm0vbGh4WU1RMjE5L29UVGdROXlZdDBuWXdCY3kyZmFxVEZ3?= =?utf-8?B?SXV2ZlBiQ2czSEdiR1NsRVdFU2N1SURBUEU1OGcyOWQ0cDZVQ3F5SXBCeDhY?= =?utf-8?B?eTlteHptb2tMQkZaQWhJN1VCNDJpYVZFZThya0IyRENNSjlQWE02SW5hT3ow?= =?utf-8?B?MnltOWR4elRDc2FOQjZYc3hkdzI2N1I3TEZNK2ZjRHRUNVR0ejVGdXBaNHVQ?= =?utf-8?B?SnRlRjZJRnRiQ3NIMTcrL0x4WFEwRWlOU0VVZ2VGSSt0RzhKdG15NjJXQi8w?= =?utf-8?B?TkE2c0ZrMkZXRy9jNks2MkVKN1NiTVVPVW5welB4QUxTWlUzcEMrRHdwTkhJ?= =?utf-8?B?bGJhNWZ4dG9peCtMYW1xWUp5M2tBK1h6TFkyc3BBQndINWZTNXU4bHhGYWpW?= =?utf-8?B?NncvQlN1WUdJaC9kb0hwam5ueTVjRmZvTnZFWGRVZ1RzOVkySWVZbDlobGNH?= =?utf-8?B?cWhrdUlOb0tMZ3FTdXl3ak1rdmprSkpIeG1rOXpkUnZwc3RGQ0owNy9VQm04?= =?utf-8?B?eGlkZ1UrbFg2SlpjQjRoSEl3RHVqTGZ3dWJYWWM5ZVRqa0cwdW15OGV5TzJE?= =?utf-8?B?WlNONDlCd0I1NGFnbXU3YmViYVpadUVEam41UzF2QWx5NVEzdFREM2lHenQ0?= =?utf-8?B?YzlKTk00Z2IzczRXQ2p1VUZ3L2xKRTdOaDNaV0dScldjeVhPdEw2WVRiMVpk?= =?utf-8?B?aXNFYWZyMWZGbGgyWjU5RGRUVG5pL3pMN080OVoxdExzSEU0SzdnQW9teFpK?= =?utf-8?Q?n/y/WCgULUlNu9Eo=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b17208cc-f270-4e49-a0e0-08da10a93493 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Mar 2022 10:53:34.3172 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: v+YfT6rdnV3r6QcTYRw4YdL9VjZArBHxn/jGPvTbtj0uFYgYiRHwnW+AgOPXiBmrFyfYSrcfbZP/2+SKejlebgivODxOi7ui4288DDVR2jA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1380 X-OriginatorOrg: intel.com 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 DQo+ID4+IGRpZmYgLS1naXQgYS9saWIvZWFsL2luY2x1ZGUvbWVzb24uYnVpbGQgYi9saWIvZWFs L2luY2x1ZGUvbWVzb24uYnVpbGQNCj4gPj4gaW5kZXggOTcwMDQ5NDgxNi4uNDhkZjVmMWEyMSAx MDA2NDQNCj4gPj4gLS0tIGEvbGliL2VhbC9pbmNsdWRlL21lc29uLmJ1aWxkDQo+ID4+ICsrKyBi L2xpYi9lYWwvaW5jbHVkZS9tZXNvbi5idWlsZA0KPiA+PiBAQCAtMzYsNiArMzYsNyBAQCBoZWFk ZXJzICs9IGZpbGVzKA0KPiA+PiAgICAgICAgICAgJ3J0ZV9wZXJfbGNvcmUuaCcsDQo+ID4+ICAg ICAgICAgICAncnRlX3JhbmRvbS5oJywNCj4gPj4gICAgICAgICAgICdydGVfcmVjaXByb2NhbC5o JywNCj4gPj4gKyAgICAgICAgJ3J0ZV9zZXFsb2NrLmgnLA0KPiA+PiAgICAgICAgICAgJ3J0ZV9z ZXJ2aWNlLmgnLA0KPiA+PiAgICAgICAgICAgJ3J0ZV9zZXJ2aWNlX2NvbXBvbmVudC5oJywNCj4g Pj4gICAgICAgICAgICdydGVfc3RyaW5nX2Zucy5oJywNCj4gPj4gZGlmZiAtLWdpdCBhL2xpYi9l YWwvaW5jbHVkZS9ydGVfc2VxbG9jay5oIGIvbGliL2VhbC9pbmNsdWRlL3J0ZV9zZXFsb2NrLmgN Cj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uYjk3NWNh ODQ4YQ0KPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ICsrKyBiL2xpYi9lYWwvaW5jbHVkZS9ydGVf c2VxbG9jay5oDQo+ID4+IEBAIC0wLDAgKzEsODQgQEANCj4gPj4gKy8qIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPj4gKyAqIENvcHlyaWdodChjKSAyMDIyIEVyaWNz c29uIEFCDQo+ID4+ICsgKi8NCj4gPj4gKw0KPiA+PiArI2lmbmRlZiBfUlRFX1NFUUxPQ0tfSF8N Cj4gPj4gKyNkZWZpbmUgX1JURV9TRVFMT0NLX0hfDQo+ID4+ICsNCj4gPj4gKyNpbmNsdWRlIDxz dGRib29sLmg+DQo+ID4+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4+ICsNCj4gPj4gKyNpbmNs dWRlIDxydGVfYXRvbWljLmg+DQo+ID4+ICsjaW5jbHVkZSA8cnRlX2JyYW5jaF9wcmVkaWN0aW9u Lmg+DQo+ID4+ICsjaW5jbHVkZSA8cnRlX3NwaW5sb2NrLmg+DQo+ID4+ICsNCj4gPj4gK3N0cnVj dCBydGVfc2VxbG9jayB7DQo+ID4+ICsJdWludDY0X3Qgc247DQo+ID4+ICsJcnRlX3NwaW5sb2Nr X3QgbG9jazsNCj4gPj4gK307DQo+ID4+ICsNCj4gPj4gK3R5cGVkZWYgc3RydWN0IHJ0ZV9zZXFs b2NrIHJ0ZV9zZXFsb2NrX3Q7DQo+ID4+ICsNCj4gPj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ PiArdm9pZA0KPiA+PiArcnRlX3NlcWxvY2tfaW5pdChydGVfc2VxbG9ja190ICpzZXFsb2NrKTsN Cj4gPiBQcm9iYWJseSB3b3J0aCB0byBoYXZlIHN0YXRpYyBpbml0aWFsaXplciB0b28uDQo+ID4N Cj4gDQo+IEkgd2lsbCBhZGQgdGhhdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLCB0aGFua3MuDQo+IA0K PiA+PiArDQo+ID4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPj4gK3N0YXRpYyBpbmxpbmUgdWlu dDY0X3QNCj4gPj4gK3J0ZV9zZXFsb2NrX3JlYWRfYmVnaW4oY29uc3QgcnRlX3NlcWxvY2tfdCAq c2VxbG9jaykNCj4gPj4gK3sNCj4gPj4gKwkvKiBfX0FUT01JQ19BQ1FVSVJFIHRvIHByZXZlbnQg bG9hZHMgYWZ0ZXIgKGluIHByb2dyYW0gb3JkZXIpDQo+ID4+ICsJICogZnJvbSBoYXBwZW5pbmcg YmVmb3JlIHRoZSBzbiBsb2FkLiBTeW5jcm9uaXplcy13aXRoIHRoZQ0KPiA+PiArCSAqIHN0b3Jl IHJlbGVhc2UgaW4gcnRlX3NlcWxvY2tfZW5kKCkuDQo+ID4+ICsJICovDQo+ID4+ICsJcmV0dXJu IF9fYXRvbWljX2xvYWRfbigmc2VxbG9jay0+c24sIF9fQVRPTUlDX0FDUVVJUkUpOw0KPiA+PiAr fQ0KPiA+PiArDQo+ID4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPj4gK3N0YXRpYyBpbmxpbmUg Ym9vbA0KPiA+PiArcnRlX3NlcWxvY2tfcmVhZF9yZXRyeShjb25zdCBydGVfc2VxbG9ja190ICpz ZXFsb2NrLCB1aW50NjRfdCBiZWdpbl9zbikNCj4gPj4gK3sNCj4gPj4gKwl1aW50NjRfdCBlbmRf c247DQo+ID4+ICsNCj4gPj4gKwkvKiBtYWtlIHN1cmUgdGhlIGRhdGEgbG9hZHMgaGFwcGVucyBi ZWZvcmUgdGhlIHNuIGxvYWQgKi8NCj4gPj4gKwlydGVfYXRvbWljX3RocmVhZF9mZW5jZShfX0FU T01JQ19BQ1FVSVJFKTsNCj4gPiBUaGF0J3Mgc29ydCBvZiAncmVhZF9lbmQnIGNvcnJlY3Q/DQo+ ID4gSWYgc28sIHNob3VsZG4ndCBpdCBiZSAnX19BVE9NSUNfUkVMRUFTRScgaW5zdGVhZCBoZXJl LA0KPiA+IGFuZA0KPiA+IGVuZF9zbiA9IF9fYXRvbWljX2xvYWRfbiguLi4sIChfX0FUT01JQ19B Q1FVSVJFKQ0KPiA+IG9uIHRoZSBsaW5lIGJlbG93Pw0KPiANCj4gQSByZWxlYXNlIGZlbmNlIHBy ZXZlbnRzIHJlb3JkZXJpbmcgb2Ygc3RvcmVzLiBUaGUgcmVhZGVyIGRvZXNuJ3QgZG8gYW55DQo+ IHN0b3Jlcywgc28gSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB5b3Ugd291bGQgdXNlIGEgcmVsZWFz ZSBmZW5jZSBoZXJlLg0KPiBDb3VsZCB5b3UgZWxhYm9yYXRlPw0KDQpGcm9tIG15IHVuZGVyc3Rh bmRpbmc6ICANCnJ0ZV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX0FDUVVJUkUpOw0Kc2Vy dmVzIGFzIGEgaG9pc3QgYmFycmllciBoZXJlLCBzbyBpdCB3b3VsZCBvbmx5IHByZXZlbnQgbGF0 ZXIgaW5zdHJ1Y3Rpb25zDQp0byBiZSBleGVjdXRlZCBiZWZvcmUgdGhhdCBwb2ludC4NCkJ1dCBp dCB3b3VsZG4ndCBwcmV2ZW50IGVhcmxpZXIgaW5zdHJ1Y3Rpb25zIHRvIGJlIGV4ZWN1dGVkIGFm dGVyIHRoYXQgcG9pbnQuDQpXaGlsZSB3ZSBkbyBuZWVkIHRvIGd1YXJhbnRlZSB0aGF0IGNwdSB3 aWxsIGZpbmlzaCBhbGwgcHJldmlvdXMgcmVhZHMgYmVmb3JlDQpwcm9ncmVzc2luZyBmdXJ0aGVy LiANCg0KU3VwcG9zZSB3ZSBoYXZlIHNvbWV0aGluZyBsaWtlIHRoYXQ6DQoNCnN0cnVjdCB7DQoJ dWludDY0X3Qgc2hhcmVkOw0KCXJ0ZV9zZXFsb2NrX3QgbG9jazsNCn0gZGF0YTsNCg0KLi4uDQpz biA9IC4uLg0KdWludDY0X3QgeCA9IGRhdGEuc2hhcmVkOyANCi8qIGluc2lkZSBydGVfc2VxbG9j a19yZWFkX3JldHJ5KCk6ICovDQouLi4NCnJ0ZV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlD X0FDUVVJUkUpOw0KZW5kX3NuID0gX19hdG9taWNfbG9hZF9uKCZkYXRhLmxvY2suc24sIF9fQVRP TUlDX1JFTEFYRUQpOw0KDQpIZXJlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgcmVhZCBvZiBk YXRhLnNoYXJlZCB3aWxsIGFsd2F5cyBoYXBwZW4NCmJlZm9yZSByZWFkaW5nIG9mIGRhdGEubG9j ay5zbi4gDQpJdCBpcyBub3QgYSBwcm9ibGVtIG9uIElBIChhcyByZWFkcyBhcmUgbm90IHJlb3Jk ZXJlZCksIGJ1dCBvbiBtYWNoaW5lcyB3aXRoIA0KcmVsYXhlZCBtZW1vcnkgb3JkZXJpbmcgKEFS TSwgZXRjLikgIGl0IGNhbiBoYXBwZW4uDQpTbyB0byBwcmV2ZW50IGl0IHdlIGRvIG5lZWQgYSBz aW5rIGJhcnJpZXIgaGVyZSBmaXJzdCAoQVRPTUlDX1JFTEVBU0UpLg0KDQpIb25uYXBwYSBhbmQg b3RoZXIgQVJNICYgYXRvbWljcyBleHBlcnRzLCBwbGVhc2UgY29ycmVjdCBtZSBpZiBJIGFtIHdy b25nIGhlcmUuICAgIA0KDQo+ID4+ICsNCj4gPj4gKwllbmRfc24gPSBfX2F0b21pY19sb2FkX24o JnNlcWxvY2stPnNuLCBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPj4gKw0KPiA+PiArCXJldHVybiB1 bmxpa2VseShiZWdpbl9zbiAmIDEgfHwgYmVnaW5fc24gIT0gZW5kX3NuKTsNCj4gPj4gK30NCj4g Pj4gKw0KPiA+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+ICtzdGF0aWMgaW5saW5lIHZvaWQN Cj4gPj4gK3J0ZV9zZXFsb2NrX3dyaXRlX2JlZ2luKHJ0ZV9zZXFsb2NrX3QgKnNlcWxvY2spDQo+ ID4+ICt7DQo+ID4+ICsJdWludDY0X3Qgc247DQo+ID4+ICsNCj4gPj4gKwkvKiB0byBzeW5jaHJv bml6ZSB3aXRoIG90aGVyIHdyaXRlcnMgKi8NCj4gPj4gKwlydGVfc3BpbmxvY2tfbG9jaygmc2Vx bG9jay0+bG9jayk7DQo+ID4+ICsNCj4gPj4gKwlzbiA9IHNlcWxvY2stPnNuICsgMTsNCj4gPj4g Kw0KPiA+PiArCV9fYXRvbWljX3N0b3JlX24oJnNlcWxvY2stPnNuLCBzbiwgX19BVE9NSUNfUkVM QVhFRCk7DQo+ID4+ICsNCj4gPj4gKwkvKiBfX0FUT01JQ19SRUxFQVNFIHRvIHByZXZlbnQgc3Rv cmVzIGFmdGVyIChpbiBwcm9ncmFtIG9yZGVyKQ0KPiA+PiArCSAqIGZyb20gaGFwcGVuaW5nIGJl Zm9yZSB0aGUgc24gc3RvcmUuDQo+ID4+ICsJICovDQo+ID4+ICsJcnRlX2F0b21pY190aHJlYWRf ZmVuY2UoX19BVE9NSUNfUkVMRUFTRSk7DQo+ID4gSSB0aGluayBpdCBuZWVkcyB0byBiZSAnX19B VE9NSUNfQUNRVUlSRScgaGVyZSBpbnN0ZWFkIG9mICdfX0FUT01JQ19SRUxFQVNFJy4NCj4gDQo+ IFBsZWFzZSBlbGFib3JhdGUgb24gd2h5Lg0KDQpBcyB5b3Ugc2FpZCBpbiB0aGUgY29tbWVudHMg YWJvdmUsIHdlIG5lZWQgdG8gcHJldmVudCBsYXRlciBzdG9yZXMNCnRvIGJlIGV4ZWN1dGVkIGJl Zm9yZSB0aGF0IHBvaW50LiBTbyB3ZSBkbyBuZWVkIGEgaG9pc3QgYmFycmllciBoZXJlLg0KQUZB SUsgdG8gZ3VhcmFudGVlIGEgaG9pc3QgYmFycmllciAnX19BVE9NSUNfQUNRVUlSRScgaXMgcmVx dWlyZWQuDQoNCj4gDQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK19fcnRlX2V4cGVyaW1lbnRhbA0K PiA+PiArc3RhdGljIGlubGluZSB2b2lkDQo+ID4+ICtydGVfc2VxbG9ja193cml0ZV9lbmQocnRl X3NlcWxvY2tfdCAqc2VxbG9jaykNCj4gPj4gK3sNCj4gPj4gKwl1aW50NjRfdCBzbjsNCj4gPj4g Kw0KPiA+PiArCXNuID0gc2VxbG9jay0+c24gKyAxOw0KPiA+PiArDQo+ID4+ICsJLyogc3luY2hy b25pemVzLXdpdGggdGhlIGxvYWQgYWNxdWlyZSBpbiBydGVfc2VxbG9ja19iZWdpbigpICovDQo+ ID4+ICsJX19hdG9taWNfc3RvcmVfbigmc2VxbG9jay0+c24sIHNuLCBfX0FUT01JQ19SRUxFQVNF KTsNCj4gPj4gKw0KPiA+PiArCXJ0ZV9zcGlubG9ja191bmxvY2soJnNlcWxvY2stPmxvY2spOw0K PiA+PiArfQ0KPiA+PiArDQoNCg==