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 ESMTP id E613140467 for ; Sun, 24 Apr 2022 22:04:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6C69668B24B; Mon, 25 Apr 2022 01:04:09 +0300 (EEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11olkn2095.outbound.protection.outlook.com [40.92.18.95]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D92CC68B23C for ; Mon, 25 Apr 2022 01:04:07 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RGDDFU37BVA/fYPufd+4P124n0KZgnewps0/k9aYi9zEtTb3zdqDqOfrtTD2/wGKd4cGJbtHv4EQu9pJEigEoAMQgUttTZ9X8o2OWAwkJbrcrAmgEUHjh2JgTjQ2i2sVNYRRP1WTuQ43nvyxBGx2gSZP/Qe2nTzRBSQ5iv2Ey2kWcQRWcq0yWM/LWOHxBmK0LNGlamrH7CqzexZo8KXPe2AHGo+LFDmrv8QKgYsSAyG/e4EN2W9ztRitwax7cvICQbpOHXwrzZYUS5ZLBfJVbLOSI5WQ9L4NHDE94qGP0GQjK0Ajz1FaKtE/93H1Xd7MBMz7pu6yWqKd8GmxNG1rMQ== 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=yQgIbCUgAo5wDvKAvWflOd0nct54XAWq7PPJYXGoZHU=; b=iRA5OaYrqRJiwG+Ni5TMiQku08Av++CWfAtXgHoC83klZRpLdCBfttG/jYb1Sw2SEA1wv50D2PooPKtvRdcXNL+CWU5wvO5Zh6A6UoZmx5/EcZnIx9PsQVZPijXjdU8gka40S9LGEH2vxRT8TsXngdPavyWXvfiwOksW/ret+tw/QEm4GHDSZzT6o6gQXpYi1hDKOXrJzZM58zk/1/Md26dlt5+llvWdhtqsalGCsO7QUUjVmS+utwWR9S8ukEEfO9W5HFLmnR+qgjl2YW5AWxJlajuSuYgdpXZf8XUoUiddY4qjyC/A42CfUxcmfltE0DEBHjC9OkuBq/gY1KvpaA== 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=yQgIbCUgAo5wDvKAvWflOd0nct54XAWq7PPJYXGoZHU=; b=HAZjTBHDSAj8GV1gzo1dHlOtlCWjyq8bCNisHumusaAJixgHvdScDmrip6FRxPwHUbe1bhdt5H/qQZpBZqbO6loBwr72ZOnH3bLGft2fHcI11HYnZo9Qg9bEcahWCSoT2ey8z/VHZEjvtL6123ffdp02o9pFwL0GRbQoNOlyKGlLT1CRKy4IpzbUnPCVU16ihbmJP8uEYrx6xBFJZb83dQXHcc+vMqVnItWcR1LKYHIPqN4E65GciYa4liyvJpr3CVN6GMyW6IdaFT8ypH9LSYJPV+vmVmRq7gbvDZtsqJAyGLYyFB5mo/I9BejRHYLL46pxL7XUmh1nlVF3TuJSHg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BL3P223MB0260.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:34c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.13; Sun, 24 Apr 2022 22:04:02 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::7472:6f83:eeb:45e3]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::7472:6f83:eeb:45e3%7]) with mapi id 15.20.5186.021; Sun, 24 Apr 2022 22:04:02 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v11 1/6] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi Thread-Index: AQHYV9QNP/PRify4SkipW5U65/+zkqz/hzrQ Date: Sun, 24 Apr 2022 22:04:02 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [knr0UdnkEDUfWc69Etqck1Tm2RptHtaq] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b6082e4d-60b8-4811-d01a-08da263e57a5 x-ms-traffictypediagnostic: BL3P223MB0260:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Da2nPGoHqQnNMq6cQ4iUWsaAI5L5vIZCEYjqHC27aTe0y7IBulofBFP0DqP61kirEcQOU8eiXj7QnGvEUSl+tRibhZXj8ghLfI+Le1QyNd8X0JH9GuYgV1uRjGJXrz5TqMl42pbYZzik4eV2PTrcjhwAiF4ugTrZxR+pCgWO71cpki7qGNJdLgQ13x33nUAw/TC9EYpFY+VbEQuXRFvexyB//8KFAOcob56omF+R5o3kdqRMqeY7OgTu9vjtEN1PzrejSBMoVRVOA0nJWfYYVBLTz4teh/9HFL2NQBg4Q8MYd488NNPClGqWZzLT5kjAr1VF87jfauNF4nHzKUx+wpnWhnEK/LZDT+lz03eNBSq0ScbZmTRkH1OlyB7STviwKsip1RfI92RAS6C1zg1aQNnlU9x0JRlvdjd6fqVzS9lCyI9yGoAbXm3V2xNCfh7IMeVnSDJLMvwsEji/T/tmbADtEAy3u32cBcIIuY7EOLuma+NttiA42T67vEmepQSq3hBsJ7NpWjwXWYtaEX3839LWwfSNfTh5cpXfqXux532EUEb26DeqnYosZLZMRxiLHJRRVb43sGt1YYHGFbTS7xNJLOqMvv78o9sxd1dL84ngfuTGbiJdL/rpR1f+fbFOlDwsE/aj3GetOta+iE1BePaa0JLehwZlkkXYFWSDYZI= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RjlISUY4UWZJNTNUUDJlR2J3RFBsOFRUZ1JTeDV1Qmo4V1RoQU9WcjU1L0w4?= =?utf-8?B?aEJVb3ZyWjZUK0s0ckt1RTA0dk93TDFkWTJMbWVoN1RIcU8xeGxzTEo0WEh0?= =?utf-8?B?bUlnR1BpM1VzanVYNlh5YUlTbFlmNXIrZzNGWU1ocGs1SmM4SjhMSFkvRWNs?= =?utf-8?B?aTJyRmpZdEhudWkvNTRCTHpQSTZaMks4dmxNZDRmQ3lIQ1hFOTBycDBDODdW?= =?utf-8?B?NXI1bEJwQlNVWCtxRUZFdENmRHlib0dwdlRZWjJvYlBzWHN0OW8wR21xQUtW?= =?utf-8?B?and2YkR1Ui9xUWdjOWJuQ0V5bElHbm5mN2lZaXZOQmtXWnBZR1hVaW1Fc0xH?= =?utf-8?B?SWJBUWh2MVhVL0x3YlZDQnRyS212N1ZjSFNVUzZaWmd0QXdNUEZISHltQ1hz?= =?utf-8?B?WUtkajdGOG40QnJadTdSczBVdDJwbG9zS2N4YnVCOTNkRk1EcjZ1Y3l1Qk0r?= =?utf-8?B?T3E4bERHdG9BMkJibGgrY0dWK0dwRXJNaDZveFFVQWRCOWJJL3NxcWZJeGpI?= =?utf-8?B?aS9xTWRCSUxoM0lDYUpPL3N5QkdyckRXRTF4OXJHREtScXZsY0J1YWVHT2c4?= =?utf-8?B?aGxySDM5MDE0c3U3ZWtBOWxXTk90VkhkVHJoajVvNE1PWGx3NklIMVc0Q2Va?= =?utf-8?B?aU5yQ0VMcVpxU1dQd3RMbUh6RXFIR3prTEdiSHZQZkRJS2ExZnprWDlxdXpi?= =?utf-8?B?YlZiK21KTkUwU0ZUSVN6d2RMS0UxWU5nK09jODU0UmQ1NmRuOFcvY1o4NEow?= =?utf-8?B?UmRnRkdoQVIrZDhGZmpyRy9EUlRGQU9ScndGYmtlSDdneWdGL2s4Uk9kNDAz?= =?utf-8?B?anhPZ3lHVXVBNm54SWttTHBBZ2VINlhCT21oVDBXWWUrVS95M25VVXVYd3hj?= =?utf-8?B?NzkxV1VsbFFQdkliU0xFaExwdExFSUY1S1JOTkNmMC9GV01sY2VyUFRjenlG?= =?utf-8?B?SGkzUVJKSVZub3laSzlQZkxRdVV3ejByODdOdDFWRmc2Wi9Rd1hDdDNHYk0y?= =?utf-8?B?MHF1ZWN2RlRNR2VBU1pQM256cGhFUjNNMnpCQWlYR1ZUUyt3TWxDWVZsNC9V?= =?utf-8?B?Q2l3UGdhUUxJbDdVVWNtT3FNUjRWRURLSTIrNUdxK2pRYXJ2dGluSWpKcHRI?= =?utf-8?B?S0pJYStyYzd1UzV2VTBPUEw3cDA0L2hYQWd1RUt3OGM4K29MbUl4V3BnK1Er?= =?utf-8?B?ZzBEQzlVTWRGL3g2NTcxZzVyblJsdW00bExvcER0UllLUEtvdVh4SWE3R2ly?= =?utf-8?B?U3hxM3ZyR3EvaHV0bDJlWFFwZkhodE9aWWNMc28xRWxwV1pKb2FzV0Y3VTc1?= =?utf-8?B?dmRhQ2R0dmM1d1VSZUJlNERmdU9xWGNQSXZIcmxaYVRZSDNQU0lIRFJkK2Nl?= =?utf-8?B?ZTNrVUUxOWhTT1M0bkY4cHJSUXcyYTZqVEllMm81QTdFWCsxVkFkWGFVVWFT?= =?utf-8?B?UGpKcDREVGlkY0VqcUNNTVdqbHdPR3Uwb2RNdmZZTDNtOGtHTTZjWU95R2l6?= =?utf-8?B?V0xvdThkL2ZFcXo0bzg2S0hJVEFvMGU5SUxUT1dEYWtCVjVUSG1PemZrN0Nr?= =?utf-8?B?SkI4QS9qTDFNdGs3cnFOTk1lNE1EbElvNld6ZWlxRjZodmpGL212VHg3YkY1?= =?utf-8?B?RTY0b25qclpLTUE1ZnA2NFFGRTBPYW5GWElKWVdOcHBSSkpXQy9UQThnTnAx?= =?utf-8?B?T3duQnhKSExNM1NkQy9EcVhBQTNIaDUrUFpTMHBBWHd6RE5BbmRsVE1DTC8x?= =?utf-8?B?UFlmTUpTSXFBbVM1NURqa01SRjRxdTd0Q01RTnIxRkM4R2wvZnRFc2d3bzlX?= =?utf-8?B?eXJhUjEvcDVabHBaZlBhYitrUWQzSmxwUkVzaytSNkl3U2ZtWWFRR2twQWcw?= =?utf-8?B?MVZaM2dmZnJtUkQwZ3hVZWFRVzl5dHR1dk1HaHd1WENUaFUzWVV1SWY2Q2xL?= =?utf-8?Q?tbPbsP104kM=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.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: b6082e4d-60b8-4811-d01a-08da263e57a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2022 22:04:02.6346 (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: BL3P223MB0260 Subject: Re: [FFmpeg-devel] [PATCH v11 1/6] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi 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 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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBmZm1wZWctZGV2ZWwgPGZmbXBl Zy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFsZiBPZiBuaWwtDQo+IGFkbWlyYXJp QG1haWxvLmNvbQ0KPiBTZW50OiBTdW5kYXksIEFwcmlsIDI0LCAyMDIyIDI6MDggUE0NCj4gVG86 IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQo+IFN1YmplY3Q6IFJlOiBbRkZtcGVnLWRldmVsXSBb UEFUQ0ggdjExIDEvNl0NCj4gbGliYXZ1dGlsL3djaGFyX2ZpbGVuYW1lLmg6IEFkZCB3aGNhcnRv dXRmOCwgd2NoYXJ0b2Fuc2kgYW5kDQo+IHV0Zjh0b2Fuc2kNCj4gDQo+ID4gMS4gUGF0Y2ggMy82 IC0gUmVwbGFjZSBMb2FkTGlicmFyeUV4QSB3aXRoIExvYWRMaWJyYXJ5RXhXDQo+ID4gV2hhdCdz IHRoZSBwb2ludCBpbiBtYWtpbmcgY2hhbmdlcyB0byBsaWJyYXJ5IGxvYWRpbmc/IFdoYXQgZG9l cyBpdA0KPiBmaXg/DQo+IA0KPiANCj4gDQo+IEZyb20gdGhlIGNvbW1pdCBodHRwczovL2ZmbXBl Zy5vcmcvcGlwZXJtYWlsL2ZmbXBlZy1kZXZlbC8yMDIyLQ0KPiBBcHJpbC8yOTU1NzEuaHRtbDoN Cj4gDQo+IC4uLiB0aGUgcGF0aCBsZW5ndGggbGltaXRhdGlvbiBpcyBvbmx5IGxpZnRlZCBmb3Ig ZmlsZSBBUElzIHRoYXQgcGFzcw0KPiBwYXRocyBhcyB3Y2hhcl90Li4uDQoNCllvdSBub3JtYWxs eSBkb24ndCBsb2FkIGxpYnJhcmllcyBmcm9tIHN1Y2ggbG9uZ3MgcGF0aHMuIEFzIEkgaGFkIHdy aXR0ZW4gDQpwcmV2aW91c2x5IChidXQgc3RyaXBwZWQgb2ZmIGJ5IHlvdSk6DQoNCkNvdWxkIHlv dSBwbGVhc2UgZ2l2ZSBhbiBleGFtcGxlIG9mIGEgc2l0dWF0aW9uIHRoYXQgdGhpcyBpcyBzdXBw b3NlZCANCnRvIGZpeD8NCg0KV2hpY2ggZGxsIGRvIHlvdSB0aGluayB3b3VsZCBuZWVkIHRvIGJl IGxvYWRlZCBmcm9tIGEgbG9uZyBwYXRoPw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCj4gPiAyLiBQYXRjaGVzIDUv NiBhbmQgNi82IC0gQWRkIEZ1c2lvbiBNYW5pZmVzdA0KPiA+IC4uLg0KPiA+IEJvdGggb2YgdGhl c2UgbWFuaWZlc3QgYXR0cmlidXRlcyBhcmUgYWZmZWN0aW5nIHRoZSBydW50aW1lIGJlaGF2aW9y DQo+IG9mDQo+ID4gYW4gYXBwbGljYXRpb24gcnVubmluZyBvbiBXaW5kb3dzIC0gYnV0IG9ubHkg c3RhcnRpbmcgZnJvbSBhIGNlcnRhaW4NCj4gPiBPUyB2ZXJzaW9uLg0KPiA+IC4uLiB5b3Ugd291 bGQgbmVlZCB0byBjaGVjayB0aGUgb3BlcmF0aW5nIHN5c3RlbSB2ZXJzaW9uDQo+ID4gYmVmb3Jl IHVzaW5nIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdSBhcmUgcHJvdmlkaW5nIHBhcmFtZXRlcnMgaW4g dGhlDQo+ICJyaWdodCINCj4gPiB3YXkgLSBJJ20gbm90IHN1cmUgd2hldGhlciB0aGF0IHdvdWxk IG1ha2UgbXVjaCBzZW5zZS4NCj4gDQo+IA0KPiBUaGUgc2FtZSBjYW4gYmUgc2FpZCBhYm91dCBl LmcuIERpcmVjdFggMTEgaGFyZHdhcmUgYWNjZWxlcmF0aW9uLA0KPiB3aGljaCBpcyBhdmFpbGFi bGUNCj4gb25seSBzdGFydGluZyB3aXRoIFdpbmRvd3MgNzsgYW5kIHlvdSBoYXZlIHRvIGNoZWNr IE9TIHZlcnNpb24gYmVmb3JlDQo+IHByb3ZpZGluZw0KPiBwYXJhbWV0ZXJzIHRoYXQgZW5hYmxl IGl0LiBEb2VzIG5vdCBtZWFuIGltcGxlbWVudGluZyB0aGF0IGZlYXR1cmUNCj4gbWFkZSBubyBz ZW5zZSwNCj4gc2luY2UgaXQgbWFkZSBGRm1wZWcgaW5jb25zaXN0ZW50IHdpdGggcHJldmlvdXMg dmVyc2lvbnMgb2YgV2luZG93cy4NCj4gQ29uc2lzdGVuY3kNCj4gDQo+IHdpdGggdGhlIGdyZWF0 ZXN0IGNvbW1vbiBkZW5vbWluYXRvciBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UuDQoNCllvdXIg ZXhhbXBsZSBpcyBtYWtpbmcgYSBjb21wYXJpc29uIHRoYXQgaXMgbm90IHF1aXRlIHZhbGlkIElN Ty4NClRoZSB1c2Ugb2YgRGlyZWN0WCAxMSBpcyBhIHZlcnkgc3BlY2lmaWMgZmVhdHVyZSBhbmQg dGhhdCBzdXJlbHkgDQppbnZvbHZlcyBjaGVja2luZyBvZiBhdmFpbGFiaWxpdHkuDQoNCkJ1dCBm aWxlIElPIGlzIGEgZnVuZGFtZW50YWwgZmVhdHVyZSB3aGVyZSBhIGNvbW1vbiBhbmQgcHJlZGlj dGFibGUgDQpiZWhhdmlvciBpcyBjcnVjaWFsLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQo+ID4gMy4gQWxsIFBh dGNoZXMgeC82IC0gUmVtb3ZlIE1BWF9QQVRIIGxpbWl0DQo+ID4gVGhlIHB1bmNoIGxpbmUgc291 bmRzIGNvbXBlbGxpbmcuIEJ1dCBob3cgaXMgdGhlIGN1cnJlbnQgc2l0dWF0aW9uDQo+IGFuZA0K PiA+IHdoYXQgZXhhY3RseSB3b3VsZCBiZSB0aGUgYmVuZWZpdD8NCj4gDQo+IEFsbCBwYXRjaGVz IHdpdGggdGhhdCBsaW5lIHJlcGxhY2UgTUFYX1BBVEgtc2l6ZWQgYnVmZmVycyB3aXRoDQo+IGR5 bmFtaWNhbGx5LWFsbG9jYXRlZA0KPiANCj4gYnVmZmVycyBvZiBwb3RlbnRpYWxseSBhcmJpdHJh cnkgc2l6ZS4gSWYgYXBwbGljYXRpb24gY29udGludWVzIHRvIHVzZQ0KPiBmaXhlZC1zaXplIGJ1 ZmZlcnMsDQo+IA0KPiBpdCdzIG5vdCBsb25nIHBhdGggYXdhcmUsIHJlZ2FyZGxlc3Mgb2YgdGhl IG1hbmlmZXN0Lg0KDQpUaGF0J3MgdHJ1ZSwgYnV0IHRoZSBmaWxlIElPIGluIGZmbXBlZyBkb2Vz IG5vdCB1c2UgTUFYX1BBVEggYnVmZmVycywNCnNvIGl0J3Mgb25seSBhYm91dCB0aG9zZSBmZXcg c3BlY2lmaWMgY2FzZXM6DQoNClBhdGNoIDIvNjogUmVtb3ZpbmcgdGhlIGZpeGVkLXNpemUgYnVm ZmVyIGlzIHN1cmVseSBhIGdvb2QgY2hhbmdlLA0KICAgICAgICAgICBidXQgY2FuJ3QgeW91IGp1 c3QgY29tcGxldGVseSByZW1vdmUgdGhlIGNoYXJzZXQgDQogICAgICAgICAgIGNvbnZlcnNpb24g YW5kIHVzZSB0aGUgc2FtZSBmaWxlIElPIHBhdHRlcm5zIHRoYXQgZmZtcGVnDQogICAgICAgICAg IGlzIHVzaW5nIGV2ZXJ5d2hlcmUgZWxzZT8NClBhdGNoIDMvNjogc2VlIDEuDQpQYXRjaCA0LzY6 IFNlZW1zIHRvIGJlIHBvaW50bGVzcyBiZWNhdXNlIHlvdSBjYW5ub3QgcnVuIGZmbXBlZy5leGUg ZnJvbQ0KICAgICAgICAgICBhIGxvbmcgcGF0aCBhbnl3YXkuIE5laXRoZXIgd2l0aCBjbWQgbm9y IHdpdGggcG93ZXJzaGVsbC4NCiAgICAgICAgICAgRXZlbiBpZiB5b3UgY291bGQsIGl0IHdvdWxk IGJlIGEgcHJldHR5IGV4b3RpYyB1c2UgY2FzZS4NCg0KDQo+IEl0IGlzIG5laXRoZXIgcHJlZGlj dGFibGUgbm9yIHJlbGlhYmxlLiBQbGVhc2UgY2hlY2sNCj4gaHR0cHM6Ly9nb29nbGVwcm9qZWN0 emVyby5ibG9nc3BvdC5jb20vMjAxNi8wMi90aGUtZGVmaW5pdGl2ZS1ndWlkZS0NCj4gb24td2lu MzItdG8tbnQuaHRtbA0KPiANCj4gZm9yIHRoaW5ncyBsaWtlIOKAnEkgYWN0dWFsbHkgZXhwbG9p dGVkIHRoaXMgYmVoYXZpb3VyIHRvIGNyZWF0ZQ0KPiBhcmJpdHJhcnkgbmFtZWQgcGlwZXMgZnJv bSB0aGUgQ2hyb21lIHNhbmRib3ggYXdoaWxlIGJhY2su4oCdDQoNCkkga25vdyBhYm91dCB0aGF0 LiBCdXQgaXQncyBzb21ldGhpbmcgdGhhdCBpcyBwb3NzaWJsZSBub3cgYWxyZWFkeQ0KYW5kIHdv dWxkIGJlIHN0aWxsIHBvc3NpYmxlIGFmdGVyIGFwcGx5aW5nIHlvdXIgcGF0Y2hzZXQuDQpTbywg dGhhdCdzIG5vdCBhIHJlbGV2YW50IHBvaW50IGluIHRoaXMgcmVnYXJkLg0KDQoNCj4gPiAxLiBX aW5kb3dzIHZlcnNpb24gbmVlZHMgdG8gYmUgPj0gMTkwMw0KPiA+IChmb3IgYmVpbmcgYWJsZSB0 byBoYXZlIGJvdGggYXR0cmlidXRlcyBpbiBlZmZlY3QpDQo+IEZvciBhbGwgaW50ZW50cyBhbmQg cHVycG9zZXMsIHZlcnNpb25zIG9mIFdpbmRvd3MgPCAxOTAzIGhhdmUgRU9MZWQuDQo+IEV4Y2Vw dGlvbnM6DQo+IA0KPiAtIFdpbmRvd3MgOC4xIHdpbGwgRU9MIGluIEphbnVhcnkgMjAyMywNCj4g LSBMVFNCL0xUU0MgYnJhbmNoZXMgb2YgV2luZG93cyAxMCBiZWZvcmUgMjFIMi4NCg0KQW5kIHRo ZSBzZXJ2ZXJzPyBBbmQgYWxsIHRob3NlIHdoaWNoIGFyZSBzdGlsbCB1c2luZyBvbGRlciANCnZl cnNpb25zP2ANCg0KPiA+IDMuIEEgcmVnaXN0cnkga2V5IG9yIGdyb3VwIHBvbGljeSBuZWVkcyB0 byBiZSBzZXQgb24gV2luZG93cyB0bw0KPiBlbmFibGUgdGhpcw0KPiA+IMK0IChpbiBib3RoIGNh c2VzLCBhZG1pbmlzdHJhdGl2ZSBwZXJtaXNzaW9uL1VBQyBpcyByZXF1aXJlZCB0byBzZXQNCj4g aXQpDQo+ID4gNC4gRXZlbiB3aGVuIHJlZ2lzdHJ5IGtleSBvciBncm91cCBwb2xpY3kgaXMgc2V0 LCBpdCBtaWdodCBzdGlsbCBiZQ0KPiBwZW5kaW5nDQo+ID4gYSByZWJvb3QNCj4gDQo+IElzIGl0 IGEgYmlnIGRlYWwgdG8gY2hhbmdlIGEgcmVnaXN0cnkgYW5kIHJlYm9vdD8NCg0KWWVzIGl0IGlz LiBFc3BlY2lhbGx5IHdoZW4geW91IGRvbid0IGtub3cgdGhhdCBpdCdzIG5lZWRlZCBvciB3aGV0 aGVyDQppdCdzIG5lZWRlZCBvciB3aGVuIGl0IGlzIG5lZWRlZC4NCkFsc28gaXQgcmVxdWlyZXMg YWRtaW5pc3RyYXRpdmUgcGVybWlzc2lvbnMgd2hpY2ggbm90IGV2ZXJ5Ym9keSBoYXMuDQpGdXJ0 aGVyIGl0J3MgYSBzZXJpb3VzIGNoYW5nZSB0byBPUyBiZWhhdmlvciBhbmQgeW91IGNhbm5vdCBl eHBlY3QgdGhhdCANCmFsbCB1c2VycyBhcmUgZWR1Y2F0ZWQgZW5vdWdoIGZvciBiZWluZyBhYmxl IHRvIG1ha2UgdGhpcyBkZWNpc2lvbiANCmFuZCBiZSBjb25maWRlbnQgdGhhdCBpdCB3b24ndCBo YXZlIGFueSB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cy4NCg0KPiA+IE9uIHRoZSBvdGhlciBzaWRl LCB0aGVyZSdzIGEgcmlzayBvZiByZWdyZXNzaW9ucyBieSBhZGRpbmcgdGhvc2UNCj4gbWFuaWZl c3QNCj4gPiBhdHRyaWJ1dGVzLg0KPiANCj4gQWRkaW5nIGFueXRoaW5nIHJpc2tzIHJlZ3Jlc3Np b25zLCBob3cgbWFuaWZlc3QgaXMgc3VwcG9zZWQgdG8gYmUNCj4gZGlmZmVyZW50IGZyb20gYW55 IG90aGVyIHBhdGNoPw0KDQpUaGF0J3Mgd2hhdCBJIHRyaWVkIHRvIGV4cGxhaW4uICJBbnkgb3Ro ZXIgcGF0Y2giIG1ha2VzIGEgY2hhbmdlDQphZnRlciB3aGljaCB5b3Uga25vdyB0aGF0IHRoZSBj aGFuZ2UgaGFzIGJlZW4gbWFkZS4NCg0KQnV0IGFkZGluZyB0aG9zZSBhdHRyaWJ1dGVzIHdpbGwg aW1wb3NlIGNoYW5nZXMgdGhhdCB3aWxsIGJlIGVmZmVjdGl2ZQ0KdW5kZXIgY2VydGFpbiBjb25k aXRpb25zIG9ubHkgYW5kIGFib3V0IHdoaWNoIG5laXRoZXIgdGhlIHVzZXIgbm9yIHRoZQ0KYXBw bGljYXRpb24gImtub3dzIiB3aGV0aGVyIHRoZXkgYXJlIGVmZmVjdGl2ZSBvciBub3QuDQoNCj4g PiBJIHdvbmRlciB3aGV0aGVyIGl0IHdvdWxkbuKAmXQgYmUgYSBiZXR0ZXIgaWRlYSwgdG8gc2lt cGx5IGF1dG8tYWRkDQo+IHRoaXMgcHJlZml4DQo+ID4gaW4gdGhlIGZmbXBlZyBmaWxlIGhhbmRs aW5nIGNvZGUgaWY6DQo+IA0KPiBFdmVyeSBjb21tYW5kIGxpbmUgYXJndW1lbnQgdGhhdCBzdXBw bGllcyBhIHBhdGggbmVlZHMgdG8gYmUgdXBkYXRlZC4NCj4gRXZlcnkgZmlsdGVyIHdpdGggYSBm aWxlIGFyZ3VtZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQuDQoNCk5vLiBUaGVyZSdzIGFyZSBjb21t b24gZmlsZSBBUElzIHdoZXJlIHN1Y2ggY2hhbmdlIGNvdWxkIGJlIG1hZGUuDQoNCkJlc3QgcmVn YXJkcywNCnNvZnR3b3Jreg0KDQpQUzogWW91ciBsaW5lIGJyZWFrcyB3ZXJlIGFsbCBkb3VibGVk LiBQbGVhc2UgY2hlY2sgYmVmb3JlIHJlcGx5aW5nLg0KDQoNCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4K