From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 3B569A0C4E;
	Mon, 25 Oct 2021 16:29:14 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 4562B41141;
	Mon, 25 Oct 2021 16:29:01 +0200 (CEST)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by mails.dpdk.org (Postfix) with ESMTP id BFE7D4003E
 for <dev@dpdk.org>; Mon, 25 Oct 2021 16:28:55 +0200 (CEST)
X-IronPort-AV: E=McAfee;i="6200,9189,10147"; a="253187469"
X-IronPort-AV: E=Sophos;i="5.87,180,1631602800"; d="scan'208";a="253187469"
Received: from fmsmga001.fm.intel.com ([10.253.24.23])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 25 Oct 2021 07:28:54 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,180,1631602800"; d="scan'208";a="634758206"
Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84])
 by fmsmga001.fm.intel.com with ESMTP; 25 Oct 2021 07:28:54 -0700
Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by
 fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Mon, 25 Oct 2021 07:28:54 -0700
Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by
 fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Mon, 25 Oct 2021 07:28:52 -0700
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Mon, 25 Oct 2021 07:28:52 -0700
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Mon, 25 Oct 2021 07:28:52 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eNLkwSHu0OH8hZ+Q9d+j9tUoQDT7jymbPm9UWrV9wy/DFFwlqzl6iwRD8i0+IO83vtE7b8JreWhnpuH+EQznzhFEfzMaZN1x26wI6x0b53jKi5I7UT8Npa+6o46gfHcCcBWbX2r54po6hKONy8TI7vAKn6JwNCdka3kMztFNusDjYJgZlS3QkuI0wzeX29mhsxKX9ELJPt9DM2znO+fHO1smeH3yIgeY/cxSr6ATYIFzG+DadTWIvkjqxrxd7e81ZYIZg6i41/bbVrPpb7tOlGIyKNHzwN6sFprF2BT0vIMCWzKlQ3soFz3PiKnv9+R734NP+fctAtuGXyB8cLRc9w==
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=O7VA4ySwI736YALi0WpBW0c6ku+j/yO0ntXAFNeYUMo=;
 b=C98gUzQl/SrOHWWZr5VxOGIVrTmDo3K1RD5/UrHELXBy23segdQqBNZMXZUD9+Mc9pz0qLGlQIgKyLyfxKSMtYaWIhO7+wghwZAqHu2GLIJTVcpkEyHuisDaGHZCFZxfO68ermUj2LOUGj9kkkh0hubMDTbQbp8VKAwg8Z6aRZpupy0r7YSmq0fzQxcsfcZ5Ki/sbqC5toLi1LRBjY3wGR93JkQeRQfPqG/WYE7PSd+3mBXG1Cx63NGRFtG/UZVYPmid7uBtOngUtD7KuxgCdvnYDkc6kC7E77DXUYM4QYSFRcVdINoeNA7YvV4f9q+5NpeywKnNPWStHAues/UBdw==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O7VA4ySwI736YALi0WpBW0c6ku+j/yO0ntXAFNeYUMo=;
 b=H1H77Yr9cWXDzy2eQdEab2t9GJkIDSKYhTXR6oMgcWIvr8lCB/cVLSOvyUmQbpnaUmhCXGbpkxdzkFAkmFUdLbtoopynMib3kTM2n5ZAt/cWHiae2sKymtrHoztck+k5WwJGbA/9DSt7BRGk4pYdSfaMFGo6Nxfcpop8VoR8t/8=
Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19)
 by DM5PR11MB0010.namprd11.prod.outlook.com (2603:10b6:4:6c::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Mon, 25 Oct
 2021 14:28:51 +0000
Received: from DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::2c0c:5383:f814:3b4e]) by DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::2c0c:5383:f814:3b4e%6]) with mapi id 15.20.4628.020; Mon, 25 Oct 2021
 14:28:51 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: Feifei Wang <Feifei.Wang2@arm.com>, Ruifeng Wang <Ruifeng.Wang@arm.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, nd <nd@arm.com>, nd <nd@arm.com>
Thread-Topic: [PATCH v4 1/5] eal: add new definitions for wait scheme
Thread-Index: AQHXxY7vlmoFjDJg2kWER5oYWCNj+6vdo6cwgAXUYgCAAFShUA==
Date: Mon, 25 Oct 2021 14:28:51 +0000
Message-ID: <DM6PR11MB44918B847C3DE779A94F59F29A839@DM6PR11MB4491.namprd11.prod.outlook.com>
References: <20210926063302.1541193-1-feifei.wang2@arm.com>
 <20211020084523.1309177-1-feifei.wang2@arm.com>
 <20211020084523.1309177-2-feifei.wang2@arm.com>
 <DM6PR11MB44919324063B90E2A5BF56C29ABF9@DM6PR11MB4491.namprd11.prod.outlook.com>
 <DB9PR08MB69232CB8B43B9F0777F72499C8839@DB9PR08MB6923.eurprd08.prod.outlook.com>
In-Reply-To: <DB9PR08MB69232CB8B43B9F0777F72499C8839@DB9PR08MB6923.eurprd08.prod.outlook.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.200.16
authentication-results: arm.com; dkim=none (message not signed)
 header.d=none;arm.com; dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1780559d-88df-40e8-0606-08d997c3c401
x-ms-traffictypediagnostic: DM5PR11MB0010:
x-microsoft-antispam-prvs: <DM5PR11MB00105522452BF623CEEF892F9A839@DM5PR11MB0010.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: OaT8cpD5k6LGVd+DZpHzkqlpJEm7Pb+BzDblYB+gEXg2/jo98T3q7oVF6xPydeLuatWR0L7AkKd0tN8BtkJIPLpMuvXG0GkbICrfKwGDRUiysGExPXCxYlHqEgDwDE9FYCFkorZurS1tv4FInooFGfUStGi4FBVoMCVKbYTqqVOHSp/RJ+a2KU+dZSEcidk0XuARiEhGEStCC4TSQK9XlCDA7eyWmlH5S5jYi2D0AJe4rwruZA6CKgq+HGCci23HEEWZZ9ooWeWPKzzR0BqddbYXP4HDqiXrE/tkOsBcb5ckn+REyM23Fttk3HnYWhnuyNP3JjObWshbD+dy0izI2iSG5EILJsH6MGukdl3tgcoadjv35TnyWMEKWaBjMUJts61dEemvgfsyeSrSGHmBvGVtRkaTJOOJrqXBoYJYFy+rV1WpPobSLw8auoC0fIlRAomgVq2hd1mEB3Mlaac1TeV9JEOtLEmfFWtEsQKbMpp/C3srwLXgI6peQM7LaFH6w/Em0MWdcPYgQZeggbkafXTMoRVxA9nZ8+hfT67Nc5HFqdgE+DAHo5cmIrJR4XC1iS/R4joBU943cqwLvxIPPVxflSLGiH8wHjdhbJmi3enqAHJuBVjn8ZA5Mt/tpp0a6QOU2v883XbQVioISDiwt23lei1mv6q8gxoseKAsENpYB4St9kgZf8J+053Skur54EtmjRDzkYZATqLwRgdPKA==
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:(366004)(8676002)(110136005)(186003)(5660300002)(52536014)(54906003)(33656002)(316002)(508600001)(82960400001)(71200400001)(6506007)(86362001)(55016002)(9686003)(83380400001)(7696005)(55236004)(66446008)(64756008)(66556008)(66476007)(8936002)(76116006)(30864003)(4326008)(26005)(66946007)(2906002)(38100700002)(122000001)(38070700005);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Mk9zTkdORCtBcDg0REg0Tk9QbmZhYVBGQ0JuRTZ2bEtKNU5oQTZLY29kbE9k?=
 =?utf-8?B?bnVmS2R0NHUzb0h3NFhTRW5QMUZEeDYrWjhWOFNVN3hUekhTRHJaMVllU0VQ?=
 =?utf-8?B?Wkc3Ymd1QndiNWVnVXI5dU5rQ0h5d3Q3VFB5ajFIeGJDMU5Qd2JkTDJoZnRZ?=
 =?utf-8?B?TDByYmcraDhIb2Q3bGxaZWd3cUUyT3lRS2NmaDA2MmFBMHNEdG5hMyt1emZ2?=
 =?utf-8?B?M1I1dmpCVzBEckpJT2cra3cyb25iYTRyQzBTN3M1SElUWlk3OGNoQTB6UnNq?=
 =?utf-8?B?TitvaEphTkV2dmxJdmlMRnQ1dWowTEZZM0RnS3ZmZ1VqR3JxQ2hBR0QySjdv?=
 =?utf-8?B?eEUxNHQyZzYwSFp3SUFoOVhtSGxUc0VPWmtlVmFjTkwrb0lubXFEdWg0bldr?=
 =?utf-8?B?STZiVFRQYVIyRDJOUFowczRXeEttWk12am0wT29VaThCZ3NWSG5WR2QvOVdm?=
 =?utf-8?B?UFprY2NpWWkybTZaaEloNTgxbkdDaGJHcnFHb29yMEJsV0hSQVlLdmRJOEww?=
 =?utf-8?B?YWozR0JUMmNrVGUzVUpMODVIeFVQeWFIRmI0UHZHTGh2Rys3QVk5dTFOSldN?=
 =?utf-8?B?MUZRQVZ1TWx4RmV3NENXSCtQc0czK0FLOW9pT25OcHFDazFBbmpCR1ZvYVdC?=
 =?utf-8?B?TmxDa29JcXpmeGFES1V6dmdZY3hlTEtPdEk5YTAxQlVWT0xSTUlNRytRc1pr?=
 =?utf-8?B?dGhWYWVZQzF5ZUtyZGFzYXpNWWZjc0pEQnBuT09zck9qWU9XNWoyNVVjbUk2?=
 =?utf-8?B?R0c1RU5JWElBejFERWQxK1ZFaDBxTUxDM1ZKaGpzNEFXNThNRkpTRUllbGdr?=
 =?utf-8?B?djlvd2lHUnM3REdEcWQyMXVwVFFpeWVRRHVtMkRoWnVXdnB4SHBBQm1SVys2?=
 =?utf-8?B?aVRDOWkvQjV3SVF6N3RZZkhaTU00aEYvR2psYWNCLzlhQy9wcTBQTGcxWVVU?=
 =?utf-8?B?TFk2N1dMcGdQQ0Z5WTl6Smtab0N6dENvM3RPSDJsUytlcnlzNEpEdVRQYis3?=
 =?utf-8?B?ZDA5UVRTeTV1WGU3MEllbW41cS9teElwQld0TVlWZGlSbCs0WWRRdUpmV0JO?=
 =?utf-8?B?Q3VFRGtBMFVyWHdrUGkySCtsTzNXOWgyTWdBeWI2SHpPdmhaS1dndGl6M1Nr?=
 =?utf-8?B?VGJxSFN0RXJsK1M3WDBVL1E5bmtIV28yWjdQZ2xSeGVNbnQxZWNxRFlvakxX?=
 =?utf-8?B?RWdXU3NkclU2UktEQk1zVFZPbk9SS0IyWU5GRlJZY3BocHZ2a3ZVSzNvM0No?=
 =?utf-8?B?NEUxWnJsRlZxNDZqTllkc2RIQURWWHJjUUNKVENNMklPb2szYzRCWUFtZWxa?=
 =?utf-8?B?WGsrbTI5Vkg1U0Rla3d1L3NOUytYUG9MaS95YjF2eGIxZWdlRVZ0L2tPOG9i?=
 =?utf-8?B?bjcvZnFFbzJhNVF2SVpJZUR2VEgyRnB2bWtZUHdESFlVNzUveUViQnJ3SmZy?=
 =?utf-8?B?NXprVUFUUzhDUlExU1VBaEZKZ1VkL0ZndnNlTC93cFIvYmJYWk4xaFBLWHVE?=
 =?utf-8?B?Y29rQWhYSGM3T3hobWlaNXNGdzBRUG12VFFOZ01hcmgyQ0JFUnR4QUc1WStl?=
 =?utf-8?B?TkZ4SisxTDRWQ1RlWTNXbEI4bWxZQ1ZldjFnSFc2ZTU3TzZmWWJ4Ym43UFFu?=
 =?utf-8?B?c2NyL1poOHJ3NTZKRlZkd291bmY2VTUvQlE1blZQSDZrVlR5STNUbHdCQ2J3?=
 =?utf-8?B?T1hUM3phTjlSYmdiQVV5SHFJa3FsTzI4ZWxCSmZDLzdURE55R3ZpcHdrM1Rl?=
 =?utf-8?B?R1lIcXRYOUYvZk9zakhPWnNzenM4bDFZSUdscmNuZFg5bE9zLzhHYlhYSUF3?=
 =?utf-8?B?aWVaclNFdmJKVmdtdFltWEVMem1oYXZsTnF2cGFxN2ZIOGFHSFRZQjlEeXB4?=
 =?utf-8?B?N1M2MzlaODBYaWRhZ21rWDFlQjFvMzVOOGVhMzZKWnYyNk1TZ1FNM0tGdTBz?=
 =?utf-8?B?WXlzeFRxelhlcm1TYUhEQy9FVUxId1owZWNySXBLVzRnQ2hYTTBKK3lwL3F4?=
 =?utf-8?B?VFhZL2Y4cS9sRmh4aG1BdEV3dENNTlIyMGNrZm5hMmhVUS94ZzUwWXVJUFVL?=
 =?utf-8?B?OVNJWVpOdkxPODJWbU9XVjA0RU5RcUpuRC9IanFNM3ZjUmV2YU5iRHpCM3M4?=
 =?utf-8?B?bmhpbzBBUUtvbDUzRkU3TjZBVFNteVBMQjl3M2twRURnajRib010THp3UENW?=
 =?utf-8?B?bUpFUTZhTTBtUWZsUFdSd0FOTmg1TTBDWm56RjQveHU5UC9CVkVPYWwzdUg1?=
 =?utf-8?B?YVBCMlZETFE3TDErQm9hZXcydjNnPT0=?=
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: 1780559d-88df-40e8-0606-08d997c3c401
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2021 14:28:51.1764 (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: IHzOxr4qORAGfYkkdgPzWbje8VKRaU+soj6bZiP4saEN32BYF7JGmGApIMqOfNGZDlemB4MCaa6i9SsJ1m4wimHKH1pRk8CHeyMe18Wx3HU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB0010
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v4 1/5] eal: add new definitions for wait
 scheme
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
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>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

DQo+ID4gPiBJbnRyb2R1Y2UgbWFjcm9zIGFzIGdlbmVyaWMgaW50ZXJmYWNlIGZvciBhZGRyZXNz
IG1vbml0b3JpbmcuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogRmVpZmVpIFdhbmcgPGZl
aWZlaS53YW5nMkBhcm0uY29tPg0KPiA+ID4gUmV2aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVp
ZmVuZy53YW5nQGFybS5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBsaWIvZWFsL2FybS9pbmNsdWRl
L3J0ZV9wYXVzZV82NC5oICB8IDEyNg0KPiA+ID4gKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t
LSAgbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmggfA0KPiA+ID4gMzIgKysrKysr
Kw0KPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9u
cygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9saWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9w
YXVzZV82NC5oDQo+ID4gPiBiL2xpYi9lYWwvYXJtL2luY2x1ZGUvcnRlX3BhdXNlXzY0LmgNCj4g
PiA+IGluZGV4IGU4N2QxMGI4Y2MuLjIzOTU0YzJkZTIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIv
ZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ID4gPiArKysgYi9saWIvZWFsL2FybS9p
bmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ID4gPiBAQCAtMzEsMjAgKzMxLDEyIEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBydGVfcGF1c2Uodm9pZCkNCj4gPiA+ICAvKiBQdXQgcHJvY2Vzc29yIGludG8g
bG93IHBvd2VyIFdGRShXYWl0IEZvciBFdmVudCkgc3RhdGUuICovDQo+ID4gPiAjZGVmaW5lIF9f
V0ZFKCkgeyBhc20gdm9sYXRpbGUoIndmZSIgOiA6IDogIm1lbW9yeSIpOyB9DQo+ID4gPg0KPiA+
ID4gLXN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+IC1ydGVfd2FpdF91bnRp
bF9lcXVhbF8xNih2b2xhdGlsZSB1aW50MTZfdCAqYWRkciwgdWludDE2X3QgZXhwZWN0ZWQsDQo+
ID4gPiAtCQlpbnQgbWVtb3JkZXIpDQo+ID4gPiAtew0KPiA+ID4gLQl1aW50MTZfdCB2YWx1ZTsN
Cj4gPiA+IC0NCj4gPiA+IC0JYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwg
bWVtb3JkZXIgPT0NCj4gPiBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPiA+IC0NCj4gPiA+IC0JLyoN
Cj4gPiA+IC0JICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0
aGUgMTYtYml0IGNvbnRlbnQgb2YNCj4gPiA+IC0JICogKmFkZHIgd2hpbGUgbWFraW5nIGl0ICdt
b25pdG9yZWQnLHdoZW4gaXQgaXMgd3JpdHRlbiBieSBzb21lb25lDQo+ID4gPiAtCSAqIGVsc2Us
IHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVyYXRl
ZA0KPiA+ID4gLQkgKiBpbXBsaWNpdGx5IHRvIGV4aXQgV0ZFLg0KPiA+ID4gLQkgKi8NCj4gPiA+
ICsvKg0KPiA+ID4gKyAqIEF0b21pYyBleGNsdXNpdmUgbG9hZCBmcm9tIGFkZHIsIGl0IHJldHVy
bnMgdGhlIDE2LWJpdCBjb250ZW50IG9mDQo+ID4gPiArICogKmFkZHIgd2hpbGUgbWFraW5nIGl0
ICdtb25pdG9yZWQnLCB3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gKyAqIGVs
c2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVy
YXRlZA0KPiA+ID4gKyAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiArICovDQo+ID4g
PiAgI2RlZmluZSBfX0xPQURfRVhDXzE2KHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAg
ICAgIFwNCj4gPiA+ICAJaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAgICAg
ICAgICAgICBcDQo+ID4gPiAgCQlhc20gdm9sYXRpbGUoImxkeHJoICV3W3RtcF0sIFsleFthZGRy
XV0iICBcIEBAIC01OCw2ICs1MCw1Mg0KPiA+IEBADQo+ID4gPiBydGVfd2FpdF91bnRpbF9lcXVh
bF8xNih2b2xhdGlsZSB1aW50MTZfdCAqYWRkciwgdWludDE2X3QgZXhwZWN0ZWQsDQo+ID4gPiAg
CQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICAJfSB9DQo+ID4g
Pg0KPiA+ID4gKy8qDQo+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRkciwg
aXQgcmV0dXJucyB0aGUgMzItYml0IGNvbnRlbnQgb2YNCj4gPiA+ICsgKiAqYWRkciB3aGlsZSBt
YWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBieSBzb21lb25lDQo+ID4g
PiArICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQg
aXMgZ2VuZXJhdGVkDQo+ID4gPiArICogaW1wbGljaXRseSB0byBleGl0IFdGRS4NCj4gPiA+ICsg
Ki8NCj4gPiA+ICsjZGVmaW5lIF9fTE9BRF9FWENfMzIoc3JjLCBkc3QsIG1lbW9yZGVyKSB7ICAg
ICAgICAgICAgICBcDQo+ID4gPiArCWlmIChtZW1vcmRlciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7
ICAgICAgICAgICAgICBcDQo+ID4gPiArCQlhc20gdm9sYXRpbGUoImxkeHIgJXdbdG1wXSwgWyV4
W2FkZHJdXSIgIFwNCj4gPiA+ICsJCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBc
DQo+ID4gPiArCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJ
CTogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsJfSBlbHNlIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsJCWFzbSB2b2xh
dGlsZSgibGRheHIgJXdbdG1wXSwgWyV4W2FkZHJdXSIgXA0KPiA+ID4gKwkJCTogW3RtcF0gIj0m
ciIgKGRzdCkgICAgICAgICAgICAgIFwNCj4gPiA+ICsJCQk6IFthZGRyXSAiciIoc3JjKSAgICAg
ICAgICAgICAgICBcDQo+ID4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAg
XA0KPiA+ID4gKwl9IH0NCj4gPiA+ICsNCj4gPiA+ICsvKg0KPiA+ID4gKyAqIEF0b21pYyBleGNs
dXNpdmUgbG9hZCBmcm9tIGFkZHIsIGl0IHJldHVybnMgdGhlIDY0LWJpdCBjb250ZW50IG9mDQo+
ID4gPiArICogKmFkZHIgd2hpbGUgbWFraW5nIGl0ICdtb25pdG9yZWQnLCB3aGVuIGl0IGlzIHdy
aXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gKyAqIGVsc2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBp
cyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVyYXRlZA0KPiA+ID4gKyAqIGltcGxpY2l0bHkg
dG8gZXhpdCBXRkUuDQo+ID4gPiArICovDQo+ID4gPiArI2RlZmluZSBfX0xPQURfRVhDXzY0KHNy
YywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgXA0KPiA+ID4gKwlpZiAobWVtb3JkZXIg
PT0gX19BVE9NSUNfUkVMQVhFRCkgeyAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJYXNtIHZvbGF0
aWxlKCJsZHhyICV4W3RtcF0sIFsleFthZGRyXV0iICBcDQo+ID4gPiArCQkJOiBbdG1wXSAiPSZy
IiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCTogW2FkZHJdICJyIihzcmMpICAgICAg
ICAgICAgICAgIFwNCj4gPiA+ICsJCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBc
DQo+ID4gPiArCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQo+ID4gPiArCQlhc20gdm9sYXRpbGUoImxkYXhyICV4W3RtcF0sIFsleFthZGRyXV0iIFwN
Cj4gPiA+ICsJCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiArCQkJ
OiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCTogIm1lbW9yeSIp
OyAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsJfSB9DQo+ID4gPiArDQo+ID4gPiArc3Rh
dGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiA+ID4gK3J0ZV93YWl0X3VudGlsX2VxdWFs
XzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBleHBlY3RlZCwNCj4gPiA+ICsJ
CWludCBtZW1vcmRlcikNCj4gPiA+ICt7DQo+ID4gPiArCXVpbnQxNl90IHZhbHVlOw0KPiA+ID4g
Kw0KPiA+ID4gKwlhc3NlcnQobWVtb3JkZXIgPT0gX19BVE9NSUNfQUNRVUlSRSB8fCBtZW1vcmRl
ciA9PQ0KPiA+ID4gK19fQVRPTUlDX1JFTEFYRUQpOw0KPiA+ID4gKw0KPiA+ID4gIAlfX0xPQURf
RVhDXzE2KGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ICAJaWYgKHZhbHVlICE9IGV4cGVj
dGVkKSB7DQo+ID4gPiAgCQlfX1NFVkwoKQ0KPiA+ID4gQEAgLTY2LDcgKzEwNCw2IEBAIHJ0ZV93
YWl0X3VudGlsX2VxdWFsXzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLA0KPiA+IHVpbnQxNl90
IGV4cGVjdGVkLA0KPiA+ID4gIAkJCV9fTE9BRF9FWENfMTYoYWRkciwgdmFsdWUsIG1lbW9yZGVy
KQ0KPiA+ID4gIAkJfSB3aGlsZSAodmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gIAl9DQo+ID4g
PiAtI3VuZGVmIF9fTE9BRF9FWENfMTYNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyBf
X3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+IEBAIC03NywyNSArMTE0LDYgQEAgcnRlX3dh
aXRfdW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdWludDMyX3QgKmFkZHIsDQo+ID4gPiB1aW50MzJf
dCBleHBlY3RlZCwNCj4gPiA+DQo+ID4gPiAgCWFzc2VydChtZW1vcmRlciA9PSBfX0FUT01JQ19B
Q1FVSVJFIHx8IG1lbW9yZGVyID09DQo+ID4gPiBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPiA+DQo+
ID4gPiAtCS8qDQo+ID4gPiAtCSAqIEF0b21pYyBleGNsdXNpdmUgbG9hZCBmcm9tIGFkZHIsIGl0
IHJldHVybnMgdGhlIDMyLWJpdCBjb250ZW50IG9mDQo+ID4gPiAtCSAqICphZGRyIHdoaWxlIG1h
a2luZyBpdCAnbW9uaXRvcmVkJyx3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4g
LQkgKiBlbHNlLCB0aGUgJ21vbml0b3JlZCcgc3RhdGUgaXMgY2xlYXJlZCBhbmQgYSBldmVudCBp
cyBnZW5lcmF0ZWQNCj4gPiA+IC0JICogaW1wbGljaXRseSB0byBleGl0IFdGRS4NCj4gPiA+IC0J
ICovDQo+ID4gPiAtI2RlZmluZSBfX0xPQURfRVhDXzMyKHNyYywgZHN0LCBtZW1vcmRlcikgeyAg
ICAgICAgICAgICAgXA0KPiA+ID4gLQlpZiAobWVtb3JkZXIgPT0gX19BVE9NSUNfUkVMQVhFRCkg
eyAgICAgICAgICAgICAgXA0KPiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZHhyICV3W3RtcF0sIFsl
eFthZGRyXV0iICBcDQo+ID4gPiAtCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAg
XA0KPiA+ID4gLQkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAgICAgIFwNCj4gPiA+IC0J
CQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiAtCX0gZWxzZSB7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiAtCQlhc20gdm9s
YXRpbGUoImxkYXhyICV3W3RtcF0sIFsleFthZGRyXV0iIFwNCj4gPiA+IC0JCQk6IFt0bXBdICI9
JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiAtCQkJOiBbYWRkcl0gInIiKHNyYykgICAg
ICAgICAgICAgICAgXA0KPiA+ID4gLQkJCTogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAg
IFwNCj4gPiA+IC0JfSB9DQo+ID4gPiAtDQo+ID4gPiAgCV9fTE9BRF9FWENfMzIoYWRkciwgdmFs
dWUsIG1lbW9yZGVyKQ0KPiA+ID4gIAlpZiAodmFsdWUgIT0gZXhwZWN0ZWQpIHsNCj4gPiA+ICAJ
CV9fU0VWTCgpDQo+ID4gPiBAQCAtMTA0LDcgKzEyMiw2IEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFs
XzMyKHZvbGF0aWxlIHVpbnQzMl90ICphZGRyLA0KPiA+IHVpbnQzMl90IGV4cGVjdGVkLA0KPiA+
ID4gIAkJCV9fTE9BRF9FWENfMzIoYWRkciwgdmFsdWUsIG1lbW9yZGVyKQ0KPiA+ID4gIAkJfSB3
aGlsZSAodmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gIAl9DQo+ID4gPiAtI3VuZGVmIF9fTE9B
RF9FWENfMzINCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5s
aW5lIHZvaWQNCj4gPiA+IEBAIC0xMTUsMjUgKzEzMiw2IEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFs
XzY0KHZvbGF0aWxlIHVpbnQ2NF90ICphZGRyLA0KPiA+ID4gdWludDY0X3QgZXhwZWN0ZWQsDQo+
ID4gPg0KPiA+ID4gIAlhc3NlcnQobWVtb3JkZXIgPT0gX19BVE9NSUNfQUNRVUlSRSB8fCBtZW1v
cmRlciA9PQ0KPiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gPg0KPiA+ID4gLQkvKg0KPiA+
ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSA2
NC1iaXQgY29udGVudCBvZg0KPiA+ID4gLQkgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0
b3JlZCcsd2hlbiBpdCBpcyB3cml0dGVuIGJ5IHNvbWVvbmUNCj4gPiA+IC0JICogZWxzZSwgdGhl
ICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQgaXMgZ2VuZXJhdGVkDQo+
ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiAtCSAqLw0KPiA+ID4gLSNk
ZWZpbmUgX19MT0FEX0VYQ182NChzcmMsIGRzdCwgbWVtb3JkZXIpIHsgICAgICAgICAgICAgIFwN
Cj4gPiA+IC0JaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAgICAgICAgICAg
IFwNCj4gPiA+IC0JCWFzbSB2b2xhdGlsZSgibGR4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiAgXA0K
PiA+ID4gLQkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAgICAgIFwNCj4gPiA+IC0JCQk6
IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gPiAtCQkJOiAibWVtb3J5Iik7
ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gLQl9IGVsc2UgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZGF4ciAl
eFt0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4gPiAtCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAg
ICAgICAgICAgXA0KPiA+ID4gLQkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAgICAgIFwN
Cj4gPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiAtCX0g
fQ0KPiA+ID4gLQ0KPiA+ID4gIAlfX0xPQURfRVhDXzY0KGFkZHIsIHZhbHVlLCBtZW1vcmRlcikN
Cj4gPiA+ICAJaWYgKHZhbHVlICE9IGV4cGVjdGVkKSB7DQo+ID4gPiAgCQlfX1NFVkwoKQ0KPiA+
ID4gQEAgLTE0Myw2ICsxNDEsMjYgQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfNjQodm9sYXRpbGUg
dWludDY0X3QgKmFkZHIsDQo+ID4gdWludDY0X3QgZXhwZWN0ZWQsDQo+ID4gPiAgCQl9IHdoaWxl
ICh2YWx1ZSAhPSBleHBlY3RlZCk7DQo+ID4gPiAgCX0NCj4gPiA+ICB9DQo+ID4gPiArDQo+ID4g
PiArI2RlZmluZSBydGVfd2FpdF9ldmVudChhZGRyLCBtYXNrLCBleHBlY3RlZCwgY29uZCwgbWVt
b3JkZXIsIHNpemUpIFwNCj4gPiA+ICtkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwlSVEVfQlVJTERfQlVH
X09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1vcmRlcikpOyAgICAgICAgIFwNCj4gPiA+ICsJ
UlRFX0JVSUxEX0JVR19PTihtZW1vcmRlciAhPSBfX0FUT01JQ19BQ1FVSVJFICYmICAgICAgICAg
ICBcDQo+ID4gPiArCW1lbW9yZGVyICE9IF9fQVRPTUlDX1JFTEFYRUQpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KPiA+ID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemUgIT0gMTYgJiYg
c2l6ZSAhPSAzMiAmJiBzaXplICE9IDY0KTsgIFwNCj4gPiA+ICsJdWludCMjc2l6ZV90IHZhbHVl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiArCV9fTE9B
RF9FWENfIyNzaXplKGFkZHIsIHZhbHVlLCBtZW1vcmRlcikgICAgICAgICAgICAgICAgICAgXA0K
PiA+ID4gKwlpZiAoKHZhbHVlICYgbWFzaykgY29uZCBleHBlY3RlZCkgewkJICAgICAgICAgICBc
DQo+ID4gPiArCQlfX1NFVkwoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQo+ID4gPiArCQlkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQo+ID4gPiArCQkJX19XRkUoKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCj4gPiA+ICsJCQlfX0xPQURfRVhDXyMjc2l6ZShhZGRyLCB2YWx1ZSwgbWVt
b3JkZXIpICAgXA0KPiA+ID4gKwkJfSB3aGlsZSAoKHZhbHVlICYgbWFzaykgY29uZCBleHBlY3Rl
ZCk7ICAgICAgICAgICAgXA0KPiA+ID4gKwl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICt9IHdoaWxlICgwKQ0KPiA+ID4g
Kw0KPiA+ID4gKyN1bmRlZiBfX0xPQURfRVhDXzE2DQo+ID4gPiArI3VuZGVmIF9fTE9BRF9FWENf
MzINCj4gPiA+ICAjdW5kZWYgX19MT0FEX0VYQ182NA0KPiA+ID4NCj4gPiA+ICAjdW5kZWYgX19T
RVZMDQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNl
LmgNCj4gPiA+IGIvbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmgNCj4gPiA+IGlu
ZGV4IDY2OGVlNGExODQuLjIwYTVkMmE5ZmQgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIvZWFsL2lu
Y2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiA+ID4gKysrIGIvbGliL2VhbC9pbmNsdWRlL2dl
bmVyaWMvcnRlX3BhdXNlLmgNCj4gPiA+IEBAIC0xMTEsNiArMTExLDM4IEBAIHJ0ZV93YWl0X3Vu
dGlsX2VxdWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90ICphZGRyLA0KPiA+IHVpbnQ2NF90IGV4cGVj
dGVkLA0KPiA+ID4gIAl3aGlsZSAoX19hdG9taWNfbG9hZF9uKGFkZHIsIG1lbW9yZGVyKSAhPSBl
eHBlY3RlZCkNCj4gPiA+ICAJCXJ0ZV9wYXVzZSgpOw0KPiA+ID4gIH0NCj4gPiA+ICsNCj4gPiA+
ICsvKg0KPiA+ID4gKyAqIFdhaXQgdW50aWwgKmFkZHIgYnJlYWtzIHRoZSBjb25kaXRpb24sIHdp
dGggYSByZWxheGVkIG1lbW9yeQ0KPiA+ID4gKyAqIG9yZGVyaW5nIG1vZGVsIG1lYW5pbmcgdGhl
IGxvYWRzIGFyb3VuZCB0aGlzIEFQSSBjYW4gYmUgcmVvcmRlcmVkLg0KPiA+ID4gKyAqDQo+ID4g
PiArICogQHBhcmFtIGFkZHINCj4gPiA+ICsgKiAgQSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgbG9j
YXRpb24uDQo+ID4gPiArICogQHBhcmFtIG1hc2sNCj4gPiA+ICsgKiAgQSBtYXNrIG9mIHZhbHVl
IGJpdHMgaW4gaW50ZXJlc3QuDQo+ID4gPiArICogQHBhcmFtIGV4cGVjdGVkDQo+ID4gPiArICog
IEEgMTYtYml0IGV4cGVjdGVkIHZhbHVlIHRvIGJlIGluIHRoZSBtZW1vcnkgbG9jYXRpb24uDQo+
ID4gPiArICogQHBhcmFtIGNvbmQNCj4gPiA+ICsgKiAgQSBzeW1ib2wgcmVwcmVzZW50aW5nIHRo
ZSBjb25kaXRpb24gKD09LCAhPSkuDQo+ID4gPiArICogQHBhcmFtIG1lbW9yZGVyDQo+ID4gPiAr
ICogIFR3byBkaWZmZXJlbnQgbWVtb3J5IG9yZGVycyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQ6DQo+
ID4gPiArICogIF9fQVRPTUlDX0FDUVVJUkUgYW5kIF9fQVRPTUlDX1JFTEFYRUQuIFRoZXNlIG1h
cCB0bw0KPiA+ID4gKyAqICBDKysxMSBtZW1vcnkgb3JkZXJzIHdpdGggdGhlIHNhbWUgbmFtZXMs
IHNlZSB0aGUgQysrMTEgc3RhbmRhcmQNCj4gPiA+ICtvcg0KPiA+ID4gKyAqICB0aGUgR0NDIHdp
a2kgb24gYXRvbWljIHN5bmNocm9uaXphdGlvbiBmb3IgZGV0YWlsZWQgZGVmaW5pdGlvbi4NCj4g
PiA+ICsgKiBAcGFyYW0gc2l6ZQ0KPiA+ID4gKyAqIFRoZSBiaXQgc2l6ZSBvZiAqYWRkcjoNCj4g
PiA+ICsgKiBJdCBpcyB1c2VkIGZvciBhcm0gYXJjaGl0ZWN0dXJlIHRvIGNob29zZSBsb2FkIGlu
c3RydWN0aW9ucywNCj4gPiA+ICsgKiBhbmQgdGhlIG9wdGlvbmFsIHZhbHVlIGlzIDE2LCAzMiBh
bmQgNjQuDQo+ID4gPiArICovDQo+ID4gPiArI2RlZmluZSBydGVfd2FpdF9ldmVudChhZGRyLCBt
YXNrLCBleHBlY3RlZCwgY29uZCwgbWVtb3JkZXIsIHNpemUpICAgICBcDQo+ID4gPiArZG8geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQo+ID4gPiArCVJURV9CVUlMRF9CVUdfT04oIV9fYnVpbHRpbl9jb25zdGFudF9w
KG1lbW9yZGVyKSk7ICAgICAgICAgICAgIFwNCj4gPiA+ICsJUlRFX0JVSUxEX0JVR19PTihtZW1v
cmRlciAhPSBfX0FUT01JQ19BQ1FVSVJFICYmICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCQlt
ZW1vcmRlciAhPSBfX0FUT01JQ19SRUxBWEVEKTsgICAgICAgICBcDQo+ID4gPiArCVJURV9CVUlM
RF9CVUdfT04oc2l6ZSAhPSAxNiAmJiBzaXplICE9IDMyICYmIHNpemUgIT0gNjQpOyAgICAgIFwN
Cj4gPg0KPiA+IEkgZG9uJ3QnIHJlYWxseSB1bmRlcnN0YW5kIHdoeSB5b3UgZG8gbmVlZCAnc2l6
ZScgcGFzc2VkIGFzIHBhcmFtZXRlci4NCj4gPiBDYW4ndCBpdCBiZToNCj4gPiBzaXplX3Qgc2l6
ZSA9IHNpemVvZigqKGFkZHIpKTsNCj4gPiBBbmQgdGhlbjoNCj4gPiBSVEVfQlVJTERfQlVHX09O
KHNpemUgIT0gc2l6ZW9mKHVpbnQxNl90KSAmJiBzaXplICE9IHNpemVvZih1aW50MzJfdCkgJiYN
Cj4gPiBzaXplICE9IHNpemVvZih1aW50NjRfdCkpOyA/DQo+ID4NCj4gPiA+ICsJd2hpbGUgKChf
X2F0b21pY19sb2FkX24oYWRkciwgbWVtb3JkZXIpICYgbWFzaykgY29uZCBleHBlY3RlZCkgXA0K
PiA+ID4gKwkJcnRlX3BhdXNlKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCj4gPg0KPiA+IEp1c3QgdG8gcmVwZWF0IG15IG93biBjb21tZW50IGZyb20gcHJl
dmlvdXMgdmVyc2lvbiByZXZpZXc6DQo+ID4gcHV0ICgpIGFyb3VuZCBtYWNybyBwYXJhbWV0ZXJz
IGluIHRoZSBtYWNybyBib2R5Lg0KPiA+IFdpbGwgc2F2ZSBmcm9tIGEgbG90IG9mIHVuZXhwZWN0
ZWQgdHJvdWJsZXMuDQo+IA0KPiBTb3JyeSBJIGRpZG4ndCBjYXRjaCB0aGUgcG9pbnQuDQo+IElu
IHRoaXMgdmVyc2lvbiwgSSBmaXJzdGx5IHdhbnQgdG8gdXNlICdfX0xPQURfRVhDXyMjc2l6ZScg
dG8gY2hvb3NlICwgc28gSSB1c2Ugc2l6ZQ0KPiBhcyBhIHBhcmFtZXRlci4gIEFuZCBpbiB0aGUg
bmV4dCB2ZXJzaW9uLCBJIHdpbGwgdXBkYXRlIHRoaXMgYXPvvJoNCj4gDQo+ICNkZWZpbmUgX19M
T0FEX0VYQyhzcmMsIGRzdCwgbWVtb3JkZXIsIHNpemUpIHsgICAgXA0KPiAJaWYgKHNpemUgPT0g
MTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gCQlfX0xPQURfRVhDXzE2KHNy
YywgZHN0LCBtZW1vcmRlcikgICAgIFwNCj4gCWVsc2UgaWYgKHNpemUgPT0gMzIpICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQo+IAkJX19MT0FEX0VYQ18zMihzcmMsIGRzdCwgbWVtb3JkZXIp
ICAgICBcDQo+IAllbHNlIGlmIChzaXplID09IDY0KSAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KPiAJCV9fTE9BRF9FWENfNjQoc3JjLCBkc3QsIG1lbW9yZGVyKSAgICAgXA0KPiB9DQo+IA0K
PiAjZGVmaW5lIHJ0ZV93YWl0X2V2ZW50KGFkZHIsIG1hc2ssIGNvbmQsIGV4cGVjdGVkLCBtZW1v
cmRlcikgICAgXA0KPiBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KPiAJUlRFX0JVSUxEX0JVR19PTighX19idWlsdGluX2Nv
bnN0YW50X3AobWVtb3JkZXIpKTsgICAgICBcDQo+IAlSVEVfQlVJTERfQlVHX09OKG1lbW9yZGVy
ICE9IF9fQVRPTUlDX0FDUVVJUkUgJiYgICAgICAgIFwNCj4gCQkJCW1lbW9yZGVyICE9IF9fQVRP
TUlDX1JFTEFYRUQpOyAgXA0KPiAJdWludDMyX3Qgc2l6ZSA9IHNpemVvZigqYWRkcikgPDwgMzsg
ICAgICAgICAgICAgICAgICAgICBcDQo+IAl0eXBlb2YoKmFkZHIpIHZhbHVlID0gMDsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gCV9fTE9BRF9FWEMoYWRkciwgdmFsdWUsIG1l
bW9yZGVyLCBzaXplKSAgICAgICAgICAgICAgICAgXA0KPiAJaWYgKCh2YWx1ZSAmIG1hc2spIGNv
bmQgZXhwZWN0ZWQpIHsgICAgICAgICAgICAgICAgICAgICBcDQo+IAkJX19TRVZMKCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAJCWRvIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gCQkJX19XRkUoKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gCQkJX19MT0FEX0VYQyhhZGRyLCB2YWx1ZSwgbWVt
b3JkZXIsIHNpemUpIFwNCj4gCQl9IHdoaWxlICgodmFsdWUgJiBtYXNrKSBjb25kIGV4cGVjdGVk
KTsgICAgICAgICBcDQo+IAl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCj4gfSB3aGlsZSAoMCkNCg0KU29ycnksIEkgcHJvYmFibHkgd2Fz
bid0IGNsZWFyIGVub3VnaC4NCkkgbWVhbnQgdXNlICcoJyAnKScgYXJvdW5kICBtYWNybyBhcmd1
bWVudHMgKHRvIGF2b2lkIHVuLXByZWRpY3RlZCBzaWRlLWVmZmVjdHMgd2l0aCBvcGVyYW5kcyBh
c3NvY2lhdGl2aXR5KToNCnVpbnQzMl90IHNpemUgPSBzaXplb2YoKihhZGRyKSkgLi4uOw0KLi4u
DQppZiAoKHZhbHVlICYgKG1hc2spKSBjb25kIChleHBlY3RlZCkpDQouLi4NCg0KDQoNCg0KDQoN
Cg==