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 05E66C4332F for ; Thu, 14 Dec 2023 15:46:13 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wH9kKOsMJ0/P9vVg9LmedNBM4ONdbmztEJI4TPlwWMw=; b=q56i+dlAlx39G2 6q9/lkF/+J3EFlusODrqCa9y57ohQTZikHlfxgaGIbcU4ue4+tFsml45QDegp7wVTCiek+NZvJ5qy x6+E4cKm1Wz3uOksWVxoh3FjqYuQMN+J/yXq62tyWwDAOtWvq0f4LefroRj8XM8hlIQTuY7hzUO5X VhIcJ6E+E0uYHjrA0m4kNWuD1XQ7PiqkjLJm6JNFGUDC7kBUiWnSmndgXfJxWNyv8/piTpSc2BRMx OHj/XlwzG/UW6muHSb2jCkLkiL6T+uhlgxzjxqBCyc+Spq7uW6ctBifEQbTn+cM0p2Bt03Bs37MTO C6E4HorMAkqHKqEfiYYg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDnuB-000hy4-2E; Thu, 14 Dec 2023 15:45:43 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDnu7-000hw4-3D for linux-arm-kernel@lists.infradead.org; Thu, 14 Dec 2023 15:45:42 +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 9BF2AC15; Thu, 14 Dec 2023 07:46:22 -0800 (PST) Received: from raptor (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EA4D93F5A1; Thu, 14 Dec 2023 07:45:31 -0800 (PST) Date: Thu, 14 Dec 2023 15:45:25 +0000 From: Alexandru Elisei To: Rob Herring Cc: catalin.marinas@arm.com, will@kernel.org, oliver.upton@linux.dev, maz@kernel.org, james.morse@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, arnd@arndb.de, akpm@linux-foundation.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, mhiramat@kernel.org, rppt@kernel.org, hughd@google.com, pcc@google.com, steven.price@arm.com, anshuman.khandual@arm.com, vincenzo.frascino@arm.com, david@redhat.com, eugenis@google.com, kcc@google.com, hyesoo.yu@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org Subject: Re: [PATCH RFC v2 11/27] arm64: mte: Reserve tag storage memory Message-ID: References: <20231119165721.9849-12-alexandru.elisei@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231214_074540_130905_E0AD2633 X-CRM114-Status: GOOD ( 57.86 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgpPbiBXZWQsIERlYyAxMywgMjAyMyBhdCAwMjozMDo0MlBNIC0wNjAwLCBSb2IgSGVycmlu ZyB3cm90ZToKPiBPbiBXZWQsIERlYyAxMywgMjAyMyBhdCAxMTo0NOKAr0FNIEFsZXhhbmRydSBF bGlzZWkKPiA8YWxleGFuZHJ1LmVsaXNlaUBhcm0uY29tPiB3cm90ZToKPiA+Cj4gPiBPbiBXZWQs IERlYyAxMywgMjAyMyBhdCAxMToyMjoxN0FNIC0wNjAwLCBSb2IgSGVycmluZyB3cm90ZToKPiA+ ID4gT24gV2VkLCBEZWMgMTMsIDIwMjMgYXQgODo1MeKAr0FNIEFsZXhhbmRydSBFbGlzZWkKPiA+ ID4gPGFsZXhhbmRydS5lbGlzZWlAYXJtLmNvbT4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBIaSwK PiA+ID4gPgo+ID4gPiA+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDA4OjA2OjQ0QU0gLTA2MDAs IFJvYiBIZXJyaW5nIHdyb3RlOgo+ID4gPiA+ID4gT24gV2VkLCBEZWMgMTMsIDIwMjMgYXQgNzow NeKAr0FNIEFsZXhhbmRydSBFbGlzZWkKPiA+ID4gPiA+IDxhbGV4YW5kcnUuZWxpc2VpQGFybS5j b20+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBIaSBSb2IsCj4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+IE9uIFR1ZSwgRGVjIDEyLCAyMDIzIGF0IDEyOjQ0OjA2UE0gLTA2MDAsIFJvYiBI ZXJyaW5nIHdyb3RlOgo+ID4gPiA+ID4gPiA+IE9uIFR1ZSwgRGVjIDEyLCAyMDIzIGF0IDEwOjM4 4oCvQU0gQWxleGFuZHJ1IEVsaXNlaQo+ID4gPiA+ID4gPiA+IDxhbGV4YW5kcnUuZWxpc2VpQGFy bS5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEhpIFJvYiwKPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgdGhlIGZl ZWRiYWNrLCBJJ20gbm90IHZlcnkgZmFtaWxpYXIgd2l0aCBkZXZpY2UgdHJlZSwKPiA+ID4gPiA+ ID4gPiA+IGFuZCBhbnkgY29tbWVudHMgYXJlIHZlcnkgdXNlZnVsLgo+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+IE9uIE1vbiwgRGVjIDExLCAyMDIzIGF0IDExOjI5OjQwQU0gLTA2MDAs IFJvYiBIZXJyaW5nIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBPbiBTdW4sIE5vdiAxOSwgMjAy MyBhdCAxMDo1OeKAr0FNIEFsZXhhbmRydSBFbGlzZWkKPiA+ID4gPiA+ID4gPiA+ID4gPGFsZXhh bmRydS5lbGlzZWlAYXJtLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiBBbGxvdyB0aGUga2VybmVsIHRvIGdldCB0aGUgc2l6ZSBhbmQgbG9jYXRpb24g b2YgdGhlIE1URSB0YWcgc3RvcmFnZQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlZ2lvbnMgZnJvbSB0 aGUgRFRCLiBUaGlzIG1lbW9yeSBpcyBtYXJrZWQgYXMgcmVzZXJ2ZWQgZm9yIG5vdy4KPiA+ID4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoZSBEVEIgbm9kZSBmb3IgdGhlIHRh ZyBzdG9yYWdlIHJlZ2lvbiBpcyBkZWZpbmVkIGFzOgo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gICAgICAgICB0YWdzMDogdGFnLXN0b3JhZ2VAOGY4MDAwMDAwIHsKPiA+ ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJhcm0sbXRlLXRh Zy1zdG9yYWdlIjsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgcmVnID0gPDB4 MDggMHhmODAwMDAwMCAweDAwIDB4NDAwMDAwMD47Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAg ICAgICAgICAgIGJsb2NrLXNpemUgPSA8MHgxMDAwPjsKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgbWVtb3J5ID0gPCZtZW1vcnkwPjsgICAgLy8gQXNzb2NpYXRlZCB0YWdnZWQg bWVtb3J5IG5vZGUKPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgIH07Cj4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEkgc2tpbW1lZCB0aHJ1IHRoZSBkaXNjdXNzaW9uIHNvbWUu IElmIHRoaXMgbWVtb3J5IHJhbmdlIGlzIHdpdGhpbgo+ID4gPiA+ID4gPiA+ID4gPiBtYWluIFJB TSwgdGhlbiBpdCBkZWZpbml0ZWx5IGJlbG9uZ3MgaW4gL3Jlc2VydmVkLW1lbW9yeS4KPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBPaywgd2lsbCBkbyB0aGF0Lgo+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+IElmIHlvdSBkb24ndCBtaW5kLCB3aHkgZG8geW91IHNheSB0aGF0 IGl0IGRlZmluaXRlbHkgYmVsb25ncyBpbgo+ID4gPiA+ID4gPiA+ID4gcmVzZXJ2ZWQtbWVtb3J5 PyBJJ20gbm90IHRyeWluZyB0byBhcmd1ZSBvdGhlcndpc2UsIEknbSBjdXJpb3VzIGFib3V0IHRo ZQo+ID4gPiA+ID4gPiA+ID4gbW90aXZhdGlvbi4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ IFNpbXBseSBzbyB0aGF0IC9tZW1vcnkgbm9kZXMgZGVzY3JpYmUgYWxsIHBvc3NpYmxlIG1lbW9y eSBhbmQKPiA+ID4gPiA+ID4gPiAvcmVzZXJ2ZWQtbWVtb3J5IGlzIGp1c3QgYWRkaW5nIHJlc3Ry aWN0aW9ucy4gSXQncyBhbHNvIGJlY2F1c2UKPiA+ID4gPiA+ID4gPiAvcmVzZXJ2ZWQtbWVtb3J5 IGlzIHdoYXQgZ2V0cyBoYW5kbGVkIGVhcmx5LCBhbmQgd2UgZG9uJ3QgbmVlZAo+ID4gPiA+ID4g PiA+IG11bHRpcGxlIHRoaW5ncyB0byBoYW5kbGUgZWFybHkuCj4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+IFRhZyBzdG9yYWdlIGlzIG5vdCBETUEgYW5kIGNhbiBsaXZlIGFueXdoZXJlIGlu IG1lbW9yeS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFRoZW4gd2h5IHB1dCBpdCBpbiBE VCBhdCBhbGw/IFRoZSBvbmx5IHJlYXNvbiBDTUEgaXMgdGhlcmUgaXMgdG8gc2V0Cj4gPiA+ID4g PiA+ID4gdGhlIHNpemUuIEl0J3Mgbm90IGV2ZW4gY2xlYXIgdG8gbWUgd2UgbmVlZCBDTUEgaW4g RFQgZWl0aGVyLiBUaGUKPiA+ID4gPiA+ID4gPiByZWFzb25pbmcgbG9uZyBhZ28gd2FzIHRoZSBr ZXJuZWwgZGlkbid0IGRvIGEgZ29vZCBqb2Igb2YgbW92aW5nIGFuZAo+ID4gPiA+ID4gPiA+IHJl Y2xhaW1pbmcgY29udGlndW91cyBzcGFjZSwgYnV0IHRoYXQncyBzdXBwb3NlZCB0byBiZSBiZXR0 ZXIgbm93IChhbmQKPiA+ID4gPiA+ID4gPiBtb3N0IGgvdyBmaWd1cmVkIG91dCB0aGV5IG5lZWQg SU9NTVVzKS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEJ1dCBmb3IgdGFnIHN0b3JhZ2Ug eW91IGtub3cgdGhlIHNpemUgYXMgaXQgaXMgYSBmdW5jdGlvbiBvZiB0aGUKPiA+ID4gPiA+ID4g PiBtZW1vcnkgc2l6ZSwgcmlnaHQ/IEFmdGVyIGFsbCwgeW91IGFyZSB2YWxpZGF0aW5nIHRoZSBz aXplIGlzIGNvcnJlY3QuCj4gPiA+ID4gPiA+ID4gSSBndWVzcyB0aGVyZSBpcyBzdGlsbCB0aGUg YXNwZWN0IG9mIHdoZXRoZXIgeW91IHdhbnQgZW5hYmxlIE1URSBvcgo+ID4gPiA+ID4gPiA+IG5v dCB3aGljaCBjb3VsZCBiZSBkb25lIGluIGEgdmFyaWV0eSBvZiB3YXlzLgo+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiBPaCwgc29ycnksIG15IGJhZCwgSSBzaG91bGQgaGF2ZSBiZWVuIGNsZWFyZXIg YWJvdXQgdGhpcy4gSSBkb24ndCB3YW50IHRvCj4gPiA+ID4gPiA+IHB1dCBpdCBpbiB0aGUgRFQg YXMgYSAibGludXgsY21hIiBub2RlLiBCdXQgSSB3YW50IGl0IHRvIGJlIG1hbmFnZWQgYnkgQ01B Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IFllcywgSSB1bmRlcnN0YW5kLCBidXQgbXkgcG9pbnQgcmVt YWlucy4gV2h5IGRvIHlvdSBuZWVkIHRoaXMgaW4gRFQ/Cj4gPiA+ID4gPiBJZiB0aGUgbG9jYXRp b24gZG9lc24ndCBtYXR0ZXIgYW5kIHlvdSBjYW4gY2FsY3VsYXRlIHRoZSBzaXplIGZyb20gdGhl Cj4gPiA+ID4gPiBtZW1vcnkgc2l6ZSwgd2hhdCBlbHNlIGlzIHRoZXJlIHRvIGFkZCB0byB0aGUg RFQ/Cj4gPiA+ID4KPiA+ID4gPiBJIGFtIGFmcmFpZCB0aGVyZSBoYXMgYmVlbiBhIG1pc3VuZGVy c3RhbmRpbmcuIFdoYXQgZG8geW91IG1lYW4gYnkKPiA+ID4gPiAibG9jYXRpb24gZG9lc24ndCBt YXR0ZXIiPwo+ID4gPgo+ID4gPiBZb3Ugc2FpZDoKPiA+ID4gPiBUYWcgc3RvcmFnZSBpcyBub3Qg RE1BIGFuZCBjYW4gbGl2ZSBhbnl3aGVyZSBpbiBtZW1vcnkuCj4gPiA+Cj4gPiA+IFdoaWNoIEkg dG9vayBhcyB0aGUga2VybmVsIGNhbiBmaWd1cmUgb3V0IHdoZXJlIHRvIHB1dCBpdC4gQnV0IG1h eWJlCj4gPiA+IHlvdSBtZWFudCB0aGUgaC93IHBsYXRmb3JtIGNhbiBoYXJkIGNvZGUgaXQgdG8g YmUgYW55d2hlcmUgaW4gbWVtb3J5Pwo+ID4gPiBJZiBzbywgdGhlbiB5ZXMsIERUIGlzIG5lZWRl ZC4KPiA+Cj4gPiBBaCwgSSBzZWUsIHNvcnJ5IGZvciBub3QgYmVpbmcgY2xlYXIgZW5vdWdoLCB5 b3UgYXJlIGNvcnJlY3Q6IHRhZyBzdG9yYWdlCj4gPiBpcyBhIGhhcmR3YXJlIHByb3BlcnR5LCBh bmQgc29mdHdhcmUgbmVlZHMgYSBtZWNoYW5pc20gKGluIHRoaXMgY2FzZSwgdGhlCj4gPiBkdCkg dG8gZGlzY292ZXIgaXRzIHByb3BlcnRpZXMuCj4gPgo+ID4gPgo+ID4gPiA+IEF0IHRoZSB2ZXJ5 IGxlYXN0LCBMaW51eCBuZWVkcyB0byBrbm93IHRoZSBhZGRyZXNzIGFuZCBzaXplIG9mIGEgbWVt b3J5Cj4gPiA+ID4gcmVnaW9uIHRvIHVzZSBpdC4gVGhlIHNlcmllcyBpcyBhYm91dCB1c2luZyB0 aGUgdGFnIHN0b3JhZ2UgbWVtb3J5IGZvcgo+ID4gPiA+IGRhdGEuIFRhZyBzdG9yYWdlIGNhbm5v dCBiZSBkZXNjcmliZWQgYXMgYSByZWd1bGFyIG1lbW9yeSBub2RlIGJlY2F1c2UgaXQKPiA+ID4g PiBjYW5ub3QgYmUgdGFnZ2VkIChhbmQgbm9ybWFsIG1lbW9yeSBjYW4pLgo+ID4gPgo+ID4gPiBJ ZiB0aGUgdGFnIHN0b3JhZ2UgbGl2ZXMgaW4gdGhlIG1pZGRsZSBvZiBtZW1vcnksIHRoZW4gaXQg d291bGQgYmUKPiA+ID4gZGVzY3JpYmVkIGluIHRoZSBtZW1vcnkgbm9kZSwgYnV0IHJlbW92ZWQg YnkgYmVpbmcgaW4gcmVzZXJ2ZWQtbWVtb3J5Cj4gPiA+IG5vZGUuCj4gPgo+ID4gSSBkb24ndCBm b2xsb3cuIFdvdWxkIHlvdSBtaW5kIGdvaW5nIGludG8gbW9yZSBkZXRhaWxzPwo+IAo+IEl0IGdv ZXMgYmFjayB0byB3aGF0IEkgc2FpZCBlYXJsaWVyIGFib3V0IC9tZW1vcnkgbm9kZXMgZGVzY3Jp YmluZyBhbGwKPiB0aGUgbWVtb3J5LiBUaGVyZSdzIG5vIHJlYXNvbiB0byByZXNlcnZlIG1lbW9y eSBpZiB5b3UgaGF2ZW4ndAo+IGRlc2NyaWJlZCB0aGF0IHJhbmdlIGFzIG1lbW9yeSB0byBiZWdp biB3aXRoLiBPbmUgY291bGQgcHJlc3VtYWJseQo+IGp1c3QgaGF2ZSBhIG1lbW9yeSBub2RlIGZv ciBlYWNoIGNvbnRpZ3VvdXMgY2h1bmsgYW5kIG5vdCBuZWVkCj4gL3Jlc2VydmVkLW1lbW9yeSAo aWdub3JpbmcgdGhlIG5lZWQgdG8gc2F5IHdoYXQgdGhpbmdzIGFyZSByZXNlcnZlZAo+IGZvciku IFRoYXQgd291bGQgYmVjb21lIHZlcnkgZGlmZmljdWx0IHRvIGFkanVzdC4gTm90ZSB0aGF0IHRo ZSBrZXJuZWwKPiBoYXMgYSBoYXJkY29kZWQgbGltaXQgb2YgNjQgcmVzZXJ2ZWQgcmVnaW9ucyBj dXJyZW50bHkgYW5kIHRoYXQgaXMgbm90Cj4gZW5vdWdoIGZvciBzb21lIHBlb3BsZS4gU2VlbXMg bGlrZSBhIGxvdCwgYnV0IEkgaGF2ZSBubyBpZGVhIGhvdyB0aGV5Cj4gYXJlIChhYil1c2luZyAv cmVzZXJ2ZWQtbWVtb3J5LgoKQWgsIEkgc2VlIHdoYXQgeW91IG1lYW4sIHJlc2VydmVkIG1lbW9y eSBpcyBhYm91dCBtYXJraW5nIGV4aXN0aW5nIG1lbW9yeQooZnJvbSBhIC9tZW1vcnkgbm9kZSkg YXMgc3BlY2lhbCwgbm90IGFib3V0IGFkZGluZyBuZXcgbWVtb3J5LgoKQWZ0ZXIgdGhlIG1lbWJs b2NrIGFsbG9jYXRvciBpcyBpbml0aWFsaXplZCwgdGhlIGtlcm5lbCBjYW4gdXNlIGl0IGZvciBp dHMKb3duIGFsbG9jYXRpb25zLiBLZXJuZWwgYWxsb2NhdGlvbnMgYXJlIG5vdCBtb3ZhYmxlLgoK V2hlbiBhIHBhZ2UgaXMgYWxsb2NhdGVkIGFzIHRhZ2dlZCwgdGhlIGFzc29jaWF0ZWQgdGFnIHN0 b3JhZ2UgY2Fubm90IGJlCnVzZWQgZm9yIGRhdGEsIG90aGVyd2lzZSB0aGUgdGFncyB3b3VsZCBj b3JydXB0IHRoYXQgZGF0YS4gVG8gYXZvaWQgdGhpcywKdGhlIHJlcXVpcmVtZW50IGlzIHRoYXQg dGFnIHN0b3JhZ2UgcGFnZXMgYXJlIG9ubHkgdXNlZCBmb3IgbW92YWJsZQphbGxvY2F0aW9ucy4g V2hlbiBhIHBhZ2UgaXMgYWxsb2NhdGVkIGFzIHRhZ2dlZCwgdGhlIGRhdGEgaW4gdGhlIGFzc29j aWF0ZWQKdGFnIHN0b3JhZ2UgaXMgbWlncmF0ZWQgYW5kIHRoZSB0YWcgc3RvcmFnZSBpcyB0YWtl biBmcm9tIHRoZSBwYWdlCmFsbG9jYXRvciAodmlhIGFsbG9jX2NvbnRpZ19yYW5nZSgpKS4KCk15 IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgbWVtYmxvY2sgYWxsb2NhdG9yIGNhbiB1c2UgYWxs IHRoZSBtZW1vcnkgZnJvbQphIC9tZW1vcnkgbm9kZS4gSWYgdGhlIHRhZ3Mgc3RvcmFnZSBtZW1v cnkgaXMgZGVjbGFyZWQgaW4gYSAvbWVtb3J5IG5vZGUsCnRoZXJlIGV4aXN0cyB0aGUgcG9zc2li aWxpdHkgdGhhdCBMaW51eCB3aWxsIHVzZSB0YWcgc3RvcmFnZSBtZW1vcnkgZm9yIGl0cwpvd24g YWxsb2NhdGlvbiwgd2hpY2ggd291bGQgbWFrZSB0aGF0IHRhZ3Mgc3RvcmFnZSBtZW1vcnkgdW5t b3ZhYmxlLCBhbmQKdGh1cyB1bnVzYWJsZSBmb3Igc3RvcmluZyB0YWdzLgoKTG9va2luZyBhdCBl YXJseV9pbml0X2R0X3NjYW5fbWVtb3J5KCksIGV2ZW4gaWYgYSAvbWVtb3J5IG5vZGUgaWYgbWFy a2VkIGF0CmhvdHBsdWdnYWJsZSwgbWVtYmxvY2sgd2lsbCBzdGlsbCB1c2UgaXQsIHVubGVzcyAi bW92YWJsZV9ub2RlIiBpcyBzZXQgb24KdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCgpUaGF0J3Mg dGhlIHJlYXNvbiB3aHkgSSdtIG5vdCBkZXNjcmliaW5nIHRhZyBzdG9yYWdlIGluIGEgL21lbW9y eSBub2RlLiAgSXMKdGhlcmUgd2F5IHRvIHRlbGwgdGhlIG1lbWJsb2NrIGFsbG9jYXRvciBub3Qg dG8gdXNlIG1lbW9yeSBmcm9tIGEgL21lbW9yeQpub2RlPwoKPiAKPiBMZXQgbWUgZ2l2ZSBhbiBl eGFtcGxlLiBQcmVzdW1hYmx5IHVzaW5nIE1URSBhdCBhbGwgaXMgY29uZmlndXJhYmxlLgo+IElm IHlvdSBib290IGEga2VybmVsIHdpdGggTVRFIGRpc2FibGVkIChvciBvbGRlciBhbmQgbm90IHN1 cHBvcnRpbmcKPiBpdCksIHRoZW4gSSdkIGFzc3VtZSB5b3UnZCB3YW50IHRvIHVzZSB0aGUgdGFn IHN0b3JhZ2UgZm9yIHJlZ3VsYXIKPiBtZW1vcnkuIFdlbGwsIElmIHRhZyBzdG9yYWdlIGlzIGFs cmVhZHkgcGFydCBvZiAvbWVtb3J5LCB0aGVuIGFsbCB5b3UKPiBoYXZlIHRvIGRvIGlzIGlnbm9y ZSB0aGUgdGFnIHJlc2VydmVkLW1lbW9yeSByZWdpb24uIFR3ZWFraW5nIHRoZQo+IG1lbW9yeSBu b2RlcyB3b3VsZCBiZSBtb3JlIHdvcmsuCgpSaWdodCBub3csIG1lbW9yeSBpcyBhZGRlZCB2aWEg bWVtYmxvY2tfcmVzZXJ2ZSgpLCBhbmQgaWYgTVRFIGlzIGRpc2FibGVkCihmb3IgZXhhbXBsZSwg dmlhIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lKSwgdGhlIGNvZGUgY2FsbHMKZnJlZV9yZXNlcnZl ZF9wYWdlKCkgZm9yIGVhY2ggdGFnIHN0b3JhZ2UgcGFnZS4gSSBmaW5kIHRoYXQgc3RyYWlnaHRm b3dhcmQKdG8gaW1wbGVtZW50LgoKVGhhbmtzLApBbGV4Cgo+IAo+IAo+IEFsc28sIEkgc2hvdWxk IHBvaW50IG91dCB0aGF0IC9tZW1vcnkgYW5kIC9yZXNlcnZlZC1tZW1vcnkgbm9kZXMgYXJlCj4g bm90IHVzZWQgZm9yIFVFRkkgYm9vdC4KPiAKPiBSb2IKPiAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK