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 554FCA04FD;
	Mon, 23 May 2022 19:06:58 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 090444067B;
	Mon, 23 May 2022 19:06:58 +0200 (CEST)
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by mails.dpdk.org (Postfix) with ESMTP id 81A5C40156
 for <dev@dpdk.org>; Mon, 23 May 2022 19:06:56 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1653325616; x=1684861616;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=DYWgg/6lPMjHzvon+YruoG7/16jqPHQZYDtJGnJkxDM=;
 b=n5lIzt0JkxZTPR9txI0bPNjrVunsTrjaasKTktIwTLPLoQEN8Zsp0j9e
 OAE7m6A1iTc72a1UEGRL4FjwHj5kZdo/UBdX92jfwXelnG0iO09+Y3QbP
 LLNhMzTvIeZX0fHcCt5+cKwHtgQaghGSWDDQPg1Fs/LtAg515SsUiGjxL
 beBHxdtU/dHHHrIISdeDi5HP1VUFW7NQ8MXMwn0k0y6UTgUv+mAmVqZnN
 NVEXHQb98W7cv6EkoAezPTHNYOeruQfWf9eyvM346CNf1hmS8/JCKDC9A
 N+Yq+BSmsJH0sDRlMiaGq0eLNEloG2Iz3ZNrPqdNFgN2GQkMEsQsZNoob g==;
X-IronPort-AV: E=McAfee;i="6400,9594,10356"; a="273405668"
X-IronPort-AV: E=Sophos;i="5.91,246,1647327600"; d="scan'208";a="273405668"
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 May 2022 10:06:55 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.91,246,1647327600"; d="scan'208";a="819903394"
Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85])
 by fmsmga006.fm.intel.com with ESMTP; 23 May 2022 10:06:55 -0700
Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.2308.27; Mon, 23 May 2022 10:06:55 -0700
Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) 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.2308.27; Mon, 23 May 2022 10:06:54 -0700
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx607.amr.corp.intel.com (10.18.126.87) 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, 23 May 2022 10:06:54 -0700
Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.171)
 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.2308.27; Mon, 23 May 2022 10:06:54 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mwcituKAyVz6goZ0WLvUfzT/5hVM9qbRBz9xPC2vrD7DHnE3ugNPDgX9wmatm+TIG0QdGwyxw/E3NX3IxC5I+yP2tznAtcb6oa4+gKLL6E4h76hnWUbQD9YR0Kd6O0BiDo9hZjutC9GDrt2SClfBVUOUoo7bBWrZ757WmfqlX9qnvNfHMt84hsJgGpP1TlnHxTVji13YgN3TcWTgG4d+kM7bxrXGFPf3AqC6Tj9MTHLLbYiQIMp219SPsfo705pqXt7MIXHHFW6laCFc67qAaUUqMgX/Ug1TKAt/DjQDQeiY+ciQQZ3219WZaGZBl41GnA6dcS/FdEapxXk1KcmAvg==
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=DYWgg/6lPMjHzvon+YruoG7/16jqPHQZYDtJGnJkxDM=;
 b=bKgReoimv8h0zIKOJbJmpzwBqcaxQCCsECVTux+Ta/uPz+eRnhGGBuN8k/vOPM2rpFNZN+tWQMS92UkngsEKDhATF4aVfBV2W7RwYluyFBl87Ot2H+qJl2BT0n++hA99aHZF+13eCWPFGdQAidbckGKGawbhNlbm+FyDICGGB63UIuesbyjsmFOvXAwUne5JKpn3BdLpWCuQnV9lRRQXyhhNL21uFcf9Vq62Yej6w5Y4NVWOSICIx7sn4hKNf+SEdR2fjk6xxebHzFWoPzoCL7bZi0swL32yLjVfo684DkKy7Cslz8IZQurcF67POInykM4JAm/M7aYWAKNvHpGPzQ==
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 BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30)
 by BN6PR11MB3873.namprd11.prod.outlook.com (2603:10b6:405:83::37)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Mon, 23 May
 2022 17:06:50 +0000
Received: from BY5PR11MB4451.namprd11.prod.outlook.com
 ([fe80::40f:170c:c586:7219]) by BY5PR11MB4451.namprd11.prod.outlook.com
 ([fe80::40f:170c:c586:7219%2]) with mapi id 15.20.5273.023; Mon, 23 May 2022
 17:06:50 +0000
From: "Chautru, Nicolas" <nicolas.chautru@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "gakhil@marvell.com" <gakhil@marvell.com>, "trix@redhat.com"
 <trix@redhat.com>
CC: "thomas@monjalon.net" <thomas@monjalon.net>, "Kinsella, Ray"
 <ray.kinsella@intel.com>, "Richardson, Bruce" <bruce.richardson@intel.com>,
 "hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>, "Vargas, Hernan"
 <hernan.vargas@intel.com>, "david.marchand@redhat.com"
 <david.marchand@redhat.com>
Subject: RE: [PATCH v3 3/4] baseband/acc100: configuration of ACC101 from PF
Thread-Topic: [PATCH v3 3/4] baseband/acc100: configuration of ACC101 from PF
Thread-Index: AQHYaWdrYQzXIRVKuE2K9ZfMaeXFE60mpxOAgAYTZjA=
Date: Mon, 23 May 2022 17:06:50 +0000
Message-ID: <BY5PR11MB4451808C7DB080C34D9165C0F8D49@BY5PR11MB4451.namprd11.prod.outlook.com>
References: <1651083423-33202-1-git-send-email-nicolas.chautru@intel.com>
 <1652734113-124047-1-git-send-email-nicolas.chautru@intel.com>
 <1652734113-124047-4-git-send-email-nicolas.chautru@intel.com>
 <d51ba98a-e152-ead8-5162-029406cc1ff1@redhat.com>
In-Reply-To: <d51ba98a-e152-ead8-5162-029406cc1ff1@redhat.com>
Accept-Language: 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: e313f6b5-883f-4731-dc08-08da3cdea0d5
x-ms-traffictypediagnostic: BN6PR11MB3873:EE_
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-microsoft-antispam-prvs: <BN6PR11MB3873650D0FC2FC4B8C4DBAABF8D49@BN6PR11MB3873.namprd11.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 8NVQTXGFuSTeDQzNe7yT9jVa83mt+HKIYumIhgZUiGfb77eYaR8qQ5Glx42rR/uyxSfXiCpMe3dJDZB5po5qbaVkRJkQdQlxBBTNHcaSkuD3zN0/naKxHUL9vnGBkN3BqOUr299smufjNNfoz6YMusj9fkMzXaRQOXMRdS58j1O3tc3qrKIFroh7eFAicqmzxAGZQP5FOX/wCtpkwL+Monkd4dhXyKEqAtHhN3o+OnUm0q8+QyS0T4P4qApdTe2ks+m0PJSw5vEMu54F9D1HaxHGvf1Cs/C3Hj9GpPTLxKjZt8QpOaIK1/a1Ifred+Zh/rk+XGz1EoiCLD1qPdAuPDcMaMxHSDttm5udGZKpvBK1KeBQzjOVjxfRMcrCIe5lQUEwYG/eF/8BlURakPu1+JPrjh6kPLeif2y6E1XJPN8lmsusuy2cSSIK+WOcmAETh48NnNkNareYHmN+jKL6FvUgA7ayYR+4h4XtScl5Zgva3nyAMn9WkT6fzKj0udkYTt9bf2Pq3S3RyvrSxdQ/oXFrbz2ugFQM5oc0uZGdyFgcvXtWqFMGv557AmFbZxDtwaeJz0d+/ML/XleGRzieE3Asp2WFJANHc8yzcoSBqqfYZOYCDKjVC5YklnkOXvrXmyDdzjzA5J5oHN1znwFvENj3O0M9i/Qd9CZ452F75OTN3sAsBQ9Ffm6Gc/Str9hPM149Rj5S6nei04TGTKr8uA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230001)(366004)(8676002)(76116006)(82960400001)(7696005)(316002)(122000001)(54906003)(5660300002)(71200400001)(52536014)(66946007)(66476007)(64756008)(110136005)(30864003)(55016003)(86362001)(66446008)(66556008)(19627235002)(38100700002)(508600001)(53546011)(9686003)(38070700005)(4326008)(33656002)(26005)(8936002)(6506007)(186003)(83380400001)(2906002)(579004);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?czA2NGRJK3ZZQ05mVjlSQ3ZSdVY0M2loWENvNVJ2eFFXVHNFUHpRUHE5U2li?=
 =?utf-8?B?YUd5cncvVzRTNW1qbnkxdGtYazB5RUNvR09kdThrMnhQRWg4eHFSa2x2Rllp?=
 =?utf-8?B?MCt6TlhnV1l1S2orbGVqc1JuZk96emRhbUdyc3I2RWM4ZXVIRytWNVM1b3lG?=
 =?utf-8?B?SHVsQTF3ZnBqRkZrL1Rna2swOXVhZkpzaXRuUWkxa3VDRHhkYkwrLy9rQkE0?=
 =?utf-8?B?T0tEcGNTUUZNZ05Md3U0TWUrNXBNdDFiWW55Q1drZUpDaXpKSTVCU0hFck9G?=
 =?utf-8?B?b0NWWTdLK05Gcjg3dk9zYVNqbjRsWmN4UWVNNFpYYkpQY0R1Q3FjVUgwVUFP?=
 =?utf-8?B?RVhQVHdCazFkRmVETHRWcnVTVUlUcDBBclh0OTY2cFo0ZncyZjVobWhtdmhZ?=
 =?utf-8?B?RXk2Tm9qY1l4cWx3eENKMEloV3Qwcnd6OExGaU5Cc3RqM2NYQm5ZWnZNUnNY?=
 =?utf-8?B?NmE0bHhzRCtWalFYNS9ybVRhMVhBRGpBS0E1d2VyVTJFb2xaQ2gwWW1kVXJk?=
 =?utf-8?B?RXBIT0J4N3p2ZDJkSWZXWDg0bkVEVzNqVTlnRVhWUi9OemJBaTU3dE5CSE5x?=
 =?utf-8?B?OHZoQUJIQ1Vwakh5T3BTOFh3TndpM3l4b1h4dkhDZmdLQmpKTEN6Q2tMT0VV?=
 =?utf-8?B?c25ObjZlYWJoSFE4a0s5TkV4aVpwVjhTbCtDM1RiRDdlYVVocnZpaGpVS3Nn?=
 =?utf-8?B?emh0UXo5bHZFdU9OR203RHBWTVQyZmlBMTBBcCtNRzljd1pvZ0NKaStnRWpS?=
 =?utf-8?B?cDVTZDJsZGJDQ1B1eDd1Qk5JMW5RUExFSFNxdFg1RTBiYkFJTzRJNHZEM3lu?=
 =?utf-8?B?eXRFd3NEeE52OVZQRkZxT3RhT3phc3Y1S0hjL1VqS2RtVExxZFhsYkJHTW1W?=
 =?utf-8?B?bTJ4QzdIcG8ydHB4L2hLRFM3SWFPejcyb1g3QmQ0MURUcklsZnZVZjJRRFdU?=
 =?utf-8?B?c01hSmtmbVY5eTVCN2tUUUFzWUlIdTZmenVhTHNlWUdXZ2gyOTIwVU9tRWk1?=
 =?utf-8?B?OUZMWUp4Rk5RRHBqWHN5TXNsaExpVC9keHpGWjZGU2xoZHB3RWNGZlpkZEw2?=
 =?utf-8?B?dk94eXM1cHdSdmZ1bmp5T0VhLzU0TktFK2poNEl6RE1qTElEK2YySnk3SnYz?=
 =?utf-8?B?WFhNWGlhSzZoMmVic1QrUjlYRnB2ZGRBenlneEtseWZNNStFaG9ZL2hsS2NS?=
 =?utf-8?B?UjhwOGM0NWl1VUZ2UmV3M2xIdklLM205Y1k0WjBPc0RRSkM0K3pVQzU1bHhu?=
 =?utf-8?B?YUxMV3BrM3dCakgrWDNPUDFhMy9DVm80cGl0NytsV2RwbVBGQzNCT1BIRGlF?=
 =?utf-8?B?ZHBWaHJqME1hZDdiNEVOZkhiQ0JyaVEyRWwrSTFiQTlmQXhYZ01ZTDdIcmVT?=
 =?utf-8?B?TkZaZCtIVWt0LzFmTldYZFA5WmIyWjZXVVRveEdoVFRLb2ZtWDV6bmo5WWlE?=
 =?utf-8?B?a1dodkJCTk9aY1NCUk05RithblYwOWo1c3lkZmQxVUVPMFczbk52UzRHcHk3?=
 =?utf-8?B?b1NpakFFck1IUWZpcWNrMmxTVjlUWG0vVHhYZHN3OEZ3NURlY0dXdlFqM0hI?=
 =?utf-8?B?K2VnM09ObHF6QlpOQmZIWUkvYmc2cXI1WXBMcUprNURCWmpad0ZjVGhjcHJI?=
 =?utf-8?B?SXBEVlVqTklCRFhTKzRYY1lTLy9vOXZiYkN4bnFFcWZianJZYnVrSjA3SWNk?=
 =?utf-8?B?ZE56K3JUSHNPaWVOUDM4dkd5MGVRVTJ3dThLRnZ1QTJPWE9TYWNtK3M3RjR5?=
 =?utf-8?B?blhYbHhQci9DeEwyUU5nSTBNSmJQN1pBSkZvQjhMQ2J3ay8vVjl1RnNhSzQ0?=
 =?utf-8?B?Smo2NWFOUS9xSXg1NklwL0VoNEFrRFVMcyt2Q2luQTdyNXZDeDJTdVFGVVR1?=
 =?utf-8?B?ZHhCQ0g5SHNza1ZKMWV3eDJrcHNBQ2lqVllIR2s5ajJaOGphZzE3YjRSQ1l4?=
 =?utf-8?B?eHBaQkd6WVpKL1FCRmo5QU1IYkFMaDBHT1NMVU8wMEZUTVpDd2JGc2hDa2h4?=
 =?utf-8?B?NGE3KzVSZ3NRb29xNGU0OVF0UDhrL3BjV3Fpb0NKQ2hLeGx4dzJ6ZDZodHJr?=
 =?utf-8?B?b1pmVHNFdmxrTzF5YkFIanN6RUtZRnhyd0pWN2NaYmhjVUpGRVI3RzBHSHpW?=
 =?utf-8?B?WkV4aW5PMlE5NG81V3Mxc0NqL05mcGlXYUdodVhVaGVSYmllanEzTUFxNUFH?=
 =?utf-8?B?OW1sMEEyMC94Uy9uZnpvZC9oTGNFb2NtQXVLYlFVVUNhMG1MYVI3STUwbmZ3?=
 =?utf-8?B?b3hudnpNUEVkQVpLMXE3WFh0aUpCbDJzb0FZaitscXdBY1NyUjFUcFJ6UnVx?=
 =?utf-8?B?R3VMamYvZU1ZNkdLZUF5SUthRk1mTzVacVJRRHFpR3Zna2dnc3U4YVNCMlIv?=
 =?utf-8?Q?WuFXtODGq670tOk8=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: BY5PR11MB4451.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e313f6b5-883f-4731-dc08-08da3cdea0d5
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2022 17:06:50.4654 (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: OBuItWDI9hEeeOSWtO3keB249PNy6+8/iD2lL+nFPPkYGcrUDunxlxH3V6UxOcCldmZcl4y34k0h1A2zpe1H/aPOfSHjBDIqkMIblnEfCOE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3873
X-OriginatorOrg: intel.com
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

SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp
bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUaHVyc2Rh
eSwgTWF5IDE5LCAyMDIyIDE6MTQgUE0NCj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMu
Y2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7DQo+IGdha2hpbEBtYXJ2ZWxsLmNvbTsg
dHJpeEByZWRoYXQuY29tDQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBLaW5zZWxsYSwgUmF5
IDxyYXkua2luc2VsbGFAaW50ZWwuY29tPjsNCj4gUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJp
Y2hhcmRzb25AaW50ZWwuY29tPjsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgVmFyZ2FzLCBI
ZXJuYW4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPjsNCj4gZGF2aWQubWFyY2hhbmRAcmVkaGF0
LmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDMvNF0gYmFzZWJhbmQvYWNjMTAwOiBjb25m
aWd1cmF0aW9uIG9mIEFDQzEwMSBmcm9tDQo+IFBGDQo+IA0KPiBIaSBOaWNvbGFzLA0KPiANCj4g
T24gNS8xNi8yMiAyMjo0OCwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0KPiAgPiBBZGRpbmcgY29t
cGFuaW9uIGZ1bmN0aW9uIHNwZWNpZmljIHRvIEFDQzEwMCBhbmQgaXQgID4gY2FuIGJlIGNhbGxl
ZCBmcm9tDQo+IGJiZGV2LXRlc3Qgd2hlbiBydW5uaW5nIGZyb20gUEYuDQo+ICA+DQo+ICA+IFNp
Z25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4g
ID4gLS0tDQo+ICA+ICAgYXBwL3Rlc3QtYmJkZXYvdGVzdF9iYmRldl9wZXJmLmMgICAgICAgICB8
ICAyMiArKy0NCj4gID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX2NmZy5o
IHwgIDE3ICsrDQo+ICA+ICAgZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQu
YyB8IDMwMg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICA+ICAgZHJpdmVy
cy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXAgICAgICB8ICAgMiArLQ0KPiAgPiAgIDQgZmls
ZXMgY2hhbmdlZCwgMzM2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ICA+DQo+ICA+
IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1iYmRldi90ZXN0X2JiZGV2X3BlcmYuYw0KPiBiL2FwcC90
ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ICA+IGluZGV4IDBmYTExOWEuLmIxMGI5M2Qg
MTAwNjQ0DQo+ICA+IC0tLSBhL2FwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ICA+
ICsrKyBiL2FwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ICA+IEBAIC02Myw2ICs2
Myw4IEBADQo+ICA+ICAgI2RlZmluZSBBQ0MxMDBfUU1HUl9JTlZBTElEX0lEWCAtMQ0KPiAgPiAg
ICNkZWZpbmUgQUNDMTAwX1FNR1JfUlIgMQ0KPiAgPiAgICNkZWZpbmUgQUNDMTAwX1FPU19HQlIg
MA0KPiAgPiArI2RlZmluZSBBQ0MxMDFQRl9EUklWRVJfTkFNRSAgICgiaW50ZWxfYWNjMTAxX3Bm
IikNCj4gID4gKyNkZWZpbmUgQUNDMTAxVkZfRFJJVkVSX05BTUUgICAoImludGVsX2FjYzEwMV92
ZiIpDQo+ICA+ICAgI2VuZGlmDQo+ICA+DQo+ICA+ICAgI2RlZmluZSBPUFNfQ0FDSEVfU0laRSAy
NTZVDQo+ICA+IEBAIC03MTEsMTEgKzcxMywxMiBAQCB0eXBlZGVmIGludCAodGVzdF9jYXNlX2Z1
bmN0aW9uKShzdHJ1Y3QNCj4gYWN0aXZlX2RldmljZSAqYWQsDQo+ICA+ICAgI2VuZGlmDQo+ICA+
ICAgI2lmZGVmIFJURV9CQVNFQkFORF9BQ0MxMDANCj4gID4gICAJaWYgKChnZXRfaW5pdF9kZXZp
Y2UoKSA9PSB0cnVlKSAmJg0KPiAgPiAtCQkoIXN0cmNtcChpbmZvLT5kcnYuZHJpdmVyX25hbWUs
IEFDQzEwMFBGX0RSSVZFUl9OQU1FKSkpDQo+IHsNCj4gID4gKwkJCSgoIXN0cmNtcChpbmZvLT5k
cnYuZHJpdmVyX25hbWUsDQo+IEFDQzEwMFBGX0RSSVZFUl9OQU1FKSkgfHwNCj4gID4gKwkJCSgh
c3RyY21wKGluZm8tPmRydi5kcml2ZXJfbmFtZSwNCj4gQUNDMTAxUEZfRFJJVkVSX05BTUUpKSkp
IHsNCj4gID4gICAJCXN0cnVjdCBydGVfYWNjMTAwX2NvbmYgY29uZjsNCj4gID4gICAJCXVuc2ln
bmVkIGludCBpOw0KPiAgPg0KPiAgPiAtCQlwcmludGYoIkNvbmZpZ3VyZSBBQ0MxMDAgRkVDIERy
aXZlciAlcyB3aXRoIGRlZmF1bHQNCj4gdmFsdWVzXG4iLA0KPiAgPiArCQlwcmludGYoIkNvbmZp
Z3VyZSBBQ0MxMFggRkVDIERyaXZlciAlcyB3aXRoIGRlZmF1bHQNCj4gdmFsdWVzXG4iLA0KPiAg
PiAgIAkJCQlpbmZvLT5kcnYuZHJpdmVyX25hbWUpOw0KPiAgPg0KPiAgPiAgIAkJLyogY2xlYXIg
ZGVmYXVsdCBjb25maWd1cmF0aW9uIGJlZm9yZSBpbml0aWFsaXphdGlvbiAqLw0KPiAgPiBAQCAt
NzYwLDEwICs3NjMsMTcgQEAgdHlwZWRlZiBpbnQgKHRlc3RfY2FzZV9mdW5jdGlvbikoc3RydWN0
DQo+IGFjdGl2ZV9kZXZpY2UgKmFkLA0KPiAgPiAgIAkJY29uZi5xX2RsXzVnLmFxX2RlcHRoX2xv
ZzIgPSBBQ0MxMDBfUU1HUl9BUV9ERVBUSDsNCj4gID4NCj4gID4gICAJCS8qIHNldHVwIFBGIHdp
dGggY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiAqLw0KPiAgPiAtCQlyZXQgPSBydGVfYWNjMTAw
X2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwgJmNvbmYpOw0KPiAgPiAtCQlURVNUX0FTU0VSVF9T
VUNDRVNTKHJldCwNCj4gID4gLQkJCQkiRmFpbGVkIHRvIGNvbmZpZ3VyZSBBQ0MxMDAgUEYgZm9y
IGJiZGV2DQo+ICVzIiwNCj4gID4gLQkJCQlpbmZvLT5kZXZfbmFtZSk7DQo+ICA+ICsJCWlmICgh
c3RyY21wKGluZm8tPmRydi5kcml2ZXJfbmFtZSwNCj4gQUNDMTAwUEZfRFJJVkVSX05BTUUpKSB7
DQo+ICA+ICsJCQlyZXQgPSBydGVfYWNjMTAwX2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwgJmNv
bmYpOw0KPiAgPiArCQkJVEVTVF9BU1NFUlRfU1VDQ0VTUyhyZXQsDQo+ICA+ICsJCQkJCSJGYWls
ZWQgdG8gY29uZmlndXJlIEFDQzEwMCBQRiBmb3INCj4gYmJkZXYgJXMiLA0KPiAgPiArCQkJCQlp
bmZvLT5kZXZfbmFtZSk7DQo+ICA+ICsJCX0gZWxzZSB7DQo+ICA+ICsJCQlyZXQgPSBydGVfYWNj
MTAxX2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwgJmNvbmYpOw0KPiAgPiArCQkJVEVTVF9BU1NF
UlRfU1VDQ0VTUyhyZXQsDQo+ICA+ICsJCQkJCSJGYWlsZWQgdG8gY29uZmlndXJlIEFDQzEwMSBQ
RiBmb3INCj4gYmJkZXYgJXMiLA0KPiAgPiArCQkJCQlpbmZvLT5kZXZfbmFtZSk7DQo+ICA+ICsJ
CX0NCj4gID4gICAJfQ0KPiAgPiAgICNlbmRpZg0KPiAgPiAgIAkvKiBMZXQncyByZWZyZXNoIHRo
aXMgbm93IHRoaXMgaXMgY29uZmlndXJlZCAqLw0KPiAgPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9i
YXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9jZmcuaA0KPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNj
MTAwL3J0ZV9hY2MxMDBfY2ZnLmgNCj4gID4gaW5kZXggZDIzM2U0Mi4uMmUzYzQzZiAxMDA2NDQN
Cj4gID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9jZmcuaA0KPiAg
PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX2NmZy5oDQo+ICA+IEBA
IC0xMDYsNiArMTA2LDIzIEBAIHN0cnVjdCBydGVfYWNjMTAwX2NvbmYgew0KPiAgPiAgIGludA0K
PiAgPiAgIHJ0ZV9hY2MxMDBfY29uZmlndXJlKGNvbnN0IGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3Qg
cnRlX2FjYzEwMF9jb25mDQo+ICpjb25mKTsNCj4gID4NCj4gID4gKy8qKg0KPiAgPiArICogQ29u
ZmlndXJlIGEgQUNDMTAxIGRldmljZQ0KPiAgPiArICoNCj4gID4gKyAqIEBwYXJhbSBkZXZfbmFt
ZQ0KPiAgPiArICogICBUaGUgbmFtZSBvZiB0aGUgZGV2aWNlLiBUaGlzIGlzIHRoZSBzaG9ydCBm
b3JtIG9mIFBDSSBCREYsIGUuZy4NCj4gMDA6MDEuMC4NCj4gID4gKyAqICAgSXQgY2FuIGFsc28g
YmUgcmV0cmlldmVkIGZvciBhIGJiZGV2IGRldmljZSBmcm9tIHRoZSBkZXZfbmFtZQ0KPiBmaWVs
ZCBpbiB0aGUNCj4gID4gKyAqICAgcnRlX2JiZGV2X2luZm8gc3RydWN0dXJlIHJldHVybmVkIGJ5
IHJ0ZV9iYmRldl9pbmZvX2dldCgpLg0KPiAgPiArICogQHBhcmFtIGNvbmYNCj4gID4gKyAqICAg
Q29uZmlndXJhdGlvbiB0byBhcHBseSB0byBBQ0MxMDEgSFcuDQo+ICA+ICsgKg0KPiAgPiArICog
QHJldHVybg0KPiAgPiArICogICBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIHZhbHVlIG9uIGZh
aWx1cmUuDQo+ICA+ICsgKi8NCj4gID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAgPiAraW50DQo+
ICA+ICtydGVfYWNjMTAxX2NvbmZpZ3VyZShjb25zdCBjaGFyICpkZXZfbmFtZSwgc3RydWN0IHJ0
ZV9hY2MxMDBfY29uZg0KPiAqY29uZik7ICA+ICsNCj4gID4gICAjaWZkZWYgX19jcGx1c3BsdXMN
Cj4gID4gICB9DQo+ICA+ICAgI2VuZGlmDQo+ICA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2Vi
YW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAv
cnRlX2FjYzEwMF9wbWQuYw0KPiAgPiBpbmRleCBkYWYyY2UwLi5iMDNjZWRjIDEwMDY0NA0KPiAg
PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ICA+ICsr
KyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gID4gQEAgLTQ5
MjEsMyArNDkyMSwzMDUgQEAgc3RhdGljIGludCBhY2MxMDBfcGNpX3JlbW92ZShzdHJ1Y3QNCj4g
cnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYpDQo+ICA+ICAgCXJ0ZV9iYmRldl9sb2dfZGVidWcoIlBG
IFRpcCBjb25maWd1cmF0aW9uIGNvbXBsZXRlIGZvciAlcyIsDQo+IGRldl9uYW1lKTsNCj4gID4g
ICAJcmV0dXJuIDA7DQo+ICA+ICAgfQ0KPiAgPiArDQo+ICA+ICsNCj4gID4gKy8qIEluaXRpYWwg
Y29uZmlndXJhdGlvbiBvZiBhIEFDQzEwMSBkZXZpY2UgcHJpb3IgdG8gcnVubmluZw0KPiBjb25m
aWd1cmUoKSAqLw0KPiAgPiAraW50DQo+ICA+ICtydGVfYWNjMTAxX2NvbmZpZ3VyZShjb25zdCBj
aGFyICpkZXZfbmFtZSwgc3RydWN0IHJ0ZV9hY2MxMDBfY29uZg0KPiAqY29uZikgID4gK3sgUGxl
YXNlIGRvbid0IGludHJvZHVjZSBuZXcgQVBJIGZvciBldmVyeSBuZXcgdmFyaWFudC4NCj4gWW91
IHNob3VsZCBoYXZlIGEgc2luZ2xlIEFQSSwgYW5kIHdpdGhpbiBpdCBjYWxsIHNwZWNpZmljIGNv
bmZpZ3VyYXRpb24gZnVuY3Rpb24NCj4gYmFzZWQgb24gdGhlIGRldmljZSBJRC4NCj4gDQo+IEl0
IHdpbGwgYmUgZWFzaWVyIGZvciB0aGUgYXBwbGljYXRpb24gd2hpY2ggY2FsbHMgaXQgbm90IHRv
IGhhdmUgdG8ga25vdyB3aGljaA0KPiB2YXJpYW50IGl0IGlzIGZvci4NCg0KTm90ZSB0aGF0IHRo
aXMgaXMgbm90IGJlaW5nIHVzZWQgYnkgdXNlciBhcHBsaWNhdGlvbiwgdGhpcyBpcyBhIGNvbXBh
bmlvbiBmdW5jdGlvbiB1c2VkIGFzIHBhcnQgb2YgYmJkZXYtdGVzdA0Kc28gdGhhdCB0aGUgZGV2
aWNlIGNvbmZpZ3VyYXRpb24gY2FuIGJlIGRvbmUgd2l0aG91dCByZWx5aW5nIG9uIG90aGVyIGlu
Z3JlZGllbnRzIG91dHNpZGUgb2YgRFBESyAocGZfYmJfY29uZmlnKS4NCg0KPiANCj4gID4gKwly
dGVfYmJkZXZfbG9nKElORk8sICJydGVfYWNjMTAxX2NvbmZpZ3VyZSIpOw0KPiAgPiArCXVpbnQz
Ml90IHZhbHVlLCBhZGRyZXNzLCBzdGF0dXM7DQo+ICA+ICsJaW50IHFnX2lkeCwgdGVtcGxhdGVf
aWR4LCB2Zl9pZHgsIGFjYywgaTsNCj4gID4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpiYmRldiA9IHJ0
ZV9iYmRldl9nZXRfbmFtZWRfZGV2KGRldl9uYW1lKTsNCj4gID4gKw0KPiAgPiArCS8qIENvbXBp
bGUgdGltZSBjaGVja3MgKi8NCj4gID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qg
YWNjMTAwX2RtYV9yZXFfZGVzYykgIT0gMjU2KTsNCj4gID4gKwlSVEVfQlVJTERfQlVHX09OKHNp
emVvZih1bmlvbiBhY2MxMDBfZG1hX2Rlc2MpICE9IDI1Nik7DQo+ICA+ICsJUlRFX0JVSUxEX0JV
R19PTihzaXplb2Yoc3RydWN0IGFjYzEwMF9mY3dfdGQpICE9IDI0KTsNCj4gID4gKwlSVEVfQlVJ
TERfQlVHX09OKHNpemVvZihzdHJ1Y3QgYWNjMTAwX2Zjd190ZSkgIT0gMzIpOw0KPiAgPiArDQo+
ICA+ICsJaWYgKGJiZGV2ID09IE5VTEwpIHsNCj4gID4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+
ICA+ICsJCSJJbnZhbGlkIGRldl9uYW1lICglcyksIG9yIGRldmljZSBpcyBub3QgeWV0IGluaXRp
YWxpc2VkIiwNCj4gID4gKwkJZGV2X25hbWUpOw0KPiAgPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4g
ID4gKwl9DQo+ICA+ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQgPSBiYmRldi0+ZGF0YS0+ZGV2
X3ByaXZhdGU7DQo+ICA+ICsNCj4gID4gKwkvKiBTdG9yZSBjb25maWd1cmF0aW9uICovDQo+ICA+
ICsJcnRlX21lbWNweSgmZC0+YWNjMTAwX2NvbmYsIGNvbmYsIHNpemVvZihkLT5hY2MxMDBfY29u
ZikpOw0KPiAgPiArDQo+ICA+ICsJLyogUENJZSBCcmlkZ2UgY29uZmlndXJhdGlvbiAqLw0KPiAg
PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSHdQZlBjaWVHcGV4QnJpZGdlQ29udHJvbCwNCj4gQUND
MTAxX0NGR19QQ0lfQlJJREdFKTsNCj4gID4gKwlmb3IgKGkgPSAxOyBpIDwgQUNDMTAxX0dQRVhf
QVhJTUFQX05VTTsgaSsrKQ0KPiAgPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsDQo+IEh3UGZQY2ll
R3BleEF4aUFkZHJNYXBwaW5nV2luZG93UGV4QmFzZUhpZ2ggKw0KPiBpICogMTYsIDApOw0KPiAg
PiArDQo+ICA+ICsJLyogUHJldmVudCBibG9ja2luZyBBWEkgcmVhZCBvbiBCUkVTUCBmb3IgQVhJ
IFdyaXRlICovDQo+ICA+ICsJYWRkcmVzcyA9IEh3UGZQY2llR3BleEF4aVBpb0NvbnRyb2w7DQo+
ICA+ICsJdmFsdWUgPSBBQ0MxMDFfQ0ZHX1BDSV9BWEk7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0
ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBFeHBsaWNpdGx5IHJlbGVh
c2luZyBBWEkgYXMgdGhpcyBtYXkgYmUgc3RvcHBlZCBhZnRlciBQRiBGTFIvQk1FICovDQo+ICA+
ICsJdXNsZWVwKDIwMDApOw0KPiBUaGlzIHNsZWVwIGxvb2tzIHdlaXJkLCBlc3BlY2lhbGx5IHdo
ZW4gQUNDMTAwIGRvZXMgbm90IHJlcXVpcmUgaXQuDQo+IElzbid0IHRoZXJlIGEgd2F5IHRvIGtu
b3cgaXQgaXMgcmVhZHkgdG8gcmVsZWFzZSB0aGUgQVhJPyBPciBhdCBsZWFzdCBkb2N1bWVudA0K
PiB3aHkgaXQgaXMgbmVjZXNzYXJ5Lg0KDQpUaGlzIGlzIGludGVudGlvbmFsIGFuZCBIVyBzcGVj
aWZpYyBmb3IgQUNDMTAxLiBUaGVyZSB3b3VsZCBiZSBubyBwdWJsaWMgZG9jdW1lbnRhdGlvbg0K
Zm9yIHRoaXMsIGJ1dCBJIGNhbiBhZGQgYSBjb21tZW50LiANCg0KPiANCj4gID4gKwlhY2MxMDBf
cmVnX3dyaXRlKGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4gID4gKw0KPiAgPiArCS8qIFNl
dCB0aGUgZGVmYXVsdCA1R0RMIERNQSBjb25maWd1cmF0aW9uICovDQo+ICA+ICsJYWNjMTAwX3Jl
Z193cml0ZShkLCBIV1BmRG1hSW5ib3VuZERyYWluRGF0YVNpemUsDQo+IEFDQzEwMV9ETUFfSU5C
T1VORCk7DQo+ICA+ICsNCj4gID4gKwkvKiBFbmFibGUgZ3JhbnVsYXIgZHluYW1pYyBjbG9jayBn
YXRpbmcgKi8NCj4gID4gKwlhZGRyZXNzID0gSFdQZkhpQ2xrR2F0ZUh5c3RSZWc7DQo+ICA+ICsJ
dmFsdWUgPSBBQ0MxMDFfQ0xPQ0tfR0FUSU5HX0VOOw0KPiAgPiArCWFjYzEwMF9yZWdfd3JpdGUo
ZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArDQo+ICA+ICsJLyogU2V0IGRlZmF1bHQgZGVzY3Jp
cHRvciBzaWduYXR1cmUgKi8NCj4gID4gKwlhZGRyZXNzID0gSFdQZkRtYURlc2NyaXB0b3JTaWdu
YXR1dHVyZTsNCj4gID4gKwl2YWx1ZSA9IDA7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBh
ZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBFbmFibGUgdGhlIEVycm9yIERldGVj
dGlvbiBpbiBETUEgKi8NCj4gID4gKwl2YWx1ZSA9IEFDQzEwMV9DRkdfRE1BX0VSUk9SOw0KPiAg
PiArCWFkZHJlc3MgPSBIV1BmRG1hRXJyb3JEZXRlY3Rpb25FbjsNCj4gID4gKwlhY2MxMDBfcmVn
X3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qIEFYSSBDYWNoZSBj
b25maWd1cmF0aW9uICovDQo+ICA+ICsJdmFsdWUgPSBBQ0MxMDFfQ0ZHX0FYSV9DQUNIRTsNCj4g
ID4gKwlhZGRyZXNzID0gSFdQZkRtYUF4Y2FjaGVSZWc7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0
ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBEZWZhdWx0IERNQSBDb25m
aWd1cmF0aW9uIChRbWdyIEVuYWJsZWQpICovDQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZEbWFDb25m
aWcwUmVnOw0KPiAgPiArCXZhbHVlID0gMDsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFk
ZHJlc3MsIHZhbHVlKTsNCj4gID4gKwlhZGRyZXNzID0gSFdQZkRtYVFtYW5lbjsNCj4gID4gKwl2
YWx1ZSA9IDA7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+
ICA+ICsNCj4gID4gKwkvKiBEZWZhdWx0IFJMSU0vQUxFTiBjb25maWd1cmF0aW9uICovDQo+ICA+
ICsJYWRkcmVzcyA9IEhXUGZEbWFDb25maWcxUmVnOw0KPiAgPiArCWludCBhbGVuX3IgPSAweEY7
DQo+ICA+ICsJaW50IGFsZW5fdyA9IDB4NzsNCj4gID4gKwl2YWx1ZSA9ICgxIDw8IDMxKSArIChh
bGVuX3cgPDwgMjApICArICgxIDw8IDYpICsgYWxlbl9yOw0KPiAgPiArCWFjYzEwMF9yZWdfd3Jp
dGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArDQo+ICA+ICsJLyogQ29uZmlndXJlIERNQSBR
bWFuYWdlciBhZGRyZXNzZXMgKi8NCj4gID4gKwlhZGRyZXNzID0gSFdQZkRtYVFtZ3JBZGRyUmVn
Ow0KPiAgPiArCXZhbHVlID0gSFdQZlFtZ3JFZ3Jlc3NRdWV1ZXNUZW1wbGF0ZTsNCj4gID4gKwlh
Y2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qID09
PT09IFFtZ3IgQ29uZmlndXJhdGlvbiA9PT09PSAqLw0KPiAgPiArCS8qIENvbmZpZ3VyYXRpb24g
b2YgdGhlIEFRdWV1ZSBEZXB0aCBRTUdSX0dSUF8wX0RFUFRIX0xPRzINCj4gZm9yIFVMICovDQo+
ICA+ICsJaW50IHRvdGFsUWdzID0gY29uZi0+cV91bF80Zy5udW1fcWdyb3VwcyArDQo+ICA+ICsJ
CQljb25mLT5xX3VsXzVnLm51bV9xZ3JvdXBzICsNCj4gID4gKwkJCWNvbmYtPnFfZGxfNGcubnVt
X3Fncm91cHMgKw0KPiAgPiArCQkJY29uZi0+cV9kbF81Zy5udW1fcWdyb3VwczsNCj4gID4gKwlm
b3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IHRvdGFsUWdzOyBxZ19pZHgrKykgew0KPiAgPiArCQlh
ZGRyZXNzID0gSFdQZlFtZ3JEZXB0aExvZzJHcnAgKw0KPiAgPiArCQlBQ0MxMDFfQllURVNfSU5f
V09SRCAqIHFnX2lkeDsNCj4gID4gKwkJdmFsdWUgPSBhcURlcHRoKHFnX2lkeCwgY29uZik7DQo+
ICA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCQlhZGRy
ZXNzID0gSFdQZlFtZ3JUaG9sZEdycCArDQo+ICA+ICsJCUFDQzEwMV9CWVRFU19JTl9XT1JEICog
cWdfaWR4Ow0KPiAgPiArCQl2YWx1ZSA9ICgxIDw8IDE2KSArICgxIDw8IChhcURlcHRoKHFnX2lk
eCwgY29uZikgLSAxKSk7DQo+ICA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFs
dWUpOw0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCS8qIFRlbXBsYXRlIFByaW9yaXR5IGluIGlu
Y3JlbWVudGFsIG9yZGVyICovDQo+ICA+ICsJZm9yICh0ZW1wbGF0ZV9pZHggPSAwOyB0ZW1wbGF0
ZV9pZHggPCBBQ0MxMDFfTlVNX1RNUEw7DQo+ICA+ICsJCQl0ZW1wbGF0ZV9pZHgrKykgew0KPiAg
PiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnMEluZHggKw0KPiBBQ0MxMDFfQllU
RVNfSU5fV09SRCAqDQo+IHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJdmFsdWUgPSBBQ0MxMDFfVE1Q
TF9QUklfMDsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+
ICA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckdycFRtcGxhdGVSZWcxSW5keCArDQo+IEFDQzEwMV9C
WVRFU19JTl9XT1JEICoNCj4gdGVtcGxhdGVfaWR4Ow0KPiAgPiArCQl2YWx1ZSA9IEFDQzEwMV9U
TVBMX1BSSV8xOw0KPiAgPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsN
Cj4gID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzJpbmR4ICsNCj4gQUNDMTAx
X0JZVEVTX0lOX1dPUkQgKg0KPiB0ZW1wbGF0ZV9pZHg7DQo+ICA+ICsJCXZhbHVlID0gQUNDMTAx
X1RNUExfUFJJXzI7DQo+ICA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUp
Ow0KPiAgPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnM0luZHggKw0KPiBBQ0Mx
MDFfQllURVNfSU5fV09SRCAqDQo+IHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJdmFsdWUgPSBBQ0Mx
MDFfVE1QTF9QUklfMzsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1
ZSk7DQo+IEZvciBib3RoIEFDQzEwMCBhbmQgQUNDMTAxLCBBQ0MxMHhfTlVNX1RNUEwgaXMgMzIu
DQo+IElzbid0IHRoZXJlIGEgYnVnIGhlcmUgb3IgaW4gQUNDMTAwPw0KPiANCj4gQUNDMTAwIHBl
cmZvcm1zIGEgbW9kdWxvIDggb24gdGVtcGxhdGVfaWR4LCBidXQgQUNDMTAxIGRvZXMgbm90LiBC
dXQgdGhlDQo+IHJlZ2lzdGVycyBtYXBwaW5nIGlzIHRoZSBzYW1lLCBzbyBJIGd1ZXNzIHRoaXMg
aXMgdGhlIHNhbWUgSFcgYmxvY2suDQo+IA0KPiBJIHRoaW5rIEFDQzEwMCBpcyB0aGUgYnVnZ3kg
b25lLCBiZWNhdXNlIGl0IHNlZW1zIHdlaXJkIHRvIHdyaXRlIHRoZSBzYW1lDQo+IHJlZ2lzdGVy
IHdpdGggdGhlIHNhbWUgdmFsdWUgbXVsdGlwbGUgdGltZXMuDQo+IA0KPiBJbiBjYXNlIGl0IGlz
IEFDQzEwMCB0aGF0IGlzIGJ1Z2d5LCBpdCBuZWVkcyB0byBiZSBmaXhlZCBpbiBhIGRlZGljYXRl
ZCBwYXRjaCwNCj4gd2l0aCBwcm9wZXIgZml4ZXMgdGFnIHNvIHRoYXQgaXQgaXMgYmFja3BvcnRl
ZC4NCg0KWWVzIHRoZXJlIGEgbnVtYmVyIG9mIHBhdGNoZXMgcGVuZGluZyBmb3IgQUNDMTAwLCB0
aGlzIGNhbiBiZSBkb25lIHRocm91Z2ggb3RoZXIgc2VyaWUuDQoNCj4gDQo+ICA+ICsJfQ0KPiAg
PiArDQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZRbWdyR3JwUHJpb3JpdHk7DQo+ICA+ICsJdmFsdWUg
PSBBQ0MxMDFfQ0ZHX1FNR1JfSElfUDsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJl
c3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qIFRlbXBsYXRlIENvbmZpZ3VyYXRpb24gKi8N
Cj4gID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9IDA7IHRlbXBsYXRlX2lkeCA8IEFDQzEwMV9OVU1f
VE1QTDsNCj4gID4gKwkJCXRlbXBsYXRlX2lkeCsrKSB7DQo+ICA+ICsJCXZhbHVlID0gMDsNCj4g
ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJbmR4DQo+ICA+ICsJCQkJKyBB
Q0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJYWNjMTAwX3JlZ193
cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsJfQ0KPiAgPiArCS8qIDRHVUwgKi8NCj4g
ID4gKwlpbnQgbnVtUWdzID0gY29uZi0+cV91bF80Zy5udW1fcWdyb3VwczsNCj4gID4gKwlpbnQg
bnVtUXFzQWNjID0gMDsNCj4gID4gKwl2YWx1ZSA9IDA7DQo+ICA+ICsJZm9yIChxZ19pZHggPSBu
dW1RcXNBY2M7IHFnX2lkeCA8IChudW1RZ3MgKyBudW1RcXNBY2MpOw0KPiBxZ19pZHgrKykNCj4g
ID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdfaWR4KTsNCj4gID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9
IEFDQzEwMV9TSUdfVUxfNEc7DQo+ICA+ICsJCQl0ZW1wbGF0ZV9pZHggPD0gQUNDMTAxX1NJR19V
TF80R19MQVNUOw0KPiAgPiArCQkJdGVtcGxhdGVfaWR4KyspIHsNCj4gID4gKwkJYWRkcmVzcyA9
IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJbmR4DQo+ICA+ICsJCQkJKyBBQ0MxMDFfQllURVNfSU5f
V09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNz
LCB2YWx1ZSk7DQo+ICA+ICsJfQ0KPiAgPiArCS8qIDVHVUwgKi8NCj4gID4gKwludW1RcXNBY2Mg
Kz0gbnVtUWdzOw0KPiAgPiArCW51bVFncwk9IGNvbmYtPnFfdWxfNWcubnVtX3Fncm91cHM7DQo+
ICA+ICsJdmFsdWUgPSAwOw0KPiAgPiArCWludCBudW1FbmdpbmVzID0gMDsNCj4gID4gKwlmb3Ig
KHFnX2lkeCA9IG51bVFxc0FjYzsgcWdfaWR4IDwgKG51bVFncyArIG51bVFxc0FjYyk7DQo+IHFn
X2lkeCsrKQ0KPiAgPiArCQl2YWx1ZSB8PSAoMSA8PCBxZ19pZHgpOw0KPiAgPiArCWZvciAodGVt
cGxhdGVfaWR4ID0gQUNDMTAxX1NJR19VTF81RzsNCj4gID4gKwkJCXRlbXBsYXRlX2lkeCA8PSBB
Q0MxMDFfU0lHX1VMXzVHX0xBU1Q7DQo+ICA+ICsJCQl0ZW1wbGF0ZV9pZHgrKykgew0KPiAgPiAr
CQkvKiBDaGVjayBlbmdpbmUgcG93ZXItb24gc3RhdHVzICovDQo+ICA+ICsJCWFkZHJlc3MgPSBI
d1BmRmVjVWw1Z0liRGVidWdSZWcgKw0KPiAgPiArCQkJCUFDQzEwMV9FTkdJTkVfT0ZGU0VUICog
dGVtcGxhdGVfaWR4Ow0KPiAgPiArCQlzdGF0dXMgPSAoYWNjMTAwX3JlZ19yZWFkKGQsIGFkZHJl
c3MpID4+IDQpICYgMHhGOw0KPiAgPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVn
NEluZHgNCj4gID4gKwkJCQkrIEFDQzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0K
PiAgPiArCQlpZiAoc3RhdHVzID09IDEpIHsNCj4gID4gKwkJCWFjYzEwMF9yZWdfd3JpdGUoZCwg
YWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCQkJbnVtRW5naW5lcysrOw0KPiAgPiArCQl9IGVsc2UN
Cj4gID4gKwkJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgMCk7DQo+ICA+ICsjaWYgUlRF
X0FDQzEwMV9TSU5HTEVfRkVDID09IDENCj4gID4gKwkJdmFsdWUgPSAwOw0KPiAgPiArI2VuZGlm
DQo+ICA+ICsJfQ0KPiAgPiArCXByaW50ZigiTnVtYmVyIG9mIDVHVUwgZW5naW5lcyAlZFxuIiwg
bnVtRW5naW5lcyk7DQo+ICA+ICsJLyogNEdETCAqLw0KPiAgPiArCW51bVFxc0FjYyArPSBudW1R
Z3M7DQo+ICA+ICsJbnVtUWdzCT0gY29uZi0+cV9kbF80Zy5udW1fcWdyb3VwczsNCj4gID4gKwl2
YWx1ZSA9IDA7DQo+ICA+ICsJZm9yIChxZ19pZHggPSBudW1RcXNBY2M7IHFnX2lkeCA8IChudW1R
Z3MgKyBudW1RcXNBY2MpOw0KPiBxZ19pZHgrKykNCj4gID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdf
aWR4KTsNCj4gID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9IEFDQzEwMV9TSUdfRExfNEc7DQo+ICA+
ICsJCQl0ZW1wbGF0ZV9pZHggPD0gQUNDMTAxX1NJR19ETF80R19MQVNUOw0KPiAgPiArCQkJdGVt
cGxhdGVfaWR4KyspIHsNCj4gID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJ
bmR4DQo+ICA+ICsJCQkJKyBBQ0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4g
ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsjaWYgUlRF
X0FDQzEwMV9TSU5HTEVfRkVDID09IDENCj4gID4gKwkJCXZhbHVlID0gMDsNCj4gID4gKyNlbmRp
Zg0KPiAgPiArCX0NCj4gID4gKwkvKiA1R0RMICovDQo+ICA+ICsJbnVtUXFzQWNjICs9IG51bVFn
czsNCj4gID4gKwludW1RZ3MJPSBjb25mLT5xX2RsXzVnLm51bV9xZ3JvdXBzOw0KPiAgPiArCXZh
bHVlID0gMDsNCj4gID4gKwlmb3IgKHFnX2lkeCA9IG51bVFxc0FjYzsgcWdfaWR4IDwgKG51bVFn
cyArIG51bVFxc0FjYyk7DQo+IHFnX2lkeCsrKQ0KPiAgPiArCQl2YWx1ZSB8PSAoMSA8PCBxZ19p
ZHgpOw0KPiAgPiArCWZvciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19ETF81RzsNCj4gID4g
KwkJCXRlbXBsYXRlX2lkeCA8PSBBQ0MxMDFfU0lHX0RMXzVHX0xBU1Q7DQo+ICA+ICsJCQl0ZW1w
bGF0ZV9pZHgrKykgew0KPiAgPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnNElu
ZHgNCj4gID4gKwkJCQkrIEFDQzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0KPiAg
PiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKyNpZiBSVEVf
QUNDMTAxX1NJTkdMRV9GRUMgPT0gMQ0KPiAgPiArCQl2YWx1ZSA9IDA7DQo+ICA+ICsjZW5kaWYN
Cj4gID4gKwl9DQo+ICA+ICsNCj4gID4gKwkvKiBRdWV1ZSBHcm91cCBGdW5jdGlvbiBtYXBwaW5n
ICovDQo+ICA+ICsJaW50IHFtYW5fZnVuY19pZFs4XSA9IHswLCAyLCAxLCAzLCA0LCAwLCAwLCAw
fTsNCj4gID4gKwlhZGRyZXNzID0gSFdQZlFtZ3JHcnBGdW5jdGlvbjA7DQo+ICA+ICsJdmFsdWUg
PSAwOw0KPiAgPiArCWZvciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgODsgcWdfaWR4KyspIHsNCj4g
ID4gKwkJYWNjID0gYWNjRnJvbVFnaWQocWdfaWR4LCBjb25mKTsNCj4gID4gKwkJdmFsdWUgfD0g
cW1hbl9mdW5jX2lkW2FjY108PChxZ19pZHggKiA0KTsNCj4gID4gKwl9DQo+ICA+ICsJYWNjMTAw
X3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBDb25maWd1
cmF0aW9uIG9mIHRoZSBBcmJpdHJhdGlvbiBRR3JvdXAgZGVwdGggdG8gMSAqLw0KPiAgPiArCWZv
ciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgdG90YWxRZ3M7IHFnX2lkeCsrKSB7DQo+ICA+ICsJCWFk
ZHJlc3MgPSBIV1BmUW1nckFyYlFEZXB0aEdycCArDQo+ICA+ICsJCUFDQzEwMV9CWVRFU19JTl9X
T1JEICogcWdfaWR4Ow0KPiAgPiArCQl2YWx1ZSA9IDA7DQo+ICA+ICsJCWFjYzEwMF9yZWdfd3Jp
dGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCS8qIEVuYWJs
aW5nIEFRdWV1ZXMgdGhyb3VnaCB0aGUgUXVldWUgaGllcmFyY2h5Ki8NCj4gID4gKwlmb3IgKHZm
X2lkeCA9IDA7IHZmX2lkeCA8IEFDQzEwMV9OVU1fVkZTOyB2Zl9pZHgrKykgew0KPiAgPiArCQlm
b3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IEFDQzEwMV9OVU1fUUdSUFM7IHFnX2lkeCsrKSB7DQo+
ICA+ICsJCQl2YWx1ZSA9IDA7DQo+ICA+ICsJCQlpZiAodmZfaWR4IDwgY29uZi0+bnVtX3ZmX2J1
bmRsZXMgJiYNCj4gID4gKwkJCQkJcWdfaWR4IDwgdG90YWxRZ3MpDQo+ICA+ICsJCQkJdmFsdWUg
PSAoMSA8PCBhcU51bShxZ19pZHgsIGNvbmYpKSAtIDE7DQo+ICA+ICsJCQlhZGRyZXNzID0gSFdQ
ZlFtZ3JBcUVuYWJsZVZmDQo+ICA+ICsJCQkJCSsgdmZfaWR4ICogQUNDMTAxX0JZVEVTX0lOX1dP
UkQ7DQo+ICA+ICsJCQl2YWx1ZSArPSAocWdfaWR4IDw8IDE2KTsNCj4gID4gKwkJCWFjYzEwMF9y
ZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCQl9DQo+ICA+ICsJfQ0KPiAgPiAr
DQo+ICA+ICsJLyogVGhpcyBwb2ludGVyIHRvIEFSQU0gKDEyOGtCKSBpcyBzaGlmdGVkIGJ5IDIg
KDRCIHBlciByZWdpc3RlcikgKi8NCj4gID4gKwl1aW50MzJfdCBhcmFtX2FkZHJlc3MgPSAwOw0K
PiAgPiArCWZvciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgdG90YWxRZ3M7IHFnX2lkeCsrKSB7DQo+
ICA+ICsJCWZvciAodmZfaWR4ID0gMDsgdmZfaWR4IDwgY29uZi0+bnVtX3ZmX2J1bmRsZXM7IHZm
X2lkeCsrKSB7DQo+ICA+ICsJCQlhZGRyZXNzID0gSFdQZlFtZ3JWZkJhc2VBZGRyICsgdmZfaWR4
DQo+ICA+ICsJCQkJCSogQUNDMTAxX0JZVEVTX0lOX1dPUkQgKyBxZ19pZHgNCj4gID4gKwkJCQkJ
KiBBQ0MxMDFfQllURVNfSU5fV09SRCAqIDY0Ow0KPiAgPiArCQkJdmFsdWUgPSBhcmFtX2FkZHJl
c3M7DQo+ICA+ICsJCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4g
KwkJCS8qIE9mZnNldCBBUkFNIEFkZHJlc3MgZm9yIG5leHQgbWVtb3J5IGJhbmsNCj4gID4gKwkJ
CSAqIC0gaW5jcmVtZW50IG9mIDRCDQo+ICA+ICsJCQkgKi8NCj4gID4gKwkJCWFyYW1fYWRkcmVz
cyArPSBhcU51bShxZ19pZHgsIGNvbmYpICoNCj4gID4gKwkJCQkJKDEgPDwgYXFEZXB0aChxZ19p
ZHgsIGNvbmYpKTsNCj4gID4gKwkJfQ0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCWlmIChhcmFt
X2FkZHJlc3MgPiBBQ0MxMDFfV09SRFNfSU5fQVJBTV9TSVpFKSB7DQo+ICA+ICsJCXJ0ZV9iYmRl
dl9sb2coRVJSLCAiQVJBTSBDb25maWd1cmF0aW9uIG5vdCBmaXR0aW5nICVkDQo+ICVkXG4iLA0K
PiAgPiArCQkJCWFyYW1fYWRkcmVzcywNCj4gQUNDMTAxX1dPUkRTX0lOX0FSQU1fU0laRSk7DQo+
ICA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCS8qID09PT0g
SEkgQ29uZmlndXJhdGlvbiA9PT09ICovDQo+ICA+ICsNCj4gID4gKwkvKiBObyBJbmZvIFJpbmcv
TVNJIGJ5IGRlZmF1bHQgKi8NCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZIaUluZm9S
aW5nSW50V3JFblJlZ1BmLCAwKTsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZIaUlu
Zm9SaW5nVmYycGZMb1dyRW5SZWcsIDApOw0KPiAgPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQ
ZkhpQ2ZnTXNpSW50V3JFblJlZ1BmLCAweEZGRkZGRkZGKTsNCj4gID4gKwlhY2MxMDBfcmVnX3dy
aXRlKGQsIEhXUGZIaUNmZ01zaVZmMnBmTG9XckVuUmVnLCAweEZGRkZGRkZGKTsNCj4gID4gKwkv
KiBQcmV2ZW50IEJsb2NrIG9uIFRyYW5zbWl0IEVycm9yICovDQo+ICA+ICsJYWRkcmVzcyA9IEhX
UGZIaUJsb2NrVHJhbnNtaXRPbkVycm9yRW47DQo+ICA+ICsJdmFsdWUgPSAwOw0KPiAgPiArCWFj
YzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCS8qIFByZXZlbnRzIHRv
IGRyb3AgTVNJICovDQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZIaU1zaURyb3BFbmFibGVSZWc7DQo+
ICA+ICsJdmFsdWUgPSAwOw0KPiAgPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFs
dWUpOw0KPiAgPiArCS8qIFNldCB0aGUgUEYgTW9kZSByZWdpc3RlciAqLw0KPiAgPiArCWFkZHJl
c3MgPSBIV1BmSGlQZk1vZGU7DQo+ICA+ICsJdmFsdWUgPSAoY29uZi0+cGZfbW9kZV9lbikgPyBB
Q0MxMDFfUEZfVkFMIDogMDsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZh
bHVlKTsNCj4gID4gKwkvKiBFeHBsaWNpdGx5IHJlbGVhc2luZyBBWEkgYWZ0ZXIgUEYgTW9kZSBh
bmQgMiBtcyAqLw0KPiAgPiArCXVzbGVlcCgyMDAwKTsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRl
KGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4gID4gKw0KPiAgPiArCS8qIFFvUyBvdmVyZmxv
dyBpbml0ICovDQo+ICA+ICsJdmFsdWUgPSAxOw0KPiAgPiArCWFkZHJlc3MgPSBIV1BmUW9zbW9u
QUV2YWxPdmVyZmxvdzA7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1
ZSk7DQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZRb3Ntb25CRXZhbE92ZXJmbG93MDsNCj4gID4gKwlh
Y2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qIEhB
UlEgRERSIENvbmZpZ3VyYXRpb24gKi8NCj4gID4gKwl1bnNpZ25lZCBpbnQgZGRyU2l6ZUluTWIg
PSBBQ0MxMDFfSEFSUV9ERFI7DQo+ICA+ICsJZm9yICh2Zl9pZHggPSAwOyB2Zl9pZHggPCBjb25m
LT5udW1fdmZfYnVuZGxlczsgdmZfaWR4KyspIHsNCj4gID4gKwkJYWRkcmVzcyA9IEhXUGZEbWFW
ZkRkckJhc2VSdyArIHZmX2lkeA0KPiAgPiArCQkJCSogMHgxMDsNCj4gID4gKwkJdmFsdWUgPSAo
KHZmX2lkeCAqIChkZHJTaXplSW5NYiAvIDY0KSkgPDwgMTYpICsNCj4gID4gKwkJCQkoZGRyU2l6
ZUluTWIgLSAxKTsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7
DQo+ICA+ICsJfQ0KPiAgPiArCXVzbGVlcChBQ0MxMDFfTE9OR19XQUlUKTsNCj4gID4gKw0KPiAg
PiArCXJ0ZV9iYmRldl9sb2dfZGVidWcoIlBGIFRJUCBjb25maWd1cmF0aW9uIGNvbXBsZXRlIGZv
ciAlcyIsDQo+IGRldl9uYW1lKTsNCj4gID4gKwlyZXR1cm4gMDsNCj4gID4gK30NCj4gID4gZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3ZlcnNpb24ubWFwDQo+IGIvZHJpdmVy
cy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXANCj4gID4gaW5kZXggNDA2MDRjNy4uMzdiODUw
ZiAxMDA2NDQNCj4gID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXAN
Cj4gID4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXANCj4gID4gQEAg
LTYsNSArNiw1IEBAIEVYUEVSSU1FTlRBTCB7DQo+ICA+ICAgCWdsb2JhbDoNCj4gID4NCj4gID4g
ICAJcnRlX2FjYzEwMF9jb25maWd1cmU7DQo+ICA+IC0NCj4gID4gKwlydGVfYWNjMTAxX2NvbmZp
Z3VyZTsNCj4gID4gICB9Ow0KDQo=