From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id B302C4DCE8 for ; Sun, 2 Mar 2025 19:44:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 432E568DF5F; Sun, 2 Mar 2025 21:44:50 +0200 (EET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11olkn2098.outbound.protection.outlook.com [40.92.18.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BCB4B68DDF6 for ; Sun, 2 Mar 2025 21:44:38 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QESLMSTgG9VMT5Lo1PcRqzxXATdIWCIQNUxCifCo74ArZbNXwaWSgIA97Yrp+gPnWy7f0JtXTZGUzQjjOexAaBWRphDDkmWrF+K6mo6dCV5BQ841glwK15tjG0m6oAW5oEg120JzjIXRZN7btG0JAo5Og/q+DAD/PdfElJV3tuN+JVQFq0+DNumheFk6GacI752buu1S3KV6f9n+vTI0qQ4TfPifgHyEqIYPrP6ZgiQF77ZoelEB0pBegoop/hp4dkEWpFnPPC9ay9zEngZkYsmHgROSTtpQaLThuPzoVEund0KH4bZFDomQDPgYYSOf5+AEe5lOxVvMHD78Rru5qA== 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=ERxaZMw9d/9NZRXffJ3AcEBJYA5xx+hG+Vp9vYIUMeI=; b=JMpoB7WosteXpc7hYsiRYKLLWiRRcV2FJH9KJ3fZdjhA7EFd3EC57heSGbleaz961O6gzfeqGKMzvQpFS5KRBiAOXkViJo71DFvEiMYAV2/e270D6t/KWdaKcu6kJxQ7qf2RaN7DvWcqhR0mDg7YStteUXtBjugHcUf8b5Y1SMeLWH7FkgIU7/luMTldObG9LPLY5EDJkc27d+bt98GeobsUUiNpi3IRPW2h+cmEhMvteTg1OiGinNSkWw0nawdAa5/Sh3d1LaIObCF1/A8j17M3RyyeBJYGvGbxT6c+tS0JkgLY5pzRMqbqVMraPg8kI7/0QNpiJdbGmDGCrRAvYA== 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=ERxaZMw9d/9NZRXffJ3AcEBJYA5xx+hG+Vp9vYIUMeI=; b=n0bkkm78iSBi3HpNwpHnA/vTq175RHCRvP2yPcAbGoTFF5AC9eHyIKYv4MANyaoUUEoJZkPWj80i+rLPmNP3pHlixjGA5V5JAWjtkYLo3ZPhfNd26heG7zZQ0Rjd5QKOMfdhc8pGktgVwSH69OWjK3RYLUhErBICjguR6opQNljVDvCYUhE0aunIj6vi1Mk7EF2EmZzAOjQY07p5B7SoNbKFU3H2ZZcxQhkWaOaVxkbxS5XXHep9RH8EGLgcuxUrjK/9J12nqCJzrSZ/6rbiDkuUD6DvUe3hAdeulwRnnjEqDQZATTXbotL2nfnf/P90axTQwXEQpxsVXAcZZjazzQ== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by PH7P223MB1156.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:31a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.25; Sun, 2 Mar 2025 19:44:35 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%7]) with mapi id 15.20.8489.025; Sun, 2 Mar 2025 19:44:35 +0000 From: Soft Works To: Stefano Sabatini , FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c Thread-Index: AQHbipEFizx1C9jbWEO+DATMb/mrbbNgI0uAgAAVOzA= Date: Sun, 2 Mar 2025 19:44:34 +0000 Message-ID: References: <6239813ba0e293bd427cecf8437aadef778ea3ee.1740823324.git.ffmpegagent@gmail.com> In-Reply-To: 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_|PH7P223MB1156:EE_ x-ms-office365-filtering-correlation-id: 577cf3bc-ae56-4d9b-7395-08dd59c2a8f9 x-microsoft-antispam: BCL:0; ARA:14566002|12121999004|19110799003|8060799006|461199028|8062599003|7092599003|15080799006|10035399004|4302099013|440099028|3412199025|102099032|1602099012; x-microsoft-antispam-message-info: =?utf-8?B?YkZLQ2JHbE14dkNDdkdES29iWHVBaEpuOGhWTnBXT29HcWlzazB2ZlZ1M29l?= =?utf-8?B?M3Q2ZHdyTGwvOVZReUlaUXlWYUVaYUhGVWdWdkNrZ3BGa3czaWNNUE5Mbks4?= =?utf-8?B?WGI3YlJEZnUwc292dWFJZnEzWXBTMTFFak1OZERianRsZXpySnVPTWMySlVw?= =?utf-8?B?SUxPdWtxV2s4K29pbXVaN1ZjWTBjVjJneXBZRDRtZzZ0UTJFQVpmZWI5MUpG?= =?utf-8?B?RDUza0t1djBpU2NzN3JzNTFYQ2ZZN1ZuUEJ5WTBRWUxoUnhpeWJ1NDdaMndS?= =?utf-8?B?ZWJ4WEtKS0VEd1F4UUtmaStEV29sYWhKMFRoV1lnZnVYS1dsN0FpMHVrcU5D?= =?utf-8?B?UlNHM2RkaUNFT1hxU21vL0tQYktxdkUrbndpVnE5QmZXbmw4Qzd2VHk5YTUv?= =?utf-8?B?b2xzd2hqbC9TUk45WENFcXNuaFNVdVdZZEhVbHkyNlBRcURuUmQ2UTBnbU1y?= =?utf-8?B?SEtKU24yZHNRZFhEazR0SWR5QjcrU0dZeTlKQzVwbjMvWmgrdmYrNGIwcXln?= =?utf-8?B?ZVpNbnA0T0dNaldtYzQ5VzhvVjVGajRsNWkwU3cyRzBYQXRXVGRnQTZ6cjg5?= =?utf-8?B?TFZ4UnYvOE9rTFdEYVpmalNkNlg3OElhcWN4WnVKSFM5Q3dhWWFPbW1OYnVw?= =?utf-8?B?QWxNSjBkUjNhaFdXUEZhdjYzUzJpTHhiQ2VZY25PQW9mRlBtTkErZVJobXNs?= =?utf-8?B?SlhzTWl5WWJ2SDdKREF4NnF3RjFUSDF2Rk9tNXlYanR6cG1FRFV5TUE3bjRD?= =?utf-8?B?UnoyejYyNzU4c0w0REtMeGFTM0t4dlhXbG11cXBGMm41cnQ5ZHllYklKejJw?= =?utf-8?B?dDVhUGQ3aE9abFpMMDlvUkJjT0RlYkI4UU1iY1dvS3VHZ3IxVThQbTg0cGll?= =?utf-8?B?TFNMN3MwV3QwT3FhWEVUMmN0ZlFTQVA3Zy9Lb2Qxa1cxU3lleGlKdHY3WUdW?= =?utf-8?B?Zlg5SC9sbEpUMnV5S1hKWWxkQUxGSEZZMFVPMXBZNm12VWpwbDJaVEFLcEZM?= =?utf-8?B?VHNXYStBTzJvMmZtcjBxd1IzQjRFOW9nVDdRNk93ZTJUdlh4dDJIOHNNRzVF?= =?utf-8?B?b015VFdXeDErTmRjTEtURk5ERmFOU1hKQk9KekpRQnNrNW9OQyt0OUl5NTJY?= =?utf-8?B?YWxYbFJRdU9OdVF0emZMbUFyckJIS09QYjI1Wjk5QTZXN05GUVA0S1R0UkVv?= =?utf-8?B?QnJpQzY3UFliTWluR29iTndZVzRjNURHNnNwUjQwdkxURWRScUQ2WmxjM0Fo?= =?utf-8?B?TGtFWU1FRnFHaGU5M1BtVEFJOTVxVnRaOHJMdmhta1JVRVBQb2Fmb3NGMVBi?= =?utf-8?B?K0Y3WWcvcW13TzhFVVhqOTc1b0RnUFpFcG9qenRpZjBWWThTaXNCeVJFaWw2?= =?utf-8?B?ZW5tbFVXZUNoWFdOTHVSNGVlUzBleEVUMlJveEhPK3pWRHJhNHAyV1ZZbnZG?= =?utf-8?B?ZjBWdHdqeGFsYlcvR3hpZ3lBcncwOHVHM2JHN1ozZlZkSjlhRmY0eXZEYnox?= =?utf-8?B?UlZ3ZlM1TUdsdUZDeTFoeDExQVo3WFJ2Qm5ETXhMZmM5SmFaUzYzRDk1djZP?= =?utf-8?B?dXN2Y0NWWDltREZ4dFA3ckhodklWVW8vZ000SXBFeUFRMlhFclZQQkEvOVcr?= =?utf-8?Q?tO9B+oD+Ezuiu3YKq9WySe4GiTssSDkYkyF5F26GbW5c=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VDJvbnh6OVBmVDZNcllaSUpBN2JORmpQQXgrTncwakZ4Ui9tQWVMLy8vbnVt?= =?utf-8?B?VXNQdytSRVVodVlhMlZUUGNEVXRMdzhPdmx0TlFkZGpIU3ZPQis1OTgxY1hj?= =?utf-8?B?S29BNit6Nkh3cG85MWorWUs3dE9QMEFIbzdXWitESWd2Qll3Yzl2OVhtVlpB?= =?utf-8?B?VzhwTmNqdnB0MmF1elpmSUpXNVhRbXJGazE1MjY5cUJ3STliS0U3a3BZRkNj?= =?utf-8?B?RzZqUkZFVDZ5QlU3Sm16Mzlnb0FDWGQ2dkdnckZ2TldUWG9XY01iV3ZpdFdn?= =?utf-8?B?aEFRYkNVWGFpOHY5OWlyNTJrdVorMmRMbXlmUTJwTml6WnJjelhnWUFxeEFP?= =?utf-8?B?UG81S0JSZmUvNFY1SHRBcjhOOExnSTc2bHo2NzRWYkpEaE96OVlwQVJBUWNN?= =?utf-8?B?VVg4UE43UEtobUtFUG1ML0xVQTFEUkRlaVZlTTJsRjlIVHdaSzdITGlHOEZy?= =?utf-8?B?NWY2WnA5RWxvYVFJTURvZnNSS0dEbnB3dFMvTHlhYVRIOW9oMnhmc0JhcFlY?= =?utf-8?B?QnFpSEdJa0lzNjJmS01Pc1RLOHU3MGFQa29aSXhFV0hCdXlndzRCeWZYbEZ2?= =?utf-8?B?L3htblVobDI5V0pISXUzUGFnL0FvTE5wdkZlSW1VSGd4UDBodStBSWwyTWlI?= =?utf-8?B?S05VQWUzMFB1MDM1alFWbnNhejZOQUhoTktoelUwWDBmVld2NVdTS2tpSEt5?= =?utf-8?B?dmZIWGJ2L0hGRUVZR0RyVHR0b3dIY3lQVEhTa2Viclg2ZC96T3poUmx6cmdn?= =?utf-8?B?OWJpUkxUazZlckp3MDdLZkQwcCtWRitBN2hqYjlGRDlNdlFqQmxIQkNHaCsw?= =?utf-8?B?V0dTeFQ4MDdFSnJ4Z3JiT1gzVksxVWpvNURaQVROelhXMDkrUnVwekp0TC9n?= =?utf-8?B?UFZsNnV1QjJoeVFGWjA2eTZWdEM0VGNWQS80d2ZCbXJFY3JHNjM5QjF5bTBL?= =?utf-8?B?cFJTNjhkZUR2S0Z0VzYyNy9RNVpvZmJvMFBlRzUyeFhzbkRqZENBQVRGdzFx?= =?utf-8?B?YnF6NnlHS0dqTVI2emZRNnBDMjRDZWprSFhqcFFMbnNWYTRQZk85R29XRkY1?= =?utf-8?B?QUdURytHVjFZejRuOXp4djBlaVlJcXN5UCtDREpyc0w1U2VjNGFGb2VvUS92?= =?utf-8?B?UkFqN1czVEZ2cGlPSTFlZHNhME8reWU5cUIvZmllWjZNR1lmMkgxY0pBTmRy?= =?utf-8?B?ZThoN0xLOEdvbGVSVDZjNmRiV014NkJpMDhmOTdmd0pYT2J2Z08rZnBOekxj?= =?utf-8?B?QlU1YXpwOWpPZHQ5V3M5aWZLS2dHem1SY2dxNFVrR1JodTdhTVkzOFpSVGtK?= =?utf-8?B?d2tPVkFSam9FR3NCTkFjdzd0ZFVLbS9EN281VHI2UWYydGF6ZHZaUDdWRmdn?= =?utf-8?B?Rlh4NFZPRm05anF3aHNsZG1Tb2RSYk1GNytoMXVMSDg0S05yVkJMRlROWkZs?= =?utf-8?B?Nmd6YURnaDhLdGhsaG1sK1NjUEtqTTJqS2ptMk9NaXMrZXFJUnVuYzBqc1pW?= =?utf-8?B?L1ZrRll1dEVTNWRoTFBod0FoTVNha1FsaWFvUXBnUFc3ZjhBVmJ5eEprVGdy?= =?utf-8?B?UHl5bWFkTHowRUc4cGRVTkxBVWk4dkk0TDhDQ2lqY1NHbFNnOGQrcHFZUDYw?= =?utf-8?Q?nnNnhr40yrabEdqaOHiGGA88hu2i7x5K5yJ8qQ/MuWKM=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: 577cf3bc-ae56-4d9b-7395-08dd59c2a8f9 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2025 19:44:34.9701 (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: PH7P223MB1156 Subject: Re: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Soft Works , Andreas Rheinhardt Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU3RlZmFubyBTYWJhdGlu aSA8c3RlZmFzYWJAZ21haWwuY29tPg0KPiBTZW50OiBTb25udGFnLCAyLiBNw6RyeiAyMDI1IDE4 OjU1DQo+IFRvOiBGRm1wZWcgZGV2ZWxvcG1lbnQgZGlzY3Vzc2lvbnMgYW5kIHBhdGNoZXMgPGZm bXBlZy1kZXZlbEBmZm1wZWcub3JnPg0KPiBDYzogU29mdCBXb3JrcyA8c29mdHdvcmt6LWF0LWhv dG1haWwuY29tQGZmbXBlZy5vcmc+OyBzb2Z0d29ya3oNCj4gPHNvZnR3b3JrekBob3RtYWlsLmNv bT47IEFuZHJlYXMgUmhlaW5oYXJkdA0KPiA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29t Pg0KPiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIHYzIDEvN10gZmZ0b29scy90 ZXh0Zm9ybWF0OiBFeHRyYWN0DQo+IGFuZCBnZW5lcmFsaXplIHRleHRmb3JtYXQgYXBpIGZyb20g ZmZwcm9iZS5jDQo+IA0KPiBIaSwNCj4gDQo+IEknbGwgaGF2ZSBhIGxvb2sgYXQgdGhpcyBpbiB0 aGUgd2Vlay4gVGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB3aGljaCBJDQo+IHdhbnQgdG8gZG91Ymxl Y2hlY2sgKHRoZXJlIGlzIHNvbWUgYWQtaG9jIGFwcGxpY2F0aW9uIGxvZ2ljIHdoaWNoDQo+IG1p Z2h0IGJlIGJyb2tlbiB3aGVuIGdlbmVyYWxpemluZyB0aGlzKSwgYnV0IEkgbGlrZSB0aGUgb3Zl cmFsbA0KPiBkaXJlY3Rpb24gb2YgdGhpcyBjaGFuZ2VzZXQuDQoNCkhpIFN0ZWZhbm8sDQoNCnRo YW5rcyBhIGxvdCBmb3IgeW91ciBpbnRlcmVzdCBpbiB0aGlzIGNoYW5nZXNldC4NCg0KSSB0aGlu ayBJIGtub3cgd2hhdCB5b3UgYXJlIHRhbGtpbmcgYWJvdXQgd2l0aCByZWdhcmRzIHRvIHBvc3Np YmxlIGJyZWFrYWdlIPCfmIouDQoNCkluIHRoaXMgY2hhbmdlc2V0LCBJIHdhbnRlZCB0byBrZWVw IHRoZSBjaGFuZ2VzIGNvbXBhY3QgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgbGluZXMgd2hpY2gg bmVlZHMgdG8gYmUgcmV2aWV3ZWQuIEJ1dCB0aGVyZSdzIGEgcHJlY2VkaW5nIHBhdGNoc2V0IA0K DQoiW0ZGbXBlZy1kZXZlbCx2MiwwLzgsUkZDXSBhdnRleHRmb3JtYXQ6IFRyYW5zZm9ybSB0ZXh0 IHdyaXRpbmcgaW50byBhbiBpbmRlcGVuZGVudCBBUEkiIA0KDQp3aGljaCBhbGxvd3MgdG8gZm9s bG93IHRoZSBjaGFuZ2VzIHN0ZXAtYnktc3RlcC4NCg0KVGhlIHBhcnQgeW91IGFyZSBwcm9iYWJs eSB0YWxraW5nIGFib3V0IGlzIGRvbmUgaGVyZTogDQoNCmh0dHBzOi8vcGF0Y2h3b3JrLmZmbXBl Zy5vcmcvcHJvamVjdC9mZm1wZWcvcGF0Y2gvMDE0MTNkZmJjMGM2MGVlMTdjNzkzNzAwODZhYmI4 OGQ3ODU1MjkyOS4xNzQwNzE4OTM2LmdpdC5mZm1wZWdhZ2VudEBnbWFpbC5jb20vDQoNCg0KSSBo YXZlIHJlbW92ZWQgdGhlIHNwZWNpZmljIGZpZWxkcy4uDQoNCnVuc2lnbmVkIGludCBuYl9zZWN0 aW9uX3BhY2tldDsgLy8vPCBudW1iZXIgb2YgdGhlIHBhY2tldCBzZWN0aW9uIA0KdW5zaWduZWQg aW50IG5iX3NlY3Rpb25fZnJhbWU7ICAvLy88IG51bWJlciBvZiB0aGUgZnJhbWUgIHNlY3Rpb24g DQp1bnNpZ25lZCBpbnQgbmJfc2VjdGlvbl9wYWNrZXRfZnJhbWU7IC8vLzwgbmJfc2VjdGlvbl9w YWNrZXQgb3IgbmJfc2VjdGlvbl9mcmFtZQ0KDQouLmFuZCByZXBsYWNlZCBpdCB3aXRoIGEgMi1k aW1lbnNpb25hbCBhcnJheToNCg0KdW5zaWduZWQgaW50IG5iX2l0ZW1bU0VDVElPTl9NQVhfTkJf TEVWRUxTXTsgDQp1bnNpZ25lZCBpbnQgbmJfaXRlbV90eXBlW1NFQ1RJT05fTUFYX05CX0xFVkVM U11bU0VDVElPTl9NQVhfTkJfU0VDVElPTlNdOyA8PSBuZXcNCg0KV2hpbGUgbmJfaXRlbSBjb3Vu dHMgdGhlIHRvdGFsIG51bWJlciBvZiBjdXJyZW50IGl0ZW1zIGF0IGEgY2VydGFpbiBsZXZlbCwg bmJfaXRlbV90eXBlIGNvdW50cyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGZvciBlYWNoIHR5cGUgc2Vw YXJhdGVseS4NCg0KVGhlbiwgDQoNCldSSVRFUl9GTEFHX1BVVF9QQUNLRVRTX0FORF9GUkFNRVNf SU5fU0FNRV9DSEFQVEVSIA0KDQppcyByZXBsYWNlZCB3aXRoIA0KDQpURVhURk9STUFUX0ZMQUdf U1VQUE9SVFNfTUlYRURfQVJSQVlfQ09OVEVOVA0KDQphbmQgaW5zdGVhZCBvZiBjaGVja2luZyBm b3IgdGhlIHNwZWNpZmljIElEIChTRUNUSU9OX0lEX1BBQ0tFVFNfQU5EX0ZSQU1FUyksIHRoaXMg aXMgZG9uZSB3aXRoIGEgbmV3IGZsYWcgKFNFQ1RJT05fRkxBR19OVU1CRVJJTkdfQllfVFlQRSku IEFsbCB0aGF0IGNvbWJpbmVkIGFsbG93cyB0byBhY2hpZXZlIHRoZSBzYW1lIHJlc3VsdCBhcyBi ZWZvcmUgKHNlcGFyYXRlIG51bWJlcmluZyBvZiBtaXhlZCBhcnJheSBjb250ZW50IHNlY3Rpb25z KS4NCg0KDQpHZW5lcmFsbHksIGl0IHdhcyBkb25lIGluIGEgcmVmYWN0b3Jpbmcgd2F5IChub3Qg YSByZXdyaXRlKSwgc28gbm90aGluZyBzaG91bGQgaGF2ZSBnb3R0ZW4gbG9zdCwgb25seSB0aGUg b3V0cHV0IHdyaXRlcnMgYXJlIG5ldyAoYXZpb3dyaXRlciwgc3Rkb3V0d3JpdGVyLCBidWZmZXJ3 cml0ZXIpLg0KDQoNCg0KPiANCj4gT24gZGF0ZSBTYXR1cmRheSAyMDI1LTAzLTAxIDEwOjAxOjU4 ICswMDAwLCBzb2Z0d29ya3ogd3JvdGU6DQo+ID4gRnJvbTogc29mdHdvcmt6IDxzb2Z0d29ya3pA aG90bWFpbC5jb20+DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBzb2Z0d29ya3ogPHNvZnR3b3Jr ekBob3RtYWlsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZmZ0b29scy90ZXh0Zm9ybWF0L2F2dGV4dGZv cm1hdC5jICB8IDY3MQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBmZnRv b2xzL3RleHRmb3JtYXQvYXZ0ZXh0Zm9ybWF0LmggIHwgMTcxICsrKysrKysrDQo+ID4gIGZmdG9v bHMvdGV4dGZvcm1hdC9hdnRleHR3cml0ZXJzLmggfCAgNjggKysrDQo+IA0KPiA+ICBmZnRvb2xz L3RleHRmb3JtYXQvdGZfY29tcGFjdC5jICAgIHwgMjgyICsrKysrKysrKysrKw0KPiA+ICBmZnRv b2xzL3RleHRmb3JtYXQvdGZfZGVmYXVsdC5jICAgIHwgMTQ1ICsrKysrKysNCj4gPiAgZmZ0b29s cy90ZXh0Zm9ybWF0L3RmX2ZsYXQuYyAgICAgICB8IDE3NCArKysrKysrKw0KPiA+ICBmZnRvb2xz L3RleHRmb3JtYXQvdGZfaW5pLmMgICAgICAgIHwgMTYwICsrKysrKysNCj4gPiAgZmZ0b29scy90 ZXh0Zm9ybWF0L3RmX2pzb24uYyAgICAgICB8IDIxNSArKysrKysrKysNCj4gPiAgZmZ0b29scy90 ZXh0Zm9ybWF0L3RmX3htbC5jICAgICAgICB8IDIyMSArKysrKysrKysrDQo+ID4gIGZmdG9vbHMv dGV4dGZvcm1hdC90d19hdmlvLmMgICAgICAgfCAxMjkgKysrKysrDQo+ID4gIGZmdG9vbHMvdGV4 dGZvcm1hdC90d19idWZmZXIuYyAgICAgfCAgOTIgKysrKw0KPiA+ICBmZnRvb2xzL3RleHRmb3Jt YXQvdHdfc3Rkb3V0LmMgICAgIHwgIDgyICsrKysNCj4gDQo+IE5vdCBzdXJlIGlmIHRoaXMgaXMg ZmZtcGVnLWlzaCBidXQgd2UgbWlnaHQgbW92ZSB0aGUgZm9ybWF0cyB3aXRoaW4gYQ0KPiBkZWRp Y2F0ZWQgc3ViZGlyZWN0b3J5IHRvIG1ha2UgbW9yZSBhcHBhcmVudCB0aGUgY29yZS9jb21wb25l bnRzDQo+IGRpc3RpbmN0aW9uIC0gYW55d2F5IHRoaXMgaXMgbm90IGEgYmxvY2tlci4NCg0KSSds bCBkbyB0aGF0LCBidXQgaXQncyBub3QgcXVpdGUgY2xlYXIgaG93IHlvdSBtZWFuIGl0LCBhcyB0 aGV5IF9hcmVfIGluIGEgc3ViZGlyZWN0b3J5IGFscmVhZHkgKHRleHRmb3JtYXQpLg0KT3IgZG8g eW91IG1lYW4gdHdvIHNlcGFyYXRlIHN1YmRpcmVjdG9yaWVzICh0ZXh0Zm9ybWF0IGFuZCB0ZXh0 d3JpdGVycyk/DQoNCkFub3RoZXIgcXVlc3Rpb246IHNoYWxsIEkgYWRkIHlvdXIgbmFtZS9jb3B5 cmlnaHQgbGluZSBpbiB0aGUgaGVhZGVyIG9mIHRoZSB3cml0ZXIgZmlsZXM/IEl0J3Mgc3RpbGwg eW91ciBjb2RlIChJIGFzc3VtZSksIEkndmUganVzdCB0cmFuc2Zvcm1lZCBpdCBhIGJpdC4NCg0K VGhhbmtzDQpzdw0KDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcu b3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8g dW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1 ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==