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.1 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, URIBL_BLOCKED,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 1FB09C433E0 for ; Tue, 12 Jan 2021 10:55:58 +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 CC62223109 for ; Tue, 12 Jan 2021 10:55:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CC62223109 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4AB696E1BA; Tue, 12 Jan 2021 10:55:57 +0000 (UTC) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2075.outbound.protection.outlook.com [40.107.243.75]) by gabe.freedesktop.org (Postfix) with ESMTPS id F385A6E1BA for ; Tue, 12 Jan 2021 10:55:55 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q5e/bdUp3D/EZv7DupykFI2LwGU54PfjciV+PkE2Xk89cx1F57T6boSovgzPxq03T+AyMbTU1ceIe60lD3XMrY2oKVO6/c4p0gMHDYuTi0382VZk5V/SIhIo1AEDkgrVF/d2x4dVCyZGcZDiok1iKIY/t4nvoTugmhmpHg4LYfDtQZaiO/ScjPBOTf6+nOHppLaYQS6Jd60CnOs0BM+KWcx+4Huhen0n0r0t5lI/XJYuQoxDNEvgwlsa2fv8Mwz990b0g1CqOXXhU2WjHb9XW/QCZ43m8EftFgXs6XTdzA6JYHFSXsCNJQWnAHVbopCI0fvUU7yzuo72QcI+B0uSDg== 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=l+zkVVo7FKKzGY8oXBAsKCSpwwWuYQchj+var7XBrOI=; b=a6x/jBiMitIplyfzMCeCcM0wBQxQDEm6j5DPDgeomXo0Vpb8AUI4WkMgGuzmMxQb0YJvXlznMyLAI770vkcoXmfdTIeXgo8IYmTkVvMMAoCNmPio/6cShN/xPPinvI75Q841YCeqOg+o2Qo/G8fhSmfg/4G6F67ah48Lnsv1LkA5TZ70jO23mh1nw3Pjtb1jZJSUY/RvfXvJkg2lkNKGFDp4LOm6iDY/FKc4G0dxQIiP+OuPTuW/KYFxoOT1BLcyMxPLl9AMW51BA9n/YskB2iTt3L7s2n5zNkoyCbIcL+sIlW8Z+FbLZ24DB62YfBGU2lI/Pas8xay2xb5BDTjnhw== 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=l+zkVVo7FKKzGY8oXBAsKCSpwwWuYQchj+var7XBrOI=; b=zg7GLzDaJEADY/EJyFCtc8o1M6FlYrqKw4eH1lhygTPCOBYzUkhqxMVNk/89x0vWIBR2j98ht3+UjHZnVj/GpP4SmrkQYztYmGNI9e9s0VdQ+Phv70jUnjlfG/bzjSgZGfDxAgV5lhd1V9d9SO708GAyh+pHScm0xsMHau9/TZo= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4208.namprd12.prod.outlook.com (2603:10b6:208:1d0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.9; Tue, 12 Jan 2021 10:55:54 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5%3]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 10:55:54 +0000 Subject: Re: [PATCH v2 1/1] drm/amdgpu: cleanup vce,vcn,uvd ring selftests To: Alex Deucher References: <6ef74186-56a2-6f38-b73b-b618fd1b5db0@amd.com> <20201218144024.4994-1-nirmoy.das@amd.com> <7c54d56f-5fe3-e874-6749-d08efa1a9f29@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <93c4785f-88e4-c8ed-1b59-923437b01f35@amd.com> Date: Tue, 12 Jan 2021 11:55:47 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM0PR08CA0001.eurprd08.prod.outlook.com (2603:10a6:208:d2::14) 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:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by AM0PR08CA0001.eurprd08.prod.outlook.com (2603:10a6:208:d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.10 via Frontend Transport; Tue, 12 Jan 2021 10:55:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 50d48b5b-f32c-4b2c-1bcc-08d8b6e8a22a X-MS-TrafficTypeDiagnostic: MN2PR12MB4208: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AmtFZ94moFgYDS1nbwF+8Pr00sVaZR5Rx6HDEcvFjGbKiAWZlYQpk4mQjaQPcBemtwHhzWxJKZOog2bxP+89CxH5NaZ/PDDzaxa9+8s2SNLFT+3bpqw1tQZnqo9n6UG4xOnAFLDUAsy1Rtp3hTbpMyt/gqONqaHKFyBP54l5Idj0DmOKLTBBOVGTY/yHQiMMksV0vA+hm2SzhKCrXMf8ev8FNd614zk+TErq73VRvehnVmMoPi2antCAlgJzKTXBYSOBu80ni4EO8o0W+6ItZscA/jRmssVBReLdrd78p3Ugarz0Zug5z0+8qmGftGjrSTsT9THiP+whaDZwpf2J/qmrMmSXDPAAjHqJZT6s4uaWCRW5M6KbiATNmC/I85jvNVbNjqn/T/2a8yynOy5SXqDvzu3ab7erY2B3OaTaDqs0ztaivprlb6536WBWZxtdrPpptNtsguGyNe/xaAQfXodQPLrYvYeLwToXljxwA4WBUckW272JLsQNT2BZFvdXJoQ6Goaqe2yfc1aUzPphUQ== 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)(136003)(346002)(366004)(376002)(4326008)(31686004)(6666004)(36756003)(53546011)(2616005)(52116002)(16526019)(186003)(5660300002)(66574015)(2906002)(6486002)(31696002)(66946007)(478600001)(966005)(66476007)(8936002)(66556008)(8676002)(83380400001)(316002)(6916009)(45080400002)(30864003)(54906003)(86362001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?SDRsZVFZSHhkRnBxS3J1c2NaaERVeEFrMXBFK3BhTGFoRS9EdFVvUElqY2tY?= =?utf-8?B?N0xVaWpJNlVpK1hDTDhpblYvQitYN2hIclJFdGlxZ0Vod2V1TVVTdWYybUhF?= =?utf-8?B?Y29UUjZ2c1FqcitQbkJHUjFRRlE0ZjBLMjgrQm9qMzRUWFhiekhmcm8wUzlp?= =?utf-8?B?LzExRlVZLzNEL2k4SnlzWjJ5Zms5UXlvbGQ4ZVh4OWttUndHb3VNaXlST01L?= =?utf-8?B?ODFyU0RkSWFucWxpWHhsQzk1WlZFOUhqaTJYMlVUQmdqditONWdtM2ZSK0dK?= =?utf-8?B?Tk5STGlZMjV6TTNCeExZb2VRQlFPRW9PQ3lsdnVlRWlIakRzZUpwZVZ4S2Qx?= =?utf-8?B?UmZkcFFBTXIrb1l1ZGxxM3VhZ2JQRFA1TFhZMFhNaVY5aVlUbDlxZnVScXVL?= =?utf-8?B?UzZ6emJBL2IxWE51MksxVVljWGw0ZFVKazFwakZWMGpObjN1RGNYSkcvSmps?= =?utf-8?B?RlNacmVHa3E4cG9LNXNHc1FnSE0zQkV3VDArVzI5ZjhzYzQ4WklCbmtBWDJa?= =?utf-8?B?cUJuZmdYUGM3UEVCdEdQYnJyaGRYMEY1ekkxMkQvMzBxWnkzaHVkdVZtS3hD?= =?utf-8?B?Zk4zcGg3TVZ1dm9jTy9VWTdrQXl6UEhWWlRtakRhRDVncVR3akpNS2ZkQldN?= =?utf-8?B?NHo0N0JLVXJWei94V3l5cDdvMDgyQ3hTckZlNHlhRWpaeDBoZTkvTVVBMCs3?= =?utf-8?B?Y0FJU0E3am1uNS9qYTlEeHJPdmhDRlljcG96eE1sdmZEbFVzRXFuMUNlS3FR?= =?utf-8?B?eGZMaXZpclhIeERQcmlidGNYTmxZR0NOdEU1ODdpSkdYS2lHVDhaYXVoMzdS?= =?utf-8?B?MDNWanhuOGc3THlCTGR4TXBkMmY0REcvMmowZkpBOEpURlFxLytwWm52NmdY?= =?utf-8?B?a09qMWwwVVJrbklQYjZoQnAxQWVtYS9xVDFOU0NuYmtqNlVYZFdsckp2c0FD?= =?utf-8?B?Y1J6VkU2VHpmU2VnMW1TK1V2OFhVUzZmcklWeklQMUZ2eWUwQnhtTTdOTHRV?= =?utf-8?B?SXM4WDJMYWhRcGNvdzVGaDNvZmlvQXJ2bFJ0aVZJdU95VnhBZGM2TGlDL3A1?= =?utf-8?B?cm03N29sRHBXbnRLYjA1TEtIMUo4VG9rVjh6SjBxRjVoeUd1OGk2NURRQjRL?= =?utf-8?B?bVQrOFZ2MnRmSUNyeHZRcWpiTzVuMkJ3aUNwQTgra2Z4MWE4SDh0VTZHUUhL?= =?utf-8?B?UW1xb0xINUhQNVRKSjBzaWdtcm1scFpzYlN4NjE4bEJIb3k2VW9kNXJlWUN2?= =?utf-8?B?UHJseFM0Yit0Vi9qTnNFYS9BWkhqQUlXZmhtZWMwTGd3QUVYbVJwZExXZkQr?= =?utf-8?B?azFUVUhoeXlESUJjQ0VqVURUSzB0b1F1ZFFtemFJMkRES0c0aXJxOFBEYlpN?= =?utf-8?B?RGtxVjdvQkhpbHlRZFBDM3VhbWNDMytxRmliUDNPOFRHZXBRbmhrZFZjRXZq?= =?utf-8?Q?CH+4CNQj?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2021 10:55:54.1252 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-Network-Message-Id: 50d48b5b-f32c-4b2c-1bcc-08d8b6e8a22a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IHDsPInTX+NPgMEQA3Tg4KKjeFJOCZQBl3tjvJzHkKfv4ry8ONSfg6ZZNxf496RJ X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4208 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Nirmoy , Nirmoy Das , amd-gfx list Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMTEuMDEuMjEgdW0gMTY6MDUgc2NocmllYiBBbGV4IERldWNoZXI6Cj4gT24gTW9uLCBKYW4g MTEsIDIwMjEgYXQgNDoyNSBBTSBDaHJpc3RpYW4gS8O2bmlnCj4gPGNrb2VuaWcubGVpY2h0enVt ZXJrZW5AZ21haWwuY29tPiB3cm90ZToKPj4gQW0gMDguMDEuMjEgdW0gMTY6NDIgc2NocmllYiBO aXJtb3k6Cj4+PiBPbiAxLzgvMjEgNDoyNSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+ PiBBbSAxOC4xMi4yMCB1bSAxNTo0MCBzY2hyaWViIE5pcm1veSBEYXM6Cj4+Pj4+IFVzZSBhbWRn cHVfc2FfYm8gaW5zdGVhZCBvZiBhbWRncHVfYm8uCj4+Pj4+Cj4+Pj4+IHYyOgo+Pj4+PiAqIGRv IG5vdCBpbml0aWFsaXplIGJvIHRvIGdldCBoaW50IGZyb20gY29tcGlsZXIgZm9yIC1XdW5pbml0 aWFsaXplZAo+Pj4+PiAqIHBhc3MgTlVMTCBmZW5jZSB0byBhbWRncHVfc2FfYm9fZnJlZSBpZiBm ZW5jZSBpcyB1bmRlZmluZWQuCj4+Pj4gRm91bmQgYSBtYWpvciBidWcgaW4gdGhpcyB3aGljaCBp cyBwcm9iYWJseSB0aGUgcmVhc29uIHdoeSB0aGF0IG5ldmVyCj4+Pj4gd29ya2VkIGJlZm9yZS4K Pj4+Pgo+Pj4+IFNlZSBiZWxvdy4KPj4+Pgo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBOaXJtb3kgRGFz IDxuaXJtb3kuZGFzQGFtZC5jb20+Cj4+Pj4+IC0tLQo+Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgfCA1Ngo+Pj4+PiArKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tCj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYyB8IDE3 ICsrKystLS0tCj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24u YyB8IDQ3ICsrKysrKysrKystLS0tLS0tLS0tLQo+Pj4+PiAgICAzIGZpbGVzIGNoYW5nZWQsIDQ1 IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4+Pj4+IGluZGV4IDhiOTg5NjcwZWQ2Ni4u MTM0NTBhM2RmMDQ0IDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdXZkLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3V2ZC5jCj4+Pj4+IEBAIC0xMDU3LDcgKzEwNTcsNyBAQCBpbnQgYW1kZ3B1X3V2ZF9yaW5n X3BhcnNlX2NzKHN0cnVjdAo+Pj4+PiBhbWRncHVfY3NfcGFyc2VyICpwYXJzZXIsIHVpbnQzMl90 IGliX2lkeCkKPj4+Pj4gICAgICAgIHJldHVybiAwOwo+Pj4+PiAgICB9Cj4+Pj4+Cj4+Pj4+IC1z dGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBz dHJ1Y3QKPj4+Pj4gYW1kZ3B1X2JvICpibywKPj4+Pj4gK3N0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9z ZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdAo+Pj4+PiBhbWRncHVfc2Ff Ym8gKmJvLAo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZSkKPj4+Pj4gICAgewo+Pj4+PiAgICAgICAgc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Owo+Pj4+PiBAQCAtMTA3MSwxOSArMTA3MSw2IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QKPj4+Pj4gYW1kZ3B1X3JpbmcgKnJp bmcsIHN0cnVjdCBhbWRncHVfYm8gKmJvLAo+Pj4+PiAgICAgICAgdW5zaWduZWQgb2Zmc2V0X2lk eCA9IDA7Cj4+Pj4+ICAgICAgICB1bnNpZ25lZCBvZmZzZXRbM10gPSB7IFVWRF9CQVNFX1NJLCAw LCAwIH07Cj4+Pj4+Cj4+Pj4+IC0gICAgYW1kZ3B1X2JvX2t1bm1hcChibyk7Cj4+Pj4+IC0gICAg YW1kZ3B1X2JvX3VucGluKGJvKTsKPj4+Pj4gLQo+Pj4+PiAtICAgIGlmICghcmluZy0+YWRldi0+ dXZkLmFkZHJlc3NfNjRfYml0KSB7Cj4+Pj4+IC0gICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07Cj4+Pj4+IC0KPj4+Pj4gLSAgICAgICAgYW1kZ3B1 X2JvX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSk7Cj4+ Pj4+IC0gICAgICAgIGFtZGdwdV91dmRfZm9yY2VfaW50b191dmRfc2VnbWVudChibyk7Cj4+Pj4+ IC0gICAgICAgIHIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAm Y3R4KTsKPj4+Pj4gLSAgICAgICAgaWYgKHIpCj4+Pj4+IC0gICAgICAgICAgICBnb3RvIGVycjsK Pj4+Pj4gLSAgICB9Cj4+Pj4+IC0KPj4+Pj4gICAgICAgIHIgPSBhbWRncHVfam9iX2FsbG9jX3dp dGhfaWIoYWRldiwgNjQsIGRpcmVjdCA/Cj4+Pj4+IEFNREdQVV9JQl9QT09MX0RJUkVDVCA6Cj4+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9JQl9QT09MX0RFTEFZRUQsICZqb2Ip Owo+Pj4+PiAgICAgICAgaWYgKHIpCj4+Pj4+IEBAIC0xMTAxLDcgKzEwODgsNyBAQCBzdGF0aWMg aW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0Cj4+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLCBz dHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+Pj4gICAgICAgIGRhdGFbM10gPSBQQUNLRVQwKG9mZnNl dFtvZmZzZXRfaWR4XSArIFVWRF9OT19PUCwgMCk7Cj4+Pj4+Cj4+Pj4+ICAgICAgICBpYiA9ICZq b2ItPmlic1swXTsKPj4+Pj4gLSAgICBhZGRyID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQoYm8pOwo+ Pj4+PiArICAgIGFkZHIgPSBhbWRncHVfc2FfYm9fZ3B1X2FkZHIoYm8pOwo+Pj4+PiAgICAgICAg aWItPnB0clswXSA9IGRhdGFbMF07Cj4+Pj4+ICAgICAgICBpYi0+cHRyWzFdID0gYWRkcjsKPj4+ Pj4gICAgICAgIGliLT5wdHJbMl0gPSBkYXRhWzFdOwo+Pj4+PiBAQCAtMTExNSwzMyArMTEwMiwx NyBAQCBzdGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0Cj4+Pj4+IGFtZGdwdV9y aW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+Pj4gICAgICAgIGliLT5sZW5ndGhf ZHcgPSAxNjsKPj4+Pj4KPj4+Pj4gICAgICAgIGlmIChkaXJlY3QpIHsKPj4+Pj4gLSAgICAgICAg ciA9IGRtYV9yZXN2X3dhaXRfdGltZW91dF9yY3UoYm8tPnRiby5iYXNlLnJlc3YsCj4+Pj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZmFsc2UsCj4+Pj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmllcygxMCkpOwo+Pj4+PiAtICAgICAgICBp ZiAociA9PSAwKQo+Pj4+PiAtICAgICAgICAgICAgciA9IC1FVElNRURPVVQ7Cj4+Pj4+IC0gICAg ICAgIGlmIChyIDwgMCkKPj4+Pj4gLSAgICAgICAgICAgIGdvdG8gZXJyX2ZyZWU7Cj4+Pj4+IC0K Pj4+Pj4gICAgICAgICAgICByID0gYW1kZ3B1X2pvYl9zdWJtaXRfZGlyZWN0KGpvYiwgcmluZywg JmYpOwo+Pj4+PiAgICAgICAgICAgIGlmIChyKQo+Pj4+PiAgICAgICAgICAgICAgICBnb3RvIGVy cl9mcmVlOwo+Pj4+PiAgICAgICAgfSBlbHNlIHsKPj4+Pj4gLSAgICAgICAgciA9IGFtZGdwdV9z eW5jX3Jlc3YoYWRldiwgJmpvYi0+c3luYywgYm8tPnRiby5iYXNlLnJlc3YsCj4+Pj4+IC0gICAg ICAgICAgICAgICAgICAgICBBTURHUFVfU1lOQ19BTFdBWVMsCj4+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICBBTURHUFVfRkVOQ0VfT1dORVJfVU5ERUZJTkVEKTsKPj4+Pj4gLSAgICAgICAgaWYg KHIpCj4+Pj4+IC0gICAgICAgICAgICBnb3RvIGVycl9mcmVlOwo+Pj4+PiAtCj4+Pj4+ICAgICAg ICAgICAgciA9IGFtZGdwdV9qb2Jfc3VibWl0KGpvYiwgJmFkZXYtPnV2ZC5lbnRpdHksCj4+Pj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICBBTURHUFVfRkVOQ0VfT1dORVJfVU5ERUZJTkVELCAm Zik7Cj4+Pj4+ICAgICAgICAgICAgaWYgKHIpCj4+Pj4+ICAgICAgICAgICAgICAgIGdvdG8gZXJy X2ZyZWU7Cj4+Pj4+ICAgICAgICB9Cj4+Pj4+Cj4+Pj4+IC0gICAgYW1kZ3B1X2JvX2ZlbmNlKGJv LCBmLCBmYWxzZSk7Cj4+Pj4+IC0gICAgYW1kZ3B1X2JvX3VucmVzZXJ2ZShibyk7Cj4+Pj4+IC0g ICAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4+Pj4+ICsgICAgYW1kZ3B1X3NhX2JvX2ZyZWUoYWRl diwgJmJvLCBmKTsKPj4+Pj4KPj4+Pj4gICAgICAgIGlmIChmZW5jZSkKPj4+Pj4gICAgICAgICAg ICAqZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwo+Pj4+PiBAQCAtMTE1Myw4ICsxMTI0LDcgQEAg c3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdAo+Pj4+PiBhbWRncHVfcmluZyAq cmluZywgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4+Pj4+ICAgICAgICBhbWRncHVfam9iX2ZyZWUo am9iKTsKPj4+Pj4KPj4+Pj4gICAgZXJyOgo+Pj4+PiAtICAgIGFtZGdwdV9ib191bnJlc2VydmUo Ym8pOwo+Pj4+PiAtICAgIGFtZGdwdV9ib191bnJlZigmYm8pOwo+Pj4+PiArICAgIGFtZGdwdV9z YV9ib19mcmVlKGFkZXYsICZibywgTlVMTCk7Cj4+Pj4+ICAgICAgICByZXR1cm4gcjsKPj4+Pj4g ICAgfQo+Pj4+Pgo+Pj4+PiBAQCAtMTE2NSwxNiArMTEzNSwxNyBAQCBpbnQgYW1kZ3B1X3V2ZF9n ZXRfY3JlYXRlX21zZyhzdHJ1Y3QKPj4+Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhh bmRsZSwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNl KQo+Pj4+PiAgICB7Cj4+Pj4+ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJp bmctPmFkZXY7Cj4+Pj4+IC0gICAgc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBOVUxMOwo+Pj4+PiAr ICAgIHN0cnVjdCBhbWRncHVfc2FfYm8gKmJvOwo+Pj4+PiAgICAgICAgdWludDMyX3QgKm1zZzsK Pj4+Pj4gICAgICAgIGludCByLCBpOwo+Pj4+Pgo+Pj4+PiAtICAgIHIgPSBhbWRncHVfYm9fY3Jl YXRlX3Jlc2VydmVkKGFkZXYsIDEwMjQsIFBBR0VfU0laRSwKPj4+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAo+Pj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICZibywgTlVMTCwgKHZvaWQgKiopJm1zZyk7Cj4+Pj4+ICsgICAgciA9IGFtZGdwdV9zYV9i b19uZXcoJmFkZXYtPmliX3Bvb2xzW0FNREdQVV9JQl9QT09MX0RJUkVDVF0sCj4+Pj4+ICsgICAg ICAgICAgICAgICAgICZibywgMTAyNCwgUEFHRV9TSVpFKTsKPj4+PiBUaGlzIDEwMjQgaGVyZSBp cyB3cm9uZy4gVGhlIHNpemUgaXMgaW4gYnl0ZXMgYW5kIG5vdCBkb3VibGUgd29yZHMuCj4+Pj4g U28gdGhpcyBuZWVkcyB0byBiZSA0MDk2Lgo+Pj4+Cj4+Pj4gVGhpcyBvbmx5IHdvcmtlZCBiZWNh dXNlIGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQgYWx3YXlzIGFsbG9jYXRlZCBhCj4+Pj4gZnVs bCBwYWdlIGluc3RlYWQgb2YgMTAyNCBieXRlcy4KPj4+Pgo+Pj4+IFNhbWUgcHJvYmxlbSBvbiBh bGwgb3RoZXIgb2NjYXNpb25zLgo+Pj4KPj4+IEkgd29uZGVyIHdoeSBpdCB3b3JrZWQgb24gbmV3 ZXIgY2FyZHMuCj4+IE1heWJlIGp1c3QgY29pbmNpZGVudCwgYnV0IHRoZXJlIG11c3QgYmUgbW9y ZSBwcm9ibGVtcy4gRXZlbiB3aXRoIHRoZQo+PiBzaXplIGZpeGVkIEkgZ2V0IGEgaGFuZyBvZiB0 aGUgSUIgdGVzdHMgZHVyaW5nIGJvb3QuCj4+Cj4gTWF5YmUgcmVsYXRlZCB0byB0aGUgcmVjZW50 IGNoYW5nZSB0byBtb3ZlIHNvbWUgb2YgdGhlIFVWRCBidWZmZXJzCj4gZnJvbSB2cmFtIHRvIGd0 dD8KCkkgdGhvdWdodCBhYm91dCB0aGF0IGFzIHdlbGwsIGJ1dCB0aGF0IGRpZG4ndCBzZWVtIHRv IGNhdXNlIGFueSBwcm9ibGVtcy4KCkNocmlzdGlhbi4KCj4KPiBBbGV4Cj4KPgo+PiBDaHJpc3Rp YW4uCj4+Cj4+Pgo+Pj4+IEFkZGl0aW9uYWwgdG8gdGhhdCB0aGUgZGlyZWN0IHBvb2wgc2hvdWxk IG9ubHkgYmUgdXNlZCBpZiB3ZSBzdWJtaXQKPj4+PiBkaXJlY3RseSwgZS5nLiBkdXJpbmcgYSBH UFUgcmVzZXQuCj4+Pj4KPj4+PiBPdGhlcndpc2Ugd2UgbmVlZCB0byB1c2UgdGhlIG5vcm1hbCBw b29sLgo+Pj4KPj4+IEkgd2lsbCByZXNlbmQgd2l0aCBhYm92ZSBjaGFuZ2VzLgo+Pj4KPj4+Cj4+ PiBUaGFua3MsCj4+Pgo+Pj4gTmlybW95Cj4+Pgo+Pj4KPj4+PiBSZWdhcmRzLAo+Pj4+IENocmlz dGlhbi4KPj4+Pgo+Pj4+Cj4+Pj4+ICsKPj4+Pj4gICAgICAgIGlmIChyKQo+Pj4+PiAgICAgICAg ICAgIHJldHVybiByOwo+Pj4+Pgo+Pj4+PiArICAgIG1zZyA9IGFtZGdwdV9zYV9ib19jcHVfYWRk cihibyk7Cj4+Pj4+ICAgICAgICAvKiBzdGl0Y2ggdG9nZXRoZXIgYW4gVVZEIGNyZWF0ZSBtc2cg Ki8KPj4+Pj4gICAgICAgIG1zZ1swXSA9IGNwdV90b19sZTMyKDB4MDAwMDBkZTQpOwo+Pj4+PiAg ICAgICAgbXNnWzFdID0gY3B1X3RvX2xlMzIoMHgwMDAwMDAwMCk7Cj4+Pj4+IEBAIC0xMTk3LDE2 ICsxMTY4LDE3IEBAIGludCBhbWRncHVfdXZkX2dldF9kZXN0cm95X21zZyhzdHJ1Y3QKPj4+Pj4g YW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKPj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCj4+Pj4+ICAgIHsK Pj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPj4+ Pj4gLSAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IE5VTEw7Cj4+Pj4+ICsgICAgc3RydWN0IGFt ZGdwdV9zYV9ibyAqYm87Cj4+Pj4+ICAgICAgICB1aW50MzJfdCAqbXNnOwo+Pj4+PiAgICAgICAg aW50IHIsIGk7Cj4+Pj4+Cj4+Pj4+IC0gICAgciA9IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQo YWRldiwgMTAyNCwgUEFHRV9TSVpFLAo+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIEFNREdQ VV9HRU1fRE9NQUlOX1ZSQU0sCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgJmJvLCBOVUxM LCAodm9pZCAqKikmbXNnKTsKPj4+Pj4gKyAgICByID0gYW1kZ3B1X3NhX2JvX25ldygmYWRldi0+ aWJfcG9vbHNbQU1ER1BVX0lCX1BPT0xfRElSRUNUXSwKPj4+Pj4gKyAgICAgICAgICAgICAgICAg JmJvLCAxMDI0LCBQQUdFX1NJWkUpOwo+Pj4+PiArCj4+Pj4+ICAgICAgICBpZiAocikKPj4+Pj4g ICAgICAgICAgICByZXR1cm4gcjsKPj4+Pj4KPj4+Pj4gKyAgICBtc2cgPSBhbWRncHVfc2FfYm9f Y3B1X2FkZHIoYm8pOwo+Pj4+PiAgICAgICAgLyogc3RpdGNoIHRvZ2V0aGVyIGFuIFVWRCBkZXN0 cm95IG1zZyAqLwo+Pj4+PiAgICAgICAgbXNnWzBdID0gY3B1X3RvX2xlMzIoMHgwMDAwMGRlNCk7 Cj4+Pj4+ICAgICAgICBtc2dbMV0gPSBjcHVfdG9fbGUzMigweDAwMDAwMDAyKTsKPj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+Pj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+Pj4+PiBpbmRleCAwZDUy ODRiOTM2ZTQuLmJjZTI5ZDY5NzVkMyAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92Y2UuYwo+Pj4+PiBAQCAtODEsNyArODEsNyBAQCBNT0RVTEVfRklSTVdB UkUoRklSTVdBUkVfVkVHQTIwKTsKPj4+Pj4KPj4+Pj4gICAgc3RhdGljIHZvaWQgYW1kZ3B1X3Zj ZV9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+Pj4+PiAgICBz dGF0aWMgaW50IGFtZGdwdV92Y2VfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nLAo+Pj4+PiB1aW50MzJfdCBoYW5kbGUsCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBh bWRncHVfc2FfYm8gKmJvLAo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1h X2ZlbmNlICoqZmVuY2UpOwo+Pj4+PiAgICBzdGF0aWMgaW50IGFtZGdwdV92Y2VfZ2V0X2Rlc3Ry b3lfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPj4+Pj4gdWludDMyX3QgaGFuZGxlLAo+ Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkaXJlY3QsIHN0cnVjdCBkbWFfZmVu Y2UgKipmZW5jZSk7Cj4+Pj4+IEBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCBhbWRncHVfdmNlX2Zy ZWVfaGFuZGxlcyhzdHJ1Y3QKPj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGRybV9m aWxlICpmaWxwKQo+Pj4+PiAgICAgKiBPcGVuIHVwIGEgc3RyZWFtIGZvciBIVyB0ZXN0Cj4+Pj4+ ICAgICAqLwo+Pj4+PiAgICBzdGF0aWMgaW50IGFtZGdwdV92Y2VfZ2V0X2NyZWF0ZV9tc2coc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+Pj4+PiB1aW50MzJfdCBoYW5kbGUsCj4+Pj4+IC0gICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBhbWRncHVfc2FfYm8gKmJvLAo+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCj4+Pj4+ICAgIHsKPj4+Pj4gICAgICAg IGNvbnN0IHVuc2lnbmVkIGliX3NpemVfZHcgPSAxMDI0Owo+Pj4+PiBAQCAtNDU0LDcgKzQ1NCw3 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZjZV9nZXRfY3JlYXRlX21zZyhzdHJ1Y3QKPj4+Pj4gYW1k Z3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKPj4+Pj4KPj4+Pj4gICAgICAgIGliID0g JmpvYi0+aWJzWzBdOwo+Pj4+Pgo+Pj4+PiAtICAgIGFkZHIgPSBhbWRncHVfYm9fZ3B1X29mZnNl dChibyk7Cj4+Pj4+ICsgICAgYWRkciA9IGFtZGdwdV9zYV9ib19ncHVfYWRkcihibyk7Cj4+Pj4+ Cj4+Pj4+ICAgICAgICAvKiBzdGl0Y2ggdG9nZXRoZXIgYW4gVkNFIGNyZWF0ZSBtc2cgKi8KPj4+ Pj4gICAgICAgIGliLT5sZW5ndGhfZHcgPSAwOwo+Pj4+PiBAQCAtMTEzMCwxNiArMTEzMCwxNiBA QCBpbnQgYW1kZ3B1X3ZjZV9yaW5nX3Rlc3RfcmluZyhzdHJ1Y3QKPj4+Pj4gYW1kZ3B1X3Jpbmcg KnJpbmcpCj4+Pj4+ICAgIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKPj4+Pj4gICAgewo+Pj4+PiAgICAgICAgc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UgPSBOVUxMOwo+Pj4+PiAtICAgIHN0cnVjdCBhbWRncHVfYm8gKmJv ID0gTlVMTDsKPj4+Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibyA9IE5VTEw7Cj4+Pj4+ ICsgICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Owo+Pj4+PiAgICAg ICAgbG9uZyByOwo+Pj4+Pgo+Pj4+PiAgICAgICAgLyogc2tpcCB2Y2UgcmluZzEvMiBpYiB0ZXN0 IGZvciBub3csIHNpbmNlIGl0J3Mgbm90IHJlbGlhYmxlICovCj4+Pj4+ICAgICAgICBpZiAocmlu ZyAhPSAmcmluZy0+YWRldi0+dmNlLnJpbmdbMF0pCj4+Pj4+ICAgICAgICAgICAgcmV0dXJuIDA7 Cj4+Pj4+Cj4+Pj4+IC0gICAgciA9IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQocmluZy0+YWRl diwgNTEyLCBQQUdFX1NJWkUsCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX0dF TV9ET01BSU5fVlJBTSwKPj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAmYm8sIE5VTEwsIE5V TEwpOwo+Pj4+PiArICAgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZhZGV2LT5pYl9wb29sc1tBTURH UFVfSUJfUE9PTF9ESVJFQ1RdLAo+Pj4+PiArICAgICAgICAgICAgICAgICAmYm8sIDUxMiwgUEFH RV9TSVpFKTsKPj4+Pj4gICAgICAgIGlmIChyKQo+Pj4+PiAgICAgICAgICAgIHJldHVybiByOwo+ Pj4+Pgo+Pj4+PiBAQCAtMTE1OCw4ICsxMTU4LDcgQEAgaW50IGFtZGdwdV92Y2VfcmluZ190ZXN0 X2liKHN0cnVjdCBhbWRncHVfcmluZwo+Pj4+PiAqcmluZywgbG9uZyB0aW1lb3V0KQo+Pj4+PiAg ICAgICAgICAgIHIgPSAwOwo+Pj4+Pgo+Pj4+PiAgICBlcnJvcjoKPj4+Pj4gKyAgICBhbWRncHVf c2FfYm9fZnJlZShhZGV2LCAmYm8sIGZlbmNlKTsKPj4+Pj4gICAgICAgIGRtYV9mZW5jZV9wdXQo ZmVuY2UpOwo+Pj4+PiAtICAgIGFtZGdwdV9ib191bnJlc2VydmUoYm8pOwo+Pj4+PiAtICAgIGFt ZGdwdV9ib191bnJlZigmYm8pOwo+Pj4+PiAgICAgICAgcmV0dXJuIHI7Cj4+Pj4+ICAgIH0KPj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYwo+ Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYwo+Pj4+PiBpbmRl eCA0YTc3Yzc0MjRkZmMuLjFlNDZiMmY4OTViYSAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYwo+Pj4+PiBAQCAtNDg4LDcgKzQ4OCw3IEBAIGludCBh bWRncHVfdmNuX2RlY19zd19yaW5nX3Rlc3RfcmluZyhzdHJ1Y3QKPj4+Pj4gYW1kZ3B1X3Jpbmcg KnJpbmcpCj4+Pj4+ICAgIH0KPj4+Pj4KPj4+Pj4gICAgc3RhdGljIGludCBhbWRncHVfdmNuX2Rl Y19zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4+Pj4+IC0gICAgICAgICAgICAg ICAgICAgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGFtZGdwdV9zYV9ibyAqYm8sCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZmVuY2UpCj4+Pj4+ICAgIHsKPj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPj4+Pj4gQEAgLTUwNCw3ICs1MDQsOCBAQCBzdGF0 aWMgaW50IGFtZGdwdV92Y25fZGVjX3NlbmRfbXNnKHN0cnVjdAo+Pj4+PiBhbWRncHVfcmluZyAq cmluZywKPj4+Pj4gICAgICAgICAgICBnb3RvIGVycjsKPj4+Pj4KPj4+Pj4gICAgICAgIGliID0g JmpvYi0+aWJzWzBdOwo+Pj4+PiAtICAgIGFkZHIgPSBhbWRncHVfYm9fZ3B1X29mZnNldChibyk7 Cj4+Pj4+ICsgICAgYWRkciA9IGFtZGdwdV9zYV9ib19ncHVfYWRkcihibyk7Cj4+Pj4+ICsKPj4+ Pj4gICAgICAgIGliLT5wdHJbMF0gPSBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMCwg MCk7Cj4+Pj4+ICAgICAgICBpYi0+cHRyWzFdID0gYWRkcjsKPj4+Pj4gICAgICAgIGliLT5wdHJb Ml0gPSBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMSwgMCk7Cj4+Pj4+IEBAIC01MjEs OSArNTIyLDcgQEAgc3RhdGljIGludCBhbWRncHVfdmNuX2RlY19zZW5kX21zZyhzdHJ1Y3QKPj4+ Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsCj4+Pj4+ICAgICAgICBpZiAocikKPj4+Pj4gICAgICAgICAg ICBnb3RvIGVycl9mcmVlOwo+Pj4+Pgo+Pj4+PiAtICAgIGFtZGdwdV9ib19mZW5jZShibywgZiwg ZmFsc2UpOwo+Pj4+PiAtICAgIGFtZGdwdV9ib191bnJlc2VydmUoYm8pOwo+Pj4+PiAtICAgIGFt ZGdwdV9ib191bnJlZigmYm8pOwo+Pj4+PiArICAgIGFtZGdwdV9zYV9ib19mcmVlKGFkZXYsICZi bywgZik7Cj4+Pj4+Cj4+Pj4+ICAgICAgICBpZiAoZmVuY2UpCj4+Pj4+ICAgICAgICAgICAgKmZl bmNlID0gZG1hX2ZlbmNlX2dldChmKTsKPj4+Pj4gQEAgLTUzNSwyNSArNTM0LDI3IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc2VuZF9tc2coc3RydWN0Cj4+Pj4+IGFtZGdwdV9yaW5nICpy aW5nLAo+Pj4+PiAgICAgICAgYW1kZ3B1X2pvYl9mcmVlKGpvYik7Cj4+Pj4+Cj4+Pj4+ICAgIGVy cjoKPj4+Pj4gLSAgICBhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPj4+Pj4gLSAgICBhbWRncHVf Ym9fdW5yZWYoJmJvKTsKPj4+Pj4gKyAgICBhbWRncHVfc2FfYm9fZnJlZShhZGV2LCAmYm8sIE5V TEwpOwo+Pj4+PiAgICAgICAgcmV0dXJuIHI7Cj4+Pj4+ICAgIH0KPj4+Pj4KPj4+Pj4gICAgc3Rh dGljIGludCBhbWRncHVfdmNuX2RlY19nZXRfY3JlYXRlX21zZyhzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcsCj4+Pj4+IHVpbnQzMl90IGhhbmRsZSwKPj4+Pj4gLSAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBhbWRncHVfYm8gKipibykKPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBhbWRncHVfc2FfYm8gKipibykKPj4+Pj4gICAgewo+Pj4+PiAgICAgICAgc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Owo+Pj4+PiAgICAgICAgdWludDMyX3QgKm1zZzsK Pj4+Pj4gICAgICAgIGludCByLCBpOwo+Pj4+Pgo+Pj4+PiAgICAgICAgKmJvID0gTlVMTDsKPj4+ Pj4gLSAgICByID0gYW1kZ3B1X2JvX2NyZWF0ZV9yZXNlcnZlZChhZGV2LCAxMDI0LCBQQUdFX1NJ WkUsCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwK Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBibywgTlVMTCwgKHZvaWQgKiopJm1zZyk7Cj4+ Pj4+ICsKPj4+Pj4gKyAgICByID0gYW1kZ3B1X3NhX2JvX25ldygmYWRldi0+aWJfcG9vbHNbQU1E R1BVX0lCX1BPT0xfRElSRUNUXSwKPj4+Pj4gKyAgICAgICAgICAgICAgICAgYm8sIDEwMjQsIFBB R0VfU0laRSk7Cj4+Pj4+ICsKPj4+Pj4gICAgICAgIGlmIChyKQo+Pj4+PiAgICAgICAgICAgIHJl dHVybiByOwo+Pj4+Pgo+Pj4+PiArICAgIG1zZyA9IGFtZGdwdV9zYV9ib19jcHVfYWRkcigqYm8p Owo+Pj4+PiArCj4+Pj4+ICAgICAgICBtc2dbMF0gPSBjcHVfdG9fbGUzMigweDAwMDAwMDI4KTsK Pj4+Pj4gICAgICAgIG1zZ1sxXSA9IGNwdV90b19sZTMyKDB4MDAwMDAwMzgpOwo+Pj4+PiAgICAg ICAgbXNnWzJdID0gY3B1X3RvX2xlMzIoMHgwMDAwMDAwMSk7Cj4+Pj4+IEBAIC01NzUsMTggKzU3 NiwxOSBAQCBzdGF0aWMgaW50Cj4+Pj4+IGFtZGdwdV92Y25fZGVjX2dldF9jcmVhdGVfbXNnKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZAo+Pj4+PiAgICB9Cj4+Pj4+Cj4+ Pj4+ICAgIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCBh bWRncHVfcmluZwo+Pj4+PiAqcmluZywgdWludDMyX3QgaGFuZGxlLAo+Pj4+PiAtICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKipibykKPj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICoqYm8pCj4+Pj4+ICAgIHsKPj4+Pj4gICAgICAg IHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPj4+Pj4gICAgICAgIHVp bnQzMl90ICptc2c7Cj4+Pj4+ICAgICAgICBpbnQgciwgaTsKPj4+Pj4KPj4+Pj4gICAgICAgICpi byA9IE5VTEw7Cj4+Pj4+IC0gICAgciA9IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQoYWRldiwg MTAyNCwgUEFHRV9TSVpFLAo+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9HRU1f RE9NQUlOX1ZSQU0sCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgYm8sIE5VTEwsICh2b2lk ICoqKSZtc2cpOwo+Pj4+PiArICAgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZhZGV2LT5pYl9wb29s c1tBTURHUFVfSUJfUE9PTF9ESVJFQ1RdLAo+Pj4+PiArICAgICAgICAgICAgICAgICBibywgMTAy NCwgUEFHRV9TSVpFKTsKPj4+Pj4gKwo+Pj4+PiAgICAgICAgaWYgKHIpCj4+Pj4+ICAgICAgICAg ICAgcmV0dXJuIHI7Cj4+Pj4+ICsgICAgbXNnID0gYW1kZ3B1X3NhX2JvX2NwdV9hZGRyKCpibyk7 Cj4+Pj4+Cj4+Pj4+ICAgICAgICBtc2dbMF0gPSBjcHVfdG9fbGUzMigweDAwMDAwMDI4KTsKPj4+ Pj4gICAgICAgIG1zZ1sxXSA9IGNwdV90b19sZTMyKDB4MDAwMDAwMTgpOwo+Pj4+PiBAQCAtNjAz LDcgKzYwNSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfZ2V0X2Rlc3Ryb3lfbXNnKHN0 cnVjdAo+Pj4+PiBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuCj4+Pj4+ICAgIGludCBh bWRncHVfdmNuX2RlY19yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25n Cj4+Pj4+IHRpbWVvdXQpCj4+Pj4+ICAgIHsKPj4+Pj4gICAgICAgIHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlID0gTlVMTDsKPj4+Pj4gLSAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKPj4+Pj4gKyAg ICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibzsKPj4+Pj4gICAgICAgIGxvbmcgcjsKPj4+Pj4KPj4+ Pj4gICAgICAgIHIgPSBhbWRncHVfdmNuX2RlY19nZXRfY3JlYXRlX21zZyhyaW5nLCAxLCAmYm8p Owo+Pj4+PiBAQCAtNjMzLDcgKzYzNSw3IEBAIGludCBhbWRncHVfdmNuX2RlY19yaW5nX3Rlc3Rf aWIoc3RydWN0Cj4+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLCBsb25nIHRpbWVvdXQpCj4+Pj4+ICAg IH0KPj4+Pj4KPj4+Pj4gICAgc3RhdGljIGludCBhbWRncHVfdmNuX2RlY19zd19zZW5kX21zZyhz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgc3RydWN0 IGFtZGdwdV9ibyAqYm8sCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9z YV9ibyAqYm8sCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoq ZmVuY2UpCj4+Pj4+ICAgIHsKPj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVfdmNuX2RlY29kZV9i dWZmZXIgKmRlY29kZV9idWZmZXIgPSBOVUxMOwo+Pj4+PiBAQCAtNjUxLDcgKzY1Myw3IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc3dfc2VuZF9tc2coc3RydWN0Cj4+Pj4+IGFtZGdwdV9y aW5nICpyaW5nLAo+Pj4+PiAgICAgICAgICAgIGdvdG8gZXJyOwo+Pj4+Pgo+Pj4+PiAgICAgICAg aWIgPSAmam9iLT5pYnNbMF07Cj4+Pj4+IC0gICAgYWRkciA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0 KGJvKTsKPj4+Pj4gKyAgICBhZGRyID0gYW1kZ3B1X3NhX2JvX2dwdV9hZGRyKGJvKTsKPj4+Pj4g ICAgICAgIGliLT5sZW5ndGhfZHcgPSAwOwo+Pj4+Pgo+Pj4+PiAgICAgICAgaWItPnB0cltpYi0+ bGVuZ3RoX2R3KytdID0gc2l6ZW9mKHN0cnVjdAo+Pj4+PiBhbWRncHVfdmNuX2RlY29kZV9idWZm ZXIpICsgODsKPj4+Pj4gQEAgLTY3MSw5ICs2NzMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25f ZGVjX3N3X3NlbmRfbXNnKHN0cnVjdAo+Pj4+PiBhbWRncHVfcmluZyAqcmluZywKPj4+Pj4gICAg ICAgIGlmIChyKQo+Pj4+PiAgICAgICAgICAgIGdvdG8gZXJyX2ZyZWU7Cj4+Pj4+Cj4+Pj4+IC0g ICAgYW1kZ3B1X2JvX2ZlbmNlKGJvLCBmLCBmYWxzZSk7Cj4+Pj4+IC0gICAgYW1kZ3B1X2JvX3Vu cmVzZXJ2ZShibyk7Cj4+Pj4+IC0gICAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4+Pj4+ICsgICAg YW1kZ3B1X3NhX2JvX2ZyZWUoYWRldiwgJmJvLCBmKTsKPj4+Pj4KPj4+Pj4gICAgICAgIGlmIChm ZW5jZSkKPj4+Pj4gICAgICAgICAgICAqZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwo+Pj4+PiBA QCAtNjg1LDE1ICs2ODUsMTQgQEAgc3RhdGljIGludCBhbWRncHVfdmNuX2RlY19zd19zZW5kX21z ZyhzdHJ1Y3QKPj4+Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsCj4+Pj4+ICAgICAgICBhbWRncHVfam9i X2ZyZWUoam9iKTsKPj4+Pj4KPj4+Pj4gICAgZXJyOgo+Pj4+PiAtICAgIGFtZGdwdV9ib191bnJl c2VydmUoYm8pOwo+Pj4+PiAtICAgIGFtZGdwdV9ib191bnJlZigmYm8pOwo+Pj4+PiArICAgIGFt ZGdwdV9zYV9ib19mcmVlKGFkZXYsICZibywgTlVMTCk7Cj4+Pj4+ICAgICAgICByZXR1cm4gcjsK Pj4+Pj4gICAgfQo+Pj4+Pgo+Pj4+PiAgICBpbnQgYW1kZ3B1X3Zjbl9kZWNfc3dfcmluZ190ZXN0 X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZwo+Pj4+PiB0aW1lb3V0KQo+Pj4+PiAg ICB7Cj4+Pj4+ICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7Cj4+Pj4+IC0g ICAgc3RydWN0IGFtZGdwdV9ibyAqYm87Cj4+Pj4+ICsgICAgc3RydWN0IGFtZGdwdV9zYV9ibyAq Ym87Cj4+Pj4+ICAgICAgICBsb25nIHI7Cj4+Pj4+Cj4+Pj4+ICAgICAgICByID0gYW1kZ3B1X3Zj bl9kZWNfZ2V0X2NyZWF0ZV9tc2cocmluZywgMSwgJmJvKTsKPj4+Pj4gLS0KPj4+Pj4gMi4yOS4y Cj4+Pj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4+PiBodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91 cmw9aHR0cHMlM0ElMkYlMkZsaXN0cy5mcmVlZGVza3RvcC5vcmclMkZtYWlsbWFuJTJGbGlzdGlu Zm8lMkZhbWQtZ2Z4JmFtcDtkYXRhPTA0JTdDMDElN0NjaHJpc3RpYW4ua29lbmlnJTQwYW1kLmNv bSU3QzllNmFlNTdkMWUxNTQ2NWYzMzFiMDhkOGI2NDI2YzJjJTdDM2RkODk2MWZlNDg4NGU2MDhl MTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzQ1OTc0MzcxMDg2NTY1OCU3Q1Vua25vd24lN0NU V0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklr MWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT1pd0YzdkhTVSUyQmRuV1E1SDFo OThZMkNnY3VrQzFTQmkzdkZIZG9MOFlTTkUlM0QmYW1wO3Jlc2VydmVkPTAKPj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gYW1kLWdmeCBtYWlsaW5n IGxpc3QKPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9uYW0xMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlzdHMu ZnJlZWRlc2t0b3Aub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGYW1kLWdmeCZhbXA7ZGF0YT0w NCU3QzAxJTdDY2hyaXN0aWFuLmtvZW5pZyU0MGFtZC5jb20lN0M5ZTZhZTU3ZDFlMTU0NjVmMzMx YjA4ZDhiNjQyNmMyYyU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdDMCU3QzAl N0M2Mzc0NTk3NDM3MTA4NjU2NTglN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3 TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdD MTAwMCZhbXA7c2RhdGE9aXdGM3ZIU1UlMkJkbldRNUgxaDk4WTJDZ2N1a0MxU0JpM3ZGSGRvTDhZ U05FJTNEJmFtcDtyZXNlcnZlZD0wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ft ZC1nZngK