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 E24F8FF60FA for ; Tue, 31 Mar 2026 09:36:33 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9E78710E1A6; Tue, 31 Mar 2026 09:36:31 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="vWgs9z/Y"; dkim-atps=neutral Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011029.outbound.protection.outlook.com [52.101.62.29]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5670710E1A6; Tue, 31 Mar 2026 09:36:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V87u4J3UWim2ma98vnl8dZoTa5xlbMUHM/dGLSV68vb4WElxAdhGQAEi3ln98CJSLccXfC6nJozfzMtVZu3UTkU9vHLT3Arnw08AbhT7xeeYzd/n6tc7NV2+B8odLkb2tvB6B+geKQk6nCRvRdJg8OW2R+SFtgdzLG61ibnhiRhMLKmYMQk6vWyyRolG/WRNz9epAIHjBtDRJQpFoZKT+1niNYSDCtEPaFi4eKk2/IHUJL48hshg2KfUIQbTSdv+/v2oKun3oCmf4+fC4m5j4Au3fIH8miwyxMRE8uTNmz8qzdKJCMe9+TMZpD9W/tmOxLTsSs6fYKPhq32e2FO1XA== 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=oWsiqcjc2b7vHJHt6TQdpGCSlxffbfJX7tcsRyDo3qw=; b=F50oe/2cMVRHcR6N0f/18+fLcPWlPD0/IFlxiK8ij/woAc2JsZk8/YVekpaPSyj4uVxxr+Wc0wbjVkjLc6KHq8j27NO39A7JLpf7bL6Zp/B+dfKOrOk0oNDPbc49V60d/kqZ0/MBnLkbIhgydsG05aPhjYnkIZNWELfI8Y8Cbh5dyw4XKKzuVOmufaC3wW4JnTrgVMP8hG2/QBI77Djv2C7pHXoxz6NyR07DU5nsx3UTzilj9DFaFrZK7PywebJ7igf+GCTgraPt9YaBNWpe2iHrpCoZZYGl5+xJ4r0fubj8Qq3YvC0Iy5+wUmV9lqoH+/DnLXRb0kEBkVjA+DpAsQ== 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=oWsiqcjc2b7vHJHt6TQdpGCSlxffbfJX7tcsRyDo3qw=; b=vWgs9z/YTrqk/SdZLCr12oOFeEY7kOMKRC0b6G9DNj5yOyIWZIiOiQVrhBPI5lllsqURToPn2W8jRa3RbVKWwHgIs03i3Kl9ANMbuAJtrTqwj27PEIeDSKqyRUHmBDuC4490UjO//C8gjkgdLDMpyO/JBBcNp6WMVQeO9LJXQ7A= 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 SA3PR12MB7858.namprd12.prod.outlook.com (2603:10b6:806:306::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Tue, 31 Mar 2026 09:36:24 +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.9769.014; Tue, 31 Mar 2026 09:36:24 +0000 Message-ID: <4dd19e54-382c-4122-8dfa-1588099e08af@amd.com> Date: Tue, 31 Mar 2026 11:36:18 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/5] drm/msm: Remove abuse of drm_exec internals To: =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , intel-xe@lists.freedesktop.org Cc: Felix Kuehling , Alex Deucher , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Danilo Krummrich , Matthew Brost , Alice Ryhl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org References: <20260331092023.81616-1-thomas.hellstrom@linux.intel.com> <20260331092023.81616-3-thomas.hellstrom@linux.intel.com> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <20260331092023.81616-3-thomas.hellstrom@linux.intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: FR0P281CA0143.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::17) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|SA3PR12MB7858:EE_ X-MS-Office365-Filtering-Correlation-Id: 7ab62c28-14b2-4c0d-7efc-08de8f08f983 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|7416014|376014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: hHlqN5tYXsfQHRH35nWRGQUHrV7wkewKI3LMTcB0WSnW7a/UlIvAkINZDnY+QtVyl14QYJl2J+wC7RJ+lxpxRSQQJQuHLK3YGoSLycx2Wfx8IjSp7S86xRLcfJgq+VtLPUMmzk3x09Hz+rTQNDp/Qg6QSYciSsDOvr/QZrwCARy7MMBZIBTob05YToz3sIimKUzTBR5amMZRSil4tf8k3s/lhRzYTWIF7M6ye+wr6Q04EZUV7sfxohYCJvgmYPUiMT8qYmBhPncr8bg9A2Lk8+eKQFqT2UxBdjdaiPEpddoU/fG5pi25Y650bQpHGtqnyBz5zdhHL3HbL11NuCErT0dQkBS3Ovn7+YjXvN24Fc4ODOXW66HZjZo6fHd3UyHo/QTczlAb+3BjE7IcEgQRdEo2ofakslch8D5wCzp1iBuApAQ2crexniAj4F+gLxkDH4/ZeWvankRD5yxf0ZRtEoc055r/1DzyUNf5uh86cKWVl9xnZS67Gs8EQSwR4MV+zivzOJtNCXrq7wBz9HW1iDxucs6V4SPAYSyeUh5YZXLUH/KROoQvvaU06mEuYIcyjPCqCsmKErvmg2aYC0UDqYh1FqFLBwuQNpXFC2nBf4ifsIwQB1nwPwqAxiKph4SmclAphUVYU/ME2MagTd7dyABjpLTt8Etpew98ZZeeI6Zn4ojoB9Jh2ubQ1Z1up12U9e3kdCZnhA4Hg9YIcFvfVXC8TF1qFnuzmyI/Lmd0YSQ= 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)(1800799024)(366016)(7416014)(376014)(22082099003)(56012099003)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WTVDcU9oS1YzZUJVa0VrM3hwRWxRenlqTUs4cGZpYWlMaU56dHdFanFzSzcy?= =?utf-8?B?L2hLdVIreTdFZVdEUTUzMHh1NUNpcmNoN3daalFOcXZnRjZjaWdjeUttNnBX?= =?utf-8?B?VlFYRC9CZ0RjSHVtRGJYNEJpTGVzZ09La3VjQUJ3QzVzUy9Jc2UvMGVwSmpF?= =?utf-8?B?M2VraTBaZDFtcXVmRjZHQ2RKY0ZGcTMzMTVrQXBsYk9KT1FKRVdCTkNOeWFI?= =?utf-8?B?UERtWVJmNStZblBNRUZDL0VrYVRhcWViZVFuSnpMQjBCaTNCWFA4TTFVVC9E?= =?utf-8?B?WjVCazc3dHgzZEsxamRzR0JmblhYVXhPUXF6UXFSN0FrU0ttOWl2dkErSk5U?= =?utf-8?B?Mnd4djYzR01OZHZrNG1QSmkrYmJ2WGYxNU9JV3ZjK1QrRzdLS0VIWDZpNTNO?= =?utf-8?B?aWVteFNjOXlBZ2FlTkFhdDM4b0xBTi9UZWgrcWdnc09WcEVwMWhWdUxBNmtO?= =?utf-8?B?N2dDZG5yUVJkeW1PYmF5UnMvVWREMUhzWE9UclF4cFo0VEtFSnZyUmlEYzRG?= =?utf-8?B?MG5aQ3lzOGZwUWxwSFQvemRaZTNIYzRlbFRpYk1RRm84eE9RTVVqa056SnNk?= =?utf-8?B?Q2xiTElHTUo5WTVkZkJOL1RXSEdtOHV4UEpYL1VPS1RrdDh2eENiTUFlYWpi?= =?utf-8?B?MFlTeHh4ZWVia0EveHFEYzN1VmRDcVh2K2Zpck1KdTR4eG1Gb2k2RCtvakN1?= =?utf-8?B?RUNIR1lHMFlra1BZbTlKbEJkRTVVZ3h6N2hsdlhBOWRhUFVmV2MwR2F3NGFj?= =?utf-8?B?ekVFRnVwK1pqUWxSbFBKWEVMNjkwekpxenFVREMvUkNrS3p5TkJHSDJZd0ZV?= =?utf-8?B?cVI4VzBsdkxQUEhoeWgvS3A0SVFEVEdtODlGVTh4K1h6MEE4U1VWamVsazVS?= =?utf-8?B?TEVVbS9aczdsVzBtaUp0bEEzOXlESjNFTEoyTHZEZm1RZ3JiNTB1dWxmN1pu?= =?utf-8?B?VVdMb0Z2WWhJRHNHalJkdS90dXlXQXB3WkJmSDViOHEwQkxYbWhMQzhBVldy?= =?utf-8?B?aHJpV2Z5R2k0eGcvNHV0VHJJYXVGTmcrOTFvMThCNmpaSzdVUVh1UFNEWEw3?= =?utf-8?B?enVrMzBwNWdJR0VIYUZXd3lLUkhJSlBwVnF3TXcyRDZYT0gxT0g2VFpHdEtW?= =?utf-8?B?dkZMN210QkpGNkNlQS9rUC9iRDBKQmtvOHRNT29kNVZrbGlnTmF3SzJYVExI?= =?utf-8?B?cHNleUVJbmEvcTJMNDJLb05OL3RTSVRMQzkxVGFjeXl1MnV1ZFV3YzBydUJG?= =?utf-8?B?eFVsL1RFVXhrWllFOUliZWVSOWVyWm1wbWN3VmJOVzFwQW1pSFpMM1RKblJF?= =?utf-8?B?aW5FR3pGM1IwWUhTYTF1MTRnak1KeGdOQ3hjNTRhdFFrUFVoQ1E5YTlEQmd6?= =?utf-8?B?N3htclRwdG4wdHJ4eEJqaGxOc2hvZCs1M1MzQ0ZTV2tmRjRSUmZkc1IzTlRB?= =?utf-8?B?QXRSTnNKMlRiMitZQjlxK1dRU1Zna25CbUlaMElCVUE5TGFTRk1vb0Jpc3Jh?= =?utf-8?B?Rkh3UkZXeXY5Q3REK3Z4clpoWG9NazRHeW5kZUtZNUJpVWd5MWRzMjBlaVk0?= =?utf-8?B?dGwwMW5EVVlFekljYWNtQjFEUnRkbm12UEZVdk9lY3pMZ3RpTzFERGdDclp2?= =?utf-8?B?Y0FEdk5sd1g2anFlKzJDdVVFb0srdzVnK293b3ozRXRsdkZXeDJTVS9DV2Iw?= =?utf-8?B?cytGVTY3c3V4aDZEK2kwSmVHLzVxcGpqSTRhcFphd1Jkdm5uSXY2U2xibXBM?= =?utf-8?B?L3pxQVFjNTREcGFaSVBlaTBFRUF6QkxEcUplQ2Z5STljSmJRTXZGT3FZZTds?= =?utf-8?B?OVdqRlZmc0xnY01QMTBQUnFyaWxydFVxMk5veVJzc2Z2YmJFRlFYWE1IbGFK?= =?utf-8?B?R1dOQlMxcUtLckZVTGtPWng0RFg2Z1pSMklQck5rY0IwTldCSjJPbDZTTUQz?= =?utf-8?B?dXdpMktraHdTRWs5eVJBWVBoVWNZOENJZDllKzJlRnY3dHVNdE5KaDlrQlRu?= =?utf-8?B?R3NzajIyc1NjZktPdWlsemZBOENSWWh2RHdhV3h5cytHcElqaXZZWGFzN0Fr?= =?utf-8?B?ODVwbFhwaDBRSTZKZnRmOWxzUnExNkd4TC90eDYyeHBhdFhDZ3lRTHU2R1RI?= =?utf-8?B?OFptMzUvUElpRGdIaEpXU0VQOU92QzBZdms2ZHErWi96cExxOW90N3lMUCtX?= =?utf-8?B?UjhIWlEySmJsYVloYVk1YklST2JNelllWmNhWk4vQ25PTjRxVkttZ2xsN0Y1?= =?utf-8?B?M0ROT05vUUlUMFYxV3lmdDhpLzlMM1c3REZ1L2EyVHdwbG1GWjRtUnRUYUtx?= =?utf-8?Q?kBV749yc/2pL/73xS0?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ab62c28-14b2-4c0d-7efc-08de8f08f983 X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 09:36:24.3265 (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: AqWUBVqMMxeEYk2UIB/wqlcrqPTfBsRK7Ai7p+EqQpSH8WWHrkJ3ubyOSOrmgdHq X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7858 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" T24gMy8zMS8yNiAxMToyMCwgVGhvbWFzIEhlbGxzdHLDtm0gd3JvdGU6Cj4gVGhlIGNvZGUgd2Fz IHJlYWRpbmcgZHJtX2V4ZWMgaW50ZXJuYWwgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKPiB0 aGUgZHJtX2V4ZWMgc3RydWN0dXJlIGhhZCBiZWVuIGluaXRpYWxpemVkIG9yIG5vdCwgYW5kIHRo ZXJlZm9yZQo+IG5lZWRlZCBjbGVhbmluZyB1cCwgcmVseWluZyBvbiB1bmRvY3VtZW50ZWQgYmVo YXZpb3VyLgo+IAo+IEluc3RlYWQgYWRkIGEgYm9vbCB0byBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQg dG8gaW5kaWNhdGUgd2hldGhlcgo+IGRybV9leGVjIGNsZWFuaW5nIHVwIGlzIG5lZWRlZC4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51 eC5pbnRlbC5jb20+CgpBY2tlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5p Z0BhbWQuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmggICAgICAg IHwgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYyB8IDQgKysrLQo+ ICAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2dlbS5oCj4gaW5kZXggY2IzMjA5M2ZkYTQ3Li43NjJlNTQ2ZDI1ZWYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9nZW0uaAo+IEBAIC00NTIsNiArNDUyLDcgQEAgc3RydWN0IG1zbV9nZW1f c3VibWl0IHsKPiAgCWJvb2wgYm9zX3Bpbm5lZCA6IDE7Cj4gIAlib29sIGZhdWx0X2R1bXBlZDox Oy8qIExpbWl0IGRldmNvcmVkdW1wIGR1bXBpbmcgdG8gb25lIHBlciBzdWJtaXQgKi8KPiAgCWJv b2wgaW5fcmIgOiAxOyAgICAgLyogInN1ZG8iIG1vZGUsIGNvcHkgY21kcyBpbnRvIFJCICovCj4g Kwlib29sIGhhc19leGVjIDogMTsgIC8qIEBleGVjIGlzIGluaXRpYWxpemVkLiAqLwo+ICAJc3Ry dWN0IG1zbV9yaW5nYnVmZmVyICpyaW5nOwo+ICAJdW5zaWduZWQgaW50IG5yX2NtZHM7Cj4gIAl1 bnNpZ25lZCBpbnQgbnJfYm9zOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9nZW1fc3VibWl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKPiBp bmRleCA3NWQ5ZjM1NzQzNzAuLjI2ZWE4YTI4YmU0NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9nZW1fc3VibWl0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9nZW1fc3VibWl0LmMKPiBAQCAtMjc4LDYgKzI3OCw3IEBAIHN0YXRpYyBpbnQgc3VibWl0X2xv Y2tfb2JqZWN0c192bWJpbmQoc3RydWN0IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQpCj4gIAlpbnQg cmV0ID0gMDsKPiAgCj4gIAlkcm1fZXhlY19pbml0KCZzdWJtaXQtPmV4ZWMsIGZsYWdzLCBzdWJt aXQtPm5yX2Jvcyk7Cj4gKwlzdWJtaXQtPmhhc19leGVjID0gdHJ1ZTsKPiAgCj4gIAlkcm1fZXhl Y191bnRpbF9hbGxfbG9ja2VkICgmc3VibWl0LT5leGVjKSB7Cj4gIAkJcmV0ID0gZHJtX2dwdXZt X3ByZXBhcmVfdm0oc3VibWl0LT52bSwgZXhlYywgMSk7Cj4gQEAgLTMwNCw2ICszMDUsNyBAQCBz dGF0aWMgaW50IHN1Ym1pdF9sb2NrX29iamVjdHMoc3RydWN0IG1zbV9nZW1fc3VibWl0ICpzdWJt aXQpCj4gIAkJcmV0dXJuIHN1Ym1pdF9sb2NrX29iamVjdHNfdm1iaW5kKHN1Ym1pdCk7Cj4gIAo+ ICAJZHJtX2V4ZWNfaW5pdCgmc3VibWl0LT5leGVjLCBmbGFncywgc3VibWl0LT5ucl9ib3MpOwo+ ICsJc3VibWl0LT5oYXNfZXhlYyA9IHRydWU7Cj4gIAo+ICAJZHJtX2V4ZWNfdW50aWxfYWxsX2xv Y2tlZCAoJnN1Ym1pdC0+ZXhlYykgewo+ICAJCXJldCA9IGRybV9leGVjX2xvY2tfb2JqKCZzdWJt aXQtPmV4ZWMsCj4gQEAgLTUyMyw3ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCBzdWJtaXRfY2xlYW51 cChzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCwgYm9vbCBlcnJvcikKPiAgCWlmIChlcnJv cikKPiAgCQlzdWJtaXRfdW5waW5fb2JqZWN0cyhzdWJtaXQpOwo+ICAKPiAtCWlmIChzdWJtaXQt PmV4ZWMub2JqZWN0cykKPiArCWlmIChzdWJtaXQtPmhhc19leGVjKQo+ICAJCWRybV9leGVjX2Zp bmkoJnN1Ym1pdC0+ZXhlYyk7Cj4gIAo+ICAJLyogaWYgam9iIHdhc24ndCBlbnF1ZXVlZCB0byBz Y2hlZHVsZXIsIGVhcmx5IHJldGlyZW1lbnQ6ICovCgo=