From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AC3ACFF885A for ; Mon, 4 May 2026 07:14:19 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BF30510E396; Mon, 4 May 2026 07:14:18 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="XZjDas2O"; dkim-atps=neutral Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010068.outbound.protection.outlook.com [52.101.56.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id AFA6210E396 for ; Mon, 4 May 2026 07:14:17 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gq10awCoJJKWUeWc0PE5Ip6Ml365LQ++qnr00yQsnBisU2/RPCUfyrZzToMpRjFmwTS2JfFzq7H5NDgovSVz9KUT8AfI4ky1pR+o6iSjjjMx3mjL5j+ZULRDcHQgKUSJUmVuhkkPcd7fTc5x4d7HolkJfpmWdZ6d7OPyoR/BCQyK/1+pOBjAU+qS/QXQdqMjX/rtdPppY9YERtmZe5WQvKQF2hdluCSit34qyZfU6MNTGHUheUwbIEwighMllJj9PtzHjavDGz8tojiHzM4EExHMF+dgmIgpoYYwa+7hHOYa9w+zfwN7lFqSc0XXs2gcbAzrqalyGmg79uWQMpSzBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LNbYfKTDh8lupKfUI5nB6tm8EchhiVPSTMZ6+Xt9Ad0=; b=cdxDma+p9Ref/w1byHoWwxoYH+pA9Et1nXiXdrzoMk6vL8WJ4s8ViQUtZDXEbyoE41pq9jBYQiwncckOl+ibZGpnVR2bJm0efgsTKf8sATUe9HpAfY46b9001u3K8hFP/1r1PbEkIn/AIoMioyCW3pzkdmrJtESEMPShXT/L/UgbwMdjxGZUOPIvXZiQqHeW5cZJMLoI/6wejmEtUWBUIgjvd5RxDOzhX22r3TVEbvPO4H6SyllrmhQaozezLwZ2egT8YawGhVCUyCXdPY2zJUlj8zEn1baYhjh1Mnj5CqzyBJUhiaFF+FxDF0KCHjxX9uCUSuWmKSW7Aunjscd+bg== 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=LNbYfKTDh8lupKfUI5nB6tm8EchhiVPSTMZ6+Xt9Ad0=; b=XZjDas2OOov17NjE+Vb4hDNp3tO/LS5Aj4QW/Fwwr3rI99iW5uectTpPMQ31q3EgGYnn0utZd5ZUuvlB0udmWuXtDE96DhL3XSd0R/LynX+7M6E+iHJocfS2JeBAegEc1J2MuBp45OtaKavg+Kt0XZlbfgAm8jwT+JwGoSCAvzA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by PH8PR12MB7375.namprd12.prod.outlook.com (2603:10b6:510:215::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Mon, 4 May 2026 07:14:13 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c%5]) with mapi id 15.20.9870.023; Mon, 4 May 2026 07:14:13 +0000 Message-ID: <4c9c9840-944d-4736-a55a-74f5c05b528c@amd.com> Date: Mon, 4 May 2026 09:14:04 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 01/10] file: add callback for creating long-term dmabuf maps To: Pavel Begunkov , Jens Axboe , Keith Busch , Christoph Hellwig , Sagi Grimberg , Alexander Viro , Christian Brauner , Andrew Morton , Sumit Semwal , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-fsdevel@vger.kernel.org, io-uring@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org Cc: Nitesh Shetty , Kanchan Joshi , Anuj Gupta , Tushar Gohad , William Power , Phil Cayton , Jason Gunthorpe References: <6cce2f4d-7400-4618-82ce-cbd5004c92a4@gmail.com> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <6cce2f4d-7400-4618-82ce-cbd5004c92a4@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: FR4P281CA0060.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:cc::20) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|PH8PR12MB7375:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ca7ef87-0d2d-4c0a-88b1-08dea9acbe65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|1800799024|18002099003|921020|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: 2r9jki0x8EOX/9SyWv65hye/iYyg2KP34dx3y5KvqmRMEStLAOPDrJzhJKeMdSVKF1xdzu0Rw1LXoEOJ39LDHpxEBfVXot9D88Ig/b1V+sRECoI3kSL1WShfWTeI6++YvB4LEgpomagrNITjY6S+wW3bZKD2eOmdQ8ZZzgoLOAQSQjUFPvJF0Y/cdzoIkyQ8Ec09nKZqfOtdAgo/1QbroHc3Xgf+iPa5PG5oxCTTfyYG1WPvpWHKivHMCd2BExKlsCxvducIYEpY2YGksuBWemnigytY7QdUsTwHy6AgxcDzEXF4RgMcCgm7/amBCYuP+icjFr0PNYyLFaieR+W6XXFAuGLQlQLcdwxd4t7HVn6KF6bbPaLB7h+9CZU51XtLfpr86+H5UPxZej75UdaRKwMq+BE+lwo36uAulKwR3TAPPhNiQoVOgw3poSEKjKhAd0eIGtOd76eBI4CPyPRAJW68P/hXE0hNOqlhrCIi73kebNfcFiCg4EuY1C7LnbRRgOfUv5wsHiDuzH8/55coDs6nx7hyOmmXZaKBrn3X9oZQFjUkogQxdUHuukWco/eEIOzTsPxageMt+zHIc21shI2SZ+SMCCOd5aXu/nq+z3w3jKF29LsbdeUkiAY5273/3fyy7ViIdfdLTRbqTkeYCrsCQHmD2xZ66mcGIk/cYkT/0+JAbnc5nR45rH3z2M79Z1Xi+jEqaiSVy2J1B95awYr+WfXjs64fWKm7//AjwFw= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR12MB5685.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(1800799024)(18002099003)(921020)(56012099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWs4QXBYbm53VTErcE1OODQxTWlEZmhzaWZiZDJUcnNnajl3UXhhcW1iRGk2?= =?utf-8?B?cjVLVWkvMlNZRHJvWm5VNzVpZzlyMHNkYi9DSTBwb1pWQngwRFFFM2ZZc3JS?= =?utf-8?B?UTJoUHdmQm5EM2kzWDRaU0tGNzhFVC9Rb3Eyb1F1cW81MjFCWE9yR1JMeFoz?= =?utf-8?B?S2Rqbk9DWGJuNXFzRGE3V2RyRi95ODlZeGRHUVoreHM1N0NLTmJCTHNmNnEz?= =?utf-8?B?cW9qdDZraEdKSFUzZVlQd1hObWxCSzJBQVJjZFBpdk9rTlhxWjZNM3lpblBP?= =?utf-8?B?TDNrRktwblpoU1Z4T3RrcGhWK1ROaWRMYm9ucUdiQXBMWnBLU2R1d2hlRllw?= =?utf-8?B?WW1HWUZNekVDUVF4WnFYOUw5L1dKMlVBc2ZWeG1jdXhDQUZHSCtneWFoUGw2?= =?utf-8?B?RWdQLzdQVGxJS0ptS3RLYlBrMHNEb3hBekl6MHkraUZ4L0p5Q1hnM0Fqcmll?= =?utf-8?B?dEJ5U1Q3alF1bUF1UVVDaWtiUmhNRHEvNVdRQ0tsTFVnaXdaaFEvSTN2WGZO?= =?utf-8?B?NThQMmFlazlkNlZ1eEFpcEc2Y3YrWkxoOTFnQVBZTFBYTjZjZi96S2s1d0Fy?= =?utf-8?B?NDNvaURjTWcrelVjSHdvOUswOTcvNk4xNDE1TEwrdTZHcHh0Z21lckkwY2Rw?= =?utf-8?B?eW5weFlmVzc1WVQ5NVE3NlhJOWl3M1ErMVNQUzNreUhnakgxLytKTHZDZEVj?= =?utf-8?B?aFE0NFdxZnBibGNyYjNLSUdhZWlGR2t1ek1WVGRzSG9MRmMrZk00MlgrT0tI?= =?utf-8?B?V3RteU8xQzlWU2h3THFkdFpHMHEzV3BpSE5hY0VjYVQyMkU1MjY4UW4rWUk3?= =?utf-8?B?NjRncURsZWdUVVJ0VlBiTFc2SzhTVitMV2VmbDllU1ZZWWU5aHg2a3VFOSsr?= =?utf-8?B?cVc5SXQ2SFVMdjBwQ0hpeFc1T2xsYlJKVDZ3TGFyc1kyaXFwVXp2NXV2MTJQ?= =?utf-8?B?YWkrWmszcVpDelpEWEFhTDRDb2RBQlVaT0lxWTVnQjJmZ1M2eWdkcTZIRm9J?= =?utf-8?B?ZXVyTGxMOXIwdFgxMmhVY2g3a2UvNFBOcmxqUFZiY25QaHoveDRmdGtlQ29p?= =?utf-8?B?UXFJK2k0ZXFRUk95L0dNeW5JSlBKVHFDa3FSSVR0VzF4VmVXNlhwTjZLRnZK?= =?utf-8?B?QTZSRWFTZTlqRHFLcUFiOTFlTjl5eWlrK3l6VUZHdnloL3hKZGo3UFlmNmZr?= =?utf-8?B?eFdOUFBhVDFGY3hNbGp1ZHpERExvWXVpQlhoVDIzL0dQSjFKdng2a29NdkZz?= =?utf-8?B?QWVScVVrMk03Y1BWSzlPc2tGbndwSkRGc09jQXZ6ei94Um4raFc4NlpoRkkw?= =?utf-8?B?dmh3SXYrVEZGMk9MbFUrY3dEUUF5cS9pTU9mdHYwTUV3M1hkYnZkeEYvNW9Q?= =?utf-8?B?WkFXY0tPL3pscm9oK3hvTnNPaFlwQnZnNlhYQTM2ejZxbEpWbEpleW5ibVNQ?= =?utf-8?B?V2JnUnF2bGk5YjB3QXhhZTBmLzBTaUtiSFEwMkZNZFlQRjJZQ3hWTVNoWWZW?= =?utf-8?B?RllwZFQ4ekczMDRiNGpVRlJMRE1aWFRaZTJ5ZlN4K0RtdHEraTk2cVJEN2J1?= =?utf-8?B?VGVCTGg3d1prNzhSaWNYVk0xQmpjaDgrd1VCZWtXcE5OQTFZdk9EdG45SUhD?= =?utf-8?B?NFl3aVJPOGNSTkoybUUyUDVkNGpta0d6V0kwQUdJaVNsWjk0VVBlWFVHeGpJ?= =?utf-8?B?M0dHRWNMZ0FGNEpxSmg0KzUwM1JEZyt3MmRVU1dhQW1xSk5ZWTlJN3ZSbFdk?= =?utf-8?B?KzRzSWFTMElGMDNYUW1CdlRHUHNXNmtxTnArdmhLS3NyajByQVhzazVWWmta?= =?utf-8?B?eW5JbXNac0VRamNobWZCMUpGWVFOYW93UUhXYnFoUXdYWmxscXF5SlVCUS9s?= =?utf-8?B?U0d4NjRVWWJPc2FIbkFLUUpraDdGdjZjQXU5SUk5YXBKWmoyYlJlUjRDekU5?= =?utf-8?B?RGhQNE9MRXZzSFA0SlRMUWtYZW5UTnZJb3RuSXM5VW02T2pndWRjWWp2bWNV?= =?utf-8?B?V3JTSUR1alNhUTdQK0RUY25kZjVKdnJRM2EybVJ1WlJDWEJuaXhOUnNFOE5n?= =?utf-8?B?SFBlcEgzZWZyS0NKbTVxVDdPcUswdEdNbXZKS20yMGRHZlV5NS90YVNOQ1Ba?= =?utf-8?B?UzJJT2dDYm1XdlVhcUg1S21VMEdTT1NHcXpMcitvZ1h1eHE3T0hIaVNDcXdh?= =?utf-8?B?aGgyVTNMVUFCRFFDUHB5aHlUYzRiTFQ0L1pFTHo4cTNoUmdHWXI0UmxlVmZU?= =?utf-8?B?SnJEb21ucVVOUHBuTW9iejM3R01oRTFLc2gzd3ZsV2pSbW51RVdjSDN5Zi9t?= =?utf-8?Q?lRCiD467FpyX1dqcfx?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ca7ef87-0d2d-4c0a-88b1-08dea9acbe65 X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2026 07:14:12.9675 (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: atoJyTpYzmKoD0wWHoKmRA5jtrN7JUjk5umOY7ZM0839xrt752Z9O+2B30jxhv5W X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7375 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gNC8zMC8yNiAyMDozMywgUGF2ZWwgQmVndW5rb3Ygd3JvdGU6Cj4gT24gNC8zMC8yNiAwNzow MywgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4gT24gNC8yOS8yNiAxNzoyNSwgUGF2ZWwgQmVn dW5rb3Ygd3JvdGU6Cj4+PiBJbnRyb2R1Y2UgYSBuZXcgZmlsZSBjYWxsYmFjayB0aGF0IGFsbG93 cyBjcmVhdGluZyBsb25nLXRlcm0gZG1hCj4+PiBtYXBwaW5nLiBBbGwgbmVjZXNzYXJ5IGluZm9y bWF0aW9uIHRvZ2V0aGVyIHdpdGggYSBkbWFidWYgd2lsbCBiZSBwYXNzZWQKPj4+IGluIHRoZSBz ZWNvbmQgYXJndW1lbnQgb2YgdHlwZSBzdHJ1Y3QgaW9fZG1hYnVmX3Rva2VuLCB3aGljaCB3aWxs IGJlCj4+PiBkZWZpbmVkIGluIGZvbGxvd2luZyBwYXRjaGVzLgo+Pgo+PiBXZWxsIGZpcnN0IG9m IGFsbCB0aGUgbmFtaW5nIGlzIHByb2JhYmx5IG5vdCB0aGUgYmVzdC4gTWF5YmUgcmF0aGVyIGNh bGwgdGhhdCBkbWEtYnVmIGF0dGFjaG1lbnQgb3IgY29udGV4dCBvciBtYXBwcGluZy4KPiAKPiAi TWFwcGluZyIgb3IgImF0dGFjaG1lbnQiIHdvdWxkIGJlIGNvbmZ1c2luZyBhcyBtYXBzIGFyZSBj cmVhdGVkIGxhemlseQo+IHRvZ2V0aGVyIHdpdGggc3RydWN0IGlvX2RtYWJ1Zl9tYXAuIEkgY2Fu IG5hbWUgaXQgY3JlYXRlX2RtYWJ1Zl9jdHgoKSwKPiBidXQgSSBkZWNpZGVkIHRvIHVzZSAidG9r ZW4iIG5vdCB0byBjb2xsaWRlIHdpdGggZG1hYnVmIHRlcm1pbm9sb2d5Lgo+IGUuZy4gSSB3b3Vs ZG4ndCBiZSBzdXJwcmlzZWQgdG8gc2VlIHNvbWUgZG1hYnVmIGN0eCBpbiB0aGUgZG1hYnVmCj4g aW1wbGVtZW50YXRpb24gY29kZS4gTWF5YmUgIippb19jdHgiIHdvdWxkIGJlIGJldHRlci4KCkNv bnRleHQgb3IgY3R4IHNvdW5kcyBmaW5lIHRvIG1lLiBJSVJDIHdlIGRvbid0IGhhdmUgYSBjb250 ZXh0IGluIHRoZSBETUEtYnVmIHN1YnN5c3RlbSB5ZXQuCgpCdXQgd2UgZG8gaGF2ZSB0aGUgdGVy bWlub2xvZ3kgY29udGV4dCBpbiBvdGhlciBzdWJzeXN0ZW1zIGFuZCBjb21wb25lbnRzIHdoaWNo IGJ1aWxkIG9uIHRvcCBvZiBETUEtYnVmIHNpbWlsYXIgdG8gdGhpcyBwYXRjaCBzZXQgaGVyZS4g U28gSSB0aGluayB0aGF0IGlzIGEgcHJldHR5IGdvb2QgbWF0Y2guCgo+IAo+PiBUaGVuIHRoZSBw YXRjaCBzaG91bGQgcHJvYmFibHkgZGVmaW5lIHRoZSBmdWxsIGludGVyZmFjZSBhbmQgbm90IGp1 c3QgYWRkIHRoZSBjYWxsYmFjayBoZXJlIGFuZCB0aGVuIHRoZSBzdHJ1Y3R1cmUgaW4gYSBmb2xs b3cgdXAgcGF0Y2guCj4gCj4gSSBzdHJvbmdseSBwcmVmZXIgc3BsaXR0aW5nIHBhdGNoZXMgc28g dGhhdCB0aGV5IHRvdWNoIG9uZSB0cmVlIGF0Cj4gYSB0aW1lIHdoZW5ldmVyIHBvc3NpYmxlLgoK RXhhY3RseSB0aGF0IGlzIHdoYXQgeW91IHNob3VsZCAqbm90KiBkbyBhbmQgaXMgdGhlIGJhY2tn cm91bmQgcmVhc29uIHdoeSBJIGFzay4KCk1ha2luZyBjaGFuZ2VzIGluIGEgY29yZSBoZWFkZXIg bGlrZSBpbmNsdWRlL2xpbnV4L2ZzLmggdG8gYWRkIGEgbmV3IGludGVyZmFjZSBhbmQgdGhlbiBv bmx5IGxhdGVyIG9uIGV4cGxhaW5pbmcgaG93IHRoYXQgaW50ZXJmYWNlIHdvcmtzIGlzIHVzdWFs bHkgYSBwcmV0dHkgY2xlYXIgbm8tZ28gZm9yIHVwc3RyZWFtaW5nLgoKRWFjaCBwYXRjaCBzaG91 bGQgbWFrZSBvbmUgY29uc2lzdGVudCBjaGFuZ2UgYW5kIHVwc3RyZWFtIG1haW50YWluZXJzIHNv bWV0aW1lcyBldmVuIHJlcXVpcmUgdGhhdCB5b3UgZ2l2ZSBhbiB1c2VyIGZvciB0aGUgaW50ZXJm YWNlIGluIHRoZSBzYW1lIHBhdGNoLgoKPiB0YmgsIEkgZG9uJ3Qgc2VlIG11Y2ggb2YgYSBwcm9i bGVtIGl0IGJlaW5nCj4gbm90IGRlZmluZWQgYXMgaXQncyBqdXN0IGZvcndhcmRlZCBpbiBmaXJz dCBwYXRjaGVzLCBidXQgSSBjYW4gc2h1ZmZsZQo+IGl0IGFyb3VuZCBpbiB0aGUgc2VyaWVzIHNv IHRoYXQgZGVmaW5pdGlvbnMgY29tZSBmaXJzdC4KClRoYXQgaXMgbm90IHJlYWxseSBhIGdvb2Qg aWRlYSBlaXRoZXIuCgpBcyBmYXIgYXMgSSBjYW4gc2VlIGEgZ29vZCBvcmdhbml6YXRpb24gb2Yg dGhlIHBhdGNoZXMgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOgoKMS4gVGhlIEFQSSBi ZXR3ZWVuIGhpZ2hlciBsZXZlbCBhbmQgZmlsZXN5c3RlbS4gSW5jbHVkaW5nIGFsbCB0aGUgZnVu Y3Rpb25zLCBzdHJ1Y3R1cmVzLCBlbnVtcyBldGMuLiBuZWNlc3NhcnkgdG8gZ2l2ZSBldmVyeWJv ZHkgcmV2aWV3aW5nIGl0IGEgc29saWQgcGljdHVyZSBvZiB0aGUgZ2VuZXJhbCBpZGVhLgoKMi4g VGhlIGhpZ2hlciBsZXZlbC9mcm9udGVuZC91QVBJLiBBZ2FpbiBpbmNsdWRpbmcgYWxsIHRoZSBz dHVmZiBuZWNlc3NhcnkgdG8gZ2V0IGEgc29saWQgcGljdHVyZS4KCjMuIEV2ZW50dWFsbHkgdGhl IGdsdWUgY29kZSBiZXR3ZWVuICMxIGFuZCAjMi4gRGVwZW5kcyBvbiBpZiB5b3UgbmVlZCBpdCBv ciBub3QgdG8gdW5kZXJzdGFuZCB0aG9zZSBwYXRjaGVzIGluZGl2aWR1YWxseS4KCjQuIFRoZSBi YWNrZW5kIGltcGxlbWVudGF0aW9uLCB3aGljaCBlbmFibGVzIHRoZSBuZXcgZmVhdHVyZSBmb3Ig YSBzcGVjaWZpYyBmcyBhbmQvb3Igc3RvcmFnZSBkZXZpY2UuCgo1LiBVcGRhdGluZyBEb2N1bWVu dGF0aW9uL2ZpbGVzeXN0ZW1zL2FwaS1zdW1tYXJ5LnJzdCBhbmQgZXZlbnR1YWxseSBhZGRpbmcg YSBuZXcgZmlsZSB0byBleHBsYWluIGhvdyB0aGUgRE1BLWJ1ZiBpbnRlcmFjdGlvbiB3aXRoIHRo ZSBmcyBsYXllciB3b3Jrcy4KClJlZ2FyZHMsCkNocmlzdGlhbi4K