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 3E26748712 for ; Fri, 15 Dec 2023 14:15:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8D5F668D0FF; Fri, 15 Dec 2023 16:15:47 +0200 (EET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2048.outbound.protection.outlook.com [40.92.65.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1916768D0DD for ; Fri, 15 Dec 2023 16:15:41 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zi2BPul2S8NDnUmY41gXPM6JIL7K4BkDNX90+/lHj73slYyqa9utEtWqIDn2mzJAjgFHvvab4ksHWIElNgsdloL40QQIRrvfbO3dIvjeXwJ9bLoMSI9BmBGxtkvpZurg5aF/xlfUskLy7Vfdyn+WS1EIjY/DXjRltCL75r264bOX0r5xYrwLWH6Nd4MbosSf8MXY6FuEvuQhSL3pUppbPUXRXCrK2QlpsAqmTJpJlSLrD+p6XWrL3axIdRPA5Lz5J2DqpjlQQriGU90h2/PBGtH1VyGQn4qhGkx8oW2ql2lWhWzvK8VVZJueq+soR/3QUX68SWwENThkhxb/uuUNKQ== 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=EskLduZwdLruBXJwTsdo6O8Bv1kDdl46h6RtOhqLhNE=; b=GXjnPKgSeKsXaFxw6M222nuXKS8qZ/7inRSoRuAXJKH89OUmnmeGNL7xEgDE79PRmTBwlRnHctR7/3ti7zhi0OLgUItrv88HIPvmy3WD97oKbXBusTYl2F+3zMLCjgKnA9SDDYxUkUXQV7DrtLM5JM4mZ3HVMnzolVB1TreCVLJpDXWIMCE/VRdWU3wVgr0fG+c/Zki+dAQANLDbmvXMTlyksfSfpISV+37fnMr/RiR35d0qc0btDBAeWaYGlLOuEw0CjCftIYHLKRNTZXyf1GWEDh/ZSo8IbktboLnbXPQEKlt16dvlCPz4GIjn6yFTVUD94uUK9OgaWObrCyfFLg== 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=EskLduZwdLruBXJwTsdo6O8Bv1kDdl46h6RtOhqLhNE=; b=QnGyyX7TP7aKbAOzoybytyaI/qEsqMlkSoDAUvyp7nl4vEkSjxK/XiNVCGbb7mXiNWL+nvnRqsvVnBSUDYImIlKvTLifht7Eh7td0Au37ClxPKCiC+soGXIEDkzLUW8G23GY/p2y4XMKwvKGqOCU4toq0qqIEy81VNNVCYTPIzpSxzfhyrKh099YyCY+dR+1XS1idPBK4Xfgn4CpCVknEiacdevpOPgdOm6cJWrcPOdVUansVqQfmlnf4iQn5Ov/qBwS1EcGnVUMgkZLQDAeamJGSqm/fWcpu5uw0j2awFPWfUzGCmiCkuyf5yZmfRPuWveV2o1Q8jqMr7JDeEtOIg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0059.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:3da::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.31; Fri, 15 Dec 2023 14:15:35 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f59c:9cff:a42d:bde]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f59c:9cff:a42d:bde%3]) with mapi id 15.20.7091.030; Fri, 15 Dec 2023 14:15:35 +0000 Message-ID: Date: Fri, 15 Dec 2023 15:17:07 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20231215072447.31761-1-thilo.borgmann@mail.de> <20231215072447.31761-2-thilo.borgmann@mail.de> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20231215072447.31761-2-thilo.borgmann@mail.de> X-TMN: [ZnSu2qXdFRGrkrVEPUarFqaZwX4XKnU+Wcfoq6xhGMQ=] X-ClientProxiedBy: FR0P281CA0012.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::17) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <953de783-5ce4-49c5-b243-75cb5408d554@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0059:EE_ X-MS-Office365-Filtering-Correlation-Id: fe336327-dbbb-4f5c-d6d0-08dbfd784db7 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnqBNoZncFkg0kFKTwJba9pAxCO4kCmlOXJvVyjd+Vf+lRr9PquPpPbw79w0DtVrd8qrSHKXsWnhhVZoGt1k60rG1BANZzm/x8lyHV8kxnWu57d5wvHIBqC0CwWeCc6XgXvsH0gZvIlTXuAY8lu6bVfB2YMrJoHJnIu7p03MZCiL+C3lw05MrZjBc20YD/xKO6bohtd1DblTZ+G131uVfsnN4hNJel42fnxUMsdVwVsGIjvbhOcGrioOk8dtJplFWQkgGyfSydTwgdikoArHzCPKR1qRRpl0GV7nsGJJdU4xQw28g2m4PC9v6bUQQEXh2Owoz2GJcnAXsQS1qCW2CQPS8RACifej+Xf1/dBQiD7Fwir9l8tO2trm5cwjCF9rpQxvJd8Wy7V/Ua5Qk8v5oF5ns/jE/odFBOJTq28jzvGRzEr1mjUBsFgxiCL5w6Ti5BbbEryMeM8tMUMR+/JMRNNIUT15hWTYgzkqr0VOdpu3Xi+tfBzKlyDWuJbwj5TK9kKDZZBxMfgeeXkAyRXtlaSXUL5FOheztHZ1CoMiuFZLhdytbpEXgQVX/87zXz0pdfPmz9X9TN+WlTtUL3/6oZqEPRyYbEb7h2nP+ELRAz1A2b22VoRgWYdlM2lIJpTyGOiuiLVpdRg1KS4XNdEoRammeFujPbOyUl8kGa7NxY/63zdnnkXX/HTMQUJQc4gxt5XJjaUu/Dr8AEZeU6xP6TwVuiZs92L5vXTIcvyGnrUQ8SZArk7n4nJk23owgr7D3y4= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wLU52EyzqOXi8vfcLVqIJQCKB4h+6hhaAZY+oewB1og3zHV/szz1fuRbHwsGsqkKVMPZxp8qEVRH+VE9hGUzMYP79ALDmxpxVB7jV5mWxLNrX5TxBw+pTpnQAF7bnZm97sFmw7Ze7ZODLHPBoyK8BltBrHZzkfbyLBkl0HvfAGW+33Zz902dekv1U6CKg33r04on+9ZzX44sfX02dddd7X1GfECE+e9n/fxGB1Q3M8dQYbdLobYs/U25ISr6LKSE05uAC6PoPuvgIbaxTkFSGZIUrlmkaZqiIuIbZQBR8bvDF4phVpWRgFxZ7egk3fwzPQNNBeBdG6x1VI0aJ3PeN5KvCC2qjh/A0q/tZW1GzrZ/1gSslGfJAreW2/zyWsPsQVQaZj6QHw2O8rGb7SHq9yJF3LA4FwPOaD5+JZyvNrZNf3GC+N3IMSo7QRCyXXU4tRrdWFpobrv1Nut2i40N+FAluEoPbsRuWP8PYZKkwoZ4ohydWh2JpV6pYQxlymiATQgt+e8k6/K89XuocRh80Q10OwB+hvGEbdioeWdFcfKjwhC51b/xpOmaDxsuiJWs X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dU91cnVBZ1hkeTlNemt5UUlYVDBFcUhJWUNYZVlpMVlVZDJyaDRaUm5KdlJt?= =?utf-8?B?ZFhpckVEOVN0dWJQMUx0ejBoNWgxQmZUYWFQOFBrVVk3bk5mRHJVZXZzcG1S?= =?utf-8?B?NnhYQkpaSjJWNlZ0NE5CdXh0MjdDdVA1QmdSbXdQSytDMVpBSTZuRFA0b0hO?= =?utf-8?B?MzB0cHhySHVlZHJrQTBkVVBlMUl4M0M2eTFNSk9qa3o0TTBwQlFNZ3lpRlhF?= =?utf-8?B?Y1ZEeDdVWnQ2MWdRcm13QUMvSGc5MkF2RE52bkpiYlkzYnZGRmxQRXU5NUwv?= =?utf-8?B?WTRwT1BuZVJMTllhY25MTFVLd1c1eGxHK2s4Tnh4NU1rNkJtNE9vdDVuekFu?= =?utf-8?B?NDEzOWt4SXQrV2FCbmYvMzZCRjg1WVh1Y3VXM3VmNmxJeW9UTEhnZFpzUWw5?= =?utf-8?B?RzVQOTJaMUJ3SHQ1dGN1TW9xTHBPWHpZVjdnL3dhZVAxQlhSdWVzci9paldS?= =?utf-8?B?M1hIYmV1SGJiRml5dVl0dTNFejdocys0T3hlTnNJdmZBNkxrbUpSL1gwRzNm?= =?utf-8?B?K0tIc1Z6UDNLNm95azFxMzd4VXZXeFJ4eXNJVWJCdEkzYy9OS1FFa3owdkhl?= =?utf-8?B?SERXM3I0NStncUM1a3pYQ0xUeVBRSFowcFNFM2xxVUQyRWFSZXFGRXN5bFdx?= =?utf-8?B?NGcwaDZ6eDRFUnVHUGJ1cXVBY2lrWHhPaVFaaFN6cUUwWE52QVFDYXJqRWl3?= =?utf-8?B?L2xoNUZ3MmFsQ1JYcUFPa2pXblZjOVR6RTJxRTJJaHVrazRpaGpIa1NXRDdB?= =?utf-8?B?WFlaTW50TnZmVllsZVZrTWMzQUdpQlIyenBQaDNKQkFKR1JKb3dmYi9kRnZp?= =?utf-8?B?UnlkaXJsRVV6aTNLRjlLSm01UVh0S0wrWFVxS1BONEQwa1BBclA4b0tyZG83?= =?utf-8?B?MHpkc1dRcEphZlEralJ5V3VNZHljc01sVFArZGR0TGpBN2I2dVJoSmx3SFVj?= =?utf-8?B?b2lNUm1majVyNlUzellXVjRSMHJZOTd5cHNRUjlxaG1HL2FhVFRNZld3UThR?= =?utf-8?B?VTQ3Kzc5QmJ4TXJIRS82Mll4MC84MkdLU2JjMWc4NkRPRlczQ2FuRUhNZnZk?= =?utf-8?B?dkxmUEszNHM5WTFKNFRqTTZDdXFmaVFvdGNwWjJEU2lSVXdVcCtyUVVCRmtx?= =?utf-8?B?bGxzWXdFUTZSc1Z1cW9nYVYwck9BTGp2clpuOUNzQWR2N1p6YlA4L2RIRlhZ?= =?utf-8?B?MDg0YWlFUkhVTHlXUTl1WmNYUlBVWVJnMkF3NVlkVjBFWStPOGFlK2NsM293?= =?utf-8?B?VWp6a1lDSlZHYUtaaEoydWovaEFQZERpN2hOSzBEb2Z0Rk5jNU9sSVRlNDhl?= =?utf-8?B?a3o0T2M1ejNyUDZSMERIQlNRZ0loREFzVE8vN0lsOHMrTUJoRlFJREhzM0Nl?= =?utf-8?B?K3BpSzNKQnMrUHhFbjF0cWd5Nkd3MDF4Y0xyNVJwaGM3NXdZN1dYYXU3bkZx?= =?utf-8?B?dkhvSWNxMmNNVGpHaG1lT3hkS1F6SVR0alhuR1ozOTllQXBWRncwYVBDc284?= =?utf-8?B?YWkxYkp3elAzWWhqSlR4QjF5K0VWcXJHaWFNQ1Z4dzNWbVN5bWxqLzU4Z1po?= =?utf-8?B?YjF2NEsxRlVxK2hnWG5hZGlodG0vTFVKR0hlM2YzbGRvMEdDMlhUL0JDZkhH?= =?utf-8?B?VWNLTm53djFMNFJneW5QZXl0T1YvdXJzbzhCelVpZTlwMVlXOTA2OXRPTGhT?= =?utf-8?Q?4sWZfM1DDoRe0E+TLZFP?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe336327-dbbb-4f5c-d6d0-08dbfd784db7 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2023 14:15:34.9449 (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: AM8P250MB0059 Subject: Re: [FFmpeg-devel] [PATCH 1/2] avfilter: Add fsync filter 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: VGhpbG8gQm9yZ21hbm4gdmlhIGZmbXBlZy1kZXZlbDoKPiAtLS0KPiAgQ2hhbmdlbG9nICAgICAg ICAgICAgICAgIHwgICAxICsKPiAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgIHwgICAxICsKPiAg ZG9jL2ZpbHRlcnMudGV4aSAgICAgICAgIHwgIDMzICsrKysrCj4gIGxpYmF2ZmlsdGVyL01ha2Vm aWxlICAgICB8ICAgMSArCj4gIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyB8ICAgMSArCj4gIGxp YmF2ZmlsdGVyL3ZlcnNpb24uaCAgICB8ICAgMiArLQo+ICBsaWJhdmZpbHRlci92Zl9mc3luYy5j ICAgfCAzMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDcgZmls ZXMgY2hhbmdlZCwgMzQyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3ZmX2ZzeW5jLmMKPiAKPiBkaWZmIC0tZ2l0IGEvQ2hhbmdl bG9nIGIvQ2hhbmdlbG9nCj4gaW5kZXggNjdlZjkyZWIwMi4uYTI1Mjc4ZDIyNyAxMDA2NDQKPiAt LS0gYS9DaGFuZ2Vsb2cKPiArKysgYi9DaGFuZ2Vsb2cKPiBAQCAtOSw2ICs5LDcgQEAgdmVyc2lv biA8bmV4dD46Cj4gIC0gYWFwIGZpbHRlcgo+ICAtIGRlbXV4aW5nLCBkZWNvZGluZywgZmlsdGVy aW5nLCBlbmNvZGluZywgYW5kIG11eGluZyBpbiB0aGUKPiAgICBmZm1wZWcgQ0xJIG5vdyBhbGwg cnVuIGluIHBhcmFsbGVsCj4gKy0gZnN5bmMgZmlsdGVyCj4gIAo+ICB2ZXJzaW9uIDYuMToKPiAg LSBsaWJhcmliY2FwdGlvbiBkZWNvZGVyCj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJ TlRBSU5FUlMKPiBpbmRleCAzOWIzN2VlMGM1Li40MjU3ZmNhZDk4IDEwMDY0NAo+IC0tLSBhL01B SU5UQUlORVJTCj4gKysrIGIvTUFJTlRBSU5FUlMKPiBAQCAtMzQzLDYgKzM0Myw3IEBAIEZpbHRl cnM6Cj4gICAgdmZfZGVsb2dvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICBKZWFuIERlbHZh cmUgKENDIDxqZGVsdmFyZUBzdXNlLmNvbT4pCj4gICAgdmZfZHJhd2JveC5jL2RyYXdncmlkICAg ICAgICAgICAgICAgICBBbmRyZXkgVXRraW4KPiAgICB2Zl9leHRyYWN0cGxhbmVzLmMgICAgICAg ICAgICAgICAgICAgIFBhdWwgQiBNYWhvbAo+ICsgIHZmX2ZzeW5jLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGhpbG8gQm9yZ21hbm4KPiAgICB2Zl9oaXN0b2dyYW0uYyAgICAgICAgICAg ICAgICAgICAgICAgIFBhdWwgQiBNYWhvbAo+ICAgIHZmX2hxeC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2zDqW1lbnQgQsWTc2NoCj4gICAgdmZfaWRldC5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYXNjYWwgTWFzc2ltaW5vCj4gZGlmZiAtLWdpdCBhL2RvYy9maWx0ZXJz LnRleGkgYi9kb2MvZmlsdGVycy50ZXhpCj4gaW5kZXggNmQwMGJhMmMzZi4uOWYxOWNiYTlkZiAx MDA2NDQKPiAtLS0gYS9kb2MvZmlsdGVycy50ZXhpCj4gKysrIGIvZG9jL2ZpbHRlcnMudGV4aQo+ IEBAIC0xNDY4MSw2ICsxNDY4MSwzOSBAQCBvcHRpb24gbWF5IGNhdXNlIGZsaWNrZXIgc2luY2Ug dGhlIEItRnJhbWVzIGhhdmUgb2Z0ZW4gbGFyZ2VyIFFQLiBEZWZhdWx0IGlzCj4gIAo+ICBAZW5k IHRhYmxlCj4gIAo+ICtAYW5jaG9ye2ZzeW5jfQo+ICtAc2VjdGlvbiBmc3luYwo+ICsKPiArU3lu Y2hyb25pemUgdmlkZW8gZnJhbWVzIHdpdGggYW4gZXh0ZXJuYWwgbWFwcGluZyBmcm9tIGEgZmls ZS4KPiArCj4gK0ZvciBlYWNoIGlucHV0IFBUUyBnaXZlbiBpbiB0aGUgbWFwIGZpbGUgaXQgZWl0 aGVyIGRyb3BzIG9yIGNyZWF0ZXMgYXMgbWFueSBmcmFtZXMgYXMgbmVjZXNzYXJ5IHRvIHJlY3Jl YXRlIHRoZSBzZXF1ZW5jZSBvZiBvdXRwdXQgZnJhbWVzIGdpdmVuIGluIHRoZSBtYXAgZmlsZS4K PiArCj4gK1RoaXMgZmlsdGVyIGlzIHVzZWZ1bCB0byByZWNyZWF0ZSB0aGUgb3V0cHV0IGZyYW1l cyBvZiBhIGZyYW1lcmF0ZSBjb252ZXJzaW9uIGJ5IHRoZSBAcmVme2Zwc30gZmlsdGVyLCByZWNv cmRlZCBpbnRvIGEgbWFwIGZpbGUgdXNpbmcgdGhlIGZmbXBlZyBvcHRpb24gQGNvZGV7LXN0YXRz X211eF9wcmV9LCBhbmQgZG8gZnVydGhlciBwcm9jZXNzaW5nIHRvIHRoZSBjb3JyZXNwb25kaW5n IGZyYW1lcyBlLmcuIHF1YWxpdHkgY29tcGFyaXNvbi4KPiArCj4gK0VhY2ggbGluZSBvZiB0aGUg bWFwIGZpbGUgbXVzdCBjb250YWluIHRocmVlIGl0ZW1zIHBlciBpbnB1dCBmcmFtZSwgdGhlIGlu cHV0IFBUUyAoZGVjaW1hbCksIHRoZSBvdXRwdXQgUFRTIChkZWNpbWFsKSBhbmQgdGhlIG91dHB1 dCBUSU1FQkFTRSAoZGVjaW1hbC9kZWNpbWFsKSwgc2VwZXJhdGVkIGJ5IGEgc3BhY2UuCj4gK1Ro aXMgZmlsZSBmb3JtYXQgY29ycmVzcG9uZHMgdG8gdGhlIG91dHB1dCBvZiBAY29kZXstc3RhdHNf bXV4X3ByZV9mbXQ9IkB7cHRzaUB9IEB7cHRzQH0gQHt0YkB9In0uCj4gKwo+ICtUaGUgZmlsdGVy IGFzc3VtZXMgdGhlIG1hcCBmaWxlIGlzIHNvcnRlZCBieSBpbmNyZWFzaW5nIGlucHV0IFBUUy4K PiArCj4gK1RoZSBmaWx0ZXIgYWNjZXB0cyB0aGUgZm9sbG93aW5nIG9wdGlvbnM6Cj4gK0B0YWJs ZSBAb3B0aW9uCj4gKwo+ICtAaXRlbSBmaWxlLCBmCj4gK1RoZSBmaWxlbmFtZSBvZiB0aGUgbWFw IGZpbGUgdG8gYmUgdXNlZC4KPiArQGVuZCB0YWJsZQo+ICsKPiArRXhhbXBsZToKPiArQGV4YW1w bGUKPiArIyBDb252ZXJ0IGEgdmlkZW8gdG8gMjUgZnBzIGFuZCByZWNvcmQgYSBNQVBfRklMRSBm aWxlIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0IG9mIHRoaXMgZmlsdGVyCj4gK2ZmbXBlZyAtaSBJ TlBVVCAtdmYgZnBzPWZwcz0yNSAtc3RhdHNfbXV4X3ByZSBNQVBfRklMRSAtc3RhdHNfbXV4X3By ZV9mbXQgIkB7cHRzaUB9IEB7cHRzQH0gQHt0YkB9IiBPVVRQVVQKPiArCj4gKyMgU29ydCBNQVBf RklMRSBieSBpbmNyZWFzaW5nIGlucHV0IFBUUwo+ICtzb3J0IC1uIE1BUF9GSUxFCj4gKwo+ICsj IFVzZSBJTlBVVCwgT1VUUFVUIGFuZCB0aGUgTUFQX0ZJTEUgZnJvbSBhYm92ZSB0byBjb21wYXJl IHRoZSBjb3JyZXNwb25kaW5nIGZyYW1lcyBpbiBJTlBVVCBhbmQgT1VUUFVUIHZpYSBTU0lNCj4g K2ZmbXBlZyAtaSBJTlBVVCAtaSBPVVRQVVQgLWZpbHRlcl9jb21wbGV4ICdbMDp2XWZzeW5jPWZp bGU9TUFQX0ZJTEVbcmVmXTtbMTp2XVtyZWZdc3NpbScgLWYgbnVsbCAtCj4gK0BlbmQgZXhhbXBs ZQo+ICsKPiAgQHNlY3Rpb24gZ2JsdXIKPiAgCj4gIEFwcGx5IEdhdXNzaWFuIGJsdXIgZmlsdGVy Lgo+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9NYWtlZmlsZSBiL2xpYmF2ZmlsdGVyL01ha2Vm aWxlCj4gaW5kZXggNjM3MjVmOTFiNC4uNjEyNjE2ZGZiNCAxMDA2NDQKPiAtLS0gYS9saWJhdmZp bHRlci9NYWtlZmlsZQo+ICsrKyBiL2xpYmF2ZmlsdGVyL01ha2VmaWxlCj4gQEAgLTMyMyw2ICsz MjMsNyBAQCBPQkpTLSQoQ09ORklHX0ZSRUVaRURFVEVDVF9GSUxURVIpICAgICAgICAgICArPSB2 Zl9mcmVlemVkZXRlY3Qubwo+ICBPQkpTLSQoQ09ORklHX0ZSRUVaRUZSQU1FU19GSUxURVIpICAg ICAgICAgICArPSB2Zl9mcmVlemVmcmFtZXMubwo+ICBPQkpTLSQoQ09ORklHX0ZSRUkwUl9GSUxU RVIpICAgICAgICAgICAgICAgICArPSB2Zl9mcmVpMHIubwo+ICBPQkpTLSQoQ09ORklHX0ZTUFBf RklMVEVSKSAgICAgICAgICAgICAgICAgICArPSB2Zl9mc3BwLm8gcXBfdGFibGUubwo+ICtPQkpT LSQoQ09ORklHX0ZTWU5DX0ZJTFRFUikgICAgICAgICAgICAgICAgICArPSB2Zl9mc3luYy5vCj4g IE9CSlMtJChDT05GSUdfR0JMVVJfRklMVEVSKSAgICAgICAgICAgICAgICAgICs9IHZmX2dibHVy Lm8KPiAgT0JKUy0kKENPTkZJR19HQkxVUl9WVUxLQU5fRklMVEVSKSAgICAgICAgICAgKz0gdmZf Z2JsdXJfdnVsa2FuLm8gdnVsa2FuLm8gdnVsa2FuX2ZpbHRlci5vCj4gIE9CSlMtJChDT05GSUdf R0VRX0ZJTFRFUikgICAgICAgICAgICAgICAgICAgICs9IHZmX2dlcS5vCj4gZGlmZiAtLWdpdCBh L2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYwo+IGlu ZGV4IGVkN2MzMmJlOTQuLmIzMmZmYjJkNzEgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmaWx0ZXIvYWxs ZmlsdGVycy5jCj4gKysrIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCj4gQEAgLTI5OSw2ICsy OTksNyBAQCBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfZnJlZXplZGV0ZWN0Owo+ICBleHRl cm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfZnJlZXplZnJhbWVzOwo+ICBleHRlcm4gY29uc3QgQVZG aWx0ZXIgZmZfdmZfZnJlaTByOwo+ICBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfZnNwcDsK PiArZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2ZzeW5jOwo+ICBleHRlcm4gY29uc3QgQVZG aWx0ZXIgZmZfdmZfZ2JsdXI7Cj4gIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9nYmx1cl92 dWxrYW47Cj4gIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9nZXE7Cj4gZGlmZiAtLWdpdCBh L2xpYmF2ZmlsdGVyL3ZlcnNpb24uaCBiL2xpYmF2ZmlsdGVyL3ZlcnNpb24uaAo+IGluZGV4IDc2 NDJiNjcwZDEuLjU5MzMwODU4YmQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmaWx0ZXIvdmVyc2lvbi5o Cj4gKysrIGIvbGliYXZmaWx0ZXIvdmVyc2lvbi5oCj4gQEAgLTMxLDcgKzMxLDcgQEAKPiAgCj4g ICNpbmNsdWRlICJ2ZXJzaW9uX21ham9yLmgiCj4gIAo+IC0jZGVmaW5lIExJQkFWRklMVEVSX1ZF UlNJT05fTUlOT1IgIDE0Cj4gKyNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lPTl9NSU5PUiAgMTUK PiAgI2RlZmluZSBMSUJBVkZJTFRFUl9WRVJTSU9OX01JQ1JPIDEwMAo+ICAKPiAgCj4gZGlmZiAt LWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2ZzeW5jLmMgYi9saWJhdmZpbHRlci92Zl9mc3luYy5jCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwLi4zY2U2ZjIyZDA2Cj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2xpYmF2ZmlsdGVyL3ZmX2ZzeW5jLmMKPiBAQCAtMCwwICsxLDMw NCBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjMgVGhpbG8gQm9yZ21hbm4gPHRoaWxv LmJvcmdtYW5uIF9hdF8gbWFpbC5kZT4KPiArICoKPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg RkZtcGVnLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4gKyAqIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsg Kgo+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiArICogTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoKPiArICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsg KiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKPiArICovCj4gKwo+ICsvKioKPiArICog QGZpbGUKPiArICogRmlsdGVyIGZvciBzeW5jaW5nIHZpZGVvIGZyYW1lcyBmcm9tIGV4dGVybmFs IHNvdXJjZQo+ICsgKgo+ICsgKiBAYXV0aG9yIFRoaWxvIEJvcmdtYW5uIDx0aGlsby5ib3JnbWFu biBfYXRfIG1haWwuZGU+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmlu Zy5oIgo+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2Vycm9yLmgiCj4gKyNpbmNsdWRlICJsaWJhdnV0 aWwvb3B0LmgiCj4gKyNpbmNsdWRlICJsaWJhdmZvcm1hdC9hdmlvLmgiCj4gKyNpbmNsdWRlICJ2 aWRlby5oIgo+ICsjaW5jbHVkZSAiZmlsdGVycy5oIgo+ICsKPiArI2RlZmluZSBCVUZfU0laRSAy NTYKPiArCj4gK3R5cGVkZWYgc3RydWN0IEZzeW5jQ29udGV4dCB7Cj4gKyAgICBjb25zdCBBVkNs YXNzICpjbGFzczsKPiArICAgIEFWSU9Db250ZXh0ICphdmlvX2N0eDsgLy8gcmVhZGluZyB0aGUg bWFwIGZpbGUKPiArICAgIEFWRnJhbWUgKmxhc3RfZnJhbWU7ICAgLy8gYnVmZmVyaW5nIHRoZSBs YXN0IGZyYW1lIGZvciBkdXBsaWNhdGluZyBldmVudHVhbGx5Cj4gKyAgICBjaGFyICpmaWxlbmFt ZTsgICAgICAgIC8vIHVzZXItc3BlY2lmaWVkIG1hcCBmaWxlCj4gKyAgICBjaGFyICpidWY7ICAg ICAgICAgICAgIC8vIGxpbmUgYnVmZmVyIGZvciB0aGUgbWFwIGZpbGUKPiArICAgIGNoYXIgKmN1 cjsgICAgICAgICAgICAgLy8gY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgbGluZSBidWZmZXIKPiAr ICAgIGNoYXIgKmVuZDsgICAgICAgICAgICAgLy8gZW5kIHBvaW50ZXIgb2YgdGhlIGxpbmUgYnVm ZmVyCj4gKyAgICBpbnQ2NF90IHB0c2k7ICAgICAgICAgIC8vIGlucHV0IHB0cyB0byBtYXAgdG8g WzAtTl0gb3V0cHV0IHB0cwo+ICsgICAgaW50NjRfdCBwdHM7ICAgICAgICAgICAvLyBvdXRwdXQg cHRzCj4gKyAgICBpbnQ2NF90IHRiX251bTsgICAgICAgIC8vIG91dHB1dCB0aW1lYmFzZSBudW0K PiArICAgIGludDY0X3QgdGJfZGVuOyAgICAgICAgLy8gb3V0cHV0IHRpbWViYXNlIGRlbgo+ICt9 IEZzeW5jQ29udGV4dDsKPiArCj4gKyNkZWZpbmUgT0ZGU0VUKHgpIG9mZnNldG9mKEZzeW5jQ29u dGV4dCwgeCkKPiArI2RlZmluZSBERUZJTkVfT1BUSU9OUyhmaWx0X25hbWUsIEZMQUdTKQoKV2h5 IGlzIHRoaXMgYSBtYWNybz8KCgogICAgICAgICAgICAgICBcCj4gK3N0YXRpYyBjb25zdCBBVk9w dGlvbiBmaWx0X25hbWUjI19vcHRpb25zW10gPSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ICsgICAgeyAiZmlsZSIsICAgInNldCB0aGUgZmlsZSBuYW1lIHRvIHVzZSBmb3IgZnJhbWUgc3lu YyIsIE9GRlNFVChmaWxlbmFtZSksIEFWX09QVF9UWVBFX1NUUklORywgeyAuc3RyID0gIiIgfSwg LmZsYWdzPUZMQUdTIH0sIFwKPiArICAgIHsgImYiLCAgICAgICJzZXQgdGhlIGZpbGUgbmFtZSB0 byB1c2UgZm9yIGZyYW1lIHN5bmMiLCBPRkZTRVQoZmlsZW5hbWUpLCBBVl9PUFRfVFlQRV9TVFJJ TkcsIHsgLnN0ciA9ICIiIH0sIC5mbGFncz1GTEFHUyB9LCBcCj4gKyAgICB7IE5VTEwgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ICt9Cj4gKwo+ICsvLyBmaWxscyB0aGUgYnVmZmVyIGZyb20gY3VyIHRvIGVuZCwgYWRkIFwwIGF0 IEVPRgo+ICtzdGF0aWMgaW50IGJ1Zl9maWxsKEZzeW5jQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAg ICBpbnQgcmV0Owo+ICsgICAgaW50IG51bSA9IGN0eC0+ZW5kIC0gY3R4LT5jdXI7Cj4gKwo+ICsg ICAgcmV0ID0gYXZpb19yZWFkKGN0eC0+YXZpb19jdHgsIGN0eC0+Y3VyLCBudW0pOwo+ICsgICAg aWYgKHJldCA8IDApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIGlmIChyZXQgPCBudW0p IHsKPiArICAgICAgICAqKGN0eC0+Y3VyICsgcmV0KSA9ICdcMCc7Cj4gKyAgICB9Cj4gKwo+ICsg ICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArLy8gY29waWVzIGN1ciB0byBlbmQgdG8gdGhlIGJl Z2lubmluZyBhbmQgZmlsbHMgdGhlIHJlc3QKPiArc3RhdGljIGludCBidWZfcmVsb2FkKEZzeW5j Q29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICBpbnQgaSwgcmV0Owo+ICsgICAgaW50IG51bSA9IGN0 eC0+ZW5kIC0gY3R4LT5jdXI7Cj4gKwo+ICsgICAgZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7 Cj4gKyAgICAgICAgY3R4LT5idWZbaV0gPSAqY3R4LT5jdXIrKzsKPiArICAgIH0KPiArCj4gKyAg ICBjdHgtPmN1ciA9IGN0eC0+YnVmICsgaTsKPiArICAgIHJldCA9IGJ1Zl9maWxsKGN0eCk7Cj4g KyAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgY3R4LT5jdXIg PSBjdHgtPmJ1ZjsKCkkgd29uZGVyIHdoZXRoZXIgeW91IHNob3VsZCBub3QganVzdCB1c2UgYXZp b19yZWFkX3RvX2JwcmludCgpIGZvciBhbGwKb2YgdGhpcy4KCj4gKwo+ICsgICAgcmV0dXJuIHJl dDsKPiArfQo+ICsKPiArLy8gc2tpcCBmcm9tIGN1ciBvdmVyIGVvbAo+ICtzdGF0aWMgdm9pZCBi dWZfc2tpcF9lb2woRnN5bmNDb250ZXh0ICpjdHgpCj4gK3sKPiArICAgIGNoYXIgKmk7Cj4gKyAg ICBmb3IgKGkgPSBjdHgtPmN1cjsgaSA8IGN0eC0+ZW5kOyBpKyspIHsKPiArICAgICAgICBpZiAo KmkgIT0gJ1xuJykvLyAmJiAqaSAhPSAnXHInKQo+ICsgICAgICAgICAgICBicmVhazsKPiArICAg IH0KPiArICAgIGN0eC0+Y3VyID0gaTsKPiArfQo+ICsKPiArLy8gZ2V0IG51bWJlciBvZiBieXRl cyBmcm9tIGN1ciB1bnRpbCBlb2wKPiArc3RhdGljIGludCBidWZfZ2V0X2xpbmVfY291bnQoRnN5 bmNDb250ZXh0ICpjdHgpCj4gK3sKPiArICAgIGludCByZXQgPSAwOwo+ICsgICAgY2hhciAqaTsK PiArICAgIGZvciAoaSA9IGN0eC0+Y3VyOyBpIDwgY3R4LT5lbmQ7IGkrKywgcmV0KyspIHsKPiAr ICAgICAgICBpZiAoKmkgPT0gJ1wwJyB8fCAqaSA9PSAnXG4nKQo+ICsgICAgICAgICAgICByZXR1 cm4gcmV0OwoKSWYgeW91IHVuY29uZGl0aW9uYWxseSBhZGRlZCBhIHNpbmdsZSBcMCB0byB0aGUg ZW5kIG9mIHRoZSBidWZmZXIsIHlvdQpjb3VsZCB1c2Ugc3RyY2hyKCkgaGVyZS4KCj4gKyAgICB9 Cj4gKwo+ICsgICAgcmV0dXJuIC0xOwo+ICt9Cj4gKwo+ICsvLyBnZXQgbnVtYmVyIG9mIGJ5dGVz IGZyb20gY3VyIHRvICdcMCcKPiArc3RhdGljIGludCBidWZfZ2V0X3plcm8oRnN5bmNDb250ZXh0 ICpjdHgpCj4gK3sKPiArICAgIGludCByZXQgPSAwOwo+ICsgICAgY2hhciAqaTsKPiArICAgIGZv ciAoaSA9IGN0eC0+Y3VyOyBpIDwgY3R4LT5lbmQ7IGkrKywgcmV0KyspIHsKPiArICAgICAgICBp ZiAoKmkgPT0gJ1wwJykKPiArICAgICAgICAgICAgcmV0dXJuIHJldDsKCnN0cm5sZW4/Cgo+ICsg ICAgfQo+ICsKPiArICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgYWN0aXZh dGUoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCj4gK3sKPiArICAgIEZzeW5jQ29udGV4dCAqcyAgICAg ICA9IGN0eC0+cHJpdjsKPiArICAgIEFWRmlsdGVyTGluayAqaW5saW5rICA9IGN0eC0+aW5wdXRz WzBdOwo+ICsgICAgQVZGaWx0ZXJMaW5rICpvdXRsaW5rID0gY3R4LT5vdXRwdXRzWzBdOwo+ICsK PiArICAgIGludCByZXQsIGxpbmVfY291bnQ7Cj4gKyAgICBBVkZyYW1lICpmcmFtZTsKPiArCj4g KyAgICBGRl9GSUxURVJfRk9SV0FSRF9TVEFUVVNfQkFDSyhvdXRsaW5rLCBpbmxpbmspOwo+ICsK PiArICAgIGJ1Zl9za2lwX2VvbChzKTsKPiArICAgIGxpbmVfY291bnQgPSBidWZfZ2V0X2xpbmVf Y291bnQocyk7Cj4gKyAgICBpZiAobGluZV9jb3VudCA8IDApIHsKPiArICAgICAgICBsaW5lX2Nv dW50ID0gYnVmX3JlbG9hZChzKTsKPiArICAgICAgICBpZiAobGluZV9jb3VudCA8IDApCj4gKyAg ICAgICAgICAgIHJldHVybiBsaW5lX2NvdW50Owo+ICsgICAgICAgIGxpbmVfY291bnQgPSBidWZf Z2V0X2xpbmVfY291bnQocyk7Cj4gKyAgICAgICAgaWYgKGxpbmVfY291bnQgPCAwKQo+ICsgICAg ICAgICAgICByZXR1cm4gbGluZV9jb3VudDsKPiArICAgIH0KPiArCj4gKyAgICBpZiAoYXZpb19m ZW9mKHMtPmF2aW9fY3R4KSAmJiBidWZfZ2V0X3plcm8ocykgPCAzKSB7Cj4gKyAgICAgICAgYXZf bG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAiRW5kIG9mIGZpbGUuIFRvIHplcm8gPSAlaVxuIiwgYnVm X2dldF96ZXJvKHMpKTsKPiArICAgICAgICBnb3RvIGVuZDsKPiArICAgIH0KPiArCj4gKyAgICBp ZiAocy0+bGFzdF9mcmFtZSkgewo+ICsgICAgICAgIHJldCA9IGF2X3NzY2FuZihzLT5jdXIsICIl IlBSSWQ2NCIgJSJQUklkNjQiICVkLyVkIiwgJnMtPnB0c2ksICZzLT5wdHMsICZzLT50Yl9udW0s ICZzLT50Yl9kZW4pOwo+ICsgICAgICAgIGlmIChyZXQgIT0gNCkgewo+ICsgICAgICAgICAgICBh dl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJVbmV4cGVjdGVkIGZvcm1hdCBmb3VuZCAoJWkgLyA0 KS5cbiIsIHJldCk7Cj4gKyAgICAgICAgICAgIGZmX291dGxpbmtfc2V0X3N0YXR1cyhvdXRsaW5r LCBBVkVSUk9SX0lOVkFMSUREQVRBLCBBVl9OT1BUU19WQUxVRSk7Cj4gKyAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgYXZf bG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAiZnJhbWUgJWxsaSAiLCBzLT5sYXN0X2ZyYW1lLT5wdHMp Owo+ICsKPiArICAgICAgICBpZiAocy0+bGFzdF9mcmFtZS0+cHRzID49IHMtPnB0c2kpIHsKPiAr ICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAiPj0gJWxsaTogRFVQIExBU1Qg d2l0aCBwdHMgPSAlbGxpXG4iLCBzLT5wdHNpLCBzLT5wdHMpOwo+ICsKPiArICAgICAgICAgICAg Ly8gY2xvbmUgZnJhbWUKPiArICAgICAgICAgICAgZnJhbWUgPSBhdl9mcmFtZV9jbG9uZShzLT5s YXN0X2ZyYW1lKTsKPiArICAgICAgICAgICAgaWYgKCFmcmFtZSkgewo+ICsgICAgICAgICAgICAg ICAgZmZfb3V0bGlua19zZXRfc3RhdHVzKG91dGxpbmssIEFWRVJST1IoRU5PTUVNKSwgQVZfTk9Q VFNfVkFMVUUpOwo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiAr ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBhdl9mcmFtZV9jb3B5X3Byb3BzKGZyYW1lLCBz LT5sYXN0X2ZyYW1lKTsKClVubmVjZXNzYXJ5LCBhcyB0aGUgcHJvcGVydGllcyBvZiBmcmFtZSBh cmUgYWxyZWFkeSBlcXVpdmFsZW50IHRvIHRoZQpwcm9wZXJ0aWVzIG9mIGxhc3RfZnJhbWUuCgo+ ICsKPiArICAgICAgICAgICAgLy8gc2V0IG91dHB1dCBwdHMgYW5kIHRpbWViYXNlCj4gKyAgICAg ICAgICAgIGZyYW1lLT5wdHMgPSBzLT5wdHM7Cj4gKyAgICAgICAgICAgIGZyYW1lLT50aW1lX2Jh c2UgPSBhdl9tYWtlX3EoKGludClzLT50Yl9udW0sIChpbnQpcy0+dGJfZGVuKTsKPiArCj4gKyAg ICAgICAgICAgIC8vIGFkdmFuY2UgY3VyIHRvIGVvbCwgc2tpcCBvdmVyIGVvbCBpbiB0aGUgbmV4 dCBjYWxsCj4gKyAgICAgICAgICAgIHMtPmN1ciArPSBsaW5lX2NvdW50Owo+ICsKPiArICAgICAg ICAgICAgLy8gY2FsbCBhZ2Fpbgo+ICsgICAgICAgICAgICBpZiAoZmZfaW5vdXRsaW5rX2NoZWNr X2Zsb3coaW5saW5rLCBvdXRsaW5rKSkKPiArICAgICAgICAgICAgICAgIGZmX2ZpbHRlcl9zZXRf cmVhZHkoY3R4LCAxMDApOwo+ICsKPiArICAgICAgICAgICAgLy8gZmlsdGVyIGZyYW1lCj4gKyAg ICAgICAgICAgIHJldHVybiBmZl9maWx0ZXJfZnJhbWUob3V0bGluaywgZnJhbWUpOwo+ICsgICAg ICAgIH0gZWxzZSBpZiAocy0+bGFzdF9mcmFtZS0+cHRzIDwgcy0+cHRzaSkgewo+ICsgICAgICAg ICAgICBhdl9sb2coY3R4LCBBVl9MT0dfREVCVUcsICI8ICAlbGxpOiBEUk9QXG4iLCBzLT5wdHNp KTsKPiArICAgICAgICAgICAgYXZfZnJhbWVfZnJlZSgmcy0+bGFzdF9mcmFtZSk7Cj4gKwo+ICsg ICAgICAgICAgICAvLyBjYWxsIGFnYWluCj4gKyAgICAgICAgICAgIGlmIChmZl9pbm91dGxpbmtf Y2hlY2tfZmxvdyhpbmxpbmssIG91dGxpbmspKQo+ICsgICAgICAgICAgICAgICAgZmZfZmlsdGVy X3NldF9yZWFkeShjdHgsIDEwMCk7Cj4gKwo+ICsgICAgICAgICAgICByZXR1cm4gMDsKPiArICAg ICAgICB9Cj4gKyAgICB9Cj4gKwo+ICtlbmQ6Cj4gKyAgICByZXQgPSBmZl9pbmxpbmtfY29uc3Vt ZV9mcmFtZShpbmxpbmssICZzLT5sYXN0X2ZyYW1lKTsKPiArICAgIGlmIChyZXQgPCAwKQo+ICsg ICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsgICAgRkZfRklMVEVSX0ZPUldBUkRfU1RBVFVTKGlu bGluaywgb3V0bGluayk7Cj4gKyAgICBGRl9GSUxURVJfRk9SV0FSRF9XQU5URUQob3V0bGluaywg aW5saW5rKTsKPiArCj4gKyAgICByZXR1cm4gRkZFUlJPUl9OT1RfUkVBRFk7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgZnN5bmNfY29uZmlnX3Byb3BzKEFWRmlsdGVyTGluayogb3V0bGluaykKPiAr ewo+ICsgICAgQVZGaWx0ZXJDb250ZXh0ICpjdHggPSBvdXRsaW5rLT5zcmM7Cj4gKyAgICBGc3lu Y0NvbnRleHQgICAgKnMgICA9IGN0eC0+cHJpdjsKPiArICAgIGludCByZXQ7Cj4gKwo+ICsgICAg Ly8gcmVhZCBmaXJzdCBsaW5lIHRvIGdldCBvdXRwdXQgdGltZWJhc2UKPiArICAgIHJldCA9IGF2 X3NzY2FuZihzLT5jdXIsICIlIlBSSWQ2NCIgJSJQUklkNjQiICVkLyVkIiwgJnMtPnB0c2ksICZz LT5wdHMsICZzLT50Yl9udW0sICZzLT50Yl9kZW4pOwoKdGJfbnVtLCB0Yl9kZW4gYXJlIGludDY0 X3QsIHlldCB5b3UgdXNlICVkIHRvIHJlYWQgaW50byB0aGVtLgoKPiArICAgIGlmIChyZXQgIT0g NCkgewo+ICsgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIlVuZXhwZWN0ZWQgZm9y bWF0IGZvdW5kICglaSBvZiA0KS5cbiIsIHJldCk7Cj4gKyAgICAgICAgZmZfb3V0bGlua19zZXRf c3RhdHVzKG91dGxpbmssIEFWRVJST1JfSU5WQUxJRERBVEEsIEFWX05PUFRTX1ZBTFVFKTsKPiAr ICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgIH0KPiArCj4gKyAgICBv dXRsaW5rLT5mcmFtZV9yYXRlID0gYXZfbWFrZV9xKDEsIDApOyAvLyB1bmtub3duIG9yIGR5bmFt aWMKPiArICAgIG91dGxpbmstPnRpbWVfYmFzZSAgPSBhdl9tYWtlX3EoKGludClzLT50Yl9udW0s IChpbnQpcy0+dGJfZGVuKTsKPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGlj IGF2X2NvbGQgaW50IGZzeW5jX2luaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCj4gK3sKPiArICAg IEZzeW5jQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKPiArICAgIGludCByZXQ7Cj4gKwo+ICsgICAg YXZfbG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAiZmlsZW5hbWU6ICVzXG4iLCBzLT5maWxlbmFtZSk7 Cj4gKwo+ICsgICAgcy0+YnVmID0gYXZfbWFsbG9jKEJVRl9TSVpFKTsKPiArICAgIGlmICghcy0+ YnVmKQo+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKwo+ICsgICAgcmV0ID0g YXZpb19vcGVuKCZzLT5hdmlvX2N0eCwgcy0+ZmlsZW5hbWUsIEFWSU9fRkxBR19SRUFEKTsKCkdp dmVuIHRoYXQgeW91IGFyZSB1c2luZyBhdmlvLCB5b3UgcHJvYmFibHkgbmVlZCBhIGF2Zm9ybWF0 IGRlcGVuZGVuY3kKaW4gY29uZmlndXJlLgoKPiArICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAg IHJldHVybiByZXQ7Cj4gKwo+ICsgICAgcy0+Y3VyID0gcy0+YnVmOwo+ICsgICAgcy0+ZW5kID0g cy0+YnVmICsgQlVGX1NJWkU7Cj4gKwo+ICsgICAgcmV0ID0gYnVmX2ZpbGwocyk7Cj4gKyAgICBp ZiAocmV0IDwgMCkKPiArICAgICAgICByZXR1cm4gcmV0Owo+ICsKPiArICAgIHJldHVybiAwOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgYXZfY29sZCB2b2lkIGZzeW5jX3VuaW5pdChBVkZpbHRlckNvbnRl eHQgKmN0eCkKPiArewo+ICsgICAgRnN5bmNDb250ZXh0ICpzID0gY3R4LT5wcml2Owo+ICsKPiAr ICAgIGF2aW9fY2xvc2Uocy0+YXZpb19jdHgpOwoKYXZpb19jbG9zZXAoKQoKPiArICAgIGF2X2Zy ZWVwKCZzLT5idWYpOwo+ICsgICAgYXZfZnJhbWVfdW5yZWYocy0+bGFzdF9mcmFtZSk7CgpJIGV4 cGVjdCB0aGF0IHRoaXMgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBhdl9mcmFtZV9mcmVlKCkuIEFu eXdheSwgeW91CnNob3VsZCBydW4geW91ciB0ZXN0cyB2aWEgdmFsZ3JpbmQvYXNhbi4KCj4gK30K PiArCj4gK0RFRklORV9PUFRJT05TKGZzeW5jLCBBVl9PUFRfRkxBR19WSURFT19QQVJBTXxBVl9P UFRfRkxBR19GSUxURVJJTkdfUEFSQU0pOwo+ICtBVkZJTFRFUl9ERUZJTkVfQ0xBU1MoZnN5bmMp Owo+ICsKPiArc3RhdGljIGNvbnN0IGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10c1tdID0gewo+ ICsgICAgQVZfUElYX0ZNVF9HUkFZOCwKPiArICAgIEFWX1BJWF9GTVRfR0JSUCwgICAgIEFWX1BJ WF9GTVRfR0JSQVAsCj4gKyAgICBBVl9QSVhfRk1UX1lVVjQyMlAsICBBVl9QSVhfRk1UX1lVVjQy MFAsCj4gKyAgICBBVl9QSVhfRk1UX1lVVjQ0NFAsICBBVl9QSVhfRk1UX1lVVjQ0MFAsCj4gKyAg ICBBVl9QSVhfRk1UX1lVVjQxMVAsICBBVl9QSVhfRk1UX1lVVjQxMFAsCj4gKyAgICBBVl9QSVhf Rk1UX1lVVko0NDBQLCBBVl9QSVhfRk1UX1lVVko0MTFQLCBBVl9QSVhfRk1UX1lVVko0MjBQLAo+ ICsgICAgQVZfUElYX0ZNVF9ZVVZKNDIyUCwgQVZfUElYX0ZNVF9ZVVZKNDQ0UCwKPiArICAgIEFW X1BJWF9GTVRfWVVWQTQ0NFAsIEFWX1BJWF9GTVRfWVVWQTQyMlAsIEFWX1BJWF9GTVRfWVVWQTQy MFAsCj4gKyAgICBBVl9QSVhfRk1UX05PTkUKPiArfTsKCldoeSBpcyB0aGlzIGZpbHRlciBsaW1p dGVkIHRvIHNwZWNpZmljIHBpeGVsIGZvcm1hdHM/IFNob3VsZG4ndCBpdAphY2NlcHQgYWxsIG9m IHRoZW0/Cgo+ICsKPiArc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGF2ZmlsdGVyX3ZmX2ZzeW5j X291dHB1dHNbXSA9IHsKCkRvbid0IHVzZSBhIG5hbWUgdGhhdCBpbmRpY2F0ZXMgdGhhdCB0aGlz IGlzIGV4cG9ydGVkLiAoSSBrbm93IHRoYXQKb3RoZXIgZmlsdGVycyBoYXZlIHRoZSBzYW1lIGlz c3VlLi4uKQoKPiArICAgIHsKPiArICAgICAgICAubmFtZSAgICAgICAgICA9ICJkZWZhdWx0IiwK PiArICAgICAgICAudHlwZSAgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKPiArICAgICAg ICAuY29uZmlnX3Byb3BzICA9IGZzeW5jX2NvbmZpZ19wcm9wcywKPiArICAgIH0sCj4gK307Cj4g Kwo+ICtjb25zdCBBVkZpbHRlciBmZl92Zl9mc3luYyA9IHsKPiArICAgIC5uYW1lICAgICAgICAg ID0gImZzeW5jIiwKPiArICAgIC5kZXNjcmlwdGlvbiAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwo IlN5bmNocm9uaXplIHZpZGVvIGZyYW1lcyBmcm9tIGV4dGVybmFsIHNvdXJjZS4iKSwKPiArICAg IC5pbml0ICAgICAgICAgID0gZnN5bmNfaW5pdCwKPiArICAgIC51bmluaXQgICAgICAgID0gZnN5 bmNfdW5pbml0LAo+ICsgICAgLnByaXZfc2l6ZSAgICAgPSBzaXplb2YoRnN5bmNDb250ZXh0KSwK PiArICAgIC5wcml2X2NsYXNzICAgID0gJmZzeW5jX2NsYXNzLAo+ICsgICAgLmFjdGl2YXRlICAg ICAgPSBhY3RpdmF0ZSwKPiArICAgIEZJTFRFUl9QSVhGTVRTX0FSUkFZKHBpeF9mbXRzKSwKPiAr ICAgIEZJTFRFUl9JTlBVVFMoZmZfdmlkZW9fZGVmYXVsdF9maWx0ZXJwYWQpLAo+ICsgICAgRklM VEVSX09VVFBVVFMoYXZmaWx0ZXJfdmZfZnN5bmNfb3V0cHV0cyksCj4gKyAgICAuZmxhZ3MgICAg ICAgICA9IEFWRklMVEVSX0ZMQUdfTUVUQURBVEFfT05MWSwKPiArfTsKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3Ig ZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4K