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 A584CC02199 for ; Fri, 7 Feb 2025 16:03:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3E04F6B008A; Fri, 7 Feb 2025 11:03:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 36880280005; Fri, 7 Feb 2025 11:03:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1BCB7280001; Fri, 7 Feb 2025 11:03:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E66FA6B008A for ; Fri, 7 Feb 2025 11:03:37 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B281D1C99C0 for ; Fri, 7 Feb 2025 16:03:37 +0000 (UTC) X-FDA: 83093618874.15.6307166 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02olkn2083.outbound.protection.outlook.com [40.92.44.83]) by imf28.hostedemail.com (Postfix) with ESMTP id CA743C0013 for ; Fri, 7 Feb 2025 16:03:34 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=outlook.com header.s=selector1 header.b=hM9r2ZNR; spf=pass (imf28.hostedemail.com: domain of stephen.eta.zhou@outlook.com designates 40.92.44.83 as permitted sender) smtp.mailfrom=stephen.eta.zhou@outlook.com; dmarc=pass (policy=none) header.from=outlook.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738944214; 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=Yc55Gqc5C7dxxiTxp7yalXB1xLeaIgk5c1OThp/v7Kg=; b=SWe6Ksb0zm7vth6q1VWo1PeTSaDdy99nTHhFhS91aGRVGWaouoQHvz78PbqOAlgac+qDhb pYZAy3RrACB7JjRz4672rXbixMtkAQET1NActH2Kf4d+/hhJXPDGIMAxEn2AkOKjn/LtZ8 8lmNuMEpITP8mvwVUtVJPq7mzggSVN4= ARC-Authentication-Results: i=2; imf28.hostedemail.com; dkim=pass header.d=outlook.com header.s=selector1 header.b=hM9r2ZNR; spf=pass (imf28.hostedemail.com: domain of stephen.eta.zhou@outlook.com designates 40.92.44.83 as permitted sender) smtp.mailfrom=stephen.eta.zhou@outlook.com; dmarc=pass (policy=none) header.from=outlook.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1738944214; a=rsa-sha256; cv=pass; b=GkA0WlMn6L7zcOPU1shytKdszW5Pv7HgM2zF/StNXwK1HCnzMhz9adKs+6N6zQmGrUm9iq kPHjg29fSbJg/xAzG0gq9+JY++KQQmvHh/5fdg+HMuRhe50Apwi9N34d3loDkz6+HbAcep S4xulKDiwrg2pw7KnHJ5lyZ+vLuD2XM= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=j62xHYfiEOt9Vrjp2NcHcucCFoaPzXdsx/hYez0cNaARJ4+dVX86kMk2omTpWnEg9ab0q4+0SGxf//0rGG18Kshzftm1iWduhaCdD/9xc7w425V1tqZLu2KT9mPDmUtrRViCmSyGM3vdjohlAt3ov7PkFnK7IfWAmj8DXaBMeJ7bkkrJZK9HorwDQHI2Lx5PZaC7A0L3w47eS0n5mgL+AYEM8QVM4yGNwWShIG2ZKfQet699+aZy20L7ZKaYBWBrOtG8l5y9+Qgqx03DnLebjCbj/3noaXUwxF7kQ/nWbiZZxe4AxmKk2njxv6DC21gfubnIovfRrPp+KZIj+F3sDQ== 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=Yc55Gqc5C7dxxiTxp7yalXB1xLeaIgk5c1OThp/v7Kg=; b=jA/0/l2C+QIAK9VGZuff1B2e/TyKtdMvHlOelc8ziLxq0fwjn+oRojQxyhrkO81tlY5MH0HKpC4B5pJKmIKJOwPSP8urvCtc4aMCJE7wd80tXJAaT/aGn8txlc4QSpvsoRKTR7jtFACtqdNSOWMVJEsa5m9aCeL5/pYK5JKVt+aSDrqJGEsB6Ud9TGD5qk2kFjTXFtKe8jLEui5pAalL6+m/TPYSGnL614iiVQ+7CD0smiW8+2x3vI/vUhMy7YWiyrqvzNFRsEJEWLFo2utxtCqOpi772gK56qqYEe9mUsnVirXzIuwwR81ZnmmS2GB9kOLVHvTdaOGKsJhHgQKw5w== 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=Yc55Gqc5C7dxxiTxp7yalXB1xLeaIgk5c1OThp/v7Kg=; b=hM9r2ZNR7HdhZYnO2NvweGPCRgpoYmcgsCA7W5LKSgiy6QXRQlCMNqtHVMUP18KrC2vIIyx4MN+XQ7hBEz2gddFTkjjx3qXak6MxGnuet5VCfARb6LrN90V62BijDHqCALvimQmPUN+XODRO5NKQNDSXaRuwAGNwxUrblz6QtDEgbIJf9TdUR3fdOBCxs4DTsd8DKCy/8uVtUqnrnUW5vXPVPr8kNLD5Jrw2Gn+corYKWDRswGdy9TUT4W5pvlPWjJ7ZlDAUPIiVMakEq2nENRVkjXvPootdpqzfFQdmyMCNG6h8Yby0vyjWvFByulMNGzq44GHDr5Ur9Jh3Gh+V+g== Received: from BYAPR12MB3205.namprd12.prod.outlook.com (2603:10b6:a03:134::32) by PH7PR12MB9126.namprd12.prod.outlook.com (2603:10b6:510:2f0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.11; Fri, 7 Feb 2025 16:03:31 +0000 Received: from BYAPR12MB3205.namprd12.prod.outlook.com ([fe80::489:5515:fcf2:b991]) by BYAPR12MB3205.namprd12.prod.outlook.com ([fe80::489:5515:fcf2:b991%5]) with mapi id 15.20.8398.025; Fri, 7 Feb 2025 16:03:31 +0000 From: Stephen Eta Zhou To: Mike Rapoport CC: "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0hdIG1tOiBvcHRpbWl6ZSBtZW1ibG9ja19hZGRfcmFu?= =?utf-8?Q?ge()_for_improved_performance?= Thread-Topic: [PATCH] mm: optimize memblock_add_range() for improved performance Thread-Index: AQHbd5I+MclXFgUVVk6Vm36iiqWOEbM78nGAgAAPzuqAAAHupQ== Date: Fri, 7 Feb 2025 16:03:31 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR12MB3205:EE_|PH7PR12MB9126:EE_ x-ms-office365-filtering-correlation-id: cb0b5cc4-e26d-4548-1c31-08dd4790f7ae x-microsoft-antispam: BCL:0;ARA:14566002|12121999004|8060799006|8062599003|5012599010|15080799006|15030799003|19110799003|461199028|3412199025|41001999003|102099032|440099028; x-microsoft-antispam-message-info: =?utf-8?B?OThiekNQMEdXb09XUmZsK21TRFBMQ3VXSjFvaGQwWlBwTExSRkx6U1doMjIv?= =?utf-8?B?OFdSUFE4RFRSYXBRMUwvTzRMVXg1eTRXci9WYlg4blE0czZaNGkwenFLZ2ZI?= =?utf-8?B?djUyVlloL3pETUdUTHRLRXUwcjJodmlNYmVDVnBkVnZWWVVTUjBFalZuSFZ2?= =?utf-8?B?OGFBcERYcXVZcFh0akd2OXZTYUNHR0xINVozTDFYR1liRFRtQTVIYktUTk9D?= =?utf-8?B?YnV4cGZYblJKNkNuRE5MZ3QxTUlYMkFXTTFYaFpudWNuNGhLaDNiTmhXQWxJ?= =?utf-8?B?dXRJc29jRnA3TXBTWktqTFNRUCtXM2lqdFAzZDFwSXBMYkxqdDlRR1E0ckxU?= =?utf-8?B?OGU4M29vb3ZJejQ4OVdZZFkwVStWK1ZoUzFCMFR5Q3RYQmtJc1BjTnZsVE45?= =?utf-8?B?Y3NFQXZINXpYWWJtdjMrNUVaZHZvelFCc2VyWjN2WlZ6S0FnZUpLUXRoV2N6?= =?utf-8?B?S1k2bmRYbWtteWxmeGdZb3AzVWNGMmdnNTQ3cDIyYkRJV3NvV3RQdndCd2lL?= =?utf-8?B?K2o0eVRsRmhxSi9kMXNGMWVpd3J2V2VkdXBhZGFwdVRlUlBsYkZtS28vVTN1?= =?utf-8?B?UjcvNWd1UFlVTGYvTDBtR2UvbStjUm1TOGU2VnQ1Y2dSZjZyaDFJWVlBYVZT?= =?utf-8?B?c045SEhQYXlXbDhXb1hzZmNWWnFuZW1qakZlV3czREZTZG9nSWM4bDRJY09h?= =?utf-8?B?azhYaVVxalNUNlNBTjRtdFlDbXljTmdGUlV1ZVZlQUhZK1hQYy9yR0QyYzBq?= =?utf-8?B?RDdtUjc3RDJDWmpTL0J3clQ2NWtWQWZ3MEkyRHFkMXliaUwyb0c0RDZNNXBH?= =?utf-8?B?SnBzbWxENll3YzBHdndMckRUN1RFM1VKQmZGYS9lNmVwZVJjVzg0R0tNTk10?= =?utf-8?B?NmNQaThTaVh1a3lSM1htQ0xjQzhRRWdOMTRiSXBoSHQrS01PZDRWaHdsVFoz?= =?utf-8?B?RElEb2JwSFh4d1gyV2FUN2t5RjRZTWFueUdtbjcrTmVaWlF1NUFFUU1hRTZa?= =?utf-8?B?MmoxVmI1UldBZVdMR2gvVExLZVZEdTRQWDd2WGtieGo1UGMvL3dRd0dFWjN1?= =?utf-8?B?YUI4QUFINkdCbTlrWmdGaUZPK3grcHFSRkhHdWVLamVhOHNHc014dWNyQUxI?= =?utf-8?B?RHdudUg1K1d6RGk0REMvQ1c4bDhIN05UWC9HdjRoZGV0TVB3cFBDb0hwTGRh?= =?utf-8?B?NzhvOEQrNmxPN1dSOVB0ZWJTM3Y5SGtZMG1scnMyTk9meXIyRmJHQnYyTFNh?= =?utf-8?B?Z2NtVCtJNjVVQlQ4TFpYelRmY280eHhGSU9pYWpmS1lxZksxcGtOYlNmMW5G?= =?utf-8?B?WDdNZXVHUXlxN0haZTFSSGRrRWhoWFAvcmhsaWpmdXU0cDZxSmJFTVZLcWQr?= =?utf-8?B?b2xRU1hJRmJMOENOT0UyUVVZdlc1bndYTkJXZ2lnTkZpM3BTTEVDMEl6WFNa?= =?utf-8?B?alZwOXlNMVU0YzVBU1Z5SkpjUkR2OXZpdWhqRys5Y2JENE02MHYzaWpGektR?= =?utf-8?B?YU5MSk96TXRIdmVLd09vblBnS3ZHM3o2V2VJY3FBODJ0SUxsVGVLcnY4SG9R?= =?utf-8?Q?vrPuf/7uKsASEif3vpTMyvo9I=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VUVyV3lpWGtFcG44SmJvbU1tbEhjMTE0a2hoODZ5R2I0dlF4TFJMbm5vcGFE?= =?utf-8?B?eUxMWjRCRWp6Qng4Q3BWVVQ0VFgvVWNKYld6SmsyaktiWExjSHlhb2dxbWNo?= =?utf-8?B?YTNzY2pYLzNIZkJqTzA2NEdKMW41amVQRHZ3T25FREFHclU3TXR6Rm9aeExX?= =?utf-8?B?Qko0RzRYa2s4d1g3M01zeDlUbWJFenRWUnkvc0ZlRkx4ajlRTzFQUlpzSDZV?= =?utf-8?B?MG1SRlNLTVJBanJBV1FSREdwSC94U2NhaHRQUTU0cjJlSVg0a3BLMXFvczFD?= =?utf-8?B?ZTBhZEludENrcVI4YSsxeFhyOTJ4cDVldTZ3SWNYTXRUc0pTc3FUdGVlTCtY?= =?utf-8?B?c0tvVktURklxd2ZjWUltZzVhZjJUOUJpOE9seG1MWldOeVhQcURRN04reU9q?= =?utf-8?B?WEZRd1FEbGhOZWI3aWJtYnNCdURTSEUwK09KZHJjNjYrcmVaai96cHFBV09u?= =?utf-8?B?YTlVUk4vc1gwY1lCekdGYTRRa1VDL0preW90Yk8rcGo5RFZBVjFwV0dDeldr?= =?utf-8?B?YW5uNC9aV1NjZXZnbTRNNlJOZjBkQlRjcnFtVE43d0VMa1MvYmVrNGdwbVNx?= =?utf-8?B?Y3Y4bTdEYzEwNTFrNHRwVW5MbitZajZOL1UxNEw4YW12VVFxNnlCalBnSmZt?= =?utf-8?B?WUo0aCt0djZpaWZENnhvZEJmUnFIc1ZhK1pBYkxmcU5VS1NMZHI5RmxQOUxl?= =?utf-8?B?YTNPVWJKR2Z5ZDJXeGhyekF2Qk5sYUhwdDhJWDkrQjVETUs5YkJLbVNCODZo?= =?utf-8?B?MjI5ZXcvTEFnTzF3USt3RXkwNXFrNU9PbCtBK0x1RXNtbEpWR3JibFNDaTdU?= =?utf-8?B?SHRxZ1BSMFd2UTFNQ3RZTm81L2hxOFZTMzFvVWZjVlUzMjlubGxIaW9FdHdQ?= =?utf-8?B?eEFUQ2hZTHpsT0RVSXF5V0ZWT2kxQmQ4enVsRGY4OXAzWjhVdFFXc2U4U2Vq?= =?utf-8?B?UzgyMXUrUVBQbzN2cDdLUnZpUWM1a1ljVDJwU3BoRTZ3VS9ZWmgvSFNGQlU4?= =?utf-8?B?dW16ejRsUFJkTUF1K0w1enVtalJtNnY1SXZVRCtzWFNtazdCWThjOE5kUDBW?= =?utf-8?B?a2w5NlZrbjhQdjhUejRibkdkUkR2a29PZXFlQno1Rjc1eWVjd2tTZ0tOWEg3?= =?utf-8?B?VFBkOEtKcndBdlNBNm9aM0hkT3BWeVB1OGJOYUwxMzdCRDQzRWNjSHdQMTNp?= =?utf-8?B?TmQrbUZJdlhBTzltZlMwZGc5TTNJbitRbEduaVhMZFR5aUhkMzUvcDBQVGVn?= =?utf-8?B?WVhJZHBZR3JwZytodlQxazZ0NDArZDl2dHhkNkRvRGlQaVNOZ25ZRzZoQXBs?= =?utf-8?B?UlpBU1lLQW45MkdZTUswZExPK0FCS1pXcjdqUndWZUtYWWJoT2FuSTVIeTlh?= =?utf-8?B?bmpCS3lTMUIydnJpMnZwcEdUbC9mdkF6cnlaSE1UMDdYRWo2cGdkL3hBTlQ5?= =?utf-8?B?QkJsY1JVczgvdzNZVVEzeGZsWEpyT3VKT2NURGpRU3ZXVGk5Vm80NFlaMjZl?= =?utf-8?B?RTB5ZTNERURwQ05hT1VnZll6eWVGSVNMaGh4aWJ4emdOczRsbHRrTTk1SFRR?= =?utf-8?B?QUhNRzcrZWtIN1ZvM2dLMFBlMVhqOE9pZjVCMmgzZE9aZWhQOFhWcjR0RUxT?= =?utf-8?Q?Epzax7hYNvuGAf2yRhoYIuw9hVfb3BWl7C4z4ilLs+iw=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB3205.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: cb0b5cc4-e26d-4548-1c31-08dd4790f7ae X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2025 16:03:31.2550 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9126 X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: CA743C0013 X-Stat-Signature: brqk43bzzjwumouq6nugc61k1ff8kfqy X-HE-Tag: 1738944214-167533 X-HE-Meta: U2FsdGVkX1/fexMlRnzKWDHpucdF8IMTlU0EdTWFMItNOjvd3qgTkCg4MxyMeekbnfvKXfkCK85IxfitcFzf/t5ZT8K366wmjiUKKp68vzwdO3ApD1hvwAUXRcUgwY3ZzZEoqFKh2SS9jyJSlKx8fJVt6z008n0NoxfoK5LL95UVJd9Vi0SeoAaijMbgdKWc8Byg32lVsxshbsKkbusM3/r+oEpTF6goNLTZD4KkMZ3dCcaFRmFZCAybqcEvyAaWNpJvflbPLds7t1QDKdtCDU47Bx/VY/eElc+EJHePrubFkjCSlq7dQ4bRX/nGyYRD+kHZkioWYmVMXhBr610x+66v1FlQSMOUi7lvOFz7ZFCGPSS0AGReAPIH6B2SUe2tuZ9wCD0PbAdxhQ2b2APvxVKAOUziRxzXnR2Sjlt229Cruc3AaSo/19uTZhnnHKGeDpGuRWfwtKYQw96NkwukTKqnKjx87t76aV2/2c62f4sDpWI5dhMlp2dW0lkBPGmNlsgVGW07BzE8/6i4Ize1jwWHq+xcDvFHgHN8w5VlFZDSQnOrzuzgNqPo7xJYrJ/qe/bVPisETntO22LhwECyCyEeCaGvt/TvRq1C/jbhOGZcZaYcbw2dhoqLbVmrxDR70H99qk7bfcfA4tj8B61OxIdf0Z7S8rhJazPDN9Vbolx4l+imLuhfDF+tgUigjgc8KzdwIh6j0me13sHA2VkI1p4utvRQWaUQ9XiGg6aAVyBiLkLFy/mLaEt+Rp1dmoryqGqxdlNM5uY3XkYPfh3uB7md6LV73DMjY6hUfBSmh42G8OGN/k+7GsX191GBu+y5CGy09GwYE7AfNE3nr+2zANUuYg9b4gU6oTff5G5Z5wPpjJxCB+Wr06eYAHEBR7pJmmW+2AxyhUaq6siQd71AC6X5JRufBROEsj1rm6elU/mFBFINpSAv0ae+2Ne3keCeSsbJ5LRsyzGIaF+4fZl dr1BgaZt GPy2Dph25/9M6D599XRvpJ2koXyw/woz3j3l7m0P9uIz95vUctRVnVCIv64j+xyzJyAx4KrKgSlrAQ9oy8nP9RxbjlNe5UIPGV4B5LsRJMEMNj+AWmSpYne+V/Id9ZeIfv/iA2Cb9bB9XtRQjNlZHmAIXE5PQvaEwgQS3IEA7qOz9q1uwuo1hdher0qlwtDru+wYFBKgpeSkyBSeg7P4wRUkc5heDsFdA5Vapr4F4+mzyyJ03tmHusjtFbbCOa6pXu69WClZb42ZgP30769HYeQ59vm1GXNgxOmvBO6BxRyXpz2InukQ9bJKmYVLIXglN9JtzBhCLI2w0E7iM5jOl3664+0p4PYPuvnoe/bYFjh5FMq57mDQtiMM227cFDL26SPMu+2jKKmNBdlY+SiZ5WB5zes9YegM+8xIbojwg1FNONCO1DdCqOb6Y9xtYoJxaw19lJcr9c660wBOEFI8YLkrgjv+qaBOmBhZfD4+MqU2ncj9h3uYFZkjVwO86QHDzzUldahzDpBS62BNBTeiAioVvfOAyPehhdmpsJ/Ex1C+THyFJ4tebdnMIibJh1B/8xSy/LXEYyHB+rVVJZJxyGIF9kSVNy12hK3FwNHGKOsL9/Xid6OTDR2k1j7BVmV4qW3S/IZRfCYBF3de4pOntyagneO5doiAPh1asDk3x288y8KfP0SkqTl5SZVHhhv2hbyKfBPvM8mcQ4jHoxxwwZ9DdSTJAxtSxh9SmpREzCdhCPbNuzozniNqBDiBiFJW2HoLM 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: SGkgTWlrZSwKClRoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjayBhbmQgaW5zaWdodHMuIEkgZnVs bHkgdW5kZXJzdGFuZCB5b3VyIGNvbmNlcm5zIHJlZ2FyZGluZyB0aGUgZnJhZ2lsaXR5IG9mIHRo ZSBjb2RlIGluIGBtZW1ibG9ja19hZGRfcmFuZ2UoKWAgYW5kIHRoZSBjaGFsbGVuZ2VzIGluIGhh bmRsaW5nIGVkZ2UgY2FzZXMuIEkgYWxzbyBhY2tub3dsZWRnZSB5b3VyIHBvaW50IHRoYXQgd2hp bGUgdGhlIENQVSBjeWNsZSByZWR1Y3Rpb25zIGFyZSBtZWFzdXJhYmxlLCB0aGV5IG1heSBub3Qg ZnVsbHkgY2FwdHVyZSB0aGUgbW9zdCBpbXBvcnRhbnQgZmFjdG9yIOKAlCB0aGUgYm9vdCB0aW1l IHNwZWVkdXAuCgpSZWdhcmRpbmcgdGhlIHBlcmZvcm1hbmNlIG1ldHJpY3MsIEkgd2FudCB0byBj bGFyaWZ5IHRoYXQgdGhlIG1haW4gZ29hbCBvZiBteSBvcHRpbWl6YXRpb24gd2FzIHRvIGltcHJv dmUgdGhlIGJvb3QgdGltZSBkdXJpbmcgdGhlIGVhcmx5IHN0YWdlcyBvZiBrZXJuZWwgaW5pdGlh bGl6YXRpb24uIFdoaWxlIHJlZHVjaW5nIHRoZSBDUFUgY3ljbGVzIGZvciBgbWVtYmxvY2tfYWRk X3JhbmdlKClgIGlzIGEgcG9zaXRpdmUgb3V0Y29tZSwgdGhlIHJlYWwgYmVuZWZpdCBpcyBpbiBy ZWR1Y2luZyBrZXJuZWwgaW5pdGlhbGl6YXRpb24gdGltZSwgcGFydGljdWxhcmx5IGJlZm9yZSB0 aGUgYnVkZHkgc3lzdGVtIHRha2VzIG92ZXIuIEkgdW5kZXJzdGFuZCB0aGF0IHRoZSBDUFUgY3lj bGUgcmVkdWN0aW9uIGFsb25lIGRvZXNuJ3QgYWRkcmVzcyB0aGUgY3JpdGljYWwgcXVlc3Rpb24g b2YgYm9vdCB0aW1lIHNwZWVkdXAsIGFuZCBJIHdpbGwgd29yayBvbiBtZWFzdXJpbmcgdGhpcyBt b3JlIGRpcmVjdGx5LgoKVG8gYWRkcmVzcyB0aGUgY29uY2VybiBhYm91dCByZWFsIGhhcmR3YXJl IGFuZCBjb3JuZXIgY2FzZXMsIEkgcGxhbiB0byBjb25kdWN0IGZ1cnRoZXIgdGVzdGluZyBvbiBh Y3R1YWwgaGFyZHdhcmUgd2l0aCBkaWZmZXJlbnQgbWVtb3J5IGNvbmZpZ3VyYXRpb25zIHRvIGVu c3VyZSB0aGUgcm9idXN0bmVzcyBvZiB0aGUgcGF0Y2guIFRoaXMgd2lsbCBoZWxwIGVuc3VyZSB0 aGUgc3RhYmlsaXR5IGFuZCBwZXJmb3JtYW5jZSBiZW5lZml0cyBhcmUgY29uc2lzdGVudCBhY3Jv c3MgdmFyaW91cyBzZXR1cHMuCgpJIGFsc28gcGxhbiB0byBpbmNyZWFzZSB0aGUgdGVzdGluZyBj b3ZlcmFnZSBmb3IgZWRnZSBjYXNlcyBhbmQgaW5jbHVkZSBtb3JlIHJvYnVzdCBmYWxsYmFjayBt ZWNoYW5pc21zIHRvIGFkZHJlc3MgdGhlIHBvdGVudGlhbCBmcmFnaWxpdHkgbWVudGlvbmVkLiBJ IHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBjaGFuZ2VzIGhhbmRsZSBhbGwgcG9zc2libGUgc2NlbmFy aW9zIGdyYWNlZnVsbHkuCgpJbiBhZGRpdGlvbiwgSSB3aWxsIGZvY3VzIG9uIG1lYXN1cmluZyBi b290IHRpbWUgbW9yZSBkaXJlY3RseSB1c2luZyB0b29scyBsaWtlIGBib290Y2hhcnRgIGFuZCBz aGFyZSB0aGUgcmVzdWx0cywgY29tcGFyaW5nIHRoZSBib290IHRpbWVzIGJlZm9yZSBhbmQgYWZ0 ZXIgdGhlIG9wdGltaXphdGlvbiB0byBkZW1vbnN0cmF0ZSB0aGUgYWN0dWFsIGltcGFjdCBvbiBz dGFydHVwIHBlcmZvcm1hbmNlLgoKR2l2ZW4gdGhlIGNvbmNlcm5zIHJhaXNlZCwgSSB3b3VsZCBn cmVhdGx5IGFwcHJlY2lhdGUgeW91ciBndWlkYW5jZSBvbiB3aGV0aGVyIHlvdSB0aGluayBpdCdz IHdvcnRod2hpbGUgZm9yIG1lIHRvIGNvbnRpbnVlIHdpdGggdGhpcyBhcHByb2FjaC4gU2hvdWxk IEkgcHJvY2VlZCB3aXRoIGZ1cnRoZXIgcmVmaW5lbWVudHMgYW5kIHRlc3RpbmcsIG9yIHdvdWxk IHlvdSByZWNvbW1lbmQgYSBkaWZmZXJlbnQgZGlyZWN0aW9uIGZvciBvcHRpbWl6YXRpb24/IFlv dXIgaW5wdXQgd2lsbCBiZSBpbnZhbHVhYmxlIGluIGVuc3VyaW5nIHRoaXMgcGF0Y2ggbWVldHMg Ym90aCBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5IGdvYWxzLgoKVGhhbmsgeW91IGFnYWluIGZv ciB5b3VyIGNhcmVmdWwgcmV2aWV3LCBhbmQgSSBsb29rIGZvcndhcmQgdG8geW91ciB0aG91Z2h0 cy4KClBsZWFzZSBub3RlIHRoYXQgSSBhbSByZXNlbmRpbmcgdGhpcyBlbWFpbCBiZWNhdXNlIG15 IHByZXZpb3VzIG9uZSBpbmNsdWRlZCBIVE1MIGZvcm1hdHRpbmcgYW5kIGRpZCBub3QgZ2V0IHN1 Y2Nlc3NmdWxseSBkZWxpdmVyZWQgdG8gbGludXgta2VybmVsLW93bmVyQHZnZXIua2VybmVsLm9y Zy4gSSBhcG9sb2dpemUgZm9yIGFueSBpbmNvbnZlbmllbmNlIGNhdXNlZCBieSB0aGUgcmVwZWF0 ZWQgZW1haWwuCgpCZXN0IHJlZ2FyZHMsIMKgClN0ZXBoZW4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwrlj5Hku7bkuro6wqBTdGVwaGVuIEV0YSBaaG91IDxzdGVwaGVu LmV0YS56aG91QG91dGxvb2suY29tPgrlj5HpgIHml7bpl7Q6wqAyMDI15bm0MuaciDfml6UgMjM6 NTgK5pS25Lu25Lq6OsKgTWlrZSBSYXBvcG9ydCA8cnBwdEBrZXJuZWwub3JnPgrmioTpgIE6wqBh a3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPjsgbGlu dXgtbW1Aa3ZhY2sub3JnIDxsaW51eC1tbUBrdmFjay5vcmc+OyBsaW51eC1rZXJuZWxAdmdlci5r ZXJuZWwub3JnIDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPgrkuLvpopg6wqDlm57lpI06 IFtQQVRDSF0gbW06IG9wdGltaXplIG1lbWJsb2NrX2FkZF9yYW5nZSgpIGZvciBpbXByb3ZlZCBw ZXJmb3JtYW5jZQrCoApIaSBNaWtlLAoKVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIGFuZCBp bnNpZ2h0cy4gSSBmdWxseSB1bmRlcnN0YW5kIHlvdXIgY29uY2VybnMgcmVnYXJkaW5nIHRoZSBm cmFnaWxpdHkgb2YgdGhlIGNvZGUgaW4gYG1lbWJsb2NrX2FkZF9yYW5nZSgpYCBhbmQgdGhlIGNo YWxsZW5nZXMgaW4gaGFuZGxpbmcgZWRnZSBjYXNlcy4gSSBhbHNvIGFja25vd2xlZGdlIHlvdXIg cG9pbnQgdGhhdCB3aGlsZSB0aGUgQ1BVIGN5Y2xlIHJlZHVjdGlvbnMgYXJlIG1lYXN1cmFibGUs IHRoZXkgbWF5IG5vdCBmdWxseSBjYXB0dXJlIHRoZSBtb3N0IGltcG9ydGFudCBmYWN0b3Ig4oCU IHRoZSBib290IHRpbWUgc3BlZWR1cC4KClJlZ2FyZGluZyB0aGUgcGVyZm9ybWFuY2UgbWV0cmlj cywgSSB3YW50IHRvIGNsYXJpZnkgdGhhdCB0aGUgbWFpbiBnb2FsIG9mIG15IG9wdGltaXphdGlv biB3YXMgdG8gaW1wcm92ZSB0aGUgYm9vdCB0aW1lIGR1cmluZyB0aGUgZWFybHkgc3RhZ2VzIG9m IGtlcm5lbCBpbml0aWFsaXphdGlvbi4gV2hpbGUgcmVkdWNpbmcgdGhlIENQVSBjeWNsZXMgZm9y IGBtZW1ibG9ja19hZGRfcmFuZ2UoKWAgaXMgYSBwb3NpdGl2ZSBvdXRjb21lLCB0aGUgcmVhbCBi ZW5lZml0IGlzIGluIHJlZHVjaW5nIGtlcm5lbCBpbml0aWFsaXphdGlvbiB0aW1lLCBwYXJ0aWN1 bGFybHkgYmVmb3JlIHRoZSBidWRkeSBzeXN0ZW0gdGFrZXMgb3Zlci4gSSB1bmRlcnN0YW5kIHRo YXQgdGhlIENQVSBjeWNsZSByZWR1Y3Rpb24gYWxvbmUgZG9lc24ndCBhZGRyZXNzIHRoZSBjcml0 aWNhbCBxdWVzdGlvbiBvZiBib290IHRpbWUgc3BlZWR1cCwgYW5kIEkgd2lsbCB3b3JrIG9uIG1l YXN1cmluZyB0aGlzIG1vcmUgZGlyZWN0bHkuCgpUbyBhZGRyZXNzIHRoZSBjb25jZXJuIGFib3V0 IHJlYWwgaGFyZHdhcmUgYW5kIGNvcm5lciBjYXNlcywgSSBwbGFuIHRvIGNvbmR1Y3QgZnVydGhl ciB0ZXN0aW5nIG9uIGFjdHVhbCBoYXJkd2FyZSB3aXRoIGRpZmZlcmVudCBtZW1vcnkgY29uZmln dXJhdGlvbnMgdG8gZW5zdXJlIHRoZSByb2J1c3RuZXNzIG9mIHRoZSBwYXRjaC4gVGhpcyB3aWxs IGhlbHAgZW5zdXJlIHRoZSBzdGFiaWxpdHkgYW5kIHBlcmZvcm1hbmNlIGJlbmVmaXRzIGFyZSBj b25zaXN0ZW50IGFjcm9zcyB2YXJpb3VzIHNldHVwcy4KCkkgYWxzbyBwbGFuIHRvIGluY3JlYXNl IHRoZSB0ZXN0aW5nIGNvdmVyYWdlIGZvciBlZGdlIGNhc2VzIGFuZCBpbmNsdWRlIG1vcmUgcm9i dXN0IGZhbGxiYWNrIG1lY2hhbmlzbXMgdG8gYWRkcmVzcyB0aGUgcG90ZW50aWFsIGZyYWdpbGl0 eSBtZW50aW9uZWQuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIGNoYW5nZXMgaGFuZGxlIGFsbCBw b3NzaWJsZSBzY2VuYXJpb3MgZ3JhY2VmdWxseS4KCkluIGFkZGl0aW9uLCBJIHdpbGwgZm9jdXMg b24gbWVhc3VyaW5nIGJvb3QgdGltZSBtb3JlIGRpcmVjdGx5IHVzaW5nIHRvb2xzIGxpa2UgYGJv b3RjaGFydGAgYW5kIHNoYXJlIHRoZSByZXN1bHRzLCBjb21wYXJpbmcgdGhlIGJvb3QgdGltZXMg YmVmb3JlIGFuZCBhZnRlciB0aGUgb3B0aW1pemF0aW9uIHRvIGRlbW9uc3RyYXRlIHRoZSBhY3R1 YWwgaW1wYWN0IG9uIHN0YXJ0dXAgcGVyZm9ybWFuY2UuCgpHaXZlbiB0aGUgY29uY2VybnMgcmFp c2VkLCBJIHdvdWxkIGdyZWF0bHkgYXBwcmVjaWF0ZSB5b3VyIGd1aWRhbmNlIG9uIHdoZXRoZXIg eW91IHRoaW5rIGl0J3Mgd29ydGh3aGlsZSBmb3IgbWUgdG8gY29udGludWUgd2l0aCB0aGlzIGFw cHJvYWNoLiBTaG91bGQgSSBwcm9jZWVkIHdpdGggZnVydGhlciByZWZpbmVtZW50cyBhbmQgdGVz dGluZywgb3Igd291bGQgeW91IHJlY29tbWVuZCBhIGRpZmZlcmVudCBkaXJlY3Rpb24gZm9yIG9w dGltaXphdGlvbj8gWW91ciBpbnB1dCB3aWxsIGJlIGludmFsdWFibGUgaW4gZW5zdXJpbmcgdGhp cyBwYXRjaCBtZWV0cyBib3RoIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgZ29hbHMuCgpUaGFu ayB5b3UgYWdhaW4gZm9yIHlvdXIgY2FyZWZ1bCByZXZpZXcsIGFuZCBJIGxvb2sgZm9yd2FyZCB0 byB5b3VyIHRob3VnaHRzLgoKQmVzdCByZWdhcmRzLCDCoApTdGVwaGVuCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCuWPkeS7tuS6ujrCoE1pa2UgUmFwb3BvcnQgPHJw cHRAa2VybmVsLm9yZz4K5Y+R6YCB5pe26Ze0OsKgMjAyNeW5tDLmnIg35pelIDIyOjU4CuaUtuS7 tuS6ujrCoFN0ZXBoZW4gRXRhIFpob3UgPHN0ZXBoZW4uZXRhLnpob3VAb3V0bG9vay5jb20+CuaK hOmAgTrCoGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmcgPGFrcG1AbGludXgtZm91bmRhdGlvbi5v cmc+OyBsaW51eC1tbUBrdmFjay5vcmcgPGxpbnV4LW1tQGt2YWNrLm9yZz47IGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmcgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+CuS4u+mimDrC oFJlOiBbUEFUQ0hdIG1tOiBvcHRpbWl6ZSBtZW1ibG9ja19hZGRfcmFuZ2UoKSBmb3IgaW1wcm92 ZWQgcGVyZm9ybWFuY2UKwqAKSGkgU3RlcGhlbiwKCk9uIFdlZCwgRmViIDA1LCAyMDI1IGF0IDA1 OjU1OjUwQU0gKzAwMDAsIFN0ZXBoZW4gRXRhIFpob3Ugd3JvdGU6Cj4gSGkgTWlrZSBSYXBvcG9y dOOAgUFuZHJldyBNb3J0b24KCj4gSSBoYXZlIHJlY2VudGx5IGJlZW4gcmVzZWFyY2hpbmcgdGhl IG1tIHN1YnN5c3RlbSBvZiB0aGUgTGludXgga2VybmVsLAo+IGFuZCBJIGNhbWUgYWNyb3NzIHRo ZSBtZW1ibG9ja19hZGRfcmFuZ2UgZnVuY3Rpb24sIHdoaWNoIHBpcXVlZCBteQo+IGludGVyZXN0 LiBJIGZvdW5kIHRoZSBpbXBsZW1lbnRhdGlvbiBhcHByb2FjaCBxdWl0ZSBpbnRlcmVzdGluZywg c28gSQo+IGFuYWx5emVkIGl0IGFuZCBpZGVudGlmaWVkIHNvbWUgYXJlYXMgZm9yIG9wdGltaXph dGlvbi4gU3RhcnRpbmcgd2l0aAo+IHRoaXMgcGFydCBvZiB0aGUgY29kZToKPgo+IGlmICh0eXBl LT5jbnQgKiAyICsgMSA8PSB0eXBlLT5tYXgpCj4gwqAgwqAgwqDigIJpbnNlcnQgPSB0cnVlOwo+ IFRoZSBpZGVhIGhlcmUgaXMgZ29vZCwgYnV0IGl0IGhhcyBhIGNlcnRhaW4gZmxhdy4gVGhlIGNv bmRpdGlvbiBpcyByYXRoZXIKPiByZXN0cmljdGl2ZSwgYW5kIGl0IGNhbm5vdCBiZSBleGVjdXRl ZCBpbml0aWFsbHkuIE1vcmVvdmVyLCBpdCBpcyBvbmx5Cj4gdmFsaWQgd2hlbiB0aGUgcmVtYWlu aW5nIHNwYWNlIGlzICgyLzEpICsgMS4gSWYgdGhlcmUgaXMgZW5vdWdoIG1lbW9yeSwKPiBidXQg aXQgZG9lcyBub3Qgc2F0aXNmeSAoMi8xKSArIDEsIHRoZSBpbnNlcnRpb24gb3BlcmF0aW9uIHN0 aWxsIG5lZWRzIHRvCj4gYmUgcGVyZm9ybWVkIHR3aWNlLgoKVGhlIGNvZGUgaW4gbWVtYmxvY2tf YWRkX3JhbmdlKCkgaXMgdmVyeSBmcmFnaWxlLCBhbmQgbWFueSBhdHRlbXB0cyB0bwpyZW1vdmUg dGhlIHNlY29uZCBwYXNzIHRoYXQgbG9va2VkIGNvcnJlY3QgYXQgdGhlIGZpcnN0IGdsYW5jZSBm YWlsZWQgZm9yCnNvbWUgY29ybmVyIGNhc2UuCgpVbmZvcnR1bmF0ZWx5LCBpdCdzIGltcG9zc2li bGUgdG8gY2FwdHVyZSBhbGwgcG9zc2libGUgbWVtb3J5CmNvbmZpZ3VyYXRpb25zIGFuZCByZXNl cnZhdGlvbnMgaW4gdGhlIG1lbWJsb2NrIHRlc3Qgc3VpdGUsIHNvIGV2ZW4gaXQgaXQKcGFzc2Vz LCB0aGVyZSBpcyBhIGNoYW5jZSB0aGUga2VybmVsIHdpbGwgZmFpbCB0byBib290IG9uIGFuIGFj dHVhbCBIVy4KwqAKPiAtIEJlZm9yZSB0aGUgcGF0Y2g6Cj4gwqAgLSBBdmVyYWdlOiAxLjIyJQo+ IMKgIC0gTWF4OiAxLjYzJSwgTWluOiAwLjkzJQo+Cj4gLSBBZnRlciB0aGUgcGF0Y2g6Cj4gwqAg LSBBdmVyYWdlOiAwLjY5JQo+IMKgIC0gTWF4OiAwLjk0JSwgTWluOiAwLjUwJQo+CgpUaGVzZSBu dW1iZXJzIGRvIG5vdCByZXByZXNlbnQgd2hhdCdzIGFjdHVhbGx5IGludGVyZXN0aW5nOiB0aGUg Ym9vdCB0aW1lCnNwZWVkdXAuCgotLQpTaW5jZXJlbHkgeW91cnMsCk1pa2Uu