From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F0B9C8E2 for ; Mon, 7 Aug 2023 12:40:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA53EC433C7; Mon, 7 Aug 2023 12:40:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691412044; bh=RsAY8F/KSwqORT8NHwkg0CSFj0ZY5rAKG23RDmdDLzY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=jRd9+oTOceOVTrrj62l+cpv5OGndVY4+EeBfYYSdMf9yzbc/uK8Q/roDA+nktJT99 dFwkYbhHozVgsGwjuWpz0kG70pKRv6zo4kYDNpuHOB+ZSRdEdr99jayUz0pcKXWrVq MtiGqtNAN/pxxqh0+ya7/Wcv6uSZIaLgboracqBonKUTOYbsQZA/6VaxH0kqUHTAbm OvnVvErTUwOg8kPIr0yL6kLrhfwKRN9hCBXPvWfRg8eDIzn71f3I8WvwxiQR+meLT6 f1OV1Dy7ivYWD3+aM8lj+cHomUmj2jqghsvcM5mQsazmYc63H5gsYDsb0/EFpS1uvD /Z+iiVREW9bYQ== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1qSzXO-002pS2-5r; Mon, 07 Aug 2023 13:40:42 +0100 Date: Mon, 07 Aug 2023 13:40:34 +0100 Message-ID: <868ran58l9.wl-maz@kernel.org> From: Marc Zyngier To: Miguel Luis Cc: "kvmarm@lists.linux.dev" , "kvm@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Catalin Marinas , Eric Auger , Mark Brown , Mark Rutland , Will Deacon , Alexandru Elisei , Andre Przywara , Chase Conklin , Ganapatrao Kulkarni , Darren Hart , James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu Subject: Re: [PATCH v2 06/26] arm64: Add debug registers affected by HDFGxTR_EL2 In-Reply-To: References: <20230728082952.959212-1-maz@kernel.org> <20230728082952.959212-7-maz@kernel.org> <61B845D3-A42B-451F-B74D-51B4A1FD28C6@oracle.com> <86leet5o20.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: miguel.luis@oracle.com, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, eric.auger@redhat.com, broonie@kernel.org, mark.rutland@arm.com, will@kernel.org, alexandru.elisei@arm.com, andre.przywara@arm.com, chase.conklin@arm.com, gankulkarni@os.amperecomputing.com, darren@os.amperecomputing.com, james.morse@arm.com, suzuki.poulose@arm.com, oliver.upton@linux.dev, yuzenghui@huawei.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false On Thu, 03 Aug 2023 01:00:52 +0100, Miguel Luis wrote: >=20 > Hi Marc, >=20 > > On 2 Aug 2023, at 17:52, Marc Zyngier wrote: > >=20 > > On Mon, 31 Jul 2023 17:41:41 +0100, > > Miguel Luis wrote: > >>=20 > >> Hi Marc, > >>=20 > >> A few comments on this one, please see below. > >>=20 > >>> On 28 Jul 2023, at 08:29, Marc Zyngier wrote: > >>>=20 > >>> The HDFGxTR_EL2 registers trap a (huge) set of debug and trace > >>> related registers. Add their encodings (and only that, because > >>> we really don't care about what these registers actually do at > >>> this stage). > >>>=20 > >>> Signed-off-by: Marc Zyngier > >>> --- > >>> arch/arm64/include/asm/sysreg.h | 78 +++++++++++++++++++++++++++++++++ > >>> 1 file changed, 78 insertions(+) > >>>=20 > >>> diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm= /sysreg.h > >>> index 76289339b43b..9dfd127be55a 100644 > >>> --- a/arch/arm64/include/asm/sysreg.h > >>> +++ b/arch/arm64/include/asm/sysreg.h > >>> @@ -194,6 +194,84 @@ > >>> #define SYS_DBGDTRTX_EL0 sys_reg(2, 3, 0, 5, 0) > >>> #define SYS_DBGVCR32_EL2 sys_reg(2, 4, 0, 7, 0) > >>>=20 > >>> +#define SYS_BRBINF_EL1(n) sys_reg(2, 1, 8, (n & 15), (((n & 16) >> 2= ) | 0)) > >>> +#define SYS_BRBINFINJ_EL1 sys_reg(2, 1, 9, 1, 0) > >>> +#define SYS_BRBSRC_EL1(n) sys_reg(2, 1, 8, (n & 15), (((n & 16) >> 2= ) | 1)) > >>> +#define SYS_BRBSRCINJ_EL1 sys_reg(2, 1, 9, 1, 1) > >>> +#define SYS_BRBTGT_EL1(n) sys_reg(2, 1, 8, (n & 15), (((n & 16) >> 2= ) | 2)) > >>> +#define SYS_BRBTGTINJ_EL1 sys_reg(2, 1, 9, 1, 2) > >>> +#define SYS_BRBTS_EL1 sys_reg(2, 1, 9, 0, 2) > >>> + > >>> +#define SYS_BRBCR_EL1 sys_reg(2, 1, 9, 0, 0) > >>> +#define SYS_BRBFCR_EL1 sys_reg(2, 1, 9, 0, 1) > >>> +#define SYS_BRBIDR0_EL1 sys_reg(2, 1, 9, 2, 0) > >>> + > >>> +#define SYS_TRCITECR_EL1 sys_reg(3, 0, 1, 2, 3) > >>> +#define SYS_TRCITECR_EL1 sys_reg(3, 0, 1, 2, 3) > >>=20 > >> SYS_TRCITECR_EL1 shows up twice. > >=20 > > Ah, nice one. Too many registers. > >=20 > >>=20 > >>> +#define SYS_TRCACATR(m) sys_reg(2, 1, 2, ((m & 7) << 1), (2 | (m >> = 3))) > >>=20 > >> Besides m=E2=80=99s restrictions it could be sanitised in op2 to consi= der only bit m[3]. > >> Suggestion for op2: (2 | ((m & 8) >> 3))) > >=20 > > It is fully expected that 'm' will be in the 0-15 range, as per the > > architecture (D19.4.8), and the tables only use that exact range. > >=20 > > Do you see an actual bug, or is this defensive programming? > >=20 >=20 > I was seeing a problem when m[5]=3D1 then Op2 of 0b01:m[3] isn=E2=80=99t = guaranteed > anymore overridden with 0b11:m[3]. But that'd be wrong anyway. Now, we'd have an encoding that possibly aliases to something else, and we don't know about it. > Clearly =E2=80=98m=E2=80=99 would be outside the range but not messing wi= th Op2 fixed bits 0b01. > Not a problem for patch 21 though. All these macros have as the basis for their use that you use *valid* input. > Due to the uncertainty if this can bite later, hence the suggestion and a= lso > open to advices. If you really want some defensive programming on that front, then you should make sure we detect the issue at compile time, rather than silently changing the encoding. Thanks, M. --=20 Without deviation from the norm, progress is not possible. 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 3EF4AC001B0 for ; Mon, 7 Aug 2023 12:41:12 +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:MIME-Version:References:In-Reply-To: Subject:Cc:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=d1xX0Kn3JQSAnPd+yALOHZloTxVGlVQ+2jEsG9YgZHc=; b=llfvhMA3LjJN58 +RzjEtYmdGLwraxzFIqLiQrDnPdAAz5db41dJCzNmMQJPz7wAI6u9TL16jgbAtUZqYTaAdcLKoX65 bOQyyb+Gs60qr1h85IX4QDzuv463uYVS7ti8z3vEL7SHdNlcFSllkiaGvOThzxq2e9OGgjx5YxOM+ R0yUZmbbg2F1mwakO67D3Oh8N4O2mAnRMw9zv3ofkTQ+H/FzObuuzEwNw32rWRRgpuhhwUejsKKbB iUBrbslBPwWIfy3FAB2h5Xfgc9VABqVFcJuQxEqGb+IfSjFNgI0UAWxiN8UUlZJ8NPNwCThnFdW+L JONXmJ3aMM3nIobg2bxA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qSzXV-00HFF8-1M; Mon, 07 Aug 2023 12:40:49 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qSzXS-00HFEb-0f for linux-arm-kernel@lists.infradead.org; Mon, 07 Aug 2023 12:40:47 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4C124617BA; Mon, 7 Aug 2023 12:40:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA53EC433C7; Mon, 7 Aug 2023 12:40:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691412044; bh=RsAY8F/KSwqORT8NHwkg0CSFj0ZY5rAKG23RDmdDLzY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=jRd9+oTOceOVTrrj62l+cpv5OGndVY4+EeBfYYSdMf9yzbc/uK8Q/roDA+nktJT99 dFwkYbhHozVgsGwjuWpz0kG70pKRv6zo4kYDNpuHOB+ZSRdEdr99jayUz0pcKXWrVq MtiGqtNAN/pxxqh0+ya7/Wcv6uSZIaLgboracqBonKUTOYbsQZA/6VaxH0kqUHTAbm OvnVvErTUwOg8kPIr0yL6kLrhfwKRN9hCBXPvWfRg8eDIzn71f3I8WvwxiQR+meLT6 f1OV1Dy7ivYWD3+aM8lj+cHomUmj2jqghsvcM5mQsazmYc63H5gsYDsb0/EFpS1uvD /Z+iiVREW9bYQ== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1qSzXO-002pS2-5r; Mon, 07 Aug 2023 13:40:42 +0100 Date: Mon, 07 Aug 2023 13:40:34 +0100 Message-ID: <868ran58l9.wl-maz@kernel.org> From: Marc Zyngier To: Miguel Luis Cc: "kvmarm@lists.linux.dev" , "kvm@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Catalin Marinas , Eric Auger , Mark Brown , Mark Rutland , Will Deacon , Alexandru Elisei , Andre Przywara , Chase Conklin , Ganapatrao Kulkarni , Darren Hart , James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu Subject: Re: [PATCH v2 06/26] arm64: Add debug registers affected by HDFGxTR_EL2 In-Reply-To: References: <20230728082952.959212-1-maz@kernel.org> <20230728082952.959212-7-maz@kernel.org> <61B845D3-A42B-451F-B74D-51B4A1FD28C6@oracle.com> <86leet5o20.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: miguel.luis@oracle.com, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, eric.auger@redhat.com, broonie@kernel.org, mark.rutland@arm.com, will@kernel.org, alexandru.elisei@arm.com, andre.przywara@arm.com, chase.conklin@arm.com, gankulkarni@os.amperecomputing.com, darren@os.amperecomputing.com, james.morse@arm.com, suzuki.poulose@arm.com, oliver.upton@linux.dev, yuzenghui@huawei.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230807_054046_334011_6A9A9461 X-CRM114-Status: GOOD ( 31.02 ) 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 T24gVGh1LCAwMyBBdWcgMjAyMyAwMTowMDo1MiArMDEwMCwKTWlndWVsIEx1aXMgPG1pZ3VlbC5s dWlzQG9yYWNsZS5jb20+IHdyb3RlOgo+IAo+IEhpIE1hcmMsCj4gCj4gPiBPbiAyIEF1ZyAyMDIz LCBhdCAxNzo1MiwgTWFyYyBaeW5naWVyIDxtYXpAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiAKPiA+ IE9uIE1vbiwgMzEgSnVsIDIwMjMgMTc6NDE6NDEgKzAxMDAsCj4gPiBNaWd1ZWwgTHVpcyA8bWln dWVsLmx1aXNAb3JhY2xlLmNvbT4gd3JvdGU6Cj4gPj4gCj4gPj4gSGkgTWFyYywKPiA+PiAKPiA+ PiBBIGZldyBjb21tZW50cyBvbiB0aGlzIG9uZSwgcGxlYXNlIHNlZSBiZWxvdy4KPiA+PiAKPiA+ Pj4gT24gMjggSnVsIDIwMjMsIGF0IDA4OjI5LCBNYXJjIFp5bmdpZXIgPG1hekBrZXJuZWwub3Jn PiB3cm90ZToKPiA+Pj4gCj4gPj4+IFRoZSBIREZHeFRSX0VMMiByZWdpc3RlcnMgdHJhcCBhICho dWdlKSBzZXQgb2YgZGVidWcgYW5kIHRyYWNlCj4gPj4+IHJlbGF0ZWQgcmVnaXN0ZXJzLiBBZGQg dGhlaXIgZW5jb2RpbmdzIChhbmQgb25seSB0aGF0LCBiZWNhdXNlCj4gPj4+IHdlIHJlYWxseSBk b24ndCBjYXJlIGFib3V0IHdoYXQgdGhlc2UgcmVnaXN0ZXJzIGFjdHVhbGx5IGRvIGF0Cj4gPj4+ IHRoaXMgc3RhZ2UpLgo+ID4+PiAKPiA+Pj4gU2lnbmVkLW9mZi1ieTogTWFyYyBaeW5naWVyIDxt YXpAa2VybmVsLm9yZz4KPiA+Pj4gLS0tCj4gPj4+IGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vc3lz cmVnLmggfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+Pj4gMSBmaWxl IGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKykKPiA+Pj4gCj4gPj4+IGRpZmYgLS1naXQgYS9hcmNo L2FybTY0L2luY2x1ZGUvYXNtL3N5c3JlZy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNy ZWcuaAo+ID4+PiBpbmRleCA3NjI4OTMzOWI0M2IuLjlkZmQxMjdiZTU1YSAxMDA2NDQKPiA+Pj4g LS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNyZWcuaAo+ID4+PiArKysgYi9hcmNoL2Fy bTY0L2luY2x1ZGUvYXNtL3N5c3JlZy5oCj4gPj4+IEBAIC0xOTQsNiArMTk0LDg0IEBACj4gPj4+ ICNkZWZpbmUgU1lTX0RCR0RUUlRYX0VMMCBzeXNfcmVnKDIsIDMsIDAsIDUsIDApCj4gPj4+ICNk ZWZpbmUgU1lTX0RCR1ZDUjMyX0VMMiBzeXNfcmVnKDIsIDQsIDAsIDcsIDApCj4gPj4+IAo+ID4+ PiArI2RlZmluZSBTWVNfQlJCSU5GX0VMMShuKSBzeXNfcmVnKDIsIDEsIDgsIChuICYgMTUpLCAo KChuICYgMTYpID4+IDIpIHwgMCkpCj4gPj4+ICsjZGVmaW5lIFNZU19CUkJJTkZJTkpfRUwxIHN5 c19yZWcoMiwgMSwgOSwgMSwgMCkKPiA+Pj4gKyNkZWZpbmUgU1lTX0JSQlNSQ19FTDEobikgc3lz X3JlZygyLCAxLCA4LCAobiAmIDE1KSwgKCgobiAmIDE2KSA+PiAyKSB8IDEpKQo+ID4+PiArI2Rl ZmluZSBTWVNfQlJCU1JDSU5KX0VMMSBzeXNfcmVnKDIsIDEsIDksIDEsIDEpCj4gPj4+ICsjZGVm aW5lIFNZU19CUkJUR1RfRUwxKG4pIHN5c19yZWcoMiwgMSwgOCwgKG4gJiAxNSksICgoKG4gJiAx NikgPj4gMikgfCAyKSkKPiA+Pj4gKyNkZWZpbmUgU1lTX0JSQlRHVElOSl9FTDEgc3lzX3JlZygy LCAxLCA5LCAxLCAyKQo+ID4+PiArI2RlZmluZSBTWVNfQlJCVFNfRUwxIHN5c19yZWcoMiwgMSwg OSwgMCwgMikKPiA+Pj4gKwo+ID4+PiArI2RlZmluZSBTWVNfQlJCQ1JfRUwxIHN5c19yZWcoMiwg MSwgOSwgMCwgMCkKPiA+Pj4gKyNkZWZpbmUgU1lTX0JSQkZDUl9FTDEgc3lzX3JlZygyLCAxLCA5 LCAwLCAxKQo+ID4+PiArI2RlZmluZSBTWVNfQlJCSURSMF9FTDEgc3lzX3JlZygyLCAxLCA5LCAy LCAwKQo+ID4+PiArCj4gPj4+ICsjZGVmaW5lIFNZU19UUkNJVEVDUl9FTDEgc3lzX3JlZygzLCAw LCAxLCAyLCAzKQo+ID4+PiArI2RlZmluZSBTWVNfVFJDSVRFQ1JfRUwxIHN5c19yZWcoMywgMCwg MSwgMiwgMykKPiA+PiAKPiA+PiBTWVNfVFJDSVRFQ1JfRUwxIHNob3dzIHVwIHR3aWNlLgo+ID4g Cj4gPiBBaCwgbmljZSBvbmUuIFRvbyBtYW55IHJlZ2lzdGVycy4KPiA+IAo+ID4+IAo+ID4+PiAr I2RlZmluZSBTWVNfVFJDQUNBVFIobSkgc3lzX3JlZygyLCAxLCAyLCAoKG0gJiA3KSA8PCAxKSwg KDIgfCAobSA+PiAzKSkpCj4gPj4gCj4gPj4gQmVzaWRlcyBt4oCZcyByZXN0cmljdGlvbnMgaXQg Y291bGQgYmUgc2FuaXRpc2VkIGluIG9wMiB0byBjb25zaWRlciBvbmx5IGJpdCBtWzNdLgo+ID4+ IFN1Z2dlc3Rpb24gZm9yIG9wMjogKDIgfCAoKG0gJiA4KSA+PiAzKSkpCj4gPiAKPiA+IEl0IGlz IGZ1bGx5IGV4cGVjdGVkIHRoYXQgJ20nIHdpbGwgYmUgaW4gdGhlIDAtMTUgcmFuZ2UsIGFzIHBl ciB0aGUKPiA+IGFyY2hpdGVjdHVyZSAoRDE5LjQuOCksIGFuZCB0aGUgdGFibGVzIG9ubHkgdXNl IHRoYXQgZXhhY3QgcmFuZ2UuCj4gPiAKPiA+IERvIHlvdSBzZWUgYW4gYWN0dWFsIGJ1Zywgb3Ig aXMgdGhpcyBkZWZlbnNpdmUgcHJvZ3JhbW1pbmc/Cj4gPiAKPiAKPiBJIHdhcyBzZWVpbmcgYSBw cm9ibGVtIHdoZW4gbVs1XT0xIHRoZW4gT3AyIG9mIDBiMDE6bVszXSBpc27igJl0IGd1YXJhbnRl ZWQKPiBhbnltb3JlIG92ZXJyaWRkZW4gd2l0aCAwYjExOm1bM10uCgpCdXQgdGhhdCdkIGJlIHdy b25nIGFueXdheS4gTm93LCB3ZSdkIGhhdmUgYW4gZW5jb2RpbmcgdGhhdCBwb3NzaWJseQphbGlh c2VzIHRvIHNvbWV0aGluZyBlbHNlLCBhbmQgd2UgZG9uJ3Qga25vdyBhYm91dCBpdC4KCj4gQ2xl YXJseSDigJht4oCZIHdvdWxkIGJlIG91dHNpZGUgdGhlIHJhbmdlIGJ1dCBub3QgbWVzc2luZyB3 aXRoIE9wMiBmaXhlZCBiaXRzIDBiMDEuCj4gTm90IGEgcHJvYmxlbSBmb3IgcGF0Y2ggMjEgdGhv dWdoLgoKQWxsIHRoZXNlIG1hY3JvcyBoYXZlIGFzIHRoZSBiYXNpcyBmb3IgdGhlaXIgdXNlIHRo YXQgeW91IHVzZSAqdmFsaWQqCmlucHV0LgoKPiBEdWUgdG8gdGhlIHVuY2VydGFpbnR5IGlmIHRo aXMgY2FuIGJpdGUgbGF0ZXIsIGhlbmNlIHRoZSBzdWdnZXN0aW9uIGFuZCBhbHNvCj4gb3BlbiB0 byBhZHZpY2VzLgoKSWYgeW91IHJlYWxseSB3YW50IHNvbWUgZGVmZW5zaXZlIHByb2dyYW1taW5n IG9uIHRoYXQgZnJvbnQsIHRoZW4geW91CnNob3VsZCBtYWtlIHN1cmUgd2UgZGV0ZWN0IHRoZSBp c3N1ZSBhdCBjb21waWxlIHRpbWUsIHJhdGhlciB0aGFuCnNpbGVudGx5IGNoYW5naW5nIHRoZSBl bmNvZGluZy4KClRoYW5rcywKCglNLgoKLS0gCldpdGhvdXQgZGV2aWF0aW9uIGZyb20gdGhlIG5v cm0sIHByb2dyZXNzIGlzIG5vdCBwb3NzaWJsZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK