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 X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BEB52C10F0E for ; Fri, 12 Apr 2019 15:41:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 83CA12082E for ; Fri, 12 Apr 2019 15:41:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="IuhEhZ75" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727035AbfDLPlh (ORCPT ); Fri, 12 Apr 2019 11:41:37 -0400 Received: from mail-ua1-f65.google.com ([209.85.222.65]:37336 "EHLO mail-ua1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726858AbfDLPlg (ORCPT ); Fri, 12 Apr 2019 11:41:36 -0400 Received: by mail-ua1-f65.google.com with SMTP id l17so3386850uar.4 for ; Fri, 12 Apr 2019 08:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=zz1SQZu2GGszLBjVKsHpw5QwWKr5To4JSYJmkOPSXXQ=; b=IuhEhZ75ZbFmoK4HEJZVvq3EYjdJ19JcVajy5FegrrNH1jrwRq8GEkHswMEE/v7DxI S3T1ECgl6FT+ObnWfU5j9Za7ch2w2PT4xQApCOverWIArbaCp1Pc1/QPtDG17cRnIT6P Im+cCiWnRJDyBrph9fQ7HFq8Q4P26MFtdOrP4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=zz1SQZu2GGszLBjVKsHpw5QwWKr5To4JSYJmkOPSXXQ=; b=TVG4rpkcwgux3skjYsNbsh07+rLRk7irGNsYkx05PIUl8Y8IOBhuvv7kclqhN+L3CD i9s/ClprcsyO1foLjxLcHFqS4AQNTqr8eH+4/4VCgXss1nKOJgj/CceHMoOcSflmQCDE pEgWPUsrXcewwCkQyyfzXG025w9v8fOxuzOpxUl32GgbTn4fd+jlVOxntkiPsteerzqi 9ykDYmQXBWYd0ILM4QVX8k2scubCyvcyK9YBO5jqbaNYkoXoUr46mR2cZIq2BJ0kgihX b3AAm4ucRm7AKhrzeQx7det8/pkSgWOHH66+5WWFyOTrK98WSEF3wVBIZbYCbwIf6Mro xhEw== X-Gm-Message-State: APjAAAVv71iuzIt+lc5HBe+DROhfNZViD/0cJ0y2/sxsOkX/fw1l6Gg1 D1OV0/pmEemtzDGMmrTlqID/0Q/eZP4= X-Google-Smtp-Source: APXvYqwj9hU661orLlsvAg6qdTDHqzdFnhEnt3eSioSXbvBT4G1sCXSG3YvFu1DlHYcQEc8Amnl7BQ== X-Received: by 2002:ab0:5b89:: with SMTP id y9mr23192493uae.57.1555083695171; Fri, 12 Apr 2019 08:41:35 -0700 (PDT) Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com. [209.85.217.54]) by smtp.gmail.com with ESMTPSA id j71sm36318146vsd.0.2019.04.12.08.41.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Apr 2019 08:41:31 -0700 (PDT) Received: by mail-vs1-f54.google.com with SMTP id f22so5780569vso.7 for ; Fri, 12 Apr 2019 08:41:31 -0700 (PDT) X-Received: by 2002:a67:8154:: with SMTP id c81mr32689301vsd.37.1555083690923; Fri, 12 Apr 2019 08:41:30 -0700 (PDT) MIME-Version: 1.0 References: <20190409204707.150347-1-dianders@chromium.org> <1491b5f1-e9f9-5718-76e5-0a49814ed76d@rock-chips.com> <1820193.6uR021mFLB@diego> <1f61e93d-c1d9-4438-de0e-d65c7eb248bf@rock-chips.com> In-Reply-To: <1f61e93d-c1d9-4438-de0e-d65c7eb248bf@rock-chips.com> From: Doug Anderson Date: Fri, 12 Apr 2019 08:41:18 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/3] Revert "clk: rockchip: mark noc and some special clk as critical on rk3288" To: "elaine.zhang" Cc: =?UTF-8?Q?Heiko_St=C3=BCbner?= , Michael Turquette , Stephen Boyd , Caesar Wang , "open list:ARM/Rockchip SoC..." , Matthias Kaehlcke , Ryan Case , linux-clk , LKML , Linux ARM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Thu, Apr 11, 2019 at 6:43 PM elaine.zhang wro= te: > >>> - "pmu_hclk_otg0", > >>> > >>> It's a soc bug, pmu_hclk_otg0 must always on. > >>> > >>> So you said in your previous commit message. However we've shipped > >>> lots and lots of Chromebooks with this clock off. Can you explain > >>> what is broken? Is this only needed for gadget mode (which we don't > >>> use), for instance? > >>> > >>> test case: > >>> > >>> recovery test, < 1 hour , system crash. > >>> > >>> log: > >>> > >>> [ 127.569629] I[0: swapper/0: 0] GOTGCTL @0xFFFFFF800= 0B80000 : 0x00400010 > >>> [ 127.569644] I[0: swapper/0: 0] GOTGINT @0xFFFFFF800= 0B80004 : 0x00400010 > >>> [ 127.569659] I[0: swapper/0: 0] GAHBCFG @0xFFFFFF800= 0B80008 : 0x00400010 > >>> [ 127.569673] I[0: swapper/0: 0] GUSBCFG @0xFFFFFF800= 0B8000C : 0x00400010 > >>> [ 127.569688] I[0: swapper/0: 0] GRSTCTL @0xFFFFFF800= 0B80010 : 0x00400010 > >>> [ 127.569702] I[0: swapper/0: 0] GINTSTS @0xFFFFFF800= 0B80014 : 0x00400010 > >>> [ 127.569718] I[0: swapper/0: 0] GINTMSK @0xFFFFFF800= 0B80018 : 0x00400010 > >>> [ 127.569733] I[0: swapper/0: 0] GRXSTSR @0xFFFFFF800= 0B8001C : 0x00400010 > >>> [ 127.569748] I[0: swapper/0: 0] GRXFSIZ @0xFFFFFF800= 0B80024 : 0x00400010 > >> I don't know what a "recovery test" is and I don't understand your log= s. > >> > >> Can you explain we do not run into this on Chromebooks? > >> > >> > >>> reason: > >>> > >>> USB OTG controller supports turning off most logic power, and then on= ly one PMU module is left. This clock cannot be turned off, which is simila= r to the always on module in USB OTG. > >> Can't you just add a patch to the dwc2 driver to have it grab this > >> clock? I assume this clock doesn't need to be turned on unless you're > >> using the OTG contoller in a certain way? > > So far we don't really know where the clock in question is sitting > > in the clock hirarchy. For example the kernel got a new interconnect > > framework recently, so handling non-device clocks in a device may haunt > > us later on. > > > > @Elaine: could you elaborate what pmu_hclk_otg0 actually is for please? > > Doug: > > Recovry test: Regular factory tests, including restart, adb debugging, > clear data/factory Settings, and clear cache. > I'm not clear whether the test was added by chromebooks. > > Heiko: > > pmu_hclk_otg0=EF=BC=9A pmu ahb clock > > Function: Clock to pmu module when hibernation and/or ADP is > enabled.Must be greater than or equal to 30 MHz. Does this mean we can enable hibernation in dwc2 once we turn this clock on? I think right now hibernation doesn't work for dwc2 on rk3288. Not that I know a ton about dwc2's hibernation modes, but I've certainly bumped up against it when enabling power down modes. In fact I'm planning to post some patches soon... I'll CC you. > If the SOC design does not support hibernation/ADP function, only have > hclk_otg, this clk can be switched according to the usage of otg. > If the SOC design support hibernation/ADP, has two clocks, hclk_otg and > pmu_hclk_otg0. > Hclk_otg belongs to the closed part of otg logic, which can be switched > according to the use of otg. > > pmu_hclk_otg0 belongs to the always on part. > > As for whether pmu_hclk_otg0 can be turned off when otg is not in use, > we have not tested. IC suggest make pmu_hclk_otg0 always on. OK. I'm fine with this clock staying as a critical clock for now. I'll send out a v2 shortly. -Doug 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 X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B998C10F0E for ; Fri, 12 Apr 2019 15:41:45 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 20A552082E for ; Fri, 12 Apr 2019 15:41:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="p5TCo2PS"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="IuhEhZ75" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 20A552082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vhElbANo8LcVrb+MKa+KFP9RnwgrNfTs6aK2qFmkGYY=; b=p5TCo2PSzZFbZQ riCb00lhuHlMmiZQ8T1ijLwI5u4L22yR4p0+JG+lXuq3JiOZVMEHLCr2NsWe0Ggq2Fa9AOM/pABF4 BHP1gf3izanOeWkUjFOPQ3F3DhTsbNV5EJOeZCqSVJBCFdyCSTs9zEq00diu9s+aU1Fsy03NN/QWF 1rGMdXUZ242UasSLVj0SuNg/9q1mSuOO32hJaclmW7rZBAdEBuXEH5Ccp4cheuJBWCtNg9g1GHDJR YbOgMTYBclLgVdyL3naOYoGyyAY3aXglPsYGbHtOxov5j3KIe8ozuFU4IciPmUYzBbjQryGkmQYbW DSZV2XzDNneygJUMr7mw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hEyJA-0006vG-FP; Fri, 12 Apr 2019 15:41:40 +0000 Received: from mail-vk1-xa43.google.com ([2607:f8b0:4864:20::a43]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hEyJ7-0006u6-CI for linux-arm-kernel@lists.infradead.org; Fri, 12 Apr 2019 15:41:38 +0000 Received: by mail-vk1-xa43.google.com with SMTP id h127so2241385vkd.12 for ; Fri, 12 Apr 2019 08:41:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=zz1SQZu2GGszLBjVKsHpw5QwWKr5To4JSYJmkOPSXXQ=; b=IuhEhZ75ZbFmoK4HEJZVvq3EYjdJ19JcVajy5FegrrNH1jrwRq8GEkHswMEE/v7DxI S3T1ECgl6FT+ObnWfU5j9Za7ch2w2PT4xQApCOverWIArbaCp1Pc1/QPtDG17cRnIT6P Im+cCiWnRJDyBrph9fQ7HFq8Q4P26MFtdOrP4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=zz1SQZu2GGszLBjVKsHpw5QwWKr5To4JSYJmkOPSXXQ=; b=FmY6quRXmjiJp8YlQu68xqarn3esrIEB0S+jo6yeSqnVRz3Fy+8+6d5j4oDLDNzgxw gSqGFxGoqwYqA7e377lI2T6XYvJ7J9iOMLuldub65nasPIokhacY38qYI9DQUv20RxhR qdPEv4fH5jU0PHoYSo2a+ui5N7dn+fr7iEsa0BinJFfvVdakE82aQjpVFv2dhzJocsak nd/scNZdXoVP9jPWAZf1zQDh8UCN4yu18ZyWNeDHUkR6rRdjGjvA/D8SctD7TpvoWz47 u39am4dGAIprRbDzu3aIqge5rK1dJA/uuoXTLRL1JnJvOZr2RZ3ot0qWvOp1nTcTw2hE brvQ== X-Gm-Message-State: APjAAAWuEhgBbalkL63x8ao6vrgDfvFkKHngABV9DYfMY6TWpLuwXvTm cDnjpeKTmAvFzQ9Yib43yYyeF6F/Ib0= X-Google-Smtp-Source: APXvYqyU6ps4E2FR9qK1BKwW1c8wLFSt8icB4IMtTpLddy5b9fZfHaJqyb5pl7SRbPm12JuspB+N3Q== X-Received: by 2002:a1f:39c:: with SMTP id f28mr31958547vki.19.1555083695348; Fri, 12 Apr 2019 08:41:35 -0700 (PDT) Received: from mail-vs1-f51.google.com (mail-vs1-f51.google.com. [209.85.217.51]) by smtp.gmail.com with ESMTPSA id 1sm6421946uax.3.2019.04.12.08.41.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Apr 2019 08:41:31 -0700 (PDT) Received: by mail-vs1-f51.google.com with SMTP id g187so5786586vsc.8 for ; Fri, 12 Apr 2019 08:41:31 -0700 (PDT) X-Received: by 2002:a67:8154:: with SMTP id c81mr32689301vsd.37.1555083690923; Fri, 12 Apr 2019 08:41:30 -0700 (PDT) MIME-Version: 1.0 References: <20190409204707.150347-1-dianders@chromium.org> <1491b5f1-e9f9-5718-76e5-0a49814ed76d@rock-chips.com> <1820193.6uR021mFLB@diego> <1f61e93d-c1d9-4438-de0e-d65c7eb248bf@rock-chips.com> In-Reply-To: <1f61e93d-c1d9-4438-de0e-d65c7eb248bf@rock-chips.com> From: Doug Anderson Date: Fri, 12 Apr 2019 08:41:18 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/3] Revert "clk: rockchip: mark noc and some special clk as critical on rk3288" To: "elaine.zhang" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190412_084137_449917_A183668D X-CRM114-Status: GOOD ( 22.37 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?Q?Heiko_St=C3=BCbner?= , Stephen Boyd , Michael Turquette , LKML , "open list:ARM/Rockchip SoC..." , Matthias Kaehlcke , Ryan Case , Caesar Wang , linux-clk , Linux ARM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgpPbiBUaHUsIEFwciAxMSwgMjAxOSBhdCA2OjQzIFBNIGVsYWluZS56aGFuZyA8emhhbmdx aW5nQHJvY2stY2hpcHMuY29tPiB3cm90ZToKPiA+Pj4gLSAgICAgInBtdV9oY2xrX290ZzAiLAo+ ID4+Pgo+ID4+PiBJdCdzIGEgc29jIGJ1ZywgcG11X2hjbGtfb3RnMCBtdXN0IGFsd2F5cyBvbi4K PiA+Pj4KPiA+Pj4gU28geW91IHNhaWQgaW4geW91ciBwcmV2aW91cyBjb21taXQgbWVzc2FnZS4g IEhvd2V2ZXIgd2UndmUgc2hpcHBlZAo+ID4+PiBsb3RzIGFuZCBsb3RzIG9mIENocm9tZWJvb2tz IHdpdGggdGhpcyBjbG9jayBvZmYuICBDYW4geW91IGV4cGxhaW4KPiA+Pj4gd2hhdCBpcyBicm9r ZW4/ICBJcyB0aGlzIG9ubHkgbmVlZGVkIGZvciBnYWRnZXQgbW9kZSAod2hpY2ggd2UgZG9uJ3QK PiA+Pj4gdXNlKSwgZm9yIGluc3RhbmNlPwo+ID4+Pgo+ID4+PiB0ZXN0IGNhc2U6Cj4gPj4+Cj4g Pj4+IHJlY292ZXJ5IHRlc3QsICA8IDEgaG91ciAsIHN5c3RlbSBjcmFzaC4KPiA+Pj4KPiA+Pj4g bG9nOgo+ID4+Pgo+ID4+PiBbICAxMjcuNTY5NjI5XSBJWzA6ICAgICAgc3dhcHBlci8wOiAgICAw XSBHT1RHQ1RMICAgICAgICBAMHhGRkZGRkY4MDAwQjgwMDAwIDogMHgwMDQwMDAxMAo+ID4+PiBb ICAxMjcuNTY5NjQ0XSBJWzA6ICAgICAgc3dhcHBlci8wOiAgICAwXSBHT1RHSU5UICAgICAgICBA MHhGRkZGRkY4MDAwQjgwMDA0IDogMHgwMDQwMDAxMAo+ID4+PiBbICAxMjcuNTY5NjU5XSBJWzA6 ICAgICAgc3dhcHBlci8wOiAgICAwXSBHQUhCQ0ZHICAgICAgICBAMHhGRkZGRkY4MDAwQjgwMDA4 IDogMHgwMDQwMDAxMAo+ID4+PiBbICAxMjcuNTY5NjczXSBJWzA6ICAgICAgc3dhcHBlci8wOiAg ICAwXSBHVVNCQ0ZHICAgICAgICBAMHhGRkZGRkY4MDAwQjgwMDBDIDogMHgwMDQwMDAxMAo+ID4+ PiBbICAxMjcuNTY5Njg4XSBJWzA6ICAgICAgc3dhcHBlci8wOiAgICAwXSBHUlNUQ1RMICAgICAg ICBAMHhGRkZGRkY4MDAwQjgwMDEwIDogMHgwMDQwMDAxMAo+ID4+PiBbICAxMjcuNTY5NzAyXSBJ WzA6ICAgICAgc3dhcHBlci8wOiAgICAwXSBHSU5UU1RTICAgICAgICBAMHhGRkZGRkY4MDAwQjgw MDE0IDogMHgwMDQwMDAxMAo+ID4+PiBbICAxMjcuNTY5NzE4XSBJWzA6ICAgICAgc3dhcHBlci8w OiAgICAwXSBHSU5UTVNLICAgICAgICBAMHhGRkZGRkY4MDAwQjgwMDE4IDogMHgwMDQwMDAxMAo+ ID4+PiBbICAxMjcuNTY5NzMzXSBJWzA6ICAgICAgc3dhcHBlci8wOiAgICAwXSBHUlhTVFNSICAg ICAgICBAMHhGRkZGRkY4MDAwQjgwMDFDIDogMHgwMDQwMDAxMAo+ID4+PiBbICAxMjcuNTY5NzQ4 XSBJWzA6ICAgICAgc3dhcHBlci8wOiAgICAwXSBHUlhGU0laICAgICAgICBAMHhGRkZGRkY4MDAw QjgwMDI0IDogMHgwMDQwMDAxMAo+ID4+IEkgZG9uJ3Qga25vdyB3aGF0IGEgInJlY292ZXJ5IHRl c3QiIGlzIGFuZCBJIGRvbid0IHVuZGVyc3RhbmQgeW91ciBsb2dzLgo+ID4+Cj4gPj4gQ2FuIHlv dSBleHBsYWluIHdlIGRvIG5vdCBydW4gaW50byB0aGlzIG9uIENocm9tZWJvb2tzPwo+ID4+Cj4g Pj4KPiA+Pj4gcmVhc29uOgo+ID4+Pgo+ID4+PiBVU0IgT1RHIGNvbnRyb2xsZXIgc3VwcG9ydHMg dHVybmluZyBvZmYgbW9zdCBsb2dpYyBwb3dlciwgYW5kIHRoZW4gb25seSBvbmUgUE1VIG1vZHVs ZSBpcyBsZWZ0LiBUaGlzIGNsb2NrIGNhbm5vdCBiZSB0dXJuZWQgb2ZmLCB3aGljaCBpcyBzaW1p bGFyIHRvIHRoZSBhbHdheXMgb24gbW9kdWxlIGluIFVTQiBPVEcuCj4gPj4gQ2FuJ3QgeW91IGp1 c3QgYWRkIGEgcGF0Y2ggdG8gdGhlIGR3YzIgZHJpdmVyIHRvIGhhdmUgaXQgZ3JhYiB0aGlzCj4g Pj4gY2xvY2s/ICBJIGFzc3VtZSB0aGlzIGNsb2NrIGRvZXNuJ3QgbmVlZCB0byBiZSB0dXJuZWQg b24gdW5sZXNzIHlvdSdyZQo+ID4+IHVzaW5nIHRoZSBPVEcgY29udG9sbGVyIGluIGEgY2VydGFp biB3YXk/Cj4gPiBTbyBmYXIgd2UgZG9uJ3QgcmVhbGx5IGtub3cgd2hlcmUgdGhlIGNsb2NrIGlu IHF1ZXN0aW9uIGlzIHNpdHRpbmcKPiA+IGluIHRoZSBjbG9jayBoaXJhcmNoeS4gRm9yIGV4YW1w bGUgdGhlIGtlcm5lbCBnb3QgYSBuZXcgaW50ZXJjb25uZWN0Cj4gPiBmcmFtZXdvcmsgcmVjZW50 bHksIHNvIGhhbmRsaW5nIG5vbi1kZXZpY2UgY2xvY2tzIGluIGEgZGV2aWNlIG1heSBoYXVudAo+ ID4gdXMgbGF0ZXIgb24uCj4gPgo+ID4gQEVsYWluZTogY291bGQgeW91IGVsYWJvcmF0ZSB3aGF0 IHBtdV9oY2xrX290ZzAgYWN0dWFsbHkgaXMgZm9yIHBsZWFzZT8KPgo+IERvdWc6Cj4KPiBSZWNv dnJ5IHRlc3Q6IFJlZ3VsYXIgZmFjdG9yeSB0ZXN0cywgaW5jbHVkaW5nIHJlc3RhcnQsIGFkYiBk ZWJ1Z2dpbmcsCj4gY2xlYXIgZGF0YS9mYWN0b3J5IFNldHRpbmdzLCBhbmQgY2xlYXIgY2FjaGUu Cj4gSSdtIG5vdCBjbGVhciB3aGV0aGVyIHRoZSB0ZXN0IHdhcyBhZGRlZCBieSBjaHJvbWVib29r cy4KPgo+IEhlaWtvOgo+Cj4gcG11X2hjbGtfb3RnMO+8miBwbXUgYWhiIGNsb2NrCj4KPiBGdW5j dGlvbjogQ2xvY2sgdG8gcG11IG1vZHVsZSB3aGVuIGhpYmVybmF0aW9uIGFuZC9vciBBRFAgaXMK PiBlbmFibGVkLk11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDMwIE1Iei4KCkRvZXMg dGhpcyBtZWFuIHdlIGNhbiBlbmFibGUgaGliZXJuYXRpb24gaW4gZHdjMiBvbmNlIHdlIHR1cm4g dGhpcwpjbG9jayBvbj8gIEkgdGhpbmsgcmlnaHQgbm93IGhpYmVybmF0aW9uIGRvZXNuJ3Qgd29y ayBmb3IgZHdjMiBvbgpyazMyODguICBOb3QgdGhhdCBJIGtub3cgYSB0b24gYWJvdXQgZHdjMidz IGhpYmVybmF0aW9uIG1vZGVzLCBidXQKSSd2ZSBjZXJ0YWlubHkgYnVtcGVkIHVwIGFnYWluc3Qg aXQgd2hlbiBlbmFibGluZyBwb3dlciBkb3duIG1vZGVzLgpJbiBmYWN0IEknbSBwbGFubmluZyB0 byBwb3N0IHNvbWUgcGF0Y2hlcyBzb29uLi4uICBJJ2xsIENDIHlvdS4KCgo+IElmIHRoZSBTT0Mg ZGVzaWduIGRvZXMgbm90IHN1cHBvcnQgaGliZXJuYXRpb24vQURQIGZ1bmN0aW9uLCBvbmx5IGhh dmUKPiBoY2xrX290ZywgdGhpcyBjbGsgY2FuIGJlIHN3aXRjaGVkIGFjY29yZGluZyB0byB0aGUg dXNhZ2Ugb2Ygb3RnLgo+IElmIHRoZSBTT0MgZGVzaWduIHN1cHBvcnQgaGliZXJuYXRpb24vQURQ LCBoYXMgdHdvIGNsb2NrcywgaGNsa19vdGcgYW5kCj4gcG11X2hjbGtfb3RnMC4KPiBIY2xrX290 ZyBiZWxvbmdzIHRvIHRoZSBjbG9zZWQgcGFydCBvZiBvdGcgbG9naWMsIHdoaWNoIGNhbiBiZSBz d2l0Y2hlZAo+IGFjY29yZGluZyB0byB0aGUgdXNlIG9mIG90Zy4KPgo+IHBtdV9oY2xrX290ZzAg YmVsb25ncyB0byB0aGUgYWx3YXlzIG9uIHBhcnQuCj4KPiBBcyBmb3Igd2hldGhlciBwbXVfaGNs a19vdGcwIGNhbiBiZSB0dXJuZWQgb2ZmIHdoZW4gb3RnIGlzIG5vdCBpbiB1c2UsCj4gd2UgaGF2 ZSBub3QgdGVzdGVkLiBJQyBzdWdnZXN0IG1ha2UgcG11X2hjbGtfb3RnMCBhbHdheXMgb24uCgpP Sy4gIEknbSBmaW5lIHdpdGggdGhpcyBjbG9jayBzdGF5aW5nIGFzIGEgY3JpdGljYWwgY2xvY2sg Zm9yIG5vdy4KCkknbGwgc2VuZCBvdXQgYSB2MiBzaG9ydGx5LgoKLURvdWcKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK