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 X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 925A9C47080 for ; Tue, 1 Jun 2021 17:27:36 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 55421613C1 for ; Tue, 1 Jun 2021 17:27:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 55421613C1 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B6B8789131; Tue, 1 Jun 2021 17:27:35 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2053.outbound.protection.outlook.com [40.107.220.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id 953EA8912C; Tue, 1 Jun 2021 17:27:33 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z2DCOyxC2wWnk7P5jKcmZcA3NOu6aRKe4URmCLMhCxJLQDTfdNHGirO9U3Xgvps4HGXskI54eqsb3ffcp2hDtLmcvM1J0ZGBBMUCsMIUlxHfkLdSv/ERuj6qLAtEksJucFa0Hb/YMYy5sSEjN3ObYGwbbE+BNNdyJbbj6YeORqazy023FNX0CmrEYugZP8q84yERxBLiO6RvthocO/YVHOHYrwQqtRhS75uHMzSK8XkWLZpdE59Bac+3fmtVxagscjYeWIDpizDMtE/TaWE0GevO8vA8itm2LSZD7kHygRpRGJ5zOQ3CBBdQUOHogsU4XsTEvMc+HhwuvO3SpIzAmg== 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-SenderADCheck; bh=KZ91bEibyL5UUvXTq+vUTreFubeCYxUEpqtNLG875cM=; b=dbQBO6u9BJa6Dj697B5VxNd1ilKFlK3tBwTvKbdeN9NcXg+9n/P5NZSWHPPCu365eAghAHpAEVnLbU/QSCLOHqtIwhh7AunIjt3EO9SOjp7Up7VcErJqKmXQ2I8VvVS5/PtzflMjfFoOy58IuAc1EqjbAosJuaF0ooP6syxdhA/eZSFe0NjIeR3hyzxkpGrKBOL6uQzThQ5trBA0Fnk9hnZTGEgY8gE1mizoECuoVyMsBVILf+FM1KAj41N/41JuYnyh129H+nlqz6Du1YCu+O+bSZy6rdBhCfWC8fvUDLoV60YvTPiDf0KHzX1R9666lMS3nzRUyk73O30SThh0DA== 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=KZ91bEibyL5UUvXTq+vUTreFubeCYxUEpqtNLG875cM=; b=qXlukS8p7s4YUpRYOZ2a/qmWO8GsTh5blivpzeve3Nuiv28HbVWovYbxgw0NWWM3UOeyu3kbCzvQxcW6U5QlkZsp5Y5emOpF7fpAhDqZwLwry0afu+eCgoIsavIvMLF3oWu/408ZgOwKpzoxVI4IC3rbwnvA2tyjWJyJmoNt5Fw= Authentication-Results: vmware.com; dkim=none (message not signed) header.d=none;vmware.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4221.namprd12.prod.outlook.com (2603:10b6:208:1d2::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.21; Tue, 1 Jun 2021 17:27:31 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6d4d:4674:1cf6:8d34]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6d4d:4674:1cf6:8d34%6]) with mapi id 15.20.4173.030; Tue, 1 Jun 2021 17:27:31 +0000 To: Daniel Vetter References: <20210525211753.1086069-1-jason@jlekstrand.net> <20210525211753.1086069-3-jason@jlekstrand.net> <82e16239-e8ea-8b03-6a90-c7d18a5f8a91@amd.com> <4c7cede0-4e33-ffc5-6308-7eccd3570e9d@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <7692f363-ed5e-54fb-71c9-3bc3f69a07ec@amd.com> Date: Tue, 1 Jun 2021 19:27:24 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:7517:785b:7177:d6a6] X-ClientProxiedBy: AM4PR0202CA0006.eurprd02.prod.outlook.com (2603:10a6:200:89::16) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:7517:785b:7177:d6a6] (2a02:908:1252:fb60:7517:785b:7177:d6a6) by AM4PR0202CA0006.eurprd02.prod.outlook.com (2603:10a6:200:89::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Tue, 1 Jun 2021 17:27:29 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f2d0ad2e-6f56-44e1-f289-08d9252288f1 X-MS-TrafficTypeDiagnostic: MN2PR12MB4221: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PLI54F5aAKVtiQJ19ZFELCk8PbSx/lA+4ZXQmTDt5bba2fU7j+dEN0lXiYFK/6CqHsvsiJzNoV0RLz9H2hO2ggDRoggNn42hQVQeDV5l9D3o6EibWG0POjgGB0CmwSPyNQUj9rr/YImnGllKMD9H5vbI7iD86LwEJ+O6RPLGpZRPKjXEc+pLbrQhZyN7xXM8vHG8cmSVwyxsY5DWewyHjUpQQNaq/ZZ0HNwh6dN406BI2LK/In5DqE9ETrFMdkSmANAcw456Rxr5BhvE/bqMqmrUKv7wLh7YABs02VTmPFxxpP2H7ECyjUhAD/bbFfXOwVeU5BoRAH17npRUYcmyU+oHfTQLDz6yMzgZiyt35v+K9rBF8acHDmudlKRQELkAcD2hq/xcACXJ6kzAToq7Ld5zubmF+/wBT8XOfeLMOSIql2ntm58NrRUkGsb9Ofo37C/BXb1wKKbZEb16YApka4xQzSfoA8d+udbn/Un9XhcqZLmwtb/P11IlKa4smRJ3OZajv0aGibHxNOCrKHwCxxfSJdt4u0mdhrx4P69qdBgN/9Q9xcdKvUeW8jRhpc9fgaXHYtieEDLs9aFwANjtDutxwQbKHo+LEGjC8zBVu9ASYN8WV2n595sPG7dw3vK9y9hBUBiDkvKq/VpfO4OKeiASeLjKUBePJpF5aXXCSw7V97NmJe6JIEfesdI7gUE9 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(346002)(376002)(366004)(136003)(31686004)(6916009)(38100700002)(2616005)(86362001)(66574015)(5660300002)(83380400001)(6486002)(8676002)(16526019)(186003)(2906002)(53546011)(7416002)(54906003)(6666004)(66476007)(66556008)(478600001)(8936002)(4326008)(66946007)(36756003)(30864003)(31696002)(316002)(43740500002)(45980500001)(579004)(559001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?cWprSUxMWDdIRzBHQVQyOVdQN3R6NDBWZ1FnOGVBUlBhbGhrMEZXRUp3QnpM?= =?utf-8?B?VmFOaUZ6cTlnM1BmT3pLMGtzcWhWL0ZNaEpiWjZ3elVOTjNId0VRbFI4STd4?= =?utf-8?B?NlREOHpaVk5jNDRuYlZyay9XMDNVTjZ5di96NnQ1T1gzSE51VG1JV2Z2R2VF?= =?utf-8?B?SXJFZVlTWVp6S2cwRVRiRGNtS2xBamVUbk1LWktJYkhIOUplOFlIM1RYN2tl?= =?utf-8?B?cjY2eDFCaUhDbHQzVWxDUkhSWWQxbThhNDQxby9hN0VFby9PZzRGK2N6RTlm?= =?utf-8?B?azU3Tm9NUGQzMTNQY2JjMTg3V1A5aXJmZHMydWpCcWlHVE02UG1jRVBZZjA2?= =?utf-8?B?UzF4MU1iWFdaeUFSaHpmOXpTclk5dm5keWlCOXdIcy9NWGhKMXRObURSODFW?= =?utf-8?B?MU1PT2VHbnlJNEFFaVJTVWh5Nm9ab0hEYmhNWnBueWpXWEJiZjBTVGJFWnlv?= =?utf-8?B?ZmhzZ3pqU1pBL05BQThVTTBpTzZUVW1TcnNWZnUvcDIwR1pBalBkZ2NlN1pG?= =?utf-8?B?TTZRRzRVYlJQSXpwRE9PaGx5VFBXZnRjTmZzU1Q3WHhEKzM2Sy9SNkRkeGsr?= =?utf-8?B?TVg2RllDa3dwNUtZOElLbWJyeGVxQmtuNm1QQ2FNZ0NFRmkrREQzdHJDOW1w?= =?utf-8?B?cGRyM2lSZW1DTFdzY3BjeGRkOERiNUs0WDgyRkZvVGUybnNCd1dlSEE0NEZS?= =?utf-8?B?VE02Y2t3cFF5VVIvU2dLWUFuWGZGQ3F2ei95aWdNVktPQ3ZBZUE1T0ZiUG5K?= =?utf-8?B?UlQvdzJFMFN0YjFOZFQ1ZVhsQWlBU0k5azhyRDBxSXo5ZHdxMFpKU3g1Vnlj?= =?utf-8?B?QSsxMG9wNGhGZHNOdmtxVEtrbWpjMmFPSUFOTFNaZ0p4ZHI1T3Z5SGJ2ZjRa?= =?utf-8?B?cVpKNXRjTkRkU1kyejF0bVZXMzVVV3FNRnpxTU16YlkxS21Gc1J1ZHFodm9L?= =?utf-8?B?UlVORlpTQVNlNFZaRFphT0JCYVQyLzNzZDFzZ1hUM2VpYmZaMXZJTFZOVG1Q?= =?utf-8?B?cE1MU09hUXZvU0lDc2ZkSXVaTG00TjB4c2VIekhOQUhiaFYvc1ZCdXZZV0R3?= =?utf-8?B?UmZiN3hQY2JjcGZkcXYzV2F4WmZjQi9PRTZpT1IvWS9BVlVYZVZtRFVhZHFp?= =?utf-8?B?TWNSZVNLeTBwZERxREJzWDZlcHdlSHdOeFNLZHpsTVZnRGhkZnBUWXpiUVRS?= =?utf-8?B?bE1HU0s5dGV3Q0NtZ05uVS9Ob1N4ZEtHK3AxSUFjQys0VTVpRFcwZHI4WmhI?= =?utf-8?B?RWNCdURRYkdIdzNlUE9remJVbDlKcEI3VXdhWDJlVHlnSWRSY2xGbENOOEpL?= =?utf-8?B?L3hLK3Q5cmFjMVhiR1hOYVU0MXFqOTdISE5NZ0ZUQkVZa0pZYUNLbVQ1RU5r?= =?utf-8?B?YS9lVmd4UVk1NVoxMGlkWFhtSGhTWGRuNU4wNExKV0RRR2ptMFU0MDZJK0E1?= =?utf-8?B?Wm45VWVVd0JqTlRQaER4bWJUNzVWcHhrNU1GUGgyK2hsdUQxVXE5aFhsdHdt?= =?utf-8?B?N0l3SlVsL3FJOTlyamlkeVB4SlBCZ3NJQUFLeE1LeENZeWhrMDkvOVlzVU1E?= =?utf-8?B?b1dsaVBrSVB1ZW9PQ2IzV0JPcjlVdU9RekcxZFdpWWIwWEhJNGFUYVhvZVRu?= =?utf-8?B?S3dzRk9EdUZFR2d5OUQ5Y3YzZjVvQkhTblZ2QlZ6R08vSDhYLzNoNUl3R3Vm?= =?utf-8?B?TjUwcHM2M09ROFQzcytnMWxDNVhSVDBQbXlpZHBIU1RBNFo0dk1qL096cDdF?= =?utf-8?B?NlVaYS9wRWRPcmRLVnJTeUw2K05odkhtQnNIbC8zdG82MDQyejNDcUY0anky?= =?utf-8?B?dVhBbnRLM2tsbXlNVm5YaGhJK3EzZUNlUHZ4QWZZR2lqK2FScStWdm9ZWVJw?= =?utf-8?Q?Bwxcv4RY4Iszk?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2d0ad2e-6f56-44e1-f289-08d9252288f1 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2021 17:27:30.8937 (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: gWTLXtBKfcxTRBa1N2BfbpViMkYXLs4+6Bdu8dvlFGzJpYnZevE8nIT8Ux0ha0Q2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4221 Subject: Re: [Intel-gfx] [PATCH 2/7] dma-buf: Rename dma_resv helpers from _rcu to _unlocked (v2) X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann , intel-gfx , Maxime Ripard , Huang Rui , VMware Graphics , dri-devel , Thomas Zimmermann , Lucas Stach Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" QW0gMDEuMDYuMjEgdW0gMTY6MzQgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFRodSwgTWF5 IDI3LCAyMDIxIGF0IDAzOjQxOjAyUE0gKzAyMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+ IEFtIDI3LjA1LjIxIHVtIDE1OjI1IHNjaHJpZWIgRGFuaWVsIFZldHRlcjoKPj4+IE9uIFRodSwg TWF5IDI3LCAyMDIxIGF0IDE6NTkgUE0gQ2hyaXN0aWFuIEvDtm5pZwo+Pj4gPGNocmlzdGlhbi5r b2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4+Pj4gQW0gMjcuMDUuMjEgdW0gMTI6Mzkgc2NocmllYiBE YW5pZWwgVmV0dGVyOgo+Pj4+PiBPbiBXZWQsIE1heSAyNiwgMjAyMSBhdCAxMjo1Nzo0MFBNICsw MjAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4+Pj4gQW0gMjUuMDUuMjEgdW0gMjM6MTcg c2NocmllYiBKYXNvbiBFa3N0cmFuZDoKPj4+Pj4+PiBOb25lIG9mIHRoZXNlIGhlbHBlcnMgYWN0 dWFsbHkgbGVhayBhbnkgUkNVIGRldGFpbHMgdG8gdGhlIGNhbGxlci4gIFRoZXkKPj4+Pj4+PiBh bGwgYXNzdW1lIHlvdSBoYXZlIGEgZ2VudWluZSByZWZlcmVuY2UsIHRha2UgdGhlIFJDVSByZWFk IGxvY2ssIGFuZAo+Pj4+Pj4+IHJldHJ5IGlmIG5lZWRlZC4gIE5hbWluZyB0aGVtIHdpdGggYW4g X3JjdSBpcyBsaWtlbHkgdG8gY2F1c2UgY2FsbGVycwo+Pj4+Pj4+IG1vcmUgcGFuaWMgdGhhbiBu ZWVkZWQuCj4+Pj4+PiBJJ20gcmVhbGx5IHdvbmRlcmluZyBpZiB3ZSBuZWVkIHRoaXMgcG9zdGZp eCBpbiB0aGUgZmlyc3QgcGxhY2UuCj4+Pj4+Pgo+Pj4+Pj4gSWYgd2UgdXNlIHRoZSByaWdodCBy Y3VfZGVyZWZlcmVuY2VfY2hlY2soKSBtYWNybyB0aGVuIHRob3NlIGZ1bmN0aW9ucyBjYW4KPj4+ Pj4+IGJlIGNhbGxlZCB3aXRoIGJvdGggdGhlIHJlc2VydmF0aW9uIG9iamVjdCBsb2NrZWQgYW5k IHVubG9ja2VkLiBJdCBzaG91bGRuJ3QKPj4+Pj4+IG1hdHRlciB0byB0aGVtLgo+Pj4+Pj4KPj4+ Pj4+IEJ1dCBnZXR0aW5nIHJpZCBvZiB0aGUgX3JjdSBwb3N0Zml4IHNvdW5kcyBsaWtlIGEgZ29v ZCBpZGVhIGluIGdlbmVyYWwgdG8KPj4+Pj4+IG1lLgo+Pj4+PiBTbyBkb2VzIHRoYXQgY291bnQg YXMgYW4gYWNrIG9yIG5vdD8gSWYgeWVzIEkgdGhpbmsgd2Ugc2hvdWxkIGxhbmQgdGhpcwo+Pj4+ PiBwYXRjaCByaWdodCBhd2F5LCBzaW5jZSBpdCdzIGdvaW5nIHRvIGNvbmZsaWN0IHJlYWwgZmFz dCBiYWRseS4KPj4+PiBJIGhhZCBzb21lIGZvbGxvdyB1cCBkaXNjdXNzaW9uIHdpdGggSmFzb24g YW5kIEkgd291bGQgcmF0aGVyIGxpa2UgdG8KPj4+PiBzd2l0Y2ggdG8gdXNpbmcgcmN1X2RlcmVm ZXJlbmNlX2NoZWNrKCkgaW4gYWxsIHBsYWNlcyBhbmQgY29tcGxldGVseQo+Pj4+IHJlbW92ZSB0 aGUgX3JjdSBwb3N0Zml4Lgo+Pj4gSG0sIEknbSBub3Qgc3VyZSB3aGV0aGVyIHNwcmVhZGluZyBf cmN1IHRyaWNrcyBmdXJ0aGVyIGlzIGFuCj4+PiBlc3BlY2lhbGx5IGJyaWdodCBpZGVhLiBBdCBs ZWFzdCBpOTE1IGlzIGZ1bGwgb2YgdmVyeSBjbGV2ZXIgX3JjdQo+Pj4gdHJpY2tzLCBhbmQgZW5j b3VyYWdpbmcgZHJpdmVycyB0byByb2xsIG91dCB0aGVpciBvd24gX3JjdSBldmVyeXdoZXJlCj4+ PiBpcyBwcm9iYWJseSBub3QgaW4gb3VyIGJlc3QgaW50ZXJlc3QuIFNvbWUgZmFzdC1wYXRoIGNo ZWNraW5nIGlzIGltbwo+Pj4gb2ssIGJ1dCB0aGF0J3MgaXQuIEVzcGVjaWFsbHkgb25jZSB3ZSBn ZXQgaW50byB0aGUgZW50aXJlCj4+PiBTTEFCX1RZUEVTQUZFX0JZX1JDVSBidXNpbmVzcyBpdCBi ZWNvbWVzIHJlYWxseSBuYXN0eSByZWFsbHkgcXVpY2tseS4KPj4gT2gsIHllcyBjb21wbGV0ZWx5 IGFncmVlLiBTTEFCX1RZUEVTQUZFX0JZX1JDVSBpcyBvcHRpbWl6aW5nIGZvciB0aGUgd3JvbmcK Pj4gdXNlIGNhc2UgSSB0aGluay4KPj4KPj4gWW91IHNhdmUgYSBiaXQgb2Ygb3ZlcmhlYWQgd2hp bGUgZnJlZWluZyBmZW5jZXMsIGJ1dCBpbiByZXR1cm4geW91IGhhdmUKPj4gZXh0cmEgb3Zlcmhl YWQgd2hpbGUgYWRkaW5nIGZlbmNlcyB0byB0aGUgZG1hX3Jlc3Ygb2JqZWN0Lgo+IEdldHRpbmcg d2F5IG9mZiB0b3BpYywgYnV0IEknbSB3b25kZXJpbmcgd2hldGhlciB0aGUgZW50aXJlIHJjdSBi dXNpbmVzcwo+IGlzIHJlYWxseSB3b3J0aCBpdCBmb3IgZG1hX2ZlbmNlLgo+Cj4gTW9zdGx5IHdl IG1hbmlwdWxhdGUgZG1hX3Jlc3Ygd2hpbGUgaG9sZGluZyBkbWFfcmVzdiBhbnl3YXkuIFRoZXJl J3MgbWF5YmUKPiBhIGZldyB3YWl0cyBhbmQgc3R1ZmYsIGJ1dCBJJ20gbm90IHN1cmUgd2hldGhl ciB0aGUgZG1hX3Jlc3ZfbG9jayArCj4gZG1hX2ZlbmNlX2dldCArIGRtYV9yZXN2X3VubG9jayAr IGRtYV9mZW5jZV9wdXQgcmVhbGx5IG1hdHRlci4gQW5kIGlmIHlvdQo+IGhhdmUgbG9jayBjb250 ZW50aW9uIG9uIGEgc2luZ2xlIGJ1ZmZlciB5b3UndmUgbG9zdCBhbnl3YXkuCj4KPiBBdCB0aGF0 IHBvaW50IEkgdGhpbmsgd2UgaGF2ZSBtYXliZSBzb21lIGxvY2tsZXNzIHRyaWNrcyBpbiB0aGUg ZXZpY3QKPiBjb2RlLCBidXQgdGhlbiBhZ2FpbiBvbmNlIHlvdSdyZSBldmljdGluZyBpdCdzIHBy b2JhYmx5IGdvaW5nIHByZXR0eSBiYWQKPiBhbHJlYWR5Lgo+Cj4gU28gU0xBQl9UWVBFU0FGRV9C WV9SQ1UgaXMgc29tZXRoaW5nIEkgd2FudCB0byBhbmFseXplIGZvciBpOTE1IHdoZXRoZXIKPiBp dCdzIHJlYWxseSB3b3J0aCBpdCBhbmQgd2FzIGp1c3RpZmllZCwgb3Igd2hldGhlciB3ZSBzaG91 bGQgZHJvcCBpdC4gQnV0Cj4gSSdtIHdvbmRlcmluZyB3aGV0aGVyIHdlIHNob3VsZCBkcm9wIHJj dSBmb3IgZmVuY2VzIG91dHJpZ2h0LiBXb3VsZCBiZQo+IHF1aXRlIHNvbWUgYXVkaXQgdG8gY2hl Y2sgb3V0IHdoZXJlIGl0J3MgdXNlZC4KPgo+ICBGcm9tIGk5MTUgc2lkZSB3ZSd2ZSBkb25lIHRo ZXNlIGxvY2tsZXNzIHRyaWNrcyBiYWNrIHdoZW4KPiBkZXYtPnN0cnVjdF9tdXRleCB3YXMgYSB0 aGluZyBhbmQgYWx3YXMgY29udGVuZGVkLiBCdXQgd2l0aCBwZXItb2JqCj4gbG9ja2luZyBub3cg aGFwcGVuaW5nIGZvciByZWFsIHdpdGggZG1hLXJlc3YsIHRoYXQncyBwcm9iYWJseSBub3QKPiBq dXN0aWZpZWQuCj4KPiBCdXQgdGhlbiBsb29raW5nIGF0IGdpdCBoaXN0b3J5IHRoZSByY3UgaW4g ZG1hX3Jlc3YgaXMgb2xkZXIgdGhhbiB0aGF0LAo+IGFuZCB3YXMganVzdGlmaWVkIHdpdGggdHRt LgoKU2NyYXRjaGluZyBteSBoZWFkIHdoZW4gYW5kIHdoeSBUVE0gc2hvdWxkIGhhdmUgZXZlciBu ZWVkZWQgc29tZSAKbG9ja2xlc3Mgb3BlcmF0aW9uIHdoZW4gdGhhdCB3YXMgYWRkZWQ/IFdlIGRv IGhhdmUgc29tZSBub3csIGJ1dCBqdXN0IApiZWNhdXNlIHRoZXkgd2hlcmUgYXZhaWxhYmxlLgoK T24gdGhlIG90aGVyIGhhbmQgSSdtIHByZXR0eSBzdXJlIHRoYXQgd2UgY2FuIG1ha2UgdGhlIHdo b2xlIFJDVSAKaGFuZGxpbmcgaW4gdGhlIGRtYV9yZXN2IG9iamVjdCBtdWNoIGxlc3MgcGFpbmZ1 bC4gQmFzaWMgcHJvYmxlbSBoZXJlIGlzIAp0aGF0IHdlIGhhdmUgdHdvIHBvaW50ZXJzIGluc3Rl YWQgb2Ygb25lLCBlLmcuIHRoZSBleGNsIGZlbmNlIGFuZC9vciB0aGUgCnNoYXJlZCBmZW5jZXMu CgpJZiB3ZSBjb3VsZCBtb3ZlIHRoZSBleGNsdXNpdmUgZmVuY2UgcG9pbnRlciBpbnRvIHRoZSBz aGFyZWQgZmVuY2VzIG1vc3QgCm9mIHRoZSB0cm91YmxlIHdvdWxkIGdvIGF3YXkgc3VkZGVubHku CgpUaGUgb3RoZXIgdGhpbmcgd2Ugc2hvdWxkIGNlcnRhaW5seSBoYXZlIGlzIG1vcmUgdXNlIGNh c2UgYmFzZWQgCml0ZXJhdG9ycy4gRS5nLiBzb21ldGhpbmcgbGlrZSBkbWFfcmVzdl9mb3JfZWFj aF9zeW5jX2ZlbmNlKC4uLikgey4uLn0uCgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+Cj4+PiBUaGF0 J3Mgd2h5IEknbSBzbGlnaHRseSBsZWFuaW5nIHRvd2FyZHMgX3VubG9ja2VkIHZhcmlhbnRzLCBl eGNlcHQgd2UKPj4+IGRvIHVzZSB0aG9zZSBpbiBsb3RzIG9mIHBsYWNlcyB3aGVyZSB3ZSBob2xk IGRtYV9yZXN2X2xvY2sgdG9vLiBTbyBub3QKPj4+IHN1cmUgd2hhdCdzIHRoZSBiZXN0IHBsYW4g b3ZlcmFsbCBoZXJlLgo+PiBXZWxsIHdoYXQgZnVuY3Rpb24gbmFtZXMgYXJlIHdlIGFjdHVhbGx5 IHRhbGtpbmcgYWJvdXQ/Cj4+Cj4+IEZvciB0aGUgZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KCkgY2Fz ZSBJIGFncmVlIHdlIHNob3VsZCBwcm9iYWJseSBuYW1lIHRoYXQgdG8KPj4gZG1hX3Jlc3ZfZ2V0 X2V4Y2xfdW5sb2NrZWQoKSBiZWNhdXNlIGl0IG1ha2VzIG5vIHNlbnNlIGF0IGFsbCB0byB1c2Ug dGhpcwo+PiBmdW5jdGlvbiB3aGlsZSBob2xkaW5nIHRoZSBsb2NrLgo+Pgo+PiBCdXQgZm9yIHRo ZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgo+PiBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdQo+PiBkbWFf cmVzdl93YWl0X3RpbWVvdXRfcmN1Cj4+IGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1Cj4+Cj4+ IEkgdGhpbmsgd2Ugc2hvdWxkIGp1c3QgZHJvcCB0aGUgX3JjdSBuYW1pbmcgYmVjYXVzZSB0aG9z ZSBhcmUgc3VwcG9zZWQgdG8KPj4gd29yayBpbmRlcGVuZGVudCBpZiB0aGUgcmVzdiBsb2NrIGlz IGhlbGQgb3Igbm90Lgo+IEFjayBvbiBhbGwgbmFtaW5nLgo+IC1EYW5pZWwKPgo+PiBSZWdhcmRz LAo+PiBDaHJpc3RpYW4uCj4+Cj4+PiAtRGFuaWVsCj4+Pgo+Pj4+IEJ1dCB5ZXMgSSBzZWUgdGhl IHBhaW4gb2YgcmViYXNpbmcgdGhpcyBhcyB3ZWxsLgo+Pj4+Cj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+ Cj4+Pj4+IC1EYW5pZWwKPj4+Pj4KPj4+Pj4+IENocmlzdGlhbi4KPj4+Pj4+Cj4+Pj4+Pj4gdjIg KEphc29uIEVrc3RyYW5kKToKPj4+Pj4+PiAgICAgIC0gRml4IGZ1bmN0aW9uIGFyZ3VtZW50IGlu ZGVudGF0aW9uCj4+Pj4+Pj4KPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBFa3N0cmFuZCA8 amFzb25Aamxla3N0cmFuZC5uZXQ+Cj4+Pj4+Pj4gU3VnZ2VzdGVkLWJ5OiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+Pj4+Pj4+IENjOiBDaHJpc3RpYW4gS8O2bmlnIDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4+Pj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+Pj4gQ2M6IE1heGltZSBSaXBh cmQgPG1yaXBhcmRAa2VybmVsLm9yZz4KPj4+Pj4+PiBDYzogVGhvbWFzIFppbW1lcm1hbm4gPHR6 aW1tZXJtYW5uQHN1c2UuZGU+Cj4+Pj4+Pj4gQ2M6IEx1Y2FzIFN0YWNoIDxsLnN0YWNoQHBlbmd1 dHJvbml4LmRlPgo+Pj4+Pj4+IENjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4+ Pj4+Pj4gQ2M6IFNlYW4gUGF1bCA8c2VhbkBwb29ybHkucnVuPgo+Pj4+Pj4+IENjOiBIdWFuZyBS dWkgPHJheS5odWFuZ0BhbWQuY29tPgo+Pj4+Pj4+IENjOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxA cmVkaGF0LmNvbT4KPj4+Pj4+PiBDYzogVk13YXJlIEdyYXBoaWNzIDxsaW51eC1ncmFwaGljcy1t YWludGFpbmVyQHZtd2FyZS5jb20+Cj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2Rt YS1idWYvZG1hLWJ1Zi5jICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KPj4+Pj4+PiAgICAg IGRyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jICAgICAgICAgICAgICAgICAgICB8IDI4ICsrKysr KysrKy0tLS0tLS0tLS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kaXNwbGF5LmMgICB8ICA2ICsrLS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgICB8ICAyICstCj4+Pj4+Pj4gICAgICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMgICAgICAgfCAgNCArLS0KPj4+Pj4+PiAg ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYyAgICAgICB8ICA2ICsr LS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jICAg ICAgICB8ICA0ICstLQo+Pj4+Pj4+ICAgICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X29iamVjdC5jICAgIHwgIDQgKy0tCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdXZkLmMgICAgICAgfCAgNiArKy0tCj4+Pj4+Pj4gICAgICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyAgICAgICAgfCAxNCArKysrKy0tLS0tCj4+ Pj4+Pj4gICAgICAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMg fCAgNiArKy0tCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKystLS0tCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV9hdG9taWNfaGVscGVyLmMgICAgICAgfCAgMiArLQo+Pj4+Pj4+ICAgICAgZHJpdmVycy9n cHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYyAgICAgICAgIHwgIDcgKystLS0KPj4+Pj4+PiAg ICAgIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3N1Ym1pdC5jICB8ICA4ICsr Ky0tLQo+Pj4+Pj4+ICAgICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMgIHwgIDIgKy0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2RtYV9yZXN2 X3V0aWxzLmMgICAgICAgICB8ICAyICstCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fYnVzeS5jICAgICAgfCAgMiArLQo+Pj4+Pj4+ICAgICAgLi4uL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAgIHwgIDIgKy0KPj4+Pj4+PiAgICAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuaCAgICB8ICAyICstCj4+ Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNlcnB0ci5jICAg fCAgNCArLS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV93 YWl0LmMgICAgICB8IDEwICsrKy0tLS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jICAgICAgICAgICB8ICA2ICsrLS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYyAgICAgICAgICB8ICA0ICstLQo+Pj4+Pj4+ICAg ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgICAgICAgICAgICAgICAgIHwgIDMgKy0K Pj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL3duZHcuYyAgICAg ICB8ICAyICstCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dl bS5jICAgICAgICAgfCAgNCArLS0KPj4+Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9z dC9wYW5mcm9zdF9kcnYuYyAgICAgICB8ICA0ICstLQo+Pj4+Pj4+ICAgICAgZHJpdmVycy9ncHUv ZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jICAgICAgIHwgIDIgKy0KPj4+Pj4+PiAgICAgIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jICAgICAgICAgICB8ICA2ICsrLS0KPj4+ Pj4+PiAgICAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMgICAgICAgICAgICB8 ICA0ICstLQo+Pj4+Pj4+ICAgICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyAgICAgICAg ICAgICAgICAgIHwgMTggKysrKysrLS0tLS0tCj4+Pj4+Pj4gICAgICBkcml2ZXJzL2dwdS9kcm0v dmdlbS92Z2VtX2ZlbmNlLmMgICAgICAgICAgICAgfCAgNCArLS0KPj4+Pj4+PiAgICAgIGRyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jICAgICAgICB8ICA2ICsrLS0KPj4+Pj4+ PiAgICAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMgICAgICAgICAgICB8ICAy ICstCj4+Pj4+Pj4gICAgICBpbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmggICAgICAgICAgICAgICAg ICAgICAgfCAxOCArKysrKystLS0tLS0KPj4+Pj4+PiAgICAgIDM2IGZpbGVzIGNoYW5nZWQsIDEw OCBpbnNlcnRpb25zKCspLCAxMTAgZGVsZXRpb25zKC0pCj4+Pj4+Pj4KPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVm LmMKPj4+Pj4+PiBpbmRleCBmMjY0YjcwYzM4M2ViLi5lZDY0NTFkNTVkNjYzIDEwMDY0NAo+Pj4+ Pj4+IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJz L2RtYS1idWYvZG1hLWJ1Zi5jCj4+Pj4+Pj4gQEAgLTExNDcsOCArMTE0Nyw4IEBAIHN0YXRpYyBp bnQgX19kbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3Moc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKPj4+ Pj4+PiAgICAgICBsb25nIHJldDsKPj4+Pj4+PiAgICAgICAvKiBXYWl0IG9uIGFueSBpbXBsaWNp dCByZW5kZXJpbmcgZmVuY2VzICovCj4+Pj4+Pj4gLSAgIHJldCA9IGRtYV9yZXN2X3dhaXRfdGlt ZW91dF9yY3UocmVzdiwgd3JpdGUsIHRydWUsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPj4+Pj4+PiAr ICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3VubG9ja2VkKHJlc3YsIHdyaXRlLCB0cnVl LAo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1ND SEVEVUxFX1RJTUVPVVQpOwo+Pj4+Pj4+ICAgICAgIGlmIChyZXQgPCAwKQo+Pj4+Pj4+ICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVm L2RtYS1yZXN2LmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLXJlc3YuYwo+Pj4+Pj4+IGluZGV4IDZk ZGJlYjVkZmJmNjUuLmQ2ZjFlZDRjZDRkNTUgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9k bWEtYnVmL2RtYS1yZXN2LmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLXJlc3Yu Ywo+Pj4+Pj4+IEBAIC00MTcsNyArNDE3LDcgQEAgaW50IGRtYV9yZXN2X2NvcHlfZmVuY2VzKHN0 cnVjdCBkbWFfcmVzdiAqZHN0LCBzdHJ1Y3QgZG1hX3Jlc3YgKnNyYykKPj4+Pj4+PiAgICAgIEVY UE9SVF9TWU1CT0woZG1hX3Jlc3ZfY29weV9mZW5jZXMpOwo+Pj4+Pj4+ICAgICAgLyoqCj4+Pj4+ Pj4gLSAqIGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1IC0gR2V0IGFuIG9iamVjdCdzIHNoYXJlZCBh bmQgZXhjbHVzaXZlCj4+Pj4+Pj4gKyAqIGRtYV9yZXN2X2dldF9mZW5jZXNfdW5sb2NrZWQgLSBH ZXQgYW4gb2JqZWN0J3Mgc2hhcmVkIGFuZCBleGNsdXNpdmUKPj4+Pj4+PiAgICAgICAqIGZlbmNl cyB3aXRob3V0IHVwZGF0ZSBzaWRlIGxvY2sgaGVsZAo+Pj4+Pj4+ICAgICAgICogQG9iajogdGhl IHJlc2VydmF0aW9uIG9iamVjdAo+Pj4+Pj4+ICAgICAgICogQHBmZW5jZV9leGNsOiB0aGUgcmV0 dXJuZWQgZXhjbHVzaXZlIGZlbmNlIChvciBOVUxMKQo+Pj4+Pj4+IEBAIC00MjksMTAgKzQyOSwx MCBAQCBFWFBPUlRfU1lNQk9MKGRtYV9yZXN2X2NvcHlfZmVuY2VzKTsKPj4+Pj4+PiAgICAgICAq IGV4Y2x1c2l2ZSBmZW5jZSBpcyBub3Qgc3BlY2lmaWVkIHRoZSBmZW5jZSBpcyBwdXQgaW50byB0 aGUgYXJyYXkgb2YgdGhlCj4+Pj4+Pj4gICAgICAgKiBzaGFyZWQgZmVuY2VzIGFzIHdlbGwuIFJl dHVybnMgZWl0aGVyIHplcm8gb3IgLUVOT01FTS4KPj4+Pj4+PiAgICAgICAqLwo+Pj4+Pj4+IC1p bnQgZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosCj4+Pj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKnBmZW5jZV9leGNsLAo+ Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICpwc2hhcmVkX2NvdW50LAo+ Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJl ZCkKPj4+Pj4+PiAraW50IGRtYV9yZXN2X2dldF9mZW5jZXNfdW5sb2NrZWQoc3RydWN0IGRtYV9y ZXN2ICpvYmosCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1h X2ZlbmNlICoqcGZlbmNlX2V4Y2wsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCAqcHNoYXJlZF9jb3VudCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJlZCkKPj4+Pj4+PiAgICAgIHsKPj4+Pj4+ PiAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqc2hhcmVkID0gTlVMTDsKPj4+Pj4+PiAgICAgICBz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZV9leGNsOwo+Pj4+Pj4+IEBAIC01MTUsMTAgKzUxNSwxMCBA QCBpbnQgZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosCj4+Pj4+ Pj4gICAgICAgKnBzaGFyZWQgPSBzaGFyZWQ7Cj4+Pj4+Pj4gICAgICAgcmV0dXJuIHJldDsKPj4+ Pj4+PiAgICAgIH0KPj4+Pj4+PiAtRVhQT1JUX1NZTUJPTF9HUEwoZG1hX3Jlc3ZfZ2V0X2ZlbmNl c19yY3UpOwo+Pj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQTChkbWFfcmVzdl9nZXRfZmVuY2VzX3Vu bG9ja2VkKTsKPj4+Pj4+PiAgICAgIC8qKgo+Pj4+Pj4+IC0gKiBkbWFfcmVzdl93YWl0X3RpbWVv dXRfcmN1IC0gV2FpdCBvbiByZXNlcnZhdGlvbidzIG9iamVjdHMKPj4+Pj4+PiArICogZG1hX3Jl c3Zfd2FpdF90aW1lb3V0X3VubG9ja2VkIC0gV2FpdCBvbiByZXNlcnZhdGlvbidzIG9iamVjdHMK Pj4+Pj4+PiAgICAgICAqIHNoYXJlZCBhbmQvb3IgZXhjbHVzaXZlIGZlbmNlcy4KPj4+Pj4+PiAg ICAgICAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QKPj4+Pj4+PiAgICAgICAqIEB3YWl0 X2FsbDogaWYgdHJ1ZSwgd2FpdCBvbiBhbGwgZmVuY2VzLCBlbHNlIHdhaXQgb24ganVzdCBleGNs dXNpdmUgZmVuY2UKPj4+Pj4+PiBAQCAtNTI5LDkgKzUyOSw5IEBAIEVYUE9SVF9TWU1CT0xfR1BM KGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1KTsKPj4+Pj4+PiAgICAgICAqIFJldHVybnMgLUVSRVNU QVJUU1lTIGlmIGludGVycnVwdGVkLCAwIGlmIHRoZSB3YWl0IHRpbWVkIG91dCwgb3IKPj4+Pj4+ PiAgICAgICAqIGdyZWF0ZXIgdGhhbiB6ZXIgb24gc3VjY2Vzcy4KPj4+Pj4+PiAgICAgICAqLwo+ Pj4+Pj4+IC1sb25nIGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IGRtYV9yZXN2ICpv YmosCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB3YWl0X2FsbCwgYm9v bCBpbnRyLAo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg dGltZW91dCkKPj4+Pj4+PiArbG9uZyBkbWFfcmVzdl93YWl0X3RpbWVvdXRfdW5sb2NrZWQoc3Ry dWN0IGRtYV9yZXN2ICpvYmosCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sIHdhaXRfYWxsLCBib29sIGludHIsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQpCj4+Pj4+Pj4gICAgICB7Cj4+Pj4+Pj4g ICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4+Pj4+Pj4gICAgICAgdW5zaWduZWQgc2Vx LCBzaGFyZWRfY291bnQ7Cj4+Pj4+Pj4gQEAgLTYwMiw3ICs2MDIsNyBAQCBsb25nIGRtYV9yZXN2 X3dhaXRfdGltZW91dF9yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosCj4+Pj4+Pj4gICAgICAgcmN1 X3JlYWRfdW5sb2NrKCk7Cj4+Pj4+Pj4gICAgICAgZ290byByZXRyeTsKPj4+Pj4+PiAgICAgIH0K Pj4+Pj4+PiAtRVhQT1JUX1NZTUJPTF9HUEwoZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdSk7Cj4+ Pj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRtYV9yZXN2X3dhaXRfdGltZW91dF91bmxvY2tlZCk7 Cj4+Pj4+Pj4gICAgICBzdGF0aWMgaW5saW5lIGludCBkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3Np bmdsZShzdHJ1Y3QgZG1hX2ZlbmNlICpwYXNzZWRfZmVuY2UpCj4+Pj4+Pj4gQEAgLTYyMiw3ICs2 MjIsNyBAQCBzdGF0aWMgaW5saW5lIGludCBkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3NpbmdsZShz dHJ1Y3QgZG1hX2ZlbmNlICpwYXNzZWRfZmVuY2UpCj4+Pj4+Pj4gICAgICB9Cj4+Pj4+Pj4gICAg ICAvKioKPj4+Pj4+PiAtICogZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3UgLSBUZXN0IGlmIGEg cmVzZXJ2YXRpb24gb2JqZWN0J3MKPj4+Pj4+PiArICogZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF91 bmxvY2tlZCAtIFRlc3QgaWYgYSByZXNlcnZhdGlvbiBvYmplY3Qncwo+Pj4+Pj4+ICAgICAgICog ZmVuY2VzIGhhdmUgYmVlbiBzaWduYWxlZC4KPj4+Pj4+PiAgICAgICAqIEBvYmo6IHRoZSByZXNl cnZhdGlvbiBvYmplY3QKPj4+Pj4+PiAgICAgICAqIEB0ZXN0X2FsbDogaWYgdHJ1ZSwgdGVzdCBh bGwgZmVuY2VzLCBvdGhlcndpc2Ugb25seSB0ZXN0IHRoZSBleGNsdXNpdmUKPj4+Pj4+PiBAQCAt NjMxLDcgKzYzMSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRf c2luZ2xlKHN0cnVjdCBkbWFfZmVuY2UgKnBhc3NlZF9mZW5jZSkKPj4+Pj4+PiAgICAgICAqIFJF VFVSTlMKPj4+Pj4+PiAgICAgICAqIHRydWUgaWYgYWxsIGZlbmNlcyBzaWduYWxlZCwgZWxzZSBm YWxzZQo+Pj4+Pj4+ICAgICAgICovCj4+Pj4+Pj4gLWJvb2wgZG1hX3Jlc3ZfdGVzdF9zaWduYWxl ZF9yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosIGJvb2wgdGVzdF9hbGwpCj4+Pj4+Pj4gK2Jvb2wg ZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF91bmxvY2tlZChzdHJ1Y3QgZG1hX3Jlc3YgKm9iaiwgYm9v bCB0ZXN0X2FsbCkKPj4+Pj4+PiAgICAgIHsKPj4+Pj4+PiAgICAgICB1bnNpZ25lZCBzZXEsIHNo YXJlZF9jb3VudDsKPj4+Pj4+PiAgICAgICBpbnQgcmV0Owo+Pj4+Pj4+IEBAIC02ODAsNCArNjgw LDQgQEAgYm9vbCBkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShzdHJ1Y3QgZG1hX3Jlc3YgKm9i aiwgYm9vbCB0ZXN0X2FsbCkKPj4+Pj4+PiAgICAgICByY3VfcmVhZF91bmxvY2soKTsKPj4+Pj4+ PiAgICAgICByZXR1cm4gcmV0Owo+Pj4+Pj4+ICAgICAgfQo+Pj4+Pj4+IC1FWFBPUlRfU1lNQk9M X0dQTChkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdSk7Cj4+Pj4+Pj4gK0VYUE9SVF9TWU1CT0xf R1BMKGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfdW5sb2NrZWQpOwo+Pj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYwo+Pj4+Pj4+IGluZGV4IDhhMWZiOGI2 NjA2ZTUuLmI4ZTI0ZjE5OWJlOWEgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKPj4+Pj4+PiBAQCAtMjAzLDkgKzIwMyw5IEBA IGludCBhbWRncHVfZGlzcGxheV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLAo+Pj4+Pj4+ICAgICAgICAgICAgICAgZ290byB1bnBpbjsKPj4+Pj4+PiAgICAgICB9 Cj4+Pj4+Pj4gLSAgIHIgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShuZXdfYWJvLT50Ym8uYmFz ZS5yZXN2LCAmd29yay0+ZXhjbCwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmd29yay0+c2hhcmVkX2NvdW50LAo+Pj4+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3b3JrLT5zaGFyZWQpOwo+Pj4+Pj4+ICsgICBy ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc191bmxvY2tlZChuZXdfYWJvLT50Ym8uYmFzZS5yZXN2LCAm d29yay0+ZXhjbCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JndvcmstPnNoYXJlZF9jb3VudCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJndvcmstPnNoYXJlZCk7Cj4+Pj4+Pj4gICAgICAgaWYgKHVubGlrZWx5KHIgIT0g MCkpIHsKPj4+Pj4+PiAgICAgICAgICAgICAgIERSTV9FUlJPUigiZmFpbGVkIHRvIGdldCBmZW5j ZXMgZm9yIGJ1ZmZlclxuIik7Cj4+Pj4+Pj4gICAgICAgICAgICAgICBnb3RvIHVucGluOwo+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1 Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+Pj4+Pj4+ IGluZGV4IGJhYTk4MGE0NzdkOTQuLjBkMDMxOWJjNTE1NzcgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+Pj4+Pj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMKPj4+Pj4+PiBAQCAt OTgsNyArOTgsNyBAQCBfX2RtYV9yZXN2X21ha2VfZXhjbHVzaXZlKHN0cnVjdCBkbWFfcmVzdiAq b2JqKQo+Pj4+Pj4+ICAgICAgIGlmICghZG1hX3Jlc3ZfZ2V0X2xpc3Qob2JqKSkgLyogbm8gc2hh cmVkIGZlbmNlcyB0byBjb252ZXJ0ICovCj4+Pj4+Pj4gICAgICAgICAgICAgICByZXR1cm4gMDsK Pj4+Pj4+PiAtICAgciA9IGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1KG9iaiwgTlVMTCwgJmNvdW50 LCAmZmVuY2VzKTsKPj4+Pj4+PiArICAgciA9IGRtYV9yZXN2X2dldF9mZW5jZXNfdW5sb2NrZWQo b2JqLCBOVUxMLCAmY291bnQsICZmZW5jZXMpOwo+Pj4+Pj4+ICAgICAgIGlmIChyKQo+Pj4+Pj4+ ICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nZW0uYwo+Pj4+Pj4+IGluZGV4IDE4OTc0YmQwODFmMDAuLjhlMjk5NmQ2YmEzYWQg MTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dl bS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5j Cj4+Pj4+Pj4gQEAgLTQ3MSw4ICs0NzEsOCBAQCBpbnQgYW1kZ3B1X2dlbV93YWl0X2lkbGVfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+Pj4+PiAgICAgICAgICAg ICAgIHJldHVybiAtRU5PRU5UOwo+Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+PiAgICAgICByb2JqID0g Z2VtX3RvX2FtZGdwdV9ibyhnb2JqKTsKPj4+Pj4+PiAtICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90 aW1lb3V0X3JjdShyb2JqLT50Ym8uYmFzZS5yZXN2LCB0cnVlLCB0cnVlLAo+Pj4+Pj4+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KTsKPj4+Pj4+ PiArICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3VubG9ja2VkKHJvYmotPnRiby5iYXNl LnJlc3YsIHRydWUsIHRydWUsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aW1lb3V0KTsKPj4+Pj4+PiAgICAgICAvKiByZXQgPT0gMCBtZWFucyBub3Qg c2lnbmFsZWQsCj4+Pj4+Pj4gICAgICAgICogcmV0ID4gMCBtZWFucyBzaWduYWxlZAo+Pj4+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmMKPj4+Pj4+PiBpbmRleCBiNDk3 MWU5MGI5OGNmLi4zOGUxYjMyZGQyY2VmIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYwo+Pj4+Pj4+IEBAIC0xMTIsNyArMTEyLDcgQEAgdm9p ZCBhbWRncHVfcGFzaWRfZnJlZV9kZWxheWVkKHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+ PiAgICAgICB1bnNpZ25lZCBjb3VudDsKPj4+Pj4+PiAgICAgICBpbnQgcjsKPj4+Pj4+PiAtICAg ciA9IGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1KHJlc3YsIE5VTEwsICZjb3VudCwgJmZlbmNlcyk7 Cj4+Pj4+Pj4gKyAgIHIgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3VubG9ja2VkKHJlc3YsIE5VTEws ICZjb3VudCwgJmZlbmNlcyk7Cj4+Pj4+Pj4gICAgICAgaWYgKHIpCj4+Pj4+Pj4gICAgICAgICAg ICAgICBnb3RvIGZhbGxiYWNrOwo+Pj4+Pj4+IEBAIC0xNTYsOCArMTU2LDggQEAgdm9pZCBhbWRn cHVfcGFzaWRfZnJlZV9kZWxheWVkKHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+PiAgICAg ICAvKiBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgdGhlIGRlbGF5ZWQgZGVsZXRlLCBhcyBsYXN0IHJl c29ydAo+Pj4+Pj4+ICAgICAgICAqIGJsb2NrIGZvciBhbGwgdGhlIGZlbmNlcyB0byBjb21wbGV0 ZS4KPj4+Pj4+PiAgICAgICAgKi8KPj4+Pj4+PiAtICAgZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3Jj dShyZXN2LCB0cnVlLCBmYWxzZSwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+Pj4+Pj4+ICsgICBkbWFfcmVzdl93 YWl0X3RpbWVvdXRfdW5sb2NrZWQocmVzdiwgdHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4+Pj4+Pj4g ICAgICAgYW1kZ3B1X3Bhc2lkX2ZyZWUocGFzaWQpOwo+Pj4+Pj4+ICAgICAgfQo+Pj4+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jCj4+Pj4+Pj4gaW5kZXggODI4YjUxNjdm ZjEyOC4uMDMxOWM4YjU0N2M0OCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfbW4uYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9tbi5jCj4+Pj4+Pj4gQEAgLTc1LDggKzc1LDggQEAgc3RhdGljIGJvb2wg YW1kZ3B1X21uX2ludmFsaWRhdGVfZ2Z4KHN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgKm1u aSwKPj4+Pj4+PiAgICAgICBtbXVfaW50ZXJ2YWxfc2V0X3NlcShtbmksIGN1cl9zZXEpOwo+Pj4+ Pj4+IC0gICByID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLmJhc2UucmVzdiwg dHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1B WF9TQ0hFRFVMRV9USU1FT1VUKTsKPj4+Pj4+PiArICAgciA9IGRtYV9yZXN2X3dhaXRfdGltZW91 dF91bmxvY2tlZChiby0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ Pj4+Pj4+ICAgICAgIG11dGV4X3VubG9jaygmYWRldi0+bm90aWZpZXJfbG9jayk7Cj4+Pj4+Pj4g ICAgICAgaWYgKHIgPD0gMCkKPj4+Pj4+PiAgICAgICAgICAgICAgIERSTV9FUlJPUigiKCVsZCkg ZmFpbGVkIHRvIHdhaXQgZm9yIHVzZXIgYm9cbiIsIHIpOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+Pj4+PiBpbmRleCAwYWRmZmNhY2UzMjYz Li5kZTFjN2M1NTAxNjgzIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+Pj4+Pj4+IEBAIC03OTEsOCArNzkxLDggQEAgaW50IGFt ZGdwdV9ib19rbWFwKHN0cnVjdCBhbWRncHVfYm8gKmJvLCB2b2lkICoqcHRyKQo+Pj4+Pj4+ICAg ICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+IC0gICByID0gZG1h X3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLmJhc2UucmVzdiwgZmFsc2UsIGZhbHNlLAo+ Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1ND SEVEVUxFX1RJTUVPVVQpOwo+Pj4+Pj4+ICsgICByID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3Vu bG9ja2VkKGJvLT50Ym8uYmFzZS5yZXN2LCBmYWxzZSwgZmFsc2UsCj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+Pj4+ Pj4+ICAgICAgIGlmIChyIDwgMCkKPj4+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKPj4+Pj4+PiBpbmRleCBj NmRiYzA4MDE2MDQ1Li40YTIxOTY0MDRmYjY5IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwo+Pj4+Pj4+IEBAIC0xMTE1LDkgKzExMTUsOSBA QCBzdGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+Pj4+PiAgICAgICBpYi0+bGVuZ3RoX2R3ID0gMTY7 Cj4+Pj4+Pj4gICAgICAgaWYgKGRpcmVjdCkgewo+Pj4+Pj4+IC0gICAgICAgICAgIHIgPSBkbWFf cmVzdl93YWl0X3RpbWVvdXRfcmN1KGJvLT50Ym8uYmFzZS5yZXN2LAo+Pj4+Pj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBmYWxzZSwK Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbXNlY3NfdG9famlmZmllcygxMCkpOwo+Pj4+Pj4+ICsgICAgICAgICAgIHIgPSBkbWFfcmVz dl93YWl0X3RpbWVvdXRfdW5sb2NrZWQoYm8tPnRiby5iYXNlLnJlc3YsCj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBmYWxzZSwKPj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNz X3RvX2ppZmZpZXMoMTApKTsKPj4+Pj4+PiAgICAgICAgICAgICAgIGlmIChyID09IDApCj4+Pj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgIHIgPSAtRVRJTUVET1VUOwo+Pj4+Pj4+ICAgICAgICAg ICAgICAgaWYgKHIgPCAwKQo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 bS5jCj4+Pj4+Pj4gaW5kZXggNGEzZTNmNzJlMTI3Ny4uN2JhMWM1MzdkNjU4NCAxMDA2NDQKPj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4+Pj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+Pj4+Pj4gQEAg LTIwMDcsMTQgKzIwMDcsMTQgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3ZtX3BydF9maW5pKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKPj4+Pj4+PiAgICAg ICB1bnNpZ25lZCBpLCBzaGFyZWRfY291bnQ7Cj4+Pj4+Pj4gICAgICAgaW50IHI7Cj4+Pj4+Pj4g LSAgIHIgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShyZXN2LCAmZXhjbCwKPj4+Pj4+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcmVkX2NvdW50LCAmc2hh cmVkKTsKPj4+Pj4+PiArICAgciA9IGRtYV9yZXN2X2dldF9mZW5jZXNfdW5sb2NrZWQocmVzdiwg JmV4Y2wsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFy ZWRfY291bnQsICZzaGFyZWQpOwo+Pj4+Pj4+ICAgICAgIGlmIChyKSB7Cj4+Pj4+Pj4gICAgICAg ICAgICAgICAvKiBOb3QgZW5vdWdoIG1lbW9yeSB0byBncmFiIHRoZSBmZW5jZSBsaXN0LCBhcyBs YXN0IHJlc29ydAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICogYmxvY2sgZm9yIGFsbCB0aGUgZmVu Y2VzIHRvIGNvbXBsZXRlLgo+Pj4+Pj4+ICAgICAgICAgICAgICAgICovCj4+Pj4+Pj4gLSAgICAg ICAgICAgZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShyZXN2LCB0cnVlLCBmYWxzZSwKPj4+Pj4+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfU0NI RURVTEVfVElNRU9VVCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgZG1hX3Jlc3Zfd2FpdF90aW1lb3V0 X3VubG9ja2VkKHJlc3YsIHRydWUsIGZhbHNlLAo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4+Pj4+Pj4gICAg ICAgICAgICAgICByZXR1cm47Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+IEBAIC0yNjI1LDcgKzI2 MjUsNyBAQCBib29sIGFtZGdwdV92bV9ldmljdGFibGUoc3RydWN0IGFtZGdwdV9ibyAqYm8pCj4+ Pj4+Pj4gICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPj4+Pj4+PiAgICAgICAvKiBEb24ndCBl dmljdCBWTSBwYWdlIHRhYmxlcyB3aGlsZSB0aGV5IGFyZSBidXN5ICovCj4+Pj4+Pj4gLSAgIGlm ICghZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3UoYm8tPnRiby5iYXNlLnJlc3YsIHRydWUpKQo+ Pj4+Pj4+ICsgICBpZiAoIWRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfdW5sb2NrZWQoYm8tPnRiby5i YXNlLnJlc3YsIHRydWUpKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4+ Pj4+ICAgICAgIC8qIFRyeSB0byBibG9jayBvbmdvaW5nIHVwZGF0ZXMgKi8KPj4+Pj4+PiBAQCAt MjgwNSw4ICsyODA1LDggQEAgdm9pZCBhbWRncHVfdm1fYWRqdXN0X3NpemUoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IG1pbl92bV9zaXplLAo+Pj4+Pj4+ICAgICAgICovCj4+ Pj4+Pj4gICAgICBsb25nIGFtZGdwdV92bV93YWl0X2lkbGUoc3RydWN0IGFtZGdwdV92bSAqdm0s IGxvbmcgdGltZW91dCkKPj4+Pj4+PiAgICAgIHsKPj4+Pj4+PiAtICAgdGltZW91dCA9IGRtYV9y ZXN2X3dhaXRfdGltZW91dF9yY3Uodm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdiwKPj4+ Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSwg dGltZW91dCk7Cj4+Pj4+Pj4gKyAgIHRpbWVvdXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfdW5s b2NrZWQodm0tPnJvb3QuYmFzZS5iby0+dGJvLmJhc2UucmVzdiwKPj4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0cnVlLCB0aW1lb3V0KTsK Pj4+Pj4+PiAgICAgICBpZiAodGltZW91dCA8PSAwKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0 dXJuIHRpbWVvdXQ7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv YW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4+Pj4+Pj4gaW5kZXggOWNhNTE3YjY1ODU0Ni4uMDEyMWQy ODE3ZmEyNiAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv YW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+Pj4+Pj4+IEBAIC04Mjc2LDkgKzgyNzYsOSBA QCBzdGF0aWMgdm9pZCBhbWRncHVfZG1fY29tbWl0X3BsYW5lcyhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgKiBkZWFkbG9jayBkdXJpbmcgR1BV IHJlc2V0IHdoZW4gdGhpcyBmZW5jZSB3aWxsIG5vdCBzaWduYWwKPj4+Pj4+PiAgICAgICAgICAg ICAgICAqIGJ1dCB3ZSBob2xkIHJlc2VydmF0aW9uIGxvY2sgZm9yIHRoZSBCTy4KPj4+Pj4+PiAg ICAgICAgICAgICAgICAqLwo+Pj4+Pj4+IC0gICAgICAgICAgIHIgPSBkbWFfcmVzdl93YWl0X3Rp bWVvdXRfcmN1KGFiby0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwKPj4+Pj4+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCj4+Pj4+Pj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNzX3Rv X2ppZmZpZXMoNTAwMCkpOwo+Pj4+Pj4+ICsgICAgICAgICAgIHIgPSBkbWFfcmVzdl93YWl0X3Rp bWVvdXRfdW5sb2NrZWQoYWJvLT50Ym8uYmFzZS5yZXN2LCB0cnVlLAo+Pj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZm aWVzKDUwMDApKTsKPj4+Pj4+PiAgICAgICAgICAgICAgIGlmICh1bmxpa2VseShyIDw9IDApKQo+ Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIldhaXRpbmcgZm9yIGZlbmNl cyB0aW1lZCBvdXQhIik7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCj4+Pj4+Pj4gaW5kZXggOTk4OTQyNWU5 ODc1YS4uMTI0MWE0MjFiOWU4MSAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2dlbS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwo+Pj4+Pj4+ IEBAIC03NzAsOCArNzcwLDggQEAgbG9uZyBkcm1fZ2VtX2RtYV9yZXN2X3dhaXQoc3RydWN0IGRy bV9maWxlICpmaWxlcCwgdTMyIGhhbmRsZSwKPj4+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwo+Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+PiAtICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90 aW1lb3V0X3JjdShvYmotPnJlc3YsIHdhaXRfYWxsLAo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0aW1lb3V0KTsKPj4+Pj4+PiArICAg cmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3VubG9ja2VkKG9iai0+cmVzdiwgd2FpdF9hbGws Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0 aW1lb3V0KTsKPj4+Pj4+PiAgICAgICBpZiAocmV0ID09IDApCj4+Pj4+Pj4gICAgICAgICAgICAg ICByZXQgPSAtRVRJTUU7Cj4+Pj4+Pj4gICAgICAgZWxzZSBpZiAocmV0ID4gMCkKPj4+Pj4+PiBA QCAtMTM3NSwxMyArMTM3NSwxMyBAQCBpbnQgZHJtX2dlbV9mZW5jZV9hcnJheV9hZGRfaW1wbGlj aXQoc3RydWN0IHhhcnJheSAqZmVuY2VfYXJyYXksCj4+Pj4+Pj4gICAgICAgaWYgKCF3cml0ZSkg ewo+Pj4+Pj4+ICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPQo+Pj4+Pj4+ IC0gICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KG9iai0+cmVzdik7Cj4+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICBkbWFfcmVzdl9nZXRfZXhjbF91bmxvY2tlZChvYmot PnJlc3YpOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuIGRybV9nZW1fZmVuY2VfYXJyYXlf YWRkKGZlbmNlX2FycmF5LCBmZW5jZSk7Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+IC0gICByZXQg PSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShvYmotPnJlc3YsIE5VTEwsCj4+Pj4+Pj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmVuY2VfY291bnQsICZmZW5j ZXMpOwo+Pj4+Pj4+ICsgICByZXQgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3VubG9ja2VkKG9iai0+ cmVzdiwgTlVMTCwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmZmVuY2VfY291bnQsICZmZW5jZXMpOwo+Pj4+Pj4+ICAgICAgIGlmIChyZXQgfHwgIWZlbmNl X2NvdW50KQo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9nZW1fYXRvbWljX2hlbHBlci5jCj4+Pj4+Pj4gaW5kZXggYTAwNWM1YTBiYTQ2 YS4uYTI3MTM1MDg0YWU1YyAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV9hdG9taWNfaGVscGVyLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bV9hdG9taWNfaGVscGVyLmMKPj4+Pj4+PiBAQCAtMTQ3LDcgKzE0Nyw3IEBAIGludCBkcm1fZ2Vt X3BsYW5lX2hlbHBlcl9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3Qg ZHJtX3BsYW5lX3N0Cj4+Pj4+Pj4gICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+Pj4+PiAgICAg ICBvYmogPSBkcm1fZ2VtX2ZiX2dldF9vYmooc3RhdGUtPmZiLCAwKTsKPj4+Pj4+PiAtICAgZmVu Y2UgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2JqLT5yZXN2KTsKPj4+Pj4+PiArICAgZmVuY2Ug PSBkbWFfcmVzdl9nZXRfZXhjbF91bmxvY2tlZChvYmotPnJlc3YpOwo+Pj4+Pj4+ICAgICAgIGRy bV9hdG9taWNfc2V0X2ZlbmNlX2Zvcl9wbGFuZShzdGF0ZSwgZmVuY2UpOwo+Pj4+Pj4+ICAgICAg IHJldHVybiAwOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwo+Pj4+ Pj4+IGluZGV4IGRiNjlmMTlhYjViY2EuLjRlNmY1MzQ2ZTg0ZTQgMTAwNjQ0Cj4+Pj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwo+Pj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKPj4+Pj4+PiBAQCAtMzkwLDE0ICsz OTAsMTMgQEAgaW50IGV0bmF2aXZfZ2VtX2NwdV9wcmVwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqLCB1MzIgb3AsCj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+ICAgICAgIGlmIChvcCAmIEVUTkFf UFJFUF9OT1NZTkMpIHsKPj4+Pj4+PiAtICAgICAgICAgICBpZiAoIWRtYV9yZXN2X3Rlc3Rfc2ln bmFsZWRfcmN1KG9iai0+cmVzdiwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSkpCj4+Pj4+Pj4gKyAgICAgICAgICAgaWYg KCFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3VubG9ja2VkKG9iai0+cmVzdiwgd3JpdGUpKQo+Pj4+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOwo+Pj4+Pj4+ICAgICAgIH0g ZWxzZSB7Cj4+Pj4+Pj4gICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHJlbWFpbiA9IGV0bmF2 aXZfdGltZW91dF90b19qaWZmaWVzKHRpbWVvdXQpOwo+Pj4+Pj4+IC0gICAgICAgICAgIHJldCA9 IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3Uob2JqLT5yZXN2LAo+Pj4+Pj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlLCB0cnVlLCBy ZW1haW4pOwo+Pj4+Pj4+ICsgICAgICAgICAgIHJldCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF91 bmxvY2tlZChvYmotPnJlc3YsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlLCB0cnVlLCByZW1haW4pOwo+Pj4+Pj4+ICAgICAgICAg ICAgICAgaWYgKHJldCA8PSAwKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cmV0ID09IDAgPyAtRVRJTUVET1VUIDogcmV0Owo+Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMgYi9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwo+Pj4+Pj4+IGluZGV4 IGQwNWMzNTk5NDU3OTkuLjY2MTdmYWRhNDU5NWQgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMKPj4+Pj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwo+Pj4+Pj4+IEBAIC0xODks MTMgKzE4OSwxMyBAQCBzdGF0aWMgaW50IHN1Ym1pdF9mZW5jZV9zeW5jKHN0cnVjdCBldG5hdml2 X2dlbV9zdWJtaXQgKnN1Ym1pdCkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7Cj4+Pj4+Pj4gICAgICAgICAgICAgICBpZiAoYm8tPmZsYWdzICYgRVROQV9TVUJNSVRfQk9f V1JJVEUpIHsKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgIHJldCA9IGRtYV9yZXN2X2dldF9m ZW5jZXNfcmN1KHJvYmosICZiby0+ZXhjbCwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYm8tPm5yX3NoYXJlZCwKPj4+ Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYm8tPnNoYXJlZCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICByZXQgPSBk bWFfcmVzdl9nZXRfZmVuY2VzX3VubG9ja2VkKHJvYmosICZiby0+ZXhjbCwKPj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJvLT5u cl9zaGFyZWQsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZiby0+c2hhcmVkKTsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAg ICAgaWYgKHJldCkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cmV0Owo+Pj4+Pj4+ICAgICAgICAgICAgICAgfSBlbHNlIHsKPj4+Pj4+PiAtICAgICAgICAgICAg ICAgICAgIGJvLT5leGNsID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KHJvYmopOwo+Pj4+Pj4+ICsg ICAgICAgICAgICAgICAgICAgYm8tPmV4Y2wgPSBkbWFfcmVzdl9nZXRfZXhjbF91bmxvY2tlZChy b2JqKTsKPj4+Pj4+PiAgICAgICAgICAgICAgIH0KPj4+Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPj4+Pj4+PiBpbmRl eCA0MjJiNTllYmY2ZGNlLi41ZjBiODVhMTAyMTU5IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPj4+Pj4+PiBAQCAtMTEw NDAsNyArMTEwNDAsNyBAQCBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUg Kl9wbGFuZSwKPj4+Pj4+PiAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICBnb3RvIHVucGluX2ZiOwo+Pj4+Pj4+IC0gICAgICAgICAgIGZlbmNl ID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfcmN1KG9iai0+YmFzZS5yZXN2KTsKPj4+Pj4+PiArICAgICAg ICAgICBmZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsX3VubG9ja2VkKG9iai0+YmFzZS5yZXN2KTsK Pj4+Pj4+PiAgICAgICAgICAgICAgIGlmIChmZW5jZSkgewo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICBhZGRfcnBzX2Jvb3N0X2FmdGVyX3ZibGFuayhuZXdfcGxhbmVfc3RhdGUtPmh3LmNy dGMsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZlbmNlKTsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZG1h X3Jlc3ZfdXRpbHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2RtYV9yZXN2X3V0aWxzLmMKPj4+ Pj4+PiBpbmRleCA5ZTUwOGU3ZDQ2MjlmLi5iZGZjNmJmMTZhNGU5IDEwMDY0NAo+Pj4+Pj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2RtYV9yZXN2X3V0aWxzLmMKPj4+Pj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kbWFfcmVzdl91dGlscy5jCj4+Pj4+Pj4gQEAgLTEwLDcgKzEw LDcgQEAKPj4+Pj4+PiAgICAgIHZvaWQgZG1hX3Jlc3ZfcHJ1bmUoc3RydWN0IGRtYV9yZXN2ICpy ZXN2KQo+Pj4+Pj4+ICAgICAgewo+Pj4+Pj4+ICAgICAgIGlmIChkbWFfcmVzdl90cnlsb2NrKHJl c3YpKSB7Cj4+Pj4+Pj4gLSAgICAgICAgICAgaWYgKGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1 KHJlc3YsIHRydWUpKQo+Pj4+Pj4+ICsgICAgICAgICAgIGlmIChkbWFfcmVzdl90ZXN0X3NpZ25h bGVkX3VubG9ja2VkKHJlc3YsIHRydWUpKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBk bWFfcmVzdl9hZGRfZXhjbF9mZW5jZShyZXN2LCBOVUxMKTsKPj4+Pj4+PiAgICAgICAgICAgICAg IGRtYV9yZXN2X3VubG9jayhyZXN2KTsKPj4+Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9idXN5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fYnVzeS5jCj4+Pj4+Pj4gaW5kZXggMjUyMzVlZjYzMGMx MC4uNzU0YWQ2ZDFiYWNlOSAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fYnVzeS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX2J1c3kuYwo+Pj4+Pj4+IEBAIC0xMDUsNyArMTA1LDcgQEAgaTkxNV9nZW1f YnVzeV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4+Pj4+ICAg ICAgICAqIEFsdGVybmF0aXZlbHksIHdlIGNhbiB0cmFkZSB0aGF0IGV4dHJhIGluZm9ybWF0aW9u IG9uIHJlYWQvd3JpdGUKPj4+Pj4+PiAgICAgICAgKiBhY3Rpdml0eSB3aXRoCj4+Pj4+Pj4gICAg ICAgICogICAgICBhcmdzLT5idXN5ID0KPj4+Pj4+PiAtICAgICogICAgICAgICAgICAgICFkbWFf cmVzdl90ZXN0X3NpZ25hbGVkX3JjdShvYmotPnJlc3YsIHRydWUpOwo+Pj4+Pj4+ICsgICAgKiAg ICAgICAgICAgICAgIWRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfdW5sb2NrZWQob2JqLT5yZXN2LCB0 cnVlKTsKPj4+Pj4+PiAgICAgICAgKiB0byByZXBvcnQgdGhlIG92ZXJhbGwgYnVzeW5lc3MuIFRo aXMgaXMgd2hhdCB0aGUgd2FpdC1pb2N0bCBkb2VzLgo+Pj4+Pj4+ICAgICAgICAqCj4+Pj4+Pj4g ICAgICAgICovCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f ZXhlY2J1ZmZlci5jCj4+Pj4+Pj4gaW5kZXggMjk3MTQzNTExZjk5Yi4uZThmMzIzNTY0ZTU3YiAx MDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYwo+Pj4+Pj4+IEBAIC0xNDgxLDcgKzE0ODEsNyBAQCBzdGF0aWMgaW5saW5l IGJvb2wgdXNlX3JlbG9jX2dwdShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPj4+Pj4+PiAgICAgICBp ZiAoREJHX0ZPUkNFX1JFTE9DKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ Pj4+Pj4+IC0gICByZXR1cm4gIWRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1KHZtYS0+cmVzdiwg dHJ1ZSk7Cj4+Pj4+Pj4gKyAgIHJldHVybiAhZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF91bmxvY2tl ZCh2bWEtPnJlc3YsIHRydWUpOwo+Pj4+Pj4+ICAgICAgfQo+Pj4+Pj4+ICAgICAgc3RhdGljIHVu c2lnbmVkIGxvbmcgdm1hX3BoeXNfYWRkcihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTMyIG9mZnNl dCkKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCj4+ Pj4+Pj4gaW5kZXggMmViZDc5NTM3YWVhOS4uN2MwZWI0MjVjYjNiMyAxMDA2NDQKPj4+Pj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKPj4+Pj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKPj4+Pj4+PiBA QCAtNTAwLDcgKzUwMCw3IEBAIGk5MTVfZ2VtX29iamVjdF9sYXN0X3dyaXRlX2VuZ2luZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+Pj4+Pj4+ICAgICAgIHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOwo+Pj4+Pj4+ICAgICAgIHJjdV9yZWFkX2xvY2soKTsKPj4+Pj4+PiAtICAgZmVu Y2UgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2JqLT5iYXNlLnJlc3YpOwo+Pj4+Pj4+ICsgICBm ZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsX3VubG9ja2VkKG9iai0+YmFzZS5yZXN2KTsKPj4+Pj4+ PiAgICAgICByY3VfcmVhZF91bmxvY2soKTsKPj4+Pj4+PiAgICAgICBpZiAoZmVuY2UgJiYgZG1h X2ZlbmNlX2lzX2k5MTUoZmVuY2UpICYmICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKQo+ Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNl cnB0ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3VzZXJwdHIuYwo+Pj4+ Pj4+IGluZGV4IGE2NTdiOTllYzc2MDYuLjQ0ZGYxOGRjOTY2OWYgMTAwNjQ0Cj4+Pj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3VzZXJwdHIuYwo+Pj4+Pj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMKPj4+Pj4+PiBA QCAtODUsOCArODUsOCBAQCBzdGF0aWMgYm9vbCBpOTE1X2dlbV91c2VycHRyX2ludmFsaWRhdGUo c3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllciAqbW5pLAo+Pj4+Pj4+ICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7Cj4+Pj4+Pj4gICAgICAgLyogd2Ugd2lsbCB1bmJpbmQgb24gbmV4dCBzdWJt aXNzaW9uLCBzdGlsbCBoYXZlIHVzZXJwdHIgcGlucyAqLwo+Pj4+Pj4+IC0gICByID0gZG1hX3Jl c3Zfd2FpdF90aW1lb3V0X3JjdShvYmotPmJhc2UucmVzdiwgdHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsK Pj4+Pj4+PiArICAgciA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF91bmxvY2tlZChvYmotPmJhc2Uu cmVzdiwgdHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+Pj4+Pj4+ICAgICAgIGlmIChyIDw9IDAp Cj4+Pj4+Pj4gICAgICAgICAgICAgICBkcm1fZXJyKCZpOTE1LT5kcm0sICIoJWxkKSBmYWlsZWQg dG8gd2FpdCBmb3IgaWRsZVxuIiwgcik7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV93YWl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fd2FpdC5jCj4+Pj4+Pj4gaW5kZXggNGI5ODU2ZDViYTE0Zi4uNWI2YzUyNjU5YWQ0 ZCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f d2FpdC5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3dh aXQuYwo+Pj4+Pj4+IEBAIC00NSw3ICs0NSw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jlc2Vy dmF0aW9uKHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+Pj4+PiAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBjb3VudCwgaTsKPj4+Pj4+PiAgICAgICAgICAgICAgIGludCByZXQ7Cj4+Pj4+Pj4g LSAgICAgICAgICAgcmV0ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc19yY3UocmVzdiwgJmV4Y2wsICZj b3VudCwgJnNoYXJlZCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgcmV0ID0gZG1hX3Jlc3ZfZ2V0X2Zl bmNlc191bmxvY2tlZChyZXN2LCAmZXhjbCwgJmNvdW50LCAmc2hhcmVkKTsKPj4+Pj4+PiAgICAg ICAgICAgICAgIGlmIChyZXQpCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4+Pj4+Pj4gQEAgLTczLDcgKzczLDcgQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVzZXJ2 YXRpb24oc3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICovCj4+ Pj4+Pj4gICAgICAgICAgICAgICBwcnVuZV9mZW5jZXMgPSBjb3VudCAmJiB0aW1lb3V0ID49IDA7 Cj4+Pj4+Pj4gICAgICAgfSBlbHNlIHsKPj4+Pj4+PiAtICAgICAgICAgICBleGNsID0gZG1hX3Jl c3ZfZ2V0X2V4Y2xfcmN1KHJlc3YpOwo+Pj4+Pj4+ICsgICAgICAgICAgIGV4Y2wgPSBkbWFfcmVz dl9nZXRfZXhjbF91bmxvY2tlZChyZXN2KTsKPj4+Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gICAgICAg aWYgKGV4Y2wgJiYgdGltZW91dCA+PSAwKQo+Pj4+Pj4+IEBAIC0xNTgsOCArMTU4LDggQEAgaTkx NV9nZW1fb2JqZWN0X3dhaXRfcHJpb3JpdHkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPj4+Pj4+PiAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3VudCwgaTsKPj4+Pj4+PiAg ICAgICAgICAgICAgIGludCByZXQ7Cj4+Pj4+Pj4gLSAgICAgICAgICAgcmV0ID0gZG1hX3Jlc3Zf Z2V0X2ZlbmNlc19yY3Uob2JqLT5iYXNlLnJlc3YsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmV4Y2wsICZjb3VudCwgJnNoYXJlZCk7Cj4+Pj4+Pj4g KyAgICAgICAgICAgcmV0ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc191bmxvY2tlZChvYmotPmJhc2Uu cmVzdiwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZleGNsLCAmY291bnQsICZzaGFyZWQpOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgaWYgKHJl dCkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+Pj4+PiBAQCAt MTcwLDcgKzE3MCw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3ByaW9yaXR5KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+Pj4+Pj4gICAgICAgICAgICAgICBrZnJlZShzaGFyZWQp Owo+Pj4+Pj4+ICAgICAgIH0gZWxzZSB7Cj4+Pj4+Pj4gLSAgICAgICAgICAgZXhjbCA9IGRtYV9y ZXN2X2dldF9leGNsX3JjdShvYmotPmJhc2UucmVzdik7Cj4+Pj4+Pj4gKyAgICAgICAgICAgZXhj bCA9IGRtYV9yZXN2X2dldF9leGNsX3VubG9ja2VkKG9iai0+YmFzZS5yZXN2KTsKPj4+Pj4+PiAg ICAgICB9Cj4+Pj4+Pj4gICAgICAgaWYgKGV4Y2wpIHsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlcXVlc3QuYwo+Pj4+Pj4+IGluZGV4IDk3MGQ4ZjQ5ODZiYmUuLmYxZWQwM2NlZDdkZDEg MTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMK Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+Pj4+Pj4+ IEBAIC0xNTk0LDggKzE1OTQsOCBAQCBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0KHN0cnVjdCBp OTE1X3JlcXVlc3QgKnRvLAo+Pj4+Pj4+ICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAq KnNoYXJlZDsKPj4+Pj4+PiAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3VudCwgaTsKPj4+ Pj4+PiAtICAgICAgICAgICByZXQgPSBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShvYmotPmJhc2Uu cmVzdiwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmV4Y2wsICZjb3VudCwgJnNoYXJlZCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgcmV0 ID0gZG1hX3Jlc3ZfZ2V0X2ZlbmNlc191bmxvY2tlZChvYmotPmJhc2UucmVzdiwKPj4+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleGNsLCAmY291 bnQsICZzaGFyZWQpOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgaWYgKHJldCkKPj4+Pj4+PiAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+Pj4+PiBAQCAtMTYxMSw3ICsxNjExLDcg QEAgaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKPj4+ Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgZG1hX2ZlbmNlX3B1dChzaGFyZWRbaV0pOwo+Pj4+ Pj4+ICAgICAgICAgICAgICAga2ZyZWUoc2hhcmVkKTsKPj4+Pj4+PiAgICAgICB9IGVsc2Ugewo+ Pj4+Pj4+IC0gICAgICAgICAgIGV4Y2wgPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3Uob2JqLT5iYXNl LnJlc3YpOwo+Pj4+Pj4+ICsgICAgICAgICAgIGV4Y2wgPSBkbWFfcmVzdl9nZXRfZXhjbF91bmxv Y2tlZChvYmotPmJhc2UucmVzdik7Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+ICAgICAgIGlmIChl eGNsKSB7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwo+Pj4+Pj4+IGlu ZGV4IDI3NDQ1NThmMzA1MDcuLjBiY2I3ZWE0NDIwMWUgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jCj4+Pj4+Pj4gQEAgLTU4Miw3ICs1ODIsNyBAQCBp bnQgaTkxNV9zd19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbihzdHJ1Y3QgaTkxNV9zd19mZW5jZSAq ZmVuY2UsCj4+Pj4+Pj4gICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqc2hhcmVkOwo+ Pj4+Pj4+ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvdW50LCBpOwo+Pj4+Pj4+IC0gICAg ICAgICAgIHJldCA9IGRtYV9yZXN2X2dldF9mZW5jZXNfcmN1KHJlc3YsICZleGNsLCAmY291bnQs ICZzaGFyZWQpOwo+Pj4+Pj4+ICsgICAgICAgICAgIHJldCA9IGRtYV9yZXN2X2dldF9mZW5jZXNf dW5sb2NrZWQocmVzdiwgJmV4Y2wsICZjb3VudCwgJnNoYXJlZCk7Cj4+Pj4+Pj4gICAgICAgICAg ICAgICBpZiAocmV0KQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ Pj4+Pj4+IEBAIC02MDYsNyArNjA2LDcgQEAgaW50IGk5MTVfc3dfZmVuY2VfYXdhaXRfcmVzZXJ2 YXRpb24oc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICBkbWFfZmVuY2VfcHV0KHNoYXJlZFtpXSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICBr ZnJlZShzaGFyZWQpOwo+Pj4+Pj4+ICAgICAgIH0gZWxzZSB7Cj4+Pj4+Pj4gLSAgICAgICAgICAg ZXhjbCA9IGRtYV9yZXN2X2dldF9leGNsX3JjdShyZXN2KTsKPj4+Pj4+PiArICAgICAgICAgICBl eGNsID0gZG1hX3Jlc3ZfZ2V0X2V4Y2xfdW5sb2NrZWQocmVzdik7Cj4+Pj4+Pj4gICAgICAgfQo+ Pj4+Pj4+ICAgICAgIGlmIChyZXQgPj0gMCAmJiBleGNsICYmIGV4Y2wtPm9wcyAhPSBleGNsdWRl KSB7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKPj4+Pj4+PiBpbmRleCA1NmRmODZlNWY3NDAw Li4xYWNhNjA1MDdiYjE0IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2dlbS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKPj4+ Pj4+PiBAQCAtOTE1LDggKzkxNSw3IEBAIGludCBtc21fZ2VtX2NwdV9wcmVwKHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqLCB1aW50MzJfdCBvcCwga3RpbWVfdCAqdGltZW91dCkKPj4+Pj4+PiAg ICAgICAgICAgICAgIG9wICYgTVNNX1BSRVBfTk9TWU5DID8gMCA6IHRpbWVvdXRfdG9famlmZmll cyh0aW1lb3V0KTsKPj4+Pj4+PiAgICAgICBsb25nIHJldDsKPj4+Pj4+PiAtICAgcmV0ID0gZG1h X3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShvYmotPnJlc3YsIHdyaXRlLAo+Pj4+Pj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCAgcmVtYWluKTsKPj4+ Pj4+PiArICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3VubG9ja2VkKG9iai0+cmVzdiwg d3JpdGUsIHRydWUsIHJlbWFpbik7Cj4+Pj4+Pj4gICAgICAgaWYgKHJldCA9PSAwKQo+Pj4+Pj4+ ICAgICAgICAgICAgICAgcmV0dXJuIHJlbWFpbiA9PSAwID8gLUVCVVNZIDogLUVUSU1FRE9VVDsK Pj4+Pj4+PiAgICAgICBlbHNlIGlmIChyZXQgPCAwKQo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC93bmR3LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9kaXNwbnY1MC93bmR3LmMKPj4+Pj4+PiBpbmRleCAwY2IxZjlkODQ4ZDNlLi44ZDA0OGJh Y2Q2ZjAyIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3Bu djUwL3duZHcuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUw L3duZHcuYwo+Pj4+Pj4+IEBAIC01NjEsNyArNTYxLDcgQEAgbnY1MF93bmR3X3ByZXBhcmVfZmIo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBhc3l3LT5pbWFnZS5oYW5kbGVbMF0gPSBjdHhk bWEtPm9iamVjdC5oYW5kbGU7Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+IC0gICBhc3l3LT5zdGF0 ZS5mZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsX3JjdShudmJvLT5iby5iYXNlLnJlc3YpOwo+Pj4+ Pj4+ICsgICBhc3l3LT5zdGF0ZS5mZW5jZSA9IGRtYV9yZXN2X2dldF9leGNsX3VubG9ja2VkKG52 Ym8tPmJvLmJhc2UucmVzdik7Cj4+Pj4+Pj4gICAgICAgYXN5dy0+aW1hZ2Uub2Zmc2V0WzBdID0g bnZiby0+b2Zmc2V0Owo+Pj4+Pj4+ICAgICAgIGlmICh3bmR3LT5mdW5jLT5wcmVwYXJlKSB7Cj4+ Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCj4+Pj4+Pj4gaW5kZXggYTcw ZTgyNDEzZmE3NS4uYmM2YjA5ZWU5YjU1MiAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2dlbS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9nZW0uYwo+Pj4+Pj4+IEBAIC05MjgsOCArOTI4LDggQEAgbm91dmVh dV9nZW1faW9jdGxfY3B1X3ByZXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK Pj4+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOwo+Pj4+Pj4+ICAgICAgIG52Ym8g PSBub3V2ZWF1X2dlbV9vYmplY3QoZ2VtKTsKPj4+Pj4+PiAtICAgbHJldCA9IGRtYV9yZXN2X3dh aXRfdGltZW91dF9yY3UobnZiby0+Ym8uYmFzZS5yZXN2LCB3cml0ZSwgdHJ1ZSwKPj4+Pj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vX3dhaXQgPyAw IDogMzAgKiBIWik7Cj4+Pj4+Pj4gKyAgIGxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfdW5s b2NrZWQobnZiby0+Ym8uYmFzZS5yZXN2LCB3cml0ZSwgdHJ1ZSwKPj4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub193YWl0ID8gMCA6IDMwICogSFopOwo+ Pj4+Pj4+ICAgICAgIGlmICghbHJldCkKPj4+Pj4+PiAgICAgICAgICAgICAgIHJldCA9IC1FQlVT WTsKPj4+Pj4+PiAgICAgICBlbHNlIGlmIChscmV0ID4gMCkKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jCj4+Pj4+Pj4gaW5kZXggY2EwNzA5OGE2MTQxOS4uZWVm NWI2MzJlZTBjZSAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3Qv cGFuZnJvc3RfZHJ2LmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFu ZnJvc3RfZHJ2LmMKPj4+Pj4+PiBAQCAtMzExLDggKzMxMSw4IEBAIHBhbmZyb3N0X2lvY3RsX3dh aXRfYm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+Pj4+PiAgICAgICBp ZiAoIWdlbV9vYmopCj4+Pj4+Pj4gICAgICAgICAgICAgICByZXR1cm4gLUVOT0VOVDsKPj4+Pj4+ PiAtICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShnZW1fb2JqLT5yZXN2LCB0cnVl LAo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 cnVlLCB0aW1lb3V0KTsKPj4+Pj4+PiArICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3Vu bG9ja2VkKGdlbV9vYmotPnJlc3YsIHRydWUsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cnVlLCB0aW1lb3V0KTsKPj4+Pj4+PiAgICAgICBpZiAoIXJl dCkKPj4+Pj4+PiAgICAgICAgICAgICAgIHJldCA9IHRpbWVvdXQgPyAtRVRJTUVET1VUIDogLUVC VVNZOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJv c3Rfam9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3Rfam9iLmMKPj4+Pj4+ PiBpbmRleCA2MDAzY2ZlYjEzMjIxLi4yZGYzZTk5OWEzOGQwIDEwMDY0NAo+Pj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwo+Pj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwo+Pj4+Pj4+IEBAIC0yMDMsNyAr MjAzLDcgQEAgc3RhdGljIHZvaWQgcGFuZnJvc3RfYWNxdWlyZV9vYmplY3RfZmVuY2VzKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqKmJvcywKPj4+Pj4+PiAgICAgICBpbnQgaTsKPj4+Pj4+PiAgICAg ICBmb3IgKGkgPSAwOyBpIDwgYm9fY291bnQ7IGkrKykKPj4+Pj4+PiAtICAgICAgICAgICBpbXBs aWNpdF9mZW5jZXNbaV0gPSBkbWFfcmVzdl9nZXRfZXhjbF9yY3UoYm9zW2ldLT5yZXN2KTsKPj4+ Pj4+PiArICAgICAgICAgICBpbXBsaWNpdF9mZW5jZXNbaV0gPSBkbWFfcmVzdl9nZXRfZXhjbF91 bmxvY2tlZChib3NbaV0tPnJlc3YpOwo+Pj4+Pj4+ICAgICAgfQo+Pj4+Pj4+ICAgICAgc3RhdGlj IHZvaWQgcGFuZnJvc3RfYXR0YWNoX29iamVjdF9mZW5jZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICoqYm9zLAo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCj4+Pj4+Pj4gaW5k ZXggMDVlYTJmMzlmNjI2MS4uMWEzOGIwYmYzNmQxMSAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCj4+Pj4+Pj4gQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0 aWMgaW50IHJhZGVvbl9nZW1fc2V0X2RvbWFpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmos Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+ICAgICAgIGlmIChkb21haW4gPT0gUkFERU9OX0dFTV9E T01BSU5fQ1BVKSB7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAvKiBBc2tpbmcgZm9yIGNwdSBhY2Nl c3Mgd2FpdCBmb3Igb2JqZWN0IGlkbGUgKi8KPj4+Pj4+PiAtICAgICAgICAgICByID0gZG1hX3Jl c3Zfd2FpdF90aW1lb3V0X3JjdShyb2JqLT50Ym8uYmFzZS5yZXN2LCB0cnVlLCB0cnVlLCAzMCAq IEhaKTsKPj4+Pj4+PiArICAgICAgICAgICByID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3VubG9j a2VkKHJvYmotPnRiby5iYXNlLnJlc3YsIHRydWUsIHRydWUsIDMwICogSFopOwo+Pj4+Pj4+ICAg ICAgICAgICAgICAgaWYgKCFyKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICByID0gLUVC VVNZOwo+Pj4+Pj4+IEBAIC00NzQsNyArNDc0LDcgQEAgaW50IHJhZGVvbl9nZW1fYnVzeV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4+Pj4+ICAgICAgIH0KPj4+ Pj4+PiAgICAgICByb2JqID0gZ2VtX3RvX3JhZGVvbl9ibyhnb2JqKTsKPj4+Pj4+PiAtICAgciA9 IGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfcmN1KHJvYmotPnRiby5iYXNlLnJlc3YsIHRydWUpOwo+ Pj4+Pj4+ICsgICByID0gZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF91bmxvY2tlZChyb2JqLT50Ym8u YmFzZS5yZXN2LCB0cnVlKTsKPj4+Pj4+PiAgICAgICBpZiAociA9PSAwKQo+Pj4+Pj4+ICAgICAg ICAgICAgICAgciA9IC1FQlVTWTsKPj4+Pj4+PiAgICAgICBlbHNlCj4+Pj4+Pj4gQEAgLTUwMyw3 ICs1MDMsNyBAQCBpbnQgcmFkZW9uX2dlbV93YWl0X2lkbGVfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gICAgICAgcm9iaiA9 IGdlbV90b19yYWRlb25fYm8oZ29iaik7Cj4+Pj4+Pj4gLSAgIHJldCA9IGRtYV9yZXN2X3dhaXRf dGltZW91dF9yY3Uocm9iai0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwgdHJ1ZSwgMzAgKiBIWik7Cj4+ Pj4+Pj4gKyAgIHJldCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF91bmxvY2tlZChyb2JqLT50Ym8u YmFzZS5yZXN2LCB0cnVlLCB0cnVlLCAzMCAqIEhaKTsKPj4+Pj4+PiAgICAgICBpZiAocmV0ID09 IDApCj4+Pj4+Pj4gICAgICAgICAgICAgICByID0gLUVCVVNZOwo+Pj4+Pj4+ICAgICAgIGVsc2Ug aWYgKHJldCA8IDApCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX21uLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5jCj4+Pj4+Pj4g aW5kZXggZTM3YzlhNTdhN2MzNi4uYTE5YmUzZjhhMjE4YyAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYwo+Pj4+Pj4+IEBAIC02Niw4ICs2Niw4IEBAIHN0YXRp YyBib29sIHJhZGVvbl9tbl9pbnZhbGlkYXRlKHN0cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIg Km1uLAo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cj4+Pj4+Pj4gICAgICAgfQo+ Pj4+Pj4+IC0gICByID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLmJhc2UucmVz diwgdHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPj4+Pj4+PiArICAgciA9IGRtYV9yZXN2X3dhaXRfdGlt ZW91dF91bmxvY2tlZChiby0+dGJvLmJhc2UucmVzdiwgdHJ1ZSwgZmFsc2UsCj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQp Owo+Pj4+Pj4+ICAgICAgIGlmIChyIDw9IDApCj4+Pj4+Pj4gICAgICAgICAgICAgICBEUk1fRVJS T1IoIiglbGQpIGZhaWxlZCB0byB3YWl0IGZvciB1c2VyIGJvXG4iLCByKTsKPj4+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvLmMKPj4+Pj4+PiBpbmRleCBjYTFiMDk4YjZhNTYxLi4yMTVjYWQzMTQ5NjIxIDEw MDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4+Pj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+Pj4+Pj4gQEAgLTI5NCw3ICsyOTQs NyBAQCBzdGF0aWMgaW50IHR0bV9ib19jbGVhbnVwX3JlZnMoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKPj4+Pj4+PiAgICAgICBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YgPSAmYm8tPmJhc2Uu X3Jlc3Y7Cj4+Pj4+Pj4gICAgICAgaW50IHJldDsKPj4+Pj4+PiAtICAgaWYgKGRtYV9yZXN2X3Rl c3Rfc2lnbmFsZWRfcmN1KHJlc3YsIHRydWUpKQo+Pj4+Pj4+ICsgICBpZiAoZG1hX3Jlc3ZfdGVz dF9zaWduYWxlZF91bmxvY2tlZChyZXN2LCB0cnVlKSkKPj4+Pj4+PiAgICAgICAgICAgICAgIHJl dCA9IDA7Cj4+Pj4+Pj4gICAgICAgZWxzZQo+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0ID0gLUVC VVNZOwo+Pj4+Pj4+IEBAIC0zMDYsOCArMzA2LDggQEAgc3RhdGljIGludCB0dG1fYm9fY2xlYW51 cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Pj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4+Pj4+PiAgICAgICAg ICAgICAgIHNwaW5fdW5sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwo+Pj4+Pj4+IC0gICAgICAg ICAgIGxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KHJlc3YsIHRydWUsIGludGVycnVw dGlibGUsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMzAgKiBIWik7Cj4+Pj4+Pj4gKyAgICAgICAgICAgbHJldCA9IGRtYV9yZXN2X3dhaXRfdGlt ZW91dF91bmxvY2tlZChyZXN2LCB0cnVlLCBpbnRlcnJ1cHRpYmxlLAo+Pj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4+Pj4+ Pj4gICAgICAgICAgICAgICBpZiAobHJldCA8IDApCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBscmV0Owo+Pj4+Pj4+IEBAIC00MDksOCArNDA5LDggQEAgc3RhdGljIHZvaWQg dHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgIC8qIExhc3QgcmVzb3J0LCBpZiB3ZSBmYWlsIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Ig dGhlCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAqIGZlbmNlcyBibG9jayBmb3IgdGhl IEJPIHRvIGJlY29tZSBpZGxlCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAqLwo+Pj4+ Pj4+IC0gICAgICAgICAgICAgICAgICAgZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+YmFz ZS5yZXN2LCB0cnVlLCBmYWxzZSwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMzAgKiBIWik7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICBk bWFfcmVzdl93YWl0X3RpbWVvdXRfdW5sb2NrZWQoYm8tPmJhc2UucmVzdiwgdHJ1ZSwgZmFsc2Us Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMzAgKiBIWik7Cj4+Pj4+Pj4gICAgICAgICAgICAgICB9Cj4+Pj4+Pj4gICAgICAgICAgICAg ICBpZiAoYm8tPmJkZXYtPmZ1bmNzLT5yZWxlYXNlX25vdGlmeSkKPj4+Pj4+PiBAQCAtNDIwLDcg KzQyMCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQo+ Pj4+Pj4+ICAgICAgICAgICAgICAgdHRtX21lbV9pb19mcmVlKGJkZXYsICZiby0+bWVtKTsKPj4+ Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gLSAgIGlmICghZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3Uo Ym8tPmJhc2UucmVzdiwgdHJ1ZSkgfHwKPj4+Pj4+PiArICAgaWYgKCFkbWFfcmVzdl90ZXN0X3Np Z25hbGVkX3VubG9ja2VkKGJvLT5iYXNlLnJlc3YsIHRydWUpIHx8Cj4+Pj4+Pj4gICAgICAgICAg ICFkbWFfcmVzdl90cnlsb2NrKGJvLT5iYXNlLnJlc3YpKSB7Cj4+Pj4+Pj4gICAgICAgICAgICAg ICAvKiBUaGUgQk8gaXMgbm90IGlkbGUsIHJlc3VycmVjdCBpdCBmb3IgZGVsYXllZCBkZXN0cm95 ICovCj4+Pj4+Pj4gICAgICAgICAgICAgICB0dG1fYm9fZmx1c2hfYWxsX2ZlbmNlcyhibyk7Cj4+ Pj4+Pj4gQEAgLTExMTYsMTQgKzExMTYsMTQgQEAgaW50IHR0bV9ib193YWl0KHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCj4+Pj4+Pj4gICAgICAgbG9uZyB0aW1lb3V0ID0gMTUgKiBIWjsK Pj4+Pj4+PiAgICAgICBpZiAobm9fd2FpdCkgewo+Pj4+Pj4+IC0gICAgICAgICAgIGlmIChkbWFf cmVzdl90ZXN0X3NpZ25hbGVkX3JjdShiby0+YmFzZS5yZXN2LCB0cnVlKSkKPj4+Pj4+PiArICAg ICAgICAgICBpZiAoZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF91bmxvY2tlZChiby0+YmFzZS5yZXN2 LCB0cnVlKSkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Pj4+Pj4g ICAgICAgICAgICAgICBlbHNlCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUJVU1k7Cj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+IC0gICB0aW1lb3V0ID0gZG1hX3Jlc3Zfd2Fp dF90aW1lb3V0X3JjdShiby0+YmFzZS5yZXN2LCB0cnVlLAo+Pj4+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJydXB0aWJsZSwgdGltZW91 dCk7Cj4+Pj4+Pj4gKyAgIHRpbWVvdXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfdW5sb2NrZWQo Ym8tPmJhc2UucmVzdiwgdHJ1ZSwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRpYmxlLCB0aW1lb3V0KTsKPj4+Pj4+PiAgICAgICBp ZiAodGltZW91dCA8IDApCj4+Pj4+Pj4gICAgICAgICAgICAgICByZXR1cm4gdGltZW91dDsKPj4+ Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9mZW5jZS5jIGIvZHJp dmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9mZW5jZS5jCj4+Pj4+Pj4gaW5kZXggMjkwMmRjNmU2NGZh Zi4uMDEwYTgyNDA1ZTM3NCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmdl bS92Z2VtX2ZlbmNlLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Zl bmNlLmMKPj4+Pj4+PiBAQCAtMTUxLDggKzE1MSw4IEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4+Pj4+ICAgICAgIC8qIENoZWNrIGZvciBh IGNvbmZsaWN0aW5nIGZlbmNlICovCj4+Pj4+Pj4gICAgICAgcmVzdiA9IG9iai0+cmVzdjsKPj4+ Pj4+PiAtICAgaWYgKCFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkX3JjdShyZXN2LAo+Pj4+Pj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPmZsYWdzICYg VkdFTV9GRU5DRV9XUklURSkpIHsKPj4+Pj4+PiArICAgaWYgKCFkbWFfcmVzdl90ZXN0X3NpZ25h bGVkX3VubG9ja2VkKHJlc3YsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcmctPmZsYWdzICYgVkdFTV9GRU5DRV9XUklURSkpIHsKPj4+Pj4+PiAgICAg ICAgICAgICAgIHJldCA9IC1FQlVTWTsKPj4+Pj4+PiAgICAgICAgICAgICAgIGdvdG8gZXJyX2Zl bmNlOwo+Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVf aW9jdGwuYwo+Pj4+Pj4+IGluZGV4IDY2OWYyZWUzOTUxNTQuLmFiMDEwYzhlMzI4MTYgMTAwNjQ0 Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKPj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwuYwo+Pj4+Pj4+ IEBAIC00NTEsMTAgKzQ1MSwxMCBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVfd2FpdF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4+Pj4+ICAgICAgICAgICAgICAg cmV0dXJuIC1FTk9FTlQ7Cj4+Pj4+Pj4gICAgICAgaWYgKGFyZ3MtPmZsYWdzICYgVklSVEdQVV9X QUlUX05PV0FJVCkgewo+Pj4+Pj4+IC0gICAgICAgICAgIHJldCA9IGRtYV9yZXN2X3Rlc3Rfc2ln bmFsZWRfcmN1KG9iai0+cmVzdiwgdHJ1ZSk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgcmV0ID0gZG1h X3Jlc3ZfdGVzdF9zaWduYWxlZF91bmxvY2tlZChvYmotPnJlc3YsIHRydWUpOwo+Pj4+Pj4+ICAg ICAgIH0gZWxzZSB7Cj4+Pj4+Pj4gLSAgICAgICAgICAgcmV0ID0gZG1hX3Jlc3Zfd2FpdF90aW1l b3V0X3JjdShvYmotPnJlc3YsIHRydWUsIHRydWUsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KTsKPj4+Pj4+PiArICAgICAgICAgICBy ZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfdW5sb2NrZWQob2JqLT5yZXN2LCB0cnVlLCB0cnVl LAo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aW1lb3V0KTsKPj4+Pj4+PiAgICAgICB9Cj4+Pj4+Pj4gICAgICAgaWYgKHJldCA9PSAwKQo+ Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0ID0gLUVCVVNZOwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfYm8uYwo+Pj4+Pj4+IGluZGV4IDA0ZGQ0OWM0YzI1NzIuLjE5ZTFjZTIzODQyYTkg MTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwo+ Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKPj4+Pj4+PiBA QCAtNzQzLDcgKzc0Myw3IEBAIHN0YXRpYyBpbnQgdm13X3VzZXJfYm9fc3luY2NwdV9ncmFiKHN0 cnVjdCB2bXdfdXNlcl9idWZmZXJfb2JqZWN0ICp1c2VyX2JvLAo+Pj4+Pj4+ICAgICAgIGlmIChm bGFncyAmIGRybV92bXdfc3luY2NwdV9hbGxvd19jcykgewo+Pj4+Pj4+ICAgICAgICAgICAgICAg bG9uZyBscmV0Owo+Pj4+Pj4+IC0gICAgICAgICAgIGxyZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVv dXRfcmN1Cj4+Pj4+Pj4gKyAgICAgICAgICAgbHJldCA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF91 bmxvY2tlZAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAoYm8tPmJhc2UucmVzdiwgdHJ1 ZSwgdHJ1ZSwKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgIG5vbmJsb2NrID8gMCA6IE1B WF9TQ0hFRFVMRV9USU1FT1VUKTsKPj4+Pj4+PiAgICAgICAgICAgICAgIGlmICghbHJldCkKPj4+ Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtcmVzdi5oIGIvaW5jbHVkZS9saW51 eC9kbWEtcmVzdi5oCj4+Pj4+Pj4gaW5kZXggZDQ0YTc3ZThhN2UzNC4uOTljZmI3YWY5NjZiOCAx MDA2NDQKPj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmgKPj4+Pj4+PiArKysg Yi9pbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmgKPj4+Pj4+PiBAQCAtMjQ2LDcgKzI0Niw3IEBAIGRt YV9yZXN2X2dldF9leGNsKHN0cnVjdCBkbWFfcmVzdiAqb2JqKQo+Pj4+Pj4+ICAgICAgfQo+Pj4+ Pj4+ICAgICAgLyoqCj4+Pj4+Pj4gLSAqIGRtYV9yZXN2X2dldF9leGNsX3JjdSAtIGdldCB0aGUg cmVzZXJ2YXRpb24gb2JqZWN0J3MKPj4+Pj4+PiArICogZG1hX3Jlc3ZfZ2V0X2V4Y2xfdW5sb2Nr ZWQgLSBnZXQgdGhlIHJlc2VydmF0aW9uIG9iamVjdCdzCj4+Pj4+Pj4gICAgICAgKiBleGNsdXNp dmUgZmVuY2UsIHdpdGhvdXQgbG9jayBoZWxkLgo+Pj4+Pj4+ICAgICAgICogQG9iajogdGhlIHJl c2VydmF0aW9uIG9iamVjdAo+Pj4+Pj4+ICAgICAgICoKPj4+Pj4+PiBAQCAtMjU3LDcgKzI1Nyw3 IEBAIGRtYV9yZXN2X2dldF9leGNsKHN0cnVjdCBkbWFfcmVzdiAqb2JqKQo+Pj4+Pj4+ICAgICAg ICogVGhlIGV4Y2x1c2l2ZSBmZW5jZSBvciBOVUxMIGlmIG5vbmUKPj4+Pj4+PiAgICAgICAqLwo+ Pj4+Pj4+ICAgICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKPj4+Pj4+PiAtZG1h X3Jlc3ZfZ2V0X2V4Y2xfcmN1KHN0cnVjdCBkbWFfcmVzdiAqb2JqKQo+Pj4+Pj4+ICtkbWFfcmVz dl9nZXRfZXhjbF91bmxvY2tlZChzdHJ1Y3QgZG1hX3Jlc3YgKm9iaikKPj4+Pj4+PiAgICAgIHsK Pj4+Pj4+PiAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPj4+Pj4+PiBAQCAtMjc4LDE2 ICsyNzgsMTYgQEAgdm9pZCBkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCBkbWFfcmVz diAqb2JqLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Cj4+Pj4+Pj4gICAgICB2b2lkIGRtYV9y ZXN2X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCBkbWFfcmVzdiAqb2JqLCBzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSk7Cj4+Pj4+Pj4gLWludCBkbWFfcmVzdl9nZXRfZmVuY2VzX3JjdShzdHJ1Y3QgZG1h X3Jlc3YgKm9iaiwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlICoqcGZlbmNlX2V4Y2wsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgKnBzaGFyZWRfY291bnQsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGRtYV9mZW5jZSAqKipwc2hhcmVkKTsKPj4+Pj4+PiAraW50IGRtYV9yZXN2X2dldF9mZW5jZXNf dW5sb2NrZWQoc3RydWN0IGRtYV9yZXN2ICpvYmosCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqcGZlbmNlX2V4Y2wsCj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCAqcHNoYXJlZF9jb3VudCwKPj4+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKioqcHNoYXJlZCk7 Cj4+Pj4+Pj4gICAgICBpbnQgZG1hX3Jlc3ZfY29weV9mZW5jZXMoc3RydWN0IGRtYV9yZXN2ICpk c3QsIHN0cnVjdCBkbWFfcmVzdiAqc3JjKTsKPj4+Pj4+PiAtbG9uZyBkbWFfcmVzdl93YWl0X3Rp bWVvdXRfcmN1KHN0cnVjdCBkbWFfcmVzdiAqb2JqLCBib29sIHdhaXRfYWxsLCBib29sIGludHIs Cj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0 KTsKPj4+Pj4+PiArbG9uZyBkbWFfcmVzdl93YWl0X3RpbWVvdXRfdW5sb2NrZWQoc3RydWN0IGRt YV9yZXN2ICpvYmosIGJvb2wgd2FpdF9hbGwsIGJvb2wgaW50ciwKPj4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCk7Cj4+Pj4+Pj4gLWJv b2wgZG1hX3Jlc3ZfdGVzdF9zaWduYWxlZF9yY3Uoc3RydWN0IGRtYV9yZXN2ICpvYmosIGJvb2wg dGVzdF9hbGwpOwo+Pj4+Pj4+ICtib29sIGRtYV9yZXN2X3Rlc3Rfc2lnbmFsZWRfdW5sb2NrZWQo c3RydWN0IGRtYV9yZXN2ICpvYmosIGJvb2wgdGVzdF9hbGwpOwo+Pj4+Pj4+ICAgICAgI2VuZGlm IC8qIF9MSU5VWF9SRVNFUlZBVElPTl9IICovCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK