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 9AB84EE4996 for ; Mon, 21 Aug 2023 15:41:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230011AbjHUPlr (ORCPT ); Mon, 21 Aug 2023 11:41:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236429AbjHUPlq (ORCPT ); Mon, 21 Aug 2023 11:41:46 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16CD1F1; Mon, 21 Aug 2023 08:41:45 -0700 (PDT) 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) server-digest SHA256) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9973E63C40; Mon, 21 Aug 2023 15:41:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17BFDC433C7; Mon, 21 Aug 2023 15:41:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692632504; bh=X9KODKAp8xzt47wbPLuOlFkePZ9tY8/nQ54JPVlE02s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GiveDgzeHi39SYbimQ/8cdCyz0W1qbipKegOy4EQ9dtagEFBSJbN+2NTObkaDoLDm jC7ch8uR38or9L7cvzVn7owfTxoVuoZlZcllXcscf7cll0dQVmmi0XmibK5/ai3eoz Sd5SG226NQr2UE4wpVaijHXJ6xhHQdPkhfyhpu2C2YbuuIviSKNDYbg11D2bSsH1Qh /T15vbCqh1vWLPgdnBA1qSo5dX2x73egpPQ+M31esntaN5jqB7wSLQ+hKY/T73JQOs 7xKRcMaT5pZwBjQDvSh+rBJy5OeE10ndgCSAqcZm4yG+dc9a1V5MB+nDhjZ96LBWy0 3245eojtnoUXA== Date: Mon, 21 Aug 2023 17:41:34 +0200 From: Lorenzo Pieralisi To: Jim Quinlan Cc: linux-pci@vger.kernel.org, Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Cyril Brulebois , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Jim Quinlan , Florian Fainelli , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list Subject: Re: [PATCH v6 1/5] dt-bindings: PCI: brcmstb: Add brcm,enable-l1ss property Message-ID: References: <20230623144100.34196-1-james.quinlan@broadcom.com> <20230623144100.34196-2-james.quinlan@broadcom.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Mon, Aug 21, 2023 at 11:25:11AM -0400, Jim Quinlan wrote: > On Mon, Aug 21, 2023 at 10:47 AM Lorenzo Pieralisi > wrote: > > > > On Fri, Jun 23, 2023 at 10:40:54AM -0400, Jim Quinlan wrote: > > > This commit adds the boolean "brcm,enable-l1ss" property: > > > > > > The Broadcom STB/CM PCIe HW -- a core that is also used by RPi SOCs -- > > > requires the driver probe() to deliberately place the HW one of three > > > CLKREQ# modes: > > > > > > (a) CLKREQ# driven by the RC unconditionally > > > (b) CLKREQ# driven by the EP for ASPM L0s, L1 > > > (c) Bidirectional CLKREQ#, as used for L1 Substates (L1SS). > > > > > > The HW+driver can tell the difference between downstream devices that > > > need (a) and (b), but does not know when to configure (c). All devices > > > should work fine when the driver chooses (a) or (b), but (c) may be > > > desired to realize the extra power savings that L1SS offers. So we > > > introduce the boolean "brcm,enable-l1ss" property to inform the driver > > > that (c) is desired. Setting this property only makes sense when the > > > downstream device is L1SS-capable and the OS is configured to activate > > > this mode (e.g. policy==powersupersave). > > > > > > This property is already present in the Raspian version of Linux, but the > > > upstream driver implementation that follows adds more details and > > > discerns between (a) and (b). > > > > > > Signed-off-by: Jim Quinlan > > > Reviewed-by: Rob Herring > > > --- > > > Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml | 9 +++++++++ > > > 1 file changed, 9 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > > > index 7e15aae7d69e..8b61c2179608 100644 > > > --- a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > > > +++ b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > > > @@ -64,6 +64,15 @@ properties: > > > > > > aspm-no-l0s: true > > > > > > + brcm,enable-l1ss: > > > + description: Indicates that PCIe L1SS power savings > > > + are desired, the downstream device is L1SS-capable, and the > > > + OS has been configured to enable this mode. For boards > > > > What does this mean ? I don't think DT properties are supposed > > to carry information related to how the OS is configured. > > The DT setting in question is unrelated to the statement "and the OS > has been configured to > enable this mode". > > This is merely saying that even if you enable "brcm,l1ss-enable" > that you may not get L1SS power savings w/o setting > "CONFIG_PCIEASPM_POWER_SUPERSAVE=y". > I mentioned that exact term but a reviewer nakked it because > apparently DT descriptions should not be OS specific. > > I am actually open for this to be a command-line option but I wanted to honor > what the Raspian OS folks have already done. RaspianOS already has > "brcm,enable-l1ss" > set in their DTS files. This is about the mainline kernel, I don't have any visibility into downstream kernels (where that property management was added without DT and PCI maintainers supervision). Raspian OS folks' choice is theirs but it can't and it shouldn't override the mainline review process even though I understand the position you are in. Thanks, Lorenzo > > Regards, > Jim > > > Again - it depends on what DT should be used for, I am not claiming to > > have any authority on that, just asking. > > > > Thanks, > > Lorenzo > > > > > + using a mini-card connector, this mode may not meet the > > > + TCRLon maximum time of 400ns, as specified in 3.2.5.2.2 > > > + of the PCI Express Mini CEM 2.0 specification. > > > + type: boolean > > > + > > > brcm,scb-sizes: > > > description: u64 giving the 64bit PCIe memory > > > viewport size of a memory controller. There may be up to > > > -- > > > 2.17.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 3A172EE4996 for ; Mon, 21 Aug 2023 15:42:11 +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=g520ZMSDJNGcJOXud5dUBHsDyPWZ/MkkfrfjvPcKU34=; b=D7QvVZHcrLcWAe goQW3zj/qVD1TnpFcL/oyExl9cdY1kPsiwJzSPD9f2iC2zftk0NIqcT4bIAds1qr2YoRBthotz/hH ztnI7F+zFrLJfxfEnWbSThtl0GNda9+BK/0fF55lHurVIzArajIEXqMjk6LEeomWrGvKqeZu4U+jP er7fGfBNGtrVrqkLiNLS5dsZqOoQasVRZE1p3wwnEPE8EjTOTdYs3TBzzpxab6A3k81DJRA1vW/1j xsix7W5EO1S+BYVN9pDHqgvZO3F79lps22LSIGRGGRpKxk2xWuK4M6Dz+YFzQECimKBPZbRYbrscA ck8aRzLWX1/Eu2S3TSZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qY72J-00EHhs-2h; Mon, 21 Aug 2023 15:41:47 +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 1qY72H-00EHhB-0t; Mon, 21 Aug 2023 15:41:46 +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 92EB161646; Mon, 21 Aug 2023 15:41:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17BFDC433C7; Mon, 21 Aug 2023 15:41:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692632504; bh=X9KODKAp8xzt47wbPLuOlFkePZ9tY8/nQ54JPVlE02s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GiveDgzeHi39SYbimQ/8cdCyz0W1qbipKegOy4EQ9dtagEFBSJbN+2NTObkaDoLDm jC7ch8uR38or9L7cvzVn7owfTxoVuoZlZcllXcscf7cll0dQVmmi0XmibK5/ai3eoz Sd5SG226NQr2UE4wpVaijHXJ6xhHQdPkhfyhpu2C2YbuuIviSKNDYbg11D2bSsH1Qh /T15vbCqh1vWLPgdnBA1qSo5dX2x73egpPQ+M31esntaN5jqB7wSLQ+hKY/T73JQOs 7xKRcMaT5pZwBjQDvSh+rBJy5OeE10ndgCSAqcZm4yG+dc9a1V5MB+nDhjZ96LBWy0 3245eojtnoUXA== Date: Mon, 21 Aug 2023 17:41:34 +0200 From: Lorenzo Pieralisi To: Jim Quinlan Cc: linux-pci@vger.kernel.org, Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Cyril Brulebois , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Jim Quinlan , Florian Fainelli , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list Subject: Re: [PATCH v6 1/5] dt-bindings: PCI: brcmstb: Add brcm,enable-l1ss property Message-ID: References: <20230623144100.34196-1-james.quinlan@broadcom.com> <20230623144100.34196-2-james.quinlan@broadcom.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-20230821_084145_403175_E0F6AFB3 X-CRM114-Status: GOOD ( 40.33 ) 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 T24gTW9uLCBBdWcgMjEsIDIwMjMgYXQgMTE6MjU6MTFBTSAtMDQwMCwgSmltIFF1aW5sYW4gd3Jv dGU6Cj4gT24gTW9uLCBBdWcgMjEsIDIwMjMgYXQgMTA6NDfigK9BTSBMb3JlbnpvIFBpZXJhbGlz aQo+IDxscGllcmFsaXNpQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIEZyaSwgSnVuIDIz LCAyMDIzIGF0IDEwOjQwOjU0QU0gLTA0MDAsIEppbSBRdWlubGFuIHdyb3RlOgo+ID4gPiBUaGlz IGNvbW1pdCBhZGRzIHRoZSBib29sZWFuICJicmNtLGVuYWJsZS1sMXNzIiBwcm9wZXJ0eToKPiA+ ID4KPiA+ID4gICBUaGUgQnJvYWRjb20gU1RCL0NNIFBDSWUgSFcgLS0gYSBjb3JlIHRoYXQgaXMg YWxzbyB1c2VkIGJ5IFJQaSBTT0NzIC0tCj4gPiA+ICAgcmVxdWlyZXMgdGhlIGRyaXZlciBwcm9i ZSgpIHRvIGRlbGliZXJhdGVseSBwbGFjZSB0aGUgSFcgb25lIG9mIHRocmVlCj4gPiA+ICAgQ0xL UkVRIyBtb2RlczoKPiA+ID4KPiA+ID4gICAoYSkgQ0xLUkVRIyBkcml2ZW4gYnkgdGhlIFJDIHVu Y29uZGl0aW9uYWxseQo+ID4gPiAgIChiKSBDTEtSRVEjIGRyaXZlbiBieSB0aGUgRVAgZm9yIEFT UE0gTDBzLCBMMQo+ID4gPiAgIChjKSBCaWRpcmVjdGlvbmFsIENMS1JFUSMsIGFzIHVzZWQgZm9y IEwxIFN1YnN0YXRlcyAoTDFTUykuCj4gPiA+Cj4gPiA+ICAgVGhlIEhXK2RyaXZlciBjYW4gdGVs bCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGRvd25zdHJlYW0gZGV2aWNlcyB0aGF0Cj4gPiA+ICAg bmVlZCAoYSkgYW5kIChiKSwgYnV0IGRvZXMgbm90IGtub3cgd2hlbiB0byBjb25maWd1cmUgKGMp LiAgQWxsIGRldmljZXMKPiA+ID4gICBzaG91bGQgd29yayBmaW5lIHdoZW4gdGhlIGRyaXZlciBj aG9vc2VzIChhKSBvciAoYiksIGJ1dCAoYykgbWF5IGJlCj4gPiA+ICAgZGVzaXJlZCB0byByZWFs aXplIHRoZSBleHRyYSBwb3dlciBzYXZpbmdzIHRoYXQgTDFTUyBvZmZlcnMuICBTbyB3ZQo+ID4g PiAgIGludHJvZHVjZSB0aGUgYm9vbGVhbiAiYnJjbSxlbmFibGUtbDFzcyIgcHJvcGVydHkgdG8g aW5mb3JtIHRoZSBkcml2ZXIKPiA+ID4gICB0aGF0IChjKSBpcyBkZXNpcmVkLiAgU2V0dGluZyB0 aGlzIHByb3BlcnR5IG9ubHkgbWFrZXMgc2Vuc2Ugd2hlbiB0aGUKPiA+ID4gICBkb3duc3RyZWFt IGRldmljZSBpcyBMMVNTLWNhcGFibGUgYW5kIHRoZSBPUyBpcyBjb25maWd1cmVkIHRvIGFjdGl2 YXRlCj4gPiA+ICAgdGhpcyBtb2RlIChlLmcuIHBvbGljeT09cG93ZXJzdXBlcnNhdmUpLgo+ID4g Pgo+ID4gPiAgIFRoaXMgcHJvcGVydHkgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBSYXNwaWFu IHZlcnNpb24gb2YgTGludXgsIGJ1dCB0aGUKPiA+ID4gICB1cHN0cmVhbSBkcml2ZXIgaW1wbGVt ZW50YXRpb24gdGhhdCBmb2xsb3dzIGFkZHMgbW9yZSBkZXRhaWxzIGFuZAo+ID4gPiAgIGRpc2Nl cm5zIGJldHdlZW4gKGEpIGFuZCAoYikuCj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEppbSBR dWlubGFuIDxqYW1lcy5xdWlubGFuQGJyb2FkY29tLmNvbT4KPiA+ID4gUmV2aWV3ZWQtYnk6IFJv YiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+Cj4gPiA+IC0tLQo+ID4gPiAgRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9icmNtLHN0Yi1wY2llLnlhbWwgfCA5ICsrKysrKysr Kwo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQo+ID4gPgo+ID4gPiBkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9icmNtLHN0Yi1w Y2llLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL2JyY20sc3Ri LXBjaWUueWFtbAo+ID4gPiBpbmRleCA3ZTE1YWFlN2Q2OWUuLjhiNjFjMjE3OTYwOCAxMDA2NDQK PiA+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9icmNtLHN0 Yi1wY2llLnlhbWwKPiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L3BjaS9icmNtLHN0Yi1wY2llLnlhbWwKPiA+ID4gQEAgLTY0LDYgKzY0LDE1IEBAIHByb3BlcnRp ZXM6Cj4gPiA+Cj4gPiA+ICAgIGFzcG0tbm8tbDBzOiB0cnVlCj4gPiA+Cj4gPiA+ICsgIGJyY20s ZW5hYmxlLWwxc3M6Cj4gPiA+ICsgICAgZGVzY3JpcHRpb246IEluZGljYXRlcyB0aGF0IFBDSWUg TDFTUyBwb3dlciBzYXZpbmdzCj4gPiA+ICsgICAgICBhcmUgZGVzaXJlZCwgdGhlIGRvd25zdHJl YW0gZGV2aWNlIGlzIEwxU1MtY2FwYWJsZSwgYW5kIHRoZQo+ID4gPiArICAgICAgT1MgaGFzIGJl ZW4gY29uZmlndXJlZCB0byBlbmFibGUgdGhpcyBtb2RlLiAgRm9yIGJvYXJkcwo+ID4KPiA+IFdo YXQgZG9lcyB0aGlzIG1lYW4gPyBJIGRvbid0IHRoaW5rIERUIHByb3BlcnRpZXMgYXJlIHN1cHBv c2VkCj4gPiB0byBjYXJyeSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGhvdyB0aGUgT1MgaXMgY29u ZmlndXJlZC4KPiAKPiBUaGUgRFQgc2V0dGluZyBpbiBxdWVzdGlvbiBpcyB1bnJlbGF0ZWQgdG8g dGhlIHN0YXRlbWVudCAiYW5kIHRoZSBPUwo+IGhhcyBiZWVuIGNvbmZpZ3VyZWQgdG8KPiBlbmFi bGUgdGhpcyBtb2RlIi4KPiAKPiBUaGlzIGlzIG1lcmVseSBzYXlpbmcgdGhhdCBldmVuIGlmIHlv dSBlbmFibGUgImJyY20sbDFzcy1lbmFibGUiCj4gdGhhdCB5b3UgbWF5IG5vdCBnZXQgTDFTUyBw b3dlciBzYXZpbmdzIHcvbyBzZXR0aW5nCj4gIkNPTkZJR19QQ0lFQVNQTV9QT1dFUl9TVVBFUlNB VkU9eSIuCj4gSSBtZW50aW9uZWQgdGhhdCBleGFjdCB0ZXJtIGJ1dCBhIHJldmlld2VyIG5ha2tl ZCBpdCBiZWNhdXNlCj4gYXBwYXJlbnRseSBEVCBkZXNjcmlwdGlvbnMgc2hvdWxkIG5vdCBiZSBP UyBzcGVjaWZpYy4KPiAKPiBJIGFtIGFjdHVhbGx5IG9wZW4gZm9yIHRoaXMgdG8gYmUgYSBjb21t YW5kLWxpbmUgb3B0aW9uIGJ1dCBJIHdhbnRlZCB0byBob25vcgo+IHdoYXQgdGhlIFJhc3BpYW4g T1MgZm9sa3MgaGF2ZSBhbHJlYWR5IGRvbmUuICBSYXNwaWFuT1MgYWxyZWFkeSBoYXMKPiAiYnJj bSxlbmFibGUtbDFzcyIKPiBzZXQgaW4gdGhlaXIgRFRTIGZpbGVzLgoKVGhpcyBpcyBhYm91dCB0 aGUgbWFpbmxpbmUga2VybmVsLCBJIGRvbid0IGhhdmUgYW55IHZpc2liaWxpdHkgaW50bwpkb3du c3RyZWFtIGtlcm5lbHMgKHdoZXJlIHRoYXQgcHJvcGVydHkgbWFuYWdlbWVudCB3YXMgYWRkZWQg d2l0aG91dCBEVAphbmQgUENJIG1haW50YWluZXJzIHN1cGVydmlzaW9uKS4KClJhc3BpYW4gT1Mg Zm9sa3MnIGNob2ljZSBpcyB0aGVpcnMgYnV0IGl0IGNhbid0IGFuZCBpdCBzaG91bGRuJ3Qgb3Zl cnJpZGUKdGhlIG1haW5saW5lIHJldmlldyBwcm9jZXNzIGV2ZW4gdGhvdWdoIEkgdW5kZXJzdGFu ZCB0aGUgcG9zaXRpb24geW91CmFyZSBpbi4KClRoYW5rcywKTG9yZW56bwoKPiAKPiBSZWdhcmRz LAo+IEppbQo+IAo+ID4gQWdhaW4gLSBpdCBkZXBlbmRzIG9uIHdoYXQgRFQgc2hvdWxkIGJlIHVz ZWQgZm9yLCBJIGFtIG5vdCBjbGFpbWluZyB0bwo+ID4gaGF2ZSBhbnkgYXV0aG9yaXR5IG9uIHRo YXQsIGp1c3QgYXNraW5nLgo+ID4KPiA+IFRoYW5rcywKPiA+IExvcmVuem8KPiA+Cj4gPiA+ICsg ICAgICB1c2luZyBhIG1pbmktY2FyZCBjb25uZWN0b3IsIHRoaXMgbW9kZSBtYXkgbm90IG1lZXQg dGhlCj4gPiA+ICsgICAgICBUQ1JMb24gbWF4aW11bSB0aW1lIG9mIDQwMG5zLCBhcyBzcGVjaWZp ZWQgaW4gMy4yLjUuMi4yCj4gPiA+ICsgICAgICBvZiB0aGUgUENJIEV4cHJlc3MgTWluaSBDRU0g Mi4wIHNwZWNpZmljYXRpb24uCj4gPiA+ICsgICAgdHlwZTogYm9vbGVhbgo+ID4gPiArCj4gPiA+ ICAgIGJyY20sc2NiLXNpemVzOgo+ID4gPiAgICAgIGRlc2NyaXB0aW9uOiB1NjQgZ2l2aW5nIHRo ZSA2NGJpdCBQQ0llIG1lbW9yeQo+ID4gPiAgICAgICAgdmlld3BvcnQgc2l6ZSBvZiBhIG1lbW9y eSBjb250cm9sbGVyLiAgVGhlcmUgbWF5IGJlIHVwIHRvCj4gPiA+IC0tCj4gPiA+IDIuMTcuMQo+ ID4gPgo+ID4KPiA+CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK