Received: by 2002:a05:7412:e794:b0:fa:551:50a7 with SMTP id o20csp2355102rdd; Fri, 12 Jan 2024 07:08:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IFLka1D/y5Cmwawpz5TcLYI/+2/1fUxXuWHLWE9MrOhwlgZy8QAi9c2fXrRe4udNBOkyxYy X-Received: by 2002:a17:907:c310:b0:a08:f837:7802 with SMTP id tl16-20020a170907c31000b00a08f8377802mr977055ejc.14.1705072087690; Fri, 12 Jan 2024 07:08:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705072087; cv=pass; d=google.com; s=arc-20160816; b=fuaJxnNinInWBwC8gJK8XAW6oU0JOg+O/F8hBzpWTkVAMFcE346Y/NZI9NeS1aBnsK uCGjTaGMIBieS36nfoJRHX8eHyT34NVguPoneY89z+jjFyis0GWloA+3/yBmyA8gjgWs 91aINADo6sFvAnblIfboxBkyrtNtAqPK2MEO3FZAZv4uAY+7pkKjKSriQlKcYoNO5ZN+ bS/e2ZmDM9y5Xu+exox7IN6LYIFToaXPlD3eIT/XepsAqOMxsCbiJJ9VKt/Te9NazxS+ /1b7F7R8tVuFsIeqUOH9iSc2fCvvaODjHBv2HOjB2bYxz5jR6glLd2zeg/30B/A8ZlZB hUyg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:to:from:dkim-signature; bh=MI6buMWYXbYNgq4zmU7vND/bpGj8N9UtRrZi86nCDO4=; fh=oMNWiieaWQkjTH4PRPkFpwrndlO7rPQ2GmLDPKxA+Xs=; b=RiXIJkjUEHcXAZnghE6ppG7AaIgaO0NyvWYnjRIqbFhrrALE8MltK4060OlqqOo3an fb8ggGh0Rrw143pTYa3xdXof6C1g5wRhtjhjsAL6u62ihovumnFSYlVDMBQkxgDUJWgT 4o0hDjLlSTzs7RY3BlauHA82fAYwxU6TJeipWtxeV4XV9/mvM5z0V4xPUMxlg6WnbqEs a++RbyL3R5BA+DHOYR4Kl64EHdmHzeSzoh/ygW0obqnt9xI2Umy3Nu+9ns1W2cIrBhP5 Nx9S5kOtHmP8B0pDHsqhw/PLVlYDqaKWBa0QIo5eh2q3OldJNbCQAFXsTL/YHhqKw8qC yJ5w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@outlook.com header.s=selector1 header.b=bceDg11Z; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-24786-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-24786-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id s25-20020a1709066c9900b00a2b5c0fd5easi1430441ejr.221.2024.01.12.07.08.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jan 2024 07:08:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-24786-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@outlook.com header.s=selector1 header.b=bceDg11Z; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-24786-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-24786-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 388B21F21DE7 for ; Fri, 12 Jan 2024 15:08:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 512056E2DD; Fri, 12 Jan 2024 15:07:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=outlook.com header.i=@outlook.com header.b="bceDg11Z" Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11olkn2010.outbound.protection.outlook.com [40.92.20.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC4526DD12; Fri, 12 Jan 2024 15:07:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=outlook.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N9D0UkHH0S3D+D5O5/bpY43jV8uaRvOX3uXwcXq208LQ2SIRQU3mJ/XPE4sK0+SxMB1N7tckQHcgqC5gmx4m+yoN5x+ClqWaXJGAJNxZuK2zdksI0T3zSyUmhS0k2uHs8Dpgw3z8gZh6jGLi3PI6GbuL0WYy3gqksiLv6GzbP5ulH1RNVnVs3WKiRl1hkwzmFQihcSXc0bOU9hoZGUnrVp71jUmk3ODYiQExdjY4BiHbQbYG4zWPqPbobaa22JCisDr2IMLnJ6Jjx5nNFR2KA/X8EhzxEbJg+AHatB6ffYsFGKlu7LMhOuhVeVXz2a+UP7BKmTWP8c79ukfX1bHVxQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MI6buMWYXbYNgq4zmU7vND/bpGj8N9UtRrZi86nCDO4=; b=jLWm7tnzEldIvkBzSuE3OnJDHlw/sSDVF0WzaJ4Btv/OzM4SBGJFrGF0cY1D+qJLrcOKWwtel/vMxdHHVuS9CY8DWeP8y3z66Qf88+73S3DlQGJMU/86G1QqKZB3sbHUWIzVC0AkZA+X5fjViG80kmS9aBPMvjXs80cyh71HYf9cmVyk/g/dOpLU+IcfexU2n4TWZ9FVQOzA42fFvdVnDgQZIP7WbwTFr+W7H9kodxDuyO/h66A5KzD0kIBvBlN4zVCH1ZksTgktb6fvvSEyMl3H8ICScNLWhg+OfvqWJpZBfkYtETr5B34jpAZNMxGHLdadIrgzmBMSGR6L5CG7rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MI6buMWYXbYNgq4zmU7vND/bpGj8N9UtRrZi86nCDO4=; b=bceDg11Z43k/+NQi848d/9blS1KHgpHZMMpELp84ajuS5zXjCR602kCVDkdmk0V5sGwV/lsBCJuMsEOBVwA41KtGywOuISh9AzB5qSkqC5iL4j864hZTf3/2VwKxUIvYXYefvRdgnIhGTPaAYXrE2vVq0D9p5HGEyUuK9/K/umqlsjZBE9fEBWiHDOiUaF5J0rOquLKx4EgW7qUzLd/H87JONnTajLxoM1zYhaiqbQu10cXlY1wrb8ESxLmChQpFFuAmGsL5V7ZigeGqFPWQO/FWBxYMRPQqx6qUpmpEMyVxzjFKt5IYWy16cf6f6SvUubv94G5dam/rCdiEPGvRNw== Received: from SN6PR02MB4157.namprd02.prod.outlook.com (2603:10b6:805:33::23) by SA1PR02MB8413.namprd02.prod.outlook.com (2603:10b6:806:1f4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21; Fri, 12 Jan 2024 15:07:52 +0000 Received: from SN6PR02MB4157.namprd02.prod.outlook.com ([fe80::3524:e4b3:632d:d8b2]) by SN6PR02MB4157.namprd02.prod.outlook.com ([fe80::3524:e4b3:632d:d8b2%4]) with mapi id 15.20.7181.015; Fri, 12 Jan 2024 15:07:51 +0000 From: Michael Kelley To: "Edgecombe, Rick P" , "linux-hyperv@vger.kernel.org" , "ardb@kernel.org" , "hch@infradead.org" , "Lutomirski, Andy" , "linux-coco@lists.linux.dev" , "dave.hansen@linux.intel.com" , "thomas.lendacky@amd.com" , "haiyangz@microsoft.com" , "akpm@linux-foundation.org" , "kirill.shutemov@linux.intel.com" , "mingo@redhat.com" , "seanjc@google.com" , "linux-kernel@vger.kernel.org" , "tglx@linutronix.de" , "Cui, Dexuan" , "urezki@gmail.com" , "linux-mm@kvack.org" , "hpa@zytor.com" , "peterz@infradead.org" , "wei.liu@kernel.org" , "bp@alien8.de" , "Rodel, Jorg" , "sathyanarayanan.kuppuswamy@linux.intel.com" , "lstoakes@gmail.com" , "x86@kernel.org" Subject: RE: [PATCH v3 1/3] x86/hyperv: Use slow_virt_to_phys() in page transition hypervisor callback Thread-Topic: [PATCH v3 1/3] x86/hyperv: Use slow_virt_to_phys() in page transition hypervisor callback Thread-Index: AQHaQAVimv7uqsPUukqF0M02BKDa3rDVauWAgADjM5A= Date: Fri, 12 Jan 2024 15:07:51 +0000 Message-ID: References: <20240105183025.225972-1-mhklinux@outlook.com> <20240105183025.225972-2-mhklinux@outlook.com> <9dcdd088494b3fa285781cccfd35cd47a70d69c3.camel@intel.com> In-Reply-To: <9dcdd088494b3fa285781cccfd35cd47a70d69c3.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [CqlCFPn5JUinYjOBK7Yu0ALr/Tt4DCHW] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR02MB4157:EE_|SA1PR02MB8413:EE_ x-ms-office365-filtering-correlation-id: 9d4f45f9-670d-4c57-17a7-08dc13803f1d x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kGoUFeaLdOsCyaacA7Q8vpkfmUtfXkEzkYF0mu8G91rHwwKrV2YkNBs756sqolMLlqsE8fcmhcvFnKK5hLP2gx48A04IRQ3QhQCwryaTEV258Byuq4vL+XnOWa1uvLlFah+1pMp3ViThxnp02IUKHnj/W76/yBSfaeIV/yBaw38cJ+LwTKc8lz4QjEn6P9TQSTGSOqCgWe9DrZvscAIlFp27P7LYJ0LDHNOE8nPCnovxTAzaJ2BIcSyzNB10G2rMTLxCwn+4PGvqUCT+IdDcuuvICNA4t9+SHMGqLYhg+PIoSY1nk0Oq4ehZbzWoAqX1ZU4f5j5GRd9jHwcbHuWYFLpDLYqzDRbvcsIpxOpcTMCfHrKVZdAo9SD9SQYEmvKb2sd6qn9vOaQqDjNeukuKWTU25WNAv6mIkvwHTEmu7WUtWxE2E/cbTR5L1eZ/0BLT4MDfREkWZNex6xVO+y18kjOxpKYoz9VupJlLf6sz8j7Fy3UO4DBMyZphfYeofeRuqIE5/bBgzlBm4gAs/6PDShLuJjJfpMtMPmOxQH14NU8= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZklsY2hBRXJLblVGT2lrQUlJT01HZDFFaTJjY3VwZkxkeS8vVDN5ZTlDWE5O?= =?utf-8?B?ZUtUbXlCTkZmNTJBWXY5QTRMWUFMd0k3RVpoeFRUWjh6d1hXcTBuU0xRczAr?= =?utf-8?B?SVdNYkl5SHVKQXN3Tk5zalJxRDRZcjI0aDM0dTFIaXBobFlhaU1ETkQ3YXFS?= =?utf-8?B?SDhwbGxDUyt1RmJDazJjV05aeWk3eXFJdVdqNjJRNXROSTl0L1VnVkNyMWtp?= =?utf-8?B?VWNLZ3JOZ3FzMGwxcFBjU1daODduVlVkNEhta2V5QlN4c09aV00vQ0dhYk1R?= =?utf-8?B?SGdvdHpwbGtXS3c1VXBVb3d5dGxkRjFPcGliY0doU21VTUlSaTFUc1Y1NGZJ?= =?utf-8?B?bHRubjFVYTkwY0l3aEdrNzFJbFBqUTFlN0s3R25TTWYxVjY4c0NFbDBWOVBK?= =?utf-8?B?UkgzbDYrRk5PZ0E5UEE4dk5FeEROdjZKcERJdVBmR2trNGRqQ3Q5ZHh6L245?= =?utf-8?B?bUlVS3FLcHJ6TEo3c0FlM2RhSGxlTzlySjFpZUpaaXFTUWYwQ3VyOFdqR0xJ?= =?utf-8?B?VzUxbTgrejMyYUtURUhLRjh4ZDJiUHhGZGo4cU00OFg5NzdJcHBpbHJtZmpT?= =?utf-8?B?RkZsVmRTL0lwemtpMEtnVlZoNU1zNmpOVXQzTHlUMzJtN1FLa2xkYThWUDhq?= =?utf-8?B?Skd2c2ZGK2dsMGM2YlptWDZPR2dTL3VZNDRBMmx0SXBYQjFDZ2oxZjZwYUUy?= =?utf-8?B?WmVpU1VBRWpzRWtVMlJHMEcyMkRxV0gyUTJCTnp6MEZHNnl1ZmFCdVBHUUsr?= =?utf-8?B?d0FZM2M1VUdrZmlsc3VRTTJzeHhUQXJaZ0dpZjBxYnVPQS9NeHZIcnpuOXdB?= =?utf-8?B?VFRvb3JnaFc0RDhUTXk3Q3VEZGdDS3kxWElRRUtWN2FUWE1lSllxaVA4VEJT?= =?utf-8?B?bUZRaUlmSm8rV2t6b0ZRMjhZVDIzTzFuTGZiYjlVRVFOTjRTUW9iTlNHZ0dS?= =?utf-8?B?UmQzKzF4ckttTnhpUzdRTUc2dk9OQUQ3QWN2Sm5mYkcxZGN3OXovOU9RRW5Y?= =?utf-8?B?QTRVWEdWSVdSNWN6Yi9BL0xUa1U2RU1qaFdYSFhGbjNzcHFTUVFuQThRK09p?= =?utf-8?B?UlRmenNWRXdpYk9UL3djSEpUaDhKdUcvOHFDZ3ZIZlQ2WDdqMGhXVUJzbHJW?= =?utf-8?B?VVpJZ1d6V3BrM0dTYURYRjhKTXY1UzJaRE5oTXpEVEU3a0dGY1BWQVFjTzM1?= =?utf-8?B?MnRlSXFQY3RESE9ldkQ5dm5zYTlCRXlQd3Z3WVRxb2lna3gveHlQMTkwVlFh?= =?utf-8?B?YTZ2M1NvTE9ZQ1p3NHFEd0hpRTMzR3Fob3RNNFJHUGdPWkd0UFMvMHExaC9Y?= =?utf-8?B?dFQyYUFjY2xoOW02RzUzQXMwc0gvR3ZnVFY5NXBtRXIzM1BBbXcrZUFseHR0?= =?utf-8?B?bHhjQ2UvVTNRcWl3dUxxQ2VySHpyUUZzeWdWaXM0NW93d0d4dzNZVVVVeENZ?= =?utf-8?B?OVRTdFJ3SUhOR2d5UDhrMjhxL2xML3V0WkJ6b2NVZklTNjdHNFZqeW5lcG5t?= =?utf-8?B?d3ExZHFYWmlvaklVUnFraFlPUjlxZHZjOVdhQXpBT0hRTHNkWW5UT0pkRHRR?= =?utf-8?B?WXlqK0dQSnc5cE1SWmdrcDZpSDZQd0lmRmV3TEVQWkxNNUdHMko4QjdxSTRp?= =?utf-8?B?SmhZYkpFQUxsU0pHUzdzdUtKT1JMR3c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR02MB4157.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 9d4f45f9-670d-4c57-17a7-08dc13803f1d X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2024 15:07:51.5353 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR02MB8413 RnJvbTogRWRnZWNvbWJlLCBSaWNrIFAgPHJpY2sucC5lZGdlY29tYmVAaW50ZWwuY29tPiBTZW50 OiBUaHVyc2RheSwgSmFudWFyeSAxMSwgMjAyNCA1OjIwIFBNDQo+IA0KPiBPbiBGcmksIDIwMjQt MDEtMDUgYXQgMTA6MzAgLTA4MDAsIG1oa2VsbGV5NThAZ21haWwuY29tIHdyb3RlOg0KPiA+ICsg KiBJdCBpcyBhbHNvIHVzZWQgaW4gY2FsbGJhY2tzIGZvciBDb0NvIFZNIHBhZ2UgdHJhbnNpdGlv bnMgYmV0d2VlbiBwcml2YXRlDQo+ID4gKyAqIGFuZCBzaGFyZWQgYmVjYXVzZSBpdCB3b3JrcyB3 aGVuIHRoZSBQUkVTRU5UIGJpdCBpcyBub3Qgc2V0IGluIHRoZSBsZWFmDQo+ID4gKyAqIFBURS4g SW4gc3VjaCBjYXNlcywgdGhlIHN0YXRlIG9mIHRoZSBQVEVzLCBpbmNsdWRpbmcgdGhlIFBGTiwg aXMgb3RoZXJ3aXNlDQo+ID4gKyAqIGtub3duIHRvIGJlIHZhbGlkLCBzbyB0aGUgcmV0dXJuZWQg cGh5c2ljYWwgYWRkcmVzcyBpcyBjb3JyZWN0LiAgVGhlIHNpbWlsYXINCj4gPiArICogZnVuY3Rp b24gdm1hbGxvY190b19wZm4oKSBjYW4ndCBiZSB1c2VkIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhl IFBSRVNFTlQgYml0Lg0KPiANCj4gSSdtIG5vdCBzdXJlIGFib3V0IHRoaXMgY29tbWVudC4gSXQg aXMgbW9zdGx5IGFib3V0IGNhbGxlcnMgZmFyIGF3YXkNCj4gYW5kIG90aGVyIGZ1bmN0aW9ucyBp biB2bWFsbG9jLiBQcm9iYWJseSBhIGRlY2VudCBjaGFuY2UgdG8gZ2V0IHN0YWxlLg0KPiBJdCBh bHNvIGtpbmQgb2YgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2h5IHZtYWxsb2NfdG9fcGZuKCkgcmVx dWlyZXMgdGhlDQo+IHByZXNlbnQgYml0IGluIHRoZSBsZWFmLg0KDQpUaGUgY29tbWVudCBpcyBL aXJpbGwgU2h1dGVtb3YncyBzdWdnZXN0aW9uIGJhc2VkIG9uIGNvbW1lbnRzIGluDQphbiBlYXJs aWVyIHZlcnNpb24gb2YgdGhlIHBhdGNoIHNlcmllcy4gIFNlZSBbMV0uICAgVGhlIGludGVudCBp cyB0byBwcmV2ZW50DQpzb21lIGxhdGVyIHJldmlzaW9uIHRvIHNsb3dfdmlydF90b19waHlzKCkg ZnJvbSBhZGRpbmcgYSBjaGVjayBmb3IgdGhlDQpwcmVzZW50IGJpdCBhbmQgYnJlYWtpbmcgdGhl IENvQ28gVk0gaHlwZXJ2aXNvciBjYWxsYmFjay4gIFllcywgdGhlDQpjb21tZW50IGNvdWxkIGdl dCBzdGFsZSwgYnV0IEknbSBub3Qgc3VyZSBob3cgZWxzZSB0byBjYWxsIG91dCB0aGUNCmltcGxp Y2l0IGRlcGVuZGVuY3kuICBUaGUgaWRlYSBvZiBjcmVhdGluZyBhIHByaXZhdGUgdmVyc2lvbiBv Zg0Kc2xvd192aXJ0X3RvX3BoeXMoKSBmb3IgdXNlIG9ubHkgaW4gdGhlIENvQ28gVk0gaHlwZXJ2 aXNvciBjYWxsYmFjaw0KaXMgYWxzbyBkaXNjdXNzZWQgaW4gdGhlIHRocmVhZCwgYnV0IHRoYXQg c2VlbXMgd29yc2Ugb3ZlcmFsbC4NCg0KQXMgZm9yIHdoeSB2bWFsbG9jX3RvX3BhZ2UoKSBjaGVj a3MgdGhlIHByZXNlbnQgYml0LCBJIGRvbid0IGtub3cuDQpCdXQgdm1hbGxvY190b19wYWdlKCkg aXMgdmVyeSB3aWRlbHkgdXNlZCwgc28gdHJ5aW5nIHRvIGNoYW5nZSBpdA0KZG9lc24ndCBzZWVt IHZpYWJsZS4NCg0KPiANCj4gSXQgc2VlbXMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNvbW1lbnQg aXMgYWJvdXQgd2h5IHRoaXMgaXMgbmVlZGVkIHdoZW4NCj4gX19wYSgpIGV4aXN0cy4gT25lIHJl YXNvbiBnaXZlbiBpcyB0aGF0IF9fcGEoKSBkb2Vzbid0IHdvcmsgd2l0aA0KPiB2bWFsbG9jIG1l bW9yeS4gVGhlbiB0aGUgbmV4dCBiaXQgdGFsa3MgYWJvdXQgYW5vdGhlciBzaW1pbGFyIGZ1bmN0 aW9uDQo+IHRoYXQgd29ya3Mgd2l0aCB2bWFsbG9jIG1lbW9yeS4NCj4gDQo+IFNvIHRoZSBjb21t ZW50IGlzIGEgcmlzayB0byBnZXQgc3RhbGUsIGFuZCBsZWF2ZXMgbWUgYSBsaXR0bGUgY29uZnVz ZWQNCj4gd2h5IHRoaXMgZnVuY3Rpb24gZXhpc3RzLg0KPiANCj4gSSB0aGluayB0aGUgcmVhc29u IGlzIGJlY2F1c2Ugdm1hbGxvY190b19wZm4oKSAqb25seSogd29ya3Mgd2l0aA0KPiB2bWFsbG9j IG1lbW9yeSBhbmQgdGhpcyBpcyBuZWVkZWQgdG8gd29yayBvbiBvdGhlciBhbGlhcyBtYXBwaW5n cy4NCg0KUHJlc3VtYWJseSBzby4gIFRoZSBmaXJzdCBwYXJhZ3JhcGggb2YgdGhlIGV4aXN0aW5n IGNvbW1lbnQgYWxzbw0KY2FsbHMgb3V0ICJhbGxvY19yZW1hcCgpIGFyZWFzIG9uIDMyLWJpdCBO VU1BIHN5c3RlbXMiIGFzDQpuZWVkaW5nIHNsb3dfdmlydF90b19waHlzKCkuDQoNCk1pY2hhZWwN Cg0KWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMzA4MjgyMjEzMzMuNWJsc2hv c3lxYWZiZ3dsY0Bib3guc2h1dGVtb3YubmFtZS8NCg==