From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 9A4D44CD28
	for <ffmpegdev@gitmailbox.com>; Wed, 28 May 2025 11:28:14 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 31ABD68D480;
	Wed, 28 May 2025 14:28:10 +0300 (EEST)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05olkn2106.outbound.protection.outlook.com [40.92.89.106])
 by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2F9A068CA0E
 for <ffmpeg-devel@ffmpeg.org>; Wed, 28 May 2025 14:28:03 +0300 (EEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=II58L49gClCfNUojL6HDRCI0B2EDeWFMU9cXcsC6kzw+5P3i0dJUcLy491U7OtnzmU8uHHHVnXNTlzcOEQ/lNE/58vNufSCzfPnee0mBmxo+4LuPHX1h8nuCectl8dpMyu0CXquASCHpI4b+vHeR4MYdLyyZNOuXCJTRMVSAjf30Pl4hhsVwLHg8HHsVfzdr5WKrmoz0JVs5jmQ61D7iKybSGscXZsHYrCE1/p7bYEqx2yecgebhRIOgWjgoys3qpB7TA6K+HlYBd2ddLe0dIYeVIUM4JmJecDr2ejdDKKNjgDc+nLgDW7+lLCoDgu82kAiJD8Yqxgnw5fyKWhTUKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=aCSOlA0u4haZFbAPfjsQVElyHPtjWuL4h2lfOKl/uCc=;
 b=hgB40posIPqexmK8uS+61xLIVcsWNV7lC81/VgUjxLJnOmRwFaLyXaNN3A/88X6pINvHSDec/pOlxTew7JSyK7OSyUVi4fswKZ7BIyFKSwM7sWjt5pCyV/R/w1+lKazlb95mbV099hzlsmhxi1cjmzCQOjPSjJ74xQMYYqCTHRS16YiyUsnCAahR2AyQu7mLFTDOGweQsttWWhncn/YEOxO65lkVoo6uPYAXuwgRvINXv8YalSBvlnKMJixjJvFqqUuZ5MkN0vhuPy17a0ER+DCDEP/OSBrypMlER0hLn5yCpGgatYmdnspZMPG6b7zWHNreh2+Uuort4DDNYmZZdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aCSOlA0u4haZFbAPfjsQVElyHPtjWuL4h2lfOKl/uCc=;
 b=d8RtE2VO4nc9Hz2FRu5P4W+RB9UO3jnYlKHf8NCkNpCiW+NaoigNfl0wmyMY2IINbJJpLkmYLHCm/w52dJFKlQ4UhVxsBKkDZgXkgrwJa65M1NNQqqwzjgEOH72Iwj8AUDJQ6q3SQ2VhQHz1AifCFR3iwJvcmQS045yt49udTfHmQmDCLeo0O3Z56Z0gAlYNJ/MSVJAfYQY1OzCIfl46/VHCUFx9m/YSCNzbp5DJ5FsyfBf1Qb3qZ+QTwfLbriZ3ZZMEFneiuxeHHBa0T1mfQcxoLVj+rq33HPOqkYRlLY69HSQg0EHL5/d755SOyo6YmA2HgV+8m6vBD+oSNabTJw==
Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17)
 by PAXP250MB0625.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:28b::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.29; Wed, 28 May
 2025 11:28:01 +0000
Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
 ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
 ([fe80::d6a1:e3af:a5f1:b614%4]) with mapi id 15.20.8769.019; Wed, 28 May 2025
 11:28:01 +0000
Message-ID: <GV1P250MB07379ECF2EB48D156B3CB5638F67A@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM>
Date: Wed, 28 May 2025 13:27:59 +0200
User-Agent: Mozilla Thunderbird
To: ffmpeg-devel@ffmpeg.org
References: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
 <AS8P250MB0744B9A650221901E60022778F842@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM>
 <MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
Content-Language: en-US
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
In-Reply-To: <MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
X-ClientProxiedBy: FR4P281CA0190.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ca::15) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
 (2603:10a6:150:8e::17)
X-Microsoft-Original-Message-ID: <9c063a45-e3d0-447d-98c8-337a0cacacac@outlook.com>
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PAXP250MB0625:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a2ec8db-9560-4f26-b8be-08dd9ddab457
X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmoaApi1aWVt9ILKZbGoHsd6QdPSUZcG+jpZ71gr/Ksi1DNkSnAa9cFmlTc8wXZX0bd4U1q44QNtnOS4u824mP0GAVxJjv6NoG0xEFjuJoe9jF/DoHrwbusUf7/N8d+Nvay7YEr2JO/C9l6iJlT5/6ygSddYNjKlL8mX580mJdAXK9mhuoVilQPwH2nMe2quX6Kj6KCds4kR0AKmmKsSd0tANS1qLbz8ZPQ/TM4BWX6Ff8PoxjdQrx0kNzrTD0posWDircwRQYBDTQJhljdN7gMiZoheY3kpX4cvwq+IinX4mIXSwvp7FP4XHKl6TIHGptgKFL4OQFBG+2m/iza888xsDbJC1JpkCrBmNS1nfmaA8wXLVte1M4UiOSN937WrIK/YnobHX4bvlksne87Q1V6PaJ+87wQGTkj5G6/J/42KGpTfmGYux6jdFqIGEzDTqFtZhVWWA+0JnKyO8tF9F9NxIt5tthaJznb2rnCkKY/C6fZ9nZg886MncbKkbeal87XO/v78Ut8anRenUQUec5AaOWxR1kb5hYe+0M4R6Bi0rg6zgoytxBWW/Ehc3blPi0HmIxivRWBQfcAXWy98ZqTitt8KJR/oYXk/2VqQcWBnfoBEU+oXNIZxfRivLjrqUIcMzE5HH5Lj3WqPQDxa8LQFtxDgkqSOzre2E+FMyGbe7VWuhXpeRyK67Wmfe+j5LV7slyw2AnSQkU42eohpSq+cM7wUxifq7lKUvxTcMT9Uk+HdvZ8RD2r/UBQOOam9ClI=
X-Microsoft-Antispam: BCL:0;
 ARA:14566002|6090799003|5072599009|7092599006|15080799009|19110799006|41001999006|8060799009|461199028|440099028|3412199025|12091999003;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?aFMzKytONWM2VHlPNDJmQ3ErWW5MWGx2cmlDSkRmamlZamRIVmp6Y0UrdkNq?=
 =?utf-8?B?dlNBc0lLRVd6aVZGbkN4MHFQdDlxTGxHVEFOcWRQdnN4M1FwYnpYRnZNTXZY?=
 =?utf-8?B?MCtLQzM3eU1TYVFTWTc2RmI2MGNGL3A0eWhaSmdQd01EczkvaS9ueTlHczdT?=
 =?utf-8?B?YURvNlVxeTZ5QTBFT2dpOUtMRmUxL2l0SkFKS0JqK3M5cFFtcEhTQ2YrZlBH?=
 =?utf-8?B?QkpDOGE4clZDZUhLSWtNdnE1QlNBRUR2c2JJai9Zbk1ZUWZsYmFUSDhrVzdT?=
 =?utf-8?B?M2ZCN0tmUkd0NG5DQnR2clhDcU5XbTRScTR4d0w5cHBLMURqaXpVbUNXcDZl?=
 =?utf-8?B?SUhEbVBYZXlGUVBoMisyNHZLWEdMcy8wakF0Q1pGaWx0LzU3UlBMVjlNV2E0?=
 =?utf-8?B?R3gwUHFqUEp0MGRuc2NzT0tIK1lld1pmK1NJVVRjM0tMNUpwNnhyeW9jSkhM?=
 =?utf-8?B?MW9GWHIyTHFVVUtMcDdCdmVoNHU2TTZ4QWd6RkpBbHJCUVhKNUFuRDlza2oz?=
 =?utf-8?B?SGh5NGluVUV0bE9qY0hQNjQxRjJuSUFYdUhEUFVlWTVleVF4aWlORFFvZmxW?=
 =?utf-8?B?OEh0YjRFK2gxQ1RjWENjb3h4ZGE3NXhDa1dMYkZVd0RzSm9wakJBd2FPZm90?=
 =?utf-8?B?UXhWRnplQndMZVYvdGIyaE5ubm00SENZd09jMVVQQlBsWGpSd0pocVR5UXdl?=
 =?utf-8?B?eVplV0U4Y1lYRDlJcnVJaEFOQ3RjaTFadVNBWnl0VWxpamVUWU9rT0ZaSVVX?=
 =?utf-8?B?d09MNERrU1p5N29sSTZENHJrV1JhZ0F3QzlxTUR6NXh3ZSswdUpJeUE2TDds?=
 =?utf-8?B?KzQzdGkwMG4xK05mekkzbjRsUnhPejJ3Vm1jYkRidFRrSHJHV1dxR2ZIT0NO?=
 =?utf-8?B?OGZjaVpvNFZKUGNtRzFwRzZaenRuTWhOU1RaMCtDWFhHa1p6NnVVMDVWZ0Fo?=
 =?utf-8?B?MDlPbHlQeXJQeE1vWVpyWVJZU3EweTgyVWpjd2JtSm1HMmhiekUybnBxQldr?=
 =?utf-8?B?NVdoNTQvSWhFb1lwVUVpdTUzMzYwVWx1VmM2RTNTYjVsd0c3UmRNRGhmZUZs?=
 =?utf-8?B?TnZiak9VcW1nSVJBczFLQUJKRjd4K2VuR2hPeDBqc3NRM05NdGxobVR2aVR5?=
 =?utf-8?B?d0NBZjdMTktNdEZxczRnZEs0eFB6OSs3bE55TjBncXFDWjBBcERuNk5FN0Nt?=
 =?utf-8?B?WGRWYmIxRFBML1BMRThZcnhnOE1rVy9XbzFKa0NDUDJ2d2NOaDc3VlFRaGNQ?=
 =?utf-8?B?ajZNOGlLNjR2MzZDR0VrYjF3WW55QnRJUWJiZXZsOWlzYVdWN0xzdTRFOUFY?=
 =?utf-8?B?VWZWZWNBa1VEakN0WmsySFdtUVNtWTV0R09qTWc3bWtHb3hkY2l1SWVaK1Zq?=
 =?utf-8?B?Y2RoWXhUN0plTTNBYkNreGxXdVFJZ3lDT2djdElaV2VXU3kzc0I2dmw4cTBT?=
 =?utf-8?B?T1FLaWY5Q0FhWEhCNWlSK2gzQzhXWmwreXpwTitiVGExelRBaDI3cHdtb21V?=
 =?utf-8?B?Z0FTaDFuV2xWZkVVR3RwaDFoMWo3QmYvLzNYR3lHdEkwWFUvSGo0Yklucytx?=
 =?utf-8?B?R0ZrTVhwS09ra2FFd0I2R2IvLzdhUlNiUGlsZDFVYXVTT1ArL3ZRT0U1YVZD?=
 =?utf-8?B?QndoTmF0aVByVFlGaTZzb0FCYlpscHc9PQ==?=
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y2RodWFZQWRLSm5wNWJ3MU53Y0FHM2l0OCtRbk43cjV4dkFHMWFvbXdBeG9w?=
 =?utf-8?B?ekRwNzJSVDVpaDV6SW4ya3U5bGZLUEw0Z0xhKy8xOFh2dXJLZHo3em9rRlRB?=
 =?utf-8?B?bmFSVDZpeXVrSHdSUDVqSml2NC9TSzFHRVc2OU5rbk1abk5RYUZkSlAxa3hE?=
 =?utf-8?B?MklRYmcrOTdEdGVQUU5RdUwvUXVZOVVzTnN2ZEZiVUNINDRQWkw2M0pSYTFx?=
 =?utf-8?B?TUgwYm4xeitZYnU2TGlXTWpUeDNENXlqd082M0hZR0cxbHJTTy8walpoSlg5?=
 =?utf-8?B?cHJQZTAyd285RUNwSlFSSndOczJHL1ZxR2pCN3VVbVdVOUtibkhjaHFsUGZL?=
 =?utf-8?B?STFEdWI1TlRPbGZTOGpwQnZZSW9FNUNCMEVsUFhCNHFkTHB2REIycjJ3Y1Jz?=
 =?utf-8?B?ajNFeVYyYXkrWWdPamRhWW5IazJMR1NCcmkxaTBIZDBJcGlFbTBEcHB5b01Z?=
 =?utf-8?B?emNHSmduL2xNYVl2REwrNXVoZlBiWU5YRExjK3dzbWt6elRESUpiU3gxQ25p?=
 =?utf-8?B?YlRuemgySjJsamNVTXJxdkhTdzhobGI0c3plQzlEQjR4Y1I4UmFaNTBwbmlO?=
 =?utf-8?B?allnenZPTlI0Mjh6cWlNaGFHMlVxRzBWb3JDcU5tdUp2bndvWVZWNzJFL21N?=
 =?utf-8?B?MXBRTVFVSDdscXd3NWZNdlh2VVF1U3lnbXZkN3pXOTMyeHo3NGlUZEIwVm1D?=
 =?utf-8?B?amFVcXJJZ2o4Z2xKQmNpcUViRU52eTh3WG4rbW1BZ0hncU5xNXBDWWlBVTFF?=
 =?utf-8?B?Skc1Ym5UN1c4bTB0bm1nZlFJMkJ2VEdmc1pEZE14aFUxc1MyZklaWDEzU2Zi?=
 =?utf-8?B?Q1BWaUdCWGp2MDdheTFnN2NRSG9JOE1mbEQ0VWx4bmtwamJneEp5dE1lRGVT?=
 =?utf-8?B?WUpOYXRIekNhTVBwM3RXT0RhZUFJVDltZHEyQjMwMGFBaGwxdTF1M0paem9H?=
 =?utf-8?B?bzVreXV5OE1lcjJJcXY0aTU2NkNMVVlYSHVrSjNBZ0l3M25zdkRab0hmMVJ4?=
 =?utf-8?B?S0JjUDBjZTJTYWNybkIzSldwYjBBd0kxMWhkU3pZWVQrby82WmdzbHFMVzBr?=
 =?utf-8?B?Wnpndy81SjRmekVVU1hCdjNVV01uQ05NSGNEYStzaXljMy9CNDdhenJzV29G?=
 =?utf-8?B?dmZvRUw3U2pzY2J6dVBseXY3OVBhaWwzelhYbUlkS2VmNXZFUE9Ba2FpOHBF?=
 =?utf-8?B?RmpOOW9ndlhGSTREbjAwUE5IWXdSdEVHYkNXY1k5MmplK2RjMVU1N2V5NDdU?=
 =?utf-8?B?b2x2UVZJVWNmbHYxQ3NDYjZDblM4L1VIWHpvdDlYTWZoRWNPYkRwSDUrN1lt?=
 =?utf-8?B?WXl0NGttSkxSc09rbXFFRzNzM1NjWXJLdXdTQWVDeHR4VkdPak5iRjZyMFFh?=
 =?utf-8?B?dXg1QTkwRExDTkJEcTNablQ4amhmWXhWZHU5a05PL3dBU3d0MStMTHRCenVa?=
 =?utf-8?B?d05pa3doTkRYZ1plYjFVZkoyRGhad1RJdXZGOGFuQWZWVWQ5RUExRWpDYU5J?=
 =?utf-8?B?T2dSWHZCSVhnZGFiYzc5Nm5yYzQwK0t6SzBvYnZrUjV1YlBTVzFEYlBhM2tw?=
 =?utf-8?B?UUVPVDZjR20yeFZQZUU2K1FDc0I0R05GelBkbDk3UkgzR2JJUDZITGhhT3E5?=
 =?utf-8?B?dWQ1RmhJdDdvRklpOCtKaXdSbHFMdXpFa3dxVE5xQ3hicStDeVlKZkg3cUQr?=
 =?utf-8?B?Rml0ZGJjZzNqQ0srOTJJRGVBdE1QSCtxMm5BdHVVZS9MLzlZUUo2L2lHaU1P?=
 =?utf-8?Q?I5ecBCd+lMuo+r4wHUOdq3QGNdwVWUVtdX4Wpgs?=
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a2ec8db-9560-4f26-b8be-08dd9ddab457
X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 11:28:01.3949 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXP250MB0625
Subject: Re: [FFmpeg-devel] =?utf-8?b?5Zue5aSNOiBbUEFUQ0hdIGF2ZmlsdGVyOiBh?=
 =?utf-8?q?dd_PCM_dumping_between_filters_for_audio_debugging?=
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/GV1P250MB07379ECF2EB48D156B3CB5638F67A@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

RmFuZyBZaWJvOgo+IFJlOiBbRkZtcGVnLWRldmVsLHYyLDAvMl0gYXZmaWx0ZXI6IGFkZCBQQ00g
ZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1ZGlvIGRlYnVnZ2luZwo+IAo+IEZyb206IFlp
Ym8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPiBTdWJqZWN0OiBbRkZtcGVnLWRldmVs
LHYyLDAvMl0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1
ZGlvIGRlYnVnZ2luZwo+IERhdGU6IFdlZCwgMjMgQXByIDIwMjUgMTA6NTc6MDAgKzA4MDAKPiBN
ZXNzYWdlLUlkOiA8Y292ZXIuMC4yQGZmbXBlZz4KPiAKPiBUaGlzIHNlcmllcyBhZGRzIGEgZGVi
dWdnaW5nIGZlYXR1cmUgdGhhdCBsZXRzIGRldmVsb3BlcnMgZHVtcCByYXcKPiBQQ00gYXVkaW8g
YmV0d2VlbiBmaWx0ZXJzLiAgVGhlIGRhdGEgYXJlIHdyaXR0ZW4gdG8gZmlsZXMgaW4gYSB1c2Vy
LQo+IHNlbGVjdGVkIGRpcmVjdG9yeSB2aWEgdHdvIG5ldyBjb21tYW5kczoKPiAKPiAgICAgZHVt
cF9yYXdfc3RhcnQgZmlsZT0vcGF0aC90by9kaXIvCj4gICAgIGR1bXBfcmF3X3N0b3AKPiAKPiBQ
bGFuYXIgYXVkaW8gaXMgYXV0b21hdGljYWxseSBpbnRlcmxlYXZlZDsgb25seSBhdWRpbyBsaW5r
cyBhcmUKPiBhZmZlY3RlZC4gIFBhdGNoIDEvMiBpbXBsZW1lbnRzIHRoZSBmZWF0dXJlLCBwYXRj
aCAyLzIgZG9jdW1lbnRzIGl0Lgo+IAo+IFJlZ2FyZHMsCj4gWWlibyBGYW5nCj4gCj4gLS0tCj4g
Cj4gRnJvbSAyZGY1NmU3NDI3M2Q0NzdhZTI3MDAzZTA5ODEyMjA3NDlhNmI1OGNmIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNv
bT4KPiBEYXRlOiBXZWQsIDIzIEFwciAyMDI1IDEwOjU4OjU1ICswODAwCj4gU3ViamVjdDogW1BB
VENIIDEvMl0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1
ZGlvCj4gIGRlYnVnZ2luZwo+IAo+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBQQ00gZHVtcGluZyBz
dXBwb3J0IGJldHdlZW4gQVZGaWx0ZXIgbGlua3MsCj4gaW50ZW5kZWQgZm9yIGF1ZGlvIGRlYnVn
Z2luZyBhbmQgZmlsdGVyLWdyYXBoIGluc3BlY3Rpb24uCj4gCj4gVHdvIGZpbHRlciBjb21tYW5k
cyBhcmUgYWRkZWQ6Cj4gCj4gICAgIGR1bXBfcmF3X3N0YXJ0IGZpbGU9L3BhdGgvdG8vb3V0cHV0
L2Rpci8KPiAgICAgZHVtcF9yYXdfc3RvcAo+IAo+IFdoZW4gZHVtcGluZyBpcyBlbmFibGVkLCBh
dWRpbyBsZWF2aW5nIHRoZSBzZWxlY3RlZCBmaWx0ZXIgb3V0cHV0IGlzCj4gd3JpdHRlbiB0byBh
biBhdXRvbWF0aWNhbGx5IG5hbWVkIGZpbGU6Cj4gCj4gICAgIDxzcmNfZmlsdGVyPi08ZHN0X2Zp
bHRlcj4ucGNtCj4gCj4gUGxhbmFyIGZvcm1hdHMgYXJlIGNvbnZlcnRlZCB0byBwYWNrZWQuICBG
aWxlIGRlc2NyaXB0b3JzIGFyZSBvcGVuZWQKPiBvbiBkZW1hbmQgYW5kIGNsb3NlZCBhdXRvbWF0
aWNhbGx5LiAgV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4KPiAKPiBFeGFtcGxlIChDIEFQSSk6
Cj4gICAgIGF2ZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChmaWx0ZXIsICJkdW1wX3Jhd19zdGFydCIs
Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZT0vdG1wLyIsIE5VTEwsIDAsIDAp
Owo+IAo+IFNpZ25lZC1vZmYtYnk6IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4K
PiAtLS0KPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDE0NCArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWJhdmZpbHRlci9hdmZpbHRlci5oIHwgICA1ICsr
Cj4gIDIgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEv
bGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPiBpbmRleCA2
NGMxMDc1YzQwLi5iNzAzNDU2OWRiIDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVy
LmMKPiArKysgYi9saWJhdmZpbHRlci9hdmZpbHRlci5jCj4gQEAgLTE5LDYgKzE5LDkgQEAKPiAg
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+ICAgKi8KPiAKPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4g
KyNpbmNsdWRlIDx1bmlzdGQuaD4KPiArCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQu
aCIKPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+ICAjaW5jbHVkZSAibGliYXZ1
dGlsL2JwcmludC5oIgo+IEBACj4gICAgICByZXR1cm4gMDsKPiAgfQo+IAo+ICsvKiAtLS0tLS0t
LS0tIFBDTSBkdW1wIGhlbHBlcnMgLS0tLS0tLS0tLSAqLwo+ICsKPiArc3RhdGljIGF2X2NvbGQg
dm9pZCBsaW5rX3VuaW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxpbmspCj4gK3sKPiArICAg
IGlmIChsaW5rLT5kdW1wX3BjbV9mZHMpIHsKPiArICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzOyBpKyspCj4gKyAgICAgICAgICAgIGlmIChsaW5r
LT5kdW1wX3BjbV9mZHNbaV0gPj0gMCkKPiArICAgICAgICAgICAgICAgIGNsb3NlKGxpbmstPmR1
bXBfcGNtX2Zkc1tpXSk7Cj4gKyAgICAgICAgYXZfZnJlZXAoJmxpbmstPmR1bXBfcGNtX2Zkcyk7
Cj4gKyAgICAgICAgbGluay0+bmJfZHVtcF9wY21fZmRzID0gMDsKPiArICAgIH0KPiArICAgIGF2
X2ZyZWVwKCZsaW5rLT5kdW1wX3BjbV9wYXRoKTsKPiArICAgIGxpbmstPmR1bXBfcGNtID0gMDsK
PiArfQo+ICsKPiArc3RhdGljIGF2X2NvbGQgaW50IGxpbmtfaW5pdF9kdW1wX3BjbShBVkZpbHRl
ckxpbmsgKmxpbmspCj4gK3sKPiArICAgIC8qIGJ1aWxkIGZ1bGwgcGF0aCAiPGRpcj4vPHNyYz4t
PGRzdD4ucGNtIiAqLwo+ICsgICAgY29uc3QgY2hhciAqZGlyID0gbGluay0+ZHVtcF9wY21fcGF0
aDsKPiArICAgIGNvbnN0IGNoYXIgKnNlcCA9IGRpcltzdHJsZW4oZGlyKSAtIDFdID09ICcvJyA/
ICIiIDogIi8iOwo+ICsgICAgY2hhciBwYXRoWzQwOTZdOwo+ICsgICAgc25wcmludGYocGF0aCwg
c2l6ZW9mKHBhdGgpLCAiJXMlcyUuMTZzLSUuOHMucGNtIiwKPiArICAgICAgICAgICAgIGRpciwg
c2VwLCBsaW5rLT5zcmMtPm5hbWUsIGxpbmstPmRzdC0+bmFtZSk7Cj4gKwo+ICsgICAgbGluay0+
bmJfZHVtcF9wY21fZmRzID0gMTsKPiArICAgIGxpbmstPmR1bXBfcGNtX2ZkcyA9IGF2X21hbGxv
YyhzaXplb2YoaW50KSk7Cj4gKyAgICBpZiAoIWxpbmstPmR1bXBfcGNtX2ZkcykKPiArICAgICAg
ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsKPiArICAgIGludCBmZCA9IG9wZW4ocGF0aCwg
T19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQyB8IE9fRVhDTCwgMDY0NCk7Cj4gKyAgICBpZiAo
ZmQgPCAwKSB7Cj4gKyAgICAgICAgbGlua191bmluaXRfZHVtcF9wY20obGluayk7Cj4gKyAgICAg
ICAgcmV0dXJuIEFWRVJST1IoZXJybm8pOwo+ICsgICAgfQo+ICsgICAgbGluay0+ZHVtcF9wY21f
ZmRzWzBdID0gZmQ7Cj4gKyAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfSU5GTywgIlBDTSBk
dW1wIGZpbGU6ICVzXG4iLCBwYXRoKTsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0
aWMgaW50IGZpbHRlcl9zZXRfZHVtcF9wY20oQVZGaWx0ZXJDb250ZXh0ICpmLCBjb25zdCBjaGFy
ICphcmcsIGludCBzZXQpCj4gK3sKPiArICAgIGNvbnN0IGNoYXIgKnByZWZpeCA9ICJmaWxlPSI7
Cj4gKyAgICBpZiAoIWFyZyB8fCBhdl9zdHJuY2FzZWNtcChhcmcsIHByZWZpeCwgc3RybGVuKHBy
ZWZpeCkpKSB7Cj4gKyAgICAgICAgYXZfbG9nKGYsIEFWX0xPR19FUlJPUiwKPiArICAgICAgICAg
ICAgICAgImR1bXBfcmF3XyogZXhwZWN0cyBhcmd1bWVudCBmaWxlPS9kaXIvXG4iKTsKPiArICAg
ICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ICsgICAgfQo+ICsgICAgY29uc3QgY2hhciAq
ZGlyID0gYXJnICsgc3RybGVuKHByZWZpeCk7Cj4gKwo+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBmLT5uYl9vdXRwdXRzOyBpKyspIHsKPiArICAgICAgICBBVkZpbHRlckxpbmsgKmwgPSBmLT5v
dXRwdXRzW2ldOwo+ICsgICAgICAgIGlmIChsLT50eXBlICE9IEFWTUVESUFfVFlQRV9BVURJTykK
PiArICAgICAgICAgICAgY29udGludWU7Cj4gKyAgICAgICAgaWYgKHNldCkgewo+ICsgICAgICAg
ICAgICBhdl9mcmVlcCgmbC0+ZHVtcF9wY21fcGF0aCk7Cj4gKyAgICAgICAgICAgIGwtPmR1bXBf
cGNtX3BhdGggPSBhdl9zdHJkdXAoZGlyKTsKPiArICAgICAgICAgICAgaWYgKCFsLT5kdW1wX3Bj
bV9wYXRoKQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArICAg
ICAgICAgICAgbC0+ZHVtcF9wY20gPSAxOwo+ICsgICAgICAgIH0gZWxzZQo+ICsgICAgICAgICAg
ICBsaW5rX3VuaW5pdF9kdW1wX3BjbShsKTsKPiArICAgIH0KPiArICAgIHJldHVybiAwOwo+ICt9
Cj4gKwo+ICsvKiB3cml0ZSBvbmUgZnJhbWUgKi8KPiArc3RhdGljIGludCBsaW5rX2R1bXBfZnJh
bWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFtZSkKPiArewo+ICsgICAgaW50IHJl
dDsKPiArICAgIGlmICghbGluay0+ZHVtcF9wY21fZmRzICYmCj4gKyAgICAgICAgKHJldCA9IGxp
bmtfaW5pdF9kdW1wX3BjbShsaW5rKSkgPCAwKQo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+
ICsgICAgY29uc3QgaW50IGNoICAgICA9IGZyYW1lLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7Cj4g
KyAgICBjb25zdCBpbnQgYnBzICAgID0gYXZfZ2V0X2J5dGVzX3Blcl9zYW1wbGUoZnJhbWUtPmZv
cm1hdCk7Cj4gKyAgICBjb25zdCBpbnQgbnMgICAgID0gZnJhbWUtPm5iX3NhbXBsZXM7Cj4gKyAg
ICBjb25zdCBpbnQgdG90bGVuID0gY2ggKiBucyAqIGJwczsKPiArCj4gKyAgICAvKiBpbnRlcmxl
YXZlIHBsYW5hciB0byBwYWNrZWQgaWYgbmVjZXNzYXJ5ICovCj4gKyAgICBpZiAoYXZfc2FtcGxl
X2ZtdF9pc19wbGFuYXIoZnJhbWUtPmZvcm1hdCkpIHsKPiArICAgICAgICB1aW50OF90ICpidWYg
PSBhdl9tYWxsb2ModG90bGVuKTsKPiArICAgICAgICBpZiAoIWJ1ZikKPiArICAgICAgICAgICAg
cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArICAgICAgICBmb3IgKGludCBzID0gMDsgcyA8IG5z
OyBzKyspCj4gKyAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgY2g7IGMrKykKPiArICAg
ICAgICAgICAgICAgIG1lbWNweShidWYgKyAocypjaCArIGMpKmJwcywKPiArICAgICAgICAgICAg
ICAgICAgICAgICAodWludDhfdCopZnJhbWUtPmV4dGVuZGVkX2RhdGFbY10gKyBzKmJwcywKPiAr
ICAgICAgICAgICAgICAgICAgICAgICBicHMpOwo+ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmst
PmR1bXBfcGNtX2Zkc1swXSwgYnVmLCB0b3RsZW4pOwo+ICsgICAgICAgIGF2X2ZyZWUoYnVmKTsK
PiArICAgIH0gZWxzZQo+ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmstPmR1bXBfcGNtX2Zkc1sw
XSwgZnJhbWUtPmRhdGFbMF0sIHRvdGxlbik7Cj4gKwo+ICsgICAgaWYgKHJldCA8IDApIHsKPiAr
ICAgICAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfRVJST1IsICJQQ00gZHVtcCB3cml0ZSBm
YWlsZWQ6ICVzXG4iLAo+ICsgICAgICAgICAgICAgICBhdl9lcnIyc3RyKHJldCkpOwo+ICsgICAg
ICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGxpbmspOwo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4g
KyAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgbGlua19mcmVl
KEFWRmlsdGVyTGluayAqKmxpbmspCj4gIHsKPiBAQAo+IAo+ICBpbnQgYXZmaWx0ZXJfcHJvY2Vz
c19jb21tYW5kKEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25zdCBjaGFyICpjbWQsCj4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYXJnLCBjaGFyICpyZXMsIGlu
dCByZXNfbGVuLCBpbnQgZmxhZ3MpCj4gIHsKPiBAQAo+IC0gICAgICAgIGlmIChyZXMgPT0gbG9j
YWxfcmVzKQo+IC0gICAgICAgICAgICBhdl9sb2coZmlsdGVyLCBBVl9MT0dfSU5GTywgIiVzIiwg
cmVzKTsKPiAtICAgICAgICByZXR1cm4gMDsKPiArICAgICAgICBpZiAocmVzID09IGxvY2FsX3Jl
cykKPiArICAgICAgICAgICAgYXZfbG9nKGZpbHRlciwgQVZfTE9HX0lORk8sICIlcyIsIHJlcyk7
Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY21kLCAiZHVt
cF9yYXdfc3RhcnQiKSkgewo+ICsgICAgICAgIHJldHVybiBmaWx0ZXJfc2V0X2R1bXBfcGNtKGZp
bHRlciwgYXJnLCAxKTsKPiArICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjbWQsICJkdW1wX3Jhd19z
dG9wIikpIHsKPiArICAgICAgICByZXR1cm4gZmlsdGVyX3NldF9kdW1wX3BjbShmaWx0ZXIsIGFy
ZywgMCk7Cj4gICAgICB9IGVsc2UgaWYoIXN0cmNtcChjbWQsICJlbmFibGUiKSkgewo+ICAgICAg
ICAgIHJldHVybiBzZXRfZW5hYmxlX2V4cHIoZmZmaWx0ZXJjdHgoZmlsdGVyKSwgYXJnKTsKPiBA
QAo+ICAgICAgLyogLi4uIGV4aXN0aW5nIGNvZGUgLi4uICovCj4gCj4gKyAgICBpZiAobGluay0+
ZHVtcF9wY20gJiYgbGluay0+dHlwZSA9PSBBVk1FRElBX1RZUEVfQVVESU8pIHsKPiArICAgICAg
ICByZXQgPSBsaW5rX2R1bXBfZnJhbWUobGluaywgZnJhbWUpOwo+ICsgICAgICAgIGlmIChyZXQg
PCAwKQo+ICsgICAgICAgICAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfRVJST1IsCj4gKyAg
ICAgICAgICAgICAgICAgICAiUENNIGR1bXAgZmFpbGVkIHdpdGggJXNcbiIsIGF2X2VycjJzdHIo
cmV0KSk7Cj4gKyAgICB9Cj4gKwo+ICAgICAgbGktPmZyYW1lX2Jsb2NrZWRfaW4gPSBsaS0+ZnJh
bWVfd2FudGVkX291dCA9IDA7Cj4gQEAKPiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYXZmaWx0
ZXIuaCBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgKPiBpbmRleCBhODlkM2NmNjU4Li4wZDRjOTFi
YjZiIDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgKPiArKysgYi9saWJhdmZp
bHRlci9hdmZpbHRlci5oCj4gQEAKPiAgICAgIEFWQ2hhbm5lbExheW91dCBjaF9sYXlvdXQ7ICAv
Ly88IGNoYW5uZWwgbGF5b3V0IG9mIGN1cnJlbnQgYnVmZmVyCj4gCj4gKyAgICBpbnQgICAgICBk
dW1wX3BjbTsgICAgICAgICAgLy8vPCBlbmFibGUgZHVtcGluZyBvbiB0aGlzIGxpbmsKPiArICAg
IGludCAgICAgKmR1bXBfcGNtX2ZkczsgICAgICAvLy88IG9uZSBGRCBwZXIgbGluayAoY3VycmVu
dGx5IDEpCj4gKyAgICB1bnNpZ25lZCBuYl9kdW1wX3BjbV9mZHM7ICAgLy8vPCBudW1iZXIgb2Yg
RkRzCj4gKyAgICBjaGFyICAgICpkdW1wX3BjbV9wYXRoOyAgICAgLy8vPCB1c2VyLXN1cHBsaWVk
IGRpcmVjdG9yeQo+ICsKPiAgICAgIC8qKgo+ICAgICAgICogRGVmaW5lIHRoZSB0aW1lIGJhc2Ug
dXNlZCBieSB0aGUgUFRTIG9mIHRoZSBmcmFtZXMvc2FtcGxlcwo+ICAgICAgICogd2hpY2ggd2ls
bCBwYXNzIHRocm91Z2ggdGhpcyBsaW5rLgo+IC0tCj4gMi4zNC4xCj4gCj4gLS0tCj4gCj4gRnJv
bSA4Y2Y3YmZhNTJhMTBiZTg3ZTBmMTdiOTc4MzE1OWIwZTgzZjk2MGY3IE1vbiBTZXAgMTcgMDA6
MDA6MDAgMjAwMQo+IEZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPiBE
YXRlOiBXZWQsIDIzIEFwciAyMDI1IDEyOjM4OjAwICswODAwCj4gU3ViamVjdDogW1BBVENIIDIv
Ml0gZG9jL2ZpbHRlcnM6IGRvY3VtZW50IGR1bXBfcmF3X3N0YXJ0IGFuZCBkdW1wX3Jhd19zdG9w
Cj4gIGNvbW1hbmRzCj4gCj4gU2lnbmVkLW9mZi1ieTogWWlibyBGYW5nIDxibHVleWJmNzc3QG91
dGxvb2suY29tPgo+IC0tLQo+ICBkb2MvZmlsdGVycy50ZXhpIHwgNDUgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCA0NSBpbnNl
cnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RvYy9maWx0ZXJzLnRleGkgYi9kb2MvZmlsdGVy
cy50ZXhpCj4gaW5kZXggNDViM2UwM2U1ZS4uNmEyZDIzZGYzZiAxMDA2NDQKPiAtLS0gYS9kb2Mv
ZmlsdGVycy50ZXhpCj4gKysrIGIvZG9jL2ZpbHRlcnMudGV4aQo+IEBACj4gIEBzZWN0aW9uIGFk
dW1wcGNtCj4gCj4gIER1bXAgcmF3IFBDTSBhdWRpbyBkYXRhIGZvciBkZWJ1Z2dpbmcgYmV0d2Vl
biBmaWx0ZXJzLgo+IAo+ICBUaGlzIGZpbHRlciBhbGxvd3Mgd3JpdGluZyByYXcgYXVkaW8gZGF0
YSB0byBkaXNrIGZyb20gYW55IGF1ZGlvIGxpbmsKPiAgaW4gdGhlIGZpbHRlcmdyYXBoIGZvciBp
bnNwZWN0aW9uLiBJdCBzdXBwb3J0cyBwbGFuYXIgYW5kIHBhY2tlZCBmb3JtYXRzLAo+ICBhdXRv
bWF0aWNhbGx5IGludGVybGVhdmluZyBwbGFuYXIgZGF0YSBmb3Igd3JpdGluZy4KPiAKPiAgQHN1
YnNlY3Rpb24gU3ludGF4Cj4gCj4gIEBleGFtcGxlCj4gIGR1bXBfcmF3X3N0YXJ0PWZpbGU9L3lv
dXIvZHVtcC9kaXJlY3RvcnkvCj4gIEBlbmQgZXhhbXBsZQo+IAo+ICBAc3Vic2VjdGlvbiBVc2Fn
ZQo+IAo+ICBUbyBlbmFibGUgZHVtcGluZywgdXNlIHRoZSBAY29kZXtkdW1wX3Jhd19zdGFydH0g
Y29tbWFuZDoKPiAKPiAgQGV4YW1wbGUKPiAgZmZtcGVnIC1pIGlucHV0LndhdiAtYWYgInZvbHVt
ZSxhc2VuZGNtZD0nMC4wIGR1bXBfcmF3X3N0YXJ0IGZpbGU9L3RtcC9wY20vJyIgLWYgbnVsbCAt
Cj4gIEBlbmQgZXhhbXBsZQo+IAo+ICBUbyBzdG9wIGR1bXBpbmc6Cj4gCj4gIEBleGFtcGxlCj4g
IGFzZW5kY21kPSc1LjAgZHVtcF9yYXdfc3RvcCcKPiAgQGVuZCBleGFtcGxlCj4gCj4gIEBzdWJz
ZWN0aW9uIE9wdGlvbnMKPiAKPiAgQHRhYmxlIEBvcHRpb24KPiAgQGl0ZW0gZmlsZQo+ICBTcGVj
aWZ5IGEgZGlyZWN0b3J5IHBhdGggKG5vdCBhIGZpbGVuYW1lKSB3aGVyZSBQQ00gZGF0YSB3aWxs
IGJlIGR1bXBlZC4KPiAgVGhlIGR1bXBlZCBmaWxlIGlzIG5hbWVkIEBjb2RlezxzcmM+LTxkc3Q+
LnBjbX0gYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gaWYgaXQgYWxyZWFkeSBleGlzdHMuCj4gIEBl
bmQgdGFibGUKPiAtLQo+IDIuMzQuMQo+IAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCj4gRnJvbTogZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1w
ZWcub3JnPiBvbiBiZWhhbGYgb2YgQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFy
ZHRAb3V0bG9vay5jb20+Cj4gU2VudDogMjYgQXByaWwgMjAyNSAzOjAwCj4gVG86IGZmbXBlZy1k
ZXZlbEBmZm1wZWcub3JnIDxmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZz4KPiBTdWJqZWN0OiBSZTog
W0ZGbXBlZy1kZXZlbF0gW1BBVENIXSBhdmZpbHRlcjogYWRkIFBDTSBkdW1waW5nIGJldHdlZW4g
ZmlsdGVycyBmb3IgYXVkaW8gZGVidWdnaW5nCj4gCj4g5LiA5Y+q5aSnIOiCpeeMqzoKPj4gVGhp
cyBwYXRjaCBpbnRyb2R1Y2VzIFBDTSBkdW1waW5nIHN1cHBvcnQgYmV0d2VlbiBBVkZpbHRlciBs
aW5rcywgaW50ZW5kZWQgZm9yIGF1ZGlvIGRlYnVnZ2luZy4KPj4KPj4gSXQgYWRkcyBhIGNvbmZp
Z3VyZS10aW1lIG9wdGlvbiBgLS1kdW1wZGlyPVBBVEhgIHRvIHNwZWNpZnkgdGhlIG91dHB1dCBk
aXJlY3RvcnkgZm9yIHJhdyBQQ00gZGF0YSAoZGVmYXVsdDogL3RtcC8pLgo+Pgo+PiBUd28gY29t
bWFuZHMgYXJlIGV4cG9zZWQgdG8gY29udHJvbCBkdW1waW5nOgo+PiAgIC0gZHVtcF9yYXdfc3Rh
cnQgPGRzdF9maWx0ZXJfbmFtZT4KPj4gICAtIGR1bXBfcmF3X3N0b3AgPGRzdF9maWx0ZXJfbmFt
ZT4KPj4KPj4gRHVtcCBmaWxlcyBhcmUgd3JpdHRlbiBhczogc3JjbmFtZS1kc3RuYW1lLWNoYW5u
ZWwucGNtCj4+Cj4+IFN1cHBvcnRzIHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMuIEZpbGUgZGVz
Y3JpcHRvcnMgYXJlIG1hbmFnZWQgYXV0b21hdGljYWxseSBhbmQgd29yayBvbmx5IG9uIGF1ZGlv
IGxpbmtzLgo+Pgo+PiBFeGFtcGxlIHVzYWdlOgo+PiAgICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21t
YW5kKGZpbHRlciwgImR1bXBfcmF3X3N0YXJ0IiwgInZvbHVtZSIsIE5VTEwsIDAsIDApOwo+Pgo+
PiBUaGlzIGZlYXR1cmUgaGVscHMgZGV2ZWxvcGVycyBkZWJ1ZyBmaWx0ZXIgYmVoYXZpb3IgYnkg
aW5zcGVjdGluZyBpbnRlcm1lZGlhdGUgYXVkaW8gZGF0YS4KPj4gLS0tCj4+IEZyb20gNmEzMWM4
NWFmZDI4MDBjMDkwNzZjMWUyYjdjNzM0YzdiNzE5ZjczZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKPj4gRnJvbTogWWlibyBGYW5nIDxibHVleWJmNzc3QG91dGxvb2suY29tPgo+PiBEYXRlOiBX
ZWQsIDIzIEFwciAyMDI1IDA5OjE3OjUxICswODAwCj4+IFN1YmplY3Q6IFtQQVRDSCAxLzFdIGF2
ZmlsdGVyOiBhZGQgUENNIGR1bXBpbmcgYmV0d2VlbiBmaWx0ZXJzIGZvciBhdWRpbwo+PiAgZGVi
dWdnaW5nCj4+Cj4+IFRoaXMgcGF0Y2ggYWRkcyB0aGUgYWJpbGl0eSB0byBkdW1wIHJhdyBQQ00g
YXVkaW8gZGF0YSBiZXR3ZWVuIEFWRmlsdGVyIGxpbmtzLgo+PiBJdCBpbnRyb2R1Y2VzIGEgY29u
ZmlndXJlLXRpbWUgb3B0aW9uIGAtLWR1bXBkaXI9UEFUSGAgdG8gY29udHJvbCB0aGUgb3V0cHV0
Cj4+IGRpcmVjdG9yeSBvZiBkdW1wIGZpbGVzIChkZWZhdWx0OiAvdG1wLykuIFRoaXMgZmVhdHVy
ZSBpcyBoZWxwZnVsIGZvciBkZWJ1Z2dpbmcKPj4gZmlsdGVyIGJlaGF2aW9yIGFuZCB2ZXJpZnlp
bmcgYXVkaW8gcHJvY2Vzc2luZy4KPj4KPj4gVHdvIGZpbHRlciBjb21tYW5kcyBhcmUgYWRkZWQ6
Cj4+ICAgLSBkdW1wX3Jhd19zdGFydCA8ZHN0X2ZpbHRlcl9uYW1lPgo+PiAgIC0gZHVtcF9yYXdf
c3RvcCA8ZHN0X2ZpbHRlcl9uYW1lPgo+Pgo+PiBUaGUgUENNIGZpbGVzIGFyZSB3cml0dGVuIGlu
IHRoZSBmb3JtYXQ6IHNyY25hbWUtZHN0bmFtZS08Y2hhbm5lbD4ucGNtLgo+Pgo+PiBTdXBwb3J0
cyBib3RoIHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMuIEZpbGUgZGVzY3JpcHRvcnMgYXJlIGF1
dG9tYXRpY2FsbHkKPj4gbWFuYWdlZC4gV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4KPj4KPj4g
RXhhbXBsZSB1c2FnZToKPj4gICBhdmZpbHRlcl9wcm9jZXNzX2NvbW1hbmQoZmlsdGVyLCAiZHVt
cF9yYXdfc3RhcnQiLCAidm9sdW1lIiwgTlVMTCwgMCwgMCk7Cj4+Cj4+IFNpZ25lZC1vZmYtYnk6
IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPj4gLS0tCj4+ICBjb25maWd1cmUg
ICAgICAgICAgICAgIHwgICA3ICsrKwo+PiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDExMCAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgbGliYXZmaWx0ZXIv
YXZmaWx0ZXIuaCB8ICAgNCArKwo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygr
KQo+Pgo+PiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4+IGluZGV4IGM5NGI4
ZWFjNDMuLjM4MTYzMzc0OWQgMTAwNzU1Cj4+IC0tLSBhL2NvbmZpZ3VyZQo+PiArKysgYi9jb25m
aWd1cmUKPj4gQEAgLTUyNCw2ICs1MjQsNyBAQCBEZXZlbG9wZXIgb3B0aW9ucyAodXNlZnVsIHdo
ZW4gd29ya2luZyBvbiBGRm1wZWcgaXRzZWxmKToKPj4gICAgLS1kaXNhYmxlLWxhcmdlLXRlc3Rz
ICAgIGRpc2FibGUgdGVzdHMgdGhhdCB1c2UgYSBsYXJnZSBhbW91bnQgb2YgbWVtb3J5Cj4+ICAg
IC0tZGlzYWJsZS1wdHgtY29tcHJlc3Npb24gZG9uJ3QgY29tcHJlc3MgQ1VEQSBQVFggY29kZSBl
dmVuIHdoZW4gcG9zc2libGUKPj4gICAgLS1kaXNhYmxlLXZlcnNpb24tdHJhY2tpbmcgZG9uJ3Qg
aW5jbHVkZSB0aGUgZ2l0L3JlbGVhc2UgdmVyc2lvbiBpbiB0aGUgYnVpbGQKPj4gKyAgLS1kdW1w
ZGlyPVBBVEggICAgICAgICAgIGxvY2F0aW9uIG9mIHBjbSBkdW1wIGZpbGVzIHRvIHNhdmUuCj4+
Cj4+ICBOT1RFOiBPYmplY3QgZmlsZXMgYXJlIGJ1aWx0IGF0IHRoZSBwbGFjZSB3aGVyZSBjb25m
aWd1cmUgaXMgbGF1bmNoZWQuCj4+ICBFT0YKPj4gQEAgLTI2OTAsNiArMjY5MSw3IEBAIFBBVEhT
X0xJU1Q9Igo+PiAgICAgIHByZWZpeAo+PiAgICAgIHNobGliZGlyCj4+ICAgICAgaW5zdGFsbF9u
YW1lX2Rpcgo+PiArICAgIGR1bXBkaXIKPj4gICIKPj4KPj4gIENNRExJTkVfU0VUPSIKPj4gQEAg
LTQxMjMsNiArNDEyNSw5IEBAIGluY2Rpcl9kZWZhdWx0PScke3ByZWZpeH0vaW5jbHVkZScKPj4g
IGxpYmRpcl9kZWZhdWx0PScke3ByZWZpeH0vbGliJwo+PiAgbWFuZGlyX2RlZmF1bHQ9JyR7cHJl
Zml4fS9zaGFyZS9tYW4nCj4+Cj4+ICsjIHJ1bnRpbWUgcGF0aAo+PiArZHVtcGRpcl9kZWZhdWx0
PScvdG1wLycKPj4gKwo+PiAgIyB0b29sY2hhaW4KPj4gIGFyX2RlZmF1bHQ9ImFyIgo+PiAgY2Nf
ZGVmYXVsdD0iZ2NjIgo+PiBAQCAtODExOCw2ICs4MTIzLDcgQEAgRE9DRElSPVwkKERFU1RESVIp
JGRvY2Rpcgo+PiAgTUFORElSPVwkKERFU1RESVIpJG1hbmRpcgo+PiAgUEtHQ09ORklHRElSPVwk
KERFU1RESVIpJHBrZ2NvbmZpZ2Rpcgo+PiAgSU5TVEFMTF9OQU1FX0RJUj0kaW5zdGFsbF9uYW1l
X2Rpcgo+PiArRFVNUERJUj0kZHVtcGRpcgo+PiAgU1JDX1BBVEg9JHNvdXJjZV9wYXRoCj4+ICBT
UkNfTElOSz0kc291cmNlX2xpbmsKPj4gIGlmbmRlZiBNQUlOX01BS0VGSUxFCj4+IEBAIC04MjY3
LDYgKzgyNzMsNyBAQCBjYXQgPiAkVE1QSCA8PEVPRgo+PiAgI2RlZmluZSBDT05GSUdfVEhJU19Z
RUFSIDIwMjUKPj4gICNkZWZpbmUgRkZNUEVHX0RBVEFESVIgIiQoZXZhbCBjX2VzY2FwZSAkZGF0
YWRpcikiCj4+ICAjZGVmaW5lIEFWQ09OVl9EQVRBRElSICIkKGV2YWwgY19lc2NhcGUgJGRhdGFk
aXIpIgo+PiArI2RlZmluZSBGRk1QRUdfRFVNUERJUiAiJChldmFsIGNfZXNjYXBlICRkdW1wZGly
KSIKPj4gICNkZWZpbmUgQ0NfSURFTlQgIiQoY19lc2NhcGUgJHtjY19pZGVudDotVW5rbm93biBj
b21waWxlcn0pIgo+PiAgI2RlZmluZSBPU19OQU1FICR0YXJnZXRfb3MKPj4gICNkZWZpbmUgRVhU
RVJOX1BSRUZJWCAiJHtleHRlcm5fcHJlZml4fSIKPj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVy
L2F2ZmlsdGVyLmMgYi9saWJhdmZpbHRlci9hdmZpbHRlci5jCj4+IGluZGV4IDY0YzEwNzVjNDAu
LjlmYzYzMDg1NDQgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPj4gKysr
IGIvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYwo+PiBAQCAtMTksNiArMTksOSBAQAo+PiAgICogRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAwMjExMC0xMzAxIFVTQQo+PiAgICovCj4+Cj4+ICsjaW5jbHVkZSA8ZmNudGwuaD4KPj4gKyNp
bmNsdWRlIDx1bmlzdGQuaD4KPj4gKwo+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5o
Igo+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+PiAgI2luY2x1ZGUgImxpYmF2
dXRpbC9icHJpbnQuaCIKPj4gQEAgLTE5NSw2ICsxOTgsNjYgQEAgaW50IGF2ZmlsdGVyX2xpbmso
QVZGaWx0ZXJDb250ZXh0ICpzcmMsIHVuc2lnbmVkIHNyY3BhZCwKPj4gICAgICByZXR1cm4gMDsK
Pj4gIH0KPj4KPj4gK3N0YXRpYyBhdl9jb2xkIHZvaWQgbGlua191bmluaXRfZHVtcF9wY20oQVZG
aWx0ZXJMaW5rICpsaW5rLCBpbnQgc3RvcCkKPj4gK3sKPj4gKyAgICBpZiAobGluay0+ZHVtcF9w
Y21fZmRzKSB7Cj4+ICsgICAgICAgIGludCBpOwo+PiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwg
bGluay0+bmJfZHVtcF9wY21fZmRzOyBpKyspIHsKPj4gKyAgICAgICAgICAgIGlmIChsaW5rLT5k
dW1wX3BjbV9mZHNbaV0pCj4+ICsgICAgICAgICAgICAgICAgY2xvc2UobGluay0+ZHVtcF9wY21f
ZmRzW2ldKTsKPj4gKyAgICAgICAgfQo+PiArICAgICAgICBhdl9mcmVlKGxpbmstPmR1bXBfcGNt
X2Zkcyk7Cj4+ICsgICAgICAgIGxpbmstPmR1bXBfcGNtX2ZkcyAgICA9IE5VTEw7Cj4+ICsgICAg
ICAgIGxpbmstPm5iX2R1bXBfcGNtX2ZkcyA9IDA7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgaWYg
KHN0b3ApCj4+ICsgICAgICAgIGxpbmstPmR1bXBfcGNtID0gMDsKPj4gK30KPj4gKwo+PiArc3Rh
dGljIGF2X2NvbGQgaW50IGxpbmtfaW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxpbmspCj4+
ICt7Cj4+ICsgICAgY2hhciBwYXRoWzQwOTZdOwo+PiArICAgIGludCBmZCwgaTsKPj4gKwo+PiAr
ICAgIGxpbmstPm5iX2R1bXBfcGNtX2ZkcyA9IGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGxpbmst
PmZvcm1hdCk/IGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVscyA6IDE7Cj4+ICsgICAgbGluay0+
ZHVtcF9wY21fZmRzID0gYXZfbWFsbG9jX2FycmF5KGxpbmstPm5iX2R1bXBfcGNtX2Zkcywgc2l6
ZW9mKGludCkpOwo+PiArICAgIGlmICghbGluay0+ZHVtcF9wY21fZmRzKQo+PiArICAgICAgICBy
ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiArCj4+ICsgICAgZm9yIChpID0gMDsgaSA8IGxpbmst
Pm5iX2R1bXBfcGNtX2ZkczsgaSsrKSB7Cj4+ICsgICAgICAgIHNucHJpbnRmKHBhdGgsIHNpemVv
ZihwYXRoKSwgRkZNUEVHX0RVTVBESVIiJS4xNnMtJS44cy0lZC5wY20iLCBsaW5rLT5zcmMtPm5h
bWUsIGxpbmstPmRzdC0+bmFtZSwgaSk7Cj4+ICsgICAgICAgIGZkID0gb3BlbihwYXRoLCBPX1dS
T05MWSB8IE9fQ1JFQVQgfCBPX1RSVU5DLCAwNjQ0KTsKPj4gKyAgICAgICAgaWYgKGZkIDwgMCkg
ewo+PiArICAgICAgICAgICAgbGlua191bmluaXRfZHVtcF9wY20obGluaywgMSk7Cj4+ICsgICAg
ICAgICAgICByZXR1cm4gQVZFUlJPUihlcnJubyk7Cj4+ICsgICAgICAgIH0KPj4gKyAgICAgICAg
bGluay0+ZHVtcF9wY21fZmRzW2ldID0gZmQ7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJu
IDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgZmlsdGVyX3NldF9kdW1wX3BjbShBVkZpbHRl
ckNvbnRleHQgKmZpbHRlciwgY29uc3QgY2hhciAqdGFyZ2V0LCBpbnQgc2V0KQo+PiArewo+PiAr
ICAgIGludCBpOwo+PiArCj4+ICsgICAgZm9yIChpID0gMDsgaSA8IGZpbHRlci0+bmJfb3V0cHV0
czsgaSsrKSB7Cj4+ICsgICAgICAgIEFWRmlsdGVyTGluayAqbGluayA9IGZpbHRlci0+b3V0cHV0
c1tpXTsKPj4gKyAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXN0cmNtcChsaW5rLT5kc3QtPm5hbWUs
IHRhcmdldCkpIHsKPj4gKyAgICAgICAgICAgIGlmIChzZXQpIHsKPj4gKyAgICAgICAgICAgICAg
ICBsaW5rLT5kdW1wX3BjbSA9IDE7Cj4+ICsgICAgICAgICAgICB9IGVsc2UKPj4gKyAgICAgICAg
ICAgICAgICBsaW5rX3VuaW5pdF9kdW1wX3BjbShsaW5rLCAxKTsKPj4gKwo+PiArICAgICAgICAg
ICAgaWYgKHRhcmdldCkKPj4gKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gKyAgICAgICAg
fQo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldHVybiB0YXJnZXQgPyBBVkVSUk9SKEVJTlZBTCkg
OiAwOwo+PiArfQo+PiArCj4+ICBzdGF0aWMgdm9pZCBsaW5rX2ZyZWUoQVZGaWx0ZXJMaW5rICoq
bGluaykKPj4gIHsKPj4gICAgICBGaWx0ZXJMaW5rSW50ZXJuYWwgKmxpOwo+PiBAQCAtMjA4LDYg
KzI3MSw4IEBAIHN0YXRpYyB2b2lkIGxpbmtfZnJlZShBVkZpbHRlckxpbmsgKipsaW5rKQo+PiAg
ICAgIGF2X2NoYW5uZWxfbGF5b3V0X3VuaW5pdCgmKCpsaW5rKS0+Y2hfbGF5b3V0KTsKPj4gICAg
ICBhdl9mcmFtZV9zaWRlX2RhdGFfZnJlZSgmKCpsaW5rKS0+c2lkZV9kYXRhLCAmKCpsaW5rKS0+
bmJfc2lkZV9kYXRhKTsKPj4KPj4gKyAgICBsaW5rX3VuaW5pdF9kdW1wX3BjbSgqbGluaywgMSk7
Cj4+ICsKPj4gICAgICBhdl9idWZmZXJfdW5yZWYoJmxpLT5sLmh3X2ZyYW1lc19jdHgpOwo+Pgo+
PiAgICAgIGF2X2ZyZWVwKGxpbmspOwo+PiBAQCAtNjE3LDYgKzY4MiwxMCBAQCBpbnQgYXZmaWx0
ZXJfcHJvY2Vzc19jb21tYW5kKEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25zdCBjaGFyICpj
bWQsIGNvbnN0IGNoYQo+PiAgICAgICAgICBpZiAocmVzID09IGxvY2FsX3JlcykKPj4gICAgICAg
ICAgICAgIGF2X2xvZyhmaWx0ZXIsIEFWX0xPR19JTkZPLCAiJXMiLCByZXMpOwo+PiAgICAgICAg
ICByZXR1cm4gMDsKPj4gKyAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImR1bXBfcmF3X3N0YXJ0
IikpIHsKPj4gKyAgICAgICAgcmV0dXJuIGZpbHRlcl9zZXRfZHVtcF9wY20oZmlsdGVyLCBhcmcs
IDEpOwo+PiArICAgIH1lbHNlIGlmKCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RvcCIpKSB7Cj4+
ICsgICAgICAgIHJldHVybiBmaWx0ZXJfc2V0X2R1bXBfcGNtKGZpbHRlciwgYXJnLCAwKTsKPj4g
ICAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImVuYWJsZSIpKSB7Cj4+ICAgICAgICAgIHJldHVy
biBzZXRfZW5hYmxlX2V4cHIoZmZmaWx0ZXJjdHgoZmlsdGVyKSwgYXJnKTsKPj4gICAgICB9ZWxz
ZSBpZiAoZmZmaWx0ZXIoZmlsdGVyLT5maWx0ZXIpLT5wcm9jZXNzX2NvbW1hbmQpIHsKPj4gQEAg
LTEwNTAsNiArMTExOSw0MSBAQCBmYWlsOgo+PiAgICAgIHJldHVybiByZXQ7Cj4+ICB9Cj4+Cj4+
ICtzdGF0aWMgaW50IGxpbmtfZHVtcF9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUg
KmZyYW1lKQo+PiArewo+PiArICAgIGludCBzYW1wbGVzX3NpemUsIHJldDsKPj4gKwo+PiArICAg
IGlmICghbGluay0+ZHVtcF9wY21fZmRzKSB7Cj4+ICsgICAgICAgIHJldCA9IGxpbmtfaW5pdF9k
dW1wX3BjbShsaW5rKTsKPj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4+ICsgICAgICAgICAgICBy
ZXR1cm4gcmV0Owo+PiArICAgIH0KPj4gKwo+PiArICAgIHNhbXBsZXNfc2l6ZSA9IGF2X2dldF9i
eXRlc19wZXJfc2FtcGxlKGZyYW1lLT5mb3JtYXQpICogZnJhbWUtPm5iX3NhbXBsZXM7Cj4+ICsg
ICAgaWYgKGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7Cj4+ICsgICAg
ICAgIGludCBpOwo+PiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21f
ZmRzICYmIGkgPCBmcmFtZS0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyBpKyspIHsKPj4gKyAgICAg
ICAgICAgIGlmIChpIDwgQVZfTlVNX0RBVEFfUE9JTlRFUlMpIHsKPj4gKyAgICAgICAgICAgICAg
ICByZXQgPSB3cml0ZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0sIGZyYW1lLT5kYXRhW2ldLCBzYW1w
bGVzX3NpemUpOwo+PiArICAgICAgICAgICAgfSBlbHNlCj4+ICsgICAgICAgICAgICAgICAgcmV0
ID0gd3JpdGUobGluay0+ZHVtcF9wY21fZmRzW2ldLCBmcmFtZS0+ZXh0ZW5kZWRfZGF0YVtpIC0g
QVZfTlVNX0RBVEFfUE9JTlRFUlNdLCBzYW1wbGVzX3NpemUpOwo+PiArCj4+ICsgICAgICAgICAg
ICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgICAgICAgICBnb3RvIGVycjsKPj4gKyAgICAgICAg
fQo+PiArICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmstPmR1bXBfcGNt
X2Zkc1swXSwgZnJhbWUtPmRhdGFbMF0sIHNhbXBsZXNfc2l6ZSAqIGZyYW1lLT5jaF9sYXlvdXQu
bmJfY2hhbm5lbHMpOwo+PiArICAgICAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgICAgIGdv
dG8gZXJyOwo+PiArCj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuIDA7Cj4+ICtlcnI6Cj4+
ICsgICAgbGlua191bmluaXRfZHVtcF9wY20obGluaywgMSk7Cj4+ICsgICAgcmV0dXJuIEFWRVJS
T1IoZXJybm8pOwo+PiArfQo+PiArCj4+ICBpbnQgZmZfZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGlu
ayAqbGluaywgQVZGcmFtZSAqZnJhbWUpCj4+ICB7Cj4+ICAgICAgRmlsdGVyTGlua0ludGVybmFs
ICogY29uc3QgbGkgPSBmZl9saW5rX2ludGVybmFsKGxpbmspOwo+PiBAQCAtMTA4Nyw2ICsxMTkx
LDEyIEBAIGludCBmZl9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpm
cmFtZSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmstPnRp
bWVfYmFzZSk7Cj4+ICAgICAgfQo+Pgo+PiArICAgIGlmIChsaW5rLT5kdW1wX3BjbSAmJiBsaW5r
LT50eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykgewo+PiArICAgICAgICByZXQgPSBsaW5rX2R1
bXBfZnJhbWUobGluaywgZnJhbWUpOwo+PiArICAgICAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAg
ICAgICAgIGF2X2xvZyhsaW5rLT5kc3QsIEFWX0xPR19FUlJPUiwgIkR1bXAgcGNtIGZpbGVzIGZh
aWxlZCB3aXRoICVkXG4iLCByZXQpOwo+PiArICAgIH0KPj4gKwo+PiAgICAgIGxpLT5mcmFtZV9i
bG9ja2VkX2luID0gbGktPmZyYW1lX3dhbnRlZF9vdXQgPSAwOwo+PiAgICAgIGxpLT5sLmZyYW1l
X2NvdW50X2luKys7Cj4+ICAgICAgbGktPmwuc2FtcGxlX2NvdW50X2luICs9IGZyYW1lLT5uYl9z
YW1wbGVzOwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCBiL2xpYmF2Zmls
dGVyL2F2ZmlsdGVyLmgKPj4gaW5kZXggYTg5ZDNjZjY1OC4uNmQwNGI5ZGE3NyAxMDA2NDQKPj4g
LS0tIGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaAo+PiArKysgYi9saWJhdmZpbHRlci9hdmZpbHRl
ci5oCj4+IEBAIC00MDQsNiArNDA0LDEwIEBAIHN0cnVjdCBBVkZpbHRlckxpbmsgewo+PiAgICAg
IGludCBzYW1wbGVfcmF0ZTsgICAgICAgICAgICAvLy88IHNhbXBsZXMgcGVyIHNlY29uZAo+PiAg
ICAgIEFWQ2hhbm5lbExheW91dCBjaF9sYXlvdXQ7ICAvLy88IGNoYW5uZWwgbGF5b3V0IG9mIGN1
cnJlbnQgYnVmZmVyIChzZWUgbGliYXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgpCj4+Cj4+ICsgICAg
aW50ICAgICAgICBkdW1wX3BjbTsgICAgICAgLy8vPCBmbGFnIHRvIGR1bXAgcGNtCj4+ICsgICAg
aW50ICAgICAgICAqZHVtcF9wY21fZmRzOyAgIC8vLzwgZHVtcCBmaWxlcwo+PiArICAgIHVuc2ln
bmVkIG5iX2R1bXBfcGNtX2ZkczsgICAvLy88IG51bWJlciBvZiBkdW1wIGZpbGUKPj4gKwo+PiAg
ICAgIC8qKgo+PiAgICAgICAqIERlZmluZSB0aGUgdGltZSBiYXNlIHVzZWQgYnkgdGhlIFBUUyBv
ZiB0aGUgZnJhbWVzL3NhbXBsZXMKPj4gICAgICAgKiB3aGljaCB3aWxsIHBhc3MgdGhyb3VnaCB0
aGlzIGxpbmsuCj4+IC0tCj4+IDIuMzQuMQo+Pgo+IAo+IENhbid0IHlvdSB1c2UgdGhlIGFzcGxp
dCBmaWx0ZXIgdG8gZHVwbGljYXRlIHRoZSBhdWRpbz8KPiAKPiAtIEFuZHJlYXMKClBpbmcgZm9y
IHRoYXQgcXVlc3Rpb24uCgotIEFuZHJlYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs
QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl
dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl
dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K