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 181AC40F6D for ; Sun, 2 Jan 2022 04:18:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 387076802C1; Sun, 2 Jan 2022 06:18:37 +0200 (EET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2102.outbound.protection.outlook.com [40.92.90.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 47D6468005A for ; Sun, 2 Jan 2022 06:18:31 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kWoHXpEB4q2GK+DRoyQwegi37e21xCN6eF8FX0vgMVZxc+FFoY2CqvYfBCgiU9R0GnGtECTPT1GdMTwCvsniUJpuvwMqXJxtTxU282iQnt5XsdZiw6UREGma2svYq4t8n/FEwU0QtbVGXKkUuMX8BW8dOSkj62+sZoDHskRxcDqIKdrGSSQowDJrGv1oPTWzgqaa/c/TuaxnEuQSxlxynMOTEpblLjJwPjL1yCP3oiGAUC/Ty2x7pFFRQSMgnOhRPZWt9seoRGJvhLhN+HgYOsUZu4lzmiAQtil6UCrMLVpiq0hiGdR0yFTHE9CNp1Iv7aeDaQU7fmbq2Fjc3sCGcQ== 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=nkVg+cEIps9JTBUKLuD4f4uSSJZM1S4+6wNWz0f30xk=; b=D8ImWcSJXKYkmtBGhL84OHsJOpLN9jIuE22AyMU1B65F1NwIk8Cmuo4cO2h+5lLnRhTvnBSx9sebnBQRhSFHLvL6l1OGifkLlxzGP0xM3tVtMMzxKL0EZ5rOVnxf2KCiYam/rRTqMPfws0CBWEB6XT1Xsy7MYO+h1F4TiCUjhfhlWRi6IMQ1SKJk5DVsM4yYNLwlEhfUSwHDQ/Y4FZiON+JyEsBxZcEWsVKkCgpjmWQLWBvsr3PPRgzclFP7CBqLGXtUHVmUcHAKk3+3ZO/Ml75ctcztpGLtJlhRpIq8pyP69wvezFVjFpQzqi0Hm55qpn7H+2OQ5xH7m9ehscXSTQ== 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=nkVg+cEIps9JTBUKLuD4f4uSSJZM1S4+6wNWz0f30xk=; b=giTk0NehVHJJAHj/JBHLXdtOnkgl2PqzIa1Dq2zhjy1x9nk2ej/pauFCZHMl+88Cax+GQ7odw8KePybztQlkSQ0+R/eiCyNUP+pm4T8Ghz7191WkDyOZ8i7cpwGiGTq0HSJeRhPAvgbbF0YyNejRbVMsAovPpxmE6a9W531Ux3urkM/gv0cecsrkU45Hx4Boc4uQ+w35CBZxdQXjFRWTRCmp1zMZpYBJlQRKWhuZ0HSj/F8lRM6ccDiVS4awPQmMse34YLHUiZJYRpsQAl8FSl1oFG1B2yicPUs2EN1j5INNsD15z+UrygefDYdX1lFQuJ14oJO7g6bE/QQ5KriaMg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4533.eurprd03.prod.outlook.com (2603:10a6:20b:7::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Sun, 2 Jan 2022 04:18:28 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%6]) with mapi id 15.20.4844.015; Sun, 2 Jan 2022 04:18:28 +0000 Message-ID: Date: Sun, 2 Jan 2022 05:18:27 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211222151447.57681-1-ffmpeg@haasn.xyz> <20211222151447.57681-4-ffmpeg@haasn.xyz> From: Andreas Rheinhardt In-Reply-To: <20211222151447.57681-4-ffmpeg@haasn.xyz> X-TMN: [89aCSN02uRHVuj7CBY/+x/iqw2CG7tOU] X-ClientProxiedBy: AM0PR10CA0071.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::24) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e3950660-43a7-40ec-3600-08d9cda6edc4 X-MS-TrafficTypeDiagnostic: AM6PR03MB4533:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +Yw0uuF3r/JI9pAJ6YCzhwH1DDxLfi0uNeDza4amZx2/+HPtwKTzf8BilzRREyzV4fa6d71vU9tU45p8O2DVnZ2TK9IODe4S60hxVxGVdONqaSES9K7jN0S2yXJ5AmKMKyAJNT6FajnpiRxWmcT1iiopzuDyaDEVh0j2s3Yrx/bHtH+k8qHViZM7VcAZcgo/ODSK6aohjJtckP44wbwQQnX67cqP/gefms2xsWwmUUioORLd8A5b7AVvSl+eBmsDbxnNcuczqDcc3i/Eg7VrOplmZxhcfptqaZegz3jnKRJTkzJz3ctAHW2KTPU7JUWFAag264PtEeFfofB0lXi3M87Kg9tbk77zAf5LaVOYnsdPvFtb8zc9Us2dFuLVqrQqOXB0zL2B5822sQvjSRTe+tiPSnKTeoGqGV0XqV2VeFGoq1AFNXZ9eVVuqnG4Hd3hR1SLdJMz7Fm1DMsVkW8KtGvgRL2E8i5hJTvTfgSBpaStkzbEE0jtL0GqJjbe/8zdhX0cmF31eH7YXzeb2F6vmhUciTLTmNgKX7nPUi9xKPOzeqvOldobQ9L7+7bv5CFdMkokOm+QmAmhHeL4MOejT7SBdgz/ckLE1FEzq43ISiwaCsDn9SkhjYL8XssvLhIx X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MURDQS9uSlprRy9IMjQ2MnY5c2paN1JqMlJkdmlqQVp0OFNnb1lOZjZTNFRk?= =?utf-8?B?Ynd1UnVvMGt1VGpGNjhzYUU0dnBFTlF2UmtjZEVlUHF1bXQ4NnVLUlhraS9x?= =?utf-8?B?MmVqbmVDd0J3ejBaRDVlNW0rT3BFVWJDQ3pGazBNVDZEK0Rmc2Z0d1BVZy9m?= =?utf-8?B?UVZha2lwbzRHV3ZacU56UVdUMkxJWU12NW5LcXFHcHhpbDBORTQ4RGlPTktP?= =?utf-8?B?OE93dCtrRHpDaVNUYmFXQWRJTWdMZDlRNVFFOVpJaWhUZnlxa2ZIL1dXUDZx?= =?utf-8?B?RkpueVRpclRVcU5BNUdSUGNNM0NDR0xGQ21pdFZDTnY5cGJIbjd6RVVuUllF?= =?utf-8?B?V21PeGY1bUpmeEZ5eWV5L1VlT1lrMWNZdEJkL1RFdldYamNIS3hVSEdlV1VU?= =?utf-8?B?Q0N1akxOY2lrakp3SkFMUTVzczRpT2tqWEhHVmpGaWYySGlOR3h4a3hYdmZt?= =?utf-8?B?VmVYaUVMRmNxZ1lLU1Y4RmE5MXFrU015b2RqbWkvLzlncjNvMGdteDhjM1hX?= =?utf-8?B?TGRqbFQ4S2x5TloyZW1DalpIUWdsSzV1WE5vbWFrVWJHNlg5Q2lCZlNPUC9v?= =?utf-8?B?a0YyS3lOUTNKeWMrS0FmczFFc1IrT2Y1cnFqdXV3T0NVVU4xSkUzV2V2Zjhz?= =?utf-8?B?d0ZOcW1xS1F6VStuZ2tUUnRSa2hYMDZNRDZsSTBSMW5BVlZQUDhDM3FjTm1s?= =?utf-8?B?SDdyYlJ4eEFBOS9IVnlyanc5SDVhWkVyWmJDZy9XMldsbk5WUG42N1Q0U3FS?= =?utf-8?B?a3loVkFoajVTSGw3ODJTRndkbFhKV3c4cFZHU3ovVElKai9CdlJwZllIOEo0?= =?utf-8?B?aG42UkJmK3B4b1hjM0ZZMHpoLzlRWHdqVkduZm1tTWxVR21mb1Z2RXRsNzBM?= =?utf-8?B?bnJzVUw0ckFpbUxrUlJtM01taFE0QTI1M1dFZlVodXNldHRkbjdPS0ZUNVdC?= =?utf-8?B?UUJKcjdNejZSS1VFcEdMcmM1WFRkVTYvWk9HRmQxQ29tSnhkbGtvVzZjMFNi?= =?utf-8?B?Z3daZS85NitLNUF2MXRTU1d4dTJqZ1liZEhhOVg1TVkzaWZONUZncy9sT0N3?= =?utf-8?B?dnZFcXdyVnY3K2RsNndzdER0eUFSVHlkQ1VwRFlnS3luNTJtV2VIRGVWVWJM?= =?utf-8?B?SkR6aDlUNmpCcjI0VGZZZlkxYWNpc01Ic2F1eGRKVjJ1TjZwTU1tcnhGWGF6?= =?utf-8?B?dTIybS9VcStpV3dFYnBCbG44d3hVTXRrSVhId3huVVNZRHV2aDQ5NDZINGd6?= =?utf-8?B?a1JZcGppZlN2cXRxZWlSclNjdndnT0NKMStaZG02T2UrSm1YUT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3950660-43a7-40ec-3600-08d9cda6edc4 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jan 2022 04:18:28.9160 (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: AM6PR03MB4533 Subject: Re: [FFmpeg-devel] [PATCH v9 4/6] lavc: Implement Dolby Vision RPU parsing 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: TmlrbGFzIEhhYXM6Cj4gRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+Cj4gCj4gQmFz ZWQgb24gYSBtaXh0dXJlIG9mIGd1ZXNzd29yaywgcGFydGlhbCBkb2N1bWVudGF0aW9uIGluIHBh dGVudHMsIGFuZAo+IHJldmVyc2UgZW5naW5lZXJpbmcgb2YgcmVhbC13b3JsZCBzYW1wbGVzLiBD b25maXJtZWQgd29ya2luZyBmb3IgYWxsIHRoZQo+IHNhbXBsZXMgSSd2ZSB0aHJvd24gYXQgaXQu Cj4gCj4gQ29udGFpbnMgc29tZSBhbm5veWluZyBtYWNoaW5lcnkgdG8gcGVyc2lzdCB0aGVzZSB2 YWx1ZXMgaW4gYmV0d2Vlbgo+IGZyYW1lcywgd2hpY2ggaXMgbmVlZGVkIGluIHRoZW9yeSBldmVu IHRob3VnaCBJJ3ZlIG5ldmVyIGFjdHVhbGx5IHNlZW4gYQo+IHNhbXBsZSB0aGF0IHJlbGllcyBv biBpdCBpbiBwcmFjdGljZS4gTWF5IG9yIG1heSBub3Qgd29yay4KPiAKPiBTaW5jZSB0aGUgZGlz dGluY3Rpb24gbWF0dGVycyBncmVhdGx5IGZvciBwYXJzaW5nIHRoZSBjb2xvciBtYXRyaXgKPiB2 YWx1ZXMsIHRoaXMgaW5jbHVkZXMgYSBzbWFsbCBoZWxwZXIgZnVuY3Rpb24gdG8gZ3Vlc3MgdGhl IHJpZ2h0IHByb2ZpbGUKPiBmcm9tIHRoZSBSUFUgaXRzZWxmIGluIGNhc2UgdGhlIHVzZXIgaGFz IGZvcmdvdHRlbiB0byBmb3J3YXJkIHRoZSBkb3ZpCj4gY29uZmlndXJhdGlvbiByZWNvcmQgdG8g dGhlIGRlY29kZXIuIChXaGljaCBpbiBwcmFjdGljZSwgb25seSBmZm1wZWcuYwo+IGFuZCBmZnBs YXkgZG8uLikKPiAKPiBOb3RhYmxlIG9taXNzaW9ucyAvIGRldmlhdGlvbnM6Cj4gLSBDUkMzMiB2 ZXJpZmljYXRpb24uIFRoaXMgaXMgYmFzZWQgb24gdGhlIE1QRUcyIENSQzMyIHR5cGUsIHdoaWNo IGRvZXMKPiAgIG5vdCBzZWVtIHRvIGJlIGltcGxlbWVudGVkIGluIGxhdnUuIChBbmQgSSBkb24n dCBjYXJlIGVub3VnaCB0byBkbyBzbykKPiAtIExpbmVhciBpbnRlcnBvbGF0aW9uIHN1cHBvcnQu IE5vdGhpbmcgZG9jdW1lbnRzIHRoaXMgKGJleW9uZCBpdHMKPiAgIGV4aXN0ZW5jZSkgYW5kIG5v IHNhbXBsZXMgdXNlIGl0LCBzbyBpbXBvc3NpYmxlIHRvIGltcGxlbWVudC4KPiAtIEFsbCBvZiB0 aGUgZXh0ZW5zaW9uIG1ldGFkYXRhIGJsb2NrcywgYnV0IHRoZXNlIGNvbnRhaW4gdmFsdWVzIHRo YXQKPiAgIHNlZW0gbGFyZ2VseSBjb25ncnVlbnQgd2l0aCBTVDIwOTQsIEhEUjEwLCBvciBvdGhl ciBleGlzdGluZyBmb3JtcyBvZgo+ICAgc2lkZSBkYXRhLCBzbyBJIHdpbGwgZGVmZXIgcGFyc2lu Zy9hdHRhY2hpbmcgdGhlbSB0byBhIGZ1dHVyZSBjb21taXQuCj4gLSBUaGUgcGF0ZW50IGRlc2Ny aWJlcyBhIG1lY2hhbmlzbSBmb3IgcHJlZGljdGluZyBjb2VmZmljaWVudHMgZnJvbQo+ICAgcHJl dmlvdXMgUlBVcywgYnV0IHRoZSBiaXQgZm9yIHRoZSBmbGFnIHdoZXRoZXIgdG8gdXNlIHRoZQo+ ICAgcHJlZGljdGlvbiBkZWx0YXMgb3Igc2lnbmFsIGVudGlyZWx5IG5ldyBjb2VmZmljaWVudHMg ZG9lcyBub3Qgc2VlbSB0bwo+ICAgYmUgcHJlc2VudCBpbiBhY3R1YWwgUlBVcywgc28gd2UgaWdu b3JlIHRoaXMgc3Vic3lzdGVtIGVudGlyZWx5Lgo+IC0gSW4gdGhlIHBhdGVudCdzIHNwZWMsIHRo ZSBOTFEgc3Vic3lzdGVtIGFsc28gbG9vcHMgb3Zlcgo+ICAgbnVtX25scV9waXZvdHMsIGJ1dCBl dmVuIGluIHRoZSBwYXRlbnQgdGhlIG51bWJlciBpcyBoYXJkLWNvZGVkIHRvIG9uZQo+ICAgaXRl cmF0aW9uIHJhdGhlciB0aGFuIHNpZ25hbGxlZC4gU28gd2Ugb25seSBzdG9yZSBvbmUgc2V0IG9m IGNvZWZzLgo+IAo+IEhlYXZpbHkgaW5mbHVlbmNlZCBieSBodHRwczovL2dpdGh1Yi5jb20vcXVp ZXR2b2lkL2RvdmlfdG9vbAo+IERvY3VtZW50YXRpb24gZHJhd24gZnJvbSBVUyBQYXRlbnQgMTAs NzAxLDM5OSBCMiBhbmQgRVRTSSBHUyBDQ00gMDAxCj4gCj4gU2lnbmVkLW9mZi1ieTogTmlrbGFz IEhhYXMgPGdpdEBoYWFzbi5kZXY+Cj4gLS0tCj4gIGNvbmZpZ3VyZSAgICAgICAgICAgICB8ICAg MiArCj4gIGxpYmF2Y29kZWMvTWFrZWZpbGUgICB8ICAgMSArCj4gIGxpYmF2Y29kZWMvZG92aV9y cHUuYyB8IDQzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg bGliYXZjb2RlYy9kb3ZpX3JwdS5oIHwgIDcxICsrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA1 MDQgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9kb3ZpX3Jw dS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2RvdmlfcnB1LmgKPiAKPiBkaWZm IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggMGNjZDNiZGExMS4uNjg2NThh ODQ3ZiAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtMjQz NCw2ICsyNDM0LDcgQEAgQ09ORklHX0VYVFJBPSIKPiAgICAgIGNic192cDkKPiAgICAgIGRpcmFj X3BhcnNlCj4gICAgICBkbm4KPiArICAgIGRvdmlfcnB1Cj4gICAgICBkdnByb2ZpbGUKPiAgICAg IGV4aWYKPiAgICAgIGZhYW5kY3QKPiBAQCAtMjcwNiw2ICsyNzA3LDcgQEAgY2JzX21wZWcyX3Nl bGVjdD0iY2JzIgo+ICBjYnNfdnA5X3NlbGVjdD0iY2JzIgo+ICBkY3Rfc2VsZWN0PSJyZGZ0Igo+ ICBkaXJhY19wYXJzZV9zZWxlY3Q9ImdvbG9tYiIKPiArZG92aV9ycHVfc2VsZWN0PSJnb2xvbWIi Cj4gIGRubl9zdWdnZXN0PSJsaWJ0ZW5zb3JmbG93IGxpYm9wZW52aW5vIgo+ICBkbm5fZGVwcz0i YXZmb3JtYXQgc3dzY2FsZSIKPiAgZXJyb3JfcmVzaWxpZW5jZV9zZWxlY3Q9Im1lX2NtcCIKPiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiBp bmRleCBmYjkwZWNlYTg0Li43MzY0YzdhOTFmIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvTWFr ZWZpbGUKPiArKysgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4gQEAgLTc3LDYgKzc3LDcgQEAgT0JK Uy0kKENPTkZJR19DQlNfTVBFRzIpICAgICAgICAgICAgICAgKz0gY2JzX21wZWcyLm8KPiAgT0JK Uy0kKENPTkZJR19DQlNfVlA5KSAgICAgICAgICAgICAgICAgKz0gY2JzX3ZwOS5vCj4gIE9CSlMt JChDT05GSUdfQ1JZU1RBTEhEKSAgICAgICAgICAgICAgICs9IGNyeXN0YWxoZC5vCj4gIE9CSlMt JChDT05GSUdfRENUKSAgICAgICAgICAgICAgICAgICAgICs9IGRjdC5vIGRjdDMyX2ZpeGVkLm8g ZGN0MzJfZmxvYXQubwo+ICtPQkpTLSQoQ09ORklHX0RPVklfUlBVKSAgICAgICAgICAgICAgICAr PSBkb3ZpX3JwdS5vCj4gIE9CSlMtJChDT05GSUdfRVJST1JfUkVTSUxJRU5DRSkgICAgICAgICs9 IGVycm9yX3Jlc2lsaWVuY2Uubwo+ICBPQkpTLSQoQ09ORklHX0VYSUYpICAgICAgICAgICAgICAg ICAgICArPSBleGlmLm8gdGlmZl9jb21tb24ubwo+ICBPQkpTLSQoQ09ORklHX0ZBQU5EQ1QpICAg ICAgICAgICAgICAgICArPSBmYWFuZGN0Lm8KPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kb3Zp X3JwdS5jIGIvbGliYXZjb2RlYy9kb3ZpX3JwdS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMDAwLi5mYzJlMWZiMmExCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYmF2 Y29kZWMvZG92aV9ycHUuYwo+IEBAIC0wLDAgKzEsNDMwIEBACj4gKy8qCj4gKyAqIERvbGJ5IFZp c2lvbiBSUFUgZGVjb2Rlcgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSmFuIEVrc3Ry w7ZtCj4gKyAqIENvcHlyaWdodCAoQykgMjAyMSBOaWtsYXMgSGFhcwo+ICsgKgo+ICsgKiBUaGlz IGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiArICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPiAr ICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+ICsg KiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKgo+ ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+ICsgKi8K PiArCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvYnVmZmVyLmgiCj4gKwo+ICsjaW5jbHVkZSAiZG92 aV9ycHUuaCIKPiArI2luY2x1ZGUgImdvbG9tYi5oIgo+ICsjaW5jbHVkZSAiZ2V0X2JpdHMuaCIK PiArCj4gK2VudW0gewo+ICsgICAgUlBVX0NPRUZGX0ZJWEVEID0gMCwKPiArICAgIFJQVV9DT0VG Rl9GTE9BVCA9IDEsCj4gK307Cj4gKwo+ICsvKioKPiArICogUHJpdmF0ZSBjb250ZW50cyBvZiB2 ZHJfcmVmLgo+ICsgKi8KPiArdHlwZWRlZiBzdHJ1Y3QgRE9WSVZkclJlZiB7Cj4gKyAgICBBVkRP VklEYXRhTWFwcGluZyBtYXBwaW5nOwo+ICsgICAgQVZET1ZJQ29sb3JNZXRhZGF0YSBjb2xvcjsK PiArfSBET1ZJVmRyUmVmOwo+ICsKPiArdm9pZCBmZl9kb3ZpX2N0eF91bnJlZihET1ZJQ29udGV4 dCAqcykKPiArewo+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhzLT52 ZHJfcmVmKTsgaSsrKQo+ICsgICAgICAgIGF2X2J1ZmZlcl91bnJlZigmcy0+dmRyX3JlZltpXSk7 Cj4gKwo+ICsgICAgLyogUHJlc2VydmUgdGhlIHVzZXItcHJvdmlkZWQgZmllbGRzIGV4cGxpY2l0 bHksIHJlc2V0IGV2ZXJ5dGhpbmcgZWxzZSAqLwo+ICsgICAgKnMgPSAoRE9WSUNvbnRleHQpIHsK PiArICAgICAgICAubG9nY3R4ID0gcy0+bG9nY3R4LAo+ICsgICAgICAgIC5jb25maWcgPSBzLT5j b25maWcsCj4gKyAgICB9Owo+ICt9Cj4gKwo+ICtpbnQgZmZfZG92aV9jdHhfcmVwbGFjZShET1ZJ Q29udGV4dCAqcywgY29uc3QgRE9WSUNvbnRleHQgKnMwKQo+ICt7Cj4gKyAgICBpbnQgcmV0Owo+ ICsgICAgcy0+bG9nY3R4ID0gczAtPmxvZ2N0eDsKPiArICAgIHMtPmNvbmZpZyA9IHMwLT5jb25m aWc7Cj4gKyAgICBzLT5tYXBwaW5nID0gczAtPm1hcHBpbmc7Cj4gKyAgICBzLT5jb2xvciA9IHMw LT5jb2xvcjsKPiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRE9WSV9NQVhfRE1fSUQ7IGkrKykg ewo+ICsgICAgICAgIGlmICgocmV0ID0gYXZfYnVmZmVyX3JlcGxhY2UoJnMtPnZkcl9yZWZbaV0s IHMwLT52ZHJfcmVmW2ldKSkgPCAwKQo+ICsgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gKyAgICB9 Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gKwo+ICtmYWlsOgo+ICsgICAgZmZfZG92aV9jdHhfdW5y ZWYocyk7Cj4gKyAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtpbnQgZmZfZG92aV9hdHRhY2hf c2lkZV9kYXRhKERPVklDb250ZXh0ICpzLCBBVkZyYW1lICpmcmFtZSkKPiArewo+ICsgICAgQVZG cmFtZVNpZGVEYXRhICpzZDsKPiArICAgIEFWQnVmZmVyUmVmICpidWY7Cj4gKyAgICBBVkRPVklN ZXRhZGF0YSAqZG92aTsKPiArICAgIHNpemVfdCBkb3ZpX3NpemU7Cj4gKwo+ICsgICAgaWYgKCFz LT5tYXBwaW5nIHx8ICFzLT5jb2xvcikKPiArICAgICAgICByZXR1cm4gMDsgLyogaW5jb21wbGV0 ZSBkb3ZpIG1ldGFkYXRhICovCj4gKwo+ICsgICAgZG92aSA9IGF2X2RvdmlfbWV0YWRhdGFfYWxs b2MoJmRvdmlfc2l6ZSk7Cj4gKyAgICBpZiAoIWRvdmkpCj4gKyAgICAgICAgcmV0dXJuIEFWRVJS T1IoRU5PTUVNKTsKPiArCj4gKyAgICBidWYgPSBhdl9idWZmZXJfY3JlYXRlKCh1aW50OF90ICop IGRvdmksIGRvdmlfc2l6ZSwgTlVMTCwgTlVMTCwgMCk7Cj4gKyAgICBpZiAoIWJ1Zikgewo+ICsg ICAgICAgIGF2X2ZyZWUoZG92aSk7Cj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsK PiArICAgIH0KPiArCj4gKyAgICBzZCA9IGF2X2ZyYW1lX25ld19zaWRlX2RhdGFfZnJvbV9idWYo ZnJhbWUsIEFWX0ZSQU1FX0RBVEFfRE9WSV9NRVRBREFUQSwgYnVmKTsKPiArICAgIGlmICghc2Qp IHsKPiArICAgICAgICBhdl9idWZmZXJfdW5yZWYoJmJ1Zik7Cj4gKyAgICAgICAgcmV0dXJuIEFW RVJST1IoRU5PTUVNKTsKPiArICAgIH0KPiArCj4gKyAgICBtZW1jcHkoYXZfZG92aV9nZXRfaGVh ZGVyKGRvdmkpLCAmcy0+aGVhZGVyLCBzaXplb2Yocy0+aGVhZGVyKSk7Cj4gKyAgICBtZW1jcHko YXZfZG92aV9nZXRfbWFwcGluZyhkb3ZpKSwgcy0+bWFwcGluZywgc2l6ZW9mKCpzLT5tYXBwaW5n KSk7Cj4gKyAgICBtZW1jcHkoYXZfZG92aV9nZXRfY29sb3IoZG92aSksIHMtPmNvbG9yLCBzaXpl b2YoKnMtPmNvbG9yKSk7CgpUaGVzZSBhcmUgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMgZHVlIHRv IHRyYWlsaW5nIHBhZGRpbmcgaW4gdGhlCnN0cnVjdHVyZXMuIFRoaXMgdHJhaWxpbmcgcGFkZGlu ZyBtaWdodCBiZWNvbWUgdmFsaWQgZmllbGRzIGluIG5ld2VyCnZlcnNpb25zIG9mIHRoaXMgc3Ry dWN0dXJlLiBFLmcuIGF2X2RvdmlfbWV0YWRhdGFfYWxsb2MoKSBtaWdodAppbnRlbnRpb25hbGx5 IHNldCB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlc2UgbmV3IGZpZWxkcyB0byBpbnZhbGlkCnZh bHVlcy4gWWV0IGxhdmMgKHdpdGggdGhlIG9sZCBzdHJ1Y3R1cmUpIHNlZXMgdGhlbSBhcyBwYWRk aW5nLCBhbGxvd2luZwp0aGUgY29tcGlsZXIgdG8gdHJhc2ggdGhlc2UgdmFsdWVzIG9uIGV2ZXJ5 IHdyaXRlIHRvIHRoZXNlIHN0cnVjdHVyZXMuCk1vcmUgbGlrZWx5IHRob3VnaCBpcyB0aGF0IHRo ZXkgd2lsbCBuZXZlciBiZSB0b3VjaGVkIGF0IGFsbCBhbmQKdGhlcmVmb3JlIHJldGFpbiB0aGVp ciBkZWZhdWx0ICh6ZXJvKSBpbml0aWFsaXphdGlvbi4gV2hpY2ggbWlnaHQKY29uZmxpY3Qgd2l0 aCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGVzZSBmaWVsZHMuClRoaXMgY2FuIGJlIGZpeGVkIGJ5 IG9ubHkgY29weWluZyBldmVyeXRoaW5nIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlCmxhc3QgZmll bGQgdGhhdCB3ZSBrbm93IG9mIGZvciBldmVyeSBvZiB0aGVzZSBzdHJ1Y3R1cmVzLiBUaGlzIHdp bGwKdW5mb3J0dW5hdGVseSBpbmNyZWFzZSB0aGUgbWFpbnRhaW5lbmNlIGJ1cmRlbiBhIGJpdC4K Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBndWVzc19wcm9maWxlKGNv bnN0IEFWRE9WSVJwdURhdGFIZWFkZXIgKmhkcikKPiArewo+ICsgICAgc3dpdGNoIChoZHItPnZk cl9ycHVfcHJvZmlsZSkgewo+ICsgICAgY2FzZSAwOgo+ICsgICAgICAgIGlmIChoZHItPmJsX3Zp ZGVvX2Z1bGxfcmFuZ2VfZmxhZykKPiArICAgICAgICAgICAgcmV0dXJuIDU7Cj4gKyAgICAgICAg YnJlYWs7Cj4gKyAgICBjYXNlIDE6Cj4gKyAgICAgICAgaWYgKGhkci0+ZWxfc3BhdGlhbF9yZXNh bXBsaW5nX2ZpbHRlcl9mbGFnICYmICFoZHItPmRpc2FibGVfcmVzaWR1YWxfZmxhZykgewo+ICsg ICAgICAgICAgICBpZiAoaGRyLT52ZHJfYml0X2RlcHRoID09IDEyKSB7Cj4gKyAgICAgICAgICAg ICAgICByZXR1cm4gNzsKPiArICAgICAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAg IHJldHVybiA0Owo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgfSBlbHNlIHsKPiArICAgICAg ICAgICAgcmV0dXJuIDg7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIHJldHVybiAw OyAvKiB1bmtub3duICovCj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgZ2V0X3Vl X2NvZWYoR2V0Qml0Q29udGV4dCAqZ2IsIGNvbnN0IEFWRE9WSVJwdURhdGFIZWFkZXIgKmhkcikK PiArewo+ICsgICAgdWludDY0X3QgaXBhcnQ7Cj4gKyAgICB1bmlvbiB7IHVpbnQzMl90IHUzMjsg ZmxvYXQgZjMyOyB9IGZwYXJ0Owo+ICsKPiArICAgIHN3aXRjaCAoaGRyLT5jb2VmX2RhdGFfdHlw ZSkgewo+ICsgICAgY2FzZSBSUFVfQ09FRkZfRklYRUQ6Cj4gKyAgICAgICAgaXBhcnQgPSBnZXRf dWVfZ29sb21iX2xvbmcoZ2IpOwo+ICsgICAgICAgIGZwYXJ0LnUzMiA9IGdldF9iaXRzX2xvbmco Z2IsIGhkci0+Y29lZl9sb2cyX2Rlbm9tKTsKPiArICAgICAgICByZXR1cm4gKGlwYXJ0IDw8IGhk ci0+Y29lZl9sb2cyX2Rlbm9tKSArIGZwYXJ0LnUzMjsKCkhlcmUgYW5kIGluIGdldF9zZV9jb2Vm IGJlbG93IHRoZSBmMzIgbWVtYmVyIG9mIHRoZSB1bmlvbiBpcyBub3QgdXNlZAp3aXRoIFJQVV9D T0VGRl9GSVhFRCwgc28gdXNpbmcgdGhlIHVuaW9uIHNlZW1zIHVubmVjZXNzYXJ5LiBJdCBpcyBh bHNvCnNsaWdodGx5IGNvbmZ1c2luZywgYmVjYXVzZSB1cG9uIHNlZWluZyB0aGlzIGFuZCBzZWVp bmcgdGhhdCB0aGUgdW5pb24KaXMgdXNlZCB3aXRoIFJQVV9DT0VGRl9GSVhFRCwgSSBleHBlY3Qg aXQgdG8gYmUgdXNlZCBmb3IgdHlwZS1wdW5uaW5nLgoKPiArCj4gKyAgICBjYXNlIFJQVV9DT0VG Rl9GTE9BVDoKPiArICAgICAgICBmcGFydC51MzIgPSBnZXRfYml0c19sb25nKGdiLCAzMik7Cj4g KyAgICAgICAgcmV0dXJuIGZwYXJ0LmYzMiAqICgxIDw8IGhkci0+Y29lZl9sb2cyX2Rlbm9tKTsK CllvdSBjb3VsZCBqdXN0IHVzZSBhdl9pbnQyZmxvYXQoKSBoZXJlIGluc3RlYWQgb2YgYWRkaW5n IHRoZSB1bmlvbiB5b3Vyc2VsZi4KCj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIDA7IC8qIHVu cmVhY2hhYmxlICovCj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgaW50NjRfdCBnZXRfc2VfY29l ZihHZXRCaXRDb250ZXh0ICpnYiwgY29uc3QgQVZET1ZJUnB1RGF0YUhlYWRlciAqaGRyKQo+ICt7 Cj4gKyAgICBpbnQ2NF90IGlwYXJ0Owo+ICsgICAgdW5pb24geyB1aW50MzJfdCB1MzI7IGZsb2F0 IGYzMjsgfSBmcGFydDsKPiArCj4gKyAgICBzd2l0Y2ggKGhkci0+Y29lZl9kYXRhX3R5cGUpIHsK PiArICAgIGNhc2UgUlBVX0NPRUZGX0ZJWEVEOgo+ICsgICAgICAgIGlwYXJ0ID0gZ2V0X3NlX2dv bG9tYl9sb25nKGdiKTsKPiArICAgICAgICBmcGFydC51MzIgPSBnZXRfYml0c19sb25nKGdiLCBo ZHItPmNvZWZfbG9nMl9kZW5vbSk7Cj4gKyAgICAgICAgcmV0dXJuIChpcGFydCA8PCBoZHItPmNv ZWZfbG9nMl9kZW5vbSkgKyBmcGFydC51MzI7Cj4gKwo+ICsgICAgY2FzZSBSUFVfQ09FRkZfRkxP QVQ6Cj4gKyAgICAgICAgZnBhcnQudTMyID0gZ2V0X2JpdHNfbG9uZyhnYiwgMzIpOwo+ICsgICAg ICAgIHJldHVybiBmcGFydC5mMzIgKiAoMSA8PCBoZHItPmNvZWZfbG9nMl9kZW5vbSk7Cj4gKyAg ICB9Cj4gKwo+ICsgICAgcmV0dXJuIDA7IC8qIHVucmVhY2hhYmxlICovCj4gK30KPiArCj4gKyNk ZWZpbmUgVkFMSURBVEUoVkFSLCBNSU4sIE1BWCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAg ICAgICBpZiAoVkFSIDwgTUlOIHx8IFZBUiA+IE1BWCkgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgICAgIGF2X2xvZyhzLT5sb2djdHgsIEFW X0xPR19FUlJPUiwgIlJQVSB2YWxpZGF0aW9uIGZhaWxlZDogIiAgICAgICAgICAgXAo+ICsgICAg ICAgICAgICAgICAgICAgI01JTiIgPD0gIiNWQVIiID0gJWQgPD0gIiNNQVgiXG4iLCAoaW50KSBW QVIpOyAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAgZ290byBmYWlsOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAg ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICsgICAgfSB3aGlsZSAoMCkKPiArCj4gK2ludCBmZl9kb3Zp X3JwdV9wYXJzZShET1ZJQ29udGV4dCAqcywgY29uc3QgdWludDhfdCAqcnB1LCBzaXplX3QgcnB1 X3NpemUpCj4gK3sKPiArICAgIEFWRE9WSVJwdURhdGFIZWFkZXIgKmhkciA9ICZzLT5oZWFkZXI7 Cj4gKyAgICBHZXRCaXRDb250ZXh0ICpnYiA9ICYoR2V0Qml0Q29udGV4dCl7MH07Cj4gKyAgICBE T1ZJVmRyUmVmICp2ZHI7Cj4gKyAgICBpbnQgcmV0Owo+ICsKPiArICAgIHVpbnQ4X3QgbmFsX3By ZWZpeDsKPiArICAgIHVpbnQ4X3QgcnB1X3R5cGU7Cj4gKyAgICB1aW50OF90IHZkcl9zZXFfaW5m b19wcmVzZW50Owo+ICsgICAgdWludDhfdCB2ZHJfZG1fbWV0YWRhdGFfcHJlc2VudDsKPiArICAg IHVpbnQ4X3QgdXNlX3ByZXZfdmRyX3JwdTsKPiArICAgIHVpbnQ4X3QgdXNlX25scTsKPiArICAg IHVpbnQ4X3QgcHJvZmlsZTsKPiArICAgIGlmICgocmV0ID0gaW5pdF9nZXRfYml0czgoZ2IsIHJw dSwgcnB1X3NpemUpKSA8IDApCgpOb3RpY2UgdGhhdCBycHVfc2l6ZSBpcyBjb252ZXJ0ZWQgdG8g aW50IGJlZm9yZSBpbml0X2dldF9iaXRzOCgpIGlzCmNhbGxlZC4gKEl0IGlzIG5vdCBwcm9ibGVt YXRpYyB3aXRoIHRoZSB1c2UgaW4gNi82IGJlY2F1c2UgdGhlIHNpemUgaGFzCmFscmVhZHkgYmVl biBjaGVja2VkIGluIHRoaXMgY2FzZS4pCgo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwg bWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsg YWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJq ZWN0ICJ1bnN1YnNjcmliZSIuCg==