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 3B27DD32D81 for ; Tue, 12 Nov 2024 18:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type: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=Mkh3fs1WipagezQQaGIpMpt4VCgBrWJ8fSU8gqV0BP4=; b=f/pt2Dnz/PIVfHYC+0My68xgu3 ohiDReMnYGkMMNPl28n0Wf9asN6ry5KADZ0zDEp8lMLFuFa+Ha17R2Dk0gTZCmQus7OcWbyMWxgvH zVjzEX0q07N8KxqC7HgwOAYQ6deyfvIRMBfpWqPTaczQtcpF60NJr0JEW6WPzIpRyNXQayaqGAgfj ksO/a4KseWRfF9xzIpb9ndt59CH8dDuJ+IEYMwVv9Zb4qfMUfFiM/26qaTI8OB3yQdx3EW5WFrJPp RHd7aINkwOr4dyVCp5eky3NwmC4wHnpI7YZbtiZMAQkll0d2IkrPRumLKX9YNFlktHCg/dEhdm7QB 39OQiZ6w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tAw5D-00000004dJi-0JNw; Tue, 12 Nov 2024 18:57:47 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tAvzT-00000004cSZ-3FA9; Tue, 12 Nov 2024 18:51:53 +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 EC1801516; Tue, 12 Nov 2024 10:52:20 -0800 (PST) Received: from [10.1.196.40] (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8EF473F66E; Tue, 12 Nov 2024 10:51:49 -0800 (PST) Message-ID: <33f8430e-0adc-4060-afb5-2cc5c79c8dec@arm.com> Date: Tue, 12 Nov 2024 18:51:48 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] arm64: dts: rockchip: Fix vdd_gpu voltage constraints on PinePhone Pro To: Dragan Simic Cc: linux-rockchip@lists.infradead.org, heiko@sntech.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, stable@vger.kernel.org References: <0718feb8e95344a0b615f61e6d909f6e105e3bf9.1731264205.git.dsimic@manjaro.org> <607a731c-41e9-497a-a08c-f718339610ae@arm.com> From: Robin Murphy Content-Language: en-GB In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241112_105151_924068_32169349 X-CRM114-Status: GOOD ( 33.56 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 12/11/2024 2:36 pm, Dragan Simic wrote: > Hello Robin, > > On 2024-11-12 15:19, Robin Murphy wrote: >> On 10/11/2024 6:44 pm, Dragan Simic wrote: >>> The regulator-{min,max}-microvolt values for the vdd_gpu regulator in >>> the >>> PinePhone Pro device dts file are too restrictive, which prevents the >>> highest >>> GPU OPP from being used, slowing the GPU down unnecessarily.  Let's >>> fix that >>> by making the regulator-{min,max}-microvolt values less strict, using >>> the >>> voltage range that the Silergy SYR838 chip used for the vdd_gpu >>> regulator is >>> actually capable of producing. [1][2] >> >> Specifying the absolute limits which the regulator driver necessarily >> already knows doesn't seem particularly useful... Moreover, the RK3399 >> datasheet specifies the operating range for GPU_VDD as 0.80-1.20V, so >> at the very least, allowing the regulator to go outside that range >> seems inadvisable. > > Indeed, which is why I already mentioned in the patch description > that I do plan to update the constraints of all regulators to match > the summary of the constraints of their consumers.  Though, I plan > to do that later, as a separate directory-wide cleanup, for which > I must find and allocate a substantial amount of time, to make sure > there will be no mistakes. Sure, but even if every other DT needs fixing, that still doesn't make it a good idea to deliberately introduce the same mistake to *this* DT and thus create even more work to fix it again. There's no value in being consistently wrong over inconsistently wrong - if there's justification for changing this DT at all, change it to be right. >> However there's a separate datasheet for the >> RK3399-T variant, which does specify this 875-975mV range and a >> maximum GPU clock of 600MHz, along with the same 1.5GHz max. >> Cortex-A72 clock as advertised for RK3399S, so it seems quite possible >> that these GPU constraints here are in fact intentional as well. >> Obviously users are free to overclock and overvolt if they wish - I do >> for my actively-cooled RK3399 board :) - but it's a different matter >> for mainline to force it upon them. > > Well, maybe the RK3399S is the same in that regard as the RK3399-T, > but maybe it actually isn't -- unfortunately, we don't have some > official RK3399S datasheet that would provide us with the required > information.  As another, somewhat unrelated example, we don't have > some official documentation to tell us is the RK3399S supposed not > to have working PCI Express interface, which officially isn't present > in the RK3399-T variant. Looking back at the original submission, v2 *was* proposing the RK3399-T OPPs, with the GPU capped at 600MHz, and it was said that those are what PPP *should* be using[1]. It seems there was a semantic objection to having a separate rk3399-t-opp.dtsi at the time, and when the main DTS was reworked for v3 the 800MHz GPU OPP seems to have been overlooked. However, since rk3399-t.dtsi does now exist anyway, it would seem more logical to just use that instead of including rk3399.dtsi and then overriding it to be pretty much equivalent to the T variant anyway. Thanks, Robin. [1] https://lore.kernel.org/linux-rockchip/CAN1fySWVVTeGHAD=_hFH+ZdcR_AEiBc0wqes9Y4VRzB=zcdvSw@mail.gmail.com/ > However, I fully agree that forcing any kind of an overclock is not > what we want to do.  Thus, I'll do my best, as I already noted in this > thread, to extract the dtb from the "reference" Android build that > Rockchip itself provided for the RK3399S-based PinePhone Pro.  That's > closest to the official documentation for the RK3399S variant that we > can get our hands on. > >>> This also eliminates the following error messages from the kernel log: >>> >>>    core: _opp_supported_by_regulators: OPP minuV: 1100000 maxuV: >>> 1150000, not supported by regulator >>>    panfrost ff9a0000.gpu: _opp_add: OPP not supported by regulators >>> (800000000) >>> >>> These changes to the regulator-{min,max}-microvolt values make the >>> PinePhone >>> Pro device dts consistent with the dts files for other Rockchip >>> RK3399-based >>> boards and devices.  It's possible to be more strict here, by >>> specifying the >>> regulator-{min,max}-microvolt values that don't go outside of what >>> the GPU >>> actually may use, as the consumer of the vdd_gpu regulator, but those >>> changes >>> are left for a later directory-wide regulator cleanup. >>> >>> [1] >>> https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211127.pdf >>> [2] >>> https://www.t-firefly.com/download/Firefly-RK3399/docs/Chip%20Specifications/DC-DC_SYR837_838.pdf >>> >>> Fixes: 78a21c7d5952 ("arm64: dts: rockchip: Add initial support for >>> Pine64 PinePhone Pro") >>> Cc: stable@vger.kernel.org >>> Signed-off-by: Dragan Simic >>> --- >>>   arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 4 ++-- >>>   1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts >>> b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts >>> index 1a44582a49fb..956d64f5b271 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts >>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts >>> @@ -410,8 +410,8 @@ vdd_gpu: regulator@41 { >>>           pinctrl-names = "default"; >>>           pinctrl-0 = <&vsel2_pin>; >>>           regulator-name = "vdd_gpu"; >>> -        regulator-min-microvolt = <875000>; >>> -        regulator-max-microvolt = <975000>; >>> +        regulator-min-microvolt = <712500>; >>> +        regulator-max-microvolt = <1500000>; >>>           regulator-ramp-delay = <1000>; >>>           regulator-always-on; >>>           regulator-boot-on; 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 2C764D42BBF for ; Tue, 12 Nov 2024 18:57:56 +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-Type: Content-Transfer-Encoding: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=n39+rRofTxtWVNGck4eEODXINL4rTNC38nqdGyTkBCQ=; b=pM030P6udRvCnA suqHw/mxZXxq6nYLbtY9I4cZ+jdH3aVP+wPw9pd7uEymfl6JQ2ZupQ4anPSairVkRSjZtRyH6iTYR mAXUY2bcpnIhesfEgaFLY+mcjHzyFS+v6lHOIntzQ5pPLDoPiEfwWtbXmkCppYEejSzhoZtDHhVr7 4INxkgXzq8Rssq08YLRDhS/K0R2h2HV+1clySyJED7mPeO2WPoPQN4SbMvyULbe37qkgLXp8xmDjF 8xXEv3lVdpU7XXr5e1KbScMWgM0e44wJjyI4sOeNX5Qiy+U0kw0xDlBs4dc1BUJs6yilj1dZ5SYG6 qmKQFRUaaUrL9CzjYfZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tAw5D-00000004dK3-32K0; Tue, 12 Nov 2024 18:57:47 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tAvzT-00000004cSZ-3FA9; Tue, 12 Nov 2024 18:51:53 +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 EC1801516; Tue, 12 Nov 2024 10:52:20 -0800 (PST) Received: from [10.1.196.40] (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8EF473F66E; Tue, 12 Nov 2024 10:51:49 -0800 (PST) Message-ID: <33f8430e-0adc-4060-afb5-2cc5c79c8dec@arm.com> Date: Tue, 12 Nov 2024 18:51:48 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] arm64: dts: rockchip: Fix vdd_gpu voltage constraints on PinePhone Pro To: Dragan Simic Cc: linux-rockchip@lists.infradead.org, heiko@sntech.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, stable@vger.kernel.org References: <0718feb8e95344a0b615f61e6d909f6e105e3bf9.1731264205.git.dsimic@manjaro.org> <607a731c-41e9-497a-a08c-f718339610ae@arm.com> From: Robin Murphy Content-Language: en-GB In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241112_105151_924068_32169349 X-CRM114-Status: GOOD ( 33.56 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gMTIvMTEvMjAyNCAyOjM2IHBtLCBEcmFnYW4gU2ltaWMgd3JvdGU6Cj4gSGVsbG8gUm9iaW4s Cj4gCj4gT24gMjAyNC0xMS0xMiAxNToxOSwgUm9iaW4gTXVycGh5IHdyb3RlOgo+PiBPbiAxMC8x MS8yMDI0IDY6NDQgcG0sIERyYWdhbiBTaW1pYyB3cm90ZToKPj4+IFRoZSByZWd1bGF0b3Ite21p bixtYXh9LW1pY3Jvdm9sdCB2YWx1ZXMgZm9yIHRoZSB2ZGRfZ3B1IHJlZ3VsYXRvciBpbiAKPj4+ IHRoZQo+Pj4gUGluZVBob25lIFBybyBkZXZpY2UgZHRzIGZpbGUgYXJlIHRvbyByZXN0cmljdGl2 ZSwgd2hpY2ggcHJldmVudHMgdGhlIAo+Pj4gaGlnaGVzdAo+Pj4gR1BVIE9QUCBmcm9tIGJlaW5n IHVzZWQsIHNsb3dpbmcgdGhlIEdQVSBkb3duIHVubmVjZXNzYXJpbHkuwqAgTGV0J3MgCj4+PiBm aXggdGhhdAo+Pj4gYnkgbWFraW5nIHRoZSByZWd1bGF0b3Ite21pbixtYXh9LW1pY3Jvdm9sdCB2 YWx1ZXMgbGVzcyBzdHJpY3QsIHVzaW5nIAo+Pj4gdGhlCj4+PiB2b2x0YWdlIHJhbmdlIHRoYXQg dGhlIFNpbGVyZ3kgU1lSODM4IGNoaXAgdXNlZCBmb3IgdGhlIHZkZF9ncHUgCj4+PiByZWd1bGF0 b3IgaXMKPj4+IGFjdHVhbGx5IGNhcGFibGUgb2YgcHJvZHVjaW5nLiBbMV1bMl0KPj4KPj4gU3Bl Y2lmeWluZyB0aGUgYWJzb2x1dGUgbGltaXRzIHdoaWNoIHRoZSByZWd1bGF0b3IgZHJpdmVyIG5l Y2Vzc2FyaWx5Cj4+IGFscmVhZHkga25vd3MgZG9lc24ndCBzZWVtIHBhcnRpY3VsYXJseSB1c2Vm dWwuLi4gTW9yZW92ZXIsIHRoZSBSSzMzOTkKPj4gZGF0YXNoZWV0IHNwZWNpZmllcyB0aGUgb3Bl cmF0aW5nIHJhbmdlIGZvciBHUFVfVkREIGFzIDAuODAtMS4yMFYsIHNvCj4+IGF0IHRoZSB2ZXJ5 IGxlYXN0LCBhbGxvd2luZyB0aGUgcmVndWxhdG9yIHRvIGdvIG91dHNpZGUgdGhhdCByYW5nZQo+ PiBzZWVtcyBpbmFkdmlzYWJsZS4KPiAKPiBJbmRlZWQsIHdoaWNoIGlzIHdoeSBJIGFscmVhZHkg bWVudGlvbmVkIGluIHRoZSBwYXRjaCBkZXNjcmlwdGlvbgo+IHRoYXQgSSBkbyBwbGFuIHRvIHVw ZGF0ZSB0aGUgY29uc3RyYWludHMgb2YgYWxsIHJlZ3VsYXRvcnMgdG8gbWF0Y2gKPiB0aGUgc3Vt bWFyeSBvZiB0aGUgY29uc3RyYWludHMgb2YgdGhlaXIgY29uc3VtZXJzLsKgIFRob3VnaCwgSSBw bGFuCj4gdG8gZG8gdGhhdCBsYXRlciwgYXMgYSBzZXBhcmF0ZSBkaXJlY3Rvcnktd2lkZSBjbGVh bnVwLCBmb3Igd2hpY2gKPiBJIG11c3QgZmluZCBhbmQgYWxsb2NhdGUgYSBzdWJzdGFudGlhbCBh bW91bnQgb2YgdGltZSwgdG8gbWFrZSBzdXJlCj4gdGhlcmUgd2lsbCBiZSBubyBtaXN0YWtlcy4K ClN1cmUsIGJ1dCBldmVuIGlmIGV2ZXJ5IG90aGVyIERUIG5lZWRzIGZpeGluZywgdGhhdCBzdGls bCBkb2Vzbid0IG1ha2UgCml0IGEgZ29vZCBpZGVhIHRvIGRlbGliZXJhdGVseSBpbnRyb2R1Y2Ug dGhlIHNhbWUgbWlzdGFrZSB0byAqdGhpcyogRFQgCmFuZCB0aHVzIGNyZWF0ZSBldmVuIG1vcmUg d29yayB0byBmaXggaXQgYWdhaW4uIFRoZXJlJ3Mgbm8gdmFsdWUgaW4gCmJlaW5nIGNvbnNpc3Rl bnRseSB3cm9uZyBvdmVyIGluY29uc2lzdGVudGx5IHdyb25nIC0gaWYgdGhlcmUncyAKanVzdGlm aWNhdGlvbiBmb3IgY2hhbmdpbmcgdGhpcyBEVCBhdCBhbGwsIGNoYW5nZSBpdCB0byBiZSByaWdo dC4KCj4+IEhvd2V2ZXIgdGhlcmUncyBhIHNlcGFyYXRlIGRhdGFzaGVldCBmb3IgdGhlCj4+IFJL MzM5OS1UIHZhcmlhbnQsIHdoaWNoIGRvZXMgc3BlY2lmeSB0aGlzIDg3NS05NzVtViByYW5nZSBh bmQgYQo+PiBtYXhpbXVtIEdQVSBjbG9jayBvZiA2MDBNSHosIGFsb25nIHdpdGggdGhlIHNhbWUg MS41R0h6IG1heC4KPj4gQ29ydGV4LUE3MiBjbG9jayBhcyBhZHZlcnRpc2VkIGZvciBSSzMzOTlT LCBzbyBpdCBzZWVtcyBxdWl0ZSBwb3NzaWJsZQo+PiB0aGF0IHRoZXNlIEdQVSBjb25zdHJhaW50 cyBoZXJlIGFyZSBpbiBmYWN0IGludGVudGlvbmFsIGFzIHdlbGwuCj4+IE9idmlvdXNseSB1c2Vy cyBhcmUgZnJlZSB0byBvdmVyY2xvY2sgYW5kIG92ZXJ2b2x0IGlmIHRoZXkgd2lzaCAtIEkgZG8K Pj4gZm9yIG15IGFjdGl2ZWx5LWNvb2xlZCBSSzMzOTkgYm9hcmQgOikgLSBidXQgaXQncyBhIGRp ZmZlcmVudCBtYXR0ZXIKPj4gZm9yIG1haW5saW5lIHRvIGZvcmNlIGl0IHVwb24gdGhlbS4KPiAK PiBXZWxsLCBtYXliZSB0aGUgUkszMzk5UyBpcyB0aGUgc2FtZSBpbiB0aGF0IHJlZ2FyZCBhcyB0 aGUgUkszMzk5LVQsCj4gYnV0IG1heWJlIGl0IGFjdHVhbGx5IGlzbid0IC0tIHVuZm9ydHVuYXRl bHksIHdlIGRvbid0IGhhdmUgc29tZQo+IG9mZmljaWFsIFJLMzM5OVMgZGF0YXNoZWV0IHRoYXQg d291bGQgcHJvdmlkZSB1cyB3aXRoIHRoZSByZXF1aXJlZAo+IGluZm9ybWF0aW9uLsKgIEFzIGFu b3RoZXIsIHNvbWV3aGF0IHVucmVsYXRlZCBleGFtcGxlLCB3ZSBkb24ndCBoYXZlCj4gc29tZSBv ZmZpY2lhbCBkb2N1bWVudGF0aW9uIHRvIHRlbGwgdXMgaXMgdGhlIFJLMzM5OVMgc3VwcG9zZWQg bm90Cj4gdG8gaGF2ZSB3b3JraW5nIFBDSSBFeHByZXNzIGludGVyZmFjZSwgd2hpY2ggb2ZmaWNp YWxseSBpc24ndCBwcmVzZW50Cj4gaW4gdGhlIFJLMzM5OS1UIHZhcmlhbnQuCgpMb29raW5nIGJh Y2sgYXQgdGhlIG9yaWdpbmFsIHN1Ym1pc3Npb24sIHYyICp3YXMqIHByb3Bvc2luZyB0aGUgUksz Mzk5LVQgCk9QUHMsIHdpdGggdGhlIEdQVSBjYXBwZWQgYXQgNjAwTUh6LCBhbmQgaXQgd2FzIHNh aWQgdGhhdCB0aG9zZSBhcmUgd2hhdCAKUFBQICpzaG91bGQqIGJlIHVzaW5nWzFdLiBJdCBzZWVt cyB0aGVyZSB3YXMgYSBzZW1hbnRpYyBvYmplY3Rpb24gdG8gCmhhdmluZyBhIHNlcGFyYXRlIHJr MzM5OS10LW9wcC5kdHNpIGF0IHRoZSB0aW1lLCBhbmQgd2hlbiB0aGUgbWFpbiBEVFMgCndhcyBy ZXdvcmtlZCBmb3IgdjMgdGhlIDgwME1IeiBHUFUgT1BQIHNlZW1zIHRvIGhhdmUgYmVlbiBvdmVy bG9va2VkLiAKSG93ZXZlciwgc2luY2UgcmszMzk5LXQuZHRzaSBkb2VzIG5vdyBleGlzdCBhbnl3 YXksIGl0IHdvdWxkIHNlZW0gbW9yZSAKbG9naWNhbCB0byBqdXN0IHVzZSB0aGF0IGluc3RlYWQg b2YgaW5jbHVkaW5nIHJrMzM5OS5kdHNpIGFuZCB0aGVuIApvdmVycmlkaW5nIGl0IHRvIGJlIHBy ZXR0eSBtdWNoIGVxdWl2YWxlbnQgdG8gdGhlIFQgdmFyaWFudCBhbnl3YXkuCgpUaGFua3MsClJv YmluLgoKWzFdIApodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1yb2NrY2hpcC9DQU4xZnlT V1ZWVGVHSEFEPV9oRkgrWmRjUl9BRWlCYzB3cWVzOVk0VlJ6Qj16Y2R2U3dAbWFpbC5nbWFpbC5j b20vCgo+IEhvd2V2ZXIsIEkgZnVsbHkgYWdyZWUgdGhhdCBmb3JjaW5nIGFueSBraW5kIG9mIGFu IG92ZXJjbG9jayBpcyBub3QKPiB3aGF0IHdlIHdhbnQgdG8gZG8uwqAgVGh1cywgSSdsbCBkbyBt eSBiZXN0LCBhcyBJIGFscmVhZHkgbm90ZWQgaW4gdGhpcwo+IHRocmVhZCwgdG8gZXh0cmFjdCB0 aGUgZHRiIGZyb20gdGhlICJyZWZlcmVuY2UiIEFuZHJvaWQgYnVpbGQgdGhhdAo+IFJvY2tjaGlw IGl0c2VsZiBwcm92aWRlZCBmb3IgdGhlIFJLMzM5OVMtYmFzZWQgUGluZVBob25lIFByby7CoCBU aGF0J3MKPiBjbG9zZXN0IHRvIHRoZSBvZmZpY2lhbCBkb2N1bWVudGF0aW9uIGZvciB0aGUgUksz Mzk5UyB2YXJpYW50IHRoYXQgd2UKPiBjYW4gZ2V0IG91ciBoYW5kcyBvbi4KPiAKPj4+IFRoaXMg YWxzbyBlbGltaW5hdGVzIHRoZSBmb2xsb3dpbmcgZXJyb3IgbWVzc2FnZXMgZnJvbSB0aGUga2Vy bmVsIGxvZzoKPj4+Cj4+PiDCoMKgIGNvcmU6IF9vcHBfc3VwcG9ydGVkX2J5X3JlZ3VsYXRvcnM6 IE9QUCBtaW51VjogMTEwMDAwMCBtYXh1VjogCj4+PiAxMTUwMDAwLCBub3Qgc3VwcG9ydGVkIGJ5 IHJlZ3VsYXRvcgo+Pj4gwqDCoCBwYW5mcm9zdCBmZjlhMDAwMC5ncHU6IF9vcHBfYWRkOiBPUFAg bm90IHN1cHBvcnRlZCBieSByZWd1bGF0b3JzIAo+Pj4gKDgwMDAwMDAwMCkKPj4+Cj4+PiBUaGVz ZSBjaGFuZ2VzIHRvIHRoZSByZWd1bGF0b3Ite21pbixtYXh9LW1pY3Jvdm9sdCB2YWx1ZXMgbWFr ZSB0aGUgCj4+PiBQaW5lUGhvbmUKPj4+IFBybyBkZXZpY2UgZHRzIGNvbnNpc3RlbnQgd2l0aCB0 aGUgZHRzIGZpbGVzIGZvciBvdGhlciBSb2NrY2hpcCAKPj4+IFJLMzM5OS1iYXNlZAo+Pj4gYm9h cmRzIGFuZCBkZXZpY2VzLsKgIEl0J3MgcG9zc2libGUgdG8gYmUgbW9yZSBzdHJpY3QgaGVyZSwg YnkgCj4+PiBzcGVjaWZ5aW5nIHRoZQo+Pj4gcmVndWxhdG9yLXttaW4sbWF4fS1taWNyb3ZvbHQg dmFsdWVzIHRoYXQgZG9uJ3QgZ28gb3V0c2lkZSBvZiB3aGF0IAo+Pj4gdGhlIEdQVQo+Pj4gYWN0 dWFsbHkgbWF5IHVzZSwgYXMgdGhlIGNvbnN1bWVyIG9mIHRoZSB2ZGRfZ3B1IHJlZ3VsYXRvciwg YnV0IHRob3NlIAo+Pj4gY2hhbmdlcwo+Pj4gYXJlIGxlZnQgZm9yIGEgbGF0ZXIgZGlyZWN0b3J5 LXdpZGUgcmVndWxhdG9yIGNsZWFudXAuCj4+Pgo+Pj4gWzFdIAo+Pj4gaHR0cHM6Ly9maWxlcy5w aW5lNjQub3JnL2RvYy9QaW5lUGhvbmVQcm8vUGluZXBob25lUHJvLVNjaGVtYXRpYy1WMS4wLTIw MjExMTI3LnBkZgo+Pj4gWzJdIAo+Pj4gaHR0cHM6Ly93d3cudC1maXJlZmx5LmNvbS9kb3dubG9h ZC9GaXJlZmx5LVJLMzM5OS9kb2NzL0NoaXAlMjBTcGVjaWZpY2F0aW9ucy9EQy1EQ19TWVI4Mzdf ODM4LnBkZgo+Pj4KPj4+IEZpeGVzOiA3OGEyMWM3ZDU5NTIgKCJhcm02NDogZHRzOiByb2NrY2hp cDogQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgCj4+PiBQaW5lNjQgUGluZVBob25lIFBybyIpCj4+ PiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+Pj4gU2lnbmVkLW9mZi1ieTogRHJhZ2FuIFNp bWljIDxkc2ltaWNAbWFuamFyby5vcmc+Cj4+PiAtLS0KPj4+IMKgIGFyY2gvYXJtNjQvYm9vdC9k dHMvcm9ja2NoaXAvcmszMzk5LXBpbmVwaG9uZS1wcm8uZHRzIHwgNCArKy0tCj4+PiDCoCAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYg LS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzM5OS1waW5lcGhvbmUtcHJv LmR0cyAKPj4+IGIvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazMzOTktcGluZXBob25l LXByby5kdHMKPj4+IGluZGV4IDFhNDQ1ODJhNDlmYi4uOTU2ZDY0ZjViMjcxIDEwMDY0NAo+Pj4g LS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazMzOTktcGluZXBob25lLXByby5k dHMKPj4+ICsrKyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcm9ja2NoaXAvcmszMzk5LXBpbmVwaG9u ZS1wcm8uZHRzCj4+PiBAQCAtNDEwLDggKzQxMCw4IEBAIHZkZF9ncHU6IHJlZ3VsYXRvckA0MSB7 Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKPj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBwaW5jdHJsLTAgPSA8JnZzZWwyX3Bpbj47Cj4+PiDCoMKgwqDCoMKg wqDCoMKgwqAgcmVndWxhdG9yLW5hbWUgPSAidmRkX2dwdSI7Cj4+PiAtwqDCoMKgwqDCoMKgwqAg cmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8ODc1MDAwPjsKPj4+IC3CoMKgwqDCoMKgwqDCoCBy ZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDw5NzUwMDA+Owo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJl Z3VsYXRvci1taW4tbWljcm92b2x0ID0gPDcxMjUwMD47Cj4+PiArwqDCoMKgwqDCoMKgwqAgcmVn dWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTUwMDAwMD47Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAg cmVndWxhdG9yLXJhbXAtZGVsYXkgPSA8MTAwMD47Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmVn dWxhdG9yLWFsd2F5cy1vbjsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZWd1bGF0b3ItYm9vdC1v bjsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2No aXAK