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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30E5CEB64D9 for ; Fri, 7 Jul 2023 08:19:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232842AbjGGITX (ORCPT ); Fri, 7 Jul 2023 04:19:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232818AbjGGITR (ORCPT ); Fri, 7 Jul 2023 04:19:17 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 168911BEE; Fri, 7 Jul 2023 01:19:15 -0700 (PDT) Received: from [192.168.1.100] (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madras.collabora.co.uk (Postfix) with ESMTPSA id ADCD36606FCA; Fri, 7 Jul 2023 09:19:13 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1688717954; bh=V2zCa6YQcn89QUk+30ncJYOiCspZ2CW7lvzYLcoBYmw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=EKago4s9/yPqzmRoj0O5g0MNg5s9C9Xge7/MwV8FE8TRU2SGLJxDeIdahrJXMvmwj Z3w/3sIgqHZV8eK3VVGFX7Cfyc7mYfTmfiv65T6vsZsbZftmU/Y42RStc0XhkWyN1E IZUA+jJRMx2Mpc1+t+0qAIkj0Rx2L8z6ZsPAUU2vHU9iAcUrPonmC/MNMcqwUHiBR1 1yRpFuvEBuuaWDgrZZquwRyGapgqeKZUz6rCRN4VAwv0f86ErE9Lkdy8wFtZ80tab5 YygvdisRuod+sWxfylNiarkLIdTTAP+dOXQGJzh/SClusExi6ev+6mIk9yWobhhEq3 ZS7LhUVVs3Jkg== Message-ID: <63457512-1cf4-d2a6-7afc-daa579de99e8@collabora.com> Date: Fri, 7 Jul 2023 10:19:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH] arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks To: Chen-Yu Tsai Cc: matthias.bgg@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, yong.wu@mediatek.com, tinghan.shen@mediatek.com, weiyi.lu@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, kernel@collabora.com References: <20230706095841.109315-1-angelogioacchino.delregno@collabora.com> Content-Language: en-US From: AngeloGioacchino Del Regno In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Il 07/07/23 07:06, Chen-Yu Tsai ha scritto: > On Thu, Jul 6, 2023 at 5:59 PM AngeloGioacchino Del Regno > wrote: >> >> Before suspending the LARBs we're making sure that any operation is >> done: this never happens because we are unexpectedly unclocking the >> LARB20 before executing the suspend handler for the MediaTek Smart >> Multimedia Interface (SMI) and the cause of this is incorrect clocks >> on this LARB. >> >> Fix this issue by changing the Local Arbiter 20 (used by the video >> encoder secondary core) apb clock to CLK_VENC_CORE1_VENC; >> furthermore, in order to make sure that both the PM resume and video >> encoder operation is stable, add the CLK_VENC(_CORE1)_LARB clock to >> the VENC (main core) and VENC_CORE1 power domains, as this IP cannot >> communicate with the rest of the system (the AP) without local >> arbiter clocks being operational. > > Somehow I feel like this is papering over some dependency issue in Linux. > It felt the same here, but then, if you disable the video encoder driver entirely (or even both enc/dec drivers), you'll still get issues with the LARB20 timing out on the SLP_PROT_RDY check, as there's something in queue going through that larb, probably from something done by the bootloader before booting Linux. Note that I'm pointing my finger to the bootloader because - again - even disabling the venc entirely produces the same issue, and if you disable probing the LARB20 you will anyway get sleep issues (wakes up immediately after going to sleep). That said, there is another possible solution to that (but even then, I think that we still need those clock assignments that I've done here), which is to implement the SMI power domains (mtcmos...): we'd be saving *all smi registers*, resetting an entire SMI ctx with a poweroff, powering back on and restoring all registers *but* larb20... at least that's the only solution that I've seen downstream (android kernels). ...and that's why I believe that this commit is correct. Of course, if there's something that I'm underestimating here, I'd be glad to understand. Cheers, Angelo >> Fixes: 3b5838d1d82e ("arm64: dts: mt8195: Add iommu and smi nodes") >> Fixes: 2b515194bf0c ("arm64: dts: mt8195: Add power domains controller") >> Signed-off-by: AngeloGioacchino Del Regno >> --- >> arch/arm64/boot/dts/mediatek/mt8195.dtsi | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/mediatek/mt8195.dtsi b/arch/arm64/boot/dts/mediatek/mt8195.dtsi >> index 95bd058d6083..5c670fce1e47 100644 >> --- a/arch/arm64/boot/dts/mediatek/mt8195.dtsi >> +++ b/arch/arm64/boot/dts/mediatek/mt8195.dtsi >> @@ -626,6 +626,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC1 { >> >> power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 { >> reg = ; >> + clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>; >> + clock-names = "venc1-larb"; >> mediatek,infracfg = <&infracfg_ao>; >> #power-domain-cells = <0>; >> }; >> @@ -688,6 +690,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC2 { >> >> power-domain@MT8195_POWER_DOMAIN_VENC { >> reg = ; >> + clocks = <&vencsys CLK_VENC_LARB>; >> + clock-names = "venc0-larb"; >> mediatek,infracfg = <&infracfg_ao>; >> #power-domain-cells = <0>; >> }; >> @@ -3094,7 +3098,7 @@ larb20: larb@1b010000 { >> reg = <0 0x1b010000 0 0x1000>; >> mediatek,larb-id = <20>; >> mediatek,smi = <&smi_common_vpp>; >> - clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>, >> + clocks = <&vencsys_core1 CLK_VENC_CORE1_VENC>, >> <&vencsys_core1 CLK_VENC_CORE1_GALS>, >> <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>; >> clock-names = "apb", "smi", "gals"; >> -- >> 2.40.1 >> >> > 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 9A3AEC001DD for ; Fri, 7 Jul 2023 08:19:54 +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=X6OzVYkqOwHjCluIP/W1xQYxDw9vPQAjJAbt4/Vjr4s=; b=hxsCL+yaJZHc8y /PDSjIQKSK4PUgWQEbBnYDe/eGZd0wBNNnIslQy8IKffaZGV6UBRzFL1+/19JM+SRATGFb+hO10Gs iPgYN+VVjpF6BQ1joovCftP1ku2/6WO0c2MH188R8NsycHLvPOUkhu3U/0XRbYQa7Yg6ZO7fZtyRi fK3XmhhiMbHeIit5ZKspSOR13YOgcaA/C0tiDDypZjMGp53iaAT09z00l/KxeJR7LB6Gs0Ye3sOSs gGvtKbRWNSQgJbLfOR8Ms2d66AoFz53bFhmKD+PVty5hqENeHddAXs9AsZH3RBQFV1Gn8FN15Kata 8psX6EOOnE2c8NDccfOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qHggT-003xpT-0E; Fri, 07 Jul 2023 08:19:21 +0000 Received: from madras.collabora.co.uk ([46.235.227.172]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qHggP-003xnf-2d; Fri, 07 Jul 2023 08:19:19 +0000 Received: from [192.168.1.100] (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madras.collabora.co.uk (Postfix) with ESMTPSA id ADCD36606FCA; Fri, 7 Jul 2023 09:19:13 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1688717954; bh=V2zCa6YQcn89QUk+30ncJYOiCspZ2CW7lvzYLcoBYmw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=EKago4s9/yPqzmRoj0O5g0MNg5s9C9Xge7/MwV8FE8TRU2SGLJxDeIdahrJXMvmwj Z3w/3sIgqHZV8eK3VVGFX7Cfyc7mYfTmfiv65T6vsZsbZftmU/Y42RStc0XhkWyN1E IZUA+jJRMx2Mpc1+t+0qAIkj0Rx2L8z6ZsPAUU2vHU9iAcUrPonmC/MNMcqwUHiBR1 1yRpFuvEBuuaWDgrZZquwRyGapgqeKZUz6rCRN4VAwv0f86ErE9Lkdy8wFtZ80tab5 YygvdisRuod+sWxfylNiarkLIdTTAP+dOXQGJzh/SClusExi6ev+6mIk9yWobhhEq3 ZS7LhUVVs3Jkg== Message-ID: <63457512-1cf4-d2a6-7afc-daa579de99e8@collabora.com> Date: Fri, 7 Jul 2023 10:19:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH] arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks To: Chen-Yu Tsai Cc: matthias.bgg@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, yong.wu@mediatek.com, tinghan.shen@mediatek.com, weiyi.lu@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, kernel@collabora.com References: <20230706095841.109315-1-angelogioacchino.delregno@collabora.com> Content-Language: en-US From: AngeloGioacchino Del Regno In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230707_011918_173443_9DB55F44 X-CRM114-Status: GOOD ( 22.18 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SWwgMDcvMDcvMjMgMDc6MDYsIENoZW4tWXUgVHNhaSBoYSBzY3JpdHRvOgo+IE9uIFRodSwgSnVs IDYsIDIwMjMgYXQgNTo1OeKAr1BNIEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vCj4gPGFuZ2Vs b2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4gd3JvdGU6Cj4+Cj4+IEJlZm9yZSBz dXNwZW5kaW5nIHRoZSBMQVJCcyB3ZSdyZSBtYWtpbmcgc3VyZSB0aGF0IGFueSBvcGVyYXRpb24g aXMKPj4gZG9uZTogdGhpcyBuZXZlciBoYXBwZW5zIGJlY2F1c2Ugd2UgYXJlIHVuZXhwZWN0ZWRs eSB1bmNsb2NraW5nIHRoZQo+PiBMQVJCMjAgYmVmb3JlIGV4ZWN1dGluZyB0aGUgc3VzcGVuZCBo YW5kbGVyIGZvciB0aGUgTWVkaWFUZWsgU21hcnQKPj4gTXVsdGltZWRpYSBJbnRlcmZhY2UgKFNN SSkgYW5kIHRoZSBjYXVzZSBvZiB0aGlzIGlzIGluY29ycmVjdCBjbG9ja3MKPj4gb24gdGhpcyBM QVJCLgo+Pgo+PiBGaXggdGhpcyBpc3N1ZSBieSBjaGFuZ2luZyB0aGUgTG9jYWwgQXJiaXRlciAy MCAodXNlZCBieSB0aGUgdmlkZW8KPj4gZW5jb2RlciBzZWNvbmRhcnkgY29yZSkgYXBiIGNsb2Nr IHRvIENMS19WRU5DX0NPUkUxX1ZFTkM7Cj4+IGZ1cnRoZXJtb3JlLCBpbiBvcmRlciB0byBtYWtl IHN1cmUgdGhhdCBib3RoIHRoZSBQTSByZXN1bWUgYW5kIHZpZGVvCj4+IGVuY29kZXIgb3BlcmF0 aW9uIGlzIHN0YWJsZSwgYWRkIHRoZSBDTEtfVkVOQyhfQ09SRTEpX0xBUkIgY2xvY2sgdG8KPj4g dGhlIFZFTkMgKG1haW4gY29yZSkgYW5kIFZFTkNfQ09SRTEgcG93ZXIgZG9tYWlucywgYXMgdGhp cyBJUCBjYW5ub3QKPj4gY29tbXVuaWNhdGUgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtICh0 aGUgQVApIHdpdGhvdXQgbG9jYWwKPj4gYXJiaXRlciBjbG9ja3MgYmVpbmcgb3BlcmF0aW9uYWwu Cj4gCj4gU29tZWhvdyBJIGZlZWwgbGlrZSB0aGlzIGlzIHBhcGVyaW5nIG92ZXIgc29tZSBkZXBl bmRlbmN5IGlzc3VlIGluIExpbnV4Lgo+IAoKSXQgZmVsdCB0aGUgc2FtZSBoZXJlLCBidXQgdGhl biwgaWYgeW91IGRpc2FibGUgdGhlIHZpZGVvIGVuY29kZXIgZHJpdmVyIGVudGlyZWx5CihvciBl dmVuIGJvdGggZW5jL2RlYyBkcml2ZXJzKSwgeW91J2xsIHN0aWxsIGdldCBpc3N1ZXMgd2l0aCB0 aGUgTEFSQjIwIHRpbWluZyBvdXQKb24gdGhlIFNMUF9QUk9UX1JEWSBjaGVjaywgYXMgdGhlcmUn cyBzb21ldGhpbmcgaW4gcXVldWUgZ29pbmcgdGhyb3VnaCB0aGF0IGxhcmIsCnByb2JhYmx5IGZy b20gc29tZXRoaW5nIGRvbmUgYnkgdGhlIGJvb3Rsb2FkZXIgYmVmb3JlIGJvb3RpbmcgTGludXgu CgpOb3RlIHRoYXQgSSdtIHBvaW50aW5nIG15IGZpbmdlciB0byB0aGUgYm9vdGxvYWRlciBiZWNh dXNlIC0gYWdhaW4gLSBldmVuIGRpc2FibGluZwp0aGUgdmVuYyBlbnRpcmVseSBwcm9kdWNlcyB0 aGUgc2FtZSBpc3N1ZSwgYW5kIGlmIHlvdSBkaXNhYmxlIHByb2JpbmcgdGhlIExBUkIyMAp5b3Ug d2lsbCBhbnl3YXkgZ2V0IHNsZWVwIGlzc3VlcyAod2FrZXMgdXAgaW1tZWRpYXRlbHkgYWZ0ZXIg Z29pbmcgdG8gc2xlZXApLgoKVGhhdCBzYWlkLCB0aGVyZSBpcyBhbm90aGVyIHBvc3NpYmxlIHNv bHV0aW9uIHRvIHRoYXQgKGJ1dCBldmVuIHRoZW4sIEkgdGhpbmsgdGhhdAp3ZSBzdGlsbCBuZWVk IHRob3NlIGNsb2NrIGFzc2lnbm1lbnRzIHRoYXQgSSd2ZSBkb25lIGhlcmUpLCB3aGljaCBpcyB0 byBpbXBsZW1lbnQKdGhlIFNNSSBwb3dlciBkb21haW5zIChtdGNtb3MuLi4pOiB3ZSdkIGJlIHNh dmluZyAqYWxsIHNtaSByZWdpc3RlcnMqLCByZXNldHRpbmcgYW4KZW50aXJlIFNNSSBjdHggd2l0 aCBhIHBvd2Vyb2ZmLCBwb3dlcmluZyBiYWNrIG9uIGFuZCByZXN0b3JpbmcgYWxsIHJlZ2lzdGVy cyAqYnV0KgpsYXJiMjAuLi4gYXQgbGVhc3QgdGhhdCdzIHRoZSBvbmx5IHNvbHV0aW9uIHRoYXQg SSd2ZSBzZWVuIGRvd25zdHJlYW0gKGFuZHJvaWQKa2VybmVscykuCgouLi5hbmQgdGhhdCdzIHdo eSBJIGJlbGlldmUgdGhhdCB0aGlzIGNvbW1pdCBpcyBjb3JyZWN0LgoKT2YgY291cnNlLCBpZiB0 aGVyZSdzIHNvbWV0aGluZyB0aGF0IEknbSB1bmRlcmVzdGltYXRpbmcgaGVyZSwgSSdkIGJlIGds YWQgdG8KdW5kZXJzdGFuZC4KCkNoZWVycywKQW5nZWxvCgo+PiBGaXhlczogM2I1ODM4ZDFkODJl ICgiYXJtNjQ6IGR0czogbXQ4MTk1OiBBZGQgaW9tbXUgYW5kIHNtaSBub2RlcyIpCj4+IEZpeGVz OiAyYjUxNTE5NGJmMGMgKCJhcm02NDogZHRzOiBtdDgxOTU6IEFkZCBwb3dlciBkb21haW5zIGNv bnRyb2xsZXIiKQo+PiBTaWduZWQtb2ZmLWJ5OiBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyA8 YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPgo+PiAtLS0KPj4gICBhcmNo L2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210ODE5NS5kdHNpIHwgNiArKysrKy0KPj4gICAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYgLS1n aXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210ODE5NS5kdHNpIGIvYXJjaC9hcm02 NC9ib290L2R0cy9tZWRpYXRlay9tdDgxOTUuZHRzaQo+PiBpbmRleCA5NWJkMDU4ZDYwODMuLjVj NjcwZmNlMWU0NyAxMDA2NDQKPj4gLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9t dDgxOTUuZHRzaQo+PiArKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210ODE5NS5k dHNpCj4+IEBAIC02MjYsNiArNjI2LDggQEAgcG93ZXItZG9tYWluQE1UODE5NV9QT1dFUl9ET01B SU5fVkRFQzEgewo+Pgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBvd2VyLWRvbWFpbkBNVDgxOTVfUE9XRVJfRE9NQUlOX1ZFTkNfQ09SRTEgewo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnID0gPE1UODE5NV9Q T1dFUl9ET01BSU5fVkVOQ19DT1JFMT47Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNsb2NrcyA9IDwmdmVuY3N5c19jb3JlMSBDTEtfVkVOQ19DT1JF MV9MQVJCPjsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xvY2stbmFtZXMgPSAidmVuYzEtbGFyYiI7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYXRlayxpbmZyYWNmZyA9IDwmaW5mcmFjZmdf YW8+Owo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg I3Bvd2VyLWRvbWFpbi1jZWxscyA9IDwwPjsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Owo+PiBAQCAtNjg4LDYgKzY5MCw4IEBAIHBvd2VyLWRvbWFpbkBNVDgx OTVfUE9XRVJfRE9NQUlOX1ZERUMyIHsKPj4KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBvd2VyLWRvbWFpbkBNVDgxOTVfUE9XRVJfRE9NQUlOX1ZF TkMgewo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWcgPSA8TVQ4MTk1X1BPV0VSX0RPTUFJTl9WRU5DPjsKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9ja3MgPSA8JnZl bmNzeXMgQ0xLX1ZFTkNfTEFSQj47Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stbmFtZXMgPSAidmVuYzAtbGFyYiI7Cj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l ZGlhdGVrLGluZnJhY2ZnID0gPCZpbmZyYWNmZ19hbz47Cj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwb3dlci1kb21haW4tY2VsbHMg PSA8MD47Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Owo+PiBAQCAtMzA5NCw3ICszMDk4LDcgQEAgbGFyYjIwOiBsYXJiQDFiMDEwMDAwIHsKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9IDwwIDB4MWIwMTAwMDAgMCAweDEwMDA+Owo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWF0ZWssbGFyYi1pZCA9IDwyMD47Cj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICBtZWRpYXRlayxzbWkgPSA8JnNtaV9jb21tb25fdnBwPjsK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgY2xvY2tzID0gPCZ2ZW5jc3lzX2NvcmUxIENMS19W RU5DX0NPUkUxX0xBUkI+LAo+PiArICAgICAgICAgICAgICAgICAgICAgICBjbG9ja3MgPSA8JnZl bmNzeXNfY29yZTEgQ0xLX1ZFTkNfQ09SRTFfVkVOQz4sCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8JnZlbmNzeXNfY29yZTEgQ0xLX1ZFTkNfQ09SRTFfR0FMUz4sCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JnZwcHN5czAgQ0xLX1ZQUDBfR0FMU19W RE8wX1ZETzFfVkVOQ1NZU19DT1JFMT47Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9j ay1uYW1lcyA9ICJhcGIiLCAic21pIiwgImdhbHMiOwo+PiAtLQo+PiAyLjQwLjEKPj4KPj4KPiAK CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK