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 B9E0ED0D785 for ; Fri, 11 Oct 2024 12:56:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2ACE46B00AA; Fri, 11 Oct 2024 08:56:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 25D3B6B00AD; Fri, 11 Oct 2024 08:56:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0AEFA6B00AE; Fri, 11 Oct 2024 08:56:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D7D5E6B00AA for ; Fri, 11 Oct 2024 08:56:18 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A527F1C7151 for ; Fri, 11 Oct 2024 12:56:13 +0000 (UTC) X-FDA: 82661319594.10.37EA6AC Received: from smtp-fw-9106.amazon.com (smtp-fw-9106.amazon.com [207.171.188.206]) by imf27.hostedemail.com (Postfix) with ESMTP id B3B514000D for ; Fri, 11 Oct 2024 12:56:13 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=vhaC177O; dmarc=pass (policy=quarantine) header.from=amazon.de; spf=pass (imf27.hostedemail.com: domain of "prvs=007b155b7=mediou@amazon.de" designates 207.171.188.206 as permitted sender) smtp.mailfrom="prvs=007b155b7=mediou@amazon.de" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728651223; 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=F65bfxBMhT5sT+0wha2wr3NScIjN5BrEZRD/gdbDLt4=; b=cLT9YKruqLca3w2n83T5Ll8TwVdJ64gVOnglRIqVyAU1ZqfeCnzi9zWVFZUs3yqHDv5x3T feCOHcpxFlaqdGHSGReyB/cOit1zjDClovopR8Nc949QvdsIJVtvoqPbdJMOeOSlhjRBp1 R2/f8to/Jm/TLBbyKKUz5cYw6XnalZQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728651223; a=rsa-sha256; cv=none; b=kV0d07aBZGR7U6H3PNe30kIP48cWwlQkE+y2B8xUSyqQds0C7URi8ahk360E7mth9G/Ptx 5Mp24nmpdQ65/l0Phsjrw8cdKoAG7myOfF1+GAANoqGYt2yfbnpO6gmSD+qaIggYOwU3j0 7O+MMvii35i0DwZgDzP1vPoG1LZTsAo= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=vhaC177O; dmarc=pass (policy=quarantine) header.from=amazon.de; spf=pass (imf27.hostedemail.com: domain of "prvs=007b155b7=mediou@amazon.de" designates 207.171.188.206 as permitted sender) smtp.mailfrom="prvs=007b155b7=mediou@amazon.de" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1728651377; x=1760187377; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:mime-version: content-transfer-encoding; bh=F65bfxBMhT5sT+0wha2wr3NScIjN5BrEZRD/gdbDLt4=; b=vhaC177OrE2xxn2LzVLXo96787zSEuQ0Ga7GPlahWGVyxZI8pqpffocH 8uykzjSlssapCy7oLEepLm82/1VRqB2xuwZgG2KOcwG8z5C0DvCKqqcFt O0IobVxS0ft3RnpkEVcecD3EvsUvAqXbbRTPyiIch40EmouUteIn52cK9 8=; X-IronPort-AV: E=Sophos;i="6.11,195,1725321600"; d="scan'208";a="765755123" Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev) ([10.25.36.210]) by smtp-border-fw-9106.sea19.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Oct 2024 12:56:09 +0000 Received: from EX19MTAEUB001.ant.amazon.com [10.0.43.254:53171] by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.34.166:2525] with esmtp (Farcaster) id ca804dee-56b2-48f1-9ffb-e8dcd06beabd; Fri, 11 Oct 2024 12:56:07 +0000 (UTC) X-Farcaster-Flow-ID: ca804dee-56b2-48f1-9ffb-e8dcd06beabd Received: from EX19D007EUB003.ant.amazon.com (10.252.51.43) by EX19MTAEUB001.ant.amazon.com (10.252.51.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34; Fri, 11 Oct 2024 12:56:06 +0000 Received: from EX19D026EUB001.ant.amazon.com (10.252.61.12) by EX19D007EUB003.ant.amazon.com (10.252.51.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.35; Fri, 11 Oct 2024 12:56:06 +0000 Received: from EX19D026EUB001.ant.amazon.com ([fe80::461a:a9c3:6352:d9d1]) by EX19D026EUB001.ant.amazon.com ([fe80::461a:a9c3:6352:d9d1%4]) with mapi id 15.02.1258.034; Fri, 11 Oct 2024 12:56:06 +0000 From: "Mediouni, Mohamed" To: David Hildenbrand CC: "Mehanna, Fares" , "akpm@linux-foundation.org" , "ardb@kernel.org" , "arnd@arndb.de" , "bhelgaas@google.com" , "broonie@kernel.org" , "catalin.marinas@arm.com" , "james.morse@arm.com" , "javierm@redhat.com" , "jean-philippe@linaro.org" , "joey.gouly@arm.com" , "kristina.martsenko@arm.com" , "kvmarm@lists.linux.dev" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "mark.rutland@arm.com" , "maz@kernel.org" , "nh-open-source@amazon.com" , "oliver.upton@linux.dev" , "ptosi@google.com" , "rdunlap@infradead.org" , "Kagan, Roman" , "rppt@kernel.org" , "shikemeng@huaweicloud.com" , "suzuki.poulose@arm.com" , "tabba@google.com" , "will@kernel.org" , "yuzenghui@huawei.com" Subject: Re: [RFC PATCH 0/7] support for mm-local memory allocations and use it Thread-Topic: [RFC PATCH 0/7] support for mm-local memory allocations and use it Thread-Index: AQHbBFfTHkfWP5JGCkGvLyon8je4I7JrsYmAgBSeggCAAVKjAIAACPEAgAAFhAA= Date: Fri, 11 Oct 2024 12:56:06 +0000 Message-ID: References: <813b9bcb-afde-40b6-a604-cdb71b4b6d7a@redhat.com> <20241010155210.13321-1-faresx@amazon.de> <465ce78b-d023-40e6-b066-5e4a01e266b6@redhat.com> <6E620679-FC47-4B13-BEF6-B63975881CCD@amazon.de> In-Reply-To: <6E620679-FC47-4B13-BEF6-B63975881CCD@amazon.de> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.252.51.69] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B3B514000D X-Stat-Signature: du3owz75okfeb1ge78ba1pr3ihoi4zmb X-Rspam-User: X-HE-Tag: 1728651373-105144 X-HE-Meta: U2FsdGVkX1/+M0Tyk6Uocl1DWLU0aN8vWzV8+K0HDyVd+EGivLmzzEzx01fmU9l9PvYeJnMEDUDcYr796HPVL1ijALsFa5Zl9U+ZKbZjpN0X7ijQC1p0BZlHz0xHCE/G9AjcHGVrcKPI6/+f8sii6qtLpuPN67ssfYjoVpavuXllUmtx+ujwrcErLqYalo/UnJqjg161UMcEOQ+y2uX5eb/QXzISBc5NCcdAjP71dzEdrLNFLnjJ8Fb3jFImKIAy0tNGBXYeKjAIGDuIsJxV34/4tWH9TFBNCc4zXhJDMVa0/84livI9J7vSyCPki7UTSk7YvLe9TNaqh1U1czhpmFj+bwnD391qPv708ZOaceUCo97vYmDX1NI+XL06E9rS7MwGT3qhOMH8cHFBH8rXmf7Qh8Igf4eLnHsddm9PLsTAz3c9ZWR6Zv9spR3dUn2iW3DOYGO+iH3HmQxDZM46tSSVFXB1UjI9C/hQY9dwCuVyuwCgZJaN3ygnXnCkn449Z/I8ldvOis2k0fi3QEwkvHtuUB+VdC0oAcONRZSinc4qc0TTO2V6dFerz9hmcFDT5LyoifcrzeU2ERwTh8IezXjoxUS7MO8mXVhN41yLrPNIHy19zbCJfrVVYuPlr1q9MBOyOnIXZw3ZQY7e576n/kf65JqJXtckrXBqy1ewrZOdpY76x0048ydkh50v7v3x3fnY17YuNpZ0dmwfM7LD0YBweKcPxtuGLEcdQLpRhdLxRNMfU8lUu41Hm8bGegeGrrNfrfZZ4wufp16bYIZicwdArCySRcsmTfMqpzfeP3jDGEt/iHve+cqD+//pR2lpYR9JJYDgvry4j7e1aIne9BP7EhmNNHw10O5BeH0A4DoXxuWIVbxYQvPpyjmT5JKlUkljWkEhmYO5dWSte2J9M6dGwx92/YRkqvXt0g5iAie7FXwUGvywV3Q0JsRmTKmKDtJfUm2DbOwIqH1JUfT VL9/8Zrn 5vTmIy6fqPFN/mLTwJfLBwI9isyHhggTgCAbvlF/VXFGWYinJdtIC0WMOBxG5fYUPTW280Cd2L6PCTDeHlAKSaMiBzfSD9arlYT+XDMfQCo3ulH9HOF5//jzxfJMXTI3I+8EFkvmAyO+8aJmiiomhqed8/ZdJ5tQXf+J2R3n/Xt0BLsNK+lo5eV3vsK7G6rh8cbFMEhEoD9P/c0q5xNYvfXQNOCChsiCK3KMTI+n73ZjiPy7sXWvMlfOns6rPyW9pyftFunLuI9Hi3qfO7iwMBheZYAEW6/znqQUN3GzEs2NRhW4EaOATmWq4kX8fHScHaga0Rck01B/WN2wb4KBMAxfdl8wM8pMRENTEoaDDucsquuJRGr4lUbnHtglPkaBcr20H98vJXpkbaEDvu6HAXcT24W3UbYVaqaWnsf+yBeTmHbbKjH6hTZW4BWJHW2QBCcMc0EPAleb1hxSp+ydjiLJcS5T12tF/gu+CeRRNb/tWbRJYcutWICFMVOpztiVOFzhWGil/6RHZ9Lo2O9c0XkcnzAg6J20PMEMlLI7bGLXAS8glmt6vzgXz0cKQSfB3n9aVvNIVO7CmuPNDLEmxa4qldTyqGYIYSt3xQzHlbk2MNnQ= 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: DQoNCj4gT24gMTEuIE9jdCAyMDI0LCBhdCAxNDozNiwgTWVkaW91bmksIE1vaGFtZWQgPG1lZGlv dUBhbWF6b24uZGU+IHdyb3RlOg0KPiANCj4gDQo+IA0KPj4gT24gMTEuIE9jdCAyMDI0LCBhdCAx NDowNCwgRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+IHdyb3RlOg0KPj4gDQo+ PiBPbiAxMC4xMC4yNCAxNzo1MiwgRmFyZXMgTWVoYW5uYSB3cm90ZToNCj4+Pj4+IEluIGEgc2Vy aWVzIHBvc3RlZCBhIGZldyB5ZWFycyBhZ28gWzFdLCBhIHByb3Bvc2FsIHdhcyBwdXQgZm9yd2Fy ZCB0byBhbGxvdyB0aGUNCj4+Pj4+IGtlcm5lbCB0byBhbGxvY2F0ZSBtZW1vcnkgbG9jYWwgdG8g YSBtbSBhbmQgdGh1cyBwdXNoIGl0IG91dCBvZiByZWFjaCBmb3INCj4+Pj4+IGN1cnJlbnQgYW5k IGZ1dHVyZSBzcGVjdWxhdGlvbi1iYXNlZCBjcm9zcy1wcm9jZXNzIGF0dGFja3MuICBXZSBzdGls bCBiZWxpZXZlDQo+Pj4+PiB0aGlzIGlzIGEgbmljZSB0aGluZyB0byBoYXZlLg0KPj4+Pj4gDQo+ Pj4+PiBIb3dldmVyLCBpbiB0aGUgdGltZSBwYXNzZWQgc2luY2UgdGhhdCBwb3N0IExpbnV4IG1t IGhhcyBncm93biBxdWl0ZSBhIGZldyBuZXcNCj4+Pj4+IGdvb2RpZXMsIHNvIHdlJ2QgbGlrZSB0 byBleHBsb3JlIHBvc3NpYmlsaXRpZXMgdG8gaW1wbGVtZW50IHRoaXMgZnVuY3Rpb25hbGl0eQ0K Pj4+Pj4gd2l0aCBsZXNzIGVmZm9ydCBhbmQgY2h1cm4gbGV2ZXJhZ2luZyB0aGUgbm93IGF2YWls YWJsZSBmYWNpbGl0aWVzLg0KPj4+Pj4gDQo+Pj4+PiBBbiBSRkMgd2FzIHBvc3RlZCBmZXcgbW9u dGhzIGJhY2sgWzJdIHRvIHNob3cgdGhlIHByb29mIG9mIGNvbmNlcHQgYW5kIGEgc2ltcGxlDQo+ Pj4+PiB0ZXN0IGRyaXZlci4NCj4+Pj4+IA0KPj4+Pj4gSW4gdGhpcyBSRkMsIHdlJ3JlIHVzaW5n IHRoZSBzYW1lIGFwcHJvYWNoIG9mIGltcGxlbWVudGluZyBtbS1sb2NhbCBhbGxvY2F0aW9ucw0K Pj4+Pj4gcGlnZ3ktYmFja2luZyBvbiBtZW1mZF9zZWNyZXQoKSwgdXNpbmcgcmVndWxhciB1c2Vy IGFkZHJlc3NlcyBidXQgcGlubmluZyB0aGUNCj4+Pj4+IHBhZ2VzIGFuZCBmbGlwcGluZyB0aGUg dXNlci9zdXBlcnZpc29yIGZsYWcgb24gdGhlIHJlc3BlY3RpdmUgUFRFcyB0byBtYWtlIHRoZW0N Cj4+Pj4+IGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBrZXJuZWwuDQo+Pj4+PiBJbiBhZGRpdGlv biB0byB0aGF0IHdlIGFyZSBzdWJtaXR0aW5nIDUgcGF0Y2hlcyB0byB1c2UgdGhlIHNlY3JldCBt ZW1vcnkgdG8gaGlkZQ0KPj4+Pj4gdGhlIHZDUFUgZ3AtcmVncyBhbmQgZnAtcmVncyBvbiBhcm02 NCBWSEUgc3lzdGVtcy4NCj4+Pj4gDQo+Pj4+IEknbSBhIGJpdCBsb3N0IG9uIHdoYXQgZXhhY3Rs eSB3ZSB3YW50IHRvIGFjaGlldmUuIFRoZSBwb2ludCB3aGVyZSB3ZQ0KPj4+PiBzdGFydCBmbGlw cGluZyB1c2VyL3N1cGVydmlzb3IgZmxhZ3MgY29uZnVzZXMgbWUgOikNCj4+Pj4gDQo+Pj4+IFdp dGggc2VjcmV0bWVtLCB5b3UnZCBnZXQgbWVtb3J5IGFsbG9jYXRlZCB0aGF0DQo+Pj4+IChhKSBJ cyBhY2Nlc3NpYmxlIGJ5IHVzZXIgc3BhY2UgLS0gbWFwcGVkIGludG8gdXNlciBzcGFjZS4NCj4+ Pj4gKGIpIElzIGluYWNjZXNzaWJsZSBieSBrZXJuZWwgc3BhY2UgLS0gbm90IG1hcHBlZCBpbnRv IHRoZSBkaXJlY3QgbWFwDQo+Pj4+IChjKSBHVVAgd2lsbCBmYWlsLCBidXQgY29weV9mcm9tIC8g Y29weV90byB1c2VyIHdpbGwgd29yay4NCj4+Pj4gDQo+Pj4+IA0KPj4+PiBBbm90aGVyIHdheSwg d2l0aG91dCBzZWNyZXRtZW0sIHdvdWxkIGJlIHRvIGNvbnNpZGVyIHRoZXNlICJzZWNyZXRzIg0K Pj4+PiBrZXJuZWwgYWxsb2NhdGlvbnMgdGhhdCBjYW4gYmUgbWFwcGVkIGludG8gdXNlciBzcGFj ZSB1c2luZyBtbWFwKCkgb2YgYQ0KPj4+PiBzcGVjaWFsIGZkLiBUaGF0IGlzLCB0aGV5IHdvdWxk bid0IGhhdmUgdGhlaXIgb3JpZ2luIGluIHNlY3JldG1lbSwgYnV0DQo+Pj4+IGluIEtWTSBhcyBh IGtlcm5lbCBhbGxvY2F0aW9uLiBJdCBjb3VsZCBiZSBhY2hpZXZlZCBieSB1c2luZyBWTV9NSVhF RE1BUA0KPj4+PiB3aXRoIHZtX2luc2VydF9wYWdlcygpLCBtYW51YWxseSByZW1vdmluZyB0aGVt IGZyb20gdGhlIGRpcmVjdG1hcC4NCj4+Pj4gDQo+Pj4+IEJ1dCwgSSBhbSBub3Qgc3VyZSB3aG8g aXMgc3VwcG9zZWQgdG8gYWNjZXNzIHdoYXQuIExldCdzIGV4cGxvcmUgdGhlDQo+Pj4+IHJlcXVp cmVtZW50cy4gSSBhc3N1bWUgd2Ugd2FudDoNCj4+Pj4gDQo+Pj4+IChhKSBQYWdlcyBhY2Nlc3Np YmxlIGJ5IHVzZXIgc3BhY2UgLS0gbWFwcGVkIGludG8gdXNlciBzcGFjZS4NCj4+Pj4gKGIpIFBh Z2VzIGluYWNjZXNzaWJsZSBieSBrZXJuZWwgc3BhY2UgLS0gbm90IG1hcHBlZCBpbnRvIHRoZSBk aXJlY3QgbWFwDQo+Pj4+IChjKSBHVVAgdG8gZmFpbCAobm8gZGlyZWN0IG1hcCkuDQo+Pj4+IChk KSBjb3B5X2Zyb20gLyBjb3B5X3RvIHVzZXIgdG8gZmFpbD8NCj4+Pj4gDQo+Pj4+IEFuZCBvbiB0 b3Agb2YgdGhhdCwgc29tZSB3YXkgdG8gYWNjZXNzIHRoZXNlIHBhZ2VzIG9uIGRlbWFuZCBmcm9t IGtlcm5lbA0KPj4+PiBzcGFjZT8gKHRlbXBvcmFyeSBDUFUtbG9jYWwgbWFwcGluZz8pDQo+Pj4+ IA0KPj4+PiBPciBob3cgd291bGQgdGhlIGtlcm5lbCBtYWtlIHVzZSBvZiB0aGVzZSBhbGxvY2F0 aW9ucz8NCj4+Pj4gDQo+Pj4+IC0tIA0KPj4+PiBDaGVlcnMsDQo+Pj4+IA0KPj4+PiBEYXZpZCAv IGRoaWxkZW5iDQo+Pj4gSGkgRGF2aWQsDQo+PiANCj4+IEhpIEZhcmVzIQ0KPj4gDQo+Pj4gVGhh bmtzIGZvciB0YWtpbmcgYSBsb29rIGF0IHRoZSBwYXRjaGVzIQ0KPj4+IFdlJ3JlIHRyeWluZyB0 byBhbGxvY2F0ZSBhIGtlcm5lbCBtZW1vcnkgdGhhdCBpcyBhY2Nlc3NpYmxlIHRvIHRoZSBrZXJu ZWwgYnV0DQo+Pj4gb25seSB3aGVuIHRoZSBjb250ZXh0IG9mIHRoZSBwcm9jZXNzIGlzIGxvYWRl ZC4NCj4+PiBTbyB0aGlzIGlzIGEga2VybmVsIG1lbW9yeSB0aGF0IGlzIG5vdCBuZWVkZWQgdG8g b3BlcmF0ZSB0aGUga2VybmVsIGl0c2VsZiwgaXQNCj4+PiBpcyB0byBzdG9yZSAmIHByb2Nlc3Mg ZGF0YSBvbiBiZWhhbGYgb2YgYSBwcm9jZXNzLiBUaGUgcmVxdWlyZW1lbnQgZm9yIHRoaXMNCj4+ PiBtZW1vcnkgaXMgdGhhdCBpdCB3b3VsZCBuZXZlciBiZSB0b3VjaGVkIHVubGVzcyB0aGUgcHJv Y2VzcyBpcyBzY2hlZHVsZWQgb24gdGhpcw0KPj4+IGNvcmUuIG90aGVyd2lzZSBhbnkgb3RoZXIg YWNjZXNzIHdpbGwgY3Jhc2ggdGhlIGtlcm5lbC4NCj4+PiBTbyB0aGlzIG1lbW9yeSBzaG91bGQg b25seSBiZSBkaXJlY3RseSByZWFkYWJsZSBhbmQgd3JpdGFibGUgYnkgdGhlIGtlcm5lbCwgYnV0 DQo+Pj4gb25seSB3aGVuIHRoZSBwcm9jZXNzIGNvbnRleHQgaXMgbG9hZGVkLiBUaGUgbWVtb3J5 IHNob3VsZG4ndCBiZSByZWFkYWJsZSBvcg0KPj4+IHdyaXRhYmxlIGJ5IHRoZSBvd25lciBwcm9j ZXNzIGF0IGFsbC4NCj4+PiBUaGlzIGlzIGJhc2ljYWxseSBkb25lIGJ5IHJlbW92aW5nIHRob3Nl IHBhZ2VzIGZyb20ga2VybmVsIGxpbmVhciBhZGRyZXNzIGFuZA0KPj4+IGF0dGFjaGluZyB0aGVt IG9ubHkgaW4gdGhlIHByb2Nlc3MgbW1fc3RydWN0LiBTbyBkdXJpbmcgY29udGV4dCBzd2l0Y2hp bmcgdGhlDQo+Pj4ga2VybmVsIGxvc2VzIGFjY2VzcyB0byB0aGUgc2VjcmV0IG1lbW9yeSBzY2hl ZHVsZWQgb3V0IGFuZCBnYWluIGFjY2VzcyB0byB0aGUNCj4+PiBuZXcgcHJvY2VzcyBzZWNyZXQg bWVtb3J5Lg0KPj4+IFRoaXMgZ2VuZXJhbGx5IHByb3RlY3RzIGFnYWluc3Qgc3BlY3VsYXRpb24g YXR0YWNrcywgYW5kIGlmIG90aGVyIHByb2Nlc3MgbWFuYWdlZA0KPj4+IHRvIHRyaWNrIHRoZSBr ZXJuZWwgdG8gbGVhayBkYXRhIGZyb20gbWVtb3J5LiBJbiB0aGlzIGNhc2UgdGhlIGtlcm5lbCB3 aWxsIGNyYXNoDQo+Pj4gaWYgaXQgdHJpZXMgdG8gYWNjZXNzIG90aGVyIHByb2Nlc3NlcyBzZWNy ZXQgbWVtb3J5Lg0KPj4+IFNpbmNlIHRoaXMgbWVtb3J5IGlzIHNwZWNpYWwgaW4gdGhlIHNlbnNl IHRoYXQgaXQgaXMga2VybmVsIG1lbW9yeSBidXQgb25seSBtYWtlDQo+Pj4gc2Vuc2UgaW4gdGhl IHRlcm0gb2YgdGhlIG93bmVyIHByb2Nlc3MsIEkgdHJpZWQgaW4gdGhpcyBwYXRjaCBzZXJpZXMg dG8gZXhwbG9yZQ0KPj4+IHRoZSBwb3NzaWJpbGl0eSBvZiByZXVzaW5nIG1lbWZkX3NlY3JldCgp IHRvIGFsbG9jYXRlIHRoaXMgbWVtb3J5IGluIHVzZXIgdmlydHVhbA0KPj4+IGFkZHJlc3Mgc3Bh Y2UsIG1hbmFnZSBpdCBpbiBhIFZNQSwgZmxpcHBpbmcgdGhlIHBlcm1pc3Npb25zIHdoaWxlIGtl ZXBpbmcgdGhlDQo+Pj4gY29udHJvbCBvZiB0aGUgbWFwcGluZyBleGNsdXNpdmVseSB3aXRoIHRo ZSBrZXJuZWwuDQo+Pj4gUmlnaHQgbm93IGl0IGlzOg0KPj4+IChhKSBQYWdlcyBub3QgYWNjZXNz aWJsZSBieSB1c2VyIHNwYWNlIC0tIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG1hcHBlZCBpbnRvIHVz ZXINCj4+PiAgICBzcGFjZSwgdGhlIFBURXMgYXJlIG1hcmtlZCBmb3Iga2VybmVsIHVzYWdlLg0K Pj4gDQo+PiBBaCwgdGhhdCBpcyB0aGUgZGV0YWlsIEkgd2FzIG1pc3NpbmcsIG5vdyBJIHNlZSB3 aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGFjaGlldmUsIHRoYW5rcyENCj4+IA0KPj4gSXQgaXMgYSBi aXQgYXJjaGl0ZWN0dXJlIHNwZWNpZmljLCBiZWNhdXNlIC4uLiBpbWFnaW5lIGFyY2hpdGVjdHVy ZXMgdGhhdCBoYXZlIHNlcGFyYXRlIGtlcm5lbCt1c2VyIHNwYWNlIHBhZ2UgdGFibGUgaGllcmFy Y2hpZXMsIGFuZCBub3QgYSBzaW1wbGUgUFRFIGZsYWcgdG8gY2hhbmdlIGFjY2VzcyBwZXJtaXNz aW9ucyBiZXR3ZWVuIGtlcm5lbC91c2VyIHNwYWNlLg0KPj4gDQo+PiBJSVJDIHMzOTAgaXMgb25l IHN1Y2ggYXJjaGl0ZWN0dXJlIHRoYXQgdXNlcyBzZXBhcmF0ZSBwYWdlIHRhYmxlcyBmb3IgdGhl IHVzZXItc3BhY2UgKyBrZXJuZWwtc3BhY2UgcG9ydGlvbnMuDQo+PiANCj4+PiAoYikgUGFnZXMg YWNjZXNzaWJsZSBieSBrZXJuZWwgc3BhY2UgLS0gZXZlbiB0aG91Z2ggdGhleSBhcmUgbm90IG1h cHBlZCBpbnRvIHRoZQ0KPj4+ICAgIGRpcmVjdCBtYXAsIHRoZSBQVEVzIGluIHV2YWRkciBhcmUg bWFya2VkIGZvciBrZXJuZWwgdXNhZ2UuDQo+Pj4gKGMpIGNvcHlfZnJvbSAvIGNvcHlfdG8gdXNl ciB3b24ndCBmYWlsIC0tIGJlY2F1c2UgaXQgaXMgaW4gdGhlIHVzZXIgcmFuZ2UsIGJ1dA0KPj4+ ICAgIHRoaXMgY2FuIGJlIGZpeGVkIGJ5IGFsbG9jYXRpbmcgc3BlY2lmaWMgcmFuZ2UgaW4gdXNl ciB2YWRkciB0byB0aGlzIGZlYXR1cmUNCj4+PiAgICBhbmQgY2hlY2sgYWdhaW5zdCB0aGlzIHJh bmdlIHRoZXJlLg0KPj4+IChkKSBUaGUgc2VjcmV0IG1lbW9yeSB2YWRkciBpcyBndWVzc2FibGUg YnkgdGhlIG93bmVyIHByb2Nlc3MgLS0gdGhhdCBjYW4gYWxzbw0KPj4+ICAgIGJlIGZpeGVkIGJ5 IGFsbG9jYXRpbmcgYmlnZ2VyIGNodW5rIG9mIHVzZXIgdmFkZHIgZm9yIHRoaXMgZmVhdHVyZSBh bmQNCj4+PiAgICByYW5kb21seSBwbGFjaW5nIHRoZSBzZWNyZXQgbWVtb3J5IHRoZXJlLg0KPj4+ IChlKSBNYXBwaW5nIGlzIG9mZi1saW1pdHMgdG8gdGhlIG93bmVyIHByb2Nlc3MgYnkgbWFya2lu ZyB0aGUgVk1BIGFzIGxvY2tlZCwNCj4+PiAgICBzZWFsZWQgYW5kIHNwZWNpYWwuDQo+PiANCj4+ IE9rYXksIHNvIGluIHRoaXMgUkZDIHlvdSBhcmUganVtcGluZyB0aHJvdWdoIHF1aXRlIHNvbWUg aG9vcHMgdG8gaGF2ZSBhIGtlcm5lbCBhbGxvY2F0aW9uIHVubWFwcGVkIGZyb20gdGhlIGRpcmVj dCBtYXAgYnV0IG1hcHBlZCBpbnRvIGEgcGVyLXByb2Nlc3MgcGFnZSB0YWJsZSBvbmx5IGFjY2Vz c2libGUgYnkga2VybmVsIHNwYWNlLiA6KQ0KPj4gDQo+PiBTbyB5b3UgcmVhbGx5IGRvbid0IHdh bnQgdGhpcyBtYXBwZWQgaW50byB1c2VyIHNwYWNlIGF0IGFsbCAoY29uc2VxdWVudGx5LCBubyBH VVAsIG5vIGFjY2Vzcywgbm8gY29weV9mcm9tX3VzZXIgLi4uKS4gSW4gdGhpcyBSRkMgaXQncyBt YXBwZWQgYnV0IHR1cm5lZCBpbmFjY2Vzc2libGUgYnkgZmxpcHBpbmcgdGhlICJrZXJuZWwgdnMu IHVzZXIiIHN3aXRjaC4NCj4+IA0KPj4+IE90aGVyIGFsdGVybmF0aXZlICh0aGF0IHdhcyBpbXBs ZW1lbnRlZCBpbiB0aGUgZmlyc3Qgc3VibWlzc2lvbikgaXMgdG8gdHJhY2sgdGhvc2UNCj4+PiBh bGxvY2F0aW9ucyBpbiBhIG5vbi1zaGFyZWQga2VybmVsIFBHRCBwZXIgcHJvY2VzcywgdGhlbiBo YW5kbGUgY3JlYXRpbmcsIGZvcmtpbmcNCj4+PiBhbmQgY29udGV4dC1zd2l0Y2hpbmcgdGhpcyBQ R0QuDQo+PiANCj4+IFRoYXQgc291bmRzIGxpa2UgYSBiZXR0ZXIgYXBwcm9hY2guIFNvIHdlIHdv dWxkIHJlbW92ZSB0aGUgcGFnZXMgZnJvbSB0aGUgc2hhcmVkIGtlcm5lbCBkaXJlY3QgbWFwIGFu ZCBtYXAgdGhlbSBpbnRvIGEgc2VwYXJhdGUga2VybmVsLXBvcnRpb24gaW4gdGhlIHBlci1NTSBw YWdlIHRhYmxlcz8NCj4+IA0KPj4gQ2FuIHlvdSBlbnZpc2lvbiB0aGF0IHdvdWxkIGFsc28gd29y ayB3aXRoIGFyY2hpdGVjdHVyZXMgbGlrZSBzMzkweD8gSSBhc3N1bWUgd2Ugd291bGQgbm90IG9u bHkgbmVlZCB0aGUgcGVyLU1NIHVzZXIgc3BhY2UgcGFnZSB0YWJsZSBoaWVyYXJjaHksIGJ1dCBh bHNvIGEgcGVyLU1NIGtlcm5lbCBzcGFjZSBwYWdlIHRhYmxlIGhpZXJhcmNoeSwgaW50byB3aGlj aCB3ZSBhbHNvIG1hcCB0aGUgY29tbW9uL3NoYXJlZC1hbW9uZy1hbGwtcHJvY2Vzc2VzIGtlcm5l bCBzcGFjZSBwYWdlIHRhYmxlcyAoZS5nLiwgZGlyZWN0bWFwKS4NCj4gWWVzLCB0aGF04oCZcyBh bHNvIGFwcGxpY2FibGUgdG8gYXJtNjQuIFRoZXJl4oCZcyBjdXJyZW50bHkgbm8gc2VwYXJhdGUg cGVyLW1tIHVzZXIgc3BhY2UgcGFnZSBoaWVyYXJjaHkgdGhlcmUuDQp0eXBvLCByZWFkIGtlcm5l bA0KDQpUaGFua3MsDQotTW9oYW1lZA0KPj4+IFdoYXQgSSBsaWtlIGFib3V0IHRoZSBtZW1mZF9z ZWNyZXQoKSBhcHByb2FjaCBpcyB0aGUgc2ltcGxpY2l0eSBhbmQgYmVpbmcgYXJjaA0KPj4+IGFn bm9zdGljLCB3aGF0IEkgZG9uJ3QgbGlrZSBpcyB0aGUgaW5jcmVhc2VkIGF0dGFjayBzdXJmYWNl IGJ5IHVzaW5nIFZNQXMgdG8NCj4+PiB0cmFjayB0aG9zZSBhbGxvY2F0aW9ucy4NCj4+IA0KPj4g WWVzLCBidXQgbWVtZmRfc2VjcmV0KCkgd2FzIHJlYWxseSBkZXNpZ24gZm9yIHVzZXIgc3BhY2Ug dG8gaG9sZCBzZWNyZXRzLiBCdXQgSSBjYW4gc2VlIGhvdyB5b3UgY2FtZSB0byB0aGlzIHNvbHV0 aW9uLg0KPj4gDQo+Pj4gSSdtIHRoaW5raW5nIG9mIHdvcmtpbmcgb24gYSBQb0MgdG8gaW1wbGVt ZW50IHRoZSBmaXJzdCBhcHByb2FjaCBvZiB1c2luZyBhDQo+Pj4gbm9uLXNoYXJlZCBrZXJuZWwg UEdEIGZvciBzZWNyZXQgbWVtb3J5IGFsbG9jYXRpb25zIG9uIGFybTY0LiBUaGlzIGluY2x1ZGVz DQo+Pj4gYWRkaW5nIGtlcm5lbCBwYWdlIHRhYmxlIHBlciBwcm9jZXNzIHdoZXJlIGFsbCBQR0Rz IGFyZSBzaGFyZWQgYnV0IG9uZSB3aGljaA0KPj4+IHdpbGwgYmUgdXNlZCBmb3Igc2VjcmV0IGFs bG9jYXRpb25zIG1hcHBpbmcuIEFuZCBoYW5kbGUgdGhlIGZvcmsgJiBjb250ZXh0DQo+Pj4gc3dp dGNoaW5nIChUVEJSMSBzd2l0Y2hpbmcoPykpIGNvcnJlY3RseSBmb3IgdGhlIHNlY3JldCBtZW1v cnkgUEdELg0KPj4+IFdoYXQgZG8geW91IHRoaW5rPyBJJ2QgcmVhbGx5IGFwcHJlY2lhdGUgb3Bp bmlvbnMgYW5kIHBvc3NpYmxlIHdheXMgZm9yd2FyZC4NCj4+IA0KPj4gTmFpdmUgcXVlc3Rpb246 IGRvZXMgYXJtNjQgcmF0aGVyIHJlc2VtYmxlIHRoZSBzMzkweCBtb2RlbCBvciB0aGUgeDg2LTY0 IG1vZGVsPw0KPiBhcm02NCBoYXMgc2VwYXJhdGUgcGFnZSB0YWJsZXMgZm9yIGtlcm5lbCBhbmQg dXNlci1tb2RlLiBFeGNlcHQgZm9yIHRoZSBLUFRJIGNhc2UsIHRoZSBrZXJuZWwgcGFnZSB0YWJs ZXMgYXJlbuKAmXQgc3dhcHBlZCBwZXItcHJvY2VzcyBhbmQgc3RheSB0aGUgc2FtZSBhbGwgdGhl IHRpbWUuDQo+IA0KPiBUaGFua3MsDQo+IC1Nb2hhbWVkDQo+PiAtLSANCj4+IENoZWVycywNCj4+ IA0KPj4gRGF2aWQgLyBkaGlsZGVuYg0KPj4gDQo+IA0KDQoKCgpBbWF6b24gV2ViIFNlcnZpY2Vz IERldmVsb3BtZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNlbnN0ci4gMzgKMTAxMTcgQmVy bGluCkdlc2NoYWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxhZWdlciwgSm9uYXRoYW4gV2Vp c3MKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRlbmJ1cmcgdW50ZXIgSFJCIDI1 Nzc2NCBCClNpdHo6IEJlcmxpbgpVc3QtSUQ6IERFIDM2NSA1MzggNTk3Cg==