From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 664424E00D
	for <ffmpegdev@gitmailbox.com>; Sun, 27 Apr 2025 17:54:36 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A387268B144;
	Sun, 27 Apr 2025 20:54:33 +0300 (EEST)
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10olkn2058.outbound.protection.outlook.com [40.92.42.58])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD784687D95
 for <ffmpeg-devel@ffmpeg.org>; Sun, 27 Apr 2025 20:54:26 +0300 (EEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MSNQudGBFR9A/lr0q6E+Chlg5NN0SP6+Cr/jgFXOhMUdHPvGY04Hh+BPnYRfDAu4V0spaWvcldtFc0DJRw7Hk+cLF2Qrq95p6uNaG8lpd5kfSxQcgnOPDXz2EqUoQE17iBIS5A5bp0OgJgoHZttbMEPjPlD6D9Zc/aST7JFkU3bvOpatdoybYroVKXwZ0ly5peb5Isvi6yZlz2aDjQZDIpq+uozkJZocnRoLyNYMOqG2PNEPxCNj9WCJhJZK/EfqXrg027t3ZUxCJIC3Ui45zitediTgf52KvP94ohlCZhcfFcVk3P5GVpgzW+claINItlhJWPdGmrVXNKDp6eSp9A==
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=CTU40LsLGw31iGmy+8uS+hmdaku+TnYE1njQDtvJdfo=;
 b=FrXFKUHqT75FM1Ju+dVbJZXeKVpl1SJOvwO/qveByeFShfhEzp7oyQXG2nRUX06r9jbdJav2xh9WQGOCx9hIrOY5j212YHBXoCk1lf64tTcTf4e7cqx6mckqvkNdXxfrYWyU/Oe1qnFF43tmeQepyY24qN2FRug5qF7te9+AClNKKUWiGXeQz23uBgU7V4hVPVASzSoViM5H1x0XWA8MnFRMJAsoMZ1G3bXBDU3wURIae+xRa8zCcS4SzXCWEEtaMrsqKVkxvvdMliKzTGZdkOUpS9h2kfiwEuq8YPsiyk+rJ+0R9x3SSfvcxUpb7JsWx0M9kmWusb7peiP3GryI9w==
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=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CTU40LsLGw31iGmy+8uS+hmdaku+TnYE1njQDtvJdfo=;
 b=O+UVCCXJJJhLBla0TgwbTNUGv12yXVZX63zv3r3t2YMxY7gFU4nMBpLp8TLXQe70wdGmzdTMej5aaev0b2EnjYLZB90iA0tfbf0/GV9x8mywk6Sp/zsKrMJUQ8+rH3DwnmQX0l8s4Ado4XvtwE4YkBIY/dC6JRhRxqJz3CkFWjK/MH/O5EAy3Zm43/dui1IPwremrVf0xGHoMC2rgulYLrc0dSQT+zWUB84V+vKVs6ySDxt/RuU1u1sGYhnql6DmMDOrYlVIE/cVQzgNTA0+zsAEHUDCM9sk1PvOEaQdhaZS0DCMmw/uuqsUKvlK5BM06ZaXl4AdzxN+xGa2xqB1tw==
Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by
 PH7P223MB1015.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:303::22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.30; Sun, 27 Apr 2025 17:54:22 +0000
Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM
 ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM
 ([fe80::bf09:8e9:b07f:98a7%4]) with mapi id 15.20.8678.028; Sun, 27 Apr 2025
 17:54:22 +0000
From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Thread-Topic: [FFmpeg-devel] [RFC] Shaping the AVTextFormat API Surface
Thread-Index: AduzMDhGXdsgXHAcTguhmPiAzJ4vgQCFz10AACbdH6AAX4aHgAALTBgQ
Date: Sun, 27 Apr 2025 17:54:21 +0000
Message-ID: <DM8P223MB036535B434099A2C30D82559BA862@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
References: <DM8P223MB036504CFC0521633C2ADCCE3BABB2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
 <12650153.O9o76ZdvQC@basile.remlab.net>
 <DM8P223MB03656267310C697B2094F675BA842@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
 <aA4J/XYOzKKMouhn@mariano>
In-Reply-To: <aA4J/XYOzKKMouhn@mariano>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM8P223MB0365:EE_|PH7P223MB1015:EE_
x-ms-office365-filtering-correlation-id: 6383cbac-b36b-4a04-4575-08dd85b48a83
x-microsoft-antispam: BCL:0;
 ARA:14566002|8060799006|8062599003|461199028|19110799003|7092599003|15080799006|440099028|3412199025|41001999003|102099032;
x-microsoft-antispam-message-info: =?utf-8?B?TGdsWW5pR1MwczB1Mm1ER0g1aVJ0ckR4Q3IybmpndEE3Y1k1MEZGZzZ1MFlq?=
 =?utf-8?B?R3ZZU2dxamx3RUFCUmZsS3lWU3lGQlFhZHNQSVppaXdDa2VtUlJYRHZaNUJu?=
 =?utf-8?B?QTZCM3U3NEVadjZ3VE9GcHV5dDc1NjlMR3pNZlQ2ak9GS3Bqak5nb1BTSnEw?=
 =?utf-8?B?U1NlaE1iUDJMWFNkWVgrZlQ3Z2I0NjNVbG1aVmc4VlBZODRuWnVYWGRMRU95?=
 =?utf-8?B?YmU2d3oyWmE3ZU1OTTBnVFBGdFhYU2J4TEwzeTNxdkZZUnNkUHp4MFA2STlG?=
 =?utf-8?B?QTZhL2l2cGVRWVhNZWJtSjNXWFVzY1IzY0t5TWhDWnVPbVUyVWZETVN4Njg2?=
 =?utf-8?B?bnpmMjBYZm9aMjk2THF6TUNlQWlhbTJZZTA2ZjY0Z2Z0TU1wN3ZwNnRmZGR1?=
 =?utf-8?B?eElMdnBoaTNDVHR1QnE4WTQ2WFN5L3BPSUlSNmZDRHMyQWhwdEV1UkpNajJL?=
 =?utf-8?B?S3hUdzdhRVZxSGtudTIvNGdqSWplYVRTcGlwcUZQZ0NoR2FBNXQ3Q0prOERH?=
 =?utf-8?B?SnJvMWNoWjZzU2UrbHhSVDU5MkVVVU9aNVB0ck13U3FZRE4vbk9kY252aURU?=
 =?utf-8?B?dmlmVUlmM3kzd2lwVUdiNVlRbzBZNkhVeG14Um9ZQzFDbTlObmxpOTI2SHpY?=
 =?utf-8?B?OHNwY3hxQytqc2I0LytOMTZTOVEvc3VtTS9HUHI5NVF5ZE5CZ3pERk5YeHU3?=
 =?utf-8?B?OUhTOEQ0c1MwNkQ5TkxzcmVYM0pWbndjeUdERmI1YTNhWm1ESFVrVFRpMDFG?=
 =?utf-8?B?S09jV2hLWW96eUNqU2NQR01Ub0lJVmhQSXFETmtLTTZRcFlKTVFFUjdUa0lh?=
 =?utf-8?B?dnVrYkFjUmM5VG9JZExxWmlic3B1eHk5bVovNXJOeXBvMnFVOFpQaW9HbVBa?=
 =?utf-8?B?TXkrM3BoaUVZQlVkZm42ZGhkejYvMGxFTUZKcEw2bGJSdE8vTERZY25Vd0ZB?=
 =?utf-8?B?b2dZUUQvNUc1cmxJVlNkSTdSMEFESWh3UHRhM1FXQU9TOVhDYjFhZUpjMnhB?=
 =?utf-8?B?TU42UlU5Tnd1MXE3Z0kzMll0aEV3ZXUzRTVpaEZjWHRGSFJ1YlYxZHJSbWJa?=
 =?utf-8?B?c0FTd2tCVjJPMjRrRnBxUE51anNHby83NkZoYkcrekI5Z0UvQTlsRVR3Y2sv?=
 =?utf-8?B?RlJsM2FTcG5lRldIdTF4UElqVGNTcEIrWGU0NVJmWXlJV0dQR2kxcGhqcXpQ?=
 =?utf-8?B?Ync4WDZ2MnVYM2JBL0NwZXJXTnlKTExmUDhZZFFzNjJobm9vaXhiSUFUNVp6?=
 =?utf-8?B?aCtwN3B0VGNib0hlOGVmV1BmKzhRYjVrMGxyUVQ5Y3ZjRjZweFVEL0hjV21t?=
 =?utf-8?B?UkpFZTJHT2F5a28xUEpKZXdRaVVGSm1GbVdjZ3lEYXpIQ0JTMWJKTWw1c05S?=
 =?utf-8?B?YkN2WXllZE5hVlRVc1JVaDBQNjBERjhZL0tUQWRuRy93c3IwKzZXemNpWlVa?=
 =?utf-8?B?OWxTZTVMRDY3aFFraGhRRXF1WFU3NnlHWTIzWDQ2eEdxN09iUy82RDdkYk9m?=
 =?utf-8?B?ZW9aSURIVWU0cDUweitGL3pDTXI3N05XYnVnOXhRTmFSRzl6aFovcjh0QkI1?=
 =?utf-8?B?Y3VtQT09?=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OXdlSzhiUzdhNEhZWUNwUnRoOTJ3TVBLOFNka1ZMdk4wOTJORUl4Z0JKSUV3?=
 =?utf-8?B?L1lHT3hTWUhhTWdHcFNWMmNpeHBHcXpNZ0g5alBTZWNMdlhybmZpSHZpOHJ2?=
 =?utf-8?B?V3F4WmFjeFVDMzRYeFZHNklGVEFoaWt1ZDM5dytsZ05tdlExZjlTbUYyZnFG?=
 =?utf-8?B?NHpOOVRCWmlQaldzVUY0SThJcVUxamUxWHFHTW1BeTdNaTU2U3Q3MnhHNWpo?=
 =?utf-8?B?Qkw2WXRMc3ZZMmpaRFZxV2dTaG1JZFlvcXluRXRCRzZtZHA3VVVnRGZ0STha?=
 =?utf-8?B?U3o5WW9CT0x2bi9FNFIxdTdzSXZOQ3M0S3dCWS9qYnJPdjdQQWFlTE1pUlRY?=
 =?utf-8?B?RHFva2pDbFErQzNOZkpsNGh4bS9vY1lHUHk4OWtZOXRKZGhPbUlwMUY0RHJv?=
 =?utf-8?B?WlRqcUsxVTVYeElkS0lrSU5KalVLMTBqSGlVWVUrZHlraW12RkJFQ3BMTUJj?=
 =?utf-8?B?UGRPSVVPTTN5U3pyK21QY25lKytvbTdHc0RvUjEyTnFZd3VIelJkK1BlY1M2?=
 =?utf-8?B?aFZnVUNkUlpCdnFXV0l1VXVqVS9QL2Zhd2IwNStka290SlIvSlRBQUNXb0Mv?=
 =?utf-8?B?NWJmT01MbEcvdkJ5QjlGMmR4VGcyNkdRYUpzTTQ4RERKVEI1YXM4ckM5RU40?=
 =?utf-8?B?NHluSS8zUDlQRlM4NFZndlhuRGdMdjRZYTBQcnZNZHRrQ09Qc3NzSTZqaEJS?=
 =?utf-8?B?b3JVbldvQ08zMmh3bFg5L1pua3R3bmRMVTR5TGtjWkVvNUl1WG9UUk9aU09W?=
 =?utf-8?B?WHI2QVB6TE04bUw3OUFleTdqR2FEZUI3VW5KQWNBR2JyTGpxUFhRbWEvczVJ?=
 =?utf-8?B?QTUrVFFFVlovdDgrUFdlS2EzTGhwdnFGWFdUVmorSytjTmFzSFc1QStiVG4w?=
 =?utf-8?B?QkEvM1hRRWpoN3YvTVFsUnJ5WllPRFdzSlUzM1hMZ25Cc0x3bmJ5RUZpello?=
 =?utf-8?B?ZGxxOWd3ZGZFYXdGODlQWEdvb29uOUtBRUdoeHE2ajhtWWZFS01iVGVOYUZY?=
 =?utf-8?B?NURxeXgzM2tSODdNWUcvdVdGUDhySTRSZnJDQThRTE92OVZQaURMc3dNdkN6?=
 =?utf-8?B?eHRvQ1JzUVJRVkp6VHpXRmdDNkkxY1p0SERyTDh2U0FEM3pyK2VnMnpsYzli?=
 =?utf-8?B?RTdMZjNUMkgyWTRSRnFGNGtFOC9JNEJxc0NjSlhRQ2RMSjd0V1BLTWhDQm84?=
 =?utf-8?B?Q2xIT2VNR05KRm5vb1huT0pVdDNHVTBRSG9EdVJiM0xEbmlZeHZvYUJ4czJH?=
 =?utf-8?B?VFFicDRGcEhHR2oxSm9VM2w3bXNXU3RLa2l3VG1zZnBxMWdrTzFQUTRTM3lN?=
 =?utf-8?B?UzZjMHN6SkFENFBYdEl4TVp2eEFoQmZLTVRyWEVOYVY3QlowYUNvN0tVempq?=
 =?utf-8?B?aWMwWnd6VWVqTUJ1K2s5MlY2NmZyYjl3QmV3cUJPMlZVMHExVmpadTBlRU5v?=
 =?utf-8?B?RzZRbkU5S0F2Y1VUa1MvV2U5WnR1KzFCTzJ1ejFDSlh0Y0lUZFdlNUZTd2VT?=
 =?utf-8?B?R1k1WHloYTB5OUNsTTdOWGFNNFVaZGZWaGZYT3drd3dLYncvOThVOEprSTcr?=
 =?utf-8?B?bXpQY3dLUk0vb1VNYzF2Wit6MTI3NGIwZ043cUxxakR6Q2J1UUFQR1VUWk1L?=
 =?utf-8?Q?U3B+NwyAC1XzqRocotPmKjvAhoAgAfbmr/W8yrsmkZLw=3D?=
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-92255.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 6383cbac-b36b-4a04-4575-08dd85b48a83
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2025 17:54:22.0439 (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: PH7P223MB1015
Subject: Re: [FFmpeg-devel] [RFC] Shaping the AVTextFormat API Surface
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/DM8P223MB036535B434099A2C30D82559BA862@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZmZtcGVnLWRldmVsIDxm
Zm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YNCj4gU3RlZmFubyBT
YWJhdGluaQ0KPiBTZW50OiBTb25udGFnLCAyNy4gQXByaWwgMjAyNSAxMjo0Mg0KPiBUbzogRkZt
cGVnIGRldmVsb3BtZW50IGRpc2N1c3Npb25zIGFuZCBwYXRjaGVzIDxmZm1wZWctDQo+IGRldmVs
QGZmbXBlZy5vcmc+DQo+IFN1YmplY3Q6IFJlOiBbRkZtcGVnLWRldmVsXSBbUkZDXSBTaGFwaW5n
IHRoZSBBVlRleHRGb3JtYXQgQVBJIFN1cmZhY2UNCj4gDQo+IE9uIGRhdGUgRnJpZGF5IDIwMjUt
MDQtMjUgMTM6MTY6NTkgKzAwMDAsIHNvZnR3b3JreiAuIHdyb3RlOg0KPiBbLi4uXQ0KPiA+IFRl
bGwgbWUgd2hhdCBJIHNob3VsZCBjaGVjayBmb3IgYW5kIHdoYXQgbm90IGluIHRob3NlIGZvdXIg
Z3JvdXBzIG9mDQo+ID4gZnVuY3Rpb25zIGFuZCBmb3IgdGhvc2UgdGhpbmdzIHdoaWNoIHNob3Vs
ZCBiZSBjaGVja2VkLCB0ZWxsIG1lDQo+IHdoaWNoDQo+ID4gd2F5IChyZXR1cm4gZXJyb3IsIHJl
dHVybiBzaWxlbnRseSwgYWxsb3cgc2VnZmF1bHQgb3IgdXNlIGFuDQo+IGFzc2VydGlvbikuDQo+
ID4NCj4gPiBUaGVuIEknbGwgYXBwbHkgdGhhdCB0byBhbGwgdGhvc2UgZnVuY3Rpb25zIGluIGEg
dW5pZm9ybSBhbmQNCj4gY29uc2lzdGVudA0KPiA+IHdheSB3aXRob3V0IGV2ZW4gYXJndWluZyBh
bmQgdGhlIGNhc2UgaXMgY2xvc2VkLg0KPiA+DQo+ID4gSSBqdXN0IGRvbid0IHdhbnQgdG8gbGVh
dmUgaXQgYWxvbmUgbGlrZSBub3cgd2l0aG91dCBjbGVhciBwYXR0ZXJucywNCj4gPiB0aGF0J3Mg
YWxsIPCfmIoNCj4gDQo+IEkgZG9uJ3QgcmVhbGx5IGhhdmUgYW4gYW5zd2VyLg0KDQouLi5zdGls
bCBieSBmYXIgdGhlIGJlc3Qgb25lLg0KDQoNCj4gUHJvYmFibHkgaXQncyBnb29kIHRvIHN0YXJ0
IGZyb20gdGhlDQo+IGRvY3MsIHNvIHRoYXQgd2UgaGF2ZSBhIGRlZmluaXRpb24gb2YgdGhlIHNl
bWFudGljcyBpbiBhZHZhbmNlLCBmb3INCj4gZXhhbXBsZSBzdGF0aW5nIHRoYXQgYSBwb2ludGVy
IHNob3VsZCBub3QgYmUgTlVMTCBhbmQgc28gb24gc28gdGhhdCBhdA0KPiBsZWFzdCB3ZSBrbm93
IHdoYXQgaXMgdG8gYmUgY29uc2lkZXJlZCB1bmRlZmluZWQgYmVoYXZpb3IuIEFzIG5vdGVkIGJ5
DQo+IE5pY29sYXMsIHRoZSBwYXR0ZXJuIGlzIGRlcGVuZGFudCBvbiB0aGUgZnVuY3Rpb24gYmVo
YXZpb3IgYW5kIG9uDQo+IHByYWN0aWNhbCBlcmdvbm9teSBjb25zaWRlcmF0aW9ucy4NCj4gDQo+
IEl0IGFsc28gd291bGQgYmUgbmljZSB0byBoYXZlIGEgZ29vZCBzZXQgb2YgZ3VpZGVsaW5lcy4N
Cg0KRXhhY3RseS4gVGhhdCdzIG9uZSBvZiB0aGUgdGhpbmdzIEkgd291bGQgbGlrZSB0byB3b3Jr
IG91dCBoZXJlLg0KDQoNClsuLl0NCg0KPiBUaGlzIG1pZ2h0IGZhaWwgaW4gc2V2ZXJhbCB3YXlz
OiBiaWtlc2hlZCBtaWdodCBiZSBOVUxMIG9yIGludmFsaWQNCj4gKGUuZy4gYSBwb2ludGVyIHRv
IGFuIHVucmVsYXRlZCBzdHJ1Y3R1cmUpLCBsZXZlbCBtaWdodCBiZSBpbnZhbGlkDQo+IChlLmcu
IG5lZ2F0aXZlIG9yID5NQVhfU0xJQ0VfTEVWRUwpIG9yIHRoZSBiaWtlc2hlZCBtaWdodCBjb250
YWluDQo+IGFscmVhZHkgdG9vIG1hbnkgc2xpY2VzLg0KPiANCj4gVGhlIGxldmVsIG1pZ2h0IGJl
IGNoZWNrZWQgYnkgdGhlIHByb2dyYW1tZXIsIHNvIHdlIG1pZ2h0IGRlY2lkZSB0bw0KPiBoYXZl
IGFuIGFzc2VydC4gQWJvdXQgdGhlIGNvdW50IGNoZWNrIGl0IGlzIHZhbGlkYXRlZCBmcm9tIHdp
dGhpbiB0aGUNCj4gZnVuY3Rpb24gKHNpbmNlIHdlIG5lZWQgdG8gYWNjZXNzIHRoZSBiaWtlc2hl
ZCBjb250ZXh0KSBzbyB3ZSB3YW50IHRvDQo+IHByb3ZpZGUgZmVlZGJhY2sgYW5kIGZhaWwuDQo+
IA0KPiBGb3IgYm90aCBvZiB0aGVzZSB0d28gZXhhbXBsZXMsIGRvaW5nIG5vdGhpbmcgZG9lcyBu
b3Qgc2VlbSBhIGdvb2QNCj4gaWRlYS4gVGhhdCdzIHByb2JhYmx5IG9ubHkgZ29vZCBpZiB3ZSB3
YW50IHRvIGVuYWJsZSBpZGVtLXBvdGVuY3kgb3INCj4gd2hlbiBvbmUgb2YgdGhlIHBhcmFtZXRl
ciBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgYSAibm9uZSIgYXJndW1lbnQuDQo+IA0KPiBGb3IgZXhh
bXBsZToNCj4gICAgaWYgKGNvbG9yID09IE5VTEwpIHsNCj4gICAgICAgIHJldHVybiAwOw0KPiAg
ICB9DQo+IA0KPiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIHNwZWNpZnkgdGhlIGJlaGF2aW9yIGlu
IHRoZSBkb2N1bWVudGF0aW9uLA0KPiBzaW5jZSB0aGF0IGRlZmluZXMgd2hhdCBpcyB0aGUgdW5k
ZWZpbmVkIGJlaGF2aW9yIGFuZCB0aGUgaW5wdXQNCj4gZXhwZWN0YWN0aW9ucy4NCg0KVGhpcyBh
bGwgbWFrZXMgc2Vuc2UgYW5kIHRoZSBwcmFjdGljYWwgcGFydCBpcyBub3cgdG8gYXBwbHkgdGhh
dCBraW5kDQpvZiBjb25zaWRlcmF0aW9ucyB0byB0aGUgaW5kaXZpZHVhbCBBUElzIHdlIGhhdmUu
DQoNClByb2JhYmx5IGl0J3MgYmVzdCB3aGVuIEkgc3RhcnQgYnkgbWFraW5nIGEgc3VnZ2VzdGlv
biBhcyBhIHN0YXJ0aW5nDQpwb2ludCwgdGhlbiB3ZSBjYW4gcmVmaW5lIGl0IGZyb20gdGhlcmU6
DQoNCg0KMS4gQVZUZXh0Rm9ybWF0dGVyIEltcGxlbWVudGF0aW9ucw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KDQpwcmludF9zZWN0aW9uX2hlYWRlcihBVlRleHRGb3JtYXRD
b250ZXh0ICp0Y3R4LCBjb25zdCB2b2lkICpkYXRhKTsNCnByaW50X3NlY3Rpb25fZm9vdGVyKEFW
VGV4dEZvcm1hdENvbnRleHQgKnRjdHgpOw0KcHJpbnRfaW50ZWdlcihBVlRleHRGb3JtYXRDb250
ZXh0ICp0Y3R4LCBjb25zdCBjaGFyICoga2V5LCBpbnQ2NF90KTsNCnByaW50X3N0cmluZyhBVlRl
eHRGb3JtYXRDb250ZXh0ICp0Y3R4LCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnZhbHVl
KTsNCg0KUnVsZXMNCg0KLSBhc3NlcnQgdGN0eCBhbmQga2V5DQotIGRhdGEgYW5kIHZhbHVlIGNh
biBiZSBudWxsDQoNCg0KDQoyLiBBVlRleHRXcml0ZXIgSW1wbGVtZW50YXRpb25zDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQoNCndyaXRlcl93OChBVlRleHRXcml0ZXJDb250ZXh0
ICp3Y3R4LCBpbnQgYik7DQp3cml0ZXJfcHV0X3N0cihBVlRleHRXcml0ZXJDb250ZXh0ICp3Y3R4
LCBjb25zdCBjaGFyICpzdHIpOw0Kd3JpdGVyX3ZwcmludGYoQVZUZXh0V3JpdGVyQ29udGV4dCAq
d2N0eCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IHZsKTsNCg0KDQpSdWxlcw0KDQotIGFzc2Vy
dCB3Y3R4DQotIHN0ciwgZm10LCB2bCAtID8NCg0KDQoNCg0KMy4gVGV4dEZvcm1hdCBBUEkNCj09
PT09PT09PT09PT09PT09DQoNCg0KYXZ0ZXh0X3ByaW50X3NlY3Rpb25faGVhZGVyKCp0Y3R4LCBj
b25zdCB2b2lkICpkYXRhLCBpbnQgc2VjdGlvbl9pZCkNCmF2dGV4dF9wcmludF9zZWN0aW9uX2Zv
b3RlcigqdGN0eCkNCmF2dGV4dF9wcmludF9pbnRlZ2VyKCp0Y3R4LCBjb25zdCBjaGFyICprZXks
IGludDY0X3QgdmFsKQ0KYXZ0ZXh0X3ByaW50X2ludGVnZXJfZmxhZ3MoKnRjdHgsIGNvbnN0IGNo
YXIgKmtleSwgaW50NjRfdCB2YWwsIGludCBmbGFncykNCmF2dGV4dF9wcmludF91bml0X2ludCgq
dGN0eCwgY29uc3QgY2hhciAqa2V5LCBpbnQgdmFsdWUsIGNvbnN0IGNoYXIgKnVuaXQpDQphdnRl
eHRfcHJpbnRfcmF0aW9uYWwoKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgQVZSYXRpb25hbCBxLCBj
aGFyIHNlcCkNCmF2dGV4dF9wcmludF90aW1lKCp0Y3R4LCBjb25zdCBjaGFyICprZXksIGludDY0
X3QgdHMsIGNvbnN0IEFWUmF0aW9uYWwgKnRpbWVfYmFzZSwgaW50IGlzX2R1cmF0aW9uKQ0KYXZ0
ZXh0X3ByaW50X3RzKCp0Y3R4LCBjb25zdCBjaGFyICprZXksIGludDY0X3QgdHMsIGludCBpc19k
dXJhdGlvbikNCmF2dGV4dF9wcmludF9zdHJpbmcoKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgY29u
c3QgY2hhciAqdmFsLCBpbnQgZmxhZ3MpDQphdnRleHRfcHJpbnRfZGF0YSgqdGN0eCwgY29uc3Qg
Y2hhciAqa2V5LCBjb25zdCB1aW50OF90ICpkYXRhLCBpbnQgc2l6ZSkNCmF2dGV4dF9wcmludF9k
YXRhX2hhc2goKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgY29uc3QgdWludDhfdCAqZGF0YSwgaW50
IHNpemUpDQphdnRleHRfcHJpbnRfaW50ZWdlcnMoKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgdWlu
dDhfdCAqZGF0YSwgaW50IHNpemUsDQogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
Zm9ybWF0LCBpbnQgY29sdW1ucywgaW50IGJ5dGVzLCBpbnQgb2Zmc2V0X2FkZCkNCg0KDQpSdWxl
cw0KDQotIGFzc2VydCB0Y3R4IGFuZCBrZXkNCi0gaG93IGFib3V0IHVpbnQ4X3QgKmRhdGEsIHVu
aXQgYW5kIHZhbCBpbiAuLnByaW50X3N0cmluZz8NCg0KDQoNCjQuIFRleHRXcml0ZXIgQVBJDQo9
PT09PT09PT09PT09PT09PQ0KDQphdnRleHR3cml0ZXJfY29udGV4dF9vcGVuKEFWVGV4dFdyaXRl
ckNvbnRleHQgKipwd2N0eCwgY29uc3QgQVZUZXh0V3JpdGVyICp3cml0ZXIpDQphdnRleHR3cml0
ZXJfY29udGV4dF9jbG9zZShBVlRleHRXcml0ZXJDb250ZXh0ICoqcHdjdHgpDQphdnRleHR3cml0
ZXJfY3JlYXRlX3N0ZG91dChBVlRleHRXcml0ZXJDb250ZXh0ICoqcHdjdHgpDQphdnRleHR3cml0
ZXJfY3JlYXRlX2F2aW8oQVZUZXh0V3JpdGVyQ29udGV4dCAqKnB3Y3R4LCBBVklPQ29udGV4dCAq
YXZpb19jdHgsIGludCBjbG9zZV9vbl91bmluaXQpDQphdnRleHR3cml0ZXJfY3JlYXRlX2ZpbGUo
QVZUZXh0V3JpdGVyQ29udGV4dCAqKnB3Y3R4LCBjb25zdCBjaGFyICpvdXRwdXRfZmlsZW5hbWUp
DQphdnRleHR3cml0ZXJfY3JlYXRlX2J1ZmZlcihBVlRleHRXcml0ZXJDb250ZXh0ICoqcHdjdHgs
IEFWQlByaW50ICpidWZmZXIpDQoNCg0KUnVsZXMNCg0KLSAqKnB3Y3R4OiBsZWF2ZSB1bmNoZWNr
ZWQNCi0gd3JpdGVyOiByZXR1cm4gQVZFUlJPUihFSU5WQUwpDQotIGF2aW9fY3R4OiBhc3NlcnQN
Ci0gb3V0cHV0X2ZpbGVuYW1lOiBsb2cgZXJyb3IgYW5kIHJldHVybiBFSU5WQUwNCi0gYnVmZmVy
OiBhc3NlcnQgPw0KDQoNCjUuIEdlbmVyYWwNCj09PT09PT09PT0NCg0KQXNzZXJ0aW9ucw0KDQpX
aGljaCBhc3NlcnQgLSBhdl9hc3NlcnQwKCkgPw0KDQoNClB1YmxpYy9Qcml2YXRlDQoNCg0KTG9v
a2luZyBhdCBBVlRleHRGb3JtYXRDb250ZXh0IC0gc2hvdWxkIHdlIHN0YXJ0IHRoaW5raW5nIGFi
b3V0IA0Kd2hpY2ggbWVtYmVycyB3ZSB3b3VsZCAoYXQgbGVhc3QgbG9naWNhbGx5KSBjb25zaWRl
ciBwdWJsaWMgYW5kDQp3aGljaCBhcyBub24tcHVibGljPw0KDQoNClRoYW5rcywNCnN3DQoNCg0K
DQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpm
Zm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8v
ZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUs
IHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5v
cmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==