From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AC742F54AD9 for ; Tue, 24 Mar 2026 16:42:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CBD6D10E769; Tue, 24 Mar 2026 16:42:31 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="mV4U+UUX"; dkim-atps=neutral Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010034.outbound.protection.outlook.com [52.101.56.34]) by gabe.freedesktop.org (Postfix) with ESMTPS id E21FE10E675; Tue, 24 Mar 2026 16:42:29 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UXw5iehuPU3UQ57I2oLjEUQ7hG5hBfniK3v4LkGk8h0APOi+BM1Hp/59dZz7GUIuYjp31DkuYXM0TGM9uH8I0a5AFNu7dcl2UWzeqj0WPvW91LTIFz0yJy8jKb+PD6ykMLsMbQZqGm70Q7J6RuJh8I7lYfuvBzPo68jqC2SCFsOhA5RnCppY4Rds4ryRVbb5vOGFi/IKo+ULXm2sIFmpT57GcQGWfxrup9X1dzTRgw8zvwjMdzBTP+oCJbagXCN80rJl0WUy9Gv1aY99Yqptt20MA3jyO43KuoLtcOCTKuYe7hNVmJRcxMsPaTpFEChYlTX5UyowDbHt7gshJ3TkUg== 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=aSoRfcX4FcBpuAuNyPFemZ7/1Yeb0Eaw1D8N5ntp4Ms=; b=O9+lb2OdOGbJbN+9yJlmLkEgKQ1UwJ0xxNh1kTODZHtk6bgLTFmLwDAAmtdSEMtJE4rFBHVrKR7toq2YZTz7wdOM0kT8MkcofZrYe0E1xRg6YZaEBEp9mMxMYFMU1rCIp61xjIe+w977d4IBzqqrlQXDZzjrEDMk739Vy7C4JnGfUH2PLpomTprodZw+batNOpsz7wHLio7WfxwMiuOND9CzFg5/2qgtjfppHBcfF94EWRssCn6igN6xUJfyfDKQ9da43qRCXCN0UmR+NPUDhQwDAA/J6zqyLaVe3yGTI+tfVE6H6RFD9zzIDQ2+NYN30B/J2rbCNcFRWXT8JVzB/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aSoRfcX4FcBpuAuNyPFemZ7/1Yeb0Eaw1D8N5ntp4Ms=; b=mV4U+UUXO6DeyGIaw22BqhGz1HsYPevMHWvuXJn3bDrFUZ87zCrfrGq/BsKO/k/4uK5DXOGqnYtKr+IKPhI1ooDFj8HbsuqrUs50jzSMXgUzY0xiqpi5GUKjC7lM70DilNm5O/VHUOcPaA48Fbfh5/0LKmrcoDx1Lr6cZz4rf+c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from MW3PR12MB4379.namprd12.prod.outlook.com (2603:10b6:303:5e::11) by PH7PR12MB5951.namprd12.prod.outlook.com (2603:10b6:510:1da::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Tue, 24 Mar 2026 16:42:23 +0000 Received: from MW3PR12MB4379.namprd12.prod.outlook.com ([fe80::d592:38a6:6bcb:8df7]) by MW3PR12MB4379.namprd12.prod.outlook.com ([fe80::d592:38a6:6bcb:8df7%4]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026 16:42:23 +0000 Message-ID: <22eb66d8-b74a-4e0a-9851-7e39c7f950cd@amd.com> Date: Tue, 24 Mar 2026 12:42:19 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] drm/amd/display: Wire up dcn10_dio_construct() for all pre-DCN401 generations To: Alex Deucher , "Ionut Nechita (Sunlight Linux)" , "LIPSKI, IVAN" Cc: amd-gfx@lists.freedesktop.org, harry.wentland@amd.com, sunpeng.li@amd.com, siqueira@igalia.com, alexander.deucher@amd.com, christian.koenig@amd.com, airlied@gmail.com, simona@ffwll.ch, dri-devel@lists.freedesktop.org, Ionut Nechita References: <20260323211343.263909-1-sunlightlinux@gmail.com> Content-Language: en-US From: "LIPSKI, IVAN" Organization: AMD Inc. In-Reply-To: Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-ClientProxiedBy: BY3PR10CA0028.namprd10.prod.outlook.com (2603:10b6:a03:255::33) To MW3PR12MB4379.namprd12.prod.outlook.com (2603:10b6:303:5e::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW3PR12MB4379:EE_|PH7PR12MB5951:EE_ X-MS-Office365-Filtering-Correlation-Id: cdfe09ed-19cd-43e8-cd2a-08de89c452b4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: 6ahg/ED+eeb0ee+IRNRa5ncJBk3QWPy8e/DfewpPB2u2QCSvDzou7qcMIoQZybhnvZAUYMeTN6yqw5bU3DS8Sp/myq2Spd4YkAXO3KHIUoj6TmEkV6KKUll29kzADAwrrq+9s/ewkvo+XFvtUmui3ep93IzEV4f5gThaZVP4X+jHTk3YbRtoXE6aAf0o6ZeZ0oOXTHhoYcmwyvi4FWR6sYrTGJsnzXC70u7Xe6+fgSOVaL4TQJWoIeI/JepAWU7KkE9sQ5GH+YxoAZ5xQe0RnD/VUSNBMqGlwbf1P+OLqcGtBakQNqvIVF9SaQszxY6SsbPuoftFrJqKQIExFWAEL59VYBIca37RGQZPyU0qmbRvNeDyAszSwNjAOHgmQ9NNWWV0BpFWa1z0rSYhR/RrM3NOZFgZIFgnTX/BMXVUfxfZzI5OhULQLQr8gGa85aqVFDBs2uvnhuFODND80ZvAIbzxVfToU4i/IvEldokgFHxz58smW4BS654GswTTqNNsp+c/ng+YsXO7kfTZtEUbMZ4aA1p9iG5G05Tnst+QCUPkXtUzBi38JvybhtwssTFSrbJGSpcX6V0Vl1wDnfQ5lLGVHWQZ4/pmsX3LNKdcwHei+XPslHHSGO6aa4xCuG7UHp5sxFT0AN9oC5dg5Wvq7psoCzlQV8V7OFywhDZCJWo/z3HjedBRIfYG89la946HekUv1NmPrpyUYzGirTQ6SbUNWh0teYb0zwjVXbNjrc4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR12MB4379.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(56012099003)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eERIelJXV2JJMkFNRmRjeWlidTNlVnZZaUdiZFBMeWxHR2QzVGx6dWdDMGFU?= =?utf-8?B?KzBqSVhneDBNemF4dStIMHpndGZkbnhMZzh1eVdyUDJjdEtWd0VTQ3RZSUFB?= =?utf-8?B?T1g3MjY0a2dXMkw2dTJKWUFPckdnL1l6QWwyOTkxVHdMQ0xXK0FBSlZNVjVB?= =?utf-8?B?T2lsSFlxb0pkdnAzZ251K2FFVWJkWVZqSlVjZmVmamxUUEFMN3d1c3RNZGV6?= =?utf-8?B?UmZDWkRXWWRPNXo3UHFQQ0hiSUxxSHl1dFRXQjlkbWlBSVYxVExUcmRrbVJm?= =?utf-8?B?U3VTMEpoSUkwbnlIdUtFdm9ualhiTEs1UU56RGgxU2JjYi85NWR4cDJlUE9h?= =?utf-8?B?OVBuNHYwUzhaSHZNZVB3Y09NcFFzMjRIcW1qMk5tZ1FoZ051bmlqbXgvQU1Z?= =?utf-8?B?alcvbGJFYTlKZm90RVdldTM1MW1FWU9MM2FWcUMvN3lzUUphQXlYZE1jUmMr?= =?utf-8?B?LzZrWllDL09BcjhaVjlFNHJ2dVI2NlNDdFFLOE84d25BUnpBd2grUkVJQjNM?= =?utf-8?B?MHZCWERYVGE2VFRoeEVnLzlOdnNoTThQR2UwRmdLTG84RUsyeWpTSG1zOHEz?= =?utf-8?B?TkFEVUJEY0did3pSL2pIaWEza0dUNFhDaXNGaTZEdVljRE10UEFsVmt4dDRr?= =?utf-8?B?dHpyaHQ5R1U1dmp4VDJ5VHV5OWpZZU96S1pFRUV1bE1zVThFNE1yMndwNGFo?= =?utf-8?B?a0dCbVZmQUd4ZTBTTERpMkIrNnYrcjVRbFdyeUc4aWhxUDBVSTlUVTlEdUtj?= =?utf-8?B?Z2s0eTJsWlVQWUREUW1EejFkNWd0VkRGTFBKQVdrdUN5MG5JMzQrOGhkeXNV?= =?utf-8?B?dytKNUR2WkJXcXgrbXlUSGpTWEhkbTduYUswZGM2Ukszazdmck5UUTFuM3FM?= =?utf-8?B?c2pxRGFGWXE3ZElaV2RZdk00MWxnRUxvbVoyUXB2TDI2ZUtVUTUvbGNzMWRC?= =?utf-8?B?VkFELzdjSVRFaXFYU2lRMEdLL2o3aGNBenJ0Wi9PRGVEenN5WTJRWDRjVW9T?= =?utf-8?B?emxMZURHNHdrQW94aGloRER2ekpnaExzdHVkRnA4aGh0bWJRMnpUTURiakQ0?= =?utf-8?B?REExaFZ0OGZYaHd4dmlTd0tWWG1HVGdZOEJyTEF1YjNwZW1OT2pVY3NSUENJ?= =?utf-8?B?THR3UFlnRlZRN3JTVHRlMTRvRzZjVTRxZmxrWmFqdHYvN1hQSy9pSjdBb3pi?= =?utf-8?B?L01qSlZQaE1RU0NjZ2NIeVFvWWZkbjVqMlk4eDJOczg1bVFYWnNnb2pjOERz?= =?utf-8?B?ZVRXZGNiQ0JCd1FaTEVnNW5vUm1MMnVDRlFZV0s1S1JuVW5RZlJQRVdJUWtG?= =?utf-8?B?Y0ZlWFhobkYyUTB0eGROdHg1RDVIM0V1cUtRc2EyL3lLaXo1bDhjbGh5czJn?= =?utf-8?B?d1ArcFBYbnQ1S1RDclZseGhGZGtxRGFwSXljaEFDWlp5T3FLbUFERDNJSGxY?= =?utf-8?B?RTQyREl2Z3VlRnVsdS9la3ZkeWhsNFJzdE1IUDlTMGJ5NlBKVkE2a2dRUTBo?= =?utf-8?B?NHN1b2Rqb1BGNzRySzBPTXhVKzM4ZnVNNzZic2Q2djZOOTc1TjRoYXZnUXRG?= =?utf-8?B?WGFGWXZuNUpXTlY3alpBbGo2SGZjNzNraEtSMTIzOEZNUDlyV1JhR1QxSUFw?= =?utf-8?B?clpHODZCb084NitzM3NyRTFxVnkrTHpibEsrTXQweGVxWmdOTE96NlpiUlpz?= =?utf-8?B?L0hZa05mQWJDdWd6bVh0ODBZM3lpa05Pa1RpN09qOWNsa3I0aHpDRER3cFRn?= =?utf-8?B?TUlyREQ5TXBiYzVTblpYUkNDVmJUTWQwOExjblpNdjMwVWpxTmJvR2JzVkQ5?= =?utf-8?B?STRiK05mODNQcHFVem9lMnFSU1JYWGMveWpxMm52cWRaSHA1b2xoL1Y0NURZ?= =?utf-8?B?VGxSRFpaajBXVjdjRkFhL2xQbFdQM1NtOW01TWF0UzFYT29CSzB0cis4RnNN?= =?utf-8?B?c3hFQWhnekpacG9vZWo1bEMyUHZqRlQxdkFmU09mSndqOTZMc2JRVTBramRs?= =?utf-8?B?UzR6SWNuT0QxUWl0dERENW1wa2E4NU9HcDQrWWhoaXB0b1B2T25wcGdzQlpw?= =?utf-8?B?MStzeVlCa3lFNGsxQlZsVzltcjlUUEpydHVIMWlDZllJL1ZpYVRvZEgwRGtZ?= =?utf-8?B?bkkwVVlMSTdVWDhaRnQwajRBaVVpckZBdTlNZjIwRE92K0lTa2JlQjFoWHRV?= =?utf-8?B?eE9wMEZxR2lkanpUMTVvbTh5QWJlNFI5NVNOeXlOL3lNMUUzdS9nam1zaUk4?= =?utf-8?B?bEtDcDVyV2c5Z0luSmw0cis3MTljTk51aWwyeGNVei84eXQxSkgvMEdSTHdM?= =?utf-8?B?Slo3NVR6S2hOWWRkRGZtamp0RnFYKzJPQkJwalJENFNYVVIwOE5Edz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: cdfe09ed-19cd-43e8-cd2a-08de89c452b4 X-MS-Exchange-CrossTenant-AuthSource: MW3PR12MB4379.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 16:42:23.0906 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Z5UEvC5VTPqX4cZUAllgoxHhOmB6SYYrQeRVLweL7TVpK/XDAJf3WdkWu6m0enDujv+8xl7EjPHVHCt6ZlfsRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5951 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" CgpPbiAzLzI0LzIwMjYgMTA6MzcgQU0sIEFsZXggRGV1Y2hlciB3cm90ZToKPiArIEl2YW4KPiAK PiBPbiBNb24sIE1hciAyMywgMjAyNiBhdCA1OjI04oCvUE0gSW9udXQgTmVjaGl0YSAoU3VubGln aHQgTGludXgpCj4gPHN1bmxpZ2h0bGludXhAZ21haWwuY29tPiB3cm90ZToKPj4KPj4gRnJvbTog SW9udXQgTmVjaGl0YSA8aW9udXRfbjIwMDFAeWFob28uY29tPgo+Pgo+PiBEZXNjcmlwdGlvbjoK Pj4gICAtIENvbW1pdCBiODJmMDc1OTM0NjYxN2IyICgiZHJtL2FtZC9kaXNwbGF5OiBNaWdyYXRl IERJTyByZWdpc3RlcnMgYWNjZXNzCj4+ICAgICBmcm9tIGh3c2VxIHRvIGRpbyBjb21wb25lbnQi KSBtb3ZlZCBESU9fTUVNX1BXUl9DVFJMIHJlZ2lzdGVyIGFjY2Vzcwo+PiAgICAgYmVoaW5kIHRo ZSBuZXcgZGlvIGFic3RyYWN0aW9uIGxheWVyIGJ1dCBvbmx5IGNyZWF0ZWQgdGhlIGRpbyBvYmpl Y3QgZm9yCj4+ICAgICBEQ04gNC4wMS4gT24gYWxsIG90aGVyIGdlbmVyYXRpb25zIChEQ04gMTAv MjAvMjEvMjAxLzMwLzMwMS8zMDIvMzAzLwo+PiAgICAgMzEvMzE0LzMxNS8zMTYvMzIvMzIxLzM1 LzM1MS8zNiksIHRoZSBkaW8gcG9pbnRlciBpcyBOVUxMLCBjYXVzaW5nIHRoZQo+PiAgICAgcmVn aXN0ZXIgd3JpdGUgdG8gYmUgc2lsZW50bHkgc2tpcHBlZC4KPj4KPj4gICAgIFRoaXMgcmVzdWx0 cyBpbiBBRk1UIEhETUkgbWVtb3J5IG5vdCBiZWluZyBwb3dlcmVkIG9uIGR1cmluZyBpbml0X2h3 LAo+PiAgICAgd2hpY2ggY2FuIGNhdXNlIEhETUkgYXVkaW8gZmFpbHVyZXMgYW5kIGRpc3BsYXkg aXNzdWVzIG9uIGFmZmVjdGVkCj4+ICAgICBoYXJkd2FyZSBpbmNsdWRpbmcgUmVub2lyL0NlemFu bmUgKERDTiAyLjEpIEFQVXMgdGhhdCB1c2UgZGNuMTBfaW5pdF9ody4KPj4KPj4gICAgIENhbGwg ZGNuMTBfZGlvX2NvbnN0cnVjdCgpIGluIGVhY2ggb2xkZXIgRENOIGdlbmVyYXRpb24ncyByZXNv dXJjZS5jCj4+ICAgICB0byBjcmVhdGUgdGhlIGRpbyBvYmplY3QsIGZvbGxvd2luZyB0aGUgc2Ft ZSBwYXR0ZXJuIGFzIERDTiA0LjAxLiBUaGlzCj4+ICAgICBlbnN1cmVzIHRoZSBkaW8gcG9pbnRl ciBpcyBub24tTlVMTCBhbmQgdGhlIG1lbV9wd3JfY3RybCBjYWxsYmFjayB3b3Jrcwo+PiAgICAg dGhyb3VnaCB0aGUgZGlvIGFic3RyYWN0aW9uIGZvciBhbGwgRENOIGdlbmVyYXRpb25zLgo+Pgo+ PiBGaXhlczogYjgyZjA3NTkzNDY2MTdiMiAoImRybS9hbWQvZGlzcGxheTogTWlncmF0ZSBESU8g cmVnaXN0ZXJzIGFjY2VzcyBmcm9tIGh3c2VxIHRvIGRpbyBjb21wb25lbnQuIikKPj4gU2lnbmVk LW9mZi1ieTogSW9udXQgTmVjaGl0YSA8aW9udXRfbjIwMDFAeWFob28uY29tPgoKVGhhbmsgeW91 LCBJb251dC4KCldlJ2xsIHRlc3QgdGhpcyBwYXRjaCBpbiB0aGUgbmV4dCB3ZWVrJ3MgZGlzcGxh eSBkcml2ZXIgcHJvbW90aW9uIGN5Y2xlIApiZWZvcmUgbWVyZ2luZy4KCkluIHRoZSBtZWFudGlt ZSwgdGhpcyBwYXRjaCBpcwoKUmV2aWV3ZWQtYnk6IEl2YW4gTGlwc2tpIDxpdmFuLmxpcHNraUBh bWQuY29tPgoKCj4+IC0tLQo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24xMC9kY24xMF9yZXNvdXJj ZS5jICAgICAgICB8IDQxICsrKysrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9k Y24yMC9kY24yMF9yZXNvdXJjZS5jICAgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKwo+PiAg IC4uLi9kYy9yZXNvdXJjZS9kY24yMDEvZGNuMjAxX3Jlc291cmNlLmMgICAgICB8IDQxICsrKysr KysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24yMS9kY24yMV9yZXNvdXJjZS5j ICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24zMC9k Y24zMF9yZXNvdXJjZS5jICAgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKwo+PiAgIC4uLi9k Yy9yZXNvdXJjZS9kY24zMDEvZGNuMzAxX3Jlc291cmNlLmMgICAgICB8IDQyICsrKysrKysrKysr KysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24zMDIvZGNuMzAyX3Jlc291cmNlLmMgICAg ICB8IDQxICsrKysrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24zMDMvZGNu MzAzX3Jlc291cmNlLmMgICAgICB8IDQxICsrKysrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9y ZXNvdXJjZS9kY24zMS9kY24zMV9yZXNvdXJjZS5jICAgICAgICB8IDQwICsrKysrKysrKysrKysr KysrCj4+ICAgLi4uL2RjL3Jlc291cmNlL2RjbjMxNC9kY24zMTRfcmVzb3VyY2UuYyAgICAgIHwg NDAgKysrKysrKysrKysrKysrKysKPj4gICAuLi4vZGMvcmVzb3VyY2UvZGNuMzE1L2RjbjMxNV9y ZXNvdXJjZS5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJj ZS9kY24zMTYvZGNuMzE2X3Jlc291cmNlLmMgICAgICB8IDQwICsrKysrKysrKysrKysrKysrCj4+ ICAgLi4uL2RjL3Jlc291cmNlL2RjbjMyL2RjbjMyX3Jlc291cmNlLmMgICAgICAgIHwgNDMgKysr KysrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24zMjEvZGNuMzIxX3Jlc291 cmNlLmMgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysKPj4gICAuLi4vZGMvcmVzb3VyY2Uv ZGNuMzUvZGNuMzVfcmVzb3VyY2UuYyAgICAgICAgfCA0MyArKysrKysrKysrKysrKysrKysrCj4+ ICAgLi4uL2RjL3Jlc291cmNlL2RjbjM1MS9kY24zNTFfcmVzb3VyY2UuYyAgICAgIHwgNDMgKysr KysrKysrKysrKysrKysrKwo+PiAgIC4uLi9kYy9yZXNvdXJjZS9kY24zNi9kY24zNl9yZXNvdXJj ZS5jICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysKPj4gICAxNyBmaWxlcyBjaGFuZ2Vk LCA2OTkgaW5zZXJ0aW9ucygrKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjEwL2RjbjEwX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYwo+PiBp bmRleCBiYmUxODVlMTVlYjY3Li40NjYzNDU2YTczNmEyIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMTAvZGNu MTBfcmVzb3VyY2UuYwo+PiBAQCAtNzEsNiArNzEsNyBAQAo+PiAgICNpbmNsdWRlICJkY2UvZGNl X2RtY3UuaCIKPj4gICAjaW5jbHVkZSAiZGNlL2RjZV9hdXguaCIKPj4gICAjaW5jbHVkZSAiZGNl L2RjZV9pMmMuaCIKPj4gKyNpbmNsdWRlICJkaW8vZGNuMTAvZGNuMTBfZGlvLmgiCj4+Cj4+ICAg I2lmbmRlZiBtbURQMF9EUF9EUEhZX0lOVEVSTkFMX0NUUkwKPj4gICAgICAgICAgI2RlZmluZSBt bURQMF9EUF9EUEhZX0lOVEVSTkFMX0NUUkwgICAgICAgICAgICAgMHgyMTBmCj4+IEBAIC00NDQs NiArNDQ1LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2h1YmJ1Yl9tYXNrIGh1YmJ1Yl9t YXNrID0gewo+PiAgICAgICAgICAgICAgICAgIEhVQkJVQl9NQVNLX1NIX0xJU1RfRENOMTAoX01B U0spCj4+ICAgfTsKPj4KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19yZWdpc3RlcnMg ZGlvX3JlZ3MgPSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fUkVHX0xJU1RfRENOMTAoKQo+PiAr fTsKPj4gKwo+PiArI2RlZmluZSBESU9fTUFTS19TSF9MSVNUKG1hc2tfc2gpXAo+PiArICAgICAg ICAgICAgICAgSFdTX1NGKCwgRElPX01FTV9QV1JfQ1RSTCwgSTJDX0xJR0hUX1NMRUVQX0ZPUkNF LCBtYXNrX3NoKQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fc2hpZnQgZGlv X3NoaWZ0ID0gewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfX1NISUZUKQo+ PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX21hc2sgZGlvX21hc2sg PSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9NQVNLKQo+PiArfTsKPj4g Kwo+PiArc3RhdGljIHN0cnVjdCBkaW8gKmRjbjEwX2Rpb19jcmVhdGUoc3RydWN0IGRjX2NvbnRl eHQgKmN0eCkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZGNuMTBfZGlvICpkaW8xMCA9IGt6YWxs b2Nfb2JqKHN0cnVjdCBkY24xMF9kaW8pOwo+PiArCj4+ICsgICAgICAgaWYgKCFkaW8xMCkKPj4g KyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2Nv bnN0cnVjdChkaW8xMCwgY3R4LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ ICsKPj4gKyAgICAgICByZXR1cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+PiArCj4+ICAgc3RhdGlj IGludCBtYXBfdHJhbnNtaXR0ZXJfaWRfdG9fcGh5X2luc3RhbmNlKAo+PiAgICAgICAgICBlbnVt IHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyKQo+PiAgIHsKPj4gQEAgLTkxNyw2ICs5NDUsMTEgQEAg c3RhdGljIHZvaWQgZGNuMTBfcmVzb3VyY2VfZGVzdHJ1Y3Qoc3RydWN0IGRjbjEwX3Jlc291cmNl X3Bvb2wgKnBvb2wpCj4+ICAgICAgICAgIGtmcmVlKHBvb2wtPmJhc2UuaHViYnViKTsKPj4gICAg ICAgICAgcG9vbC0+YmFzZS5odWJidWIgPSBOVUxMOwo+Pgo+PiArICAgICAgIGlmIChwb29sLT5i YXNlLmRpbyAhPSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBrZnJlZShUT19EQ04xMF9ESU8o cG9vbC0+YmFzZS5kaW8pKTsKPj4gKyAgICAgICAgICAgICAgIHBvb2wtPmJhc2UuZGlvID0gTlVM TDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBvb2wtPmJh c2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHBvb2wtPmJhc2Uu b3Bwc1tpXSAhPSBOVUxMKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9vbC0+YmFzZS5v cHBzW2ldLT5mdW5jcy0+b3BwX2Rlc3Ryb3koJnBvb2wtPmJhc2Uub3Bwc1tpXSk7Cj4+IEBAIC0x NjUzLDYgKzE2ODYsMTQgQEAgc3RhdGljIGJvb2wgZGNuMTBfcmVzb3VyY2VfY29uc3RydWN0KAo+ PiAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAg IC8qIERJTyAqLwo+PiArICAgICAgIHBvb2wtPmJhc2UuZGlvID0gZGNuMTBfZGlvX2NyZWF0ZShj dHgpOwo+PiArICAgICAgIGlmIChwb29sLT5iYXNlLmRpbyA9PSBOVUxMKSB7Cj4+ICsgICAgICAg ICAgICAgICBCUkVBS19UT19ERUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAgZG1fZXJyb3Io IkRDOiBmYWlsZWQgdG8gY3JlYXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBm YWlsOwo+PiArICAgICAgIH0KPj4gKwo+PiAgICAgICAgICBpZiAoIXJlc291cmNlX2NvbnN0cnVj dChudW1fdmlydHVhbF9saW5rcywgZGMsICZwb29sLT5iYXNlLAo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgJnJlc19jcmVhdGVfZnVuY3MpKQo+PiAgICAgICAgICAgICAgICAgIGdvdG8gZmFp bDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJj ZS9kY24yMC9kY24yMF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L3Jlc291cmNlL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKPj4gaW5kZXggOGI1NTUxODdhYzc1My4u NzRlOGQyMjljOWRkMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL3Jlc291cmNlL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKPj4gQEAg LTgyLDYgKzgyLDcgQEAKPj4gICAjaW5jbHVkZSAiZGNlL2RjZV9kbWN1LmgiCj4+ICAgI2luY2x1 ZGUgImRjZS9kY2VfYXV4LmgiCj4+ICAgI2luY2x1ZGUgImRjZS9kY2VfaTJjLmgiCj4+ICsjaW5j bHVkZSAiZGlvL2RjbjEwL2RjbjEwX2Rpby5oIgo+PiAgICNpbmNsdWRlICJ2bV9oZWxwZXIuaCIK Pj4KPj4gICAjaW5jbHVkZSAibGlua19lbmNfY2ZnLmgiCj4+IEBAIC01NTAsNiArNTUxLDMzIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2h1YmJ1Yl9tYXNrIGh1YmJ1Yl9tYXNrID0gewo+PiAg ICAgICAgICAgICAgICAgIEhVQkJVQl9NQVNLX1NIX0xJU1RfRENOMjAoX01BU0spCj4+ICAgfTsK Pj4KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19yZWdpc3RlcnMgZGlvX3JlZ3MgPSB7 Cj4+ICsgICAgICAgICAgICAgICBESU9fUkVHX0xJU1RfRENOMTAoKQo+PiArfTsKPj4gKwo+PiAr I2RlZmluZSBESU9fTUFTS19TSF9MSVNUKG1hc2tfc2gpXAo+PiArICAgICAgICAgICAgICAgSFdT X1NGKCwgRElPX01FTV9QV1JfQ1RSTCwgSTJDX0xJR0hUX1NMRUVQX0ZPUkNFLCBtYXNrX3NoKQo+ PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fc2hpZnQgZGlvX3NoaWZ0ID0gewo+ PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfX1NISUZUKQo+PiArfTsKPj4gKwo+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX21hc2sgZGlvX21hc2sgPSB7Cj4+ICsgICAg ICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9NQVNLKQo+PiArfTsKPj4gKwo+PiArc3RhdGlj IHN0cnVjdCBkaW8gKmRjbjIwX2Rpb19jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0eCkKPj4g K3sKPj4gKyAgICAgICBzdHJ1Y3QgZGNuMTBfZGlvICpkaW8xMCA9IGt6YWxsb2Nfb2JqKHN0cnVj dCBkY24xMF9kaW8pOwo+PiArCj4+ICsgICAgICAgaWYgKCFkaW8xMCkKPj4gKyAgICAgICAgICAg ICAgIHJldHVybiBOVUxMOwo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2NvbnN0cnVjdChkaW8x MCwgY3R4LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ICsKPj4gKyAgICAg ICByZXR1cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+PiArCj4+ICAgI2RlZmluZSB2bWlkX3JlZ3Mo aWQpXAo+PiAgIFtpZF0gPSB7XAo+PiAgICAgICAgICAgICAgICAgIERDTjIwX1ZNSURfUkVHX0xJ U1QoaWQpXAo+PiBAQCAtMTEwNCw2ICsxMTMyLDEyIEBAIHN0YXRpYyB2b2lkIGRjbjIwX3Jlc291 cmNlX2Rlc3RydWN0KHN0cnVjdCBkY24yMF9yZXNvdXJjZV9wb29sICpwb29sKQo+PiAgICAgICAg ICAgICAgICAgIGtmcmVlKHBvb2wtPmJhc2UuaHViYnViKTsKPj4gICAgICAgICAgICAgICAgICBw b29sLT5iYXNlLmh1YmJ1YiA9IE5VTEw7Cj4+ICAgICAgICAgIH0KPj4gKwo+PiArICAgICAgIGlm IChwb29sLT5iYXNlLmRpbyAhPSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBrZnJlZShUT19E Q04xMF9ESU8ocG9vbC0+YmFzZS5kaW8pKTsKPj4gKyAgICAgICAgICAgICAgIHBvb2wtPmJhc2Uu ZGlvID0gTlVMTDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8 IHBvb2wtPmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHBv b2wtPmJhc2UuZHBwc1tpXSAhPSBOVUxMKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgZGNu MjBfZHBwX2Rlc3Ryb3koJnBvb2wtPmJhc2UuZHBwc1tpXSk7Cj4+IEBAIC0yNjkyLDYgKzI3MjYs MTQgQEAgc3RhdGljIGJvb2wgZGNuMjBfcmVzb3VyY2VfY29uc3RydWN0KAo+PiAgICAgICAgICAg ICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ICAgICAgICAgIH0KPj4KPj4gKyAgICAgICAvKiBE SU8gKi8KPj4gKyAgICAgICBwb29sLT5iYXNlLmRpbyA9IGRjbjIwX2Rpb19jcmVhdGUoY3R4KTsK Pj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gPT0gTlVMTCkgewo+PiArICAgICAgICAgICAg ICAgQlJFQUtfVE9fREVCVUdHRVIoKTsKPj4gKyAgICAgICAgICAgICAgIGRtX2Vycm9yKCJEQzog ZmFpbGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gY3JlYXRl X2ZhaWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBwb29s LT5iYXNlLnJlc19jYXAtPm51bV9kc2M7IGkrKykgewo+PiAgICAgICAgICAgICAgICAgIHBvb2wt PmJhc2UuZHNjc1tpXSA9IGRjbjIwX2RzY19jcmVhdGUoY3R4LCBpKTsKPj4gICAgICAgICAgICAg ICAgICBpZiAocG9vbC0+YmFzZS5kc2NzW2ldID09IE5VTEwpIHsKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24yMDEvZGNuMjAxX3Jlc291 cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMjAxL2Rj bjIwMV9yZXNvdXJjZS5jCj4+IGluZGV4IDRlYTc2ZTQ2YWIxNWQuLmUyODliZTcwZWZiNTQgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24y MDEvZGNuMjAxX3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL3Jlc291cmNlL2RjbjIwMS9kY24yMDFfcmVzb3VyY2UuYwo+PiBAQCAtNTYsNiArNTYsNyBA QAo+PiAgICNpbmNsdWRlICJkY2UvZGNlX2F1eC5oIgo+PiAgICNpbmNsdWRlICJkY2UvZGNlX2ky Yy5oIgo+PiAgICNpbmNsdWRlICJkY24xMC9kY24xMF9yZXNvdXJjZS5oIgo+PiArI2luY2x1ZGUg ImRpby9kY24xMC9kY24xMF9kaW8uaCIKPj4KPj4gICAjaW5jbHVkZSAiY3lhbl9za2lsbGZpc2hf aXBfb2Zmc2V0LmgiCj4+Cj4+IEBAIC03NTUsNiArNzU2LDMzIEBAIHN0YXRpYyBzdHJ1Y3QgaHVi YnViICpkY24yMDFfaHViYnViX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiAgICAg ICAgICByZXR1cm4gJmh1YmJ1Yi0+YmFzZTsKPj4gICB9Cj4+Cj4+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRpb19yZWdzID0gewo+PiArICAgICAgICAgICAgICAgRElP X1JFR19MSVNUX0RDTjEwKCkKPj4gK307Cj4+ICsKPj4gKyNkZWZpbmUgRElPX01BU0tfU0hfTElT VChtYXNrX3NoKVwKPj4gKyAgICAgICAgICAgICAgIEhXU19TRigsIERJT19NRU1fUFdSX0NUUkws IEkyQ19MSUdIVF9TTEVFUF9GT1JDRSwgbWFza19zaCkKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkY25fZGlvX3NoaWZ0IGRpb19zaGlmdCA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19N QVNLX1NIX0xJU1QoX19TSElGVCkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGNuX2Rpb19tYXNrIGRpb19tYXNrID0gewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hf TElTVChfTUFTSykKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1Y3QgZGlvICpkY24yMDFfZGlv X2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBk Y24xMF9kaW8gKmRpbzEwID0ga3phbGxvY19vYmooc3RydWN0IGRjbjEwX2Rpbyk7Cj4+ICsKPj4g KyAgICAgICBpZiAoIWRpbzEwKQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICsK Pj4gKyAgICAgICBkY24xMF9kaW9fY29uc3RydWN0KGRpbzEwLCBjdHgsICZkaW9fcmVncywgJmRp b19zaGlmdCwgJmRpb19tYXNrKTsKPj4gKwo+PiArICAgICAgIHJldHVybiAmZGlvMTAtPmJhc2U7 Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKmRjbjIwMV90 aW1pbmdfZ2VuZXJhdG9yX2NyZWF0ZSgKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGNfY29u dGV4dCAqY3R4LAo+PiAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGluc3RhbmNlKQo+PiBAQCAt OTMwLDYgKzk1OCwxMSBAQCBzdGF0aWMgdm9pZCBkY24yMDFfcmVzb3VyY2VfZGVzdHJ1Y3Qoc3Ry dWN0IGRjbjIwMV9yZXNvdXJjZV9wb29sICpwb29sKQo+PiAgICAgICAgICAgICAgICAgIHBvb2wt PmJhc2UuaHViYnViID0gTlVMTDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAgIGlmIChwb29s LT5iYXNlLmRpbyAhPSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBrZnJlZShUT19EQ04xMF9E SU8ocG9vbC0+YmFzZS5kaW8pKTsKPj4gKyAgICAgICAgICAgICAgIHBvb2wtPmJhc2UuZGlvID0g TlVMTDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBvb2wt PmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHBvb2wtPmJh c2UuZHBwc1tpXSAhPSBOVUxMKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgZGNuMjAxX2Rw cF9kZXN0cm95KCZwb29sLT5iYXNlLmRwcHNbaV0pOwo+PiBAQCAtMTI3Niw2ICsxMzA5LDE0IEBA IHN0YXRpYyBib29sIGRjbjIwMV9yZXNvdXJjZV9jb25zdHJ1Y3QoCj4+ICAgICAgICAgICAgICAg ICAgZ290byBjcmVhdGVfZmFpbDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAgIC8qIERJTyAq Lwo+PiArICAgICAgIHBvb2wtPmJhc2UuZGlvID0gZGNuMjAxX2Rpb19jcmVhdGUoY3R4KTsKPj4g KyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gPT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAg QlJFQUtfVE9fREVCVUdHRVIoKTsKPj4gKyAgICAgICAgICAgICAgIGRtX2Vycm9yKCJEQzogZmFp bGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gY3JlYXRlX2Zh aWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIGlmICghcmVzb3VyY2VfY29uc3RydWN0 KG51bV92aXJ0dWFsX2xpbmtzLCBkYywgJnBvb2wtPmJhc2UsCj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAmcmVzX2NyZWF0ZV9mdW5jcykpCj4+ICAgICAgICAgICAgICAgICAgZ290byBjcmVh dGVfZmFpbDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9y ZXNvdXJjZS9kY24yMS9kY24yMV9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL3Jlc291cmNlL2RjbjIxL2RjbjIxX3Jlc291cmNlLmMKPj4gaW5kZXggMGY0MzA3Zjhm M2RkNS4uNDMzM2JhYWM5NmFkNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL3Jlc291cmNlL2RjbjIxL2RjbjIxX3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjIxL2RjbjIxX3Jlc291cmNlLmMK Pj4gQEAgLTg0LDYgKzg0LDcgQEAKPj4gICAjaW5jbHVkZSAiZGNlL2RjZV9kbWN1LmgiCj4+ICAg I2luY2x1ZGUgImRjZS9kY2VfYXV4LmgiCj4+ICAgI2luY2x1ZGUgImRjZS9kY2VfaTJjLmgiCj4+ ICsjaW5jbHVkZSAiZGlvL2RjbjEwL2RjbjEwX2Rpby5oIgo+PiAgICNpbmNsdWRlICJkY24yMV9y ZXNvdXJjZS5oIgo+PiAgICNpbmNsdWRlICJ2bV9oZWxwZXIuaCIKPj4gICAjaW5jbHVkZSAiZGNu MjAvZGNuMjBfdm1pZC5oIgo+PiBAQCAtMzI5LDYgKzMzMCwyNSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRjbl9odWJidWJfbWFzayBodWJidWJfbWFzayA9IHsKPj4gICAgICAgICAgICAgICAgICBI VUJCVUJfTUFTS19TSF9MSVNUX0RDTjIxKF9NQVNLKQo+PiAgIH07Cj4+Cj4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRpb19yZWdzID0gewo+PiArICAgICAgICAgICAg ICAgRElPX1JFR19MSVNUX0RDTjEwKCkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGNuX2Rpb19zaGlmdCBkaW9fc2hpZnQgPSB7IDAgfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0 IHN0cnVjdCBkY25fZGlvX21hc2sgZGlvX21hc2sgPSB7IDAgfTsKPj4gKwo+PiArc3RhdGljIHN0 cnVjdCBkaW8gKmRjbjIxX2Rpb19jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0eCkKPj4gK3sK Pj4gKyAgICAgICBzdHJ1Y3QgZGNuMTBfZGlvICpkaW8xMCA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBk Y24xMF9kaW8pOwo+PiArCj4+ICsgICAgICAgaWYgKCFkaW8xMCkKPj4gKyAgICAgICAgICAgICAg IHJldHVybiBOVUxMOwo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2NvbnN0cnVjdChkaW8xMCwg Y3R4LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ICsKPj4gKyAgICAgICBy ZXR1cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+Pgo+PiAgICNkZWZpbmUgdm1pZF9yZWdzKGlkKVwK Pj4gICBbaWRdID0ge1wKPj4gQEAgLTY3Nyw2ICs2OTcsMTIgQEAgc3RhdGljIHZvaWQgZGNuMjFf cmVzb3VyY2VfZGVzdHJ1Y3Qoc3RydWN0IGRjbjIxX3Jlc291cmNlX3Bvb2wgKnBvb2wpCj4+ICAg ICAgICAgICAgICAgICAga2ZyZWUocG9vbC0+YmFzZS5odWJidWIpOwo+PiAgICAgICAgICAgICAg ICAgIHBvb2wtPmJhc2UuaHViYnViID0gTlVMTDsKPj4gICAgICAgICAgfQo+PiArCj4+ICsgICAg ICAgaWYgKHBvb2wtPmJhc2UuZGlvICE9IE5VTEwpIHsKPj4gKyAgICAgICAgICAgICAgIGtmcmVl KFRPX0RDTjEwX0RJTyhwb29sLT5iYXNlLmRpbykpOwo+PiArICAgICAgICAgICAgICAgcG9vbC0+ YmFzZS5kaW8gPSBOVUxMOwo+PiArICAgICAgIH0KPj4gKwo+PiAgICAgICAgICBmb3IgKGkgPSAw OyBpIDwgcG9vbC0+YmFzZS5waXBlX2NvdW50OyBpKyspIHsKPj4gICAgICAgICAgICAgICAgICBp ZiAocG9vbC0+YmFzZS5kcHBzW2ldICE9IE5VTEwpCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICBkY24yMF9kcHBfZGVzdHJveSgmcG9vbC0+YmFzZS5kcHBzW2ldKTsKPj4gQEAgLTE2NTQsNiAr MTY4MCwxNCBAQCBzdGF0aWMgYm9vbCBkY24yMV9yZXNvdXJjZV9jb25zdHJ1Y3QoCj4+ICAgICAg ICAgICAgICAgICAgZ290byBjcmVhdGVfZmFpbDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAg IC8qIERJTyAqLwo+PiArICAgICAgIHBvb2wtPmJhc2UuZGlvID0gZGNuMjFfZGlvX2NyZWF0ZShj dHgpOwo+PiArICAgICAgIGlmIChwb29sLT5iYXNlLmRpbyA9PSBOVUxMKSB7Cj4+ICsgICAgICAg ICAgICAgICBCUkVBS19UT19ERUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAgZG1fZXJyb3Io IkRDOiBmYWlsZWQgdG8gY3JlYXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBj cmVhdGVfZmFpbDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8 IHBvb2wtPmJhc2UucmVzX2NhcC0+bnVtX2RzYzsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAg cG9vbC0+YmFzZS5kc2NzW2ldID0gZGNuMjFfZHNjX2NyZWF0ZShjdHgsIGkpOwo+PiAgICAgICAg ICAgICAgICAgIGlmIChwb29sLT5iYXNlLmRzY3NbaV0gPT0gTlVMTCkgewo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMwL2RjbjMwX3Jl c291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzAv ZGNuMzBfcmVzb3VyY2UuYwo+PiBpbmRleCAyZmE4NmI5NTg3ZWQwLi44N2I3YjRlZTA0YzY0IDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNu MzAvZGNuMzBfcmVzb3VyY2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvcmVzb3VyY2UvZGNuMzAvZGNuMzBfcmVzb3VyY2UuYwo+PiBAQCAtNjAsNiArNjAsNyBAQAo+ PiAgICNpbmNsdWRlICJkbWwvZGlzcGxheV9tb2RlX3ZiYS5oIgo+PiAgICNpbmNsdWRlICJkY24z MC9kY24zMF9kY2NnLmgiCj4+ICAgI2luY2x1ZGUgImRjbjEwL2RjbjEwX3Jlc291cmNlLmgiCj4+ ICsjaW5jbHVkZSAiZGlvL2RjbjEwL2RjbjEwX2Rpby5oIgo+PiAgICNpbmNsdWRlICJsaW5rX3Nl cnZpY2UuaCIKPj4gICAjaW5jbHVkZSAiZGNlL2RjZV9wYW5lbF9jbnRsLmgiCj4+Cj4+IEBAIC04 ODYsNiArODg3LDMzIEBAIHN0YXRpYyBzdHJ1Y3QgaHViYnViICpkY24zMF9odWJidWJfY3JlYXRl KHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCj4+ICAgICAgICAgIHJldHVybiAmaHViYnViMy0+YmFz ZTsKPj4gICB9Cj4+Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRp b19yZWdzID0gewo+PiArICAgICAgICAgICAgICAgRElPX1JFR19MSVNUX0RDTjEwKCkKPj4gK307 Cj4+ICsKPj4gKyNkZWZpbmUgRElPX01BU0tfU0hfTElTVChtYXNrX3NoKVwKPj4gKyAgICAgICAg ICAgICAgIEhXU19TRigsIERJT19NRU1fUFdSX0NUUkwsIEkyQ19MSUdIVF9TTEVFUF9GT1JDRSwg bWFza19zaCkKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX3NoaWZ0IGRpb19z aGlmdCA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX19TSElGVCkKPj4g K307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19tYXNrIGRpb19tYXNrID0g ewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfTUFTSykKPj4gK307Cj4+ICsK Pj4gK3N0YXRpYyBzdHJ1Y3QgZGlvICpkY24zMF9kaW9fY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0 ICpjdHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRjbjEwX2RpbyAqZGlvMTAgPSBremFsbG9j X29iaihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+PiArICAgICAgIGlmICghZGlvMTApCj4+ICsg ICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArICAgICAgIGRjbjEwX2Rpb19jb25z dHJ1Y3QoZGlvMTAsIGN0eCwgJmRpb19yZWdzLCAmZGlvX3NoaWZ0LCAmZGlvX21hc2spOwo+PiAr Cj4+ICsgICAgICAgcmV0dXJuICZkaW8xMC0+YmFzZTsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBz dHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqZGNuMzBfdGltaW5nX2dlbmVyYXRvcl9jcmVhdGUoCj4+ ICAgICAgICAgICAgICAgICAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKPj4gICAgICAgICAgICAg ICAgICB1aW50MzJfdCBpbnN0YW5jZSkKPj4gQEAgLTEwOTUsNiArMTEyMywxMiBAQCBzdGF0aWMg dm9pZCBkY24zMF9yZXNvdXJjZV9kZXN0cnVjdChzdHJ1Y3QgZGNuMzBfcmVzb3VyY2VfcG9vbCAq cG9vbCkKPj4gICAgICAgICAgICAgICAgICBrZnJlZShwb29sLT5iYXNlLmh1YmJ1Yik7Cj4+ICAg ICAgICAgICAgICAgICAgcG9vbC0+YmFzZS5odWJidWIgPSBOVUxMOwo+PiAgICAgICAgICB9Cj4+ ICsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gIT0gTlVMTCkgewo+PiArICAgICAgICAg ICAgICAga2ZyZWUoVE9fRENOMTBfRElPKHBvb2wtPmJhc2UuZGlvKSk7Cj4+ICsgICAgICAgICAg ICAgICBwb29sLT5iYXNlLmRpbyA9IE5VTEw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAg IGZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnBpcGVfY291bnQ7IGkrKykgewo+PiAgICAgICAg ICAgICAgICAgIGlmIChwb29sLT5iYXNlLmRwcHNbaV0gIT0gTlVMTCkKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgIGRjbjMwX2RwcF9kZXN0cm95KCZwb29sLT5iYXNlLmRwcHNbaV0pOwo+PiBA QCAtMjQ2NCw2ICsyNDk4LDE0IEBAIHN0YXRpYyBib29sIGRjbjMwX3Jlc291cmNlX2NvbnN0cnVj dCgKPj4gICAgICAgICAgICAgICAgICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiAgICAgICAgICB9Cj4+ Cj4+ICsgICAgICAgLyogRElPICovCj4+ICsgICAgICAgcG9vbC0+YmFzZS5kaW8gPSBkY24zMF9k aW9fY3JlYXRlKGN0eCk7Cj4+ICsgICAgICAgaWYgKHBvb2wtPmJhc2UuZGlvID09IE5VTEwpIHsK Pj4gKyAgICAgICAgICAgICAgIEJSRUFLX1RPX0RFQlVHR0VSKCk7Cj4+ICsgICAgICAgICAgICAg ICBkbV9lcnJvcigiREM6IGZhaWxlZCB0byBjcmVhdGUgZGlvIVxuIik7Cj4+ICsgICAgICAgICAg ICAgICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiArICAgICAgIH0KPj4gKwo+PiAgICAgICAgICAvKiBI VUJQcywgRFBQcywgT1BQcyBhbmQgVEdzICovCj4+ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBw b29sLT5iYXNlLnBpcGVfY291bnQ7IGkrKykgewo+PiAgICAgICAgICAgICAgICAgIHBvb2wtPmJh c2UuaHVicHNbaV0gPSBkY24zMF9odWJwX2NyZWF0ZShjdHgsIGkpOwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMwMS9kY24zMDFfcmVz b3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zMDEv ZGNuMzAxX3Jlc291cmNlLmMKPj4gaW5kZXggNzg0MmJlZTU3ZTYzNi4uNmJiMWM2MjEyNGJiNCAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2Rj bjMwMS9kY24zMDFfcmVzb3VyY2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvcmVzb3VyY2UvZGNuMzAxL2RjbjMwMV9yZXNvdXJjZS5jCj4+IEBAIC01OSw2ICs1OSw3 IEBACj4+ICAgI2luY2x1ZGUgImRtbC9kaXNwbGF5X21vZGVfdmJhLmgiCj4+ICAgI2luY2x1ZGUg ImRjbjMwMS9kY24zMDFfZGNjZy5oIgo+PiAgICNpbmNsdWRlICJkY24xMC9kY24xMF9yZXNvdXJj ZS5oIgo+PiArI2luY2x1ZGUgImRpby9kY24xMC9kY24xMF9kaW8uaCIKPj4gICAjaW5jbHVkZSAi ZGNuMzAvZGNuMzBfZGlvX3N0cmVhbV9lbmNvZGVyLmgiCj4+ICAgI2luY2x1ZGUgImRjbjMwMS9k Y24zMDFfZGlvX2xpbmtfZW5jb2Rlci5oIgo+PiAgICNpbmNsdWRlICJkY24zMDEvZGNuMzAxX3Bh bmVsX2NudGwuaCIKPj4gQEAgLTg0Myw2ICs4NDQsMzMgQEAgc3RhdGljIHN0cnVjdCBodWJidWIg KmRjbjMwMV9odWJidWJfY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCj4+ICAgICAgICAg IHJldHVybiAmaHViYnViMy0+YmFzZTsKPj4gICB9Cj4+Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGRjbl9kaW9fcmVnaXN0ZXJzIGRpb19yZWdzID0gewo+PiArICAgICAgICAgICAgICAgRElPX1JF R19MSVNUX0RDTjEwKCkKPj4gK307Cj4+ICsKPj4gKyNkZWZpbmUgRElPX01BU0tfU0hfTElTVCht YXNrX3NoKVwKPj4gKyAgICAgICAgICAgICAgIEhXU19TRigsIERJT19NRU1fUFdSX0NUUkwsIEky Q19MSUdIVF9TTEVFUF9GT1JDRSwgbWFza19zaCkKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVj dCBkY25fZGlvX3NoaWZ0IGRpb19zaGlmdCA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19NQVNL X1NIX0xJU1QoX19TSElGVCkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNu X2Rpb19tYXNrIGRpb19tYXNrID0gewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElT VChfTUFTSykKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1Y3QgZGlvICpkY24zMDFfZGlvX2Ny ZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBkY24x MF9kaW8gKmRpbzEwID0ga3phbGxvY19vYmooc3RydWN0IGRjbjEwX2Rpbyk7Cj4+ICsKPj4gKyAg ICAgICBpZiAoIWRpbzEwKQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICsKPj4g KyAgICAgICBkY24xMF9kaW9fY29uc3RydWN0KGRpbzEwLCBjdHgsICZkaW9fcmVncywgJmRpb19z aGlmdCwgJmRpb19tYXNrKTsKPj4gKwo+PiArICAgICAgIHJldHVybiAmZGlvMTAtPmJhc2U7Cj4+ ICt9Cj4+ICsKPj4gICBzdGF0aWMgc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKmRjbjMwMV90aW1p bmdfZ2VuZXJhdG9yX2NyZWF0ZSgKPj4gICAgICAgICAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwg dWludDMyX3QgaW5zdGFuY2UpCj4+ICAgewo+PiBAQCAtMTA2Niw2ICsxMDk0LDEyIEBAIHN0YXRp YyB2b2lkIGRjbjMwMV9kZXN0cnVjdChzdHJ1Y3QgZGNuMzAxX3Jlc291cmNlX3Bvb2wgKnBvb2wp Cj4+ICAgICAgICAgICAgICAgICAga2ZyZWUocG9vbC0+YmFzZS5odWJidWIpOwo+PiAgICAgICAg ICAgICAgICAgIHBvb2wtPmJhc2UuaHViYnViID0gTlVMTDsKPj4gICAgICAgICAgfQo+PiArCj4+ ICsgICAgICAgaWYgKHBvb2wtPmJhc2UuZGlvICE9IE5VTEwpIHsKPj4gKyAgICAgICAgICAgICAg IGtmcmVlKFRPX0RDTjEwX0RJTyhwb29sLT5iYXNlLmRpbykpOwo+PiArICAgICAgICAgICAgICAg cG9vbC0+YmFzZS5kaW8gPSBOVUxMOwo+PiArICAgICAgIH0KPj4gKwo+PiAgICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5waXBlX2NvdW50OyBpKyspIHsKPj4gICAgICAgICAgICAg ICAgICBpZiAocG9vbC0+YmFzZS5kcHBzW2ldICE9IE5VTEwpCj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICBkY24zMDFfZHBwX2Rlc3Ryb3koJnBvb2wtPmJhc2UuZHBwc1tpXSk7Cj4+IEBAIC0x NTgyLDYgKzE2MTYsMTQgQEAgc3RhdGljIGJvb2wgZGNuMzAxX3Jlc291cmNlX2NvbnN0cnVjdCgK Pj4gICAgICAgICAgICAgICAgICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiAgICAgICAgICB9Cj4+Cj4+ ICsgICAgICAgLyogRElPICovCj4+ICsgICAgICAgcG9vbC0+YmFzZS5kaW8gPSBkY24zMDFfZGlv X2NyZWF0ZShjdHgpOwo+PiArICAgICAgIGlmIChwb29sLT5iYXNlLmRpbyA9PSBOVUxMKSB7Cj4+ ICsgICAgICAgICAgICAgICBCUkVBS19UT19ERUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAg ZG1fZXJyb3IoIkRDOiBmYWlsZWQgdG8gY3JlYXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAg ICAgZ290byBjcmVhdGVfZmFpbDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgaiA9IDA7 Cj4+ICAgICAgICAgIC8qIEhVQlBzLCBEUFBzLCBPUFBzIGFuZCBUR3MgKi8KPj4gICAgICAgICAg Zm9yIChpID0gMDsgaSA8IHBvb2wtPmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzAyL2RjbjMw Ml9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2Rj bjMwMi9kY24zMDJfcmVzb3VyY2UuYwo+PiBpbmRleCAxODc0ZDVkNmI3ODIwLi5kMDJhYWZkMDZm ZDQ1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3Vy Y2UvZGNuMzAyL2RjbjMwMl9yZXNvdXJjZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zMDIvZGNuMzAyX3Jlc291cmNlLmMKPj4gQEAgLTQ2LDYg KzQ2LDcgQEAKPj4gICAjaW5jbHVkZSAiZG1sL2RjbjMwL2RjbjMwX2ZwdS5oIgo+Pgo+PiAgICNp bmNsdWRlICJkY24xMC9kY24xMF9yZXNvdXJjZS5oIgo+PiArI2luY2x1ZGUgImRpby9kY24xMC9k Y24xMF9kaW8uaCIKPj4KPj4gICAjaW5jbHVkZSAibGlua19zZXJ2aWNlLmgiCj4+Cj4+IEBAIC0y NTMsNiArMjU0LDMzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfdm1pZF9tYXNrIHZtaWRf bWFza3MgPSB7Cj4+ICAgICAgICAgICAgICAgICAgRENOMjBfVk1JRF9NQVNLX1NIX0xJU1QoX01B U0spCj4+ICAgfTsKPj4KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19yZWdpc3RlcnMg ZGlvX3JlZ3MgPSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fUkVHX0xJU1RfRENOMTAoKQo+PiAr fTsKPj4gKwo+PiArI2RlZmluZSBESU9fTUFTS19TSF9MSVNUKG1hc2tfc2gpXAo+PiArICAgICAg ICAgICAgICAgSFdTX1NGKCwgRElPX01FTV9QV1JfQ1RSTCwgSTJDX0xJR0hUX1NMRUVQX0ZPUkNF LCBtYXNrX3NoKQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fc2hpZnQgZGlv X3NoaWZ0ID0gewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfX1NISUZUKQo+ PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX21hc2sgZGlvX21hc2sg PSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9NQVNLKQo+PiArfTsKPj4g Kwo+PiArc3RhdGljIHN0cnVjdCBkaW8gKmRjbjMwMl9kaW9fY3JlYXRlKHN0cnVjdCBkY19jb250 ZXh0ICpjdHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRjbjEwX2RpbyAqZGlvMTAgPSBremFs bG9jX29iaihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+PiArICAgICAgIGlmICghZGlvMTApCj4+ ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArICAgICAgIGRjbjEwX2Rpb19j b25zdHJ1Y3QoZGlvMTAsIGN0eCwgJmRpb19yZWdzLCAmZGlvX3NoaWZ0LCAmZGlvX21hc2spOwo+ PiArCj4+ICsgICAgICAgcmV0dXJuICZkaW8xMC0+YmFzZTsKPj4gK30KPj4gKwo+PiAgIHN0YXRp YyBzdHJ1Y3QgaHViYnViICpkY24zMDJfaHViYnViX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAq Y3R4KQo+PiAgIHsKPj4gICAgICAgICAgaW50IGk7Cj4+IEBAIC0xMDIyLDYgKzEwNTAsMTEgQEAg c3RhdGljIHZvaWQgZGNuMzAyX3Jlc291cmNlX2Rlc3RydWN0KHN0cnVjdCByZXNvdXJjZV9wb29s ICpwb29sKQo+PiAgICAgICAgICAgICAgICAgIHBvb2wtPmh1YmJ1YiA9IE5VTEw7Cj4+ICAgICAg ICAgIH0KPj4KPj4gKyAgICAgICBpZiAocG9vbC0+ZGlvICE9IE5VTEwpIHsKPj4gKyAgICAgICAg ICAgICAgIGtmcmVlKFRPX0RDTjEwX0RJTyhwb29sLT5kaW8pKTsKPj4gKyAgICAgICAgICAgICAg IHBvb2wtPmRpbyA9IE5VTEw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBwb29sLT5waXBlX2NvdW50OyBpKyspIHsKPj4gICAgICAgICAgICAgICAgICBpZiAo cG9vbC0+ZHBwc1tpXSAhPSBOVUxMKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBrZnJl ZShUT19EQ04yMF9EUFAocG9vbC0+ZHBwc1tpXSkpOwo+PiBAQCAtMTM3Miw2ICsxNDA1LDE0IEBA IHN0YXRpYyBib29sIGRjbjMwMl9yZXNvdXJjZV9jb25zdHJ1Y3QoCj4+ICAgICAgICAgICAgICAg ICAgZ290byBjcmVhdGVfZmFpbDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAgICAgIC8qIERJTyAq Lwo+PiArICAgICAgIHBvb2wtPmRpbyA9IGRjbjMwMl9kaW9fY3JlYXRlKGN0eCk7Cj4+ICsgICAg ICAgaWYgKHBvb2wtPmRpbyA9PSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBCUkVBS19UT19E RUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAgZG1fZXJyb3IoIkRDOiBmYWlsZWQgdG8gY3Jl YXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBjcmVhdGVfZmFpbDsKPj4gKyAg ICAgICB9Cj4+ICsKPj4gICAgICAgICAgLyogSFVCUHMsIERQUHMsIE9QUHMgYW5kIFRHcyAqLwo+ PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAg ICAgICAgICAgICAgICAgcG9vbC0+aHVicHNbaV0gPSBkY24zMDJfaHVicF9jcmVhdGUoY3R4LCBp KTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJj ZS9kY24zMDMvZGNuMzAzX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvcmVzb3VyY2UvZGNuMzAzL2RjbjMwM19yZXNvdXJjZS5jCj4+IGluZGV4IGQ1MjIwMWNiMzU5 ZmQuLjMwYjE0MDMxMTJjNmMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9yZXNvdXJjZS9kY24zMDMvZGNuMzAzX3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMwMy9kY24zMDNfcmVzb3VyY2Uu Ywo+PiBAQCAtNDYsNiArNDYsNyBAQAo+PiAgICNpbmNsdWRlICJkbWwvZGNuMzAvZGNuMzBfZnB1 LmgiCj4+Cj4+ICAgI2luY2x1ZGUgImRjbjEwL2RjbjEwX3Jlc291cmNlLmgiCj4+ICsjaW5jbHVk ZSAiZGlvL2RjbjEwL2RjbjEwX2Rpby5oIgo+Pgo+PiAgICNpbmNsdWRlICJsaW5rX3NlcnZpY2Uu aCIKPj4KPj4gQEAgLTI0OSw2ICsyNTAsMzMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMF92 bWlkX21hc2sgdm1pZF9tYXNrcyA9IHsKPj4gICAgICAgICAgICAgICAgICBEQ04yMF9WTUlEX01B U0tfU0hfTElTVChfTUFTSykKPj4gICB9Owo+Pgo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25f ZGlvX3JlZ2lzdGVycyBkaW9fcmVncyA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19SRUdfTElT VF9EQ04xMCgpCj4+ICt9Owo+PiArCj4+ICsjZGVmaW5lIERJT19NQVNLX1NIX0xJU1QobWFza19z aClcCj4+ICsgICAgICAgICAgICAgICBIV1NfU0YoLCBESU9fTUVNX1BXUl9DVFJMLCBJMkNfTElH SFRfU0xFRVBfRk9SQ0UsIG1hc2tfc2gpCj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNu X2Rpb19zaGlmdCBkaW9fc2hpZnQgPSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19TSF9M SVNUKF9fU0hJRlQpCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9f bWFzayBkaW9fbWFzayA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX01B U0spCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgc3RydWN0IGRpbyAqZGNuMzAzX2Rpb19jcmVhdGUo c3RydWN0IGRjX2NvbnRleHQgKmN0eCkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZGNuMTBfZGlv ICpkaW8xMCA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBkY24xMF9kaW8pOwo+PiArCj4+ICsgICAgICAg aWYgKCFkaW8xMCkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+PiArCj4+ICsgICAg ICAgZGNuMTBfZGlvX2NvbnN0cnVjdChkaW8xMCwgY3R4LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQs ICZkaW9fbWFzayk7Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+ PiArCj4+ICAgc3RhdGljIHN0cnVjdCBodWJidWIgKmRjbjMwM19odWJidWJfY3JlYXRlKHN0cnVj dCBkY19jb250ZXh0ICpjdHgpCj4+ICAgewo+PiAgICAgICAgICBpbnQgaTsKPj4gQEAgLTk2Niw2 ICs5OTQsMTEgQEAgc3RhdGljIHZvaWQgZGNuMzAzX3Jlc291cmNlX2Rlc3RydWN0KHN0cnVjdCBy ZXNvdXJjZV9wb29sICpwb29sKQo+PiAgICAgICAgICAgICAgICAgIHBvb2wtPmh1YmJ1YiA9IE5V TEw7Cj4+ICAgICAgICAgIH0KPj4KPj4gKyAgICAgICBpZiAocG9vbC0+ZGlvICE9IE5VTEwpIHsK Pj4gKyAgICAgICAgICAgICAgIGtmcmVlKFRPX0RDTjEwX0RJTyhwb29sLT5kaW8pKTsKPj4gKyAg ICAgICAgICAgICAgIHBvb2wtPmRpbyA9IE5VTEw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAg ICAgIGZvciAoaSA9IDA7IGkgPCBwb29sLT5waXBlX2NvdW50OyBpKyspIHsKPj4gICAgICAgICAg ICAgICAgICBpZiAocG9vbC0+ZHBwc1tpXSAhPSBOVUxMKSB7Cj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICBrZnJlZShUT19EQ04yMF9EUFAocG9vbC0+ZHBwc1tpXSkpOwo+PiBAQCAtMTMwNCw2 ICsxMzM3LDE0IEBAIHN0YXRpYyBib29sIGRjbjMwM19yZXNvdXJjZV9jb25zdHJ1Y3QoCj4+ICAg ICAgICAgICAgICAgICAgZ290byBjcmVhdGVfZmFpbDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAg ICAgIC8qIERJTyAqLwo+PiArICAgICAgIHBvb2wtPmRpbyA9IGRjbjMwM19kaW9fY3JlYXRlKGN0 eCk7Cj4+ICsgICAgICAgaWYgKHBvb2wtPmRpbyA9PSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAg ICBCUkVBS19UT19ERUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAgZG1fZXJyb3IoIkRDOiBm YWlsZWQgdG8gY3JlYXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBjcmVhdGVf ZmFpbDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgLyogSFVCUHMsIERQUHMsIE9QUHMg YW5kIFRHcyAqLwo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcG9vbC0+cGlwZV9jb3VudDsg aSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgcG9vbC0+aHVicHNbaV0gPSBkY24zMDNfaHVicF9j cmVhdGUoY3R4LCBpKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9yZXNvdXJjZS9kY24zMS9kY24zMV9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMxL2RjbjMxX3Jlc291cmNlLmMKPj4gaW5kZXggMjA1 NWYxZjhhZjY1Mi4uNGU5YzA0MWM3MDdhNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMxL2RjbjMxX3Jlc291cmNlLmMKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMxL2RjbjMxX3Jlc291 cmNlLmMKPj4gQEAgLTY0LDYgKzY0LDcgQEAKPj4gICAjaW5jbHVkZSAiZGNlL2RjZV9hdWRpby5o Igo+PiAgICNpbmNsdWRlICJkY2UvZGNlX2h3c2VxLmgiCj4+ICAgI2luY2x1ZGUgImNsa19tZ3Iu aCIKPj4gKyNpbmNsdWRlICJkaW8vZGNuMTAvZGNuMTBfZGlvLmgiCj4+ICAgI2luY2x1ZGUgImRp by92aXJ0dWFsL3ZpcnR1YWxfc3RyZWFtX2VuY29kZXIuaCIKPj4gICAjaW5jbHVkZSAiZGNlMTEw L2RjZTExMF9yZXNvdXJjZS5oIgo+PiAgICNpbmNsdWRlICJkbWwvZGlzcGxheV9tb2RlX3ZiYS5o Igo+PiBAQCAtODEwLDYgKzgxMSwyMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRf bWFzayB2bWlkX21hc2tzID0gewo+PiAgICAgICAgICAgICAgICAgIERDTjIwX1ZNSURfTUFTS19T SF9MSVNUKF9NQVNLKQo+PiAgIH07Cj4+Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9f cmVnaXN0ZXJzIGRpb19yZWdzID0gewo+PiArICAgICAgICAgICAgICAgRElPX1JFR19MSVNUX0RD TjEwKCkKPj4gK307Cj4+ICsKPj4gKyNkZWZpbmUgRElPX01BU0tfU0hfTElTVChtYXNrX3NoKVwK Pj4gKyAgICAgICAgICAgICAgIEhXU19TRigsIERJT19NRU1fUFdSX0NUUkwsIEkyQ19MSUdIVF9T TEVFUF9GT1JDRSwgbWFza19zaCkKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlv X3NoaWZ0IGRpb19zaGlmdCA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1Qo X19TSElGVCkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19tYXNr IGRpb19tYXNrID0gewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfTUFTSykK Pj4gK307Cj4+ICsKPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlX2NhcHMgcmVzX2Nh cF9kY24zMSA9IHsKPj4gICAgICAgICAgLm51bV90aW1pbmdfZ2VuZXJhdG9yID0gNCwKPj4gICAg ICAgICAgLm51bV9vcHAgPSA0LAo+PiBAQCAtMTAyMSw2ICsxMDM3LDE4IEBAIHN0YXRpYyBzdHJ1 Y3QgbXBjICpkY24zMV9tcGNfY3JlYXRlKAo+PiAgICAgICAgICByZXR1cm4gJm1wYzMwLT5iYXNl Owo+PiAgIH0KPj4KPj4gK3N0YXRpYyBzdHJ1Y3QgZGlvICpkY24zMV9kaW9fY3JlYXRlKHN0cnVj dCBkY19jb250ZXh0ICpjdHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRjbjEwX2RpbyAqZGlv MTAgPSBremFsbG9jX29iaihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+PiArICAgICAgIGlmICgh ZGlvMTApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArICAgICAgIGRj bjEwX2Rpb19jb25zdHJ1Y3QoZGlvMTAsIGN0eCwgJmRpb19yZWdzLCAmZGlvX3NoaWZ0LCAmZGlv X21hc2spOwo+PiArCj4+ICsgICAgICAgcmV0dXJuICZkaW8xMC0+YmFzZTsKPj4gK30KPj4gKwo+ PiAgIHN0YXRpYyBzdHJ1Y3QgaHViYnViICpkY24zMV9odWJidWJfY3JlYXRlKHN0cnVjdCBkY19j b250ZXh0ICpjdHgpCj4+ICAgewo+PiAgICAgICAgICBpbnQgaTsKPj4gQEAgLTEzOTYsNiArMTQy NCwxMCBAQCBzdGF0aWMgdm9pZCBkY24zMV9yZXNvdXJjZV9kZXN0cnVjdChzdHJ1Y3QgZGNuMzFf cmVzb3VyY2VfcG9vbCAqcG9vbCkKPj4gICAgICAgICAgICAgICAgICBrZnJlZShwb29sLT5iYXNl Lmh1YmJ1Yik7Cj4+ICAgICAgICAgICAgICAgICAgcG9vbC0+YmFzZS5odWJidWIgPSBOVUxMOwo+ PiAgICAgICAgICB9Cj4+ICsgICAgICAgaWYgKHBvb2wtPmJhc2UuZGlvICE9IE5VTEwpIHsKPj4g KyAgICAgICAgICAgICAgIGtmcmVlKFRPX0RDTjEwX0RJTyhwb29sLT5iYXNlLmRpbykpOwo+PiAr ICAgICAgICAgICAgICAgcG9vbC0+YmFzZS5kaW8gPSBOVUxMOwo+PiArICAgICAgIH0KPj4gICAg ICAgICAgZm9yIChpID0gMDsgaSA8IHBvb2wtPmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAg ICAgICAgICAgICAgICAgaWYgKHBvb2wtPmJhc2UuZHBwc1tpXSAhPSBOVUxMKQo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgZGNuMzFfZHBwX2Rlc3Ryb3koJnBvb2wtPmJhc2UuZHBwc1tpXSk7 Cj4+IEBAIC0yMDYzLDYgKzIwOTUsMTQgQEAgc3RhdGljIGJvb2wgZGNuMzFfcmVzb3VyY2VfY29u c3RydWN0KAo+PiAgICAgICAgICAgICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ICAgICAgICAg IH0KPj4KPj4gKyAgICAgICAvKiBESU8gKi8KPj4gKyAgICAgICBwb29sLT5iYXNlLmRpbyA9IGRj bjMxX2Rpb19jcmVhdGUoY3R4KTsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gPT0gTlVM TCkgewo+PiArICAgICAgICAgICAgICAgQlJFQUtfVE9fREVCVUdHRVIoKTsKPj4gKyAgICAgICAg ICAgICAgIGRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsKPj4gKyAgICAg ICAgICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAg IC8qIEhVQlBzLCBEUFBzLCBPUFBzIGFuZCBUR3MgKi8KPj4gICAgICAgICAgZm9yIChpID0gMDsg aSA8IHBvb2wtPmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgcG9v bC0+YmFzZS5odWJwc1tpXSA9IGRjbjMxX2h1YnBfY3JlYXRlKGN0eCwgaSk7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzE0L2RjbjMx NF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2Rj bjMxNC9kY24zMTRfcmVzb3VyY2UuYwo+PiBpbmRleCAxOTM5ZjcyMGJhMjk1Li5lMjZhNjQyNzkx NmEwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3Vy Y2UvZGNuMzE0L2RjbjMxNF9yZXNvdXJjZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zMTQvZGNuMzE0X3Jlc291cmNlLmMKPj4gQEAgLTY2LDYg KzY2LDcgQEAKPj4gICAjaW5jbHVkZSAiZGNlL2RjZV9hdWRpby5oIgo+PiAgICNpbmNsdWRlICJk Y2UvZGNlX2h3c2VxLmgiCj4+ICAgI2luY2x1ZGUgImNsa19tZ3IuaCIKPj4gKyNpbmNsdWRlICJk aW8vZGNuMTAvZGNuMTBfZGlvLmgiCj4+ICAgI2luY2x1ZGUgImRpby92aXJ0dWFsL3ZpcnR1YWxf c3RyZWFtX2VuY29kZXIuaCIKPj4gICAjaW5jbHVkZSAiZGNlMTEwL2RjZTExMF9yZXNvdXJjZS5o Igo+PiAgICNpbmNsdWRlICJkbWwvZGlzcGxheV9tb2RlX3ZiYS5oIgo+PiBAQCAtODIyLDYgKzgy MywyMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRfbWFzayB2bWlkX21hc2tzID0g ewo+PiAgICAgICAgICAgICAgICAgIERDTjIwX1ZNSURfTUFTS19TSF9MSVNUKF9NQVNLKQo+PiAg IH07Cj4+Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRpb19yZWdz ID0gewo+PiArICAgICAgICAgICAgICAgRElPX1JFR19MSVNUX0RDTjEwKCkKPj4gK307Cj4+ICsK Pj4gKyNkZWZpbmUgRElPX01BU0tfU0hfTElTVChtYXNrX3NoKVwKPj4gKyAgICAgICAgICAgICAg IEhXU19TRigsIERJT19NRU1fUFdSX0NUUkwsIEkyQ19MSUdIVF9TTEVFUF9GT1JDRSwgbWFza19z aCkKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX3NoaWZ0IGRpb19zaGlmdCA9 IHsKPj4gKyAgICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX19TSElGVCkKPj4gK307Cj4+ ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19tYXNrIGRpb19tYXNrID0gewo+PiAr ICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfTUFTSykKPj4gK307Cj4+ICsKPj4gICBz dGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlX2NhcHMgcmVzX2NhcF9kY24zMTQgPSB7Cj4+ICAg ICAgICAgIC5udW1fdGltaW5nX2dlbmVyYXRvciA9IDQsCj4+ICAgICAgICAgIC5udW1fb3BwID0g NCwKPj4gQEAgLTEwNzksNiArMTA5NSwxOCBAQCBzdGF0aWMgc3RydWN0IG1wYyAqZGNuMzFfbXBj X2NyZWF0ZSgKPj4gICAgICAgICAgcmV0dXJuICZtcGMzMC0+YmFzZTsKPj4gICB9Cj4+Cj4+ICtz dGF0aWMgc3RydWN0IGRpbyAqZGNuMzE0X2Rpb19jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0 eCkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZGNuMTBfZGlvICpkaW8xMCA9IGt6YWxsb2Nfb2Jq KHN0cnVjdCBkY24xMF9kaW8pOwo+PiArCj4+ICsgICAgICAgaWYgKCFkaW8xMCkKPj4gKyAgICAg ICAgICAgICAgIHJldHVybiBOVUxMOwo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2NvbnN0cnVj dChkaW8xMCwgY3R4LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ICsKPj4g KyAgICAgICByZXR1cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHN0cnVj dCBodWJidWIgKmRjbjMxX2h1YmJ1Yl9jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0eCkKPj4g ICB7Cj4+ICAgICAgICAgIGludCBpOwo+PiBAQCAtMTQ1NSw2ICsxNDgzLDEwIEBAIHN0YXRpYyB2 b2lkIGRjbjMxNF9yZXNvdXJjZV9kZXN0cnVjdChzdHJ1Y3QgZGNuMzE0X3Jlc291cmNlX3Bvb2wg KnBvb2wpCj4+ICAgICAgICAgICAgICAgICAga2ZyZWUocG9vbC0+YmFzZS5odWJidWIpOwo+PiAg ICAgICAgICAgICAgICAgIHBvb2wtPmJhc2UuaHViYnViID0gTlVMTDsKPj4gICAgICAgICAgfQo+ PiArICAgICAgIGlmIChwb29sLT5iYXNlLmRpbyAhPSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAg ICBrZnJlZShUT19EQ04xMF9ESU8ocG9vbC0+YmFzZS5kaW8pKTsKPj4gKyAgICAgICAgICAgICAg IHBvb2wtPmJhc2UuZGlvID0gTlVMTDsKPj4gKyAgICAgICB9Cj4+ICAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBwb29sLT5iYXNlLnBpcGVfY291bnQ7IGkrKykgewo+PiAgICAgICAgICAgICAgICAg IGlmIChwb29sLT5iYXNlLmRwcHNbaV0gIT0gTlVMTCkKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgIGRjbjMxX2RwcF9kZXN0cm95KCZwb29sLT5iYXNlLmRwcHNbaV0pOwo+PiBAQCAtMTk4Nyw2 ICsyMDE5LDE0IEBAIHN0YXRpYyBib29sIGRjbjMxNF9yZXNvdXJjZV9jb25zdHJ1Y3QoCj4+ICAg ICAgICAgICAgICAgICAgZ290byBjcmVhdGVfZmFpbDsKPj4gICAgICAgICAgfQo+Pgo+PiArICAg ICAgIC8qIERJTyAqLwo+PiArICAgICAgIHBvb2wtPmJhc2UuZGlvID0gZGNuMzE0X2Rpb19jcmVh dGUoY3R4KTsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gPT0gTlVMTCkgewo+PiArICAg ICAgICAgICAgICAgQlJFQUtfVE9fREVCVUdHRVIoKTsKPj4gKyAgICAgICAgICAgICAgIGRtX2Vy cm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsKPj4gKyAgICAgICAgICAgICAgIGdv dG8gY3JlYXRlX2ZhaWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIC8qIEhVQlBzLCBE UFBzLCBPUFBzIGFuZCBUR3MgKi8KPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBvb2wtPmJh c2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgcG9vbC0+YmFzZS5odWJw c1tpXSA9IGRjbjMxX2h1YnBfY3JlYXRlKGN0eCwgaSk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzE1L2RjbjMxNV9yZXNvdXJjZS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMxNS9kY24zMTVf cmVzb3VyY2UuYwo+PiBpbmRleCBlODM3N2MxOTBmNjM1Li4xMzFhNmNkNGM3MzUyIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzE1L2Rj bjMxNV9yZXNvdXJjZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9y ZXNvdXJjZS9kY24zMTUvZGNuMzE1X3Jlc291cmNlLmMKPj4gQEAgLTYzLDYgKzYzLDcgQEAKPj4g ICAjaW5jbHVkZSAiZGNlL2RjZV9hdWRpby5oIgo+PiAgICNpbmNsdWRlICJkY2UvZGNlX2h3c2Vx LmgiCj4+ICAgI2luY2x1ZGUgImNsa19tZ3IuaCIKPj4gKyNpbmNsdWRlICJkaW8vZGNuMTAvZGNu MTBfZGlvLmgiCj4+ICAgI2luY2x1ZGUgImRpby92aXJ0dWFsL3ZpcnR1YWxfc3RyZWFtX2VuY29k ZXIuaCIKPj4gICAjaW5jbHVkZSAiZGNlMTEwL2RjZTExMF9yZXNvdXJjZS5oIgo+PiAgICNpbmNs dWRlICJkbWwvZGlzcGxheV9tb2RlX3ZiYS5oIgo+PiBAQCAtODA5LDYgKzgxMCwyMSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRfbWFzayB2bWlkX21hc2tzID0gewo+PiAgICAgICAg ICAgICAgICAgIERDTjIwX1ZNSURfTUFTS19TSF9MSVNUKF9NQVNLKQo+PiAgIH07Cj4+Cj4+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRpb19yZWdzID0gewo+PiArICAg ICAgICAgICAgICAgRElPX1JFR19MSVNUX0RDTjEwKCkKPj4gK307Cj4+ICsKPj4gKyNkZWZpbmUg RElPX01BU0tfU0hfTElTVChtYXNrX3NoKVwKPj4gKyAgICAgICAgICAgICAgIEhXU19TRigsIERJ T19NRU1fUFdSX0NUUkwsIEkyQ19MSUdIVF9TTEVFUF9GT1JDRSwgbWFza19zaCkKPj4gKwo+PiAr c3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX3NoaWZ0IGRpb19zaGlmdCA9IHsKPj4gKyAgICAg ICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX19TSElGVCkKPj4gK307Cj4+ICsKPj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19tYXNrIGRpb19tYXNrID0gewo+PiArICAgICAgICAgICAg ICAgRElPX01BU0tfU0hfTElTVChfTUFTSykKPj4gK307Cj4+ICsKPj4gICBzdGF0aWMgY29uc3Qg c3RydWN0IHJlc291cmNlX2NhcHMgcmVzX2NhcF9kY24zMSA9IHsKPj4gICAgICAgICAgLm51bV90 aW1pbmdfZ2VuZXJhdG9yID0gNCwKPj4gICAgICAgICAgLm51bV9vcHAgPSA0LAo+PiBAQCAtMTAy MCw2ICsxMDM2LDE4IEBAIHN0YXRpYyBzdHJ1Y3QgbXBjICpkY24zMV9tcGNfY3JlYXRlKAo+PiAg ICAgICAgICByZXR1cm4gJm1wYzMwLT5iYXNlOwo+PiAgIH0KPj4KPj4gK3N0YXRpYyBzdHJ1Y3Qg ZGlvICpkY24zMTVfZGlvX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiArewo+PiAr ICAgICAgIHN0cnVjdCBkY24xMF9kaW8gKmRpbzEwID0ga3phbGxvY19vYmooc3RydWN0IGRjbjEw X2Rpbyk7Cj4+ICsKPj4gKyAgICAgICBpZiAoIWRpbzEwKQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuIE5VTEw7Cj4+ICsKPj4gKyAgICAgICBkY24xMF9kaW9fY29uc3RydWN0KGRpbzEwLCBjdHgs ICZkaW9fcmVncywgJmRpb19zaGlmdCwgJmRpb19tYXNrKTsKPj4gKwo+PiArICAgICAgIHJldHVy biAmZGlvMTAtPmJhc2U7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgc3RydWN0IGh1YmJ1YiAqZGNu MzFfaHViYnViX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiAgIHsKPj4gICAgICAg ICAgaW50IGk7Cj4+IEBAIC0xMzk3LDYgKzE0MjUsMTAgQEAgc3RhdGljIHZvaWQgZGNuMzE1X3Jl c291cmNlX2Rlc3RydWN0KHN0cnVjdCBkY24zMTVfcmVzb3VyY2VfcG9vbCAqcG9vbCkKPj4gICAg ICAgICAgICAgICAgICBrZnJlZShwb29sLT5iYXNlLmh1YmJ1Yik7Cj4+ICAgICAgICAgICAgICAg ICAgcG9vbC0+YmFzZS5odWJidWIgPSBOVUxMOwo+PiAgICAgICAgICB9Cj4+ICsgICAgICAgaWYg KHBvb2wtPmJhc2UuZGlvICE9IE5VTEwpIHsKPj4gKyAgICAgICAgICAgICAgIGtmcmVlKFRPX0RD TjEwX0RJTyhwb29sLT5iYXNlLmRpbykpOwo+PiArICAgICAgICAgICAgICAgcG9vbC0+YmFzZS5k aW8gPSBOVUxMOwo+PiArICAgICAgIH0KPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBvb2wt PmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKHBvb2wtPmJh c2UuZHBwc1tpXSAhPSBOVUxMKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgZGNuMzFfZHBw X2Rlc3Ryb3koJnBvb2wtPmJhc2UuZHBwc1tpXSk7Cj4+IEBAIC0yMDEyLDYgKzIwNDQsMTQgQEAg c3RhdGljIGJvb2wgZGNuMzE1X3Jlc291cmNlX2NvbnN0cnVjdCgKPj4gICAgICAgICAgICAgICAg ICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiAgICAgICAgICB9Cj4+Cj4+ICsgICAgICAgLyogRElPICov Cj4+ICsgICAgICAgcG9vbC0+YmFzZS5kaW8gPSBkY24zMTVfZGlvX2NyZWF0ZShjdHgpOwo+PiAr ICAgICAgIGlmIChwb29sLT5iYXNlLmRpbyA9PSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBC UkVBS19UT19ERUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAgZG1fZXJyb3IoIkRDOiBmYWls ZWQgdG8gY3JlYXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBjcmVhdGVfZmFp bDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgLyogSFVCUHMsIERQUHMsIE9QUHMgYW5k IFRHcyAqLwo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5waXBlX2NvdW50 OyBpKyspIHsKPj4gICAgICAgICAgICAgICAgICBwb29sLT5iYXNlLmh1YnBzW2ldID0gZGNuMzFf aHVicF9jcmVhdGUoY3R4LCBpKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zMTYvZGNuMzE2X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzE2L2RjbjMxNl9yZXNvdXJjZS5jCj4+ IGluZGV4IDA0NWNlMDFiZDc0ZWIuLmM4YzBjZTZlZmNmZGMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zMTYvZGNuMzE2X3Jlc291cmNl LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjMx Ni9kY24zMTZfcmVzb3VyY2UuYwo+PiBAQCAtNjMsNiArNjMsNyBAQAo+PiAgICNpbmNsdWRlICJk Y2UvZGNlX2F1ZGlvLmgiCj4+ICAgI2luY2x1ZGUgImRjZS9kY2VfaHdzZXEuaCIKPj4gICAjaW5j bHVkZSAiY2xrX21nci5oIgo+PiArI2luY2x1ZGUgImRpby9kY24xMC9kY24xMF9kaW8uaCIKPj4g ICAjaW5jbHVkZSAiZGlvL3ZpcnR1YWwvdmlydHVhbF9zdHJlYW1fZW5jb2Rlci5oIgo+PiAgICNp bmNsdWRlICJkY2UxMTAvZGNlMTEwX3Jlc291cmNlLmgiCj4+ICAgI2luY2x1ZGUgImRtbC9kaXNw bGF5X21vZGVfdmJhLmgiCj4+IEBAIC04MDQsNiArODA1LDIxIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZGNuMjBfdm1pZF9tYXNrIHZtaWRfbWFza3MgPSB7Cj4+ICAgICAgICAgICAgICAgICAgRENO MjBfVk1JRF9NQVNLX1NIX0xJU1QoX01BU0spCj4+ICAgfTsKPj4KPj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZGNuX2Rpb19yZWdpc3RlcnMgZGlvX3JlZ3MgPSB7Cj4+ICsgICAgICAgICAgICAgICBE SU9fUkVHX0xJU1RfRENOMTAoKQo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBESU9fTUFTS19TSF9M SVNUKG1hc2tfc2gpXAo+PiArICAgICAgICAgICAgICAgSFdTX1NGKCwgRElPX01FTV9QV1JfQ1RS TCwgSTJDX0xJR0hUX1NMRUVQX0ZPUkNFLCBtYXNrX3NoKQo+PiArCj4+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRjbl9kaW9fc2hpZnQgZGlvX3NoaWZ0ID0gewo+PiArICAgICAgICAgICAgICAgRElP X01BU0tfU0hfTElTVChfX1NISUZUKQo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVj dCBkY25fZGlvX21hc2sgZGlvX21hc2sgPSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19T SF9MSVNUKF9NQVNLKQo+PiArfTsKPj4gKwo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3Vy Y2VfY2FwcyByZXNfY2FwX2RjbjMxID0gewo+PiAgICAgICAgICAubnVtX3RpbWluZ19nZW5lcmF0 b3IgPSA0LAo+PiAgICAgICAgICAubnVtX29wcCA9IDQsCj4+IEBAIC0xMDEzLDYgKzEwMjksMTgg QEAgc3RhdGljIHN0cnVjdCBtcGMgKmRjbjMxX21wY19jcmVhdGUoCj4+ICAgICAgICAgIHJldHVy biAmbXBjMzAtPmJhc2U7Cj4+ICAgfQo+Pgo+PiArc3RhdGljIHN0cnVjdCBkaW8gKmRjbjMxNl9k aW9fY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0 IGRjbjEwX2RpbyAqZGlvMTAgPSBremFsbG9jX29iaihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+ PiArICAgICAgIGlmICghZGlvMTApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4g Kwo+PiArICAgICAgIGRjbjEwX2Rpb19jb25zdHJ1Y3QoZGlvMTAsIGN0eCwgJmRpb19yZWdzLCAm ZGlvX3NoaWZ0LCAmZGlvX21hc2spOwo+PiArCj4+ICsgICAgICAgcmV0dXJuICZkaW8xMC0+YmFz ZTsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBzdHJ1Y3QgaHViYnViICpkY24zMV9odWJidWJfY3Jl YXRlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCj4+ICAgewo+PiAgICAgICAgICBpbnQgaTsKPj4g QEAgLTEzOTIsNiArMTQyMCwxMCBAQCBzdGF0aWMgdm9pZCBkY24zMTZfcmVzb3VyY2VfZGVzdHJ1 Y3Qoc3RydWN0IGRjbjMxNl9yZXNvdXJjZV9wb29sICpwb29sKQo+PiAgICAgICAgICAgICAgICAg IGtmcmVlKHBvb2wtPmJhc2UuaHViYnViKTsKPj4gICAgICAgICAgICAgICAgICBwb29sLT5iYXNl Lmh1YmJ1YiA9IE5VTEw7Cj4+ICAgICAgICAgIH0KPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5k aW8gIT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAga2ZyZWUoVE9fRENOMTBfRElPKHBvb2wt PmJhc2UuZGlvKSk7Cj4+ICsgICAgICAgICAgICAgICBwb29sLT5iYXNlLmRpbyA9IE5VTEw7Cj4+ ICsgICAgICAgfQo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcG9vbC0+YmFzZS5waXBlX2Nv dW50OyBpKyspIHsKPj4gICAgICAgICAgICAgICAgICBpZiAocG9vbC0+YmFzZS5kcHBzW2ldICE9 IE5VTEwpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBkY24zMV9kcHBfZGVzdHJveSgmcG9v bC0+YmFzZS5kcHBzW2ldKTsKPj4gQEAgLTE4ODcsNiArMTkxOSwxNCBAQCBzdGF0aWMgYm9vbCBk Y24zMTZfcmVzb3VyY2VfY29uc3RydWN0KAo+PiAgICAgICAgICAgICAgICAgIGdvdG8gY3JlYXRl X2ZhaWw7Cj4+ICAgICAgICAgIH0KPj4KPj4gKyAgICAgICAvKiBESU8gKi8KPj4gKyAgICAgICBw b29sLT5iYXNlLmRpbyA9IGRjbjMxNl9kaW9fY3JlYXRlKGN0eCk7Cj4+ICsgICAgICAgaWYgKHBv b2wtPmJhc2UuZGlvID09IE5VTEwpIHsKPj4gKyAgICAgICAgICAgICAgIEJSRUFLX1RPX0RFQlVH R0VSKCk7Cj4+ICsgICAgICAgICAgICAgICBkbV9lcnJvcigiREM6IGZhaWxlZCB0byBjcmVhdGUg ZGlvIVxuIik7Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiArICAgICAg IH0KPj4gKwo+PiAgICAgICAgICAvKiBIVUJQcywgRFBQcywgT1BQcyBhbmQgVEdzICovCj4+ICAg ICAgICAgIGZvciAoaSA9IDA7IGkgPCBwb29sLT5iYXNlLnBpcGVfY291bnQ7IGkrKykgewo+PiAg ICAgICAgICAgICAgICAgIHBvb2wtPmJhc2UuaHVicHNbaV0gPSBkY24zMV9odWJwX2NyZWF0ZShj dHgsIGkpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jl c291cmNlL2RjbjMyL2RjbjMyX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvcmVzb3VyY2UvZGNuMzIvZGNuMzJfcmVzb3VyY2UuYwo+PiBpbmRleCBjN2ZkNjA0MDI0 ZDY0Li5jM2E2YWUxNGRlMThiIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvcmVzb3VyY2UvZGNuMzIvZGNuMzJfcmVzb3VyY2UuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzIvZGNuMzJfcmVzb3VyY2UuYwo+ PiBAQCAtNjYsNiArNjYsNyBAQAo+PiAgICNpbmNsdWRlICJkY2UvZGNlX2h3c2VxLmgiCj4+ICAg I2luY2x1ZGUgImNsa19tZ3IuaCIKPj4gICAjaW5jbHVkZSAiZGlvL3ZpcnR1YWwvdmlydHVhbF9z dHJlYW1fZW5jb2Rlci5oIgo+PiArI2luY2x1ZGUgImRpby9kY24xMC9kY24xMF9kaW8uaCIKPj4g ICAjaW5jbHVkZSAiZG1sL2Rpc3BsYXlfbW9kZV92YmEuaCIKPj4gICAjaW5jbHVkZSAiZGNuMzIv ZGNuMzJfZGNjZy5oIgo+PiAgICNpbmNsdWRlICJkY24xMC9kY24xMF9yZXNvdXJjZS5oIgo+PiBA QCAtNjQzLDYgKzY0NCwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRfbWFzayB2 bWlkX21hc2tzID0gewo+PiAgICAgICAgICAgICAgICAgIERDTjIwX1ZNSURfTUFTS19TSF9MSVNU KF9NQVNLKQo+PiAgIH07Cj4+Cj4+ICtzdGF0aWMgc3RydWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRp b19yZWdzOwo+PiArCj4+ICsjZGVmaW5lIERJT19NQVNLX1NIX0xJU1QobWFza19zaClcCj4+ICsg ICAgICAgICAgICAgICBIV1NfU0YoLCBESU9fTUVNX1BXUl9DVFJMLCBJMkNfTElHSFRfU0xFRVBf Rk9SQ0UsIG1hc2tfc2gpCj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19zaGlm dCBkaW9fc2hpZnQgPSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9fU0hJ RlQpCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fbWFzayBkaW9f bWFzayA9IHsKPj4gKyAgICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX01BU0spCj4+ICt9 Owo+PiArCj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9jYXBzIHJlc19jYXBfZGNu MzIgPSB7Cj4+ICAgICAgICAgIC5udW1fdGltaW5nX2dlbmVyYXRvciA9IDQsCj4+ICAgICAgICAg IC5udW1fb3BwID0gNCwKPj4gQEAgLTgzMyw2ICs4NDcsMjIgQEAgc3RhdGljIHN0cnVjdCBjbG9j a19zb3VyY2UgKmRjbjMyX2Nsb2NrX3NvdXJjZV9jcmVhdGUoCj4+ICAgICAgICAgIHJldHVybiBO VUxMOwo+PiAgIH0KPj4KPj4gK3N0YXRpYyBzdHJ1Y3QgZGlvICpkY24zMl9kaW9fY3JlYXRlKHN0 cnVjdCBkY19jb250ZXh0ICpjdHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRjbjEwX2RpbyAq ZGlvMTAgPSBremFsbG9jX29iaihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+PiArICAgICAgIGlm ICghZGlvMTApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArI3VuZGVm IFJFR19TVFJVQ1QKPj4gKyNkZWZpbmUgUkVHX1NUUlVDVCBkaW9fcmVncwo+PiArICAgICAgIERJ T19SRUdfTElTVF9EQ04xMCgpOwo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2NvbnN0cnVjdChk aW8xMCwgY3R4LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ICsKPj4gKyAg ICAgICByZXR1cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHN0cnVjdCBo dWJidWIgKmRjbjMyX2h1YmJ1Yl9jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0eCkKPj4gICB7 Cj4+ICAgICAgICAgIGludCBpOwo+PiBAQCAtMTQ5NCw2ICsxNTI0LDExIEBAIHN0YXRpYyB2b2lk IGRjbjMyX3Jlc291cmNlX2Rlc3RydWN0KHN0cnVjdCBkY24zMl9yZXNvdXJjZV9wb29sICpwb29s KQo+PiAgICAgICAgICBpZiAocG9vbC0+YmFzZS5kY2NnICE9IE5VTEwpCj4+ICAgICAgICAgICAg ICAgICAgZGNuX2RjY2dfZGVzdHJveSgmcG9vbC0+YmFzZS5kY2NnKTsKPj4KPj4gKyAgICAgICBp ZiAocG9vbC0+YmFzZS5kaW8gIT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAga2ZyZWUoVE9f RENOMTBfRElPKHBvb2wtPmJhc2UuZGlvKSk7Cj4+ICsgICAgICAgICAgICAgICBwb29sLT5iYXNl LmRpbyA9IE5VTEw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIGlmIChwb29sLT5iYXNl Lm9lbV9kZXZpY2UgIT0gTlVMTCkgewo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBkYyAqZGMg PSBwb29sLT5iYXNlLm9lbV9kZXZpY2UtPmN0eC0+ZGM7Cj4+Cj4+IEBAIC0yMzczLDYgKzI0MDgs MTQgQEAgc3RhdGljIGJvb2wgZGNuMzJfcmVzb3VyY2VfY29uc3RydWN0KAo+PiAgICAgICAgICAg ICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ICAgICAgICAgIH0KPj4KPj4gKyAgICAgICAvKiBE SU8gKi8KPj4gKyAgICAgICBwb29sLT5iYXNlLmRpbyA9IGRjbjMyX2Rpb19jcmVhdGUoY3R4KTsK Pj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gPT0gTlVMTCkgewo+PiArICAgICAgICAgICAg ICAgQlJFQUtfVE9fREVCVUdHRVIoKTsKPj4gKyAgICAgICAgICAgICAgIGRtX2Vycm9yKCJEQzog ZmFpbGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gY3JlYXRl X2ZhaWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIC8qIEhVQlBzLCBEUFBzLCBPUFBz LCBUR3MsIEFCTXMgKi8KPj4gICAgICAgICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBwb29sLT5i YXNlLnJlc19jYXAtPm51bV90aW1pbmdfZ2VuZXJhdG9yOyBpKyspIHsKPj4KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zMjEvZGNuMzIx X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNu MzIxL2RjbjMyMV9yZXNvdXJjZS5jCj4+IGluZGV4IGMxNTgyYzI3YWM4NzIuLjk5MGFlYzdlYjNk MDcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJj ZS9kY24zMjEvZGNuMzIxX3Jlc291cmNlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL3Jlc291cmNlL2RjbjMyMS9kY24zMjFfcmVzb3VyY2UuYwo+PiBAQCAtNjksNiAr NjksNyBAQAo+PiAgICNpbmNsdWRlICJkY2UvZGNlX2h3c2VxLmgiCj4+ICAgI2luY2x1ZGUgImNs a19tZ3IuaCIKPj4gICAjaW5jbHVkZSAiZGlvL3ZpcnR1YWwvdmlydHVhbF9zdHJlYW1fZW5jb2Rl ci5oIgo+PiArI2luY2x1ZGUgImRpby9kY24xMC9kY24xMF9kaW8uaCIKPj4gICAjaW5jbHVkZSAi ZG1sL2Rpc3BsYXlfbW9kZV92YmEuaCIKPj4gICAjaW5jbHVkZSAiZGNuMzIvZGNuMzJfZGNjZy5o Igo+PiAgICNpbmNsdWRlICJkY24xMC9kY24xMF9yZXNvdXJjZS5oIgo+PiBAQCAtNjM5LDYgKzY0 MCwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRjbjIwX3ZtaWRfbWFzayB2bWlkX21hc2tzID0g ewo+PiAgICAgICAgICAgICAgICAgIERDTjIwX1ZNSURfTUFTS19TSF9MSVNUKF9NQVNLKQo+PiAg IH07Cj4+Cj4+ICtzdGF0aWMgc3RydWN0IGRjbl9kaW9fcmVnaXN0ZXJzIGRpb19yZWdzOwo+PiAr Cj4+ICsjZGVmaW5lIERJT19NQVNLX1NIX0xJU1QobWFza19zaClcCj4+ICsgICAgICAgICAgICAg ICBIV1NfU0YoLCBESU9fTUVNX1BXUl9DVFJMLCBJMkNfTElHSFRfU0xFRVBfRk9SQ0UsIG1hc2tf c2gpCj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19zaGlmdCBkaW9fc2hpZnQg PSB7Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9fU0hJRlQpCj4+ICt9Owo+ PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fbWFzayBkaW9fbWFzayA9IHsKPj4g KyAgICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX01BU0spCj4+ICt9Owo+PiArCj4+ICAg c3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9jYXBzIHJlc19jYXBfZGNuMzIxID0gewo+PiAg ICAgICAgICAubnVtX3RpbWluZ19nZW5lcmF0b3IgPSA0LAo+PiAgICAgICAgICAubnVtX29wcCA9 IDQsCj4+IEBAIC04MjcsNiArODQxLDIyIEBAIHN0YXRpYyBzdHJ1Y3QgY2xvY2tfc291cmNlICpk Y24zMjFfY2xvY2tfc291cmNlX2NyZWF0ZSgKPj4gICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICAg fQo+Pgo+PiArc3RhdGljIHN0cnVjdCBkaW8gKmRjbjMyMV9kaW9fY3JlYXRlKHN0cnVjdCBkY19j b250ZXh0ICpjdHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRjbjEwX2RpbyAqZGlvMTAgPSBr emFsbG9jX29iaihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+PiArICAgICAgIGlmICghZGlvMTAp Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArI3VuZGVmIFJFR19TVFJV Q1QKPj4gKyNkZWZpbmUgUkVHX1NUUlVDVCBkaW9fcmVncwo+PiArICAgICAgIERJT19SRUdfTElT VF9EQ04xMCgpOwo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2NvbnN0cnVjdChkaW8xMCwgY3R4 LCAmZGlvX3JlZ3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ICsKPj4gKyAgICAgICByZXR1 cm4gJmRpbzEwLT5iYXNlOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHN0cnVjdCBodWJidWIgKmRj bjMyMV9odWJidWJfY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCj4+ICAgewo+PiAgICAg ICAgICBpbnQgaTsKPj4gQEAgLTE0NzQsNiArMTUwNCwxMSBAQCBzdGF0aWMgdm9pZCBkY24zMjFf cmVzb3VyY2VfZGVzdHJ1Y3Qoc3RydWN0IGRjbjMyMV9yZXNvdXJjZV9wb29sICpwb29sKQo+PiAg ICAgICAgICBpZiAocG9vbC0+YmFzZS5kY2NnICE9IE5VTEwpCj4+ICAgICAgICAgICAgICAgICAg ZGNuX2RjY2dfZGVzdHJveSgmcG9vbC0+YmFzZS5kY2NnKTsKPj4KPj4gKyAgICAgICBpZiAocG9v bC0+YmFzZS5kaW8gIT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAga2ZyZWUoVE9fRENOMTBf RElPKHBvb2wtPmJhc2UuZGlvKSk7Cj4+ICsgICAgICAgICAgICAgICBwb29sLT5iYXNlLmRpbyA9 IE5VTEw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICAgICAgICAgIGlmIChwb29sLT5iYXNlLm9lbV9k ZXZpY2UgIT0gTlVMTCkgewo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBkYyAqZGMgPSBwb29s LT5iYXNlLm9lbV9kZXZpY2UtPmN0eC0+ZGM7Cj4+Cj4+IEBAIC0xODcyLDYgKzE5MDcsMTQgQEAg c3RhdGljIGJvb2wgZGNuMzIxX3Jlc291cmNlX2NvbnN0cnVjdCgKPj4gICAgICAgICAgICAgICAg ICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiAgICAgICAgICB9Cj4+Cj4+ICsgICAgICAgLyogRElPICov Cj4+ICsgICAgICAgcG9vbC0+YmFzZS5kaW8gPSBkY24zMjFfZGlvX2NyZWF0ZShjdHgpOwo+PiAr ICAgICAgIGlmIChwb29sLT5iYXNlLmRpbyA9PSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBC UkVBS19UT19ERUJVR0dFUigpOwo+PiArICAgICAgICAgICAgICAgZG1fZXJyb3IoIkRDOiBmYWls ZWQgdG8gY3JlYXRlIGRpbyFcbiIpOwo+PiArICAgICAgICAgICAgICAgZ290byBjcmVhdGVfZmFp bDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgLyogSFVCUHMsIERQUHMsIE9QUHMsIFRH cywgQUJNcyAqLwo+PiAgICAgICAgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHBvb2wtPmJhc2Uu cmVzX2NhcC0+bnVtX3RpbWluZ19nZW5lcmF0b3I7IGkrKykgewo+Pgo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjM1L2RjbjM1X3Jlc291 cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzUvZGNu MzVfcmVzb3VyY2UuYwo+PiBpbmRleCAzNDk0YTQwY2VhOTlmLi41OThiMmYyNTg4MWRhIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNuMzUv ZGNuMzVfcmVzb3VyY2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMv cmVzb3VyY2UvZGNuMzUvZGNuMzVfcmVzb3VyY2UuYwo+PiBAQCAtNzEsNiArNzEsNyBAQAo+PiAg ICNpbmNsdWRlICJkY2UvZGNlX2h3c2VxLmgiCj4+ICAgI2luY2x1ZGUgImNsa19tZ3IuaCIKPj4g ICAjaW5jbHVkZSAiZGlvL3ZpcnR1YWwvdmlydHVhbF9zdHJlYW1fZW5jb2Rlci5oIgo+PiArI2lu Y2x1ZGUgImRpby9kY24xMC9kY24xMF9kaW8uaCIKPj4gICAjaW5jbHVkZSAiZGNlMTEwL2RjZTEx MF9yZXNvdXJjZS5oIgo+PiAgICNpbmNsdWRlICJkbWwvZGlzcGxheV9tb2RlX3ZiYS5oIgo+PiAg ICNpbmNsdWRlICJkY24zNS9kY24zNV9kY2NnLmgiCj4+IEBAIC02NjQsNiArNjY1LDE5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZGNuMjBfdm1pZF9tYXNrIHZtaWRfbWFza3MgPSB7Cj4+ICAgICAg ICAgICAgICAgICAgRENOMjBfVk1JRF9NQVNLX1NIX0xJU1QoX01BU0spCj4+ICAgfTsKPj4KPj4g K3N0YXRpYyBzdHJ1Y3QgZGNuX2Rpb19yZWdpc3RlcnMgZGlvX3JlZ3M7Cj4+ICsKPj4gKyNkZWZp bmUgRElPX01BU0tfU0hfTElTVChtYXNrX3NoKVwKPj4gKyAgICAgICAgICAgICAgIEhXU19TRigs IERJT19NRU1fUFdSX0NUUkwsIEkyQ19MSUdIVF9TTEVFUF9GT1JDRSwgbWFza19zaCkKPj4gKwo+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX3NoaWZ0IGRpb19zaGlmdCA9IHsKPj4gKyAg ICAgICAgICAgICAgIERJT19NQVNLX1NIX0xJU1QoX19TSElGVCkKPj4gK307Cj4+ICsKPj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZGNuX2Rpb19tYXNrIGRpb19tYXNrID0gewo+PiArICAgICAgICAg ICAgICAgRElPX01BU0tfU0hfTElTVChfTUFTSykKPj4gK307Cj4+ICsKPj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IHJlc291cmNlX2NhcHMgcmVzX2NhcF9kY24zNSA9IHsKPj4gICAgICAgICAgLm51 bV90aW1pbmdfZ2VuZXJhdG9yID0gNCwKPj4gICAgICAgICAgLm51bV9vcHAgPSA0LAo+PiBAQCAt OTczLDYgKzk4NywyMiBAQCBzdGF0aWMgc3RydWN0IG1wYyAqZGNuMzVfbXBjX2NyZWF0ZSgKPj4g ICAgICAgICAgcmV0dXJuICZtcGMzMC0+YmFzZTsKPj4gICB9Cj4+Cj4+ICtzdGF0aWMgc3RydWN0 IGRpbyAqZGNuMzVfZGlvX2NyZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiArewo+PiAr ICAgICAgIHN0cnVjdCBkY24xMF9kaW8gKmRpbzEwID0ga3phbGxvY19vYmooc3RydWN0IGRjbjEw X2Rpbyk7Cj4+ICsKPj4gKyAgICAgICBpZiAoIWRpbzEwKQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuIE5VTEw7Cj4+ICsKPj4gKyN1bmRlZiBSRUdfU1RSVUNUCj4+ICsjZGVmaW5lIFJFR19TVFJV Q1QgZGlvX3JlZ3MKPj4gKyAgICAgICBESU9fUkVHX0xJU1RfRENOMTAoKTsKPj4gKwo+PiArICAg ICAgIGRjbjEwX2Rpb19jb25zdHJ1Y3QoZGlvMTAsIGN0eCwgJmRpb19yZWdzLCAmZGlvX3NoaWZ0 LCAmZGlvX21hc2spOwo+PiArCj4+ICsgICAgICAgcmV0dXJuICZkaW8xMC0+YmFzZTsKPj4gK30K Pj4gKwo+PiAgIHN0YXRpYyBzdHJ1Y3QgaHViYnViICpkY24zNV9odWJidWJfY3JlYXRlKHN0cnVj dCBkY19jb250ZXh0ICpjdHgpCj4+ICAgewo+PiAgICAgICAgICBpbnQgaTsKPj4gQEAgLTE1NjMs NiArMTU5MywxMSBAQCBzdGF0aWMgdm9pZCBkY24zNV9yZXNvdXJjZV9kZXN0cnVjdChzdHJ1Y3Qg ZGNuMzVfcmVzb3VyY2VfcG9vbCAqcG9vbCkKPj4KPj4gICAgICAgICAgaWYgKHBvb2wtPmJhc2Uu ZGNjZyAhPSBOVUxMKQo+PiAgICAgICAgICAgICAgICAgIGRjbl9kY2NnX2Rlc3Ryb3koJnBvb2wt PmJhc2UuZGNjZyk7Cj4+ICsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5kaW8gIT0gTlVMTCkg ewo+PiArICAgICAgICAgICAgICAga2ZyZWUoVE9fRENOMTBfRElPKHBvb2wtPmJhc2UuZGlvKSk7 Cj4+ICsgICAgICAgICAgICAgICBwb29sLT5iYXNlLmRpbyA9IE5VTEw7Cj4+ICsgICAgICAgfQo+ PiAgIH0KPj4KPj4gICBzdGF0aWMgc3RydWN0IGh1YnAgKmRjbjM1X2h1YnBfY3JlYXRlKAo+PiBA QCAtMjAzMyw2ICsyMDY4LDE0IEBAIHN0YXRpYyBib29sIGRjbjM1X3Jlc291cmNlX2NvbnN0cnVj dCgKPj4gICAgICAgICAgICAgICAgICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiAgICAgICAgICB9Cj4+ Cj4+ICsgICAgICAgLyogRElPICovCj4+ICsgICAgICAgcG9vbC0+YmFzZS5kaW8gPSBkY24zNV9k aW9fY3JlYXRlKGN0eCk7Cj4+ICsgICAgICAgaWYgKHBvb2wtPmJhc2UuZGlvID09IE5VTEwpIHsK Pj4gKyAgICAgICAgICAgICAgIEJSRUFLX1RPX0RFQlVHR0VSKCk7Cj4+ICsgICAgICAgICAgICAg ICBkbV9lcnJvcigiREM6IGZhaWxlZCB0byBjcmVhdGUgZGlvIVxuIik7Cj4+ICsgICAgICAgICAg ICAgICBnb3RvIGNyZWF0ZV9mYWlsOwo+PiArICAgICAgIH0KPj4gKwo+PiAgICAgICAgICAvKiBI VUJQcywgRFBQcywgT1BQcyBhbmQgVEdzICovCj4+ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBw b29sLT5iYXNlLnBpcGVfY291bnQ7IGkrKykgewo+PiAgICAgICAgICAgICAgICAgIHBvb2wtPmJh c2UuaHVicHNbaV0gPSBkY24zNV9odWJwX2NyZWF0ZShjdHgsIGkpOwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2RjbjM1MS9kY24zNTFfcmVz b3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zNTEv ZGNuMzUxX3Jlc291cmNlLmMKPj4gaW5kZXggMDgwYmM3ZjI0ZmZhYS4uN2UxNWQwN2RmN2EzMyAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL3Jlc291cmNlL2Rj bjM1MS9kY24zNTFfcmVzb3VyY2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvcmVzb3VyY2UvZGNuMzUxL2RjbjM1MV9yZXNvdXJjZS5jCj4+IEBAIC01MCw2ICs1MCw3 IEBACj4+ICAgI2luY2x1ZGUgImRjZS9kY2VfaHdzZXEuaCIKPj4gICAjaW5jbHVkZSAiY2xrX21n ci5oIgo+PiAgICNpbmNsdWRlICJkaW8vdmlydHVhbC92aXJ0dWFsX3N0cmVhbV9lbmNvZGVyLmgi Cj4+ICsjaW5jbHVkZSAiZGlvL2RjbjEwL2RjbjEwX2Rpby5oIgo+PiAgICNpbmNsdWRlICJkY2Ux MTAvZGNlMTEwX3Jlc291cmNlLmgiCj4+ICAgI2luY2x1ZGUgImRtbC9kaXNwbGF5X21vZGVfdmJh LmgiCj4+ICAgI2luY2x1ZGUgImRjbjM1L2RjbjM1X2RjY2cuaCIKPj4gQEAgLTY0NCw2ICs2NDUs MTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMF92bWlkX21hc2sgdm1pZF9tYXNrcyA9IHsK Pj4gICAgICAgICAgICAgICAgICBEQ04yMF9WTUlEX01BU0tfU0hfTElTVChfTUFTSykKPj4gICB9 Owo+Pgo+PiArc3RhdGljIHN0cnVjdCBkY25fZGlvX3JlZ2lzdGVycyBkaW9fcmVnczsKPj4gKwo+ PiArI2RlZmluZSBESU9fTUFTS19TSF9MSVNUKG1hc2tfc2gpXAo+PiArICAgICAgICAgICAgICAg SFdTX1NGKCwgRElPX01FTV9QV1JfQ1RSTCwgSTJDX0xJR0hUX1NMRUVQX0ZPUkNFLCBtYXNrX3No KQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fc2hpZnQgZGlvX3NoaWZ0ID0g ewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfX1NISUZUKQo+PiArfTsKPj4g Kwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX21hc2sgZGlvX21hc2sgPSB7Cj4+ICsg ICAgICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9NQVNLKQo+PiArfTsKPj4gKwo+PiAgIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfY2FwcyByZXNfY2FwX2RjbjM1MSA9IHsKPj4gICAg ICAgICAgLm51bV90aW1pbmdfZ2VuZXJhdG9yID0gNCwKPj4gICAgICAgICAgLm51bV9vcHAgPSA0 LAo+PiBAQCAtOTUzLDYgKzk2NywyMiBAQCBzdGF0aWMgc3RydWN0IG1wYyAqZGNuMzVfbXBjX2Ny ZWF0ZSgKPj4gICAgICAgICAgcmV0dXJuICZtcGMzMC0+YmFzZTsKPj4gICB9Cj4+Cj4+ICtzdGF0 aWMgc3RydWN0IGRpbyAqZGNuMzUxX2Rpb19jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0eCkK Pj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZGNuMTBfZGlvICpkaW8xMCA9IGt6YWxsb2Nfb2JqKHN0 cnVjdCBkY24xMF9kaW8pOwo+PiArCj4+ICsgICAgICAgaWYgKCFkaW8xMCkKPj4gKyAgICAgICAg ICAgICAgIHJldHVybiBOVUxMOwo+PiArCj4+ICsjdW5kZWYgUkVHX1NUUlVDVAo+PiArI2RlZmlu ZSBSRUdfU1RSVUNUIGRpb19yZWdzCj4+ICsgICAgICAgRElPX1JFR19MSVNUX0RDTjEwKCk7Cj4+ ICsKPj4gKyAgICAgICBkY24xMF9kaW9fY29uc3RydWN0KGRpbzEwLCBjdHgsICZkaW9fcmVncywg JmRpb19zaGlmdCwgJmRpb19tYXNrKTsKPj4gKwo+PiArICAgICAgIHJldHVybiAmZGlvMTAtPmJh c2U7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgc3RydWN0IGh1YmJ1YiAqZGNuMzVfaHViYnViX2Ny ZWF0ZShzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KQo+PiAgIHsKPj4gICAgICAgICAgaW50IGk7Cj4+ IEBAIC0xNTQzLDYgKzE1NzMsMTEgQEAgc3RhdGljIHZvaWQgZGNuMzUxX3Jlc291cmNlX2Rlc3Ry dWN0KHN0cnVjdCBkY24zNTFfcmVzb3VyY2VfcG9vbCAqcG9vbCkKPj4KPj4gICAgICAgICAgaWYg KHBvb2wtPmJhc2UuZGNjZyAhPSBOVUxMKQo+PiAgICAgICAgICAgICAgICAgIGRjbl9kY2NnX2Rl c3Ryb3koJnBvb2wtPmJhc2UuZGNjZyk7Cj4+ICsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5k aW8gIT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAga2ZyZWUoVE9fRENOMTBfRElPKHBvb2wt PmJhc2UuZGlvKSk7Cj4+ICsgICAgICAgICAgICAgICBwb29sLT5iYXNlLmRpbyA9IE5VTEw7Cj4+ ICsgICAgICAgfQo+PiAgIH0KPj4KPj4gICBzdGF0aWMgc3RydWN0IGh1YnAgKmRjbjM1X2h1YnBf Y3JlYXRlKAo+PiBAQCAtMjAwNSw2ICsyMDQwLDE0IEBAIHN0YXRpYyBib29sIGRjbjM1MV9yZXNv dXJjZV9jb25zdHJ1Y3QoCj4+ICAgICAgICAgICAgICAgICAgZ290byBjcmVhdGVfZmFpbDsKPj4g ICAgICAgICAgfQo+Pgo+PiArICAgICAgIC8qIERJTyAqLwo+PiArICAgICAgIHBvb2wtPmJhc2Uu ZGlvID0gZGNuMzUxX2Rpb19jcmVhdGUoY3R4KTsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5k aW8gPT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAgQlJFQUtfVE9fREVCVUdHRVIoKTsKPj4g KyAgICAgICAgICAgICAgIGRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsK Pj4gKyAgICAgICAgICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ ICAgICAgICAgIC8qIEhVQlBzLCBEUFBzLCBPUFBzIGFuZCBUR3MgKi8KPj4gICAgICAgICAgZm9y IChpID0gMDsgaSA8IHBvb2wtPmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAg ICAgICAgcG9vbC0+YmFzZS5odWJwc1tpXSA9IGRjbjM1X2h1YnBfY3JlYXRlKGN0eCwgaSk7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvcmVzb3VyY2UvZGNu MzYvZGNuMzZfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9yZXNv dXJjZS9kY24zNi9kY24zNl9yZXNvdXJjZS5jCj4+IGluZGV4IGFmNTFhYzRlYTU5ZTIuLjgzZmVl MmNhNjFiZmYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9y ZXNvdXJjZS9kY24zNi9kY24zNl9yZXNvdXJjZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9yZXNvdXJjZS9kY24zNi9kY24zNl9yZXNvdXJjZS5jCj4+IEBAIC01MCw2 ICs1MCw3IEBACj4+ICAgI2luY2x1ZGUgImRjZS9kY2VfaHdzZXEuaCIKPj4gICAjaW5jbHVkZSAi Y2xrX21nci5oIgo+PiAgICNpbmNsdWRlICJkaW8vdmlydHVhbC92aXJ0dWFsX3N0cmVhbV9lbmNv ZGVyLmgiCj4+ICsjaW5jbHVkZSAiZGlvL2RjbjEwL2RjbjEwX2Rpby5oIgo+PiAgICNpbmNsdWRl ICJkY2UxMTAvZGNlMTEwX3Jlc291cmNlLmgiCj4+ICAgI2luY2x1ZGUgImRtbC9kaXNwbGF5X21v ZGVfdmJhLmgiCj4+ICAgI2luY2x1ZGUgImRjbjM1L2RjbjM1X2RjY2cuaCIKPj4gQEAgLTY1MSw2 ICs2NTIsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkY24yMF92bWlkX21hc2sgdm1pZF9tYXNr cyA9IHsKPj4gICAgICAgICAgICAgICAgICBEQ04yMF9WTUlEX01BU0tfU0hfTElTVChfTUFTSykK Pj4gICB9Owo+Pgo+PiArc3RhdGljIHN0cnVjdCBkY25fZGlvX3JlZ2lzdGVycyBkaW9fcmVnczsK Pj4gKwo+PiArI2RlZmluZSBESU9fTUFTS19TSF9MSVNUKG1hc2tfc2gpXAo+PiArICAgICAgICAg ICAgICAgSFdTX1NGKCwgRElPX01FTV9QV1JfQ1RSTCwgSTJDX0xJR0hUX1NMRUVQX0ZPUkNFLCBt YXNrX3NoKQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRjbl9kaW9fc2hpZnQgZGlvX3No aWZ0ID0gewo+PiArICAgICAgICAgICAgICAgRElPX01BU0tfU0hfTElTVChfX1NISUZUKQo+PiAr fTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkY25fZGlvX21hc2sgZGlvX21hc2sgPSB7 Cj4+ICsgICAgICAgICAgICAgICBESU9fTUFTS19TSF9MSVNUKF9NQVNLKQo+PiArfTsKPj4gKwo+ PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfY2FwcyByZXNfY2FwX2RjbjM2ID0gewo+ PiAgICAgICAgICAubnVtX3RpbWluZ19nZW5lcmF0b3IgPSA0LAo+PiAgICAgICAgICAubnVtX29w cCA9IDQsCj4+IEBAIC05NjAsNiArOTc0LDIyIEBAIHN0YXRpYyBzdHJ1Y3QgbXBjICpkY24zNV9t cGNfY3JlYXRlKAo+PiAgICAgICAgICByZXR1cm4gJm1wYzMwLT5iYXNlOwo+PiAgIH0KPj4KPj4g K3N0YXRpYyBzdHJ1Y3QgZGlvICpkY24zNl9kaW9fY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0ICpj dHgpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRjbjEwX2RpbyAqZGlvMTAgPSBremFsbG9jX29i aihzdHJ1Y3QgZGNuMTBfZGlvKTsKPj4gKwo+PiArICAgICAgIGlmICghZGlvMTApCj4+ICsgICAg ICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArI3VuZGVmIFJFR19TVFJVQ1QKPj4gKyNk ZWZpbmUgUkVHX1NUUlVDVCBkaW9fcmVncwo+PiArICAgICAgIERJT19SRUdfTElTVF9EQ04xMCgp Owo+PiArCj4+ICsgICAgICAgZGNuMTBfZGlvX2NvbnN0cnVjdChkaW8xMCwgY3R4LCAmZGlvX3Jl Z3MsICZkaW9fc2hpZnQsICZkaW9fbWFzayk7Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gJmRpbzEw LT5iYXNlOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHN0cnVjdCBodWJidWIgKmRjbjM1X2h1YmJ1 Yl9jcmVhdGUoc3RydWN0IGRjX2NvbnRleHQgKmN0eCkKPj4gICB7Cj4+ICAgICAgICAgIGludCBp Owo+PiBAQCAtMTU1MCw2ICsxNTgwLDExIEBAIHN0YXRpYyB2b2lkIGRjbjM2X3Jlc291cmNlX2Rl c3RydWN0KHN0cnVjdCBkY24zNl9yZXNvdXJjZV9wb29sICpwb29sKQo+Pgo+PiAgICAgICAgICBp ZiAocG9vbC0+YmFzZS5kY2NnICE9IE5VTEwpCj4+ICAgICAgICAgICAgICAgICAgZGNuX2RjY2df ZGVzdHJveSgmcG9vbC0+YmFzZS5kY2NnKTsKPj4gKwo+PiArICAgICAgIGlmIChwb29sLT5iYXNl LmRpbyAhPSBOVUxMKSB7Cj4+ICsgICAgICAgICAgICAgICBrZnJlZShUT19EQ04xMF9ESU8ocG9v bC0+YmFzZS5kaW8pKTsKPj4gKyAgICAgICAgICAgICAgIHBvb2wtPmJhc2UuZGlvID0gTlVMTDsK Pj4gKyAgICAgICB9Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBzdHJ1Y3QgaHVicCAqZGNuMzVfaHVi cF9jcmVhdGUoCj4+IEBAIC0yMDEyLDYgKzIwNDcsMTQgQEAgc3RhdGljIGJvb2wgZGNuMzZfcmVz b3VyY2VfY29uc3RydWN0KAo+PiAgICAgICAgICAgICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ ICAgICAgICAgIH0KPj4KPj4gKyAgICAgICAvKiBESU8gKi8KPj4gKyAgICAgICBwb29sLT5iYXNl LmRpbyA9IGRjbjM2X2Rpb19jcmVhdGUoY3R4KTsKPj4gKyAgICAgICBpZiAocG9vbC0+YmFzZS5k aW8gPT0gTlVMTCkgewo+PiArICAgICAgICAgICAgICAgQlJFQUtfVE9fREVCVUdHRVIoKTsKPj4g KyAgICAgICAgICAgICAgIGRtX2Vycm9yKCJEQzogZmFpbGVkIHRvIGNyZWF0ZSBkaW8hXG4iKTsK Pj4gKyAgICAgICAgICAgICAgIGdvdG8gY3JlYXRlX2ZhaWw7Cj4+ICsgICAgICAgfQo+PiArCj4+ ICAgICAgICAgIC8qIEhVQlBzLCBEUFBzLCBPUFBzIGFuZCBUR3MgKi8KPj4gICAgICAgICAgZm9y IChpID0gMDsgaSA8IHBvb2wtPmJhc2UucGlwZV9jb3VudDsgaSsrKSB7Cj4+ICAgICAgICAgICAg ICAgICAgcG9vbC0+YmFzZS5odWJwc1tpXSA9IGRjbjM1X2h1YnBfY3JlYXRlKGN0eCwgaSk7Cj4+ IC0tCj4+IDIuNTMuMAo+PgoKLS0gClRoYW5rcywKSXZhbiBMaXBza2kKCg==