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.4 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 8AB8FC433E0 for ; Fri, 5 Feb 2021 08:47:06 +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 F2C1061606 for ; Fri, 5 Feb 2021 08:47:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F2C1061606 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 40F176E0AA; Fri, 5 Feb 2021 08:47:05 +0000 (UTC) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2046.outbound.protection.outlook.com [40.107.93.46]) by gabe.freedesktop.org (Postfix) with ESMTPS id A54BB6E0AA for ; Fri, 5 Feb 2021 08:47:04 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VE20xaYq5Kz1w5oxaMvxP9A0oS9CK+p8kruHevjhcZyskfSSmrbLcMjx7934SdnAvkhx5JQGtmApwvhuFGw8VUE3YFFJrw9PedmbUSYdeyFDj6b8rUDMXcRQhj7dpZf40sfW8kTwbEqIohzfMJqmmf+PAmeiYpSzHww7lCvUPygtEpvMwIfOf5vxVVESViGZK9WRYDWM846FtloHjg01yGf7aIDGUf0S+NkLMucUF7DZvD+b84k6912Sdplu8FQ4vRAoCfRpwXVd5wUmwc7q7mF3EBpXtau2irSvW83vFXOk0IDvMdvbvnABAtFrPoOgAYT5EQfPq+zDRJADS9B/qw== 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=PVnwuWvSaJi7gKWNowvjs6bBtf98dxvM09LldPsbdFM=; b=ifVmW4XXH4CHiPP0L6/pEaxU+1tf5eTmRoLZh0fPP354DFEqh0TJ9Cc/jthU+BrGMfFBcfDFiTLV5MVKOu8OV4FaVRUqeEqD1fJdhSeC+Bk3y3a0XXl6z8OrJJ3QYvAAfXUUmFWD4UNBDoV9ARE7qintyKAA1UO8WkqasykVuOSMNRlNfV4zLA75BxFV5mFA7pbCB+yl1GNAqOhIjkAKxlx4Be21tbDm01Yj2+yMb0vexqAoC8JujqHEg1CE7Jq3fa9JtTw7hgnTO2uB+nrDg8eioUP93k3FJiHaDShteMt2YacqndYt062hoGtTncHg3QT7dl2MowtEThYNBPz+ZQ== 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=PVnwuWvSaJi7gKWNowvjs6bBtf98dxvM09LldPsbdFM=; b=4cgzdVQ7P1B3d8O6MZ1aa4MvLQXJWjHgmkcwrZ4mqgnL58kVdaXiAev7TB48H9xccxWREPFhcYd8l9QH9cnCKk8eb33qixKiXk8Obz3u71BSe36SDedEB1WMwfI/HbEIkN2eo6S58aaJ239Kvl9J4S4aRaGdDCbT2CAMi9Msd84= 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 BL0PR12MB2419.namprd12.prod.outlook.com (2603:10b6:207:44::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.20; Fri, 5 Feb 2021 08:47:01 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::c1ff:dcf1:9536:a1f2]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::c1ff:dcf1:9536:a1f2%2]) with mapi id 15.20.3825.023; Fri, 5 Feb 2021 08:47:01 +0000 Subject: Re: [RFC][PATCH v6 1/7] drm: Add a sharable drm page-pool implementation To: John Stultz , lkml References: <20210205080621.3102035-1-john.stultz@linaro.org> <20210205080621.3102035-2-john.stultz@linaro.org> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <4471b3b0-603e-6dbb-8064-ff4a95afbba9@amd.com> Date: Fri, 5 Feb 2021 09:46:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20210205080621.3102035-2-john.stultz@linaro.org> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM0PR02CA0018.eurprd02.prod.outlook.com (2603:10a6:208:3e::31) 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 AM0PR02CA0018.eurprd02.prod.outlook.com (2603:10a6:208:3e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.19 via Frontend Transport; Fri, 5 Feb 2021 08:46:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 354ff368-24c6-42c4-41c8-08d8c9b29af4 X-MS-TrafficTypeDiagnostic: BL0PR12MB2419: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +Momtrf1jpZhr9sXMolKl8LqowZ9I9r4kScZQsl+10fuDY0zfL0AmsEH/6ud583pqMp5YCLtXusGetzToSbOGjBlYUklwGsEVEJnuLIrSvM3a5hC7Cw3FJ5pZqDg0kVB/NbGWaZCN9mPTTXY+KrBGYeolS8+tdJjt7TbIGf215WfyEsOy0fIPAuN1fn9b+/NRTFXvIWMjS81FYVCHP0n+NYb1iX7XqWElW52W0+2X2XFFfjfcy+xPO5K/yicKO6iiZ3ieWJY/7D6xQxgv8yyJwCnGqP3JW23z/3F5rLjRWk9h9NYAVxjqkNhGoNnFpdIVRcnpDvDFK91Q/PPmPCvjL+uI+5rj+x/OX1Dhu5b2StieTNJpio5LIKk7BRnfsGeKJ+5dLEWwiDHX6/ekPjyT027U+8yWaYSqKHN1CZGncZSwSnzbNqabI8o35h5zEjqeSJ2F3NPuwMtBL8U9M+nM/wuF6M/CjOdflq3o/uLSpE26+AB3ztVsgGtuKGnZ0yDLKY3seG55iyTtD08WzCb1Mp2uJ0nOPRL811RVRq4edIa2lzJsTKuHcRjsdEeSoMd9lY1xS/XjNLB097V1rwt9JXHqPhzzI8CQscRe9n8WRE= 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)(346002)(136003)(366004)(376002)(39860400002)(6666004)(4326008)(8676002)(31686004)(16526019)(83380400001)(478600001)(86362001)(316002)(186003)(36756003)(66946007)(30864003)(110136005)(54906003)(66574015)(66476007)(52116002)(2906002)(6486002)(2616005)(31696002)(5660300002)(8936002)(66556008)(7416002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?U1B5bm1lYWFLenpBa2NuY2JERDljUWkxVnRucEEwSERWeFhIQ1JjNFBoU1pD?= =?utf-8?B?b1FoSmxuTHRNZC9mamZoSml5TzhYMWZsQ3FOdGlHa01hUEdaN1pWZnpFOE9T?= =?utf-8?B?RWpJbzRFdzIvbitwbDVwL1lnRzF0RWNucW9NMUd6dWs4SlRvV0psNiswSkRr?= =?utf-8?B?NHRQVDFvTWJzNWJJM2ZNeVFKVXU3MzVqWVZEdDZHRjhqbEdzVXducDlIUjFX?= =?utf-8?B?SGg2UUZqOWxmY2NBMnk3SHZLVFNHa1hTcGwycUdFWStnMU4xQTRLN2I3d2dh?= =?utf-8?B?TVVRVURwMTN0RkFxZVd6dENyU2w2MFZ2bDZFeW9pWGMxSFViTUJTSmkwTWd3?= =?utf-8?B?VFZ4SFVqN3hJUldtSmJHUkQrZS82UW1mY2NEaCsyZnZnMHhHbVdxQk5Ecm9O?= =?utf-8?B?NzYzcGc5OE1UMHlNZFd6dkpnUHF5VUx4L3BnbFdqQ3hxczhRWXF3KzNKRVQr?= =?utf-8?B?TGFsVDZWT09QeHlheFJFQVA5amlXOE40bXBrajFxK2dOeFkrUG5aTXoyeG5U?= =?utf-8?B?TlZEVzdqclFwRmdrSXh0RFhSSVg3TlI1SkpMc1BISmsrVkNLdjl1aHlWUW9t?= =?utf-8?B?MXBJWjZrM1V6M2ZvYWpPblR4bXpCd3VBVGFLQXR2UHRlMGVTZVhnRUtZMHRL?= =?utf-8?B?dUlJN2ZHL1NQeFd3VUd1RDMxR3ZUWFBFK2lNMzByL05YYUtRNVgwQWdnQThL?= =?utf-8?B?SVFVRWphQlZsUWZWb0MzQTIrdUNhMnpHdjlPNWhJamdoak9hVVBpMDIzNHBy?= =?utf-8?B?NkRrMFhQRVlkamZvcjUwZ0RtU29YeEU5UmkrMVUyYStOMzhMUFVQN3VNNFM1?= =?utf-8?B?K0FudG5yM0JXTTQ4YUVTWWZYby8yS0IxWWh3aktKMjVxaU1UeGRXWnBKVGlH?= =?utf-8?B?eG9zTjA3cmVLTmlpUGdsS2luNXA2SDVBODMyM2h6Tk5iVllnSFgrTGpPV20y?= =?utf-8?B?KzNiam1tY0dRMnNLU2hybS9lL0FwY3EyYklxWTZ3MWxPcWRKWFlTSEpWQmt5?= =?utf-8?B?Wkc4ZnpGaEhtc3FvSmhCTkVXcFFjZkJua2dnTWh3UitmLzFpSk9La3BvbnVY?= =?utf-8?B?N3Evc0hWL0ZUWjA4K1JDUTRHRi9SR2w5VGxLMHd5M2dRWjdscFArbUowSXha?= =?utf-8?B?cHJaQkpXeEozNjVBcVk2Y2JVMU1BdFJ2enlMTzBkMlAvaWVFRnN4TFo4cVAr?= =?utf-8?B?Nk1yemhtNWhRenVsYXFHdk9BY1hGVy9zVlRzeXhEM1FOWEdxdW1jeXNsR0RU?= =?utf-8?B?SlNMeTV6TlZQQVZybVRFVnNEbk0yMkxzME5FenVQKzRHekNRNnZBRFBGcGtE?= =?utf-8?B?LzgvVGFUelkyWjBkS016TURZYUpQNUNkSGJid2twSVlkNHBuWEVRdHF2cFM2?= =?utf-8?B?UnRDd2hYMUhQRVE4NnY4aUJ2SUtSWnFtK01uM0N3Y1FOcmtkK0J1U2pYcWo4?= =?utf-8?B?OVA3UjF6RWRFak0xU09MYlQxVXJVODY2L0JXVEtUQXZVU25ZeWtPcTFwUk1j?= =?utf-8?B?SjRtNTNzM0wycFl6dHovUGxnK01KNkRPenpmamFTbDloS1NKR3p3VXZkVzMy?= =?utf-8?B?MTU2azdobnBRWExFaGY1WjhWTnk2OEc4aUZVTWdobkxPSXd2T3VQVWJPOERD?= =?utf-8?B?UmtrVEdVY3VMWW0xdWJFMGgzaVRJa3gybjFURDNjNGk4bDZhMUpLSjFKNnRK?= =?utf-8?B?TjlxekRyRzhnckovbHNQT3NrN1BTTks1VDByellCYll6dG90ZWs5VW5pMWN6?= =?utf-8?B?WWtTVlRyS1dlUWt2VmkydndjR1ZGS0t1U0JabmprZG55VkRNRWF5aitLdUNp?= =?utf-8?B?Q3ArQ1pQamk0dWxhUDBYVGw0Ui90dEhxVHltM08yVURtYi9pVkdid01pS0pL?= =?utf-8?Q?PxmbTRmtMZu8O?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 354ff368-24c6-42c4-41c8-08d8c9b29af4 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2021 08:47:01.7393 (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: rDAdN3Qm2WkgUXbW+p5KocSClCUw/0yGnfGZ3UZdlwIWBPlrXOFWicgCPP/78xg3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB2419 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org, Sandeep Patil , Chris Goldsworthy , Ezequiel Garcia , Robin Murphy , James Jones , Liam Mark , Laura Abbott , Hridya Valsaraju , =?UTF-8?Q?=c3=98rjan_Eide?= , linux-media@vger.kernel.org, Suren Baghdasaryan , Daniel Mentz Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDUuMDIuMjEgdW0gMDk6MDYgc2NocmllYiBKb2huIFN0dWx0ejoKPiBUaGlzIGFkZHMgYSBz aHJpbmtlciBjb250cm9sbGVkIHBhZ2UgcG9vbCwgY2xvc2VseQo+IGZvbGxvd2luZyB0aGUgdHRt X3Bvb2wgbG9naWMsIHdoaWNoIGlzIGFic3RyYWN0ZWQgb3V0Cj4gYSBiaXQgc28gaXQgY2FuIGJl IHVzZWQgYnkgb3RoZXIgbm9uLXR0bSBkcml2ZXJzLgo+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRh bmllbEBmZndsbC5jaD4KPiBDYzogQ2hyaXN0aWFuIEtvZW5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPgo+IENjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgo+IENj OiBMaWFtIE1hcmsgPGxtYXJrQGNvZGVhdXJvcmEub3JnPgo+IENjOiBDaHJpcyBHb2xkc3dvcnRo eSA8Y2dvbGRzd29AY29kZWF1cm9yYS5vcmc+Cj4gQ2M6IExhdXJhIEFiYm90dCA8bGFiYm90dEBr ZXJuZWwub3JnPgo+IENjOiBCcmlhbiBTdGFya2V5IDxCcmlhbi5TdGFya2V5QGFybS5jb20+Cj4g Q2M6IEhyaWR5YSBWYWxzYXJhanUgPGhyaWR5YUBnb29nbGUuY29tPgo+IENjOiBTdXJlbiBCYWdo ZGFzYXJ5YW4gPHN1cmVuYkBnb29nbGUuY29tPgo+IENjOiBTYW5kZWVwIFBhdGlsIDxzc3BhdGls QGdvb2dsZS5jb20+Cj4gQ2M6IERhbmllbCBNZW50eiA8ZGFuaWVsbWVudHpAZ29vZ2xlLmNvbT4K PiBDYzogw5hyamFuIEVpZGUgPG9yamFuLmVpZGVAYXJtLmNvbT4KPiBDYzogUm9iaW4gTXVycGh5 IDxyb2Jpbi5tdXJwaHlAYXJtLmNvbT4KPiBDYzogRXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBj b2xsYWJvcmEuY29tPgo+IENjOiBTaW1vbiBTZXIgPGNvbnRhY3RAZW1lcnNpb24uZnI+Cj4gQ2M6 IEphbWVzIEpvbmVzIDxqYWpvbmVzQG52aWRpYS5jb20+Cj4gQ2M6IGxpbnV4LW1lZGlhQHZnZXIu a2VybmVsLm9yZwo+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gU2lnbmVk LW9mZi1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6QGxpbmFyby5vcmc+Cj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgfCAgIDQgKwo+ICAgZHJpdmVycy9ncHUvZHJtL01h a2VmaWxlICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9wYWdlX3Bvb2wuYyB8IDIyMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGluY2x1ZGUvZHJtL3BhZ2Vf cG9vbC5oICAgICB8ICA1NCArKysrKysrKysKPiAgIDQgZmlsZXMgY2hhbmdlZCwgMjc5IGluc2Vy dGlvbnMoKykKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcGFnZV9wb29s LmMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9wYWdlX3Bvb2wuaAo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25m aWcKPiBpbmRleCAwOTczZjQwOGQ3NWYuLmQxNmJmMzQwZWQyZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4gQEAg LTE3NCw2ICsxNzQsMTAgQEAgY29uZmlnIERSTV9EUF9DRUMKPiAgIAkgIE5vdGU6IG5vdCBhbGwg YWRhcHRlcnMgc3VwcG9ydCB0aGlzIGZlYXR1cmUsIGFuZCBldmVuIGZvciB0aG9zZQo+ICAgCSAg dGhhdCBkbyBzdXBwb3J0IHRoaXMgdGhleSBvZnRlbiBkbyBub3QgaG9vayB1cCB0aGUgQ0VDIHBp bi4KPiAgIAo+ICtjb25maWcgRFJNX1BBR0VfUE9PTAo+ICsJYm9vbAo+ICsJZGVwZW5kcyBvbiBE Uk0KPiArCj4gICBjb25maWcgRFJNX1RUTQo+ICAgCXRyaXN0YXRlCj4gICAJZGVwZW5kcyBvbiBE Uk0gJiYgTU1VCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9NYWtlZmlsZQo+IGluZGV4IGZlZmFmZjRjODMyZC4uODc3ZTAxMTFlZDM0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9NYWtlZmlsZQo+IEBAIC0zMiw2ICszMiw3IEBAIGRybS0kKENPTkZJR19BR1ApICs9IGRy bV9hZ3BzdXBwb3J0Lm8KPiAgIGRybS0kKENPTkZJR19QQ0kpICs9IGRybV9wY2kubwo+ICAgZHJt LSQoQ09ORklHX0RFQlVHX0ZTKSArPSBkcm1fZGVidWdmcy5vIGRybV9kZWJ1Z2ZzX2NyYy5vCj4g ICBkcm0tJChDT05GSUdfRFJNX0xPQURfRURJRF9GSVJNV0FSRSkgKz0gZHJtX2VkaWRfbG9hZC5v Cj4gK2RybS0kKENPTkZJR19EUk1fUEFHRV9QT09MKSArPSBwYWdlX3Bvb2wubwo+ICAgCj4gICBk cm1fdnJhbV9oZWxwZXIteSA6PSBkcm1fZ2VtX3ZyYW1faGVscGVyLm8KPiAgIG9iai0kKENPTkZJ R19EUk1fVlJBTV9IRUxQRVIpICs9IGRybV92cmFtX2hlbHBlci5vCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9wYWdlX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYWdlX3Bvb2wuYwo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yMTM5Zjg2ZTZjYTcK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhZ2VfcG9vbC5jCj4gQEAg LTAsMCArMSwyMjAgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKClBs ZWFzZSB1c2UgYSBCU0QvTUlUIGNvbXBhdGlibGUgbGljZW5zZSBpZiB5b3Ugd2FudCB0byBjb3B5 IHRoaXMgZnJvbSAKdGhlIFRUTSBjb2RlLgoKPiArLyoKPiArICogRFJNIHBhZ2UgcG9vbCBzeXN0 ZW0KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDIwIExpbmFybyBMdGQuCj4gKyAqCj4gKyAq IEJhc2VkIG9uIHRoZSBJT04gcGFnZSBwb29sIGNvZGUKPiArICogQ29weXJpZ2h0IChDKSAyMDEx IEdvb2dsZSwgSW5jLgo+ICsgKiBBcyB3ZWxsIGFzIHRoZSB0dG1fcG9vbCBjb2RlCj4gKyAqIENv cHlyaWdodCAoQykgMjAyMCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCj4gKyAqLwo+ICsK PiArI2luY2x1ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4K PiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgo+ICsjaW5jbHVkZSA8ZHJtL3BhZ2VfcG9v bC5oPgo+ICsKPiArc3RhdGljIExJU1RfSEVBRChwb29sX2xpc3QpOwo+ICtzdGF0aWMgREVGSU5F X01VVEVYKHBvb2xfbGlzdF9sb2NrKTsKPiArc3RhdGljIGF0b21pY19sb25nX3QgdG90YWxfcGFn ZXM7Cj4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIHBhZ2VfcG9vbF9tYXg7Cj4gK01PRFVMRV9QQVJN X0RFU0MocGFnZV9wb29sX21heCwgIk51bWJlciBvZiBwYWdlcyBpbiB0aGUgV0MvVUMvRE1BIHBv b2wiKTsKPiArbW9kdWxlX3BhcmFtKHBhZ2VfcG9vbF9tYXgsIHVsb25nLCAwNjQ0KTsKPiArCj4g K3ZvaWQgZHJtX3BhZ2VfcG9vbF9zZXRfbWF4KHVuc2lnbmVkIGxvbmcgbWF4KQo+ICt7Cj4gKwkv KiBvbmx5IHdyaXRlIG9uY2UgKi8KPiArCWlmICghcGFnZV9wb29sX21heCkKPiArCQlwYWdlX3Bv b2xfbWF4ID0gbWF4Owo+ICt9Cj4gKwo+ICt1bnNpZ25lZCBsb25nIGRybV9wYWdlX3Bvb2xfZ2V0 X21heCh2b2lkKQo+ICt7Cj4gKwlyZXR1cm4gcGFnZV9wb29sX21heDsKPiArfQo+ICsKPiArdW5z aWduZWQgbG9uZyBkcm1fcGFnZV9wb29sX2dldF90b3RhbCh2b2lkKQo+ICt7Cj4gKwlyZXR1cm4g YXRvbWljX2xvbmdfcmVhZCgmdG90YWxfcGFnZXMpOwo+ICt9Cj4gKwo+ICtpbnQgZHJtX3BhZ2Vf cG9vbF9nZXRfc2l6ZShzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqcG9vbCkKPiArewo+ICsJaW50IHJl dDsKPiArCj4gKwlzcGluX2xvY2soJnBvb2wtPmxvY2spOwo+ICsJcmV0ID0gcG9vbC0+Y291bnQ7 Cj4gKwlzcGluX3VubG9jaygmcG9vbC0+bG9jayk7CgpNYXliZSB1c2UgYW4gYXRvbWljIGZvciB0 aGUgY291bnQgaW5zdGVhZD8KCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGludCBkcm1fcGFnZV9wb29sX2ZyZWVfcGFnZXMoc3RydWN0IGRybV9wYWdl X3Bvb2wgKnBvb2wsCj4gKwkJCQkJCSAgICBzdHJ1Y3QgcGFnZSAqcGFnZSkKPiArewo+ICsJcmV0 dXJuIHBvb2wtPmZyZWUocGFnZSwgcG9vbC0+b3JkZXIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50 IGRybV9wYWdlX3Bvb2xfc2hyaW5rX29uZSh2b2lkKTsKPiArCj4gK3ZvaWQgZHJtX3BhZ2VfcG9v bF9hZGQoc3RydWN0IGRybV9wYWdlX3Bvb2wgKnBvb2wsIHN0cnVjdCBwYWdlICpwYWdlKQo+ICt7 Cj4gKwlzcGluX2xvY2soJnBvb2wtPmxvY2spOwo+ICsJbGlzdF9hZGRfdGFpbCgmcGFnZS0+bHJ1 LCAmcG9vbC0+aXRlbXMpOwo+ICsJcG9vbC0+Y291bnQrKzsKPiArCWF0b21pY19sb25nX2FkZCgx IDw8IHBvb2wtPm9yZGVyLCAmdG90YWxfcGFnZXMpOwo+ICsJc3Bpbl91bmxvY2soJnBvb2wtPmxv Y2spOwo+ICsKPiArCW1vZF9ub2RlX3BhZ2Vfc3RhdGUocGFnZV9wZ2RhdChwYWdlKSwgTlJfS0VS TkVMX01JU0NfUkVDTEFJTUFCTEUsCj4gKwkJCSAgICAxIDw8IHBvb2wtPm9yZGVyKTsKCkh1aSB3 aGF0PyBXaGF0IHNob3VsZCB0aGF0IGJlIGdvb2QgZm9yPwoKPiArCj4gKwkvKiBtYWtlIHN1cmUg d2UgZG9uJ3QgZ3JvdyB0b28gbGFyZ2UgKi8KPiArCXdoaWxlIChwYWdlX3Bvb2xfbWF4ICYmIGF0 b21pY19sb25nX3JlYWQoJnRvdGFsX3BhZ2VzKSA+IHBhZ2VfcG9vbF9tYXgpCj4gKwkJZHJtX3Bh Z2VfcG9vbF9zaHJpbmtfb25lKCk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX3BhZ2Vf cG9vbF9hZGQpOwo+ICsKPiArc3RhdGljIHN0cnVjdCBwYWdlICpkcm1fcGFnZV9wb29sX3JlbW92 ZShzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqcG9vbCkKPiArewo+ICsJc3RydWN0IHBhZ2UgKnBhZ2U7 Cj4gKwo+ICsJaWYgKCFwb29sLT5jb3VudCkKPiArCQlyZXR1cm4gTlVMTDsKCkJldHRlciB1c2Ug bGlzdF9maXJzdF9lbnRyeV9vcl9udWxsIGluc3RlYWQgb2YgY2hlY2tpbmcgdGhlIGNvdW50LgoK VGhpcyB3YXkgeW91IGNhbiBhbHNvIHB1bGwgdGhlIGxvY2sgaW50byB0aGUgZnVuY3Rpb24uCgo+ ICsKPiArCXBhZ2UgPSBsaXN0X2ZpcnN0X2VudHJ5KCZwb29sLT5pdGVtcywgc3RydWN0IHBhZ2Us IGxydSk7Cj4gKwlwb29sLT5jb3VudC0tOwo+ICsJYXRvbWljX2xvbmdfc3ViKDEgPDwgcG9vbC0+ b3JkZXIsICZ0b3RhbF9wYWdlcyk7Cj4gKwo+ICsJbGlzdF9kZWwoJnBhZ2UtPmxydSk7Cj4gKwlt b2Rfbm9kZV9wYWdlX3N0YXRlKHBhZ2VfcGdkYXQocGFnZSksIE5SX0tFUk5FTF9NSVNDX1JFQ0xB SU1BQkxFLAo+ICsJCQkgICAgLSgxIDw8IHBvb2wtPm9yZGVyKSk7Cj4gKwlyZXR1cm4gcGFnZTsK PiArfQo+ICsKPiArc3RydWN0IHBhZ2UgKmRybV9wYWdlX3Bvb2xfZmV0Y2goc3RydWN0IGRybV9w YWdlX3Bvb2wgKnBvb2wpCj4gK3sKPiArCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKPiArCj4g KwlpZiAoIXBvb2wpIHsKPiArCQlXQVJOX09OKCFwb29sKTsKPiArCQlyZXR1cm4gTlVMTDsKPiAr CX0KPiArCj4gKwlzcGluX2xvY2soJnBvb2wtPmxvY2spOwo+ICsJcGFnZSA9IGRybV9wYWdlX3Bv b2xfcmVtb3ZlKHBvb2wpOwo+ICsJc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOwo+ICsKPiArCXJl dHVybiBwYWdlOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9wYWdlX3Bvb2xfZmV0Y2gp Owo+ICsKPiArc3RydWN0IGRybV9wYWdlX3Bvb2wgKmRybV9wYWdlX3Bvb2xfY3JlYXRlKHVuc2ln bmVkIGludCBvcmRlciwKPiArCQkJCQkgICBpbnQgKCpmcmVlX3BhZ2UpKHN0cnVjdCBwYWdlICpw LCB1bnNpZ25lZCBpbnQgb3JkZXIpKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqcG9v bCA9IGttYWxsb2Moc2l6ZW9mKCpwb29sKSwgR0ZQX0tFUk5FTCk7CgpXaHkgbm90IG1ha2luZyB0 aGlzIGFuIGVtYmVkZGVkIG9iamVjdD8gV2Ugc2hvdWxkIG5vdCBzZWUgbXVjaCBkeW5hbWljIApw b29sIGNyZWF0aW9uLgoKPiArCj4gKwlpZiAoIXBvb2wpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ ICsJcG9vbC0+Y291bnQgPSAwOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnBvb2wtPml0ZW1zKTsKPiAr CXBvb2wtPm9yZGVyID0gb3JkZXI7Cj4gKwlwb29sLT5mcmVlID0gZnJlZV9wYWdlOwo+ICsJc3Bp bl9sb2NrX2luaXQoJnBvb2wtPmxvY2spOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnBvb2wtPmxpc3Qp Owo+ICsKPiArCW11dGV4X2xvY2soJnBvb2xfbGlzdF9sb2NrKTsKPiArCWxpc3RfYWRkKCZwb29s LT5saXN0LCAmcG9vbF9saXN0KTsKPiArCW11dGV4X3VubG9jaygmcG9vbF9saXN0X2xvY2spOwo+ ICsKPiArCXJldHVybiBwb29sOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9wYWdlX3Bv b2xfY3JlYXRlKTsKPiArCj4gK3ZvaWQgZHJtX3BhZ2VfcG9vbF9kZXN0cm95KHN0cnVjdCBkcm1f cGFnZV9wb29sICpwb29sKQo+ICt7Cj4gKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiArCj4gKwkvKiBS ZW1vdmUgdXMgZnJvbSB0aGUgcG9vbCBsaXN0ICovCj4gKwltdXRleF9sb2NrKCZwb29sX2xpc3Rf bG9jayk7Cj4gKwlsaXN0X2RlbCgmcG9vbC0+bGlzdCk7Cj4gKwltdXRleF91bmxvY2soJnBvb2xf bGlzdF9sb2NrKTsKPiArCj4gKwkvKiBGcmVlIGFueSByZW1haW5pbmcgcGFnZXMgaW4gdGhlIHBv b2wgKi8KPiArCXNwaW5fbG9jaygmcG9vbC0+bG9jayk7CgpMb2NraW5nIHNob3VsZCBiZSB1bm5l Y2Vzc2FyeSB3aGVuIHRoZSBwb29sIGlzIGRlc3Ryb3llZCBhbnl3YXkuCgo+ICsJd2hpbGUgKHBv b2wtPmNvdW50KSB7Cj4gKwkJcGFnZSA9IGRybV9wYWdlX3Bvb2xfcmVtb3ZlKHBvb2wpOwo+ICsJ CXNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKPiArCQlkcm1fcGFnZV9wb29sX2ZyZWVfcGFnZXMo cG9vbCwgcGFnZSk7Cj4gKwkJc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKPiArCX0KPiArCXNwaW5f dW5sb2NrKCZwb29sLT5sb2NrKTsKPiArCj4gKwlrZnJlZShwb29sKTsKPiArfQo+ICtFWFBPUlRf U1lNQk9MX0dQTChkcm1fcGFnZV9wb29sX2Rlc3Ryb3kpOwo+ICsKPiArc3RhdGljIGludCBkcm1f cGFnZV9wb29sX3Nocmlua19vbmUodm9pZCkKPiArewo+ICsJc3RydWN0IGRybV9wYWdlX3Bvb2wg KnBvb2w7Cj4gKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiArCWludCBucl9mcmVlZCA9IDA7Cj4gKwo+ ICsJbXV0ZXhfbG9jaygmcG9vbF9saXN0X2xvY2spOwo+ICsJcG9vbCA9IGxpc3RfZmlyc3RfZW50 cnkoJnBvb2xfbGlzdCwgdHlwZW9mKCpwb29sKSwgbGlzdCk7Cj4gKwo+ICsJc3Bpbl9sb2NrKCZw b29sLT5sb2NrKTsKPiArCXBhZ2UgPSBkcm1fcGFnZV9wb29sX3JlbW92ZShwb29sKTsKPiArCXNw aW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKPiArCj4gKwlpZiAocGFnZSkKPiArCQlucl9mcmVlZCA9 IGRybV9wYWdlX3Bvb2xfZnJlZV9wYWdlcyhwb29sLCBwYWdlKTsKPiArCj4gKwlsaXN0X21vdmVf dGFpbCgmcG9vbC0+bGlzdCwgJnBvb2xfbGlzdCk7CgpCZXR0ZXIgdG8gbW92ZSB0aGlzIHVwLCBk aXJlY3RseSBhZnRlciB0aGUgbGlzdF9maXJzdF9lbnRyeSgpLgoKPiArCW11dGV4X3VubG9jaygm cG9vbF9saXN0X2xvY2spOwo+ICsKPiArCXJldHVybiBucl9mcmVlZDsKPiArfQo+ICsKPiArc3Rh dGljIHVuc2lnbmVkIGxvbmcgZHJtX3BhZ2VfcG9vbF9zaHJpbmtfY291bnQoc3RydWN0IHNocmlu a2VyICpzaHJpbmtlciwKPiArCQkJCQkJc3RydWN0IHNocmlua19jb250cm9sICpzYykKPiArewo+ ICsJdW5zaWduZWQgbG9uZyBjb3VudCA9ICBhdG9taWNfbG9uZ19yZWFkKCZ0b3RhbF9wYWdlcyk7 Cj4gKwo+ICsJcmV0dXJuIGNvdW50ID8gY291bnQgOiBTSFJJTktfRU1QVFk7Cj4gK30KPiArCj4g K3N0YXRpYyB1bnNpZ25lZCBsb25nIGRybV9wYWdlX3Bvb2xfc2hyaW5rX3NjYW4oc3RydWN0IHNo cmlua2VyICpzaHJpbmtlciwKPiArCQkJCQkgICAgICAgc3RydWN0IHNocmlua19jb250cm9sICpz YykKPiArewo+ICsJaW50IHRvX3NjYW4gPSBzYy0+bnJfdG9fc2NhbjsKPiArCWludCBucl90b3Rh bCA9IDA7Cj4gKwo+ICsJaWYgKHRvX3NjYW4gPT0gMCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlk byB7Cj4gKwkJaW50IG5yX2ZyZWVkID0gZHJtX3BhZ2VfcG9vbF9zaHJpbmtfb25lKCk7Cj4gKwo+ ICsJCXRvX3NjYW4gLT0gbnJfZnJlZWQ7Cj4gKwkJbnJfdG90YWwgKz0gbnJfZnJlZWQ7Cj4gKwl9 IHdoaWxlICh0b19zY2FuID49IDAgJiYgYXRvbWljX2xvbmdfcmVhZCgmdG90YWxfcGFnZXMpKTsK PiArCj4gKwlyZXR1cm4gbnJfdG90YWw7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3Qgc2hyaW5r ZXIgcG9vbF9zaHJpbmtlciA9IHsKPiArCS5jb3VudF9vYmplY3RzID0gZHJtX3BhZ2VfcG9vbF9z aHJpbmtfY291bnQsCj4gKwkuc2Nhbl9vYmplY3RzID0gZHJtX3BhZ2VfcG9vbF9zaHJpbmtfc2Nh biwKPiArCS5zZWVrcyA9IDEsCj4gKwkuYmF0Y2ggPSAwLAo+ICt9Owo+ICsKPiAraW50IGRybV9w YWdlX3Bvb2xfaW5pdF9zaHJpbmtlcih2b2lkKQo+ICt7Cj4gKwlyZXR1cm4gcmVnaXN0ZXJfc2hy aW5rZXIoJnBvb2xfc2hyaW5rZXIpOwo+ICt9Cj4gK21vZHVsZV9pbml0KGRybV9wYWdlX3Bvb2xf aW5pdF9zaHJpbmtlcik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vcGFnZV9wb29sLmggYi9pbmNsdWRlL2RybS9wYWdlX3Bvb2wuaAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi40N2UyNDBiMmJjNjkKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9kcm0vcGFnZV9wb29sLmgKPiBAQCAtMCwwICsx LDU0IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVCAqLwo+ ICsvKgo+ICsgKiBDb3B5cmlnaHQgMjAyMCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCj4g KyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiAr ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAo+ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPiArICogT1RIRVIgTElBQklMSVRZLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gKyAqIEFS SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUgo+ICsgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4g KyAqIEF1dGhvcnM6IENocmlzdGlhbiBLw7ZuaWcKPiArICovCj4gKwo+ICsjaWZuZGVmIF9EUk1f UEFHRV9QT09MX0hfCj4gKyNkZWZpbmUgX0RSTV9QQUdFX1BPT0xfSF8KPiArCj4gKyNpbmNsdWRl IDxsaW51eC9tbXpvbmUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2xsaXN0Lmg+Cj4gKyNpbmNsdWRl IDxsaW51eC9zcGlubG9jay5oPgo+ICsKPiArc3RydWN0IGRybV9wYWdlX3Bvb2wgewo+ICsJaW50 IGNvdW50Owo+ICsJc3RydWN0IGxpc3RfaGVhZCBpdGVtczsKPiArCj4gKwlpbnQgb3JkZXI7Cj4g KwlpbnQgKCpmcmVlKShzdHJ1Y3QgcGFnZSAqcCwgdW5zaWduZWQgaW50IG9yZGVyKTsKPiArCj4g KwlzcGlubG9ja190IGxvY2s7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cj4gK307Cj4gKwo+ ICt2b2lkIGRybV9wYWdlX3Bvb2xfc2V0X21heCh1bnNpZ25lZCBsb25nIG1heCk7Cj4gK3Vuc2ln bmVkIGxvbmcgZHJtX3BhZ2VfcG9vbF9nZXRfbWF4KHZvaWQpOwo+ICt1bnNpZ25lZCBsb25nIGRy bV9wYWdlX3Bvb2xfZ2V0X3RvdGFsKHZvaWQpOwo+ICtpbnQgZHJtX3BhZ2VfcG9vbF9nZXRfc2l6 ZShzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqcG9vbCk7Cj4gK3N0cnVjdCBwYWdlICpkcm1fcGFnZV9w b29sX2ZldGNoKHN0cnVjdCBkcm1fcGFnZV9wb29sICpwb29sKTsKPiArdm9pZCBkcm1fcGFnZV9w b29sX2FkZChzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqcG9vbCwgc3RydWN0IHBhZ2UgKnBhZ2UpOwo+ ICtzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqZHJtX3BhZ2VfcG9vbF9jcmVhdGUodW5zaWduZWQgaW50 IG9yZGVyLAo+ICsJCQkJCSAgIGludCAoKmZyZWVfcGFnZSkoc3RydWN0IHBhZ2UgKnAsIHVuc2ln bmVkIGludCBvcmRlcikpOwo+ICt2b2lkIGRybV9wYWdlX3Bvb2xfZGVzdHJveShzdHJ1Y3QgZHJt X3BhZ2VfcG9vbCAqcG9vbCk7Cj4gKwo+ICsjZW5kaWYKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=