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]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C206AC5AE49 for ; Mon, 10 Aug 2026 14:07:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 56C976B0092; Mon, 10 Aug 2026 10:07:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 51D746B0093; Mon, 10 Aug 2026 10:07:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 432A06B0095; Mon, 10 Aug 2026 10:07:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 22FE36B0092 for ; Mon, 10 Aug 2026 10:07:58 -0400 (EDT) Received: from smtpin25.hostedemail.com (lb01a-stub [10.200.18.249]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 905B5160182 for ; Mon, 10 Aug 2026 14:07:57 +0000 (UTC) X-FDA: 85085538594.25.9FB6F95 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf08.hostedemail.com (Postfix) with ESMTP id 7F8E016000B for ; Mon, 10 Aug 2026 14:07:55 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=arm.com header.s=foss header.b=VDMFqS+F; spf=pass (imf08.hostedemail.com: domain of kevin.brodsky@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=kevin.brodsky@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1786370875; 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=l/l2H3T3xXRxtAlEmVxkMBjt3GQq1sSw4qqDUaZjjxc=; b=1Spdu3nTaFJ6duQCr0mbWwHhODRUMCzcXM8CpVAts/bjKk/8SyDrc4hcsGXGIS+t/MWdm1 g4WyD2jtrC2uQf4E3UcahK+9QvIO4cH7OkPNkcUEmSyMy8WvOcS2T3oQzbV/70wdQOb5ua 6PFDUc5Nu+rsom3/6NKHDBPqPBbMy58= ARC-Seal: i=1; a=rsa-sha256; d=hostedemail.com; s=arc-20220608; cv=none; t=1786370875; b=4ip+umvSGbO353O6vDj2PLFULxhSPbf6BM7096MA9mukAqqXJnND/Bb/ZWr98ijBJkzrp3 KMNxJO0GYb567Vxz7dX5/rQkLtB9A17URr/At3It0g0Q+bQ2/bD8+JmRpGL18Lbp5VIMQ5 9vtEofqW8Wo44og7DjeTLugZrZCDOY8= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=arm.com header.s=foss header.b=VDMFqS+F; spf=pass (imf08.hostedemail.com: domain of kevin.brodsky@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=kevin.brodsky@arm.com; dmarc=pass (policy=none) header.from=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 737BD14BF; Mon, 10 Aug 2026 07:07:50 -0700 (PDT) Received: from [10.57.5.211] (unknown [10.57.5.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A0B0D3F86F; Mon, 10 Aug 2026 07:07:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1786370874; bh=l/l2H3T3xXRxtAlEmVxkMBjt3GQq1sSw4qqDUaZjjxc=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=VDMFqS+FI7dztumWUIj0YSzO03RhoFJUBQIQzYUdFvqVl9cEv8Iw/mDKNo7PN1C6X 1VHMihPE5KmCMT17k5n8XBwRp9N9Pbg9cGBMMV/3LzWSgApFGs1tQxNrK6u2zmk9z2 n2fKbvDMQjaTvkmApv2yhkGVWehw0StqDsKzTy6c= Message-ID: Date: Mon, 10 Aug 2026 16:07:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 03/22] mm: introduce MMF_KERNEL flag and set it for init_mm To: "David Hildenbrand (Arm)" , "Christophe Leroy (CS GROUP)" , linux-mm@kvack.org Cc: Andrew Morton , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Pasha Tatashin , Russell King , Catalin Marinas , Will Deacon , Ryan Roberts , linux-arm-kernel@lists.infradead.org, Huacai Chen , loongarch@lists.linux.dev, "James E.J. Bottomley" , Helge Deller , linux-parisc@vger.kernel.org, Madhavan Srinivasan , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-riscv@lists.infradead.org, Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Gerald Schaefer , linux-s390@vger.kernel.org, "David S. Miller" , Andreas Larsson , sparclinux@vger.kernel.org, Richard Weinberger , Anton Ivanov , Johannes Berg , linux-um@lists.infradead.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Ning Sun , x86@kernel.org, tboot-devel@lists.sourceforge.net, Ard Biesheuvel , Ilias Apalodimas , linux-efi@vger.kernel.org, Vishal Moola , Alistair Popple , "Matthew Wilcox (Oracle)" , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org References: <20260714-remove_pgtable_cdtor-v1-0-44be8a7685d7@arm.com> <20260714-remove_pgtable_cdtor-v1-3-44be8a7685d7@arm.com> <01f07ea2-8bdd-4450-8a49-548f8b646cfd@kernel.org> <33fc9d31-2866-4315-9510-0004deb93994@kernel.org> From: Kevin Brodsky Content-Language: en-GB In-Reply-To: <33fc9d31-2866-4315-9510-0004deb93994@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 7F8E016000B X-Stat-Signature: wuh3op6ybzcnjsmb9j5761xc1jehdsjm X-Rspam-User: X-HE-Tag: 1786370875-739851 X-HE-Meta: U2FsdGVkX1+LGrIQlWeQNGwCCA4GWcCcwerXPTTU8UWacsE1b5fHk6KqtA7AdeQqknxxx5UvWygDVBs6gvwfj9IjTd7GZm+2PsyRz+Zrp36GnLy5BLBQnyjK//UqfMMcmSRosA2qPPN1hPal/s2xn8Zd3NtRNQZICuN01ZdERVU2xi/SGkqZnBDfgabroZyp62RDeAyy0OgtMUVl+AztRKPxX1MoMJtrM0sLseSvovWm8ioQQEcCfnXrfmdz8zWiKMwKHQuaRB///eHFljkD2WsRT1agNpK3wHVS8sG4dbUub1kV4GChAh8qNW34YSnOvIiB5yStUfXPfcLBxDZ/hPM9ISUyE2IkJKhS10DKFWTtdApnsXx111Rh/TzfCRW/v1MOhyENK/+Ohs3fMaagNKVEBAyJSpb28TfNu3UFTe+L2sEOMXZqtuCBMaTCpzMpfc1dL5s84dQCOMQd0G3rCuOLyFnG8V6aJob4OPRFCiGMIPfXq10SUIxOqh0o9DstOgDOwSvTgrxrYNgFd+UzpR/tMAeLDYze5FAdYpZqS3qtdyx6h7zpnFvT8pyiv+fvE0YSfuo/r+Qtf2SnwzzV7LvZkVJHNeYBlCG4EAPErZ0ccAxC8iJxq6iS+qOVfzPyYZ8jmkD8ECZT122qfCWOS0kg+0DmV3H2UfZz5jB1Y1Z7hJbIBV10GyMydSXlw8kAKxee4pQUlCgJVs3BTbokDSUXFGXYAin4R1HOgjqkQEU4p9RR+9XHmke/7Qwq5zHuNlB9ep3iJEhrm1P+IgQLQh18izKvrD8g57/93Hcin1WfuC/u6hgnzaZ9ZlDtNcBJWNxp2WUVKo5CRVM55FHLsSoR97vpAeoHootZLfthLH3DlHZUvbuytBf0ngXfm+LBJNkkzcXkptrOXMDoAab0wxg6UFbK2pMZOpBB3O9iWcx3IEVcCA0gPj9jLYF8KmU5+hF4xv+KMjw00gfqBCP xsDuLRf4 NEdOZ7WNBudEmbae45d1EHTOgOJtEmu56NF//pU3KfoPQPsDQvtEg8kkZtjkV/g1yEMQNDcCb143vC7fXw32eSvk15lKZO1/s66OMTVQt5x2gsdYb5s60mZOiMFIjjR+w+2BSnUSIPhd4qVjMHFjQ86qkb01C2Lz/vkhjq6e1weBLbFae4OUmg0FiGYgABRsmv9Eo04M4P432CkBsKhN34dH2XPR3T3Qzmejpo1I7AJpCH0+RdUMSC/gv/ZSdYTYt/hy41qerSQUuD4wgPaj98JCvXTk+ZC8n24+BJH/X+0pN2NHHP6E57yVFHKuI0skhUAPlGLoMNie12r6frqcMyTteZrZE56+FhGet6PkMOS1x4iyCiy5LV5tD1tjVPdeqmHxr Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 05/08/2026 14:07, David Hildenbrand (Arm) wrote: > On 8/3/26 15:59, Christophe Leroy (CS GROUP) wrote: >> Le 14/07/2026 à 16:03, Kevin Brodsky a écrit : >>> mm code often needs to know whether some mm represents a kernel or >>> user address space. This is currently done by comparing the mm >>> pointer with &init_mm; besides not being particularly elegant, this >>> ignores the fact that other mm's (e.g. efi_mm) may also represent >>> parts of the kernel address space. >>> >>> Introduce a new mm flag MMF_KERNEL and set it for init_mm. >>> Subsequent patches will use this flag to replace comparisons with >>> &init_mm. No functional change is introduced for now. >> Did you consider performance impact ? This test is usually done in quite >> critical memory handling functions. >> >> init_mm is known at link time. Before your patch 08/22 there is just a >> comparison of mm (r3) with a constant (loaded in r10): >> >> c0014048 : >> c0014048:    3d 40 c1 09     lis     r10,-16119 >> c001404c:    39 4a 03 98     addi    r10,r10,920 >> c0014050:    7c 03 50 00     cmpw    r3,r10 >> c0014054:    4d 82 00 20     beqlr >> ... >> >> After patch 08/22 we have, it first checks that mm is not 0, then it loads the >> word located at mm+528 then AND it with 0x1. This load might be costly. >> >> c0014048 : >> c0014048:    2c 03 00 00     cmpwi   r3,0 >> c001404c:    7c 85 23 78     mr      r5,r4 >> c0014050:    41 82 00 10     beq     c0014060 >> c0014054:    81 23 02 10     lwz     r9,528(r3) >> c0014058:    71 29 00 01     andi.   r9,r9,1 >> c001405c:    4c 82 00 20     bnelr > Is that a real problem, though? I doubt it, this is a load from a fixed address and therefore highly cacheable/predictable. At worst we're keeping an extra cache line allocated, but I'd expect init_mm to be already in the cache most of the time. > What we could do is to just keep the == &init_mm check internally on configs > where we know that there is only a single such MM context. Sure, if this provides a clear performance benefit on powerpc or other architectures/configs that don't have an efi_mm we could do that. - Kevin 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0A8CDC5AD55 for ; Mon, 10 Aug 2026 14:08:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=w+qARUiD19KvdQhe6KR7G73Mv2P+bM2uNkZ3L8W4BUk=; b=Il49aYLmWSQxWd 2bNWTpYSZ+/z+Sr3YA81e2N+ZFhoY3dKpPwEAji0e9vxRf0QLMjDdDaGq19eKxiGFP13MM8XenDzT SmCbAsFxZzycJk5P4ICtzsoWC5gIHUx9DoVUijKsgUH1UQvZjK2Bk5NG1ZDxr2xPykjlG1InIOPkX 4SxJID/k2ZRmmiR7QTEQdO+4FkamaaabzgfEgaMom6dNLVAFQ6cMvAtFd1qcsquTyAFg6ZPZnDWbR Ua4xCPkp5KHKyDv8x25GfK49LJtMMygIou402P5nI315aZ0gR/ztu/drHQmJMAcVOtwInDqNAd9DB wDDJUO7yeYyxe54jReLA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtQfa-0000000BxQn-18NW; Mon, 10 Aug 2026 14:08:02 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wtQfX-0000000BxQI-0b84; Mon, 10 Aug 2026 14:08:00 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 737BD14BF; Mon, 10 Aug 2026 07:07:50 -0700 (PDT) Received: from [10.57.5.211] (unknown [10.57.5.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A0B0D3F86F; Mon, 10 Aug 2026 07:07:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1786370874; bh=l/l2H3T3xXRxtAlEmVxkMBjt3GQq1sSw4qqDUaZjjxc=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=VDMFqS+FI7dztumWUIj0YSzO03RhoFJUBQIQzYUdFvqVl9cEv8Iw/mDKNo7PN1C6X 1VHMihPE5KmCMT17k5n8XBwRp9N9Pbg9cGBMMV/3LzWSgApFGs1tQxNrK6u2zmk9z2 n2fKbvDMQjaTvkmApv2yhkGVWehw0StqDsKzTy6c= Message-ID: Date: Mon, 10 Aug 2026 16:07:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 03/22] mm: introduce MMF_KERNEL flag and set it for init_mm To: "David Hildenbrand (Arm)" , "Christophe Leroy (CS GROUP)" , linux-mm@kvack.org Cc: Andrew Morton , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Pasha Tatashin , Russell King , Catalin Marinas , Will Deacon , Ryan Roberts , linux-arm-kernel@lists.infradead.org, Huacai Chen , loongarch@lists.linux.dev, "James E.J. Bottomley" , Helge Deller , linux-parisc@vger.kernel.org, Madhavan Srinivasan , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-riscv@lists.infradead.org, Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Gerald Schaefer , linux-s390@vger.kernel.org, "David S. Miller" , Andreas Larsson , sparclinux@vger.kernel.org, Richard Weinberger , Anton Ivanov , Johannes Berg , linux-um@lists.infradead.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Ning Sun , x86@kernel.org, tboot-devel@lists.sourceforge.net, Ard Biesheuvel , Ilias Apalodimas , linux-efi@vger.kernel.org, Vishal Moola , Alistair Popple , "Matthew Wilcox (Oracle)" , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org References: <20260714-remove_pgtable_cdtor-v1-0-44be8a7685d7@arm.com> <20260714-remove_pgtable_cdtor-v1-3-44be8a7685d7@arm.com> <01f07ea2-8bdd-4450-8a49-548f8b646cfd@kernel.org> <33fc9d31-2866-4315-9510-0004deb93994@kernel.org> From: Kevin Brodsky Content-Language: en-GB In-Reply-To: <33fc9d31-2866-4315-9510-0004deb93994@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260810_070759_281854_77F45A61 X-CRM114-Status: GOOD ( 15.21 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gMDUvMDgvMjAyNiAxNDowNywgRGF2aWQgSGlsZGVuYnJhbmQgKEFybSkgd3JvdGU6Cj4gT24g OC8zLzI2IDE1OjU5LCBDaHJpc3RvcGhlIExlcm95IChDUyBHUk9VUCkgd3JvdGU6Cj4+IExlIDE0 LzA3LzIwMjYgw6AgMTY6MDMsIEtldmluIEJyb2Rza3kgYSDDqWNyaXTCoDoKPj4+IG1tIGNvZGUg b2Z0ZW4gbmVlZHMgdG8ga25vdyB3aGV0aGVyIHNvbWUgbW0gcmVwcmVzZW50cyBhIGtlcm5lbCBv cgo+Pj4gdXNlciBhZGRyZXNzIHNwYWNlLiBUaGlzIGlzIGN1cnJlbnRseSBkb25lIGJ5IGNvbXBh cmluZyB0aGUgbW0KPj4+IHBvaW50ZXIgd2l0aCAmaW5pdF9tbTsgYmVzaWRlcyBub3QgYmVpbmcg cGFydGljdWxhcmx5IGVsZWdhbnQsIHRoaXMKPj4+IGlnbm9yZXMgdGhlIGZhY3QgdGhhdCBvdGhl ciBtbSdzIChlLmcuIGVmaV9tbSkgbWF5IGFsc28gcmVwcmVzZW50Cj4+PiBwYXJ0cyBvZiB0aGUg a2VybmVsIGFkZHJlc3Mgc3BhY2UuCj4+Pgo+Pj4gSW50cm9kdWNlIGEgbmV3IG1tIGZsYWcgTU1G X0tFUk5FTCBhbmQgc2V0IGl0IGZvciBpbml0X21tLgo+Pj4gU3Vic2VxdWVudCBwYXRjaGVzIHdp bGwgdXNlIHRoaXMgZmxhZyB0byByZXBsYWNlIGNvbXBhcmlzb25zIHdpdGgKPj4+ICZpbml0X21t LiBObyBmdW5jdGlvbmFsIGNoYW5nZSBpcyBpbnRyb2R1Y2VkIGZvciBub3cuCj4+IERpZCB5b3Ug Y29uc2lkZXIgcGVyZm9ybWFuY2UgaW1wYWN0ID8gVGhpcyB0ZXN0IGlzIHVzdWFsbHkgZG9uZSBp biBxdWl0ZQo+PiBjcml0aWNhbCBtZW1vcnkgaGFuZGxpbmcgZnVuY3Rpb25zLgo+Pgo+PiBpbml0 X21tIGlzIGtub3duIGF0IGxpbmsgdGltZS4gQmVmb3JlIHlvdXIgcGF0Y2ggMDgvMjIgdGhlcmUg aXMganVzdCBhCj4+IGNvbXBhcmlzb24gb2YgbW0gKHIzKSB3aXRoIGEgY29uc3RhbnQgKGxvYWRl ZCBpbiByMTApOgo+Pgo+PiBjMDAxNDA0OCA8YXNzZXJ0X3B0ZV9sb2NrZWQ+Ogo+PiBjMDAxNDA0 ODrCoMKgwqAgM2QgNDAgYzEgMDnCoMKgwqDCoCBsaXPCoMKgwqDCoCByMTAsLTE2MTE5Cj4+IGMw MDE0MDRjOsKgwqDCoCAzOSA0YSAwMyA5OMKgwqDCoMKgIGFkZGnCoMKgwqAgcjEwLHIxMCw5MjAK Pj4gYzAwMTQwNTA6wqDCoMKgIDdjIDAzIDUwIDAwwqDCoMKgwqAgY21wd8KgwqDCoCByMyxyMTAK Pj4gYzAwMTQwNTQ6wqDCoMKgIDRkIDgyIDAwIDIwwqDCoMKgwqAgYmVxbHIKPj4gLi4uCj4+Cj4+ IEFmdGVyIHBhdGNoIDA4LzIyIHdlIGhhdmUsIGl0IGZpcnN0IGNoZWNrcyB0aGF0IG1tIGlzIG5v dCAwLCB0aGVuIGl0IGxvYWRzIHRoZQo+PiB3b3JkIGxvY2F0ZWQgYXQgbW0rNTI4IHRoZW4gQU5E IGl0IHdpdGggMHgxLiBUaGlzIGxvYWQgbWlnaHQgYmUgY29zdGx5Lgo+Pgo+PiBjMDAxNDA0OCA8 YXNzZXJ0X3B0ZV9sb2NrZWQ+Ogo+PiBjMDAxNDA0ODrCoMKgwqAgMmMgMDMgMDAgMDDCoMKgwqDC oCBjbXB3acKgwqAgcjMsMAo+PiBjMDAxNDA0YzrCoMKgwqAgN2MgODUgMjMgNzjCoMKgwqDCoCBt csKgwqDCoMKgwqAgcjUscjQKPj4gYzAwMTQwNTA6wqDCoMKgIDQxIDgyIDAwIDEwwqDCoMKgwqAg YmVxwqDCoMKgwqAgYzAwMTQwNjAgPGFzc2VydF9wdGVfbG9ja2VkKzB4MTg+Cj4+IGMwMDE0MDU0 OsKgwqDCoCA4MSAyMyAwMiAxMMKgwqDCoMKgIGx3esKgwqDCoMKgIHI5LDUyOChyMykKPj4gYzAw MTQwNTg6wqDCoMKgIDcxIDI5IDAwIDAxwqDCoMKgwqAgYW5kaS7CoMKgIHI5LHI5LDEKPj4gYzAw MTQwNWM6wqDCoMKgIDRjIDgyIDAwIDIwwqDCoMKgwqAgYm5lbHIKPiBJcyB0aGF0IGEgcmVhbCBw cm9ibGVtLCB0aG91Z2g/CgpJIGRvdWJ0IGl0LCB0aGlzIGlzIGEgbG9hZCBmcm9tIGEgZml4ZWQg YWRkcmVzcyBhbmQgdGhlcmVmb3JlIGhpZ2hseQpjYWNoZWFibGUvcHJlZGljdGFibGUuIEF0IHdv cnN0IHdlJ3JlIGtlZXBpbmcgYW4gZXh0cmEgY2FjaGUgbGluZQphbGxvY2F0ZWQsIGJ1dCBJJ2Qg ZXhwZWN0IGluaXRfbW0gdG8gYmUgYWxyZWFkeSBpbiB0aGUgY2FjaGUgbW9zdCBvZiB0aGUKdGlt ZS4KCj4gV2hhdCB3ZSBjb3VsZCBkbyBpcyB0byBqdXN0IGtlZXAgdGhlID09ICZpbml0X21tIGNo ZWNrIGludGVybmFsbHkgb24gY29uZmlncwo+IHdoZXJlIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBv bmx5IGEgc2luZ2xlIHN1Y2ggTU0gY29udGV4dC4KClN1cmUsIGlmIHRoaXMgcHJvdmlkZXMgYSBj bGVhciBwZXJmb3JtYW5jZSBiZW5lZml0IG9uIHBvd2VycGMgb3Igb3RoZXIKYXJjaGl0ZWN0dXJl cy9jb25maWdzIHRoYXQgZG9uJ3QgaGF2ZSBhbiBlZmlfbW0gd2UgY291bGQgZG8gdGhhdC4KCi0g S2V2aW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK