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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16820C43334 for ; Mon, 18 Jul 2022 20:25:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8CE246B0074; Mon, 18 Jul 2022 16:25:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 87E506B0075; Mon, 18 Jul 2022 16:25:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F7268E0001; Mon, 18 Jul 2022 16:25:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 5F0556B0074 for ; Mon, 18 Jul 2022 16:25:50 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3A20660A96 for ; Mon, 18 Jul 2022 20:25:50 +0000 (UTC) X-FDA: 79701351660.12.91D7A4B Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2055.outbound.protection.outlook.com [40.107.243.55]) by imf23.hostedemail.com (Postfix) with ESMTP id C5A2B140071 for ; Mon, 18 Jul 2022 20:25:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fjrjawlO6dGkuOCPrYmjONzPtrcB5wlbyks673Svs8dpIhJmo0Wr3seLZv7XKQ85irg+jWG8EK4R2MxULMpRVQu4xqZZqigDmIjYzyWPW3ljWQHMiINiK9sO3UNadEdLRY5NKsRRX9uSw0SlfuO6PRhILK9RM861Yo4bIQvAgDxJ7vBOc99G3hQL3Yjefq73Th3PoVtaL5Wk/VGNGK5S007iIop+83GynyTukDaC/BKEsIYpvyZjctywRBFJFmGPc+bzf+ylGzs7oUJ3p0f82LYPJyGfBrIXklvmfvfxHfbrc5HzAKZE0LDzHGwCybLWFSewhg82AKUN7UI5FwX/Iw== 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=V8bGtNZYqwOgTe1gLodT2UFcuUnqqIYKVpa3X6hUaFY=; b=dtn1bKgeqIdhdqbWEI7kl8AqPtmMoxDyuTg5KX33Vjkq5LXLt6yKrYyT+eKQXKwi/IX8p+IoNAEDufmB71MAtO912xc1S3JKR2fp/CEQZ0Y0dtQwPMi8mKg1vYAtLsdgJfXazJzdNLReMR3UwwRmC1nsGYwaP2sAVMMAxNhRJLSSP4KIVqcUgtDFRGmE59xTbc7kXFHoZRg5DPM+vyCkwQ3vpeaevOLbjkTioyQU2AdNEZViekzGK+Qtc0EQCLuyTp9zVuyer/YrnGgAH+n5FEuJH/wgeCFr8PuIQc+4wQUYFgH/aiZP4iAEFK/EeYxtPtsN6hV2UE7GJ9dht8EGHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V8bGtNZYqwOgTe1gLodT2UFcuUnqqIYKVpa3X6hUaFY=; b=CDiKSCtAFMkifZokzjsGpuCLZ8uLTs1yBjSWMl/yTjLzgblSCQ7ZWzEIHfQif492WgLBUlmZR+9Yt+bH+4cOBus//zNyTBmLo9WqM7B+WM9xngwcLAvwk6ef47DVgcQh+IjytUyByG/cJjPHLH6vyqI7tL1yMQtAEmdnrrrhLi8= Received: from BY3PR05MB8531.namprd05.prod.outlook.com (2603:10b6:a03:3ce::6) by MN2PR05MB5998.namprd05.prod.outlook.com (2603:10b6:208:d2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.15; Mon, 18 Jul 2022 20:25:46 +0000 Received: from BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::d813:9300:4877:39d0]) by BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::d813:9300:4877:39d0%7]) with mapi id 15.20.5458.016; Mon, 18 Jul 2022 20:25:46 +0000 From: Nadav Amit To: Peter Xu CC: Linux MM , Andrew Morton , Mike Kravetz , Hugh Dickins , Axel Rasmussen , David Hildenbrand , Mike Rapoport Subject: Re: [PATCH v2 3/5] userfaultfd: introduce write-likely mode for uffd operations Thread-Topic: [PATCH v2 3/5] userfaultfd: introduce write-likely mode for uffd operations Thread-Index: AQHYmtvCctBM1gNl/UG4cZHEEJkswa2Ej8KAgAADpIA= Date: Mon, 18 Jul 2022 20:25:46 +0000 Message-ID: <9498662D-BE49-4EC7-8E7D-C78653EF671C@vmware.com> References: <20220718114748.2623-1-namit@vmware.com> <20220718114748.2623-4-namit@vmware.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.100.31) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4fa5ce3b-d143-4451-ec2d-08da68fbb27f x-ms-traffictypediagnostic: MN2PR05MB5998:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: =?utf-8?B?d1EzVDNsZkRQSlpoNWFuTWlOMnNxNHBJeFUzT2wwZHJaUWRnNkRPdWt6T1oz?= =?utf-8?B?endFN3A0dGRZV25hOWEwa0hiMDNSVWRuZ296dVd0S0Z5QlZBaVR5U1l1aElR?= =?utf-8?B?RmhtNlJrNTZrREJNbnVSQ3VGWEdYNlAxRHpubXltR3phZWpWaHJTZGh2bExJ?= =?utf-8?B?SGxKWThNMFdjVDdlWmlnZzB6SnBJZWp5RUw5TzNPWXdobjdJVkpoZ01SWXR1?= =?utf-8?B?eVJELzJEYTBIWnJTVTBwUFZxKy9Ed0hlZWU3N0xpMDU0ZmVDNWhkSmVGeTE4?= =?utf-8?B?Mit5R0ZET1dabnNvSnY2Vkpmbm4vK0p4VENLZXQ0SkJUR2dNYlNINkFSNW9x?= =?utf-8?B?bW84QkVuejRrcUNpbnNBWGNkY21VaXZreWQwNWxsZGN5aVJSTlh6MGtoZU84?= =?utf-8?B?bWQ5dmVwbzFJQ0JvbFh2L2xBOUZKUUFKaFFOQ3ppWnIybjVSQ056ZmltM29a?= =?utf-8?B?R2o1SFFYUkwzd25DTFRlYmF1bDcyMkNnclhQcThGZDllZzVhZktTdGJyTmtC?= =?utf-8?B?YlJmZENKRFQza210NDdEWHZCcUM0bzZSVnJkTUthSCsxVlFGM3krL3lqVjVJ?= =?utf-8?B?Z0R0bmx0V2luK3h1dWpvbzI0WEdpVUZ6QnUwSlRKSHpldzZvUnZha3FLclhq?= =?utf-8?B?KzY3UWF2UUFQZG9vSzJNT3UxSTA2VkVtZGt4OXk4cDIxVUpUTjNiTmJ2M2xQ?= =?utf-8?B?a0loSzA2bzFnZFNqSkFyemtsZkE4MUY4SlNmZWdhUFZuTUthQzlRZG4xWGpF?= =?utf-8?B?Yno5TUMzMjBtNWl4dTdLMFFodmN0a3NBSmEybk5rSlRYS1VRdis2UWRNTCt1?= =?utf-8?B?RVF6QmUzdW1xOTRYM2kvMXdPcDdILzJGb2VZTDgrNXEyNHRiTkxQaGZ4QkZi?= =?utf-8?B?UUFIdGNtS05GYStMR0tYRnBHQURKRmVNS3p5bEtla0ZkelhqUGhIYkwxd0h0?= =?utf-8?B?S0JkdVl6SVRnYVM5RytiRjlQWHhqeWVjd0xKM010VXBrMWdRZXJCdlJ4Nk9n?= =?utf-8?B?U0s4WEpmKzBUSzB5N3BKUjFvRGlqeUcvK3pUY1RRd1kxYno2cmRPY2M2T21F?= =?utf-8?B?Z01sR000d1M2bzVDSWZaS291Vm1hdFNuZGZEMXd0a01RYTIyZThaMEg4Yys2?= =?utf-8?B?dkVjZ2k0S3VBazNlY1E3QzRxVnVpOUtVcmtMa1JSYTNFVi92NFRBbmZJQUlr?= =?utf-8?B?czl1a09md0s2OEh0YldRZ3VULzRUdXl3eFVIeXQybXI4L1lSTkVJRzEzYVVa?= =?utf-8?B?bWlkTUNTdHdnUlpPUUNGUHNodENQUmhKZ1R6Y1phekZxWE9IUT09?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY3PR05MB8531.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(346002)(366004)(396003)(39860400002)(136003)(376002)(8936002)(5660300002)(8676002)(4326008)(64756008)(66946007)(66556008)(66476007)(66446008)(76116006)(122000001)(38100700002)(36756003)(2906002)(33656002)(86362001)(38070700005)(6486002)(966005)(71200400001)(478600001)(54906003)(83380400001)(6916009)(316002)(186003)(53546011)(41300700001)(26005)(6512007)(2616005)(6506007)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RnFRcnZhdW5zamNwNnpVaUdFNktUM0VrLzlXc0t3bWZFVnZIdFdOSjJtK3FI?= =?utf-8?B?VFYvNjlvQzBGZlNRc1p2d0hQQUJ2VXl2NmVFY04yeWhrajBwRHRET3BlL1Mx?= =?utf-8?B?TlArMWhjeEVjMG84WnlNQXdJaUZMN1lzRnR0NTMxOTV0NGVBUTMvOXUvakNY?= =?utf-8?B?NWYwN01MWlE3SndqREcwN09qK29BNTBpN21YbVVJUng5eGQ5ZWluekYzY0g5?= =?utf-8?B?Yzk2RHgyYWVpdE5tOW40eXZ0SmJ5U1hseXhac09nNFVTaUtpSCtrWkkxcGJi?= =?utf-8?B?eWNFOGNMOTgxYU9aV3Rrek9wT2d3dkkxY3MrRWlmdkJTMGE4Q3V4VXp4TGI1?= =?utf-8?B?WUlYTUtieFRyKzNpKzUvNXhsR3V4OXhvY1hzMmRTQ21kampIODk2ZFBIN0Er?= =?utf-8?B?ZllHRklERGVFM09tWVA5TFlDalJXZy9RWWFWWndqNXl4WW9QTTlVRFRXdTBQ?= =?utf-8?B?N1lLeXd4TVNLSEZHWmtUMHdiTnhFS29JbDNrYlplUXNrNENUYm9ueE4zL24z?= =?utf-8?B?N3QyZVN6UURIQmNQdjR0d1BDdkM1STUwdEVReURyTFRvQjhYMGV6WDE3WmFS?= =?utf-8?B?UVRGb2VNTUdva3orSXh0VWltcXY2RU8zZFcrZy9PSUhZVk0yZkl0ZnVJTTU5?= =?utf-8?B?aVJGR1NYbjlTNXZDRXgyTER3N2t1eEd3QjZNVm5WL0l6dzZ5UlU0enlYcnN1?= =?utf-8?B?WjkwMkFrb0luYiszcXJ3RDNxQ09LLzBkYTJKazU0c3V5aUVJbDhVeXNReGJs?= =?utf-8?B?N2d3a3JWR0Yrbk9vTFZobVVQUVkwb1V3aFhPMUVoc1JFU0cvUjZuQkpXNVZH?= =?utf-8?B?YlA0cGVaWXNFREZvVHBnZ1pydE95bmxJNzFDWUw2cHhCdXNQR1FBNStPUGI2?= =?utf-8?B?eHdSaitYdmJqK050L3g5bE5TODR1cDdXSFBteHFoZDV1ektxeHYyYkw3QU9j?= =?utf-8?B?Z25vR1c0M3FQVkN0Z2J2TTZPTEtnWmdqNjRVMWhPdXRXN1BGenVzTUt4Y2x0?= =?utf-8?B?TDFpZFY5S2IvNmxOWVR4UEU1aGtxUFBINWxnTEg4WnpjMWI2Z2JUbnUrWWVN?= =?utf-8?B?eEZBT2d1UG4vZXV1UWZMNVVzRzF0WTdaUTdaSk1KVkZGQmNPVXo5ZlhrTG9J?= =?utf-8?B?QjJ3VjUwTW5BcURLQnhtdllXT01wMVc5K01PS3hlb25LT3QrMUdFeWFLVHov?= =?utf-8?B?THRUUTNIR2JkYTBOMklBZ3l2aEZHQzh0UzNMOTFBV3BQaDROdEIxOWJCS2Z2?= =?utf-8?B?RHJ6YlJlUmZkRzhKRm9sbXFXUEpWT050OUM0N2R4ekdBSUdlcTFacWZFWEM5?= =?utf-8?B?Sk13cUdpSm1XVTZMak5vZEtCLzNGSDVuSHAyWXhlaEZVcC9DVlZNc0xuWThQ?= =?utf-8?B?T3MwMUlxSHRyR1paMmRDYVRtNzNCOGVHbUZjVUllWmg1ZGp4OWFKY0tMVi81?= =?utf-8?B?K3hVcmFySnB4WDVhQ1NaaDg1QnJJcy91QVdKTFBpak9obGxzVXlZd2FWdUdG?= =?utf-8?B?cHdML0FoNXd6NzhsbDhBUEVyNTdVWkdlZ054YS9NWmJxMVg2MitqT2pEVjVr?= =?utf-8?B?dVZySXN1NDBNNU9SNmN3QUJWeEg5STY4OWpPM2d1VHBmVVYvZTFEcTNyTS92?= =?utf-8?B?Z01oRFN4cCtVeWs0MXgxcWx2TDN3cHllei9POElKZHFTVzFxWEQ5ZDFpeHg2?= =?utf-8?B?L2hLOS9IWE9KSTlFdjZYck16cEJ1NVVrT3A1TTlvbG5VT0Y2dXBHdWtKKzFk?= =?utf-8?B?WHlIczV1VFllWWZlOWxHVHBzaG9NcWwwT01HTVF2cDhGaE1aSVptSnlCNFQx?= =?utf-8?B?THF1VUEzY1JxK29VUlB2NWh6UWtETGF1R0M1NWh2ODh2RG5vTGNwS1lqM2Nh?= =?utf-8?B?M0ZpcmRybnZNNXozNFVKUGw1UExGRzVzYTlVVHhiVURqTUVuUVVDSy9KN1Jm?= =?utf-8?B?K0g0RDN4NVBsQ1AyN3Fpczk5dzNKaWRHVTQrYVg5RW5zWXhxd0pGQm9XMWV2?= =?utf-8?B?azFQUzRNRUlMc2ExTDJtZG5tZjZ2eEduUUkvTHF2K2RJT214ZEZsVXRjRWx0?= =?utf-8?B?Mkprd1pjdmlmZG9HczROUnNGaHhvenpXWmE4WVJuSEtUcHZadDl1b0ptQU5j?= =?utf-8?Q?38br/od9GUna20oA/q0NS1hm+?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR05MB8531.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fa5ce3b-d143-4451-ec2d-08da68fbb27f X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2022 20:25:46.6685 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HZ7zogwnuqW7g/SHwCukHt82RWZbQOcz7pGwfO5vLQ35TJJOkXGkr8VJI3xBclGJzN2qyKirkfEsAx4iSkp9Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR05MB5998 ARC-Authentication-Results: i=2; imf23.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=CDiKSCtA; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=quarantine) header.from=vmware.com; spf=none (imf23.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.243.55) smtp.mailfrom=namit@vmware.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1658175949; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=V8bGtNZYqwOgTe1gLodT2UFcuUnqqIYKVpa3X6hUaFY=; b=j/p+ds2EcbYdmFuE2P+hFFvMfG5HBeocV0tXbaDWtnR1HITQPEOXAoPiTYPgt4TfrMI3lw zskt77PAw2zeLw2jxMcaTIFvmGS6jaGbcKCwmzcWImtqzT7woSLnZqzrUkGK8Xj/wcGI8Y 2QQB/YBQtIu0FB00VU6287yCcdndCsc= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1658175949; a=rsa-sha256; cv=pass; b=BAYSvpeSQOclZ1QnFxgPl2ETeTDhjz6HLyYbEPDhKQ+s+1+1g7q7EeXzhjEoELhjvNbsii WHz3xOxhxJdWfobyXPOX2zHXpGrN35utOFP2dINAxZpq5P7Gk8NZ07aOS5zZXB6lhdDVxb ukXXS9DnSxw4RxfS2AxB1RVksPgDJd0= X-Rspamd-Queue-Id: C5A2B140071 Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=CDiKSCtA; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=quarantine) header.from=vmware.com; spf=none (imf23.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.243.55) smtp.mailfrom=namit@vmware.com X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: z7fqrm68hgr8qy8gw1z9w4njqgq33ezf X-HE-Tag: 1658175949-749145 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: T24gSnVsIDE4LCAyMDIyLCBhdCAxOjEyIFBNLCBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+ IHdyb3RlOg0KDQo+IOKaoCBFeHRlcm5hbCBFbWFpbA0KPiANCj4gT24gTW9uLCBKdWwgMTgsIDIw MjIgYXQgMDQ6NDc6NDZBTSAtMDcwMCwgTmFkYXYgQW1pdCB3cm90ZToNCj4+IEZyb206IE5hZGF2 IEFtaXQgPG5hbWl0QHZtd2FyZS5jb20+DQo+PiANCj4+IEludHJvZHVjZSB3cml0ZS1saWtlbHkg aGludHMgZm9yIHVmZmQuIFRoZXNlIGhpbnRzIHdvdWxkIGJlIHVzZWQgaW4gYQ0KPj4gZnV0dXJl IHBhdGNoIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGF0dGVtcHQgdG8gbWFwIHBhZ2VzIGluIHRoZSBw YWdlLXRhYmxlDQo+PiBvciB3aGV0aGVyIHRvIG9ubHkgbWFyayB0aGVtIGxvZ2ljYWxseSBhcyB3 cml0YWJsZS4gVGhpcyBhbGxvd3MNCj4+IHVzZXJzcGFjZSB0byBkZXRlcm1pbmUgd2hldGhlciBh IHBhZ2Ugd291bGQgYmUgYWNjZXNzZWQgZmFzdGVyIG9yDQo+PiB3aGV0aGVyIHJlbW92YWwgb2Yg dGhlIHBhZ2Ugd291bGQgYmUgcG9zc2libGUsIHBvdGVudGlhbGx5LCB3aXRob3V0DQo+PiB3cml0 ZWJhY2sgYW5kIFRMQiBmbHVzaC4NCj4+IA0KPj4gQ2M6IE1pa2UgS3JhdmV0eiA8bWlrZS5rcmF2 ZXR6QG9yYWNsZS5jb20+DQo+PiBDYzogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPg0K Pj4gQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+DQo+PiBDYzog QXhlbCBSYXNtdXNzZW4gPGF4ZWxyYXNtdXNzZW5AZ29vZ2xlLmNvbT4NCj4+IENjOiBQZXRlciBY dSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQo+PiBDYzogRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJl ZGhhdC5jb20+DQo+PiBDYzogTWlrZSBSYXBvcG9ydCA8cnBwdEBsaW51eC5pYm0uY29tPg0KPj4g U2lnbmVkLW9mZi1ieTogTmFkYXYgQW1pdCA8bmFtaXRAdm13YXJlLmNvbT4NCj4+IC0tLQ0KPj4g ZnMvdXNlcmZhdWx0ZmQuYyB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQo+ PiBpbmNsdWRlL2xpbnV4L3VzZXJmYXVsdGZkX2suaCB8IDEgKw0KPj4gaW5jbHVkZS91YXBpL2xp bnV4L3VzZXJmYXVsdGZkLmggfCAxMyArKysrKysrKysrKystDQo+PiAzIGZpbGVzIGNoYW5nZWQs IDM3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYgLS1naXQgYS9m cy91c2VyZmF1bHRmZC5jIGIvZnMvdXNlcmZhdWx0ZmQuYw0KPj4gaW5kZXggOGQ4NzkyYjI3YzUz Li4zMDI3ZDIyODU1MGEgMTAwNjQ0DQo+PiAtLS0gYS9mcy91c2VyZmF1bHRmZC5jDQo+PiArKysg Yi9mcy91c2VyZmF1bHRmZC5jDQo+PiBAQCAtMTcwOSw3ICsxNzA5LDggQEAgc3RhdGljIGludCB1 c2VyZmF1bHRmZF9jb3B5KHN0cnVjdCB1c2VyZmF1bHRmZF9jdHggKmN0eCwNCj4+IGlmICh1ZmZk aW9fY29weS5zcmMgKyB1ZmZkaW9fY29weS5sZW4gPD0gdWZmZGlvX2NvcHkuc3JjKQ0KPj4gZ290 byBvdXQ7DQo+PiBpZiAodWZmZGlvX2NvcHkubW9kZSAmIH4oVUZGRElPX0NPUFlfTU9ERV9ET05U V0FLRXxVRkZESU9fQ09QWV9NT0RFX1dQfA0KPj4gLSBVRkZESU9fQ09QWV9NT0RFX0FDQ0VTU19M SUtFTFkpKQ0KPj4gKyBVRkZESU9fQ09QWV9NT0RFX0FDQ0VTU19MSUtFTFl8DQo+PiArIFVGRkRJ T19DT1BZX01PREVfV1JJVEVfTElLRUxZKSkNCj4+IGdvdG8gb3V0Ow0KPj4gDQo+PiBtb2RlX3dw ID0gdWZmZGlvX2NvcHkubW9kZSAmIFVGRkRJT19DT1BZX01PREVfV1A7DQo+PiBAQCAtMTcxOSw4 ICsxNzIwLDExIEBAIHN0YXRpYyBpbnQgdXNlcmZhdWx0ZmRfY29weShzdHJ1Y3QgdXNlcmZhdWx0 ZmRfY3R4ICpjdHgsDQo+PiBpZiAoY3R4LT5mZWF0dXJlcyAmIFVGRkRfRkVBVFVSRV9BQ0NFU1Nf SElOVFMpIHsNCj4+IGlmICh1ZmZkaW9fY29weS5tb2RlICYgVUZGRElPX0NPUFlfTU9ERV9BQ0NF U1NfTElLRUxZKQ0KPj4gdWZmZF9mbGFncyB8PSBVRkZEX0ZMQUdTX0FDQ0VTU19MSUtFTFk7DQo+ PiArIGlmICh1ZmZkaW9fY29weS5tb2RlICYgVUZGRElPX0NPUFlfTU9ERV9XUklURV9MSUtFTFkp DQo+PiArIHVmZmRfZmxhZ3MgfD0gVUZGRF9GTEFHU19XUklURV9MSUtFTFk7DQo+PiB9IGVsc2Ug ew0KPj4gLSB1ZmZkX2ZsYWdzIHw9IFVGRkRfRkxBR1NfQUNDRVNTX0xJS0VMWTsNCj4+ICsgdWZm ZF9mbGFncyB8PSBVRkZEX0ZMQUdTX0FDQ0VTU19MSUtFTFkgfA0KPj4gKyBVRkZEX0ZMQUdTX1dS SVRFX0xJS0VMWTsNCj4+IH0NCj4+IA0KPj4gaWYgKG1tZ2V0X25vdF96ZXJvKGN0eC0+bW0pKSB7 DQo+PiBAQCAtMTc3NCwxNCArMTc3OCwxOCBAQCBzdGF0aWMgaW50IHVzZXJmYXVsdGZkX3plcm9w YWdlKHN0cnVjdCB1c2VyZmF1bHRmZF9jdHggKmN0eCwNCj4+IGdvdG8gb3V0Ow0KPj4gcmV0ID0g LUVJTlZBTDsNCj4+IGlmICh1ZmZkaW9femVyb3BhZ2UubW9kZSAmIH4oVUZGRElPX1pFUk9QQUdF X01PREVfRE9OVFdBS0V8DQo+PiAtIFVGRkRJT19aRVJPUEFHRV9NT0RFX0FDQ0VTU19MSUtFTFkp KQ0KPj4gKyBVRkZESU9fWkVST1BBR0VfTU9ERV9BQ0NFU1NfTElLRUxZfA0KPj4gKyBVRkZESU9f WkVST1BBR0VfTU9ERV9XUklURV9MSUtFTFkpKQ0KPj4gZ290byBvdXQ7DQo+PiANCj4+IGlmIChj dHgtPmZlYXR1cmVzICYgVUZGRF9GRUFUVVJFX0FDQ0VTU19ISU5UUykgew0KPj4gaWYgKHVmZmRp b196ZXJvcGFnZS5tb2RlICYgVUZGRElPX1pFUk9QQUdFX01PREVfQUNDRVNTX0xJS0VMWSkNCj4+ IHVmZmRfZmxhZ3MgfD0gVUZGRF9GTEFHU19BQ0NFU1NfTElLRUxZOw0KPj4gKyBpZiAodWZmZGlv X3plcm9wYWdlLm1vZGUgJiBVRkZESU9fWkVST1BBR0VfTU9ERV9XUklURV9MSUtFTFkpDQo+PiAr IHVmZmRfZmxhZ3MgfD0gVUZGRF9GTEFHU19XUklURV9MSUtFTFk7DQo+PiB9IGVsc2Ugew0KPj4g LSB1ZmZkX2ZsYWdzIHw9IFVGRkRfRkxBR1NfQUNDRVNTX0xJS0VMWTsNCj4+ICsgdWZmZF9mbGFn cyB8PSBVRkZEX0ZMQUdTX0FDQ0VTU19MSUtFTFkgfA0KPj4gKyBVRkZEX0ZMQUdTX1dSSVRFX0xJ S0VMWTsNCj4+IH0NCj4+IA0KPj4gaWYgKG1tZ2V0X25vdF96ZXJvKGN0eC0+bW0pKSB7DQo+PiBA QCAtMTgzNCw3ICsxODQyLDggQEAgc3RhdGljIGludCB1c2VyZmF1bHRmZF93cml0ZXByb3RlY3Qo c3RydWN0IHVzZXJmYXVsdGZkX2N0eCAqY3R4LA0KPj4gDQo+PiBpZiAodWZmZGlvX3dwLm1vZGUg JiB+KFVGRkRJT19XUklURVBST1RFQ1RfTU9ERV9ET05UV0FLRSB8DQo+PiBVRkZESU9fV1JJVEVQ Uk9URUNUX01PREVfV1AgfA0KPj4gLSBVRkZESU9fV1JJVEVQUk9URUNUX01PREVfQUNDRVNTX0xJ S0VMWSkpDQo+PiArIFVGRkRJT19XUklURVBST1RFQ1RfTU9ERV9BQ0NFU1NfTElLRUxZIHwNCj4+ ICsgVUZGRElPX1dSSVRFUFJPVEVDVF9NT0RFX1dSSVRFX0xJS0VMWSkpDQo+PiByZXR1cm4gLUVJ TlZBTDsNCj4+IA0KPj4gbW9kZV93cCA9IHVmZmRpb193cC5tb2RlICYgVUZGRElPX1dSSVRFUFJP VEVDVF9NT0RFX1dQOw0KPj4gQEAgLTE4NDcsOCArMTg1NiwxMSBAQCBzdGF0aWMgaW50IHVzZXJm YXVsdGZkX3dyaXRlcHJvdGVjdChzdHJ1Y3QgdXNlcmZhdWx0ZmRfY3R4ICpjdHgsDQo+PiBpZiAo Y3R4LT5mZWF0dXJlcyAmIFVGRkRfRkVBVFVSRV9BQ0NFU1NfSElOVFMpIHsNCj4+IGlmICh1ZmZk aW9fd3AubW9kZSAmIFVGRkRJT19XUklURVBST1RFQ1RfTU9ERV9BQ0NFU1NfTElLRUxZKQ0KPj4g dWZmZF9mbGFncyB8PSBVRkZEX0ZMQUdTX0FDQ0VTU19MSUtFTFk7DQo+PiArIGlmICh1ZmZkaW9f d3AubW9kZSAmIFVGRkRJT19XUklURVBST1RFQ1RfTU9ERV9XUklURV9MSUtFTFkpDQo+PiArIHVm ZmRfZmxhZ3MgfD0gVUZGRF9GTEFHU19XUklURV9MSUtFTFk7DQo+PiB9IGVsc2Ugew0KPj4gLSB1 ZmZkX2ZsYWdzIHw9IFVGRkRfRkxBR1NfQUNDRVNTX0xJS0VMWTsNCj4+ICsgdWZmZF9mbGFncyB8 PSBVRkZEX0ZMQUdTX0FDQ0VTU19MSUtFTFkgfA0KPj4gKyBVRkZEX0ZMQUdTX1dSSVRFX0xJS0VM WTsNCj4+IH0NCj4+IA0KPj4gaWYgKG1tZ2V0X25vdF96ZXJvKGN0eC0+bW0pKSB7DQo+PiBAQCAt MTkwMywxNCArMTkxNSwxOCBAQCBzdGF0aWMgaW50IHVzZXJmYXVsdGZkX2NvbnRpbnVlKHN0cnVj dCB1c2VyZmF1bHRmZF9jdHggKmN0eCwgdW5zaWduZWQgbG9uZyBhcmcpDQo+PiBnb3RvIG91dDsN Cj4+IH0NCj4+IGlmICh1ZmZkaW9fY29udGludWUubW9kZSAmIH4oVUZGRElPX0NPTlRJTlVFX01P REVfRE9OVFdBS0V8DQo+PiAtIFVGRkRJT19DT05USU5VRV9NT0RFX0FDQ0VTU19MSUtFTFkpKQ0K Pj4gKyBVRkZESU9fQ09OVElOVUVfTU9ERV9BQ0NFU1NfTElLRUxZfA0KPj4gKyBVRkZESU9fQ09O VElOVUVfTU9ERV9XUklURV9MSUtFTFkpKQ0KPj4gZ290byBvdXQ7DQo+PiANCj4+IGlmIChjdHgt PmZlYXR1cmVzICYgVUZGRF9GRUFUVVJFX0FDQ0VTU19ISU5UUykgew0KPj4gaWYgKHVmZmRpb19j b250aW51ZS5tb2RlICYgVUZGRElPX0NPTlRJTlVFX01PREVfQUNDRVNTX0xJS0VMWSkNCj4+IHVm ZmRfZmxhZ3MgfD0gVUZGRF9GTEFHU19BQ0NFU1NfTElLRUxZOw0KPj4gKyBpZiAodWZmZGlvX2Nv bnRpbnVlLm1vZGUgJiBVRkZESU9fQ09OVElOVUVfTU9ERV9XUklURV9MSUtFTFkpDQo+PiArIHVm ZmRfZmxhZ3MgfD0gVUZGRF9GTEFHU19XUklURV9MSUtFTFk7DQo+PiB9IGVsc2Ugew0KPj4gLSB1 ZmZkX2ZsYWdzIHw9IFVGRkRfRkxBR1NfQUNDRVNTX0xJS0VMWTsNCj4+ICsgdWZmZF9mbGFncyB8 PSBVRkZEX0ZMQUdTX0FDQ0VTU19MSUtFTFkgfA0KPj4gKyBVRkZEX0ZMQUdTX1dSSVRFX0xJS0VM WTsNCj4+IH0NCj4+IA0KPj4gaWYgKG1tZ2V0X25vdF96ZXJvKGN0eC0+bW0pKSB7DQo+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC91c2VyZmF1bHRmZF9rLmggYi9pbmNsdWRlL2xpbnV4L3Vz ZXJmYXVsdGZkX2suaA0KPj4gaW5kZXggYjMyNjc5OGI1Njc3Li40OTY4Yzg2OTM4YjIgMTAwNjQ0 DQo+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3VzZXJmYXVsdGZkX2suaA0KPj4gKysrIGIvaW5jbHVk ZS9saW51eC91c2VyZmF1bHRmZF9rLmgNCj4+IEBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgdW5z aWduZWQgaW50IF9fYml0d2lzZSB1ZmZkX2ZsYWdzX3Q7DQo+PiAjZGVmaW5lIFVGRkRfRkxBR1Nf Tk9ORSAoKF9fZm9yY2UgdWZmZF9mbGFnc190KTApDQo+PiAjZGVmaW5lIFVGRkRfRkxBR1NfV1Ag KChfX2ZvcmNlIHVmZmRfZmxhZ3NfdClCSVQoMCkpDQo+PiAjZGVmaW5lIFVGRkRfRkxBR1NfQUND RVNTX0xJS0VMWSAoKF9fZm9yY2UgdWZmZF9mbGFnc190KUJJVCgxKSkNCj4+ICsjZGVmaW5lIFVG RkRfRkxBR1NfV1JJVEVfTElLRUxZICgoX19mb3JjZSB1ZmZkX2ZsYWdzX3QpQklUKDIpKQ0KPj4g DQo+PiBleHRlcm4gaW50IG1maWxsX2F0b21pY19pbnN0YWxsX3B0ZShzdHJ1Y3QgbW1fc3RydWN0 ICpkc3RfbW0sIHBtZF90ICpkc3RfcG1kLA0KPj4gc3RydWN0IHZtX2FyZWFfc3RydWN0ICpkc3Rf dm1hLA0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC91c2VyZmF1bHRmZC5oIGIv aW5jbHVkZS91YXBpL2xpbnV4L3VzZXJmYXVsdGZkLmgNCj4+IGluZGV4IDAyZTBjMWY1NjkzOS4u ZjUyY2JlNGM5YzQ0IDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3VzZXJmYXVs dGZkLmgNCj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC91c2VyZmF1bHRmZC5oDQo+PiBAQCAt MjAyLDcgKzIwMiw3IEBAIHN0cnVjdCB1ZmZkaW9fYXBpIHsNCj4+ICogd3JpdGUtcHJvdGVjdGlv biBtb2RlIGlzIHN1cHBvcnRlZCBvbiBib3RoIHNobWVtIGFuZCBodWdldGxiZnMuDQo+PiAqDQo+ PiAqIFVGRkRfRkVBVFVSRV9BQ0NFU1NfSElOVFMgaW5kaWNhdGVzIHRoYXQgdGhlIGlvY3RsIG9w ZXJhdGlvbnMNCj4+IC0gKiBzdXBwb3J0IHRoZSBVRkZESU9fKl9NT0RFX0FDQ0VTU19MSUtFTFkg aGludHMuDQo+PiArICogc3VwcG9ydCB0aGUgVUZGRElPXypfTU9ERV9bQUNDRVNTfFdSSVRFXV9M SUtFTFkgaGludHMuDQo+PiAqLw0KPj4gI2RlZmluZSBVRkZEX0ZFQVRVUkVfUEFHRUZBVUxUX0ZM QUdfV1AgKDE8PDApDQo+PiAjZGVmaW5lIFVGRkRfRkVBVFVSRV9FVkVOVF9GT1JLICgxPDwxKQ0K Pj4gQEAgLTI1Nyw5ICsyNTcsMTMgQEAgc3RydWN0IHVmZmRpb19jb3B5IHsNCj4+ICogcGFnZSBp cyBsaWtlbHkgdG8gYmUgYWNjZXNzIGluIHRoZSBuZWFyIGZ1dHVyZS4gUHJvdmlkaW5nIHRoZSBo aW50DQo+PiAqIHByb3Blcmx5IGNhbiBpbXByb3ZlIHBlcmZvcm1hbmNlLg0KPj4gKg0KPj4gKyAq IFVGRkRJT19DT1BZX01PREVfV1JJVEVfTElLRUxZIHByb3ZpZGVzIGEgaGludCB0byB0aGUga2Vy bmVsIHRoYXQgdGhlDQo+PiArICogcGFnZSBpcyBsaWtlbHkgdG8gYmUgd3JpdHRlbiBpbiB0aGUg bmVhciBmdXR1cmUuIFByb3ZpZGluZyB0aGUgaGludA0KPj4gKyAqIHByb3Blcmx5IGNhbiBpbXBy b3ZlIHBlcmZvcm1hbmNlLg0KPj4gKi8NCj4+ICNkZWZpbmUgVUZGRElPX0NPUFlfTU9ERV9XUCAo KF9fdTY0KTE8PDEpDQo+PiAjZGVmaW5lIFVGRkRJT19DT1BZX01PREVfQUNDRVNTX0xJS0VMWSAo KF9fdTY0KTE8PDIpDQo+PiArI2RlZmluZSBVRkZESU9fQ09QWV9NT0RFX1dSSVRFX0xJS0VMWSAo KF9fdTY0KTE8PDMpDQo+PiBfX3U2NCBtb2RlOw0KPj4gDQo+PiAvKg0KPj4gQEAgLTI3Myw2ICsy NzcsNyBAQCBzdHJ1Y3QgdWZmZGlvX3plcm9wYWdlIHsNCj4+IHN0cnVjdCB1ZmZkaW9fcmFuZ2Ug cmFuZ2U7DQo+PiAjZGVmaW5lIFVGRkRJT19aRVJPUEFHRV9NT0RFX0RPTlRXQUtFICgoX191NjQp MTw8MCkNCj4+ICNkZWZpbmUgVUZGRElPX1pFUk9QQUdFX01PREVfQUNDRVNTX0xJS0VMWSAoKF9f dTY0KTE8PDEpDQo+PiArI2RlZmluZSBVRkZESU9fWkVST1BBR0VfTU9ERV9XUklURV9MSUtFTFkg KChfX3U2NCkxPDwyKQ0KPj4gX191NjQgbW9kZTsNCj4+IA0KPj4gLyoNCj4+IEBAIC0yOTYsNiAr MzAxLDEwIEBAIHN0cnVjdCB1ZmZkaW9fd3JpdGVwcm90ZWN0IHsNCj4+ICogdGhhdCB0aGUgcGFn ZSBpcyBsaWtlbHkgdG8gYmUgYWNjZXNzIGluIHRoZSBuZWFyIGZ1dHVyZS4gUHJvdmlkaW5nDQo+ PiAqIHRoZSBoaW50IHByb3Blcmx5IGNhbiBpbXByb3ZlIHBlcmZvcm1hbmNlLg0KPj4gKg0KPj4g KyAqIFVGRkRJT19XUklURVBST1RFQ1RfTU9ERV9XUklURV9MSUtFTFk6IHByb3ZpZGVzIGEgaGlu dCB0byB0aGUga2VybmVsDQo+PiArICogdGhhdCB0aGUgcGFnZSBpcyBsaWtlbHkgdG8gYmUgd3Jp dHRlbiBpbiB0aGUgbmVhciBmdXR1cmUuIFByb3ZpZGluZw0KPj4gKyAqIHRoZSBoaW50IHByb3Bl cmx5IGNhbiBpbXByb3ZlIHBlcmZvcm1hbmNlLg0KPj4gKyAqDQo+PiAqIE5PVEU6IFdyaXRlIHBy b3RlY3RpbmcgYSByZWdpb24gKFdQPTEpIGlzIHVucmVsYXRlZCB0byBwYWdlIGZhdWx0cywNCj4+ ICogdGhlcmVmb3JlIERPTlRXQUtFIGZsYWcgaXMgbWVhbmluZ2xlc3Mgd2l0aCBXUD0xLiBSZW1v dmluZyB3cml0ZQ0KPj4gKiBwcm90ZWN0aW9uIChXUD0wKSBpbiByZXNwb25zZSB0byBhIHBhZ2Ug ZmF1bHQgd2FrZXMgdGhlIGZhdWx0aW5nDQo+PiBAQCAtMzA0LDYgKzMxMyw3IEBAIHN0cnVjdCB1 ZmZkaW9fd3JpdGVwcm90ZWN0IHsNCj4+ICNkZWZpbmUgVUZGRElPX1dSSVRFUFJPVEVDVF9NT0RF X1dQICgoX191NjQpMTw8MCkNCj4+ICNkZWZpbmUgVUZGRElPX1dSSVRFUFJPVEVDVF9NT0RFX0RP TlRXQUtFICgoX191NjQpMTw8MSkNCj4+ICNkZWZpbmUgVUZGRElPX1dSSVRFUFJPVEVDVF9NT0RF X0FDQ0VTU19MSUtFTFkgKChfX3U2NCkxPDwyKQ0KPj4gKyNkZWZpbmUgVUZGRElPX1dSSVRFUFJP VEVDVF9NT0RFX1dSSVRFX0xJS0VMWSAoKF9fdTY0KTE8PDMpDQo+PiBfX3U2NCBtb2RlOw0KPj4g fTsNCj4+IA0KPj4gQEAgLTMxMSw2ICszMjEsNyBAQCBzdHJ1Y3QgdWZmZGlvX2NvbnRpbnVlIHsN Cj4+IHN0cnVjdCB1ZmZkaW9fcmFuZ2UgcmFuZ2U7DQo+PiAjZGVmaW5lIFVGRkRJT19DT05USU5V RV9NT0RFX0RPTlRXQUtFICgoX191NjQpMTw8MCkNCj4+ICNkZWZpbmUgVUZGRElPX0NPTlRJTlVF X01PREVfQUNDRVNTX0xJS0VMWSAoKF9fdTY0KTE8PDEpDQo+PiArI2RlZmluZSBVRkZESU9fQ09O VElOVUVfTU9ERV9XUklURV9MSUtFTFkgKChfX3U2NCkxPDwyKQ0KPj4gX191NjQgbW9kZTsNCj4g DQo+IEkgdGhvdWdodCB5b3Ugd291bGQgaGF2ZSBzb21lIHJlYXNvbmluZyBvbiBoYXZpbmcgdGhl IGZsYWcgZm9yIHVucHJvdGVjdA0KPiAoc2luY2Ugb3VyIGxhc3QgZGlzY3Vzc2lvbiB5b3UgbWVu dGlvbmVkIGl0KSBidXQgaXQgc2VlbXMgbm90IHRoZXJlLi4NCj4gDQo+IFRoZW4sIGNvdWxkIHdl IG9ubHkga2VlcCB0aGUgemVyb3BhZ2Ugd3JpdGUgaGludCBidXQgZHJvcCB0aGUgcmVzdD8NCj4g VGhleSdyZSBuZXZlciB1c2VkIGluIHRoaXMgd2hvbGUgc2VyaWVzIGJlc2lkZXMgdGhlIHplcm9w YWdlIG9uZSwgbWVhbndoaWxlDQo+IEkgdGhpbmsgd2UncmUgc3RpbGwgbm90IHJlYWNoaW5nIGNv bnNlbnN1cyBvbiB3aGV0aGVyIHRoZXknbGwgYmUgaGVscGZ1bD8NCg0KSSB0aGluayB0aGF0IEkg ZGlkbuKAmXQgY29tbXVuaWNhdGUgY2xlYXJseSBlbm91Z2ggdHdvIHRoaW5ncy4gRmlyc3QsIHRo ZQ0KYWNjZXNzIGZsYWdzIGFyZSB1c2VkIGhlcmUuDQoNCk5vdywgeW91IGFyZSBjb3JyZWN0IHRo YXQgYWx0aG91Z2ggdGhlIHVucHJvdGVjdCBmbGFnIGlzIGRlZmluZWQgaGVyZSwgaXQgaXMNCm5v dCB1c2VkIGluIHRoaXMgcGF0Y2gtc2V0LiBUaGVyZSBpcyBhIHJlYXNvbiBmb3IgdGhhdC4NCg0K SXQgdHVybnMgb3V0IHRoYXQgdXNpbmcgRGF2aWTigJlzIHdvcmsgdG8gbWFwIGEgd3JpdGFibGUg cGFnZSBjYW4gY2F1c2UNCnVuZGVzaXJlZCBiZWhhdmlvcnMgLSB0aGUgY2xlYW4gUFRFLCB3aGlj aCB3ZSBkaXNjdXNzZWQsIGFuZCBhZGRpdGlvbmFsIFRMQg0Kc2hvb3Rkb3ducy4gU2luY2UgaXQg cmVxdWlyZWQgYSBsb3Qgb2YgY2hhbmdlcyB0byBnZXQgcmlkIG9mIHRoZXNlDQphZGRpdGlvbmFs IHNob290ZG93bnMsIEkgcHV0IHRoZSB1bnByb3RlY3QgY2hhbmdlcyBpbiBhIGRpZmZlcmVudCBw YXRjaC1zZXQuDQoNCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDIyMDcxODEyMDIxMi4z MTgwLTEtbmFtaXRAdm13YXJlLmNvbS8NCg0KTGV0IG1lIGtub3cgaWYgdGhhdCBhbnN3ZXJzIHlv dXIgcXVlc3Rpb24uDQoNCg0K