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 01571C54E69 for ; Fri, 15 Mar 2024 10:36:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5A12180114; Fri, 15 Mar 2024 06:36:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 50224800B4; Fri, 15 Mar 2024 06:36:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3548380114; Fri, 15 Mar 2024 06:36:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1C5F3800B4 for ; Fri, 15 Mar 2024 06:36:27 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9F335A0ABF for ; Fri, 15 Mar 2024 10:36:26 +0000 (UTC) X-FDA: 81898919172.13.F434F93 Received: from HK2PR02CU002.outbound.protection.outlook.com (mail-eastasiaazon11022010.outbound.protection.outlook.com [52.101.128.10]) by imf12.hostedemail.com (Postfix) with ESMTP id 566564001E for ; Fri, 15 Mar 2024 10:36:21 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=hbIa8upH; dmarc=pass (policy=quarantine) header.from=oppo.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf12.hostedemail.com: domain of liuhailong@oppo.com designates 52.101.128.10 as permitted sender) smtp.mailfrom=liuhailong@oppo.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710498983; 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=zS/DzRId6zMArrnZXWUWvO4+e/xsIUJKpuRuRrjPUxc=; b=xRjXWU6eYLLhGLvfEmaK0gy8fn1edncJ1PlnanNk+zzCT1mgQPKqXEqAeend7M63i1q00k wvOraIss64e7H3hvBdexHYWXk0DvdfiLrl1qyM3+cCsLrWV+7nYotis9ecT+OFoIoCg8ID b94UWcaThzqFuzIDBn66I730+QoHSjY= ARC-Authentication-Results: i=2; imf12.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=hbIa8upH; dmarc=pass (policy=quarantine) header.from=oppo.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf12.hostedemail.com: domain of liuhailong@oppo.com designates 52.101.128.10 as permitted sender) smtp.mailfrom=liuhailong@oppo.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1710498983; a=rsa-sha256; cv=pass; b=fJiZ4JL6TRSIx+I2stvpQ6LUaCZi7KBbFuYhgsbq3JSVeLO8kNdCYFKsZyWl0QVJUq76pr cDJtbaDNxo2ifFnfmjZo46pGs4PxXtG0Z/Kw+LEEGt8slp4I1ZsbLuJOq5hbZR1v9JtXnI OLp4VvhA/wSp8K/dV3HYJwKvAJlsZtU= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iww1FlqigXxeHr0GpU+ioiULbWTcb8rp3yeYzjCMrBNZHyJKg3BgqrDMnwGzCl6vGk16TlUJH+ws4Fl/ygTG4fmEEtQvqqslshAS+49nfvn9Ne867l0/Jk9hlzvn4MWhYMPx+uncp81MFTiq9/YLMVAnE4eUDyQ/egFUgQbLQvAYV05tNFs+S99k0wKN9iMoQH8LedsgdmKC/jTfvr/r8wcDYBcxcGAMYmRpsDLTg3iZQdb4xrgIPWunxT5EiTKA0o7bv1UkwqQv+EUPsr2Xu2zrD7ikzdcM7uc1L/XV7NJP2bCOEyZsxiXtjBkxIzWdl0FtTqlne9ap7uWR32mPSA== 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=zS/DzRId6zMArrnZXWUWvO4+e/xsIUJKpuRuRrjPUxc=; b=iBzWrb3ccGftSnIjxvouFyMdqGhex/lt3YJUPsvFpcm1eyFcLTAKRPvhhKM1oyHAdTC/oUf9YT74zXxPZO+Ig5PzFLx3dIjtjTRqQrpG1u9B7ClbUmG1aZC3iSBGN0rvenki8qPbDC/j4CnGPmBlE8/0R4S6rt0sU5MKFT6XFadwY5cUJQgYn7tBN4dhNUtJ54GTg93qX+XwlAnpp2Suxh9OLonxHIrOhFPuqLgoDGeLaXVdmMlpDy9shMW+2i6XvJYVU9YxLjAqoCBFpAfmmSzFoTnt5AhR6SmPa2RdtHjBNf0tJxL/+odmqDOuOKiU7WhqJOX5rehlKRO25sCQoQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oppo.com; dmarc=pass action=none header.from=oppo.com; dkim=pass header.d=oppo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zS/DzRId6zMArrnZXWUWvO4+e/xsIUJKpuRuRrjPUxc=; b=hbIa8upHjZfDdQbvUXfmw5+l7Im4OYAE/YQEHbqMEgfEIOYNbpYdVMAMHSwgLU6/kaHSYJjtu8XH51QItZntHHVgnz5U71gAOAI+qz2GOzYx7h+rkoRVgrPswEXYv6sPBhHziPM+PTe+UmuE32jU/+h5ntG8F3UPBFe9p6qzBmk= Received: from SEZPR02MB7164.apcprd02.prod.outlook.com (2603:1096:101:194::8) by TYSPR02MB8038.apcprd02.prod.outlook.com (2603:1096:405:54::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.20; Fri, 15 Mar 2024 10:36:16 +0000 Received: from SEZPR02MB7164.apcprd02.prod.outlook.com ([fe80::bc02:302a:a551:9b07]) by SEZPR02MB7164.apcprd02.prod.outlook.com ([fe80::bc02:302a:a551:9b07%5]) with mapi id 15.20.7362.035; Fri, 15 Mar 2024 10:36:15 +0000 From: =?utf-8?B?5YiY5rW36b6ZKExhb0xpdSk=?= To: =?utf-8?B?6buE5pyd6ZizIChaaGFveWFuZyBIdWFuZyk=?= , Yu Zhao CC: "akpm@linux-foundation.org" , "nathan@kernel.org" , "ndesaulniers@google.com" , "trix@redhat.com" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "llvm@lists.linux.dev" , "surenb@google.com" , Charan Teja Kalla , =?utf-8?B?5bq357qq5ruoIChTdGV2ZSBLYW5nKQ==?= Subject: Re: reply: [PATCH] Revert "mm: skip CMA pages when they are not available" Thread-Topic: reply: [PATCH] Revert "mm: skip CMA pages when they are not available" Thread-Index: AQHadhoee6884OlG6EKEXl/Pq/RbKLE3gx4AgADpG4CAADDHAA== Date: Fri, 15 Mar 2024 10:36:15 +0000 Message-ID: References: <20240314141516.31747-1-liuhailong@oppo.com> <1710488498897.75752@unisoc.com> In-Reply-To: <1710488498897.75752@unisoc.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SEZPR02MB7164:EE_|TYSPR02MB8038:EE_ x-ms-office365-filtering-correlation-id: a3c3a69a-1108-41a1-fe1f-08dc44dbbe0c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Xf48hmDRwNTeY2GUqDQalLlNqcVqRjEjj5rGDff3IPQJC5x/nIv+E9wgCB45Ns35tOQRwXagV5F2VTnnyTNJulK0gbvvXb6Mr7GwO2b4rhuMm1nxIwhWjzXop3PrQY0ktSf3xEl3jj1RzZPmQGucestRrrvBNGb3BCIPXajuD3nImfoho32+AqSTihe5XaI/2jc6UhM/Q4u2wAy04A/gQKSRs4YOaBFC/nz2ka5l36JiRTtI/dpiutUG3uE4/ZsqTGoJmLMY41aouediyhhSBYaSvrnDzwJmK/3VIHNYeVduRd6sSPHxP8xHIZDuqL0mKTEj6UwPAWqbBWCGqyp15flRkvykfwK5XfW3ZtPKh72PTtz6j9V+e0OCUZKjeRS9MLMSvCM/MwRynd7AcGpj3zKgTYx/8hOMvfINdpOnvmMAnY6pFYVyfHggNXLVOy+JBR49syAWve5pk/1Hspc7MvwUcf15d82wQhOTwZ1Fty05BBaHZug+9SsOnkhyrvtt83QbBraSXueLkH9jIE6vEOlJhGd/A+tbV4yde8YnyETlCNYIaSEat+Eeh+qQBJQlPdscoKZBu3JvTjDXesixLQKBIDslylnWsgAjoRWiy0EB1uRWEnCrgMDpv9Rud/ldjLOmdc6c0i6XhmCi0hpLUc+PP7kLR2vPgjnWq1U4Yzy1e9dWSbeTUrid1W2zrgH+vqba2mI1LC+kfVIto2Cx1GRtxjYuX+JRG9hVddzcdJw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:zh-cn;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SEZPR02MB7164.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005)(7416005)(38070700009);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MU41L210TytETGVIb2FuUWVvZml5Y3JtYWZsdzYydUtmTFdhQ25XYWYyV3c0?= =?utf-8?B?SUlzTEcwQmRDMWQrRHVxZ1RUc1ZGQytkRXA5SWd1eDRqdEdNVXZOM2h5cFRp?= =?utf-8?B?STl4Z2owbFRkKzJ3MWcyYUpUYThnemxzOUV0RlF2bk5ZL2hTR3liTFpGTjc1?= =?utf-8?B?T2RWN3NCYkxqQ0h0SGhnU0xHQWVXbldhRTQvbWIxdWFjSG56Q1FnQzBubERt?= =?utf-8?B?dmRKSTZvLzVJY2cvSzBFNzNndnZUSU4wbDY1TTBuNlpnbnNvMEl5cUlUTkti?= =?utf-8?B?S1BrZ0U1cWJEbVAzblBnQ2tZUUprdDNPVzM5dGdKQjZid1FwUHphRUdSQ2F0?= =?utf-8?B?NkRFU3B5QkdpQUhWRXg2K05mS3ZZSml6cU1iSkVxdFN0QjdsU3llR3gwWmhn?= =?utf-8?B?QUlwSXR1c0RoTzVvN2ZqRytYNkVjSFYxRjlxZkU0eTJEZ3FFTXdISzBwSnd0?= =?utf-8?B?eHlvSG5NVEVrbkMyemgxNmlBQytIRDBYRndPNHpPTGVMRFVET21lakVmMHRu?= =?utf-8?B?b3RxTjVCclFMeFVkV1ZvY1lLS0QzZXgySUgwY0tLU0h3RkIvYXpyS1V4R3Ju?= =?utf-8?B?UFJDRWtwZm95amNqZ0FHb0lzNXpFUzMzN1U5SlZBc2NSejFmT0s4Z25OcnRN?= =?utf-8?B?QmpEbFVyaHVCcjc0Nmp0bmNGdkFjTUt5TTNKZ2h0aUVWdGV2ajZUUmxRaU1a?= =?utf-8?B?QTBPSzJWU0tDc3NtUGVzR29lZlJzUUZhc21sSWt0VGpDbWxEZVAwWWxxSGhT?= =?utf-8?B?TEF0Q0pWcUh6K1c1UG51cVUraWJWV1dFMVN2UEJaOEsydzM1YTZ0aWV5QkVB?= =?utf-8?B?eDhFVTJWcFZab3VBNUMvQ1E2Z3V2aFNzNXY4VGlBZFBlYmVBV1NJRk0xUjFO?= =?utf-8?B?M2tGa0VOMmNSaEVNQlBtc1ZLb1dWY3o0OUZKTlE3Q3BSbzZSeXp4U2hWb1Jw?= =?utf-8?B?L2UyeTFqWXR5SE56NUNZcG41RlQzT3dBdHRvR09ja2I3TGtSQS8vbWpXWEht?= =?utf-8?B?c2F6Z0lXVUVodEZMWjdudlRCN1p1QThLWHRaV2hvcmY4ZWNTWHg0K3M4VGEx?= =?utf-8?B?TlZ3M2krbTdWT2RpNGVsdWVPb3p1d2VOc01iSVdKcHNDRElrT2Zhayt0eGtK?= =?utf-8?B?SFB0WDEyRk03SzZyQ3psdUozLzhGYnVGampDZFB6M25UT0tNcGNTTS92YmlP?= =?utf-8?B?Zm1oQVZ6TUdGTFcwRGE5WDYyNGkzKzhpUnN4VnVrYXR0Q2pOWTJmcDBZSmxv?= =?utf-8?B?TkhpQjd5aGRZd0liUGlaMXhIQmU0TW1VbDhNaE1GaE9pMU1VVjJQOG9DOWI0?= =?utf-8?B?cG9US0pJTHdJSmV5Z2hBZzB6T0w5SkxhVnJBYWJiL3h5dlpISjhCVWx2TVJw?= =?utf-8?B?LzByZjlBeVE1bDNQeTF4bkF0cWczalJ5eEkxY05PZTlhUm5HV2ZqUFNrNFln?= =?utf-8?B?Y1pTU2RTOGNBUnY4S0QwemhtYkFRck4vSUEyN1BEelpqUEFmcVI0ZWFuUHk3?= =?utf-8?B?cGcxNElzY285aUMyMHBaUnQvdVlySDNPNXNHNHJiKzZCdC83VitKMVk0ZytC?= =?utf-8?B?ZDg5VEVaMkpESlFaYUlmdklsVFljVWZjeXFPRDZ4bXVwMm9WeVR1elhmMC8r?= =?utf-8?B?WS80L2U3QVFqM0haNU0rVXRsWlZaSkRoTjdtTkJKd0RmS1NJR21NbGYwb2xQ?= =?utf-8?B?SmtMckVrTC92dHV5SG44eS9ya0dEcmNocjJWOHM1OC9vKzZybTFGdWhlaDdX?= =?utf-8?B?QkJMQjd3dWY5WmFoeURyeUs4TktiMlVucDExSlhPZWkvQTRoTmRWL0FBNzQr?= =?utf-8?B?ck0zdW82ekdwcE9nakplQ3UzdXFZYm9wVGtaUThFYkJxdk5UampaMEU0d0Y4?= =?utf-8?B?REhSZWdraWV2U3BJZWZFejl1WFVTWUhya3Y0UE1NMHNLNUFKMHJONG5WWm92?= =?utf-8?B?Q1g2bjJEVmRzZEx5NmNqalA1YU9mL0pFMmh6WFBQalZ6eEZ1SEFqZ2lUc2FT?= =?utf-8?B?SnI5U0paQjVWWCtUOXZQcnpZM25BWkRJbnpQd1FXWEhQUGNqbXhEMUdrbVdN?= =?utf-8?B?WGhQdWZiK1VSTjBuZ1owbVlJZDhueTR1NE9YcDloSkRoYXM1Z2h6NXF6dmRZ?= =?utf-8?Q?ax3sPiTOF215xea1xPcPutJRs?= Content-Type: text/plain; charset="utf-8" Content-ID: <3319711F7CF30E488928DA1B2E81C022@apcprd02.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SEZPR02MB7164.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3c3a69a-1108-41a1-fe1f-08dc44dbbe0c X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Mar 2024 10:36:15.6126 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5vY/sOC+5UTEV8IACEvFPCfK8wiwwLIpLcBbhpunW1J/lL2kAuM0JYn4GHkqXFwYJu6uJ0bkcK/PxhC/teASSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYSPR02MB8038 X-Rspamd-Queue-Id: 566564001E X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: yt47s5wzg5k83wjhkjybk55u1xa3rt7f X-HE-Tag: 1710498981-819522 X-HE-Meta: U2FsdGVkX18oWQhwivvldxe9i+kaxcyzaBKkRY6h8xrJt+GtHQ9AXq4xO0QpiHYW22dWshr4u0ThwUidgitbhMLbjBINgheapc9YxjceAv8UmcEdrvm/c1739ki8lYfXUivtw1Ufw6Q9NXxyk+rB25xmQ4bdSKiT0sOkhub26g+wGdm73nABh/x2lDHT2bdLxEaZsuGt5dWFV6lKY4z3a5vJUJPwnCXlpCSJlxPP/8VEdmEcINAihLffp+02FKm+YWOrAn0BlmiD3jwg2rfzIqSH/qmo+UY0MGwhMN3lq1vzRNk5bZNMGShnESIfby8A3RiT2edPWolgWI5V7oD3pW2IVCv//62OVfhGD+pxTy9utPH4jCiRo1WVYmmg7uQW8PTi66VtzPQuQf6ewvfyu8g9T4dRSUQy18cdEolos9SEdBjZPfdZw9AI3vfwgjonsopCjd226K1JRXBfyqBxAcbJ/gVs3mjuW9UWW94i+C/cdzedzv8KcSP1OJmJJumtJDRgD5ODi1YMunpWCn/m0nZwWFJsVHGftuEP5XDiwKUiKsRINVCl2IuH9hZFZq5qlzMYUaKYWJ9OFHRswFKm3hmA/5Ck4YWQrvHURN3Hnl+f4mpVByn8vXr6dmLw5OZf7OxrT8uJSEptD+qVID7xcLJYkHrPQsKG3jbkfOjXNnavpSc06z38AI044W7exc97plN6S4ZeCrKvHbIRe2p9qF+i6WIdFNniq8aJz8cKNF2QJXEnuMs1wdveqOgNRWcDkNOs5YSKrKxNIjmqc3WpbCF0ZeqdkKdqpo4Yj/VMOU5BMuslGFg7KpH0BDO9skSS+oqE7VtI6aPu3otyWCkI0ZVuqlknlTsbJUmI778JwXMGOtcsj9cbhbfqQ7hdPFE0v9wwNsq8y6qnfN6OEwGYnHrN3WV+MtH8/nG/VYpZ3EIqpm5pO9gamAvQ4Gu453mklHSQ0JXfqevpS7IliRc 7Iu80fZU HYeT/PPNwoz7+Xmg= 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: List-Subscribe: List-Unsubscribe: T24gMjAyNC8zLzE1IDE1OjQxLCDpu4TmnJ3pmLMgKFpoYW95YW5nIEh1YW5nKSB3cm90ZToNCj4g DQo+IA0KPiBPbiBUaHUsIE1hciAxNCwgMjAyNCBhdCAxMDoxNeKAr0FNIDxsaXVoYWlsb25nQG9w cG8uY29tPiB3cm90ZToNCj4+DQo+PiBGcm9tOiAiSGFpbG9uZy5MaXUiIDxsaXVoYWlsb25nQG9w cG8uY29tPg0KPj4NCj4+IFRoaXMgcmV2ZXJ0cyBjb21taXQgNWRhMjI2ZGJmY2UzYTJmNDQ5Nzhj MmM3Y2Y4ODE2NmU2OWE2Nzg4Yi4NCj4+DQo+PiBwYXRjaCBtYXkgY2F1c2Ugc3lzdGVtIG5vdCBy ZXNwb25kaW5nLiBpZiBjbWEgcGFnZXMgaXMgbGFyZ2UgaW4gbHJ1X2xpc3QNCj4+IGFuZCBzeXN0 ZW0gaXMgaW4gbG93bWVtb3J5LCBtYW55IHRhc2tzIHdvdWxkIGVudGVyIGRpcmVjdCByZWNsYWlt IGFuZCB3YXN0ZQ0KPj4gY3B1IHRpbWUgdG8gaXNvbGF0ZSBhbmQgcmV0dXJuLiBUZXN0IHRoaXMg cGF0Y2ggb24gYW5kcm9pZC01LjE1IGRldmljZQ0KPj4gYW5kIHRhc2tzIGNhbGwgc3RhY2sgYXMg YmVsb3cuDQo+Pg0KPj4gVGFzayBuYW1lOiBVc2JGZnMtd29ya2VyIFthZmZpbml0eTogMHhmZl0g cGlkOiAzMzc0IGNwdTogNyBwcmlvOiAxMjAgc3RhcnQ6IGZmZmZmZjg4OTdhMzVjODANCj4+IHN0 YXRlOiAweDBbUl0gZXhpdF9zdGF0ZTogMHgwIHN0YWNrIGJhc2U6IDB4ZmZmZmZmYzAxZWFhMDAw MA0KPj4gTGFzdF9lbnF1ZXVlZF90czogICAgICAgMC4wMDAwMDAwMDAgTGFzdF9zbGVlcF90czog ICAgICAgMC4wMDAwMDAwMDANCj4+IFN0YWNrOg0KPj4gWzxmZmZmZmZkMzJlZTdkOTEwPl0gX19z d2l0Y2hfdG8rMHgxODANCj4+IFs8ZmZmZmZmZDMzMDIwMjJmYz5dIF9fc2NoZWR1bGUrMHg0ZGMN Cj4+IFs8ZmZmZmZmZDMzMDIwMWUwOD5dIHByZWVtcHRfc2NoZWR1bGUrMHg1Yw0KPj4gWzxmZmZm ZmZkMzMwMjBhNGQwPl0gX3Jhd19zcGluX3VubG9ja19pcnErMHg1NA0KPj4gWzxmZmZmZmZkMzJm MTQ5MDZjPl0gc2hyaW5rX2luYWN0aXZlX2xpc3QrMHgxZDANCj4+IFs8ZmZmZmZmZDMyZjE0Mzk5 OD5dIHNocmlua19scnV2ZWMrMHgxYmMNCj4+IFs8ZmZmZmZmZDMyZjE0N2MwYz5dIHNocmlua19u b2RlX21lbWNncysweDE4NA0KPj4gWzxmZmZmZmZkMzJmMTQ3NDE0Pl0gc2hyaW5rX25vZGUrMHgy ZDANCj4+IFs8ZmZmZmZmZDMyZjE0NmQzOD5dIHNocmlua196b25lcysweDE0Yw0KPj4gWzxmZmZm ZmZkMzJmMTQyZTg0Pl0gZG9fdHJ5X3RvX2ZyZWVfcGFnZXMrMHhlOA0KPj4gWzxmZmZmZmZkMzJm MTQyYjA4Pl0gdHJ5X3RvX2ZyZWVfcGFnZXMrMHgyZTANCj4+IFs8ZmZmZmZmZDMyZjFhOGU0ND5d IF9fYWxsb2NfcGFnZXNfZGlyZWN0X3JlY2xhaW0rMHg4NA0KPj4gWzxmZmZmZmZkMzJmMWEyZDU4 Pl0gX19hbGxvY19wYWdlc19zbG93cGF0aCsweDRkMA0KPj4gWzxmZmZmZmZkMzJmMWEyM2JjPl0g X19hbGxvY19wYWdlc19ub2RlbWFza1tqdF0rMHgxMjQNCj4+IFs8ZmZmZmZmZDMyZjE5YTIyMD5d IF9fdm1hbGxvY19hcmVhX25vZGUrMHgxODgNCj4+IFs8ZmZmZmZmZDMyZjE5YTU0MD5dIF9fdm1h bGxvY19ub2RlKzB4MTQ4DQo+PiBbPGZmZmZmZmQzMmYxOWE2MGM+XSB2bWFsbG9jKzB4NGMNCj4+ IFs8ZmZmZmZmZDMyZjkxMDIxOD5dIGZmc19lcGZpbGVfaW8rMHgyNTgNCj4+IFs8ZmZmZmZmZDMz MDAzMzc4MD5dIGtyZXRwcm9iZV90cmFtcG9saW5lW2p0XSsweDANCj4+IFs8ZmZmZmZmZDMzMDAz Mzc4MD5dIGtyZXRwcm9iZV90cmFtcG9saW5lW2p0XSsweDANCj4+IFs8ZmZmZmZmZDMyZjI4MTI5 Yz5dIF9faW9fc3VibWl0X29uZSsweDFjMA0KPj4gWzxmZmZmZmZkMzJmMjgwZTM4Pl0gaW9fc3Vi bWl0X29uZSsweDg4DQo+PiBbPGZmZmZmZmQzMmYyODBjODg+XSBfX2RvX3N5c19pb19zdWJtaXQr MHgxNzgNCj4+IFs8ZmZmZmZmZDMyZjI3ZWFjMD5dIF9fYXJtNjRfc3lzX2lvX3N1Ym1pdCsweDIw DQo+PiBbPGZmZmZmZmQzMmVlYWJiNzQ+XSBlbDBfc3ZjX2NvbW1vbi5sbHZtLjk5NjE3NDkyMjE5 NDUyNTUzNzcrMHhkMA0KPj4gWzxmZmZmZmZkMzJlZWFiYTM0Pl0gZG9fZWwwX3N2YysweDI4DQo+ PiBbPGZmZmZmZmQzMmZmMjFiZTg+XSBlbDBfc3ZjKzB4MTQNCj4+IFs8ZmZmZmZmZDMyZmYyMWI3 MD5dIGVsMF9zeW5jX2hhbmRsZXIrMHg4OA0KPj4gWzxmZmZmZmZkMzJlZTEyOGI4Pl0gZWwwX3N5 bmMrMHgxYjgNCj4+DQo+PiBUYXNrIG5hbWU6IGt0aHJlYWRkIFthZmZpbml0eTogMHhmZl0gcGlk OiAyIGNwdTogNyBwcmlvOiAxMjAgc3RhcnQ6IGZmZmZmZjg3ODA4YzAwMDANCj4+IHN0YXRlOiAw eDBbUl0gZXhpdF9zdGF0ZTogMHgwIHN0YWNrIGJhc2U6IDB4ZmZmZmZmYzAwODA3ODAwMA0KPj4g TGFzdF9lbnF1ZXVlZF90czogICAgICAgMC4wMDAwMDAwMDAgTGFzdF9zbGVlcF90czogICAgICAg MC4wMDAwMDAwMDANCj4+IFN0YWNrOg0KPj4gWzxmZmZmZmZkMzJlZTdkOTEwPl0gX19zd2l0Y2hf dG8rMHgxODANCj4+IFs8ZmZmZmZmZDMzMDIwMjJmYz5dIF9fc2NoZWR1bGUrMHg0ZGMNCj4+IFs8 ZmZmZmZmZDMzMDIwMWUwOD5dIHByZWVtcHRfc2NoZWR1bGUrMHg1Yw0KPj4gWzxmZmZmZmZkMzMw MjBhNGQwPl0gX3Jhd19zcGluX3VubG9ja19pcnErMHg1NA0KPj4gWzxmZmZmZmZkMzJmMTQ5MTY4 Pl0gc2hyaW5rX2luYWN0aXZlX2xpc3QrMHgyY2MNCj4+IFs8ZmZmZmZmZDMyZjE0Mzk5OD5dIHNo cmlua19scnV2ZWMrMHgxYmMNCj4+IFs8ZmZmZmZmZDMyZjE0N2MwYz5dIHNocmlua19ub2RlX21l bWNncysweDE4NA0KPj4gWzxmZmZmZmZkMzJmMTQ3NDE0Pl0gc2hyaW5rX25vZGUrMHgyZDANCj4+ IFs8ZmZmZmZmZDMyZjE0NmQzOD5dIHNocmlua196b25lcysweDE0Yw0KPj4gWzxmZmZmZmZkMzJm MTQyZTg0Pl0gZG9fdHJ5X3RvX2ZyZWVfcGFnZXMrMHhlOA0KPj4gWzxmZmZmZmZkMzJmMTQyYjA4 Pl0gdHJ5X3RvX2ZyZWVfcGFnZXMrMHgyZTANCj4+IFs8ZmZmZmZmZDMyZjFhOGU0ND5dIF9fYWxs b2NfcGFnZXNfZGlyZWN0X3JlY2xhaW0rMHg4NA0KPj4gWzxmZmZmZmZkMzJmMWEyZDU4Pl0gX19h bGxvY19wYWdlc19zbG93cGF0aCsweDRkMA0KPj4gWzxmZmZmZmZkMzJmMWEyM2JjPl0gX19hbGxv Y19wYWdlc19ub2RlbWFza1tqdF0rMHgxMjQNCj4+IFs8ZmZmZmZmZDMyZjE5YTIyMD5dIF9fdm1h bGxvY19hcmVhX25vZGUrMHgxODgNCj4+IFs8ZmZmZmZmZDMyZjE5YTA0ND5dIF9fdm1hbGxvY19u b2RlX3JhbmdlKzB4ODgNCj4+IFs8ZmZmZmZmZDMyZjBmYjQzMD5dIHNjc19hbGxvYysweDFiOA0K Pj4gWzxmZmZmZmZkMzJmMGZiNjJjPl0gc2NzX3ByZXBhcmUrMHgyMA0KPj4gWzxmZmZmZmZkMzJl ZjJjZTA0Pl0gZHVwX3Rhc2tfc3RydWN0KzB4ZDQNCj4+IFs8ZmZmZmZmZDMyZWYyYTc3Yz5dIGNv cHlfcHJvY2VzcysweDE0NA0KPj4gWzxmZmZmZmZkMzJlZjJiYWU0Pl0ga2VybmVsX2Nsb25lKzB4 YjQNCj4+IFs8ZmZmZmZmZDMyZWYyYzA0MD5dIGtlcm5lbF90aHJlYWQrMHg1Yw0KPj4gWzxmZmZm ZmZkMzJlZjYxOGQwPl0ga3RocmVhZGQrMHgxODQNCj4+DQo+PiB3aXRob3V0IHRoaXMgcGF0Y2gs IHRoZSB0YXNrcyB3aWxsIHJlY2xhaW0gY21hIHBhZ2VzIGFuZCB3YWtldXANCj4+IG9vbS1raWxs ZXIgb3Igbm90IHNwaW4gb24gY3B1cy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBIYWlsb25nLkxp dSA8bGl1aGFpbG9uZ0BvcHBvLmNvbT4NCj4+IC0tLQ0KPj4gIG1tL3Ztc2Nhbi5jIHwgMjIgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MjEgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL21tL3Ztc2Nhbi5jIGIvbW0vdm1z Y2FuLmMNCj4+IGluZGV4IDJmZTRhMTFkNjNmNC4uMTk3ZGRmNjIwMTlmIDEwMDY0NA0KPj4gLS0t IGEvbW0vdm1zY2FuLmMNCj4+ICsrKyBiL21tL3Ztc2Nhbi5jDQo+PiBAQCAtMjI2MSwyNSArMjI2 MSw2IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB1cGRhdGVfbHJ1X3NpemVzKHN0cnVj dCBscnV2ZWMgKmxydXZlYywNCj4+DQo+PiAgfQ0KPj4NCj4+IC0jaWZkZWYgQ09ORklHX0NNQQ0K Pj4gLS8qDQo+PiAtICogSXQgaXMgd2FzdGUgb2YgZWZmb3J0IHRvIHNjYW4gYW5kIHJlY2xhaW0g Q01BIHBhZ2VzIGlmIGl0IGlzIG5vdCBhdmFpbGFibGUNCj4+IC0gKiBmb3IgY3VycmVudCBhbGxv Y2F0aW9uIGNvbnRleHQuIEtzd2FwZCBjYW4gbm90IGJlIGVucm9sbGVkIGFzIGl0IGNhbiBub3QN Cj4+IC0gKiBkaXN0aW5ndWlzaCB0aGlzIHNjZW5hcmlvIGJ5IHVzaW5nIHNjLT5nZnBfbWFzayA9 IEdGUF9LRVJORUwNCj4+IC0gKi8NCj4+IC1zdGF0aWMgYm9vbCBza2lwX2NtYShzdHJ1Y3QgZm9s aW8gKmZvbGlvLCBzdHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykNCj4+IC17DQo+PiAtICAgICAgIHJl dHVybiAhY3VycmVudF9pc19rc3dhcGQoKSAmJg0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAg Z2ZwX21pZ3JhdGV0eXBlKHNjLT5nZnBfbWFzaykgIT0gTUlHUkFURV9NT1ZBQkxFICYmDQo+PiAt ICAgICAgICAgICAgICAgICAgICAgICBnZXRfcGFnZWJsb2NrX21pZ3JhdGV0eXBlKCZmb2xpby0+ cGFnZSkgPT0gTUlHUkFURV9DTUE7DQo+PiAtfQ0KPj4gLSNlbHNlDQo+PiAtc3RhdGljIGJvb2wg c2tpcF9jbWEoc3RydWN0IGZvbGlvICpmb2xpbywgc3RydWN0IHNjYW5fY29udHJvbCAqc2MpDQo+ PiAtew0KPj4gLSAgICAgICByZXR1cm4gZmFsc2U7DQo+PiAtfQ0KPj4gLSNlbmRpZg0KPj4gLQ0K PiANCj4+IE5BSy4NCj4gDQo+PiArQ2hhcmFuIFRlamEgS2FsbGEgLS0gVGhpcyBjYW4gY2F1c2Ug YnVpbGQgZXJyb3JzIHdoZW4gQ09ORklHX0xSVV9HRU49eS4NCj4gDQo+PiBJZiB5b3UgcGxhbiB0 byBwb3N0IGEgdjIsIHBsZWFzZSBpbmNsdWRlIGEgcmVwcm9kdWNlci4gVGhhbmtzLg0KPiANCj4g Q291bGQgeW91IHBsZWFzZSByZXRlc3QgdGhlIGNhc2Ugd2l0aCBiZWxsb3cgcGF0Y2gsIHdoaWNo IGhhcyBub3QgYmVlbiBpbiB0aGUgYW9zcCB5ZXQuDQo+IA0KPiBGcm9tOiBaaGFveWFuZyBIdWFu ZyA8emhhb3lhbmcuaHVhbmdAdW5pc29jLmNvbT4NCj4gDQo+IEFjY29yZGluZyB0byBjdXJyZW50 IENNQSB1dGlsaXphdGlvbiBwb2xpY3ksIGFuIGFsbG9jX3BhZ2VzKEdGUF9VU0VSKQ0KPiBjb3Vs ZCAnc3RlYWwnIFVOTU9WQUJMRSAmIFJFQ0xBSU1BQkxFIHBhZ2UgYmxvY2tzIHZpYSB0aGUgaGVs cCBvZg0KPiBDTUEocGFzcyB6b25lX3dhdGVybWFya19vayBieSBjb3VudGluZyBDTUEgaW4gYnV0 IHVzZSBVJlIgaW4gcm1xdWV1ZSksDQo+IHdoaWNoIGNvdWxkIGxlYWQgdG8gZm9sbG93aW5nIGFs bG9jX3BhZ2VzKEdGUF9LRVJORUwpIGZhaWwuDQo+IFNvbHZpbmcgdGhpcyBieSBpbnRyb2R1Y2lu ZyBzZWNvbmQgd2F0ZXJtYXJrIGNoZWNraW5nIGZvciBHRlBfTU9WQUJMRSwNCj4gd2hpY2ggY291 bGQgaGF2ZSB0aGUgYWxsb2NhdGlvbiB1c2UgQ01BIHdoZW4gcHJvcGVyLg0KPiANCj4gLS0gRnJl ZV9wYWdlcygzME1CKQ0KPiB8DQo+IHwNCj4gLS0gV01BUktfTE9XKDI1TUIpDQo+IHwNCj4gLS0g RnJlZV9DTUEoMTJNQikNCj4gfA0KPiB8DQo+IC0tDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBaaGFv eWFuZyBIdWFuZyA8emhhb3lhbmcuaHVhbmdAdW5pc29jLmNvbT4NCj4gLS0tDQo+IHY2OiB1cGRh dGUgY29tbWVudHMNCj4gLS0tDQo+IC0tLQ0KPiAgbW0vcGFnZV9hbGxvYy5jIHwgNDQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0NCj4gIDEgZmlsZSBjaGFuZ2Vk LCA0MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL21t L3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuYw0KPiBpbmRleCA0NTI0NTk4MzZiNzEuLjVh MTQ2YWE3YzBhYSAxMDA2NDQNCj4gLS0tIGEvbW0vcGFnZV9hbGxvYy5jDQo+ICsrKyBiL21tL3Bh Z2VfYWxsb2MuYw0KPiBAQCAtMjA3OCw2ICsyMDc4LDQzIEBAIF9fcm1xdWV1ZV9mYWxsYmFjayhz dHJ1Y3Qgem9uZSAqem9uZSwgaW50IG9yZGVyLCBpbnQgc3RhcnRfbWlncmF0ZXR5cGUsDQo+IA0K PiAgfQ0KPiANCj4gKyNpZmRlZiBDT05GSUdfQ01BDQo+ICsvKg0KPiArICogR0ZQX01PVkFCTEUg YWxsb2NhdGlvbiBjb3VsZCBkcmFpbiBVTk1PVkFCTEUgJiBSRUNMQUlNQUJMRSBwYWdlIGJsb2Nr cyB2aWENCj4gKyAqIHRoZSBoZWxwIG9mIENNQSB3aGljaCBtYWtlcyBHRlBfS0VSTkVMIGZhaWxl ZC4gQ2hlY2tpbmcgaWYgem9uZV93YXRlcm1hcmtfb2sNCj4gKyAqIGFnYWluIHdpdGhvdXQgQUxM T0NfQ01BIHRvIHNlZSBpZiB0byB1c2UgQ01BIGZpcnN0Lg0KPiArICovDQo+ICtzdGF0aWMgYm9v bCB1c2VfY21hX2ZpcnN0KHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBpbnQgb3JkZXIsIHVu c2lnbmVkIGludCBhbGxvY19mbGFncykNCj4gK3sNCj4gKyAgICAgICB1bnNpZ25lZCBsb25nIHdh dGVybWFyazsNCj4gKyAgICAgICBib29sIGNtYV9maXJzdCA9IGZhbHNlOw0KPiArDQo+ICsgICAg ICAgd2F0ZXJtYXJrID0gd21hcmtfcGFnZXMoem9uZSwgYWxsb2NfZmxhZ3MgJiBBTExPQ19XTUFS S19NQVNLKTsNCj4gKyAgICAgICAvKiBjaGVjayBpZiBHRlBfTU9WQUJMRSBwYXNzIHByZXZpb3Vz IHpvbmVfd2F0ZXJtYXJrX29rIHZpYSB0aGUgaGVscCBvZiBDTUEgKi8NCj4gKyAgICAgICBpZiAo em9uZV93YXRlcm1hcmtfb2soem9uZSwgb3JkZXIsIHdhdGVybWFyaywgMCwgYWxsb2NfZmxhZ3Mg JiAofkFMTE9DX0NNQSkpKSB7DQo+ICsgICAgICAgICAgICAgICAvKg0KPiArICAgICAgICAgICAg ICAgICogQmFsYW5jZSBtb3ZhYmxlIGFsbG9jYXRpb25zIGJldHdlZW4gcmVndWxhciBhbmQgQ01B IGFyZWFzIGJ5DQo+ICsgICAgICAgICAgICAgICAgKiBhbGxvY2F0aW5nIGZyb20gQ01BIHdoZW4g b3ZlciBoYWxmIG9mIHRoZSB6b25lJ3MgZnJlZSBtZW1vcnkNCj4gKyAgICAgICAgICAgICAgICAq IGlzIGluIHRoZSBDTUEgYXJlYS4NCj4gKyAgICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAg ICAgICAgY21hX2ZpcnN0ID0gKHpvbmVfcGFnZV9zdGF0ZSh6b25lLCBOUl9GUkVFX0NNQV9QQUdF UykgPg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmVfcGFnZV9zdGF0ZSh6 b25lLCBOUl9GUkVFX1BBR0VTKSAvIDIpOw0KPiArICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAg ICAgICAgICAvKg0KPiArICAgICAgICAgICAgICAgICogd2F0ZXJtYXJrIGZhaWxlZCBtZWFucyBV Tk1PVkFCTEUgJiBSRUNMQUlNQkxFIGlzIG5vdCBlbm91Z2gNCj4gKyAgICAgICAgICAgICAgICAq IG5vdywgd2Ugc2hvdWxkIHVzZSBjbWEgZmlyc3QgdG8ga2VlcCB0aGVtIHN0YXkgYXJvdW5kIHRo ZQ0KPiArICAgICAgICAgICAgICAgICogY29ycmVzcG9uZGluZyB3YXRlcm1hcmsNCj4gKyAgICAg ICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAgICAgY21hX2ZpcnN0ID0gdHJ1ZTsNCj4gKyAg ICAgICB9DQo+ICsgICAgICAgcmV0dXJuIGNtYV9maXJzdDsNCj4gK30NCj4gKyNlbHNlDQo+ICtz dGF0aWMgYm9vbCB1c2VfY21hX2ZpcnN0KHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBpbnQg b3JkZXIsIHVuc2lnbmVkIGludCBhbGxvY19mbGFncykNCj4gK3sNCj4gKyAgICAgICByZXR1cm4g ZmFsc2U7DQo+ICt9DQo+ICsjZW5kaWYNCj4gIC8qDQo+ICAgKiBEbyB0aGUgaGFyZCB3b3JrIG9m IHJlbW92aW5nIGFuIGVsZW1lbnQgZnJvbSB0aGUgYnVkZHkgYWxsb2NhdG9yLg0KPiAgICogQ2Fs bCBtZSB3aXRoIHRoZSB6b25lLT5sb2NrIGFscmVhZHkgaGVsZC4NCj4gQEAgLTIwOTEsMTIgKzIx MjgsMTEgQEAgX19ybXF1ZXVlKHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBpbnQgb3JkZXIs IGludCBtaWdyYXRldHlwZSwNCj4gICAgICAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdfQ01BKSkg ew0KPiAgICAgICAgICAgICAgICAgLyoNCj4gICAgICAgICAgICAgICAgICAqIEJhbGFuY2UgbW92 YWJsZSBhbGxvY2F0aW9ucyBiZXR3ZWVuIHJlZ3VsYXIgYW5kIENNQSBhcmVhcyBieQ0KPiAtICAg ICAgICAgICAgICAgICogYWxsb2NhdGluZyBmcm9tIENNQSB3aGVuIG92ZXIgaGFsZiBvZiB0aGUg em9uZSdzIGZyZWUgbWVtb3J5DQo+IC0gICAgICAgICAgICAgICAgKiBpcyBpbiB0aGUgQ01BIGFy ZWEuDQo+ICsgICAgICAgICAgICAgICAgKiBhbGxvY2F0aW5nIGZyb20gQ01BIGJhc2Ugb24ganVk Z2luZyB6b25lX3dhdGVybWFya19vayBhZ2Fpbg0KPiArICAgICAgICAgICAgICAgICogdG8gc2Vl IGlmIHRoZSBsYXRlc3QgY2hlY2sgZ290IHBhc3MgdmlhIHRoZSBoZWxwIG9mIENNQQ0KPiAgICAg ICAgICAgICAgICAgICovDQo+ICAgICAgICAgICAgICAgICBpZiAoYWxsb2NfZmxhZ3MgJiBBTExP Q19DTUEgJiYNCj4gLSAgICAgICAgICAgICAgICAgICB6b25lX3BhZ2Vfc3RhdGUoem9uZSwgTlJf RlJFRV9DTUFfUEFHRVMpID4NCj4gLSAgICAgICAgICAgICAgICAgICB6b25lX3BhZ2Vfc3RhdGUo em9uZSwgTlJfRlJFRV9QQUdFUykgLyAyKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHVz ZV9jbWFfZmlyc3Qoem9uZSwgb3JkZXIsIGFsbG9jX2ZsYWdzKSkgew0KPiAgICAgICAgICAgICAg ICAgICAgICAgICBwYWdlID0gX19ybXF1ZXVlX2NtYV9mYWxsYmFjayh6b25lLCBvcmRlcik7DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlKQ0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBwYWdlOw0KPiAtLQ0KPiANCkhpIFpoYW95YW5nOg0KDQpJIHdy aXRlIGEgcmVwcm9kdWNlciBpbiB2Mi1wYXRjaCwgdGhpcyBtYXkgbm90IHNvbHZlIHRoZSBjYXNl LiBiZWNhdXNlIGlmIA0Kc3lzdGVtIGluIGxvd21lbW9yeSBhbGwgbHJ1X2xpc3QgaXMgY21hIHBh Z2VzLiBkaXJlY3RfcmVjbGFpbSB3b3VsZCB3YXN0aW5nIHRpbWUNCnNjYW4gYW5kIHNraXAuIEZv ciBub3cgd2UgY291bGQgbm90IGtub3cgaG93IG1hbnkgY21hIHBhZ2VzIGluIGxydSBhbmQgZG8N CnNvbWUgaGV1cmlzdGljIGlzIHNvbWV0aGluZyB3ZWlyZC4NCg0KQnJzLA0KSGFpbG9uZy4NCg0K